UDDI Documents

This document provides facts related to UDDI for usage in the written part of my diploma thesis.

General

  • Universal Description, Discovery and Integration
  • one registry consists of several nodes (to each of them a client is a separate identity)

What is UDDI?

Article foundFact
XML / SOAP Web Services Security [Mü02]
  • ist ein Web Service Register mit Metadaten
  • Ein unabhängiges Konsortium aus Unternehmen wie Microsoft, IBM, Hewlett-Packard und SAP verwalten einen öffentlichen UDDI Server (vom Konzept her, so ähnlich wie DNS-Server)
  • dient zum Auffinden von Web Services
  • enthält Informationen über die verschiedenen Web Services und unter anderem deren WSDLs
Secure, Reliable, Transacted Web Services [FS03]
  • Often it is useful to collect metadata about a collection of services and to make the information available in a form that is searchable. Such metadata aggregation services are a useful repository in which organizations can publish the services they provide, describe the interfaces to their services, and enable domain-specific taxonomies of services. The Universal Description and Discovery Interface (UDDI) specification defines a metadata aggregation service.
  • Solutions can query UDDI at design time to find services compatible with their requirements.
  • Note that one of the mechanisms that might be used to populate a UDDI service with metadata is to acquire the metadata from services using WS-MetadataExchange.

What is a UDDI Node?

Article foundFact
UDDI Version 3.0.2 Spec Technical Committee Draft [OA04] A set of Web services supporting at least one of the Node API sets is referred to as a UDDI node. A UDDI node has these defining characteristics:
  • A UDDI node supports interaction with UDDI data through one or more UDDI API sets
  • A UDDI node is a member of exactly one UDDI registry.
  • A UDDI node conceptually has access to and manipulates a complete logical copy of the UDDI data managed by the registry of which it is a part. Moreover, it is this data which is manipulated by any query and publish APIs supported by the node. Typically, UDDI replication occurs between UDDI nodes which reside on different systems in order to manifest this logical copy in the node.

API's

Article foundFact
UDDI Version 3.0.2 Spec Technical Committee Draft [OA04] API's are grouped into the following API sets:
  • Node API Sets
    • UDDI Inquiry
    • UDDI Publication
    • UDDI Security
    • UDDI Custody Transfer
    • UDDI Subscription
    • UDDI Replication
  • Client API Sets
    • UDDI Subscription Listener
    • UDDI Value Set

What is a bussinessEntity?

Article foundFact
UDDI Version 3.0.2 Spec Technical Committee Draft [OA04] Representing Businesses and Providers with "businessEntity"
  • One top-level data structure within UDDI
  • represent businesses and providers within UDDI
  • contains descriptive information about the business or provider and about the services it offers. This would include information such as names and descriptions in multiple languages, contact information and classification information
  • Service descriptions and technical information are expressed within a businessEntity by contained businessService and bindingTemplate structures
  • the structure can be used to model more than simply a "business" in its common usage (f.e. any "parent" service provider, such as a department, an application or even a server)
  • depending on the context of the data in the entire registry, the appropriate modeling decisions to represent different service providers can vary

What is a bussinessService?

Article foundFact
UDDI Version 3.0.2 Spec Technical Committee Draft [OA04] Representing Services with "businessService"
  • businessService structure represents a logical grouping of Web services
  • at the service level, there is still no technical information provided about those services; rather, this structure allows the ability to assemble a set of services under a common rubric
  • each businessService is the logical child of a single businessEntity
  • each businessService contains descriptive information -- again, names, descriptions and classification information -- outlining the purpose of the individual Web services found within it (For example, a businessService structure could contain a set of Purchase Order Web services (submission, confirmation and notification) that are provided by a business)
  • a suite of services need not be tied to a business per se, but can rather be associated with a provider of services, given a modeling scenario that is not based on a business use case.

What is a bindingTemplate?

Article foundFact
UDDI Version 3.0.2 Spec Technical Committee Draft [OA04] Representing Web services with "bindingTemplate"
  • each bindingTemplate structure represents an individual Web service
  • describes an instance of a Web service offered at a particular network address, typically given in the form of a URL
  • In contrast with the businessService and businessEntity structures, which are oriented toward auxiliary information about providers and services, a bindingTemplate provides the technical information needed by applications to bind and interact with the Web service being described
  • must contain either the access point for a given service or an indirection mechanism that will lead one to the access point
  • each binding Template is the child of a single businessService
  • the containing parents, a bindingTemplate can be decorated with metadata that enable the discovery of that bindingTemplate, given a set of parameters and criteria.
  • describes the type of Web service being offered using references to tModels, application-specific parameters, and settings.
  • the collection of tModelInstanceInfo elements is called the "technical fingerprint" of the Web service. It indicates that the Web service being described complies with the specific and identifiable specifications implied by the tModelKey values provided

Structure:

NameUse
bindingKeyoptional
serviceKeyoptional

What is a tModel?

Article foundFact
UDDI Version 3.0.2 Spec Technical Committee Draft [OA04] Technical Models (tModels)
  • tModels are used in UDDI to represent unique concepts or constructs
  • provide a structure that allows re-use and, thus, standardization within a software framework. The UDDI information model is based on this notion of shared specifications and uses tModels to engender this behavior. For this reason, tModels exist outside the parent-child containment relationships between the businessEntity, businessService and bindingTemplate structures.
  • each distinct specification, transport, protocol or namespace is represented by a tModel
  • Examples of tModels that enable the interoperability of Web services include those based on Web Service Description Language (WSDL), XML Schema Definition (XSD), and other documents that outline and specify the contract and behavior -- i.e., the interface -- that a Web Service may choose to comply with. To describe a Web service that conforms to a particular set of specifications, transports, and protocols, references to the tModels that represent these concepts are placed in the bindingTemplate . In such a way, tModels can be re-used by multiple bindingTemplates .
  • The bindingTemplates that refer to precisely the same set of tModels are said to have the same "technical fingerprint" and are of the same type. In this way, tModels can be used to promote the interoperability between software systems.
  • It is important to note that such technical documents and the supporting documentation necessary to a developer using Web services are not stored within the UDDI registry itself. A UDDI tModel simply contains the addresses where those documents can be found. A tModel, however, contains more than just URLs; it also stores metadata about the technical documents and an entity key that identifies that tModel.
  • Because tModels can represent any unique concept or construct, they have usage beyond the software interoperability scenario described above. They can also be used to represent other concepts within the UDDI information model, such that metadata concepts are reused throughout the model. For example, tModels are used for the following other purposes within UDDI:
    • Transport and protocol definitions such as HTTP and SMTP
    • Value sets including identifier systems, categorization systems and namespaces.
    • Structured categorizations using multiple value sets called "categorization groups."
    • Postal address formats.
    • Find qualifiers used to modify the behavior of the UDDI find_xx APIs.
    • Use type attributes that specify the kind of resource being referred to by a URI reference.
  • The use of tModels is essential to how UDDI represents data and metadata. The UDDI specification defines a set of common tModels that can be used canonically to model information within UDDI. If a concept that is required to model a particular scenario does not exist in a registry, a user should introduce that concept by saving a tModel containing the URL of the relevant overview documents.

What is a pulisherAssertion?

Article foundFact
UDDI Version 3.0.2 Spec Technical Committee Draft [OA04] Describes, in the view of one businessEntity, the relationship that the businessEntity has with another businessEntity

What is a subscription?

Article foundFact
UDDI Version 3.0.2 Spec Technical Committee Draft [OA04] Describes a standing request to keep track of changes to the entities described by the subscription.

Advantages of UDDIv3

Article foundFact
Rocket ahead with UDDI V3 [Be02]
  • The V3 specification presents a unified, organized document that eliminates redundancy and conflicts that were present in the prior documentation. The new documentation also has significant explanatory and descriptive information in a set of appendices that covers the use of key features.
  • New or advanced Features:
    • Multi-registry environments
    • Publisher specified keys
    • Subscription
    • Policy
    • Security
    • Enhanced inquiry
    • Enhancements to the custody and ownership transfer APIs.
    • Simplifications for external validation.
    • Replication enhancements.
    • More useful access point content and behavior.
    • Improved WSDL support.
    • Much tighter schema definition.
    • Complex categorization (allowing categorization information to be logically grouped -- for example, latitude and longitude).
    • Extensibility
  • Multi-registry environments
    • support for visibility-differentiation (public registry, semi-private registry or private registry);

      solving problems when private registries go public, because in v2 transferring registry information on existing businesses and their services from one isolated registry to another, in a way that fully preserves the keys used to uniquely identify these entities, has not been possible
    • V3 introduces the concepts of root and affiliate registries:

      A root registry acts as the authority for key spaces. Such registries are used to delegate key partitions so that other registries can rely upon the root registry to verify and maintain the uniqueness of such key partitions. The UBR (UDDI Business Registry often termed public registry) is a good example of a root registry, which the image below illustrates (adopted from the UDDI V3 specifications).



      Affiliate registries interact with a root registry. These affiliates rely upon the root registry for delegating unique key partitions. Afterwards, data can be shared between and among the root and affiliate registries with the assurance that each given key partition is unique.
  • Publisher specified keys
    • prior to V3 the uuid (universal unique identifier) was generated by the registry itself (random hexadecimal string in a defined format that serves no purpose beyond that of ensuring uniqueness -> difficult to manage, remember, and use)
    • v3 allows the publishers to specify their own key values when they create new entities (provides the ability to save the same entity with the same key value in more than one registry)
    • Vanity keys (maybe enabled in V3, depending upon the policy of the particular registry) allow publishers to specify a meaningful name for a key as an alternative to having a uuid-based key assigned automatically by the registry

      V3 specification establishes some rules on how this is done:
      • keys are now Universal Resource Identifiers (URI) instead of simple uuids. Each key in V3 is now known as a uddiKey.
      • uddiKey can be either a uuidKey, a domainKey, or a derivedKey
      • uuidKey: essentially the V3 equivalent of a uuid-based key, in the form "uddi:" uuid
      • domainKey: takes the form "uddi:" domain, where the domain is based upon an established DNS record
      • derivedKey: has the form uddiKey ":" KSS, where the key specific string (KSS) is composed of upper and lowercase characters, numbers, and other symbols permitted in a URI. Given the number of us, ds, and is in this clinical explanation, a few uddiKey examples might help:
        • Here is an example of a typical uuidKey: uddi:2AB7E4BF-887B-923A-9936-443EAAC8AE23. Essentially, this is the familiar and sometimes despised pre-V3 uuid entity key, converted into a uuidKey by prefixing "uddi:" to it.
        • Here are some domainKey examples: uddi:mydomain.com and uddi:yourdomain.com. In each case, mydomain.com and yourdomain.com are the respective domains.
        • Finally, a few derivedKey examples are useful: uddi:2AB7E4BF-887B-923A-9936443EAAC8AE23:derivedPartGoesHere and uddi:mydomain.com:myProduct:browsingService. The derivedPartGoesHere and myProduct:browsingService are the KSS part of the derivedKey.
    • For registries that use the V3 recommended key policy, there are also some rules for using keys that are derived from a domainKey. You must acquire a license to publish such keys. This entails creating a special tModel known as a domain keyGenerator. These tModels establish a key partition from which uddiKeys can be derived and used in other entities, which are created and controlled by the publisher. The tModelKey for these tModels must be in the form of a domain_key and must end with the term keyGenerator. The publisher must categorize the tModel using a value of keyGenerator from the uddi-org:types value set. Depending upon registry policy, the publisher may need to sign these tModels. Publishers may then create derived keys based upon the domain identified by a keyGeneratortModel that they own.
  • Subscription
    • enables you to track changes in the content of a UDDI registry through either synchronous requests for this information or through asynchronous notifications made by a registry node to the requestor, as illustrated in the image below.



      as a non-normative part of the V3 specification, it fills a key role in enabling registry affiliation. In scenarios where one or more affiliated registries rely upon a root registry to manage key spaces, an affiliated registry may want to be aware of changes of interest in the root registry and then reflect copies of those entries into the affiliate.
    • The subscriber may establish multiple subscriptions, if additional criteria need to be used.
    • Subscribers also register a number of other preferences when saving a subscription request, such as how they want to receive the results of activity matching their subscription criteria (Email, SOAP messages to a Service). A bindingKey corresponding to a bindingTemplate with a valid endpoint is required in the subscription to use this feature.
  • Policy
    • Policies describe the specific behavior of a registry or of a node within a registry, insofar as the UDDI specification permits such variances. In earlier versions, the UDDI specification mixed policy issues with UBR implementation concerns. V3 separates these and expands the role of policy by prescribing a set of policies that registries must address. The UDDI specification addresses issues of policy using several terms:
      • Policy abstractions. Describes various types of high-level policies and provides broad definitions of high-level information management policies.
      • Policy rule. The basic building block of any policy-based system. It defines the metrics of a set of actions mapped against a set of conditions.
      • Policy decision. Involves the evaluation of a policy rule's conditions.
      • Policy decision point (PDP). The logical entity where policies are decided. In UDDI, this will be either the registry or the nodes within the registry.
      • Policy enforcement point (PEP). The point at which policies are enforced. In UDDI, this will be at either the registry or node level.
      • Hierarchical policy relationships in UDDI:

      Registries may delegate certain PDPs and PEPs to their constituent nodes. The image above illustrates these relationships. The specification groups policies into several categories, including:
      • Policy delegation. Covers policies for determining which sets of polices may be delegated to nodes.
      • Keying. Defines policies on key format, generation, and so on.
      • Information access and control. Defines policies on registration and authorization of users, privacy, and more.
      • APIs. Defines policies on data confidentiality for each API set (Inquiry, Publication, Subscription, Custody, and others).
      • User policies. Describes policies on user publication limits and ownership transfer.
      • Data custody. Determines whether custody transfer is permitted.
      • Replication. Determines whether replication is supported.
      • Subscription. Determines whether subscription is supported and other related policies affecting the behavior and capabilities provided in subscription, such as the duration of a subscription.
      • Value sets. Defines policies dealing with management of external validation and related caching behavior.
  • Security
    • The UDDI security model is defined by the set of registry and node policies and their implementations.
    • V3 adds support for digital signing of all core data types to address issues of data integrity and authenticity not previously available in UDDI. -> TRUST
    • Inquirers can now also issue inquiries that only return results pertaining to signed data.
    • Given the multi-registry environment enabled in V3, the reliability of data becomes even more important. When signed data is copied between registries, you can guarantee its integrity by simply validating the signature.
    • To support digital signatures, both publishers and registry implementations must support normalization and canonicalization.

      In normalization, the registry must reduce each of the characters that make up the SOAP message to a single standard representation. This is necessary because in UTF-8, it is often possible to represent the same character with multiple encodings.

      Canonicalization creates a standard representation of XML, addressing issues like the tag representation, attribute ordering, namespace declaration, expansion and ordering, and white space handling. Ensuring consistent behavior is critical. Registries must save and retrieve data in a well-defined way so that a digital signature is not broken. This also places a burden on the publisher, who must similarly process the data before signing it so that the registry will not modify it further during these steps so that the signature is not broken.
  • Enhanced inquiry
    • V3 adds support for
      • new find qualifiers
      • find qualifier extensibility
      • compound queries
      • management of large result sets
    • New find qualifiers:
      • Recall that find qualifiers are essentially flags that alter the behavior of searching in UDDI, such as how results are sorted or matching is performed. The new find qualifiers provide enhanced selection options in the area of internationalization, but also formalize and expand some older capabilities as well. Those related to internationalization include:
        • case Insensitive Match.
        • case Insensitive Sort.
        • case Sensitive Sort.
        • diacritic Insensitive Match. Matches without regard to diacritic markings (for example, accents).
        • diacritic Sensitive Match.
        • UTS-10. Sorts based on the Unicode Collation Algorithm on elements normalized, according to Unicode Normalization Form C.


        Other new find qualifiers include:
        • approximate Match. UDDI now has standardized wildcard matching based on an SQL LIKE syntax.
        • binary Sort. Causes a binary sort by name.
        • exact Match. Matches based on exact criteria supplied. This is the new default.
        • signature Present. Returns only results that contain a signature.
    • Find qualifier extensibility and compound queries:
      • The set of defined find qualifiers may be more easily extended by registries because now they may be either tModelKeys or can be represented by their short names. Compound queries were added to several of the inquiry APIs to facilitate common tooling idioms. In particular:
        • find_binding. Permits the discovery of binding Templates across businessService elements, as well as the embedded use of the find_tModel API. The tModel results of this inner find_tModel API are added to any that were supplied in the tModelBag provided with the find_binding API call.
        • find_business. Permits the embedded use of the find_relatedBusinesses and find_tModel APIs. When an inquirer includes the find_relatedBusinesses API here, this causes the results returned by find_business to be an intersection of the businesses returned by the find_relatedBusinesses query and those returned based upon the other criteria supplied in the find_business query. Use of find_tModel behaves similarly to that described previously.
        • find_service. Permits the embedded use of the find_tModel API, with similar behavior as described previously.
    • Management of large result sets
      • V3 now supports large result sets, enabling inquirers to retrieve results in a quasi-chunked fashion. This is not a true cursor-like behavior because, while the registry allows chunked retrieval of results, these results do not represent a frozen snapshot in time. Data in the registry could change during the retrieval process (adds or deletes), which could affect the overall results.