March 18, 2011, 9:28 a.m.
posted by maxidax
The UDDI Data Structures
UDDI (Universal Description, Discovery, and Integration) is a specification for creating a registry service that catalogs organizations and their Web services. An implementation of the UDDI specification is called a UDDI registry. A UDDI registry is a database that supports a set of standard data structures defined by the UDDI specification. The data structures model information about organizations (corporations, business units, government agencies, etc.) and the technical requirements for access to Web services hosted by those organizations. You can search a UDDI registry for specific kinds of companies or Web services. You can also register your own business and Web services in a UDDI registry. The usual analogy is that a UDDI registry is like an electronic "Yellow Pages" that businesses can search to find other organizations, and specific types of Web services. You can access the data in a UDDI directory using SOAP, which makes a UDDI registry a Web service.
Microsoft, IBM, and Ariba originally developed the UDDI specification, first published in September of 2000. Shortly thereafter they formed UDDI.org and invited 12 other companies to participate in the development of versions 2.0 and 3.0. UDDI.org was responsible for managing the specification and ancillary documents. In the summer of 2002, UDDI.org turned over management of the UDDI specifications to OASIS (Organization for the Advancement of Structured Information Standards). UDDI products based on the UDDI specification are offered by a number of vendors, including IBM, Microsoft, Sun, Oracle, Fujitsu, Systinet, and others. Although most UDDI products today run on a relational database management system, they can be implemented using other technologies, including LDAP servers and XML databases.
A UDDI registry must provide access to its data by way of a set of SOAP-based Web services. The UDDI specification describes about thirty different SOAP operations that allow you to add, update, delete, and find information contained in a UDDI registry. Most UDDI products also provide a Web interface for access to information in the registry.
Anyone can set up a UDDI registry for private use within an organization or market place. For example, the U.S. Navy is establishing a UDDI registry that provides centralized management for tens of thousands of applications. The navy's UDDI registry is being used to help reduce duplication across the entire organization. ISEC (the Integrated Shipbuilding Environment Consortium) is using UDDI to build a trading partner network for U.S. shipbuilders, which is hosted by NIIIP (the National Industrial Infrastructure Protocols Consortium). ISEC's registry will be used to manage an organization-wide supply-chain system for shipbuilders. Private and marketplace UDDI directories are not usually accessible to the general public; they are used by one organization, which might be a single company, a consortium of companies, or a government entity.
In addition to private UDDI registries, which are the main focus of UDDI development today, there is a massive public UDDI registry called the UDDI Business Registry (UBR), which is run jointly by IBM, Microsoft, NTT, and SAP, under an umbrella organization called the UBR Operators Council. This registry allows any organization to register its business and Web services, or peruse the registry, for free. The UDDI Business Registry is currently running on four main operator sites hosted by IBM, Microsoft, SAP, and NTT. These sites are synchronized, so that if you register your business and Web services with one of them, the information is copied to the others. Anyone can look up your organization and learn about your Web services using any of the four registries, but you can modify data only through the operator site where you originally submitted it.
Many people think of UDDI as a good way of cataloging a corporation's software applications, in order to provide a centralized source for documentation and discovery. UDDI is getting attention in electronic marketplaces, where companies of a common ilk organize and share data in the pursuit of commerce. The UBR has not, however, gained as much momentum as originally hoped. Although the UBR is free (all you need to do is register with the operator site), organizations have yet to see value in the idea of registering with a global UDDI registry. David A. Chappell, author of Understanding .NET, summed up the degree of success of the UBR with the quip "There are literally dozens of corporations registered with the UBR worldwide!"
UDDI defines five primary data structures, which are used to represent an organization, its services, implementation technologies, and relationships to other businesses:
Figure shows how these data structures are related.
Actually, Figure oversimplifies the relationship between the tModel and the other data structures. The tModel data structure and its relationship to all the other data structures are addressed in more detail later in the chapter. The five primary data structures are not the only data types defined by UDDI, but they are the most important ones, and the only ones assigned unique keys that allow them to be stored separately, yet still refer to each other. There are also data structures that represent address information, categories, contact information, URLs, and other common business data. All the standard data structures in UDDI are defined as XML schema complex types in a single XML schema document.
Currently there are three versions of UDDI, versions 1.0, 2.0, and 3.0. Version 2.0 is the one that is supported by J2EE Web Services and sanctioned by the Basic Profile, so it's the topic of this part of the book. The rest of this chapter provides you with a detailed understanding of the standard data structures used to store information about organizations and their Web services. Chapters 7 and 8 describe precisely the structures and purposes of the SOAP messages that can be sent and received from a UDDI registry.