Individual Submission B. Bergeson K. Boogert Internet Draft Novell, Inc. Document: draft-bergeson-uddi-ldap-schema-01.txt May, 2002 Category: Informational Expires Nov, 2002 LDAP Schema for UDDI 1. Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet- Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Editorial comments may be sent to bruce.bergeson@novell.com. General discussion may be directed to the LDAPEXT WG List. 2. Abstract This document defines the schema for representing Universal Description Discovery & Integration (referred to here as UDDI) data types [UDDI] in an LDAP directory [LDAPV3]. It defines schema elements to represent a businessEntity, a businessService, a bindingTemplate, a tModel, and a publisherAssertion. 3. Conventions used in this document The imperatives from [RFC2119] used in this document are to be interpreted as described there. 4. Representation of UDDI Data Structures This document defines schema elements to represent the five UDDI data structure types: a businessEntity, a businessService, a bindingTemplate, a tModel, and a publisherAssertion. Portions of [UDDI] are repeated here for clarity. Bergeson and Boogert Internet-Draft 1 LDAP Schema for UDDI May 2002 The information that makes up a registration in UDDI consists of these five data structure types. This division by information type provides simple partitions to assist in the rapid location and understanding of the different information that makes up a registration. The individual instance data managed by a UDDI registry are sensitive to the parent/child relationships found in the schema. A businessEntity object contains one or more unique businessService objects. Similarly, individual businessService objects contain specific instances of bindingTemplate, which in turn contains information that includes pointers to specific instances of tModel objects. It is important to note that no single instance of a core schema type is ever "contained" by more than one parent instance. This means that only one specific businessEntity object (identified by its unique key value) will ever contain or be used to express information about a specific instance of a businessService object (also identified by its own unique key value). 4.1 businessEntity The businessEntity object represents all known information about a business or entity that publishes descriptive information about the entity as well as the services that it offers. The businessEntity is the top-level container that accommodates holding descriptive information about a business or entity. Service descriptions and technical information are expressed within a businessEntity by a containment relationship. 4.1.1 Representation in the Directory A businessEntity is represented in the directory by the attributes uddiBusinessKey, uddiAuthorizedName, uddiOperator, uddiDiscoveryURLs, uddiName, uddiDescription, uddiIdentifierBag, and uddiCategoryBag, as defined in section 5. A businessEntity may contain zero or more instances of uddiContact and uddiBusinessService. The mandatory attribute, uddiBusinessKey, contains the unique identifier for a given instance of a businessEntity. businessEntity's definition is given in Section 6. 4.2 businessService The businessService instances each represent a logical service classification. Each businessService object is the logical child of a single businessEntity object. Each businessService element contains descriptive information in business terms outlining the type of technical services found within each businessService instance. Bergeson & Boogert Internet-Draft 2 LDAP Schema for UDDI May 2002 In some cases, businesses would like to share or reuse services, e.g. when a large enterprise publishes separate businessEntity structures. This can be established by using the businessService instance as a projection to an already published businessService. 4.2.1 Representation in the Directory A businessService is represented in the directory by the attributes uddiBusinessKey, uddiServiceKey, uddiName, uddiDescription, and uddiCategoryBag, as defined in section 5. A businessService may contain zero or more instances of uddiBindingTemplate. The mandatory attribute, uddiServiceKey, contains the unique identifier for a given instance of a businessService. businessService's definition is given in Section 6. 4.3 bindingTemplate Technical descriptions of Web services are accommodated via individual contained instances of bindingTemplate objects. These instances provide support for determining a technical entry point or optionally support remotely hosted services, as well as a lightweight facility for describing unique technical characteristics of a given implementation. Support for technology and application specific parameters and settings files are also supported. Since UDDI's main purpose is to enable description and discovery of Web Service information, it is the bindingTemplate that provides the most interesting technical data. Each bindingTemplate instance has a single logical businessService parent, which in turn has a single logical businessEntity parent. 4.3.1 Representation in the Directory A bindingTemplate is represented in the directory by the attributes uddiBindingKey, uddiServcieKey, uddiDesctiption, uddiAccessPoint, and uddiHostingRedirector, as defined in section 5. A bindingTemplate may contain zero or more instances of uddiTModelInstanceDetails. The mandatory attribute, uddiBindingKey, contains the unique identifier for a given instance of a bindingTemplate. BindingTemplate's definition is given in Section 6. 4.4 tModel The tModel object takes the form of keyed metadata (data about data). In a general sense, the purpose of a tModel within the UDDI registry is to provide a reference system based on abstraction. Thus, the kind of data that a tModel represents is pretty nebulous. In other words, a tModel registration can define just about anything, but in the current revision, two conventions have been Bergeson & Boogert Internet-Draft 3 LDAP Schema for UDDI May 2002 applied for using tModels: as sources for determining compatibility and as keyed namespace references. The information that makes up a tModel is quite simple. There's a key, a name, an optional description, and then a URL that points somewhere--presumably somewhere where the curious can go to find out more about the actual concept represented by the metadata in the tModel itself. 4.4.1 Representation in the Directory A tModel is represented in the directory by the attributes uddiTModelKey, uddiAuthorizedName, uddiOperator, uddiName, uddiDescription, uddiOverviewDescription, uddiOverviewURL, uddiIdentifeierBag, and uddiCategoryBag, as defined in section 5. A tModel may also contain a uddiHidden to logically delete a tModel. The mandatory attribute, uddiTModelKey, contains the unique identifier for a given instance of a tModel. tModel's definition is given in Section 6. 4.5 publisherAssertion Many businesses, like large enterprises or marketplaces, are not effectively represented by a single businessEntity, since their description and discovery are likely to be diverse. As a consequence, several businessEntity instances can be published, representing individual subsidiaries of a large enterprise or individual participants of a marketplace. Nevertheless, they still represent a more or less coupled community and would like to make some of their relationships visible in their UDDI registrations. 4.5.1 Representation in the Directory A publisherAssertion is represented in the directory by the attributes uddiFromKey, uddiToKey, uddiKeyedReference, and uddiUUID, as defined in section 5. The mandatory attribute, uddiUUID, contains the unique identifier for a given instance of a publisherAssertion. publisherAssertion's definition is given in Section 6. 5. Attribute Type Definitions The following attribute types are defined in this document: uddiBusinessKey uddiAuthorizedName uddiOperator uddiName uddiDescription uddiDiscoveryURLs uddiUseType Bergeson & Boogert Internet-Draft 4 LDAP Schema for UDDI May 2002 uddiPersonName uddiPhone uddiEMail uddiSortCode uddiTModelKey uddiAddressLine uddiIdentifierBag uddiCategoryBag uddiKeyedReference uddiServiceKey uddiBindingKey uddiAccessPoint uddiHostingRedirector uddiInstanceDescription uddiInstanceParms uddiOverviewDescription uddiOverviewURL uddiFromKey uddiToKey uddiUUID uddiIsHidden Note that OIDs for the attribute types in this document have not been assigned. All OIDs are in brackets, , as a placeholder until real OIDs are assigned. 5.1 uddiBusinessKey Used in uddiBusinessEntity and uddiBusinessService. The uddiBusinessKey is the unique identifier for a given instance of an uddiBusinessEntity. However the attribute is optional for businessService instances contained within a fully expressed parent that already contains a businessKey value. If the businessService instance is rendered into XML and has no containing parent that has within its data a businessKey, the value of the businessKey that is the parent of the businessService is required to be provided. This behavior supports the ability to browse through the parent-child relationships given any of the core elements as a starting point. The businessKey may differ from the publishing businessEntity's businessKey to allow service projections. ( NAME 'uddiBusinessKey' DESC 'businessEntity unique identifier' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) 5.2 uddiAuthorizedName Bergeson & Boogert Internet-Draft 5 LDAP Schema for UDDI May 2002 The uddiAuthorizedName is the recorded name of the individual that published the uddiBusinessEntity data. This data is generated by the controlling operator and should not be supplied within save_business operations. ( NAME 'uddiAuthorizedName' DESC 'businessEntity publisher name' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) 5.3 uddiOperator The uddiOperator is the certified name of the UDDI registry site operator that manages the master copy of the uddiBusinessEntity. The controlling operator records this data at the time data is saved. This data is generated and should not be supplied within save_business operations. ( NAME 'uddiOperator' DESC 'registry site operator of businessEntitys master copy' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) 5.4 uddiName Used in uddiBusinessEntity and uddiBusinessService. These are the human readable names recorded for the uddiBusinessEntity or uddiBusinessService, adorned with a unique xml:lang value to signify the language that they are expressed in. Name search is provided via find_business or find_service calls. Names may not be blank. The publishing of several names, e.g. for romanization purposes, is supported. In order to signify the language that the names are expressed in, they carry unique xml:lang values. Not more than one name element may omit specifying its language. Names passed in this way will be assigned the default language code of the registering party. This default language code is established at the time that publishing credentials are established with an individual Operator Site. If no default language is provisioned at the time a publisher signs up, the operator can adopt an appropriate default language code. ( NAME 'uddiName' Bergeson & Boogert Internet-Draft 6 LDAP Schema for UDDI May 2002 DESC 'human readable name' EQUALITY caseIgnoreMatch ORDERING caseIgnoreOrderingMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) The xml:lang value "#" precedes the name value. 5.5 uddiDescription The uddiDescription is an optional repeating element of one or more descriptions. One description is allowed per national language code supplied. ( NAME 'uddiDescription' DESC 'short description' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) The xml:lang value "#" precedes the description value. 5.6 uddiDiscoveryURLs This is a list of Uniform Resource Locators (URL) that point to alternate, file based service discovery mechanisms. Each recorded uddiBusinessEntity structure is automatically assigned a URL that returns the individual uddiBusinessEntity structure. URL search is provided via find_business call. The uddiDiscoveryURLs attribute is used to hold pointers to URL addressable discovery documents. The expected retrieval mechanism for URLs referenced in the data within this structure is HTTP-GET. The expected return document is not defined. Rather, a framework for establishing convention is provided, and two such conventions are defined within UDDI behaviors. It is hoped that other conventions come about and use this structure to accommodate alternate means of discovery. ( NAME 'uddiDiscoveryURLs' DESC 'URL to retrieve a businessEntity instance' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) The useType value "#" precedes the URL value. 5.7 uddiUseType Bergeson & Boogert Internet-Draft 7 LDAP Schema for UDDI May 2002 The uddiUseType is used to describe the type of contact or address in freeform text. Suggested examples for contact include "technical questions", "technical contact", "establish account", "sales contact", etc. Suggested examples for address include "headquarters", "sales office", "billing department", etc. ( NAME 'uddiUseType' DESC 'name of convention the referenced document follows' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) 5.8 uddiPersonName The uddiPersonName should list the name of the person or name of the job role that will be available behind the contact. Examples of roles include "administrator" or "webmaster". ( NAME 'uddiPersonName' DESC 'name of person or job role available for contact' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) 5.9 uddiPhone Used to hold telephone numbers for the contact. This element can be adorned with an optional uddiUseType attribute for descriptive purposes. If more than one phone element is saved, uddiUseType attributes are required on each. ( NAME 'uddiPhone' DESC 'telephone number for contact' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) The useType precedes the telephone number by a separating '#' (e.g. "Work Number#123 456-7890") 5.10 uddiEMail Used to hold email addresses for the contact. This element can be adorned with an optional uddiUseType attribute for descriptive purposes. If more than one email element is saved, uddiUseType attributes are required on each. ( Bergeson & Boogert Internet-Draft 8 LDAP Schema for UDDI May 2002 NAME 'uddiEMail' DESC 'e-mail address for contact' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) The useType precedes the email address by a separating '#' (e.g. "President of the United States#president@whitehouse.gov"). 5.11 uddiSortCode The uddiSortCode is used to drive the behavior of external display mechanisms that sort addresses. The suggested values for uddiSortCode include numeric ordering values (e.g. 1, 2, 3), alphabetic character ordering values (e.g. a, b, c) or the first n positions of relevant data within the address. ( NAME 'uddiSortCode' DESC 'specifies an external disply mechanism' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) 5.12 uddiTModelKey This is the unique key reference that implies that the keyName keyValue pairs given by subsequent uddiAddressLine elements are to be interpreted by the taxonomy associated with the uddiTModel that is referenced. ( NAME 'uddiTModelKey' DESC 'tModel unique identifier' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) 5.13 uddiAddressLine The uddiAddressLine contains the actual address in freeform text. If the address element contains a uddiTModelKey, these uddiAddressLine elements are to be adorned each with an optional keyName keyValue attribute pair. Together with the uddiTModelKey, keyName and keyValue qualify the uddiAddressLine in order to describe its meaning. The uddiAddressLine elements contain string data with a line length limit of 80 character positions. Each uddiAddressLine element can be adorned with two optional descriptive attributes, keyName and keyValue. Both attributes must be present in each address line if a Bergeson & Boogert Internet-Draft 9 LDAP Schema for UDDI May 2002 uddiTModelKey is assigned to the address structure. By doing this, the otherwise arbitrary use of address lines becomes structured. Together with the address' uddiTModelKey, keyName and keyValue virtually build a uddiKeyedReference that represents an address line qualifier, given by the referenced uddiTModel. When no uddiTModelKey is provided for the address structure, the keyName and keyValue attributes can be used without restrictions, for example, to provide descriptive information for each uddiAddressLine by using the keyName attribute. Since both the keyName and the keyValue attributes are optional, address line order is significant and will always be returned by the UDDI compliant registry in the order originally provided during a call to save_business. ( NAME 'uddiAddressLine' DESC 'address' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) The tModel, keyName, and keyValue of this attribute are separated by "#", (e.g. "#""#"). The keyValue is the only required portion of the attribute. 5.14 uddiIdentifierBag The uddiIdentifierBag element allows uddiBusinessEntity or uddiTModel structures to include information about common forms of identification such as D-U-N-S_ numbers, tax identifiers, etc. This data can be used to signify the identity of the uddiBusinessEntity, or can be used to signify the identity of the publishing party. Including data of this sort is optional, but when used greatly enhances the search behaviors exposed via the find_xx messages defined in the UDDI Version 2.0 API Specification. For a full description of the structures involved in establishing an identity, see UDDI Version 2.0 Data Structure Specification - Appendix A: Using Identifiers. ( NAME 'uddiIdentifierBag' DESC 'identification information' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) The tModel, keyName, and keyValue of this attribute are separated by "#", (e.g. "#""#"). The keyValue is the only required portion of the attribute. 5.15 uddiCategoryBag Bergeson & Boogert Internet-Draft 10 LDAP Schema for UDDI May 2002 The uddiCategoryBag element allows uddiBusinessEntity, uddiBusinessService and uddiTModel structures to be categorized according to any of several available taxonomy based classification schemes. Operator Sites automatically provide validated categorization support for three taxonomies that cover industry codes (via NAICS), product and service classifications (via UNSPC) and geography (via ISO 3166). Including data of this sort is optional, but when used greatly enhances the search behaviors exposed by the find_xx messages defined in the UDDI Version 2.0 API Specification. For a full description of structures involved in establishing categorization information, see UDDI Version 2.0 Data Structure Specification - Appendix B: Using categorization. ( NAME 'uddiCategoryBag' DESC 'categorization information' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) The tModel, keyName, and keyValue of this attribute are separated by "#", (e.g. "#""#"). The keyValue is the only required portion of the attribute. 5.16 uddiKeyedReference The uddiKeyedReference is a general-purpose attribute for a name- value pair, with an additional reference to a tModel. ( NAME 'uddiKeyedReference' DESC 'categorization information' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) The tModel, keyName, and keyValue of this attribute are separated by "#", (e.g. "#""#"). The keyValue is the only required portion of the attribute. 5.17 uddiServiceKey This is the unique key for a given uddiBusinessService. When saving a new uddiBusinessService structure, pass an empty uddiServiceKey value. This signifies that a UUID value is to be generated. To update an existing uddiBusinessService structure, pass the UUID value that corresponds to the existing service. If this data is received via an inquiry operation, the uddiServiceKey values may not be blank. When saving a new or updated service projection, pass the uddiServiceKey of the referenced uddiBusinessService structure. This attribute is optional when the uddiBindingTemplate data is contained within a fully expressed parent that already contains a Bergeson & Boogert Internet-Draft 11 LDAP Schema for UDDI May 2002 uddiServiceKey value. If the uddiBindingTemplate data is rendered into XML and has no containing parent that has within its data a uddiServiceKey, the value of the uddiServiceKey that is the ultimate containing parent of the uddiBindingTemplate is required to be provided. This behavior supports the ability to browse through the parent-child relationships given any of the core elements as a starting point. ( NAME 'uddiServiceKey' DESC 'businessService unique identifier' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) 5.18 uddiBindingKey This is the unique key for a given uddiBindingTemplate. When saving a new uddiBindingTemplate structure, pass an empty uddiBindingKey value. This signifies that a UUID value is to be generated. To update an existing uddiBindingTemplate, pass the UUID value that corresponds to the existing uddiBindingTemplate instance. If this data is received via an inquiry operation, the uddiBindingKey values may not be blank. ( NAME 'uddiBindingKey' DESC 'bindingTemplate unique identifier' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) 5.19 uddiAccessPoint The uddiAccessPoint element is an attribute-qualified pointer to a service entry point. The notion of service at the metadata level seen here is fairly abstract and many types of entry points are accommodated. A single attribute is provided named URLType. Required attribute qualified element8. This element is a text field that is used to convey the entry point address suitable for calling a particular Web service. This may be a URL, an electronic mail address, or even a telephone number. No assumptions about the type of data in this field can be made without first understanding the technical requirements associated with the Web service. ( NAME 'uddiAccessPoint' DESC 'entry point address to call a web service' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 Bergeson & Boogert Internet-Draft 12 LDAP Schema for UDDI May 2002 SINGLE-VALUE ) The URLType value "#" precedes the accessPoint value. 5.20 uddiHostingRedirector The uddiHostingRedirector element is used to designate that a uddiBindingTemplate entry is a pointer to a different uddiBindingTemplate entry. The value in providing this facility is seen when a business or entity wants to expose a service description (e.g. advertise that they have a service available that suits a specific purpose) that is actually a service that is described in a separate uddiBindingTemplate record. This might occur when a service is remotely hosted (hence the name of this element), or when many service descriptions could benefit from a single service description. The uddiHostingRedirector element has a single attribute and no element content. The attribute is a uddiBindingKey value that is suitable within the same UDDI registry instance for querying and obtaining the uddiBindingDetail data that is to be used. More on the uddiHostingRedirector can be found in the appendices for the UDDI Version 2.0 API Specification. Required element if uddiAccessPoint not provided. This element is adorned with a uddiBindingKey attribute, giving the redirected reference to a different uddiBindingTemplate. If you query a uddiBindingTemplate and find a uddiHostingRedirector value, you should retrieve that uddiBindingTemplate and use it in place of the one containing the uddiHostingRedirector data. ( NAME 'uddiHostingRedirector' DESC 'designates a pointer to another bindingTemplate' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) 5.21 uddiInstanceDescription This is an optional repeating element. This is one or more language qualified text descriptions that designate what role a uddiTModel reference plays in the overall service description. ( NAME 'uddiInstanceDescription' DESC 'instance details description' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) Bergeson & Boogert Internet-Draft 13 LDAP Schema for UDDI May 2002 The xml:lang value "#" precedes the description value. 5.22 uddiInstanceParms The uddiInstance Parms is an Optional element of the uddiInstance. Used to contain settings parameters or a URL reference to a file that contains settings or parameters required to use a specific facet of a uddiBindingTemplate description. If used to house the parameters themselves, the suggested content is a namespace qualified XML string - - using a namespace outside of the UDDI schema. If used to house a URL pointer to a file, the suggested format is URL that is suitable for retrieving the settings or parameters via HTTP-GET. ( NAME 'uddiInstanceParms' DESC 'URL reference to required settings' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) 5.23 uddiOverviewDescription This is optional repeating element. This language-qualified string is intended to hold a short descriptive overview of how a particular uddiTModel is to be used. ( NAME 'uddiOverviewDescription' DESC 'outlines tModel usage' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) The xml:lang value "#" precedes the description value. 5.24 uddiOverviewURL This is an optional element. This string data element is to be used to hold a URL reference to a long form of an overview document that covers the way a particular uddiTModel specific reference is used as a component of an overall web service description. The suggested format is a URL that is suitable for retrieving an HTML based description via a web browser or HTTP-GET operation. ( NAME 'uddiOverviewURL' DESC 'URL reference to overview document' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) Bergeson & Boogert Internet-Draft 14 LDAP Schema for UDDI May 2002 5.25 uddiFromKey The uddiFromKey is a required element. This is the unique key reference to the first uddiBusinessEntity the assertion is made for. ( NAME 'uddiFromKey' DESC 'unique businessEntity key reference' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) 5.26 uddiToKey The uddiToKey is a required element. This is the unique key reference to the second uddiBusinessEntity the assertion is made for. ( NAME 'uddiToKey' DESC 'unique businessEntity key reference' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) 5.27 uddiUUID The uddiUUID is a required element. This is to insure unique identification of uddiContact, uddiAddress, and uddiPublisherAssertion objects. ( NAME 'uddiUUID' DESC 'unique attribute' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) 5.28 uddiIsHidden Used to provide functionality for the delete_tModel operation. Logical deletion hides the deleted tModels from find_tModel result sets but does not physically delete it. ( NAME 'uddiIsHidden' DESC 'isHidden attribute' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 Bergeson & Boogert Internet-Draft 15 LDAP Schema for UDDI May 2002 SINGLE-VALUE ) 6. Object Class Definitions The following object classes are defined in this document: uddiBusinessEntity uddiContact uddiAddress uddiBusinessService uddiBindingTemplate uddiTModelInstanceInfo uddiTModel uddiPublisherAssertion Note that OIDs for the object classes in this document have not been assigned. All OIDs are in brackets, , as a placeholder until real OIDs are assigned. 6.1 uddiBusinessEntity This structural object class represents a businessEntity. ( NAME 'uddiBusinessEntity' SUP top STRUCTURAL MUST ( uddiBusinessKey $ uddiName) MAY ( uddiAuthorizedName $ uddiOperator $ uddiDiscoveryURLs $ uddiDescription $ uddiIdentifierBag $ uddiCategoryBag ) ) 6.2 uddiContact This structural object class represents a contact. It is contained by an uddiBusinessEntity. ( NAME 'uddiContact' SUP top STRUCTURAL MUST ( uddiPersonName $ uddiUUID ) MAY ( uddiUseType $ uddiDescription $ uddiPhone $ Bergeson & Boogert Internet-Draft 16 LDAP Schema for UDDI May 2002 uddiEMail ) ) 6.3 uddiAddress This structural object class represents an address. It is contained by an uddiContact. ( NAME 'uddiAddress' SUP top STRUCTURAL MUST ( uddiUUID ) MAY ( uddiUseType $ uddiSortCode $ uddiTModelKey $ uddiAddressLine ) ) 6.4 uddiBusinessService This structural object class represents a businessService. ( NAME 'uddiBusinessService' SUP top STRUCTURAL MUST ( uddiServiceKey $ uddiName ) MAY ( uddiBusinessKey $ uddiDescription $ uddiCategoryBag ) ) 6.5 uddiBindingTemplate This structural object class represents a bindingTemplate. ( NAME 'uddiBindingTemplate' SUP top STRUCTURAL MUST ( uddiBindingKey ) MAY ( uddiServiceKey $ uddiDescription $ uddiAccessPoint $ uddiHostingRedirector ) ) 6.6 uddiTModelInstanceInfo This structural object class represents a tModelInstanceInfo. It is contained by an uddiBindingTemplate. Bergeson & Boogert Internet-Draft 17 LDAP Schema for UDDI May 2002 ( NAME 'uddiTModelInstanceInfo' SUP top STRUCTURAL MUST ( uddiTModelKey ) MAY ( uddiDescription $ uddiInstanceDescription $ uddiInstanceParms $ uddiOverviewDescription $ uddiOverviewURL ) ) 6.7 uddiTModel This structural object class represents a tModel. ( NAME 'uddiTModel' SUP top STRUCTURAL MUST ( uddiTModelKey $ UddiName ) MAY ( uddiAuthorizedName $ uddiOperator $ uddiDescription $ uddiOverviewDescription $ uddiOverviewURL $ uddiIdentifierBag $ uddiCategoryBag $ uddiIsHidden ) ) 6.8 uddiPublisherAssertion This structural object class represents a publisherAssertion. ( NAME 'uddiPublisherAssertion' SUP top STRUCTURAL MUST ( uddiFromKey $ uddiToKey $ uddiKeyedReference $ uddiUUID ) ) 7. Name Forms This section defines the required hierarchical structure rules and naming attributes for the object classess defined in section 6. The following name forms are defined in this document: Bergeson & Boogert Internet-Draft 18 LDAP Schema for UDDI May 2002 uddiBusinessEntityNameForm uddiContactNameForm uddiAddressNameForm uddiBusinessServiceNameForm uddiBindingTemplateNameForm uddiTModelInstanceInfoNameForm uddiTModelNameForm uddiPublisherAssertionNameForm Note that OIDs for the structure rules in this document have not been assigned. All OIDs are in brackets, , as a placeholder until real OIDs are assigned. 7.1 uddiBusinessEntityNameForm This name form defines the naming attribute for a businessEntity. ( NAME 'uddiBusinessEntityNameForm' OC uddiBusinessEntity MUST ( uddiBusinessKey $ uddiName ) ) 7.2 uddiContactNameForm This name form defines the naming attribute for a contact. ( NAME 'uddiContactNameForm' OC uddiContact MUST ( uddiUUID ) ) 7.3 uddiAddressNameForm This name form defines the naming attribute for an address. ( NAME 'uddiAddressNameForm' OC uddiAddress MUST ( uddiUUID ) ) 7.4 uddiBusinessServiceNameForm This name form defines the naming attribute for a businessService. ( NAME 'uddiBusinessServiceNameForm' OC uddiBusinessService MUST ( uddiServiceKey ) ) Bergeson & Boogert Internet-Draft 19 LDAP Schema for UDDI May 2002 7.5 uddiBindingTemplateNameForm This name form defines the naming attribute for a bindingTemplate. ( NAME 'uddiBindingTemplateNameForm' OC uddiBindingTemplate MUST ( uddiBindingKey ) ) 7.6 uddiTModelInstanceInfoNameForm This name form defines the naming attribute for a tModelInstanceInfo. ( NAME 'uddiTModelInstanceInfoNameForm' OC uddiTModelInstanceInfo MUST ( uddiTModelKey ) ) 7.7 uddiTModelNameForm This name form defines the naming attribute for a tModel. ( NAME 'uddiTModelNameForm' OC uddiTModel MUST ( uddiTModelKey ) ) 7.8 uddiPublisherAssertionNameForm This name form defines the naming attribute for a publisherAssertion. ( NAME 'uddiPublisherAssertionNameForm' OC uddiPublisherAssertion MUST ( uddiUUID ) ) 8. DIT Structure Rules This section defines the required hierarchical structure rules for the object classess defined in section 6. The following structure rules are defined in this document: uddiBusinessEntityStructureRule uddiContactStrucureRule Bergeson & Boogert Internet-Draft 20 LDAP Schema for UDDI May 2002 uddiAddressStructureRule uddiBusinessServiceStructureRule uddiBindingTemplateStructureRule uddiTModelInstanceInfoStructureRule Note that rule identifiers defined here show the relationship between structure rules. Implementations may use different identifiers but must follow the same hierarchical model. 8.1 uddiBusinessEntityStructureRule ( 1 NAME 'uddiBusinessEntityStructureRule' FORM uddiBusinessEntityNameForm ) 8.2 uddiContactStrucureRule This structure rule defines the object class containment for a contact. ( 2 NAME 'uddiContactStrucureRule' FORM uddiContactNameForm SUP ( 1 ) ) 8.3 uddiAddressStructureRule This structure rule defines the object class containment for a address. ( 3 NAME 'uddiAddressStructureRule' FORM uddiAddressNameForm SUP ( 2 ) ) 8.4 uddiBusinessServiceStructureRule This structure rule defines the object class containment for a businessService. ( 4 NAME 'uddiBusinessServiceStructureRule' FORM uddiBusinessServiceNameForm SUP ( 1 ) ) 8.5 uddiBindingTemplateStructureRule This structure rule defines the object class containment for a bindingTemplate. Bergeson & Boogert Internet-Draft 21 LDAP Schema for UDDI May 2002 ( 5 NAME 'uddiBindingTemplateStructureRule' FORM uddiBindingTemplateNameForm SUP ( 4 ) ) 8.6 uddiTModelInstanceInfoStructureRule This structure rule defines the object class containment for a tModelInstanceInfo. ( 6 NAME 'uddiTModelInstanceInfoStructureRule' FORM uddiTModelInstanceInfoNameForm SUP ( 5 ) ) 9. Security Considerations Storing UDDI data into the directory enables the data to be examined and used outside the environment in which it was originally created. The directory entry containing the UDDI data could be read and modified within the constraints imposed by the access control mechanisms of the directory. 10. References [LDAPv3] M. Wahl, s. Kille and T. Howes, "Lightweight Directory Access Protocol (v3)", Internet Standard, December, 1997. Available as RFC2251 [UDDI] UDDI.ORG, "UDDI version 2.0 Data Structure Reference," http://www.uddi.org [RFC2119] S. Bradner, "Key Words for use in RFCs to Indicate Requirement Levels," Internet Standard, December, 1997. Available as RFC2253 11. Author's Addresses Bruce Bergeson Novell, Inc. Mail Stop PRV-H411 1800 S Novell Place Provo, UT 84606 Phone: +1 801 861 3854 Email: bruce.bergeson@novell.com Bergeson & Boogert Internet-Draft 22 LDAP Schema for UDDI May 2002 Kent Boogert Novell, Inc. 1800 S Novell Place Provo, UT 84606 Phone: +1 801 861 3212 Email: kent.boogert@novell.com Bergeson & Boogert Internet-Draft 23