Web services provide access to software systems over the Internet using standard protocols. In a minimalistic scenario there exists at least a Web service provider that publishes some service such as a weather service and a Web service consumer that uses this service. Web service discovery is the process of finding a suitable Web service for given task.
Publishing a Web service involves at the bare minimum to create the software artifact and make it accessible to potential consumers. In order that a consumer can use a service, providers usually augment a Web service endpoint with an interface description using the Web Services Description Language (WSDL).
Optionally a provider can explicitly register a service with a Web services registry such as Universal Description Discovery and Integration (UDDI) or publish additional documents intended to facilitate discovery such as Web Services Inspection Language (WSIL) documents. The service users or consumers need to search Web services manually or automatically. The implementation of UDDI servers and WSIL engines should provide simple search APIs or web-based GUI to help find Web services.
Web services may also be discovered using multicast mechanisms like WS-Discovery, thus reducing the need for centralized registries in smaller networks.
The current UDDI search mechanism can only focus on a single search criterion, such as business name, business location, business category, or service type by name, business identifier, or discovery URL. In fact, in a business solution, it is very normal to search multiple UDDI registries or WSIL documents and then aggregate the returned result by using filtering and ranking techniques. IBM modularized this federated Web services discovery engine in 2001. The released technology from IBM is Business Explorer for Web Services (BE4WS).