Petals Master allows to add custom Category and Identifier systems for Organizations, Services and Endpoints to the registry at startup.
Category and Identifier systems are called TModel in the UDDI taxonomy.
A Category system is a set of category values that could be added to Organization, Service or Endpoint to classify it. Petals Master comes with a set of UDDI standard classification systems : NAICS 1997 and 2002, UNSPSC and ISO 3166
Codes for names of countries or regions.
An Identifier system is a set of identifer values that uniquely identify an Organization in a specific identification system. If one of your organizations is identified in a specific identification system you could add this identifier in the registry through the UI or WS API. Petals Master comes with a set of UDDI standard identification systems : Dun and Bradstreet D-U-N-S Number and Thomas Registry Suppliers.
Standard UDDI Category and Identifier systems are registered at Petals Master startup thanks to an XML dataset available in "${petals-master-root}/WEB-INF/classes/tmodel/" and called "base-tmodels.xml". You could add your custom Category and Identifier systems thanks to this file. Once added, they will be available in UI and WS API and then, they could be used with Services, Endpoints and Organizations.
Caution Don't remove standard TModels from "base-tmodels.xml". They are Petals Master requirements. |
Adding custom categorization system and associated values
Here is a code snippet allowing to add a custom category to Petals Master registry at startup :
<tModel tModelKey="uddi:dragon.org:myCustomCategory"> <name>My Custom Category</name> <description xml:lang="en"> Describe my custom category </description> <overviewDoc> <overviewURL useType="text"> http://dragon.org/MyCustomCategoryFullDescription.txt </overviewURL> </overviewDoc> <overviewDoc> <overviewURL useType="valueSet"> http://dragon.org/MyCustomCategory-valueSet.txt </overviewURL> </overviewDoc> <categoryBag> <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types"/> <keyedReference keyName="uddi-org:types:valueSet" keyValue="valueSet" tModelKey="uddi:uddi.org:categorization:types"/> <keyedReference keyName="dragon.org:category:type" keyValue="all" tModelKey="uddi:uddi.org:categorization:general_keywords"/> </categoryBag> </tModel>
The tModel element : a category system is a TModel in UDDI taxonomy. You could specify a key for this TModel with the tModelKey attribute. If you don't specify any key, Petals Master will generate a key for you. Keys must have the following form "uddi:${root.domain}:anythingElse". For example, if the root domain specified in dragon.properties file is "mycompany.com", a valid key is "uddi:mycompany.com:foobar". If the key is generated by Petals Master, it will have the following form "uddi:${root.domain}:uuid" where uuid is an auto-generated unique identifier.
Caution if you specify your own keys, you're in charge of the unicity. |
The name element : the name of the category system. Will be used to represent the category system in UI.
The description element : a human readable description of this category system. You could specify the language used for this description. Language is specified with a two letters country code as specified in the iso3166 specification.
overviewDoc elements : they have two main purposes. A descriptive purpose. In this case, it will embed an overviewUrl element of useType "text", that point to a description URL. It will be used to provide a more detailed description of the category system. overviewDoc could also be used to specify a value set for this category system. In this case, it will embed an overviewUrl element of useType "valueSet", that point to a file listing all values and their related description. This value set file is a text file, each line is a "value" "description" couple separated by ";" character :
value1;description -1
value2;description -2
value3;description -3
...
The categoryBag element : used to classify the categorization system. The first keyedReference embeded element must be unchanged, it specifies that this tModel is a category tModel. The second one is optional but required if you have associated a value set to this category (using the overviewDoc element of useType "valueSet"). The last keyedReference embeded element is used to specified to which entities this categorization system applies (allowed keyValue attribute are, "all" to specify that this category applies to Organization, Services and Endpoint, "businessService" applies only to Services, "businessEntity" applies only to Organizations and "bindingTemplate" applies only to Endpoints.
Adding custom identification system
Here is a code snippet allowing to add a custom identifier to Petals Master registry at startup :
<tModel tModelKey="uddi:dragon.org:myCustomIdentifier"> <name>My Custom Identifier</name> <description xml:lang="en">Describe my custom identifier</description> <overviewDoc> <overviewURL useType="text"> http://dragon.org/MyCustomIdentifierFullDescription.txt </overviewURL> </overviewDoc> <categoryBag> <keyedReference keyName="uddi-org:types:identifier" keyValue="identifier" tModelKey="uddi:uddi.org:categorization:types"/> <keyedReference keyName="dragon.org:category:type" keyValue="businessEntity" tModelKey="uddi:uddi.org:categorization:general_keywords"/> </categoryBag> </tModel>
The tModel element : an identifier system is a TModel in UDDI taxonomy. You could specify a key for this TModel with the tModelKey attribute. If you don't specify any key, Petals Master will generate a key for you. Keys must have the following form "uddi:${root.domain}:anythingElse". For exemple, if the root domain specified in dragon.properties file is "mycompany.com", a valid key is "uddi:mycompany.com:foobar". If the key is generated by Petals Master, it will have the following form "uddi:${root.domain}:uuid" where uuid is an auto-generated unique identifier.
Caution if you specify your own keys, you're in charge of the unicity. |
The name element : the name of the identifier system. Will be used to represent the identifier system in UI.
The description element : a human readable description of this identifier system. You could specify the language used for this description. Language is specified with a two letters country code as specified in the iso3166 specification.
overviewDoc elements : in the identifier case, they have only one main purpose, a descriptive purpose. In this case, it will embed an overviewUrl element of useType "text", that point to a description URL. It will be used to provide a more detailed description of the identifier system.
The categoryBag element : used to classify the identifier system. The first keyedReference embeded element must be unchanged, it specifies that this tModel is a category tModel. The second one must be unchanged too because identifier tmodels only apply to Organizations.