Individual Submission                                      B. Bergeson,
                                                           K. Boogert
Internet Draft                                             Novell, Inc.
Document: draft-bergeson-uddi-ldap-schema-00.txt           February, 2002
Category: Informational


                          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 [1].

   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.


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.

   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


Bergeson and Boogert        Internet-Draft                           1
                         LDAP Schema for UDDI                 Feb 2002


   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.

   In some cases, businesses would like to share or reuse services,
   e.g. when a large enterprise publishes separate businessEntity


Bergeson & Boogert          Internet-Draft                           2
                         LDAP Schema for UDDI                 Feb 2002


   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
   applied for using tModels: as sources for determining compatibility
   and as keyed namespace references.

Bergeson & Boogert          Internet-Draft                           3
                         LDAP Schema for UDDI                 Feb 2002



   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
        uddiPersonName
        uddiPhone

Bergeson & Boogert          Internet-Draft                           4
                         LDAP Schema for UDDI                 Feb 2002


        uddiEMail
        uddiSortCode
        uddiTModelKey
        uddiAddressLine
        uddiKeyName
        uddiKeyValue
        uddiIdentifierBag
        uddiCategoryBag
        uddiKeyedReference
        uddiServiceKey
        uddiBindingKey
        uddiAccessPoint
        uddiURLType
        uddiHostingRedirector
        uddiInstanceDescription
        uddiInstanceParms
        uddiOverviewDescription
        uddiOverviewURL
        uddiFromKey
        uddiToKey
        uddiUUID
        uddiIsHidden

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.

   ( 2.16.840.1.113719.1.302.4.1.1
     NAME 'uddiBusinessKey'
     DESC 'businessEntity unique identifier'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
     SINGLE-VALUE
   )

5.2 uddiAuthorizedName

   The uddiAuthorizedName is the recorded name of the individual that
   published the uddiBusinessEntity data.  This data is generated by


Bergeson & Boogert          Internet-Draft                           5
                         LDAP Schema for UDDI                 Feb 2002


   the controlling operator and should not be supplied within
   save_business operations.

   ( 2.16.840.1.113719.1.302.4.2.1
     NAME 'uddiAuthorizedName'
     DESC 'businessEntity publisher name'
     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.

   ( 2.16.840.1.113719.1.302.4.3.1
     NAME 'uddiOperator'
     DESC 'registry site operator of businessEntitys master copy'
     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.

   ( 2.16.840.1.113719.1.302.4.4.1
     NAME 'uddiName'
     DESC 'human readable name'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
   )

   The xml:lang value ææ#ÆÆ precedes the name value.

Bergeson & Boogert          Internet-Draft                           6
                         LDAP Schema for UDDI                 Feb 2002



5.5 uddiDescription

   The uddiDescription is an optional repeating element of one or more
   descriptions. One description is allowed per national language code
   supplied.

   ( 2.16.840.1.113719.1.302.4.5.1
     NAME 'uddiDescription'
     DESC 'short description'
     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.

   ( 2.16.840.1.113719.1.302.4.6.1
     NAME 'uddiDiscoveryURLs'
     DESC 'URL to retrieve a businessEntity instance'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
   )

5.7 uddiUseType

   The uddiUseType designates the name of the convention that the
   referenced document follows. Two reserved convention values are
   ææbusinessEntityÆÆ and ææbusinessEntityExtÆÆ. URLs qualified with these
   values should point to XML documents of the same type as the
   uddiUseType value.

   ( 2.16.840.1.113719.1.302.4.7.1
     NAME 'uddiUseType'
     DESC 'name of convention the referenced document follows'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
     SINGLE-VALUE
    )


Bergeson & Boogert          Internet-Draft                           7
                         LDAP Schema for UDDI                 Feb 2002


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ÆÆ.

   ( 2.16.840.1.113719.1.302.4.8.1
     NAME 'uddiPersonName'
     DESC 'name of person or job role available for contact'
     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. The uddiUseType is appended to the
   telephone number by a separating æ#Æ.  For example:
        ææ123 456-7890#Work NumberÆÆ

   ( 2.16.840.1.113719.1.302.4.9.1
     NAME 'uddiPhone'
     DESC 'telephone number for contact'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    )

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. The uddiUseType is appended to the
   email address by a separating æ#Æ.  For example:
        ææpresident@whitehouse.gov#President of the United StatesÆÆ

   ( 2.16.840.1.113719.1.302.4.10.1
     NAME 'uddiEMail'
     DESC 'e-mail address for contact'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    )

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.

   ( 2.16.840.1.113719.1.302.4.11.1
     NAME 'uddiSortCode'

Bergeson & Boogert          Internet-Draft                           8
                         LDAP Schema for UDDI                 Feb 2002


     DESC 'specifies an external disply mechanism'
     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 uddiKeyName
   uddiKeyValue pairs given by subsequent uddiAddressLine elements are
   to be interpreted by the taxonomy associated with the uddiTModel
   that is referenced.

   ( 2.16.840.1.113719.1.302.4.12.1
     NAME 'uddiTModelKey'
     DESC 'tModel unique identifier'
     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 uddiKeyName
   uddiKeyValue attribute pair. Together with the uddiTModelKey,
   uddiKeyName and uddiKeyValue 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, uddiKeyName and
   uddiKeyValue. Both attributes must be present in each address line
   if a uddiTModelKey is assigned to the address structure. By doing
   this, the otherwise arbitrary use of address lines becomes
   structured. Together with the addressÆ uddiTModelKey, uddiKeyName
   and uddiKeyValue 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
   uddiKeyName and uddiKeyValue attributes can be used without
   restrictions, for example, to provide descriptive information for
   each uddiAddressLine by using the uddiKeyName attribute. Since both
   the uddiKeyName and the uddiKeyValue 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.

   ( 2.16.840.1.113719.1.302.4.13.1
     NAME 'uddiAddressLine'
     DESC 'address'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    )

Bergeson & Boogert          Internet-Draft                           9
                         LDAP Schema for UDDI                 Feb 2002



5.14 uddiKeyName

   The uddiKeyName is an optional element, but may only be specified if
   uddiKeyValue is also specified.  See uddiAddressLine for more
   information.

   ( 2.16.840.1.113719.1.302.4.14.1
     NAME 'uddiKeyName'
     DESC 'key name'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    )

5.15 uddiKeyValue

   The uddiKeyValue is an optional element, but may only be specified
   if uddiKeyName is also specified.  See uddiAddressLine for more
   information.

   ( 2.16.840.1.113719.1.302.4.15.1
     NAME 'uddiKeyValue'
     DESC 'key value'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    )

5.16 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.

   ( 2.16.840.1.113719.1.302.4.16.1
     NAME 'uddiIdentifierBag'
     DESC 'identification information'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    )

5.17 uddiCategoryBag

   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)

Bergeson & Boogert          Internet-Draft                          10
                         LDAP Schema for UDDI                 Feb 2002


   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.

   ( 2.16.840.1.113719.1.302.4.17.1
     NAME 'uddiCategoryBag'
     DESC 'categorization information'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    )

5.18 uddiKeyedReference

   The uddiKeyedReference is a general-purpose attribute for a name-
   value pair, with an additional reference to a tModel.  The tModel,
   keyName, and keyValue or this attribute are separated by ææ#ÆÆ, e.g.
   <tModel>ÆÆ#ÆÆ<keyName>ÆÆ#ÆÆ<keyValue>.  The keyValue is the only
   required portion of the attribute.

   ( 2.16.840.1.113719.1.302.4.18.1
     NAME 'uddiKeyedReference'
     DESC 'categorization information'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    )

5.19 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
   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.

   ( 2.16.840.1.113719.1.302.4.19.1
     NAME 'uddiServiceKey'
     DESC 'businessService unique identifier'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
     SINGLE-VALUE

Bergeson & Boogert          Internet-Draft                          11
                         LDAP Schema for UDDI                 Feb 2002


    )

5.20 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.

   ( 2.16.840.1.113719.1.302.4.20.1
     NAME 'uddiBindingKey'
     DESC 'bindingTemplate unique identifier'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
     SINGLE-VALUE
    )

5.21 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 uddiURLType.

   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.

   ( 2.16.840.1.113719.1.302.4.21.1
     NAME 'uddiAccessPoint'
     DESC 'entry point address to call a web service'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
     SINGLE-VALUE
    )

5.22 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.


Bergeson & Boogert          Internet-Draft                          12
                         LDAP Schema for UDDI                 Feb 2002


   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.

   ( 2.16.840.1.113719.1.302.4.22.1
     NAME 'uddiHostingRedirector'
     DESC 'designates a pointer to another bindingTemplate'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
     SINGLE-VALUE
    )

5.23 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.

   ( 2.16.840.1.113719.1.302.4.23.1
     NAME 'uddiInstanceDescription'
     DESC 'instance details description'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
   )

   The xml:lang value ææ#ÆÆ precedes the description value.

5.24 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.

   ( 2.16.840.1.113719.1.302.4.24.1
     NAME 'uddiInstanceParms'
     DESC 'URL reference to required settings'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    )

Bergeson & Boogert          Internet-Draft                          13
                         LDAP Schema for UDDI                 Feb 2002



5.25 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.

   ( 2.16.840.1.113719.1.302.4.25.1
     NAME 'uddiOverviewDescription'
     DESC 'outlines tModel usage'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
   )

   The xml:lang value ææ#ÆÆ precedes the description value.

5.26 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.

   ( 2.16.840.1.113719.1.302.4.26.1
     NAME 'uddiOverviewURL'
     DESC 'URL reference to overview document'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
     SINGLE-VALUE
    )

5.27 uddiFromKey

   The uddiFromKey is a required element. This is the unique key
   reference to the first uddiBusinessEntity the assertion is made for.

   ( 2.16.840.1.113719.1.302.4.27.1
     NAME 'uddiFromKey'
     DESC 'unique businessEntity key reference'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
     SINGLE-VALUE
    )

5.28 uddiToKey

   The uddiToKey is a required element. This is the unique key
   reference to the second uddiBusinessEntity the assertion is made
   for.

   ( 2.16.840.1.113719.1.302.4.28.1
     NAME 'uddiToKey'
     DESC 'unique businessEntity key reference'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15

Bergeson & Boogert          Internet-Draft                          14
                         LDAP Schema for UDDI                 Feb 2002


     SINGLE-VALUE
    )

5.29 uddiUUID

   This is to insure unique identification of data objects.

   ( 2.16.840.1.113719.1.302.4.29.1
     NAME 'uddiUUID'
     DESC 'unique attribute'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
     SINGLE-VALUE
    )

5.30 uddiIsHidden

   Used to provide functionality for the delete_tModel operation.

   ( 2.16.840.1.113719.1.302.4.30.1
     NAME 'uddiIsHidden'
     DESC 'isHidden attribute'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
     SINGLE-VALUE
    )

6. Object Class Definitions

   The following object classes are defined in this document:

        uddiBusinessEntity
        uddiContact
        uddiAddress
        uddiBusinessService
        uddiBindingTemplate
        uddiTModelInstanceInfo
        uddiTModel
        uddiPublisherAssertion

6.1 uddiBusinessEntity

   This structural object class represents a businessEntity.

   ( 2.16.840.1.113719.1.302.6.1.1
     NAME 'uddiBusinessEntity'
     SUP 'top'
     STRUCTURAL
     MUST ( uddiBusinessKey $
            uddiName)
     MAY ( uddiAuthorizedName $
           uddiOperator $
           uddiDiscoveryURLs $
           uddiDescription $
           uddiIdentifierBag $

Bergeson & Boogert          Internet-Draft                          15
                         LDAP Schema for UDDI                 Feb 2002


           uddiCategoryBag )
     X-NDS_NAMING ('uddiBusinessKey' 'uddiName')
     X-NDS_CONTAINMENT ( 'country'
                         'locality'
                         'organization'
                         'organizationalUnit'
                         'domain' )
    )

6.2 uddiContact

   This structural object class represents a contact.  It is contained
   by an uddiBusinessEntity.

   ( 2.16.840.1.113719.1.302.6.2.1
     NAME 'uddiContact'
     SUP 'top'
     STRUCTURAL
     MUST ( uddiPersonName $
            uddiUUID )
     MAY ( uddiUseType $
           uddiDescription $
           uddiPhone $
           uddiEMail )
     X-NDS_NAMING ( 'uddiUUID' )
     X-NDS_CONTAINMENT ( 'uddiBusinessEntity' )
    )

6.3 uddiAddress

   This structural object class represents an address.  It is contained
   by an uddiContact.

   ( 2.16.840.1.113719.1.302.6.3.1
     NAME 'uddiAddress'
     SUP 'top'
     STRUCTURAL
     MUST ( uddiUUID )
     MAY ( uddiUseType $
           uddiSortCode $
           uddiTModelKey $
           uddiAddressLine)
     X-NDS_NAMING ( 'uddiUUID' )
     X-NDS_CONTAINMENT ( 'uddiContact' )
    )

6.4 uddiBusinessService

   This structural object class represents a businessService.

   ( 2.16.840.1.113719.1.302.6.4.1
     NAME 'uddiBusinessService'
     SUP 'top'

Bergeson & Boogert          Internet-Draft                          16
                         LDAP Schema for UDDI                 Feb 2002


     STRUCTURAL
     MUST ( uddiServiceKey $
            uddiName )
     MAY ( uddiBusinessKey $
           uddiDescription $
           uddiCategoryBag )
     X-NDS_NAMING ( 'uddiServiceKey' )
     X-NDS_CONTAINMENT ( 'uddiBusinessEntity' )
    )

6.5 uddiBindingTemplate

   This structural object class represents a bindingTemplate.

   ( 2.16.840.1.113719.1.302.6.5.1
     NAME 'uddiBindingTemplate'
     SUP 'top'
     STRUCTURAL
     MUST ( uddiBindingKey )
     MAY ( uddiServiceKey $
           uddiDescription $
           uddiAccessPoint $
           uddiHostingRedirector )
     X-NDS_NAMING ( 'uddiBindingKey' )
     X-NDS_CONTAINMENT ( 'uddiBusinessService' )
    )

6.6 uddiTModelInstanceInfo

   This structural object class represents a tModelInstanceInfo.  It is
   contained by an uddiBindingTemplate.

   ( 2.16.840.1.113719.1.302.6.6.1
     NAME 'uddiTModelInstanceInfo'
     SUP 'top'
     STRUCTURAL
     MUST ( uddiTModelKey )
     MAY ( uddiDescription $
           uddiInstanceDescription $
           uddiInstanceParms $
           uddiOverviewDescription $
           uddiOverviewURL )
     X-NDS_NAMING ( 'uddiTModelKey' )
     X-NDS_CONTAINMENT ( 'uddiBindingTemplate' )
    )

6.7 uddiTModel

   This structural object class represents a tModel.

   ( 2.16.840.1.113719.1.302.6.7.1
     NAME 'uddiTModel'
     SUP 'top'

Bergeson & Boogert          Internet-Draft                          17
                         LDAP Schema for UDDI                 Feb 2002


     STRUCTURAL
     MUST ( uddiTModelKey $
            UddiName )
     MAY ( uddiAuthorizedName $
           uddiOperator $
           uddiDescription $
           uddiOverviewDescription $
           uddiOverviewURL $
           uddiIdentifierBag $
           uddiCategoryBag $
           uddiIsHidden )
     X-NDS_NAMING ( 'uddiTModelKey' )
     X-NDS_CONTAINMENT ( 'country'
                         'locality'
                         'organization'
                         'organizationalUnit'
                         'domain' )
    )

6.8 uddiPublisherAssertion

   This structural object class represents a publisherAssertion.

   ( 2.16.840.1.113719.1.302.6.8.1
     NAME 'uddiPublisherAssertion'
     SUP 'top'
     STRUCTURAL
     MUST ( uddiFromKey $
            uddiToKey $
            uddiKeyedReference $
            uddiUUID )
     X-NDS_NAMING ( 'uddiUUID' )
     X-NDS_CONTAINMENT ( 'country'
                         'locality'
                         'organization'
                         'organizationalUnit'
                         'domain' )
    )


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


8. References




Bergeson & Boogert          Internet-Draft                          18
                         LDAP Schema for UDDI                 Feb 2002



   1  Bradner, S., "The Internet Standards Process -- Revision 3", BCP
      9, RFC 2026, October 1996.


   [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

10. 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


   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                          19