# Presentation: 251756

## 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.”  **
**“**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

**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**

## UDDI Basics

## Conceptual Overview

**Basic contact information and identifiers about a company or service provider.**** **

**Categorization of web services using taxonomies.**

**White Pages**

**Yellow Pages**

**Green Pages**

**Technical information describing a web service**

## Key Entities Description

**0..n**

**0..n**

**0..n**

**Bindings contain references to tModels. These references declare the interface specifications for a service.**

## Key Entities Example

## Categorizing Entities

## UDDI Best Practices

## Getting Started

**Obtain a general understanding of UDDI capabilities**
- OASIS UDDI Specifications at _[http://www.uddi.org](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**

| Name | Description | Compatibility | Check | Current Valid Values |
| --- | --- | --- | --- | --- |
| Globalbank-com: Divisions | Describes the divisions of the bank | businessEntity
businessService | Yes | CapitalMarkets,
CommercialBanking,
Consumer... |
| Globalbank-com: application Type | Describes the service by business function | businessService | Yes | GeneralLedger,
EquityTrading,
CreditAnalysis... |
| Globalbank-com:lifecycle | Indicates where a service is at in its lifecycle | businessService
bindingTemplate
tModel | Yes | Development, staging, production, retirement |
| .... | .... | .... | .... | .... |

## Custom taxonomies: An approach

**Step 3: Apply to published entities**

## 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