Transcript Document
Web Services: UDDI What is UDDI? • UDDI = The Universal Description, Discovery, and Integration • A central element of the group of standards that comprise the Web services stack A platform-independent, XML-based registry for businesses worldwide to list themselves on the Internet UDDI Basics • UDDI is a specification for creating a registry service that catalogs organizations and their Web services • An implementation of the UDDI specification is called a UDDI registry • UDDI enables a business to: • • • Describe its business and its services Discover other businesses that offer desired services Integrate with these other businesses UDDI Registry • A UDDI registry is a database that supports a set of standard data structures defined by the UDDI specification • Most UDDI products run on a relational DBMS • Can be implemented using other technologies, including LDAP servers and XML databases • UDDI products are offered by a number of vendors, including IBM, Microsoft, Sun, Oracle, Fujitsu, Systinet Registry Data • A UDDI business registration consists of three components: White Pages • White Pages — address, contact, and known identifiers; Yellow Pages • Yellow Pages — industrial categorizations based on standard taxonomies; • Green Pages — technical information about services exposed by the business Green Pages Brief History • Originally developed by Microsoft, IBM, and Ariba in 2000 • Later UDDI.org was formed, 12 other companies invited to participate • At first attention was focused on the "UDDI Business Registry” - a public implementation of the UDDI standard • Now supported by OASIS Versions • UDDI 1.0 (2000) • Foundation for registry of Internet based business services • UDDI 2.0 (2001) • Align specification with emerging Web services standards and provide flexible service taxonomy • UDDI 3.0 (2004) • Support secure interaction of private and public implementations as major element of service-oriented infrastructure Private and Public Registries • Anyone can set up a UDDI registry for private use within an organization or market place • In addition, there was a massive public UDDI registry called the UDDI Business Registry, which was run jointly by IBM, Microsoft, NTT, and SAP • Companies announced they were closing their public UDDI nodes in January 2006 • However, companies continue to support private registries in their products The Self-Organizing Myth • At first, the concept of self-organizing systems was high on the list of motivations for creating the registry standard • Idea - applications look up Web services and integrate with them automatically, without any human intervention • Sounded pretty good, but in reality doesn't work! • The high level of artificial intelligence is required to make the heuristic decisions Key Functional Concepts • UDDI describes a registry of Web services and programmatic interfaces for publishing, retrieving, and managing information about services • Describes about 30 different SOAP operations that allow to add, update, delete, and find information contained in a UDDI registry • UDDI itself is of set a Web services! The UDDI Data Model • The core information model used by a UDDI registry is defined in several XML schemas • XML was chosen because • • it offers a platform-neutral view of data allows hierarchical relationships to be described in a natural way • XSD was chosen because of its • • support for rich data types ability to easily describe and validate information based on models represented in schemas Data Model Types 1. businessEntity • Business or organization that provides the Web service 2. businessService • Web service or some other electronic service 3. BindingTemplate • Technical details to invoke Web services 4. tModel • Technical fingerprints used to access service specifications Data Model Types (cont.) 5. publisherAssertion • Show relationship between business Entities UDDI Programming API • UDDI accessing operations use SOAP messages User UDDI SOAP Request UDDI SOAP Response Create, View, Update, and Delete registrations UDDI Registry Node HTTP Server SOAP Processor UDDI Registry Service B2B Directory Implementationneutral UDDI Programming API • UDDI's standard Web services are divided into two WSDL/SOAP-based APIs: • The Inquiry API • The Publishing API • All UDDI Inquiry and Publishing operations use Document/Literal SOAP messages and all of them are Request/Response Inquiry API • Find things • • • • find_business find_service find_binding find_tModel • Get details about things • • • • get_businessDetail get_serviceDetail get_bindingDetail get_tModelDetail Publishing API • Save things • • • • save_business save_service save_binding save_tModel • Delete things • • • • delete_business delete_service delete_binding delete_tModel Example: Searching • To search for a company, say Microsoft, we would create a query within a SOAP envelope: <find_business generic="1.0" xmlns="urn:uddi-org:api"> <name>Microsoft</name> </find_business> Example: Response (1-3) <businessList generic="1.0" operator="Microsoft Corporation" truncated="false" xmlns="urn:uddi-org:api"> <businessInfos> <businessInfo businessKey="0076B468-EB27-42E5-AC09-9955CFF462A3"> <name>Microsoft Corporation</name> <description xml:lang="en"> Empowering people through great software any time, any place and on any device is Microsoft's vision. As the worldwide leader in software for personal and business computing, we strive to produce innovative products and services that meet our customer's </description> Example: Response (2-3) <serviceInfos> <serviceInfo businessKey="0076B468-EB27-42E5-AC09-9955CFF462A3" serviceKey="1FFE1F71-2AF3-45FB-B788-09AF7FF151A4"> <name>Web services for smart searching</name> </serviceInfo> <serviceInfo businessKey="0076B468-EB27-42E5-AC09-9955CFF462A3" serviceKey="8BF2F51F-8ED4-43FE-B665-38D8205D1333"> <name>Electronic Business Integration Services</name> </serviceInfo> <serviceInfo businessKey="0076B468-EB27-42E5-AC09-9955CFF462A3" serviceKey="611C5867-384E-4FFD-B49C-28F93A7B4F9B"> <name>Volume Licensing Select Program</name> </serviceInfo> Example: Response (3-3) <serviceInfo businessKey="0076B468-EB27-42E5-AC09-9955CFF462A3" serviceKey="A8E4999A-21A3-47FA-802E-EE50A88B266F"> <name>UDDI Web Sites</name> </serviceInfo> </serviceInfos> </businessInfo> </businessInfos> </businessList> Java API for XML Registries • JAXR provides a uniform and standard Java API for accessing various kinds of XML registries • Gives developers the ability to write registry client programs that are portable across various target registries UDDI4j • UDDI4J is a Java class library that provides an API to interact with a UDDI registry • Project is licensed under the IBM Public License. • Project is hosted by SourceForge.net: http://sourceforge.net/projects/uddi4j/ UDDI Server Implementations • There are various UDDI servers • Apache jUDDI: Open-Source UDDI Server • Oracle Service Registry • Microsoft Enterprise UDDI Services: Part of Windows Server 2003 • BEA Aqualogic Service Registry • Systinet Registry References • Introduction to UDDI: Important Features and Functional Concepts http://www.oasisopen.org/committees/download.php/9861/UDDI%20Technic al%20White%20Paper%20(Final).pdf • Universal Description, Discovery and Integration (UDDI) project: http://www.uddi.org/ • Java Specification Request (JSR) 93: JAXR 1.0: http://jcp.org/jsr/detail/093.jsp • Microsoft UBR Shutdown FAQ http://uddi.microsoft.com/about/FAQshutdown.htm