UDDI - Modèle de données
UDDI inclut un schéma XML qui décrit les structures de données suivantes -
- businessEntity
- businessService
- bindingTemplate
- tModel
- publisherAssertion
Structure de données businessEntity
La structure de l'entité commerciale représente le fournisseur de services Web. Dans le registre UDDI, cette structure contient des informations sur l'entreprise elle-même, y compris des informations de contact, des catégories d'industries, des identifiants d'entreprise et une liste des services fournis.
Voici un exemple d'entrée de registre UDDI d'une entreprise fictive -
<businessEntity businessKey = "uuid:C0E6D5A8-C446-4f01-99DA-70E212685A40"
operator = "http://www.ibm.com" authorizedName = "John Doe">
<name>Acme Company</name>
<description>
We create cool Web services
</description>
<contacts>
<contact useType = "general info">
<description>General Information</description>
<personName>John Doe</personName>
<phone>(123) 123-1234</phone>
<email>[email protected]</email>
</contact>
</contacts>
<businessServices>
...
</businessServices>
<identifierBag>
<keyedReference tModelKey = "UUID:8609C81E-EE1F-4D5A-B202-3EB13AD01823"
name = "D-U-N-S" value = "123456789" />
</identifierBag>
<categoryBag>
<keyedReference tModelKey = "UUID:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2"
name = "NAICS" value = "111336" />
</categoryBag>
</businessEntity>
Structure des données businessService
La structure du service métier représente un service Web individuel fourni par l'entité commerciale. Sa description comprend des informations sur la manière de se lier au service Web, le type de service Web dont il s'agit et les catégories taxonomiques auxquelles il appartient.
Voici un exemple de structure de service métier pour le service Web Hello World.
<businessService serviceKey = "uuid:D6F1B765-BDB3-4837-828D-8284301E5A2A"
businessKey = "uuid:C0E6D5A8-C446-4f01-99DA-70E212685A40">
<name>Hello World Web Service</name>
<description>A friendly Web service</description>
<bindingTemplates>
...
</bindingTemplates>
<categoryBag />
</businessService>
Notez l'utilisation des identificateurs universellement uniques (UUID) dans les attributs businessKey et serviceKey . Chaque entité commerciale et service commercial est identifié de manière unique dans tous les registres UDDI via l'UUID attribué par le registre lors de la première saisie des informations.
Structure de données bindingTemplate
Les modèles de liaison sont les descriptions techniques des services Web représentés par la structure des services métier. Un service métier unique peut avoir plusieurs modèles de liaison. Le modèle de liaison représente l'implémentation réelle du service Web.
Voici un exemple de modèle de liaison pour Hello World.
<bindingTemplate serviceKey = "uuid:D6F1B765-BDB3-4837-828D-8284301E5A2A"
bindingKey = "uuid:C0E6D5A8-C446-4f01-99DA-70E212685A40">
<description>Hello World SOAP Binding</description>
<accessPoint URLType = "http">http://localhost:8080</accessPoint>
<tModelInstanceDetails>
<tModelInstanceInfo tModelKey = "uuid:EB1B645F-CF2F-491f-811A-4868705F5904">
<instanceDetails>
<overviewDoc>
<description>
references the description of the WSDL service definition
</description>
<overviewURL>
http://localhost/helloworld.wsdl
</overviewURL>
</overviewDoc>
</instanceDetails>
</tModelInstanceInfo>
</tModelInstanceDetails>
</bindingTemplate>
Comme un service d'entreprise peut avoir plusieurs modèles de liaison, le service peut spécifier différentes implémentations du même service, chacune liée à un ensemble différent de protocoles ou à une adresse réseau différente.
Structure des données du tModel
Le tModel est le dernier type de données de base, mais potentiellement le plus difficile à saisir. tModel est synonyme de modèle technique.
Le tModel est une manière de décrire les différentes structures d'entreprise, de service et de modèle stockées dans le registre UDDI. Tout concept abstrait peut être enregistré dans l'UDDI en tant que tModel. Par exemple, si vous définissez un nouveau type de port WSDL, vous pouvez définir un tModel qui représente ce type de port dans l'UDDI. Ensuite, vous pouvez spécifier qu'un service métier donné implémente ce type de port en associant le tModel à l'un des modèles de liaison de ce service métier.
Voici un exemple de tModel représentant le type de port Hello World Interface.
<tModel tModelKey = "uuid:xyz987..." operator = "http://www.ibm.com"
authorizedName = "John Doe">
<name>HelloWorldInterface Port Type</name>
<description>
An interface for a friendly Web service
</description>
<overviewDoc>
<overviewURL>
http://localhost/helloworld.wsdl
</overviewURL>
</overviewDoc>
</tModel>
publisherAssertion Data Structure
Il s'agit d'une structure de relation mettant en association deux ou plusieurs structures d'entité commerciale selon un type de relation spécifique, comme une filiale ou un service.
La structure publisherAssertion se compose des trois éléments: fromKey (le premier businessKey), toKey (le deuxième businessKey) et keyedReference.
Le keyedReference désigne le type de relation affirmé en termes d'une paire keyName keyValue dans un tModel, référencé de manière unique par un tModelKey.
<element name = "publisherAssertion" type = "uddi:publisherAssertion" />
<complexType name = "publisherAssertion">
<sequence>
<element ref = "uddi:fromKey" />
<element ref = "uddi:toKey" />
<element ref = "uddi:keyedReference" />
</sequence>
</complexType>