UDDI Version 3.0

Published Specification, 19 July 2002

 

This version:

http://uddi.org/pubs/uddi-v3.00-published-20020719.htm

Latest version:

http://uddi.org/pubs/uddi_v3.htm

 

Authors (alphabetically):

Tom Bellwood, IBM

Luc Clément, Microsoft

David Ehnebuske, IBM

Andrew Hately, IBM

Maryann Hondo, IBM

Yin Leng Husband, HP

Karsten Januszewski, Microsoft

Sam Lee, Oracle

Barbara McKee, IBM

Joel Munter, Intel

Claus von Riegen, SAP

 

Working Group Contributors (alphabetically):

Selim Aissi, Intel

Bob Atkinson, Microsoft

John Colgrave, IBM

Tom Gaskins, HP

Tom Glover, IBM

Dan Guinan, VeriSign

Christian Hansen, SAP

Thomas Hardjono, VeriSign

Richard Harrah, HP

Keisuke Kibakura, Fujitsu

Seán MacRoibeáird, Sun

Ed Mooney, Sun

Andrew Nielsen, HP

Shigeru Shimada, IBM

Christian R. Thomas, Intel

Johannes Viegener, SAP

 

Advisor Group Contributors (alphabetically):

Sharon Boeyen, Entrust

Fennivel Chai, DealEasy

Paul Denning, MITRE

Matthew J. Dovey, Oxford University

Daniel Feygin, UnitSpace

Jeffrey Kenyon, Qwest

Anne Thomas Manes, Systinet

Takayuki Nakao, NTT Communications

Scott Wood, Cambian

Brian Young, Boeing

 

Copyright © 2000 - 2002 by Accenture, Ariba, Inc., Commerce One, Inc., Fujitsu Limited, Hewlett-Packard Company, i2 Technologies, Inc., Intel Corporation, International Business Machines Corporation,  Microsoft Corporation, Oracle Corporation, SAP AG, Sun Microsystems, Inc., and VeriSign, Inc.  All Rights Reserved.

These UDDI Specifications (the "Documents") are provided by the companies named above ("Licensors") under the following license.  By using and/or copying this Document, or the Document from which this statement is linked, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions:

Permission to copy, prepare derivative works based on, and distribute the contents of this Document, or the Document from which this statement is linked, and derivative works thereof, in any medium for any purpose and without fee or royalty under copyrights is hereby granted, provided that you include the following on ALL copies of the document, or portions thereof, that you use:

1.           A link to the original document posted on uddi.org.

2.           An attribution statement : "Copyright © 2000 - 2002 by Accenture, Ariba, Inc., Commerce One, Inc. Fujitsu Limited, Hewlett-Packard Company, i2 Technologies, Inc., Intel Corporation, International Business Machines Corporation,  Microsoft Corporation, Oracle Corporation, SAP AG, Sun Microsystems, Inc., and VeriSign, Inc.  All Rights Reserved."

If the Licensors own any patents or patent applications that may be required for implementing and using the specifications contained in the Document in products that comply with the specifications, upon written request, a non-exclusive license under such patents shall be granted on reasonable and non-discriminatory terms. 

EXCEPT TO THE EXTENT PROHIBITED BY LOCAL LAW, THIS DOCUMENT (OR THE DOCUMENT TO WHICH THIS STATEMENT IS LINKED) IS PROVIDED "AS IS," AND LICENSORS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, ACCURACY OF THE INFORMATIONAL CONTENT, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY OR (WITH THE EXCEPTION OF THE RELEVANT PATENT LICENSE RIGHTS ACTUALLY GRANTED UNDER THE PRIOR PARAGRAPH) LICENSOR PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. Some jurisdictions do not allow exclusions of implied warranties or conditions, so the above exclusion may not apply to you to the extent prohibited by local laws. You may have other rights that vary from country to country, state to state, or province to province.

EXCEPT TO THE EXTENT PROHIBITED BY LOCAL LAW, LICENSORS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL DAMAGES, OR OTHER DAMAGES (INCLUDING LOST PROFIT, LOST DATA, OR DOWNTIME COSTS), ARISING OUT OF ANY USE, INABILITY TO USE, OR THE RESULTS OF USE OF THE DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS THEREOF, WHETHER BASED IN WARRANTY, CONTRACT, TORT, OR OTHER LEGAL THEORY, AND WHETHER OR NOT ANY LICENSOR WAS ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Some jurisdictions do not allow the exclusion or limitation of liability for incidental or consequential damages, so the above limitation may not apply to you to the extent prohibited by local laws.

 

Content

1       Introduction. 14

1.1        About this specification. 14

1.2        Language & Terms. 14

1.3        Diagrams Used in this document 15

1.3.1       Attributes and elements. 15

1.3.2       Element structure. 15

1.3.3       Cardinality. 16

1.4        Related Documents. 16

1.4.1       Translations of the UDDI Specification. 16

1.4.2       Best Practices and Technical Notes. 16

1.5        Base UDDI Architecture. 17

1.5.1       UDDI Data. 17

1.5.2       UDDI Services and API Sets. 17

1.5.3       UDDI Nodes. 18

1.5.4       UDDI Registries. 18

1.5.5       Affiliations of Registries. 18

1.5.6       Person, Publisher and Owner 18

1.5.7       Transfer of ownership. 19

1.5.8       Data Custody. 19

1.6        Representing Information within UDDI 19

1.6.1       Representing Businesses and Providers with “businessEntity” 19

1.6.2       Representing Services with “businessService” 20

1.6.3       Representing Web services with “bindingTemplate” 20

1.6.4       Technical Models (tModels) 20

1.6.5       Taxonomic Classification of the UDDI entities. 21

1.7        Introduction to Security. 22

1.8        Introduction to Internationalization. 22

1.8.1       Multi-regional businesses. 23

1.8.2       Contact’s Timezone. 23

1.8.3       XML and Unicode Character Set 23

1.8.4       Standardized Postal Address. 23

1.8.5       Use of Multi-languages and Multi-scripts. 23

1.8.6       Adding Language-specific Sort Orders. 24

1.8.7       Consistent Internationalized Search. 24

2       UDDI Schemas. 25

2.1        Schema versioning. 27

2.2        Schema Extensibility. 28

2.3        Element and attribute types and lengths. 28

2.3.1       Data structure, publication API, inquiry API and security API 28

2.3.2       Subscription API 29

2.3.3       Replication API 29

3       UDDI Registry Data Structures. 30

3.1        Data structure overview.. 30

3.2        Design Principles. 30

3.2.1       Keys as unique identifiers. 31

3.2.2       Containment and references. 31

3.2.3       Collections. 31

3.2.4       Optional attributes. 31

3.3        businessEntity Structure. 32

3.3.1       Structure diagram.. 32

3.3.2       Documentation. 33

3.4        businessService Structure. 39

3.4.1       Structure Diagram.. 40

3.4.2       Documentation. 40

3.5        bindingTemplate Structure. 41

3.5.1       Structure Diagram.. 42

3.5.2       Documentation. 42

3.6        tModel Structure. 46

3.6.1       Common tModel uses. 46

3.6.2       Structure diagram.. 48

3.6.3       Documentation. 48

3.7        publisherAssertion Structure. 49

3.7.1       Structure Diagram.. 49

3.7.2       Documentation. 49

3.8        operationalInfo Structure. 50

3.8.1       Structure diagram.. 50

3.8.2       Documentation. 50

4       Using UDDI APIs. 52

4.1        SOAP Usage. 52

4.1.1       Support for SOAPAction. 52

4.1.2       Support for SOAP Actor 53

4.1.3       Support for SOAP encoding. 53

4.1.4       Support for SOAP Headers. 53

4.1.5       Support for SOAP Fault 53

4.1.6       XML prefix conventions – default namespace support 54

4.2        XML Encoding Requirements. 54

4.3        Support for Unicode: Byte Order Mark. 54

4.4        About uddiKeys. 55

4.4.1       Recommended Syntax. 55

4.4.2       Examples of keys. 56

4.5        Data insertion and document order 56

4.5.1       Inserting Data in Entities During save_xx Operations. 56

4.5.2       Inserting Elements in Existing Entities. 56

4.5.3       Preservation of Document Order 56

4.6        XML Normalization and Canonicalization. 57

4.6.1       Behavior of UDDI nodes. 57

4.6.2       Client Behavior 57

4.7        About Access Control and the authInfo Element 58

4.8        Success and Error Reporting. 59

4.8.1       dispositionReport element 59

4.8.2       Success reporting using the dispositionReport element 60

4.8.3       Error reporting using the dispositionReport element 61

5       UDDI Programmers APIs. 62

5.1        Inquiry API Set 62

5.1.1       The browse pattern. 62

5.1.2       The drill-down pattern. 62

5.1.3       The invocation pattern. 63

5.1.4       Find Qualifiers. 63

5.1.5       Use of listDescription. 71

5.1.6       About wildcards. 71

5.1.7       Matching Rules for keyedReferences and keyedReferenceGroups. 72

5.1.8       Inquiry API functions. 72

5.1.9       find_binding. 73

5.1.10      find_business. 77

5.1.11      find_relatedBusinesses. 81

5.1.12      find_service. 85

5.1.13      find_tModel 89

5.1.14      get_bindingDetail 92

5.1.15      get_businessDetail 93

5.1.16      get_operationalInfo. 94

5.1.17      get_serviceDetail 95

5.1.18      get_tModelDetail 97

5.2        Publication API Set 99

5.2.1       Publishing entities with node assigned keys. 99

5.2.2       Publishing entities with publisher-assigned keys. 99

5.2.3       Special considerations for validated value sets. 103

5.2.4       Special considerations for the xml:lang attribute. 103

5.2.5       Publisher API summary. 104

5.2.6       add_publisherAssertions. 105

5.2.7       delete_binding. 107

5.2.8       delete_business. 108

5.2.9       delete_publisherAssertions. 110

5.2.10      delete_service. 111

5.2.11      delete_tModel 112

5.2.12      get_assertionStatusReport 114

5.2.13      get_publisherAssertions. 117

5.2.14      get_registeredInfo. 118

5.2.15      save_binding. 119

5.2.16      save_business. 122

5.2.17      save_service. 126

5.2.18      save_tModel 129

5.2.19      set_publisherAssertions. 133

5.3        Security Policy API Set 135

5.3.1       discard_authToken. 135

5.3.2       get_authToken. 136

5.4        Custody and Ownership Transfer API Set 138

5.4.1       Overview.. 138

5.4.2       Custody Transfer Considerations. 139

5.4.3       Transfer Execution. 140

5.4.4       get_transferToken. 143

5.4.5       transfer_entities. 145

5.4.6       transfer_custody. 147

5.4.7       Security Configuration for transfer_custody. 148

5.5        Subscription API Set 149

5.5.1       About UDDI Subscription API functions. 149

5.5.2       Specifying Durations. 150

5.5.3       Specifying Points in Time. 150

5.5.4       Subscription Coverage Period. 150

5.5.5       Chunking of Returned Subscription Data. 151

5.5.6       Use of keyBag in Subscription. 151

5.5.7       Subscription API functions. 152

5.5.8       save_subscription. 153

5.5.9       delete_subscription. 156

5.5.10      get_subscriptions. 157

5.5.11      get_subscriptionResults. 158

5.5.12      notify_subscriptionListener 161

5.6        Value Set API Set 163

5.6.1       Value Set Programming Interfaces. 163

5.6.2       validate_values. 164

5.6.3       get_allValidValues. 166

6       Node Operation. 169

6.1        Managing Node Contents. 169

6.1.1       XML Requirements. 169

6.1.2       Key Generation and Maintenance. 170

6.1.3       Updates and Deletions. 170

6.2        Considerations When Instantiating a Node. 170

6.2.1       Canonical tModel Bootstrapping. 170

6.2.2       Self-Registration of Node Business Entity. 170

6.3        User Credential Requirements. 171

6.3.1       Establishing User Credentials. 171

6.3.2       Changing Entity Ownership. 172

6.4        Checked Value Set Validation. 172

6.4.1       Normative behavior during saves. 172

6.5        HTTP GET Services for UDDI Data Structures. 173

7       Inter-Node Operation. 174

7.1        Inter-Node Policy Assertions. 174

7.1.1       Data Custody. 174

7.2        Concepts and Definitions. 175

7.2.1       Update Sequence Number 175

7.2.2       Change Records. 176

7.2.3       Change Record Journal 177

7.2.4       High Water Mark Vector 177

7.2.5       Replication Messages. 177

7.2.6       Replication Processing. 178

7.3        Change Record Structures. 179

7.3.1       changeRecordNull 181

7.3.2       changeRecordNewData. 181

7.3.3       changeRecordHide. 182

7.3.4       changeRecordDelete. 182

7.3.5       changeRecordPublisherAssertion. 183

7.3.6       changeRecordDeleteAssertion. 184

7.3.7       changeRecordAcknowledgment 185

7.3.8       changeRecordCorrection. 185

7.3.9       changeRecordNewDataConditional 185

7.4        Replication API Set 188

7.4.1       get_changeRecords Message. 188

7.4.2       notify_changeRecordsAvailable Message. 190

7.4.3       do_ping Message. 191

7.4.4       get_highWaterMarks Message. 192

7.5        Replication Configuration. 193

7.5.1       Replication Configuration Structure. 193

7.5.2       Configuration of a UDDI Node – operator element 194

7.5.3       Replication Communication Graph. 195

7.5.4       SOAP Configuration. 196

7.5.5       Security Configuration. 196

7.6        Error Detection and Processing. 196

7.6.1       UDDI Registry Investigation and Correction. 198

7.7        Validation of Replicated Data. 201

7.8        Adding a Node to a Registry Using Replication. 201

7.9        Removing a Node from a Registry Using Replication. 202

8       Publishing Across Multiple Registries. 203

8.1        Relationships between Registries. 204

8.1.1       Root Registries and Affiliate Registries. 204

8.1.2       A Closer Look at Inter-Registry Communication Models