UDDI Best Practices 1 UDDI Overview 2 What
UDDI Best Practices 1
UDDI Overview 2
What is UDDI? “The Universal Description, Discovery and Integration (UDDI) protocol is one of the major building blocks required for successful Service Oriented Architectures. ” “UDDI creates a standard, interoperable platform that enables organizations and applications to quickly, easily, and dynamically find and use shared services over standard internet protocols such as HTTP. “ “UDDI is a cross-industry effort driven by major platform and software providers, as well as marketplace operators and e-business leaders within the OASIS standards consortium. ” OASIS 3
Analogy Real world: § Imagine the world without the yellow pages directory. How would you find a mover or a dry cleaner? Technology: UDDI is to Web Services as the Windows directory is to Windows. § When you double click on Word how does Windows know that MS Word should open that file? § UDDI represents the same level of transparency for Web Services & SOA… § 4
UDDI: Key SOA Component Enable Register & Discover Coordinate & Compose Enable interoperability between applications Scale the number of interoperable participants Create, link and adapt business rules and processes in a loosely coupled manner Apps, App Servers, Legacy, MOM/EAI UDDI BPM & composite application development 5
Why UDDI? Standards-based Flexible Wide variety of publish/discovery tools available Becoming widely adopted for “private usage” “UDDI is the de facto standard for building registries that house corporate enterprise services, and from which Web services can be accessed and consumed. ” Darryl Plummer, Gartner Group 6
UDDI Basics 7
Conceptual Overview White Pages Basic contact information and identifiers about a company or service provider. Yellow Pages Categorization of web services using taxonomies. Green Pages Technical information describing a web service 8
Key Entities Description business. Entity t. Model Information about the entity who offers a service Description of specifications for services 0. . n business. Service Bindings contain references to t. Models. These references declare the interface specifications for a service. Descriptive information about a particular family of technical offerings 0. . n binding. Template Technical information about a service entry point 9
Key Entities Example business. Entity publisher. Assertion Name: Acme Corp Desc: Purveyors of Fine Products URL: www. acme. com Contact: Joseph Kewl From Key: Acme Corp. To Key: Nadir Corp. business. Service Name: get. Price Desc: Accepts ACME product ID as a string. Returns product price as a double. binding. Template t. Model Access Point: http: //soap. acme. com/get. Price Desc: SOAP endpoint for the get. Price service. Name: get. Price Desc: WSDL for the get. Price service Overview Doc: http: //soap. acme. com/get. Price/wsdl category wsdl. Spec identifier E 1 -AA-09 -F 3 10
Categorizing Entities business. Entity category Retail Name: Acme Corp Desc: Purveyors of Fine Products URL: www. acme. com Contact: Joseph Kewl identifier business. Service category Name: get. Price Desc: Accepts ACME product ID as a string. Returns product price as a double. binding. Template Access Point: http: //soap. acme. com/get. Price Desc: SOAP endpoint for the get. Price service. publisher. Assertion From Key: Acme Corp. To Key: Nadir Corp. DUNS: 123456 Pricing category V 1. 1 t. Model Name: get. Price Desc: WSDL for the get. Price service Overview Doc: http: //soap. acme. com/get. Price/wsdl category wsdl. Spec identifier E 1 -AA-09 -F 3 11
UDDI Best Practices 12
Getting Started Obtain a general understanding of UDDI capabilities OASIS UDDI Specifications at http: //www. uddi. org § Whitepapers from UDDI vendors § Develop a detailed understanding of the use cases that drive the adoption of UDDI throughout the organization Design-time discovery § Runtime binding § Reporting § 13
Getting Started Develop a general understanding of how UDDI will fit into a company-specific Web services strategy § § § How will data and metadata be modeled? Who will be allowed to read and write? How will publications be audited? How will users learn to user the registry? How will UDDI be deployed? 14
Modeling UDDI entities Determine what constitutes a business. Entity = service provider § Business, business unit, organization, department, computer, application, program, project or person are common business. Entities § Key consideration: business. Entities are the only type of entity that can be associated with contacts § Also determine relationship among business. Entities (i. e. organizational chart) § 15
Modeling UDDI entities Determine the types of services that can be published Do it for Web Services, but consider all of your IT assets and business services § Define how those services will be represented in the registry • Standardize on the access point for each service type (i. e. URL for web services, phone number for customer service) • Determine what metadata will be provided with each service (i. e. XML schema, end user documentation, policies etc. . ) § 16
Publishing WSDL to UDDI Follow version 2. 0 of the UDDI technical note, “Using WSDL in a UDDI Registry” § Ensures interoperability with application vendors for discovering WSDL-based services • wsdl: port. Type and wsdl: binding elements map to uddi: t. Model entities • wsdl: service elements map to uddi: business. Service entities • wsdl: port elements map to uddi: binding Template entities 17
Publishing WSDL to UDDI Extend to enable better query capabilities § Map operations and types into UDDI • Categorization taxonomy to identify an entity as an operation or type • Operation Reference taxonomy to associate a service with its operations • Input and Output Type Reference taxonomy to associate an operation with its input and output types • Create a t. Model for each data type and each operation 18
Modeling UDDI entities Define a naming protocol for business. Entities and business. Services Should be intuitive and well understood as a common search pattern is based on these names § Should be enforced as deviations from the scheme can cause confusion and lessen the effectiveness of the registry § Take advantage of publisher-assigned keys More user-friendly: uddi: globalbankcom: maintaxonomy vs uuid: 2 CD 3 A 773 -874 E-2539… § Common search pattern is based on these keys § Must guarantee uniqueness across all registries § 19
Taxonomies Use taxonomies : key to promoting reuse Establish categorization schemes before deploying UDDI services and require their use when publishing § The specification does define and include some canonical taxonomies, but these are general-purpose § Build custom taxonomies that apply to your specific business or application to enhance the discovery of services § What can be categorized UDDI v 3 now supports categorization of a binding. Template § Migrate previous v 2 binding categorization strategies to take advantage of this § 20
Custom Taxonomies Build from the bottom up Begin at divisional or workgroup level § Start simple; don’t attempt to “boil the ocean” § Tackle enterprise taxonomies as necessary – enterprise taxonomies may be non-trivial § Common starting points Geography § Organization § Business Function § 21
Custom Taxonomies : An approach Step 1: Organize services according to a range of organizational and technical parameters § Organization structure § Service role § Application type § Visibility § Deployment environment § Version number § Lifecycle § Protocols § Qo. S § Authentication 22
Custom Taxonomies : An approach Step 2: Model the taxonomies Name Description Compatibility Check Current Valid Values Globalbankcom: Divisions Describes the divisions of the bank business. Entity Yes Capital. Markets, Globalbankcom: application Type Describes the service by business function business. Service Globalbankcom: lifecycle Indicates where business. Service a service is at binding. Template in its lifecycle t. Model Yes Development, staging, production, retirement …. …. business. Service Commercial. Banking, Consumer… Yes General. Ledger, Equity. Trading, Credit. Analysis… …. 23
Custom taxonomies: An approach Step 3: Apply to published entities business. Entity Globalbank-com: Divisions Name: Global-com: Credit. Card Desc: Manages credit card retail business URL: www. globalbank. com/retail/ creditcard Contact: John Smith Consumer business. Service Name: Global-com: credit. Check Desc: Checks credit rating of Potential new customer Globalbank-com: Divisions Consumer Globalbank-com: application. Type Credit. Analysis 24
Custom taxonomies: An approach Step 3: Apply to published entities binding. Template Access Point: http: //soap. acme. com/get. Price Desc: SOAP endpoint for the get. Price service. Globalbank-com: version V 2. 0 Globalbank-com: lifecycle staging t. Model Name: get. Price Desc: WSDL: type representing port. Type Overview Doc: http: //soap. acme. com/get. Price/wsdl uddi-org: types wsdl. Spec uddi-org: wsdl: types port. Types 25
Process and Procedural Considerations Standardize publications Ensures quality of data § Minimizes “pollution” in the registry § Establish publication guidelines Description and example of type of organization the provider represents § Convention used to name business. Entities and business. Services § Description of modeling approach and an example of service publication data structure. § The names and descriptions of any categorization schemes that should be used § 26
Process and Procedural Considerations Example publication guidelines § § § All business. Entities must be based on organizational units within the company All business. Entities must contain a contact that includes a phone number and an e-mail address All business. Services must provide end user documentation provided as a t. Model referenced from a binding. Template All business. Services must be categorized using the Global-com: application. Type categorization scheme All t. Model entities that represent WSDL files must be categorized with the wsdl. Spec value of the uddiorg: types taxonomy 27
Process and Procedural Considerations Enforce publication guidelines § § § Implement multiple registries for staging and production Restrict publication rights to production Establish approval process for promoting entities from staging to production If possible, automate approval process to streamline publication Ensure ownership is preserved when promoting from staging to production 28
OASIS Technical Notes Qo. S mapping TN § Performance & scalability information Versioning TN § General purpose versioning API Resources mapping TN § Publishing & discovery of XML, XSLT, XML Schema documents WSDL-to-UDDI TN § Granular publishing 29
- Slides: 29