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