The invention relates to UDDI entities defined using tModels and more particularly to a UDDI registry accessing data associated with a UDDI entity.
Over recent years it has become commonplace for a business to provide the ability for a user to purchase goods from it using a computer that communicates with a computer of the business. For example a business may provide a web site on the Internet that enables a user to purchase goods over the world wide web. Following on from this success, it has become a requirement to more easily locate suitable businesses, or web service providers, to deal with. This requirement has been satisfied by the arrival of registry services, such as specified by UDDI (Universal Description, Discovery and Integration), which provide support for business entities that provide web services.
UDDI is an industry effort to provide directory services for web services offered by businesses, or other web service providers. A UDDI registry provider provides a registry in which businesses can publish their web services and from which other business representatives/clients can locate and form business relationships with partners based on the web services that they provide. The UDDI specification provides structural templates for representing information about business entities, the nature of their services, and mechanisms to locate and access them. These are facilitated by standards such as Web Services Definition Language (WSDL), and Simple Object Access Protocol (SOAP).
In a UDDI registry entities are defined by and contained within, logical structures such as businessEntity, businessService, bindingTemplate and tModel. For example, a business or organization that provides web services is defined using businessEntity. The businessEntity describes and categorizes the business, or even the department or machine that offers the services. As a top level entity, the businessEntity can contain multiple businessService entities. The businessService structure describes and classifies a logical grouping of web services. The businessService can contain bindingTemplate entities and it is the bindingTemplate that represents an individual web service. That is, the bindingTemplate specifies the technical information that applications use to bind and interact with the service. The bindingTemplate includes the access point for the service. Technical models, or tModels for short, are used in UDDI to represent unique concepts or constructs. TModels exist outside of the parent-child containment relationships between the businessEntity, businessService and bindingTemplate structures.
Each distinct specification, transport, protocol, namespace, categorization, and address format that can be applied to the other UDDI entities is represented by a tModel. UDDI registries provide a standard set of tModels. If a new concept or standard is required to help describe a business or service, a new tModel can be published. References to specific tModels can be placed in any of the UDDI entities using container structures called categoryBag, identifierBag, and tModelBag. The references are called keyedReferences because they specify the unique ID of the tModel. TModels that contain a keyedreference to a tModel that represents a categorization system are known as categorization tModels and represent classification systems, or taxonomies. By referencing these types of tModel, businessEntity, businessService and bindingTemplate may be categorized. UDDI provides an inquiry mechanism that allows service requesters to discover entities that match a specific set of criteria, including categorization systems. For each taxonomy in UDDI, there must be a tModel to describe it and a set of valid values that represent the allowed category values.
UDDI provides both standardized taxonomies, such as North American Industry Classification System (NAICS) and United Nations Standard Product and Services Classification (UNSPSC), and facilities by which additional taxonomies, so called custom taxonomies, can be provided. Through custom taxonomies, a UDDI registry can provide a richer set of categories for businesses and clients to classify the services that they provide and require, respectively.
A Custom taxonomy is defined to a UDDI registry using a tModel, which comprises a set of defined fields set to valid values. For a taxonomy tModel the set of defined fields define a tModel key, a tModel name, a tModel description, and that the tModel defines a taxonomy. For example, the tModel key is set to a UUID (Universal Unique Identifier) to uniquely identify the tModel, the tModel Name is set to a URI (Universal Resource Identifier) to uniquely identify the taxonomy, and the tModel description is set to a string that provides a textual description of the taxonomy. However, the tModel must further provide information that enables the taxonomy data to be accessed and, as a result, the existing fields must also be used for this purpose. This requires that either the use of one of the defined fields is changed to a purpose for which it was not intended such that, for example, the tModel name specifies a database key that is used to access the taxonomy data, or the database that contains the taxonomy data is changed to use a database key that is the same as the URI value to which the tModel name field is set. Accordingly, either the intended purpose of the tModel name field is lost or the taxonomy must be stored in the database using an overcomplicated key.
Further, a UDDI registry provider may also provide a Graphical User Interface (GUI) tool through which a user can, for example, define UDDI entities that define a business and its services to the UDDI registry. To enable this, the GUI tool can provide a facility to assign categories to a particular UDDI entity. For example, a drop down list of available taxonomies and their categories may be provided from which one or more category values can be selected. As a result, in this case, the defined fields in a taxonomy tModel must also provide a name that is useful for displaying with a GUI tool. As a result, one of the defined fields must also be used for this purpose which, for example, if the tModel name is used has the effect that either the tModel name is set to a name suitable for a GUI tool instead of a URI or the GUI must use the URI, or some subset of the URI, as a name to display on the GUI tool.
According to the present invention, a tModel for a UDDI entity, such as a custom taxonomy, provides at least one additional field using a standard UDDI technique, which can be used to provide information that can be used to access the taxonomy.
According to a first aspect, the invention provides a method for a UDDI registry to access data associated with a UDDI entity, the method including: accessing a tModel that defines the UDDI entity; reading from the tModel a uddi-org:general_keywords keyedReference, wherein the keyedreference defines a value; and using the value to access data associated with the UDDI entity.
According to the second aspect, the invention provides a UDDI registry including: an element that accesses a tModel defining a UDDI entity; a reader that reads from the tModel a uddi-org:general_keywords keyedReference, wherein the keyedReference defines a value; and an element that uses the value to access data associated with the UDDI entity.
According to a third aspect, the invention provides a computer program product comprising instructions thaty, when executed on a data processing host, cause the host to carry out a method according to the first aspect.
By using a uddi-org:general_keywords keyedreference, the additional information is added using a standard UDDI mechanism and, as a result, if a UDDI registry that does not implement the invention were to read the UDDI entity, it will simply ignore the additional keyedReference rather than, for example, diagnose an error.
Further, by adding this keyedreference that provides information to access the entity, the existing tModel defined fields, such as the tModel name field, are freed from this purpose and may be used for the purpose for which they were intended, according to the UDDI standard.
Preferably a further uddi-org:general_keywords keyedreference is added to the tModel, the further keyedReference defining a name suitable for displaying in a GUI tool to describe the entity.
Accordingly, the UDDI registry may provide for: reading from the tModel a uddi-org:general_keywords keyedReference, wherein the keyedreference defines a name; and displaying the name on a GUI tool in order to represent the entity.
Optionally, the value that is used to access data associated with the UDDI entity comprises a database key under which the data is stored. Alternatively, it could include a database name and key, or a file name and/or a key.
Note that the UDDI entity could be any entity that is defined using a tModel and that has associated data that is separate from the tModel. For example, the UDDI entity could be a taxonomy that has associated taxonomy data or another type of entity, such as a transport or protocol, that has data associated with it, for example, an image file for displaying as an icon for a UDDI entity in a GUI, or a sound file for associating a voice description with a UDDI entity.
The invention will now be described by way of example only, with reference to a preferred embodiment thereof, as illustrated in the accompanying drawings, in which:
As a result, neither the tModel key, name or description are appropriate for defining a means to associate the tModel definition with the taxonomy data which it represents. For example the tModel key (UUID) could be used for this purpose but its value is not known until after the tModel is published and taxonomy data may not necessarily be stored in a database such that it can be associated with it. Alternatively the tModel name could be set to a value which can be associated with the data in the database but then it would be in conflict with the intended function of the tModel name.
Further none of the fields are suitable to provide a name which is easily readable in a GUI tool. For example the tModel name is a URI is a relatively complex string which can be up to 256 characters long, and further, the third field 203 which can be up to 256 characters long, is optional according to the UDDI specification, and further is intended as a description of the taxonomy.
Note that other fields 204 in the tModel are used to specify what the tModel defines and these fields are keyedReferences in the categoryBag section of the tModel. In this example the tModel defines a “categorization” (taxonomy) which in this case is “checked” which means that the taxonomy has a validation service.
Accordingly the information which can be provided by the user in a tModel which defines a taxonomy is somewhat limited and does not provide information which is particularly useful for associating the tModel with a database representation of the taxonomy or for displaying in a GUI tool. For example
The first keyedReference 401 specifies a key name 404 of “urn:x-example.org:customTaxonomy:key” and key value 405 which specifies a value which can be used to access the taxonomy in a database/repository of taxonomies. This value could be used in addition to another field, such as the tModel name, when accessing the taxonomy data or it could provide sufficient information to access the taxonomy data independently of any other fields. For example, the key value 405 could include a file name and/or a file key. Alternatively, for example, the key value could include a database name and/or a database table name and/or a database key.
The second keyed reference specifies a key name 406 of “urn:x-example.org:uddi:customTaxonomy:displayName” and specifies a value which can be used, for example, to display on a GUI tool to specify the Taxonomy. Accordingly the value can be set to a value which is suitable for display on a GUI tool without having to consider a second purpose for which the value may be used.
Note that although the example shown in
Further note that in the example the names provided for the keyedreferences are “urn:x-example.org:uddi:customTaxonomy:key” and “urn:x-example.org:uddi:customTaxonomy:displayName”. In practice the choice of these names is somewhat arbitrary and any name could be chosen which uniquely identifies the purpose of the keyedreference compared to other keyedReference used in tModels defined to the UDDI registry in use. This should be a Uniform Resource Name (URN)—a universal resource identifier which is independent of location.
Note that a skilled person in the art would realise that the method described with reference to FIGS. 7 could be implemented in a variety of programming languages, for example, Java™, C, and C++ (Java is a registered trademark of Sun Microsystems, Inc. in the United States, other countries, or both.), and would further realise that the order of the steps may be varied, for example step 704 could be before step 703. Further a skilled person would realise that once implemented the methods can be stored in a computer program product comprising one or more programs, in source or executable form, on a media, such as floppy disk, CD, and DVD, suitable for loading onto a data processing host and causing the data processing host to carry out the methods. Further a skilled person would realise that the method described with reference to 7 could be embodied in a UDDI registry comprising elements to carry out the method steps. For example a reader could carry out steps 702 and 704.
The invention therefore provides a method, a UDDI registry, and a computer program product for accessing a UDDI entity defined by a tModel. A uddi-org:general_keywords keyedreference is added to the tModel to provide a value which may be used in order to access data associated with the entity. Accordingly this is read and used when accessing the data. Further a second uddi-org:general_keywords keyedreference may be added to the tModel to provide a value which may be used to display in a GUI tool in order to represent the entity. Accordingly this value may be read and displayed on a GUI tool in order to represent the entity.
Number | Date | Country | Kind |
---|---|---|---|
0416763.1 | Jul 2004 | GB | national |