Académique Documents
Professionnel Documents
Culture Documents
DarkSwitch 2010
UDDI uses World Wide Web Consortium (W3C) and Internet Engineering Task Force
(IETF) Internet standards such as XML, HTTP, and DNS protocols.
The UDDI was integrated into the Web Services Interoperability (WS-I) standard as a
central pillar of services infrastructure.
Definition: UDDI nodes are servers which support the UDDI specification and belong to a
UDDI registry.
Note: The teacher hasnʼt followed the structure of the book. Iʼm going to try to follow the
Book first and adding some special chapter when itʼs necessary.
I havenʼt include resume about some information that itʼs in the book but not in the slides
like “Suport for Multi-Registry Environments” or “Publishing a Service Definition with
Multiple Binding”. This happens cause this resume is more focused to the course than the
book.
The service provider is the business that provides access to the Web service and
publishes the service description in a service registry.
Registry mechanism:
In the first approach, the service provider sends the service description through
email, ftp or CD to the service requestor in accordance to a previously agreed
business partnership. This is a static and a very simple approach.
The UDDI approach provides the concept of point to a service definition. The
providers can define a taxonomical classification of their services, provide a
new technical model, reference an existing technical model which might later be
used by other service providers. The provider can change his service description
without changing the UDDI reference.
Definition UDDI:
2. UDDI (Universal Description, Discovery and Integration) (Slide page 14 and [from]
page 8)
The purpose of UDDI is to facilitate service discovery both at design time and the
dynamically at runtime.
UDDI defines data structures and APIs for publishing service description in the registry and
for querying the registry.
2.1 Registry requirements (Slide page 13. Not found in the book)
The publisherAssertion
The publisherAssertion is used to define a relationship between two or more
businessEntity.
The publisherAssertion provides a method to link together two or more business that are
related to each other.
The businessEntity
The businessEntity provides information about a business
The businessEntity can contains references to one or more businessService.
The businessService
The businessService describes the business description for a Web service.
The bindingTemplate
The tModel
A tModel is used to define the technical specification for a service.
The subscription
The subscription describes a standing request to keep track of changes to the entities
described by the subscription.
Example: businessEntity
The following example presents a businessEntity element that contains one
businessService element. That businessService element contains two bindingTemplate.
<businessEntity businessKey=”5443890-573E-11D8-B936-000629DC0A53”>
! <name>SkatesTown</name>
! <description>UDDI businessEntity for SkatesTown</description>
! <contacts>
! ! <contact useType=”Technical Information”>
! ! ! <description xml:lang=”en”>
! ! ! ! CTIO for technical information</description>
! ! ! <personName> ... </personName>
! ! </contact>
! <businessServices>
! ! <businessService
! ! ! serviceKey=”4C379407-3E1E-DC97-B1C7-F68597DA4ADB”
! ! ! businessKey=”55BB30DB-565A-4EF9-BA2E-83118AED644D”>
! ! <name>Purchase Order submission </name>
! ! <description>SkatesTown purchase order submission service. </description>
! ! <bindingTemplates>
! ! ! <bindingTemplate bindingKey=”...someKey...”
! ! ! ! ! serviceKey=”...someKey...”>
! ! ! ! <description>
! ! ! ! ! We based (HTTP) purchase order submission service.
! ! ! ! </description>
! !
! ! ! ! <accessPoint
! ! ! ! ! ! URLType=”http://www.skatestown.com/
! ! ! ! ! ! ! ! Services/poSumbmission.html”>
! ! ! ! </accessPoint>
! ! ! ! <tModelInstanceDetails>
! ! ! ! ! <tModelInstanceInfo tModelKey=”...someKey ...”>
V1.1 Last modification: 29/05/2010! Page 6
Programming Web Services - Lec. 5 UDDI! DarkSwitch 2010
! ! ! <bindingTemplate bindingKey=”...someKey...”
! ! ! ! ! serviceKey=”...someKey...”>
! ! ! ! <description>
! ! ! ! ! SOAP based purchase order submission service
! ! ! ! </description>
! ! ! !
! ! ! ! <accessPoint
! ! ! ! ! ! URLType=”http://www.skatestown.com/
! ! ! ! ! ! ! ! Services/poSumbmission.html”>
! ! ! ! </accessPoint>
! ! ! ! <tModelInstanceDetails>
! ! ! ! ! <tModelInstanceInfo tModelKey=”...someKey ...”>
! ! ! ! ! ! <description>
! ! ! ! ! ! ! Reference to tModel Web service inter. def.
! ! ! ! ! ! </description>
! ! ! ! ! </tModelInstanceInfo>
! ! ! ! </tModelInstanceDetails>
! ! ! </bindingTemplate>
! ! </bindingTemplates>
! ! ! <categoryBag>
! ! ! ! <keyedReference
! ! ! ! ! keyName=”Sports equipment and accessories”
! ! ! ! ! keyVale=”49221500”
! ! ! ! ! tModelKey=”uuid: ...someKey...” />
! ! ! </categoryBag>
! ! </businessService>
! </businessServices>
! !
! <identifierBag>
! ! <keyedReference keyName=”DUNS” keyValue=”00-111-1111”
! ! ! tModelKey=”uuid: ...someKey...” />
! </identifierBag>
! <categoryBag>
! ! <keyedReference keyName=”sporting and Athletic goods Manufacturing”
! ! ! ! ! keyValue=”33992” tModelKey=”uuid: ...someKey...” />
! ! <keyedReference keyName=”New York”
! ! ! ! ! keyValue=”US-NY” tModelKey=”uuid: ...someKey...” />
! </categoryBag>
</businessEntity>
Example of publisherAssertion:
In this example, a publisherAssertion is used to model the relationship between WeMakeIt
Inc. and its subsidiaries in Asia and Europe.
! <publisherAssertion>
! ! <fromKey>
! ! ! ...WeMakeItKey...
! ! </fromKey>
! ! <toKey>
! ! ! ...WeMakeItAsianKey...
! ! </toKey>
The fromKey contains a reference to WeMakeIt. The toKey element references the
businessEntity for WeMakeIt Asia Inc. And the keyedReference indicates the type of
relationship between the two entities.
In this example, we refers that WeMakeIt as the parent of WeMakeItAsian
Then, for those service requestors that user the services provided by WeMakeIt, this
publisher assertion could be used to find another service provider that may provide the
same type of services.
Before you can invoke (or bind to ) a Web service, you need to know the serviceʼs
technical details, including information such as the message formats and transport
protocols.
The serviceʼs technical details are supplied in the description of the service.
The tModel allows various entities (such as industry groups, standard bodies, and
businesses) to publish abstract service specification that can then be used by other
entities that implement services.
! ! <overviewDoc>
! ! ! <description xml:lang=”en”>
Reference to the WSDL document that contains the e-Tours
standard service interface definition for the purchase order
submission service.
! ! ! </description>
! ! ! <overviewURL>
! ! ! ! http://ww.e-Torus.com/services/poSubmission.wsdl
! ! ! </overviewURL>
! ! </overviewDoc>
! ! <identifierBag>
! ! ! <keyedReference keyName=”DUNS keyValue=”00-222-2222”
! ! ! ! tModelKey=”...tModelKey...”>
! ! </identifierBag>
! ! <categoryBag>
! ! ! <keyedReference keyName=”uddi-org:types” keyValue=”soapSpec”
! ! ! ! ! ! ! ! ! tModelKey=”...tModelKey...” />
! ! ! <keyedReference keyName=”uddi-org:types keyValue=”wsdlSpec”
! ! ! ! ! ! ! ! ! tModelKey=”...tModelKey...”/>
! ! ! <keyedReference keyName=”Sports equipment and accessories”
! ! ! ! ! ! keyValue=”49221500” tModelKey=”...tModelKey”/>
! ! </categoryBag>
! <tModel>
The only change SkatesTown would make is in the bindingTemplate for the SOAP-based
WEb-service binding. The tModelInstanceInfo element must be updated to reference the
e-Torus tModel listed previously:
Example:
V1.1 Last modification: 29/05/2010! Page 9
Programming Web Services - Lec. 5 UDDI! DarkSwitch 2010
Each of these taxonomies is identified and referenced using a predefined tModel Key.
• The North American Industry Classification System (NAICS) for classifying businesses
by industry
• The Universal Standard Product and Services Classification (UNSPSC) for product and
service classifications
V1.1 Last modification: 29/05/2010! Page 10
Programming Web Services - Lec. 5 UDDI! DarkSwitch 2010
The tModelKey attribute is a simple but powerful extension mechanism that acts as a
namespace qualifier for the values specified in the other two attributes.
Example:
" <categoryBag>
" " <keyedReference keyName=”Sporting and Athletic Goods Manufacturing”
" " " keyValue=”33992”
! ! ! tModelKey=”...NAICStModelKey...” />
" " <keyedReference keyName=”New York”
" " " keyValue=”US-NY”
! ! ! tModelKey=”...ISO3166tModelKey...”>
" </categoryBag>
In this example, the business definition for SkatesTown is categorized as a Sporting and
Athletic Goods Manufacturing business with a key value of 33992 using the NAICS
taxonomy.
The business location is defined as New York with a Key value of US-NY using the ISO
3166 geographical categorization scheme.
Example:
! <categoryBag>
! ! <keyedReference keyName=”Sporting and Athletic Goods Manufacturing”
! ! ! keyValue=”33992”
! ! ! tModelKey=”...NAICStModelKey...” />
! ! <keyedReference keyName=”New York”
V1.1 Last modification: 29/05/2010! Page 11
Programming Web Services - Lec. 5 UDDI! DarkSwitch 2010
! ! ! keyValue=”US-NY”
! ! ! tModelKey=”...ISO3166tModelKey...”>
! ! <keyedReference keyName=”Yahoo Business Taxonomy”
! ! ! keyValue=”Business_and_Economy/Shopping_and_Services/Sports/
! ! ! ! ! ! ! skateboarding/Deck_andTruck_Makers/”
! ! ! tModelKey=”...YahootModelKey”>
! </categoryBag>
Example:
SkatesTown can identify itself with a D-U-N-S number by using the following
identifierBag.
<identifierBag>
" <keyedReference keyName=”DUNS”
" " keyValue=”00-11-1111”
" " tModelKey=”...D-U-N-StModelKey...” />
</identifierBag>
They are almost the same. The unique difference is where to search or discover them.
When some pre-defined or custom created categories are in categoryBag, then the other
can search (discover) your business under some specified categories.
When some pre-defined or custom created keyedReference are in identifierBag, then the
other can search(discover) your business with a specific identifier like D-U-N-S number.
Example:
Businesses in the e-Torus marketplace can identify themselves using the e-Torus
identification tModel as a namespace.
<tModel tModelKey=”...eTorustModelKey..”>
! <name>e-Torus Registry</name>
! <description xml:lang=”en”>e-Torus Registry Number </description>
! <categoryBag>
! ! <keyedReference
! ! ! keyName=”Unique identifiers for member companies”
! ! ! keyValue=”identifier”
! ! ! tModelKey=”...someKey...”>
! ! <categoryBag>
! </tModel>
<identifierBag>
" <keyedReference keyName=”DUNS”
" " keyValue=”00-11-1111”
" " tModelKey=”...D-U-N-StModelKey...” />
" <keyedReference keyName=”eTorus Registry” keyValue=”12345”
" " tModelKey=”...eTorustModelKey...”>
</identifierBag>
• Yellow Page: Contains classification information aout the types and location of the
service that the business entity offers.
" The SkateTown could be its classification as a sports equipment manufacturer and
retailer, and more specifically as a skateboard manufacture and retailer.
• Green Page: Contains information about the details of how to invoke the offered
services.
" For example, if SkatesTown were to offer its catalog online, its green pages entry
would have a reference to its catalog URL.
The businessService is the root element for describing a logical business service.
On our example, the logical business service could be the services provided by
SkatesTown.
the businessService entry must contain a direct reference to the businessEntry entry that
itʼs associated with. This is done using the businessKey attribute on the businessService
element.
The same logical service may have more than one type of binding. (SOAP-based HTTP
binding, HTTP browser binding, email SMTP binding...)
An assertion isnʼt complete until the publishers of both businessEntity entries have made
the sam assertion.
! <publisherAssertion>
! ! <fromKey>
! ! ! ...WeMakeItKey...
! ! </fromKey>
! ! <toKey>
! ! ! ...WeMakeItAsianKey...
! ! </toKey>
Entries in the registry can be published and queried using a SOAP-based interface.
With the SOAP-based interface, the SOAP-based message is used for all publish and
inquiry operations.
Most UDDI registries requiere you to register before you can publish any UDDI entries.
With the publisher account, you can create entries in the registry.
Entries in the registry are owned by the publisher who created them, and only the owner
can update or delete a registry entry.
To use a publication API call you must first obtain an authentication token using the
get_authToken API call.
Example of get_authToke:
For the find operations, we can set some criteria like name, identifierBag, categoryBag or
tModelBag.
The most complete call is get_registerInfo. This message is used to obtain a COMPLETE
LIST of businessEntity and tModel entries.
! ! <businessServices>
! ! ! <businessService
! ! ! ! serviceKey=”4C379407-3E1E-DC97-B1C7-F68597DA4ADB”
! ! ! ! businessKey=”55BB30DB-565A-4EF9-BA2E-83118AED644D”>
! ! ! ! <name>Purchase Order submission </name>
! ! ! ! <description>
! ! ! ! ! SkatesTown purchase order submission service.
! ! ! ! </description>
! ! ! ! <bindingTemplate>
! ! ! ! ! ....
! ! ! ! </bindingTemplate>
! ! ! ! <categoryBag>
! ! ! ! ! <keyedReference
! ! ! ! ! ! keyName=”Sports equipment and accessories”
V1.1 Last modification: 29/05/2010! Page 17
Programming Web Services - Lec. 5 UDDI! DarkSwitch 2010
! ! ! ! ! ! keyVale=”49221500”
! ! ! ! ! ! tModelKey=”uuid: ...someKey...” />
! ! ! ! </categoryBag>
! ! ! </businessService>
! ! </businessServices>
! !
! ! <identifierBag>
! ! ! <keyedReference keyName=”DUNS” keyValue=”00-111-1111”
! ! ! ! ! ! ! ! tModelKey=”uuid: ...someKey...” />
! ! </identifierBag>
! ! <categoryBag>
! ! ! <keyedReference
! ! ! ! ! keyName=”sporting and Athletic goods Manufacturing”
! ! ! ! ! keyValue=”33992” tModelKey=”uuid: ...someKey...” />
! ! ! <keyedReference keyName=”New York”
! ! ! ! ! keyValue=”US-NY” tModelKey=”uuid: ...someKey...” />
! ! </categoryBag>
! </businessEntity>
</save_business>
Example of get_businessDetail:
! ! <businessKey> ...someBusinessKey...
! ! </businessKey>
! </get_businessDetail>
2.4.1 Policy
2.4.2 Security
There is method to move entities between UDDI registries without having to create new
keys.
Initially, the registry itself has authority for the root partition of the hierarchy.
Only the publisher associated with a particular partition is given the authority to assign
keys within the partition.
V1.1 Last modification: 29/05/2010! Page 19
Programming Web Services - Lec. 5 UDDI! DarkSwitch 2010
The publisher with authority for a given partition may designate any publisher it chooses
for any partition directly below the partition it manages, provided it has not already
designated a publisher to that partition.
The publisher with authority for a partition may transfer its authority to another publisher.
UDDI has no direct support for WSDL or any other service description mechanism.
2.5.1 How to Publish WSDL-Based Service Description (just for your interes)
Documents which describe how to publish WSDL-based service description in a UDDI
registry:
This figure show the major WSDL elements map in to UDDI elements.
If the service interface definition contains more than one binding element, the
reference to the service interface may include a pointer to a specifica WSDL binding
element.
In particular, the Web service location (address) listed in a WSDL port element must be
the same as the value in the UDDI accessPoint element.
The WS-Inspection defines how a client application can locate Web services descriptions
that reside on a particular Web server.
WS-Inspection requires you to know the location of a service provider so that you can
inspect its Web site.
If the developer knows the Web server on which a Web server resides, the developer can
use WS-Inspection to find WSDL document.
If the developer doesnʼt know the Web server, she/he would use UDDI to locate the
service.
Ws-ServiceGroup defines a method for grouping together Web services and WS-
Resources.
Members of a ServiceGroup must conform to the membership rules and constraints for the
ServiceGroup.
Then the meaningful queries can be processed to locate entries in the ServiceGroup.