390 likes | 482 Views
UDDI (Universal Description, Discovery, and Integration). An Overview – part II. Version :. 1.0. Date :. 0 2 Mar 2006. Pages. 20. Responsible Author :. Gabriele Zacco (zacco@itc.it). Co-Authors :. Status :. Draft [ ] Proposal [ ] Released [ X ]. Confidentiality :.
E N D
UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : 1.0 Date : 02Mar 2006 Pages 20 Responsible Author : Gabriele Zacco (zacco@itc.it) Co-Authors : Status : Draft [ ] Proposal [ ] Released [ X ] Confidentiality : Public [ ] Internal [ X ] Restricted [ ]
Outline • Brief recap of last episode • UDDI Data structures • UDDI API • Querying • Publishing • Using WSDL and BPEL in a UDDI registry
UDDI in a Nutshell • UDDI is an open standard for publishing and discovering the software components of a service-oriented architecture • Cross-industry effort driven by major platform and software providers, marketplace operators and e-business leaders within the OASIS standard consortium • UDDI allows for a standard interoperable platform that enables companies and applications to quickly, easily and dynamically(at run-time) find and use Web services over the Internet • The UDDI protocol is another XML-based building block of the Web services stack along with SOAP (standard for invoking remote operations) and WSDL (standard for specifying what these operations look like)
UDDI Registry Service • The UDDI specifications define a registry service for Web services • UDDI is a meta service for locating web services by enabling robust queries against rich metadata. • Service providers can use UDDI to advertise the services they offer • Service consumer can use UDDI to discover services that suites their requirements and to obtain the service metadata needed to consume those services.
UDDI Interaction • Publisher and user are free to communicate directlyas soon as the former has published on a UDDI registry and the latter has performed his queries • Standards for communicating are important, also considering that we are not only talking about data retrieval but also function/methods calling (web services) and workflow executions (processes)
UDDI Registry Types • UDDI allows operational registries to be maintained for different purposes in different contexts • A business may deploy one or more: • Private registries: • Isolated from the public network, firewalled • Restricted access • No shared data • Public registries: • Unrestricted open and public access • Data is shared with other registries • Affiliated registries • Controlled environment • Access limited to authorized clients • Data shared in a controlled manner • Private registry supports intranet applications, while a public registry support extranet applications • Affiliated registries supports all other infrastructural topologies e.g., involving delegation, distribution, replication, subscription, that reflects the realities and the relationship of the underlying business processes
UDDI Registry Data Model • The core information model of UDDI registries is made of several data structures: • businessEntity (info about the organization that published the service) • businessService (description of a service business function) • bindingTemplate (service’s technical details) • tModel (attributes or metadata about the service such as taxonomies, transports, digital signatures) • publisherAssertions (relationship among entities in the registry) • subscription (standing request to track changes to a list of entities) • Each data structure within a given registry is assigned a Universally Unique ID (or “key”, also called UUID) • UDDI allows users to specify different taxonomies for providing semantic structure to the information about Web services contained in a registry
UDDI Data Structures • businessEntity: • White pages service:supply contacts, addresses, and other info that are useful to get in touch with publishers for preliminary negotiations and to get technical support • businessService: • Yellow pages service: enables companies to search for specific information about services published by other companies • bindingTemplate: • Supply detailed info when searching for a particular service • Contains a technical schema of the service • Important at run-time since it supplies the web address of the service • tModel: • Describes services and supply technical details for the implementation • Used for labelling taxonomies (each taxonomiy own a unique tModel that is a detailed descriptions of the data in a UDDI registry) • UUID: • All the entities within UDDI registries have a Universally Unique ID
Remarks about Data Structures • Structures overlapping: businessEntity and businessServices • You can search a company in the yellow pages (businessServices) as well; the difference is that you can search by category rather than name or other id • categoryBag is the trait-du-union: contains general categories referred to companies • Taxonomies are very important (UDDI supports different)
UDDI API • Features that supports core data management: • Authorized publishing and deleting information about a service to a registry • Querying a UDDI registry for information about a service or a company; can be generic or specific • Features that supports registry interaction: • Replicating and transferring custody of data about a service from servers to servers within a UDDI registry network • Registration key generation and management • Registration subscription API set • Security and authorization
UDDI Querying API – part I • SOAP requests (and answers) for retrieving services or activities • To be used as a first step during searches or when little info is required • Keys are returned identifying services or activities that can be used for further discovery • find_business • For searching an activity using several different criteria (name, category) • Returns abusinessList structure • find_binding • For searching a binding template associated to a service • Returns a bindingDetail structure • find_relatedBusiness • Uses the business key, returned by find_business, to find business related to it • find_service • For retrieving services published by an activity • Returns a serviceList structure • find_tModel • For searching tModel structures by name or other criteria • Returns a tModelList structure
UDDI Querying API – part II • These are other SOAP requests (and answers) that use the keys obtained from previous calls for retrieving detailed records about services or activities • Several keys can be used for each request • get_bindingDetail • Uses a bindingKey to return a bindingDetail structure • get_businessDetail, get_businessDetailExt • Uses a businessKey to return a businessDetail structure (with more or less attributes) • get_serviceDetail • Uses a serviceKey to return a serviceDetail structure • get_tModelDetail • Uses a tModelKey to return a tModelDetail structure
UDDI Publishing API (1/2) • Publishing on a UDDI registry, unlike querying, requires authorization • UDDI is in charge of verifying authorizations since SOAP can not • Logging is achieved through a get_authToken request that return a authToken to be used for subsequent interactions, until a discard_authToken is issued at the end of the interaction • Publishing means saving and deleting the four main UDDI objects (services, activities, bindings, tModels) • Save operations require one or more objects of the relevant kind (businessEntity, businessService, bindingTemplate, tModel) • Delete operations require one or more object key (businessKey, serviceKey, bindingKey, tModelKey) • Last, for establishing a relation between different businesses (find_relatedBusinesses), they both have to explicitly declare it
UDDI Publishing API (2/2) • get_authToken • discard_authToken • save_business • save_service • save_binding • save_tModel • delete_business • delete_service • delete_binding • delete_tModel • add_publisherAssertion, set_publisherAssertion • delete_publisherAssertion
<businessEntity> back to UDDI Data Structure
<contact> back to <businessEntity>
<businessService> back to UDDI Data Structures
<bindingTemplate> back to UDDI Data Structures
<categoryBag> back to <bindingTemplate>
<categoryBag> back to <businessService>
<categoryBag> back to <businessEntity>
<tModelInstanceDetails> back to <bindingTemplate>
<tModel> back to UDDI Data Structures
<find_business> back to UDDI Query API
<find_relatedBusiness> back to UDDI Query API
<find_tModel> back to UDDI Query API
<businessList> back to UDDI Query API
<find_binding> back to UDDI Query API
<bindingDetail> back to UDDI Query API
<find_service> back to UDDI Query API
<serviceList> back to UDDI Query API
<tModelList> back to UDDI Query API
WSDL and UDDI • UDDI provides a way of describing and discovering Web services and Web service providers • WSDL, that describes the abstract interfaces, protocol bindings and deployment details of network services, can be seen as a complement to the UDDI standard • Understanding the relationship between WSDL and UDDI and establishing a mapping between them allows to • Enable automatic registration of WSDL definitions in UDDI • Enable precise and flexible UDDI queries based on specific WSDL artifacts and metadata • Namespace and/or local name of a wsdl:portType tModel that represents that portType • Namespace and/or local name of a wsdl:binding tModel that represents that binding • tModel representing a portType all tModels represeting bindings for that portType • tModel representing a portType all binding templates that represent implementations of that portType • tModel representing a binding all binding templates that represent implementations of that binding • Namespace and/or local name of a wsdl:Service businessService that represents that Service
BPEL and UDDI • BPEL abstract processes complements WSDL by describing behavioral aspects of Web services • Therefore it may be of interest to exchange abstract processes between business partners • A BPEL/UDDI mapping can be established in order to: • Enable automatic registration of BPEL definitions in UDDI • Enable optimized and flexible UDDI queries on specific BPEL artifacts and metadata • Namespace and/or local name of a wsdl:process tModel that represents that process • tModel representing a portType all tModels representing processes based on that portType • tModel representing a process all tModels represent portTypes that are used by the process • tModel representing a process all bindingTemplates that implement a portType that in turn is part of the process