39
1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality : 1.0 02 Mar 2006 20 Gabriele Zacco ([email protected]) Draft [ ] Proposal [ ] Released [ X ] Public [ ] Internal [ X ] Restricted [ ]

1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

Embed Size (px)

Citation preview

Page 1: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

1

UDDI (Universal Description, Discovery, and Integration)

An Overview – part II

Version :

Date :

Pages

Responsible Author :

Co-Authors :

Status :

Confidentiality :

1.0

02 Mar 2006

20

Gabriele Zacco ([email protected])

Draft [ ] Proposal [ ] Released [ X ]

Public [ ] Internal [ X ] Restricted [ ]

Page 2: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

2

Outline

1. Brief recap of last episode2. UDDI Data structures3. UDDI API

1. Querying2. Publishing

4. Using WSDL and BPEL in a UDDI registry

Page 3: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

3

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)

Page 4: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

4

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.

Page 5: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

5

UDDI Interaction

• Publisher and user are free to communicate directly as 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)

Page 6: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

6

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

Page 7: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

7

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

Page 8: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

8

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

Page 9: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

9

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)

Page 10: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

10

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

Page 11: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

11

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 a businessList 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

Page 12: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

12

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

Page 13: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

13

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

Page 14: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

14

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

Page 15: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

15

<businessEntity>

back to UDDI Data Structure

Page 16: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

16

<contact>

back to <businessEntity>

Page 17: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

17

<businessService>

back to UDDI Data Structures

Page 18: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

18

<bindingTemplate>

back to UDDI Data Structures

Page 19: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

19

<categoryBag>

back to <bindingTemplate>

Page 20: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

20

<categoryBag>

back to <businessService>

Page 21: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

21

<categoryBag>

back to <businessEntity>

Page 22: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

22

<tModelInstanceDetails>

back to <bindingTemplate>

Page 23: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

23

<tModel>

back to UDDI Data Structures

Page 24: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

24

<find_business>

back to UDDI Query API

Page 25: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

25

<find_relatedBusiness>

back to UDDI Query API

Page 26: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

26

<find_tModel>

back to UDDI Query API

Page 27: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

27

<businessList>

back to UDDI Query API

Page 28: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

28

<find_binding>

back to UDDI Query API

Page 29: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

29

<bindingDetail>

back to UDDI Query API

Page 30: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

30

<find_service>

back to UDDI Query API

Page 31: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

31

<serviceList>

back to UDDI Query API

Page 32: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

32

<tModelList>

back to UDDI Query API

Page 33: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

33

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

Page 34: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

34

WSDL/UDDI Mapping: portType - tModel

WSDL UDDI

portType tModel

portType Namespace keyedReference in categoryBag

Local name of portType tModelName

Location of WSDL doc overviewURL

Page 35: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

35

WSDL/UDDI Mapping: binding - tModel

WSDL UDDI

binding tModel (categorized as binding and wsdlSpec)

binding Namespace keyedReference in categoryBag

Local name of binding tModelName

Location of WSDL doc overviewURL

portType binding relates to keyedReference in categoryBag

Protocol from binding extension keyedReference in categoryBag

Transport from binding extension (if there is one)

keyedReference in categoryBag

Page 36: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

36

WSDL/UDDI Mapping: Service - businessService

WSDL UDDI

Service businessService (categorized as service)

Service Namespace keyedReference in categoryBag

Local name of Service keyedReference in categoryBag; optionally also the name of the service

Page 37: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

37

WSDL/UDDI Mapping: port - bindingTemplate

WSDL UDDI

port bindingTemplate

port Namespace Captured in the keyedReference of the containing businessService

port Local Name InstanceParms of the tModelInstanceInfo related to the tModel for the binding

Binding implemented by port tModelInstanceInfo with tModelKey of the tModel corresponding to the binding

portType implemented by port tModelInstanceInfo with tModelKey of the tModel corresponding to the portType

Page 38: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

38

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

Page 39: 1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality

39

BPEL/UDDI Mapping: process - tModel

BPEL UDDI

process tModel (categorized as processdef)

process Namespace keyedReference in categoryBag

Local name of process tModelName

Location of BPEL doc with process definition

overviewURL

WSDL portTypes portType tModels

port bindingTemplate