IBM alphaWorks has released a new XML-based UDDI exploring engine that "provides developers with standard interfaces for efficiently searching business and service information in single or multiple UDDI registries. Business Explorer for Web Services (BE4WS) is based on a proposed UDDI Search Markup Language (USML) for carrying a search request including multiple queries, key words, UDDI sources, and aggregation operators. The Advanced UDDI Search Engine (AUSE) ia a core component of BE4WS which processes the USML request and performs advanced exploring. The AUSE engine aggregates search results from different UDDI registries based on the USML request and its supporting intelligent search facilities. Examples of these facilities are Instant Notification Broker, UDDI Source Dispatching Broker, and Information Aggregation Broker, all of which have both prior knowledge of the meanings of specific categories and the ability to cross-reference across multiple categories. The XML-based USML response that may include business entities, services, service types (t-Models) from UDDI registries, and other extra information (such as relationships among services) from non-UDDI sources or Enhanced UDDI sources. The response provides additional aggregation and selection functions on top of what UDDI provides. The architecture of BE4WS is extensible, so it will be easy to include queries to future enhancements of UDDI registries."
On USML: "USML is an aggregation of different search queries that searches the UDDI registries for multiple criteria. A search could be made for Businesses, Service, and Service Types matching the different criteria specified by a user. A 'Service Type' is called tModel in UDDI. A tModel specifies information such as the tModel name, the name of the organization that published the tModel, a list of categories that describe the service type, and pointers to technical specifications for the service type such as interface definitions, message formats, message protocols, and security protocols. A 'tModel' is essentially a technical 'fingerprint' unique to a particular specification..." [from the document "How to Write USML."]
BE4WS rationale (from the FAQ document):
"... it is impractical to assume that the UDDI registry will be useful for general-purpose business searches. With a projected near-term population of several hundred thousand to a million distinct entities, it is unlikely that searching for businesses that satisfy a particular set of criteria will yield a manageably sized result set. So it is a critical problem to come up with an efficient search engine for locating proper Web Services. The second concern is the accuracy: When a specific category, along with UDDI registration data, is registered, only people searching for that exact category will find the results. Further, from an e-business application developer's point of view, it is necessary send a few sequential or programmed search commands to the UDDI registry for information aggregation. That is to say, the information sources may include multiple UDDI registries and other searchable sources. Obviously, there is a need to provide an advanced search mechanism for Web Services to dramatically extend the current search capability, which is based on category or key words, through efficiency improvement and performance enhancement."
"BE4WS simplifies the programming model and provides standard messaging interfaces for searching UDDI registries. Its APIs are the simple Java API and the SOAP service API, which require only one single USML string as the input parameter. And the response is also a XML-based USML string. One single USML request can include multiple queries, different UDDI sources, and aggregation operators. So the returned result is aggregated from different UDDI registries or other sources according to your search criteria. If not using BE4WS, you must write your code to send out multiple search queries and then try to do aggregation. Obviously, this is a time-consuming process and you need an advanced UDDI search engine to handle such request. BE4WS can incorporate not only different UDDI technical layers (such as UDDI for Java or a similar UDDI client package), but also different sources (such as UDDI registries, an enhanced UDDI registry, or other sources, such as LDAP, Web, and so on). BE4WS could become an emerging standard for dealing with this kind of efficient and effective exploring mechanism and common interfaces for UDDI registries."
"BE4WS enables interaction with XML representations of UDDI Exploring mechanism instead of direct work with UDDI for Java and other UDDI clients, which is the usual programming model. With BE4WS, the same programming model can be used regardless of how the UDDI for Java or other UDDI clients are implemented."
"BE4WS consists of two types of APIs: a regular Java API and a Web Services Interface. With these APIs, the desired business entities, services, and service types (tModels) can easily be found from different UDDI registries using one single Java call or SOAP call. The only input parameter for these calls is the USML request string. The return result is also a XML-based USML response."
Business Explorer for Web Services Platform Requirements: Testing has been done on Windows 2000 and NT 4.0. but it "should also work on other Java platforms, including Linux and UNIX." Also required: JDK 1.2 or above; a UDDI client, such as UDDI for Java (available in WSTK 2.4 or WebSphere Application Server 4.0); an XML Parser, such as xerces.jar in IBM's XML Parser Version 3.2.1 xml4j.jar, provided in WSTK 2.4; a SOAP Server, such as WebSphere Application Server 4.0 (optional; use to set up an advanced UDDI Search Portal); WSIF is optional; use it to invoke BE4WS SOAP service.