Web Services: UDDI. What is UDDI? UDDI = The Universal Description, Discovery, and Integration A...

25
Web Services: UDDI

Transcript of Web Services: UDDI. What is UDDI? UDDI = The Universal Description, Discovery, and Integration A...

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 — address, contact, and known identifiers;

• Yellow Pages — industrial categorizations based on standard taxonomies;

• Green Pages — technical information about services exposed by the business

WhitePages

YellowPages

GreenPages

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 Types1. 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

UDDI RegistryNodeUser

UDDISOAP Request

UDDISOAP Response

HTTPServer

SOAPProcessor

UDDIRegistry Service

B2B DirectoryCreate, View, Update, and Deleteregistrations

Implementation-neutral

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.oasis-open.org/committees/download.php/9861/UDDI%20Technical%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 FAQhttp://uddi.microsoft.com/about/FAQshutdown.htm