320 likes | 505 Views
UDDI Best Practices. UDDI Overview. What is UDDI?. “ The Universal Description, Discovery and Integration (UDDI) protocol is one of the major building blocks required for successful Service Oriented Architectures.”
E N D
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
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…
UDDI: Key SOA Component Enable Register & Discover Coordinate & Compose Enable interoperability between applications Apps, App Servers, Legacy, MOM/EAI Scale the number of interoperable participants UDDI Create, link and adapt business rules and processes in a loosely coupled manner BPM & composite application development
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
Basic contact information and identifiers about a company or service provider. Categorization of web services using taxonomies. Conceptual Overview White Pages Yellow Pages Green Pages • Technical information describing a web service
businessEntity businessService bindingTemplate tModel Information about the entity who offers a service Descriptive information about a particular family of technical offerings Technical information about a service entry point Description of specifications for services Key Entities Description 0..n Bindings contain references to tModels. These references declare the interface specifications for a service. 0..n 0..n
category identifier wsdlSpec E1-AA-09-F3 businessEntity businessService bindingTemplate publisherAssertion tModel Name: Acme Corp Desc: Purveyors of Fine Products URL:www.acme.com Contact: Joseph Kewl Name: getPrice Desc: Accepts ACME product ID as a string. Returns product price as a double. Access Point: http://soap.acme.com/getPrice Desc: SOAP endpoint for the getPrice service. From Key: Acme Corp. To Key: Nadir Corp. Name: getPrice Desc: WSDL for the getPrice service Overview Doc: http://soap.acme.com/getPrice/wsdl Key Entities Example
identifier category category category category identifier Pricing DUNS: 123456 wsdlSpec E1-AA-09-F3 V 1.1 Retail bindingTemplate tModel businessService publisherAssertion businessEntity Name: getPrice Desc: WSDL for the getPrice service Overview Doc: http://soap.acme.com/getPrice/wsdl From Key: Acme Corp. To Key: Nadir Corp. Access Point: http://soap.acme.com/getPrice Desc: SOAP endpoint for the getPrice service. Name: getPrice Desc: Accepts ACME product ID as a string. Returns product price as a double. Name: Acme Corp Desc: Purveyors of Fine Products URL:www.acme.com Contact: Joseph Kewl Categorizing Entities
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
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?
Modeling UDDI entities • Determine what constitutes a businessEntity • businessEntity = service provider • Business, business unit, organization, department, computer, application, program, project or person are common businessEntities • Key consideration: businessEntities are the only type of entity that can be associated with contacts • Also determine relationship among businessEntities (i.e. organizational chart)
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..)
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:portType and wsdl:binding elements map to uddi:tModel entities • wsdl:service elements map to uddi:businessService entities • wsdl:port elements map to uddi:binding Template entities
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 tModel for each data type and each operation
Modeling UDDI entities • Define a naming protocol for businessEntities and businessServices • 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:globalbank-com:maintaxonomy vs uuid:2CD3A773-874E-2539… • Common search pattern is based on these keys • Must guarantee uniqueness across all registries
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 v3 now supports categorization of a bindingTemplate • Migrate previous v2 binding categorization strategies to take advantage of this
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
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 • QoS • Authentication
Custom Taxonomies : An approach • Step 2: Model the taxonomies
Globalbank-com: Divisions Globalbank-com: Divisions Globalbank-com: applicationType Consumer Consumer CreditAnalysis businessEntity businessService Name: Global-com:CreditCard Desc: Manages credit card retail business URL:www.globalbank.com/retail/ creditcard Contact: John Smith Name: Global-com:creditCheck Desc: Checks credit rating of Potential new customer Custom taxonomies: An approach • Step 3: Apply to published entities
Globalbank-com: version Globalbank-com: lifecycle uddi-org: types uddi-org:wsdl: types V2.0 staging wsdlSpec portTypes bindingTemplate tModel Access Point: http://soap.acme.com/getPrice Desc: SOAP endpoint for the getPrice service. Name: getPrice Desc: WSDL:type representing portType Overview Doc: http://soap.acme.com/getPrice/wsdl Custom taxonomies: An approach • Step 3: Apply to published entities
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 businessEntities and businessServices • Description of modeling approach and an example of service publication data structure. • The names and descriptions of any categorization schemes that should be used
Process and Procedural Considerations • Example publication guidelines • All businessEntities must be based on organizational units within the company • All businessEntities must contain a contact that includes a phone number and an e-mail address • All businessServices must provide end user documentation provided as a tModel referenced from a bindingTemplate • All businessServices must be categorized using the Global-com:applicationType categorization scheme • All tModel entities that represent WSDL files must be categorized with the wsdlSpec value of the uddi-org:types taxonomy
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
OASIS Technical Notes • QoS 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