1 / 44

G52IWS: Universal Description, Discovery and Integration (UDDI) ‏

Chris Greenhalgh 2007-11-05. G52IWS: Universal Description, Discovery and Integration (UDDI) ‏. Contents. Overview History/standards UDDI data structures and UUIDs Categorisation Inquiry API and examples Find methods; get methods WSDL and UDDI Publishing API Limitations. UDDI Overview.

jeffreycruz
Download Presentation

G52IWS: Universal Description, Discovery and Integration (UDDI) ‏

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chris Greenhalgh 2007-11-05 G52IWS: Universal Description, Discovery and Integration (UDDI)‏

  2. Contents • Overview • History/standards • UDDI data structures and UUIDs • Categorisation • Inquiry API and examples • Find methods; get methods • WSDL and UDDI • Publishing API • Limitations

  3. UDDI Overview • Realised as UDDI registries • Enables businesses providing services to register information to enable their discovery • “white pages” – address, contact & known identifiers • “yellow pages” – industrial categorizations using standard taxonomies • “green pages” – technical information about exposed services • Enables web service clients to discover potential services • Enables businesses to discover • Potential business partners • Potential services to make use of

  4. UDDI in the Web Service Architecture Registry: UDDI & WSDL Service Broker: UDDI registry Manual registry & discoveryof businesses & services, e.g. browser-based Register service: UDDI publishing API Discover Service: UDDI inquiry API Service Requestor Service Provider Invoke service Communication: typically SOAP (XML) over HTTP over TCP/IP Optionally secured using WS-Security Interface definition: WSDL (esp. for dynamic invocation)‏

  5. History/Standards • Started by IBM, Microsoft & Ariba • OASIS (Organization for the Advancement of Structured Information Standards) open standard • UDDI version 2 – April 2003 • UDDI version 3 – Feb. 2005 • http://www.oasis-open.org/specs/index.php • See also http://uddi.xml.org/ community site • See also Java API for XML Registries (JAX-R)‏

  6. UDDI registries • May be • Public – available to anyone • Private – operated for one particular group of participants, often with more security • Each is independent by default • different UDDI key namespaces • Can be accessed as a web service • possibly among other methods • May be physically distributed across multiple nodes • Which logically provide interfaces to the same information (the same registry)‏

  7. UDDI APIs • A UDDI registry node implements one or more UDDI APIs • Inquiry • Publication • And for UDDI 3: • Security • Custody transfer • Subscription • With client Subscription Listener API • Replication • Specified in terms of XML schema types • For use with SOAP document/literal style

  8. UDDI Data Structures (References are tModelInstances)‏

  9. UUIDs • All structures (except publisherAssertion) are identified by 128-bit globally unique identifier also known as UUID. • E.g. uuid:23453aef-af35-6a3f-c34a-bf798dab965a • These UUIDs can later be used as keys to access the specific data within the registry.

  10. <businessEntity> • Primary information about a business • Contact information • Categorization of business in Specific taxonomy or classification scheme(s)‏ • Identifiers • Relationships to other business entities • See <publisherAssertion> • Descriptions of the business See Inquiry API section for examples

  11. <publisherAssertion> • Used to represent a relationship between <businessEntity>s • Relationship may be of any kind • E.g. partners, business-to-customer • Must be asserted by BOTH business entities through their own <publisherAssertion>s before the relationship is visible • So that a business cannot unilaterally claim a relationship that does not actually exist

  12. <businessService> • Represents a service of a business • Web service, telephone service, etc. etc. • Abstract representation • Contained by a <businessEntity> • Can be referenced by other <businessEntity>s

  13. <bindingTemplate> • Contained by a <businessService> • Describes the service in terms of • Pointers to technical descriptions • i.e. <tModel>s • Access URLs • E.g. SOAP endpoint URLs

  14. <tModel> • Identifies/describes a service specification or behaviour • Typically contains a link to the service specification • Does not actually contain the specification • E.g. a link to a WSDL document or textual specification

  15. Additional data structures • <identifierBag> • for <businessEntity> or <tModel> • E.g. D-U-N-S numbers (9 digit business identifier), tax IDs • <categoryBag> • for <businessEntity>, <businessService> or <tModel> • Categorisation in some system/taxonomy • (see next slides)‏ • Support enquiry

  16. Categorization in UDDI registries • (aka “classification”)‏ • Esp. useful for searching/discovery • Extensible framework, including • Standard schemes - see next slide • Arbitrary additional schemes • Identified by <tModel>s • Categorisation scheme may be: • “Checked” – checked with categorisation organisation during publishing • “Unchecked” – no checking performed

  17. Standard classification schemes • NAICS (North American Industry Classification System)‏ • e.g. 424920=Book, periodical and newspaper merchant wholesalers • http://www.census.gov/epcd/www/naics.html • UNSPSC (United Nations Standard Poducts and Services Classification)‏ • E.g. 55101523=Exercise books • http://www.unspsc.org/ • ISO 3166 geographic coding standard • E.g. 826/GBR/GB=United Kingdom, GB-NGM=Nottingham (unitary authority)‏ • http://en.wikipedia.org/wiki/ISO_3166

  18. Inquiry API • Used to find matching entities: • <find_business>, <find_relatedBusinesses>, <find_service>, <find_binding>, <find_tModel> • Or to get detailed information: • <get_businessDetail>, <get_businessDetailExt>, <get_serviceDetail>, <get_bindingDetail>, <get_tModelDetail> • Specified as XML schema elements

  19. Find_xx Inquiry API functions • Support browse, search and narrow • Returns abbreviated information • Including UDDI key • Used to then get detailed information

  20. <find_business> operation • Request syntax (UDDI 2.0): • <find_business [maxRows="nn"] generic="2.0" xmlns="urn:uddi-org:api_v2"> [<findQualifiers/>] [<name/> [<name/>]...] [<discoveryURLs/>] [<identifierBag/>] [<categoryBag/>] [<tModelBag/>] </find_business> ‘%’ wildcard, OR See earlier notes, OR Apply to binding asfingerprint, AND

  21. Example request <uddi:find_business generic="2.0" maxRows="10"> <uddi:name> ACM% </uddi:name> </uddi:find_business> “Developing Java Web Services”

  22. Example response“Developing Java Web Services” listing 5.4 <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV= "http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <businessList xmlns="urn:uddi-org:api_v2" generic="2.0" operator="SYSTINET"> <businessInfos> <businessInfo businessKey= "uuid:23453aef-af35-6a3f-c34a- bf798dab965a"> <name xml:lang="en"> ACME Computer Services </name> <description xml:lang="en"> Provides professional services in the areas of computer software </description> (cont.)‏ One business

  23. One service <serviceInfos> <serviceInfo serviceKey= "uuid:1245sdef-af35-6a3f-c34a- bf798dab965a" businessKey="uuid:523f3aef- af35-6a3f-c34a-bf798dab965a"> <name xml:lang="en"> Billing Services </name> </serviceInfo> </serviceInfos> </businessInfo> </businessInfos> </businessList> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

  24. <findQualifiers> element • List of <findQualifier> enumeration, e.g. • <findQualifiers> <findQualifier> caseSensitiveMatch </findQualifier> </findQualifiers> • Includes: exactNameMatch, caseSensitiveMatch, sortByNameAsc, sortByNameDesc, sortByDateAsc (default), sortByDateDesc

  25. <find_relatedBusinesses> operation • Return UUIDs of related businesses (!)‏ • Given a reference businessKey (UUID)‏ • Optional findQualifiers • Optional keyedReferences

  26. <find_service> operation • Request syntax (UDDI 2.0): • <find_service businessKey="uuid_key" [maxRows="nn"] generic="2.0" xmlns="urn:uddi-org:api_v2"> [<findQualifiers/>] [<name/>[<name/>]...] [<categoryBag/>] [<tModelBag/>] </find_service> The business: required “Fingerprint”

  27. Example response <serviceList generic="2.0" operator="SYSTINET“ xmlns="urn:uddi-org:api_v2"> <serviceInfos> <serviceInfo serviceKey= "uuid:1245sdef-af35-6a3f-c34a-bf798dab965a" businessKey= "uuid:23453aef-af35-6a3f-c34a-bf798dab965a"> <name> Billing Services </name> </serviceInfo> </ServiceInfos> </serviceList> “Developing Java Web Services”

  28. <find_binding> operation • Syntax: • <find_binding serviceKey="uuid_key" [maxRows="nn"] generic="2.0" xmlns="urn:uddi-org:api_v2"> [<findQualifiers/>] [<tModelBag/>]</find_binding> The service: required “Fingerprint”

  29. Example Response“Developing Java Web Services” endpoint <bindingDetail generic="2.0" operator="SYSTINET“ xmlns="urn:uddi-org:api_v2"> <bindingTemplate bindingKey="uuid:acd5sdef-1235-6a3f-c34a-bf798dab124a“ serviceKey="uuid:1245sdef-af35-6a3f-c34a-bf798dab965a"> <accessPoint URLType="http"> http://www.acmecomputerservices.com/billingservices_entry/ </accessPoint> <tModelInstanceDetails> <tModelInstanceInfo tModelKey= "uuid:acd5sdef-1235-6a3f-c34a-bf798dab124b"> <description> Provides SOAP Interface. Described by BillingServices_WSDL.wsdl. </description> </tModelInstanceInfo> </tModelInstanceDetails> </bindingTemplate> </bindingDetail> tModel summary

  30. <find_tModel> operation • Request syntax: • <find_tModel [maxRows="nn"] generic="2.0“ xmlns="urn:uddi-org:api_v2"> [<findQualifiers/>] [<name/>] [<identifierBag/>] [<categoryBag/>]</find_tModel>

  31. Example Response“Developing Java Web Services” <tModelList generic="2.0" operator="SYSTINET“ xmlns="urn:uddi-org:api_v2"> <tModelInfos> <tModelInfo tModelKey= "uuid:acd5sdef-1235-6a3f-c34a-bf798dab124b"> <name> SOAP_WSDL_BillingServices </name> </tModelInfo> </tModelInfos> </tModelList>

  32. Get_xx inquiry API functions • Support drill-down • Typically getting more information for specific entities • Takes UUID as key • Operations: • <get_businessDetail>  <businessDetail> • <get_serviceDetail>  <serviceDetail> • <get_bindingDetail>  <bindingDetail> • <get_tModelDetail>  <tModelDetail>

  33. <get_businessDetail> operation • Example request: • <uddi:get_businessDetail generic="2.0"> <businessKey> 23453aef-af35-6a3f-c34a-bf798dab965a </businessKey> </uddi:find_tModel>

  34. Example response“Developing Java Web Services” <businessDetail generic="2.0" operator="SYSTINET" xmlns="urn:uddi-org:api_v2"> <businessEntity authorizedName = "John Smith" businessKey="uuid:23453aef-af35-6a3f-c34a-bf798dab965a" operator="SYSTINET"> <discoveryURLs> <discoverURL useType="businessEntity">http://www.systinet.com/wasp/uddi/ discovery?businessKey= 23453aef-af35-6a3f-c34a-bf798dab965a </discoveryURL> </discoveryURLs> <name> ACME Computer Services </name> <description xml:lang="en"> Provides professional services in the areas of computer software </description>

  35. <contacts> <contact useType="information"> <description xml:lang="en"> For sales related information </description> <personName> Joe Smith </personName> <address> 1, Computer Drive, Burlington, MA 01803 USA </address> </contact> </contacts> <businessServices> ... </businessServices> </businessEntity> </businessDetail> See next slide

  36. <businessService businessKey="23453aef-af35-6a3f-c34a-bf798dab965a" serviceKey="1245sdef-af35-6a3f-c34a-bf798dab965a"> <name xml:lang="en"> Billing Services </name> <description xml:lang="en"> Billing Services </description> <bindingTemplates> ... </bindingTemplates> <categoryBag> <keyedReference keyName= "Custom Computer Programming Services" keyValue="541511" tModelKey= "uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2"/> <keyedReference keyName="United States" keyValue="US" tModelKey= "uuid:4e49a8d6-d5a2-4fc2-93a0-0411d8d19e88"/> </categoryBag> </businessService> See next slide NAICS classification ISO 3166 classification

  37. <bindingTemplate bindingKey= "uuid:acd5sdef-1235-6a3f-c34a-bf798dab124a" serviceKey="1245sdef-af35-6a3f-c34a-bf798dab965a "> <description xml:lang="en"> Here is where you should be visiting to get started with using billing services provided by us. </description> <accessPoint URLType="http"> http://www.acmecomputerservices.com/ billingservices_entry/ </accessPoint> <tModelInstanceDetails> ... </tModelInstanceDetails> </bindingTemplate> Service endpoint See next slide

  38. <tModelInstanceInfo tModelKey= "uuid:acd5sdef-1235-6a3f-c34a- bf798dab124b"> <description xml:lang="en"> Provides SOAP Interface. Described by BillingServices_WSDL.wsdl. </description> <instanceDetails> <overviewDoc> <description xml:lang="en"> Describes how to use this service </description> <overviewURL> http://www.acmecomputerservices.com/billing_ services_description/ </overviewURL> </overviewDoc> </instanceDetails> </tModelInstanceInfo> Optional instance (use)-specific information. Can also have parameters

  39. <tModel> • Has: • name • description (optional)‏ • overviewDoc (optional)‏ • Including overviewURL, e.g. WSDL ref • identifierBag (optional) – name-value pairs • categoryBag (optional) – taxonomy-specific name-value pairs

  40. WSDL and UDDI • See e.g. http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm • tModels identify • WSDL portType • WSDL Binding • businessService represents WSDL service • bindingTemplate represents WSDL port

  41. Publisher API • User to publish/change/delete the information in a UDDI registry • <save_business>, <delete_business>, <save_service>, <delete_service>, <save_binding>, <delete_binding>, <save_tModel>, <delete_tModel> • To manage relationship assertions • <get/add/set_publisherAssertions>, <get_assertionStatusReport> • <get_registeredInfo> - get businessEntity & tModels owned by this user

  42. Publisher API Security • All operations require authentication: • <get_authToken> - takes username/password, return <authToken> for subsequent use • <discard_authToken> - releases/invalidates <authToken>

  43. Limitations • Simple information model • e.g. little/no business oriented information such as business process models • cf. ebXML • Registry only, i.e. Stores only metadata • cf. ebXML Registry/repository, also stores submitted objects

More Related