1 / 22

UDDI (Universal Description, Discovery and Integration)

UDDI (Universal Description, Discovery and Integration). Dr. SVL Narasimham. Universal Description, Discovery and Integration (UDDI). UDDI technology is the core and one of the building blocks of Web services apart from SOAP and WSDL.

Télécharger la présentation

UDDI (Universal Description, Discovery and Integration)

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. UDDI(Universal Description, Discovery and Integration) Dr. SVL Narasimham

  2. Universal Description, Discovery and Integration (UDDI) • UDDI technology is the core and one of the building blocks of Web services apart from SOAP and WSDL. • UDDI is initiated by IBM, Microsoft, and Ariba and later many companies joined the UDDI community. • It powers businesses (large, medium, or small) to accelerate their business presence in this global market. • Businesses providing services can register information to enable the discovery of their services and business profile by prospective customers and/or partners. • Enables businesses to discover other businesses for expanding potential business partnerships. • Provides an opportunity to step into new markets and services.

  3. UDDI Registries • An implementation of the UDDI specification is termed as a UDDI registry. • UDDI registry services are a set of software services that provide access to the UDDI registry. • Registry services can perform activities such as: • Authenticating registry requests • Authorizing registry requests • Logging registry requests • Load-balancing requests • ...

  4. Interacting with a UDDI Registry There are two ways to interact with UDDI registry • Browser-based Graphical User Interface (GUI) • https://uddi.rte.microsoft.com/search/frames.aspx • https://www-3.ibm.com/services/uddi/v2beta/protect/registry.html • https://uddi.hp.com/uddi/index.jsp • http://udditest.sap.com/ • http://www.systinet.com/uddi/web • Programmatic Interface • These programmatic interfaces are based on SOAP, because the UDDI registry supports SOAP as the communication protocol.

  5. Public and Private UDDI Registries A UDDI registry can be operated in two modes - public and private mode. • Public UDDI registry • Available for everyone to publish/query the business and service information on the Internet. • Public registries can be a logical single system built upon multiple UDDI registry nodes that have their data synchronized through replication. • Global grouping of UDDI registry nodes is known as a UDDI Business Registry, or UBR. • Content can be added into a UBR from any node, but can be modified or deleted only at a node at which it was inserted. • Private UDDI Registry • Operated by a single organization or a group of collaborating organizations to share the information that would be available only to the participating bodies. • Private UDDI registries can impose additional security controls to protect the integrity of the registry data and to prevent access by unauthorized users. • A private node also can participate in information replication.

  6. The Three Levels of UDDI UDDI specification does not explicitly specify different types of usage levels of the UDDI registry. The categorization of these levels is rather implicit. • White pages level • Register just the very basic information about their company, such as company name, address, contact information etc. • Yellow pages level • Register and classify information based on categorizations (also known as classification schemes or taxonomies) • Green pages level • Publish the technical information describing the behavior and supported functions on the Web services

  7. UDDI Data Structures • <businessEntity> • Represents the primary information about a business, such as contact information, categorization of the business according to a specific taxonomy or classification scheme, identifiers, relationships to other business entities, and descriptions about that particular business. The categorizations are discussed in a later section titled Support for Categorization in UDDI Registries. • <publisherAssertion> • Relationships with other business entities are represented • Ensures both business parties have entry about the relationship • <businessService> • Represents the service of a business in a logical XML structure • <bindingTemplate> • Consists of pointers to technical descriptions and access URLs of the service • <tModel> • Provides a description of a particular specification or behavior of the service. The <tModel> structure contains a link to the service specification, which is managed elsewhere, like WSDL. (t stands for either type or technical)

  8. Additional UDDI Data Structures • <identifierBag> • information about the common forms of identification such as Registration numbers and tax IDs • <categoryBag> • Contains information about categories to which this service belongs to

  9. UDDI Structure

  10. Categorization Schemes

  11. Programming with UDDI – Publishing API

  12. Programming with UDDI – Inquiry API

  13. Find_XX Functions: All Code must be within SOAP message • <find_business [maxRows=''nn"] generic="2.0" xmlns="urn:uddi-org:api_v2"> [<findQualifiers/>] [<name/> [<name/>]...] [<discoveryURLs/>] [<identifierBag/>] [<categoryBag/>] [<tModelBag/>] </find_business> • <find_Business> <uddi:find_business generic=”2.0” maxRows=”10”> <uddi:name> ACM </uddi:name> </uddi:find_business>

  14. Soap Response <?xml version="l.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">      <S0AP-ENV:Body>           <businessList xmlns="urn:uddi-org:api_v2"           generic="2.0"  operator="SYSTINET">                <businessInfos>                     <businessInfo businessKey= "uuid:23453aef-af35-6a3f-c34abf798dab965a"> <name xml:lang=''en"> ACME Computer Services</name><description xml:lang="en">      Provides professional services  in the areas of computer software</description><serviceInfos>     <serviceInfo serviceKey= "uuid:1245sdef-af35-6a3f-c34abf798dab965a“  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>

  15. find_relatedBusinesses Function • <find_relatedBusinesses> <find_relatedBusinesses generic=''2.0" xmlns="urn:uddi-org:api_v2"> [<findQualifiers/>] <businessKey/> [keyedReference/> </find_relatedBusinesses> <uddi:find_relatedBusinesses generic="2.0"> <uddi:businessKey> 23453aef-af35-6a3f-c34a-bf798dab965a </uddi:name> </uddi:find_relatedBusinesses>

  16. find_relatedBusiness response <relatedBusinessesList generic=”2.0” operator=”SYSTINET” xmlns=”urn:uddi-org:api_v2”> <businessKey> 23453aef-af35-6a3f-c34a-bf798dab965a </businessKey> <relatedBusinessInfos> <relatedBusinessInfo> <businessKey> 22443aef-ac35-2f3f-c34a-ca4423bb931c </businessKey> <name> XYZ Corporation </name> <description> Outsourced HR Services provider </description> <sharedRelationships> <keyedReference tModelKey=”uuid:...” keyName=”XYZ Provides HR Services to ACME Computer Services” keyValue=”1”> </sharedRelationships> </relatedBusinessInfo> </relatedBusinessInfos> </relatedBusinessesList>

  17. find_service <find_service businessKey=uuid_key” [maxRows=”nn”] generic=”2.0” xmlns=”urn:uddi-org:api_v2”> [<findQualifiers/>] [<name/>[<name/>]...] [<categoryBag/>] [<tModelBag/>] </find_service> <uddi:find_service generic=”2.0”> <findQualifiers> <findQualifier> caseSensitiveMatch </findQualifier> </findQualifiers> <uddi:name> Bill </uddi:name> </uddi:find_service>

  18. find_service 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>

  19. Programming Steps for Publishing The entire publishing logic is provided by the doSubmit() method of the jws.ch5.SubmitBusiness class, and hence, its implementation is of most interest to us. The following are the steps of doSubmit(): 1. Construct the UDDIApiPublishing object. This is the object that we will use to actually publish to the registry. 2. Get hold of the authentication token from the registry with the help of the get_authToken() API call on the UDDIApiPublishing object. Once we have the authentication token, we should be able to publish to the registry. 3. Create the BusinessEntity structure and populate it with the name and description of the business to submit. Note that we do not have to create the key for this business because the registry, upon submitting the business information, would generate it. 4. Now, get hold of the SaveBusiness object. This object represents a collection of businesses that we wish to submit at a time. Hence, we will need to add the BusinessEntity object that we just created to the SaveBusiness object using the addBusinessEntity() method. 5. Now, publish the business information through a save_business() call on UDDIApiPublishing object. This method call takes the SaveBusiness object as an argument and returns the BusinessDetail object upon completion. 6. After the publishing operation has been executed, discard the authentication token. Finally, check whether the publishing operation was successful or not.

  20. Programming Steps for Searching The entire querying logic is provided by the doSearch() method of the jws.ch5.SearchBusiness class, and hence, its implementation is of most interest to us. The following are the steps to implementing a doSearch(): • 1. Construct the FindBusiness object. This object represents the criteria for the search operation. Hence, we will need to add our criteria, that is, the name pattern that the user supplied, using the addName() method on this object. • 2. Construct the UDDIApiInquiry object that we would use for placing the inquiry call. • 3. Finally, invoke the business inquiry operation through the find _business() method on the UDDIApiInquiry object. This method returns a BusinessList object containing the BusinessInfo structures. • 4. Now, check whether the businesses are found matching the given criteria. If there are matching businesses, we need to traverse through their BusinessInfo structures and get hold of the name and key UUID of the business.

  21. Programming Steps for Deleting The deletion logic is provided by the doDelete() method of the jws.ch5.DeleteBusiness class, and hence, its implementation is of most interest to us. The following are the steps to implementing doDelete(): • 1. Construct the UDDIApiPublishing object. This is the object that we would use to actually delete information from the registry. • 2. Get hold of the authentication token from the registry with the help of the get_authToken() API call on the UDDIApiPublishing object. Once we have a valid authentication token, we should be able to delete from the registry. • 3. Now, get hold of the DeleteBusiness object. This object represents a collection of businesses that we wish to delete at a time. Hence, we will need to add businesses referenced through BusinessKey to this object, using the addBusinessKey() method on DeleteBusiness. • 4. Now, delete the business information through the delete_business() call on the UDDIApiPublishing object. This method call takes the DeleteBusiness object as an argument and returns the DispositonReport object upon completion. • 5. Check the DispositionReport object to see if this operation was a success or a failure.

  22. Limitations of UDDI UDDI is an evolving standard. UDDI provides support for storing only the basic data structures, such as businesses, users, services, and service technical descriptions. However, storing information about business Web services requires more than just the basic support. UDDI is just a registry as opposed to ebXML Registry/Repository, which is, as the name suggests, a registry as well as repository. The basic difference between a registry and repository is that a registry holds just the metadata of the objects submitted, whereas a repository actually stores the submitted objects.

More Related