UDDI - Mô hình dữ liệu
UDDI bao gồm một Lược đồ XML mô tả các cấu trúc dữ liệu sau:
- businessEntity
- businessService
- bindingTemplate
- tModel
- publisherAssertion
Cấu trúc dữ liệu businessEntity
Cấu trúc thực thể kinh doanh đại diện cho nhà cung cấp dịch vụ web. Trong sổ đăng ký UDDI, cấu trúc này chứa thông tin về chính công ty, bao gồm thông tin liên hệ, danh mục ngành, số nhận dạng doanh nghiệp và danh sách các dịch vụ được cung cấp.
Đây là một ví dụ về mục đăng ký UDDI của một doanh nghiệp hư cấu -
<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>
businessService Data Structure
Cấu trúc dịch vụ kinh doanh đại diện cho một dịch vụ web riêng lẻ do tổ chức kinh doanh cung cấp. Mô tả của nó bao gồm thông tin về cách liên kết với dịch vụ web, loại dịch vụ web đó là gì và nó thuộc về các danh mục phân loại nào.
Đây là ví dụ về cấu trúc dịch vụ kinh doanh cho dịch vụ 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>
Lưu ý việc sử dụng Số nhận dạng duy nhất phổ biến (UUID) trong các thuộc tính businessKey và serviceKey . Mọi thực thể kinh doanh và dịch vụ kinh doanh được xác định duy nhất trong tất cả các đăng ký UDDI thông qua UUID được chỉ định bởi cơ quan đăng ký khi thông tin được nhập lần đầu tiên.
bindTemplate Data Structure
Các mẫu ràng buộc là các mô tả kỹ thuật của các dịch vụ web được đại diện bởi cấu trúc dịch vụ kinh doanh. Một dịch vụ kinh doanh duy nhất có thể có nhiều mẫu ràng buộc. Mẫu liên kết đại diện cho việc triển khai thực tế của dịch vụ web.
Đây là một ví dụ về mẫu ràng buộc cho 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>
Vì một dịch vụ kinh doanh có thể có nhiều mẫu ràng buộc, nên dịch vụ có thể chỉ định các cách triển khai khác nhau của cùng một dịch vụ, mỗi mẫu liên kết với một bộ giao thức khác nhau hoặc một địa chỉ mạng khác nhau.
Cấu trúc dữ liệu tModel
tModel là kiểu dữ liệu cốt lõi cuối cùng, nhưng có khả năng khó nắm bắt nhất. tModel là viết tắt của mô hình kỹ thuật.
tModel là một cách mô tả các cấu trúc kinh doanh, dịch vụ và mẫu khác nhau được lưu trữ trong sổ đăng ký UDDI. Bất kỳ khái niệm trừu tượng nào cũng có thể được đăng ký trong UDDI dưới dạng tModel. Ví dụ: nếu bạn xác định một loại cổng WSDL mới, bạn có thể xác định một tModel đại diện cho loại cổng đó trong UDDI. Sau đó, bạn có thể chỉ định rằng một dịch vụ kinh doanh nhất định sẽ triển khai loại cổng đó bằng cách liên kết tModel với một trong các mẫu ràng buộc của dịch vụ kinh doanh đó.
Đây là một ví dụ về tModel đại diện cho loại cổng Giao diện Hello World.
<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 Cấu trúc dữ liệu
Đây là một cấu trúc mối quan hệ đưa vào sự kết hợp hai hoặc nhiều cấu trúc businessEntity theo một loại mối quan hệ cụ thể, chẳng hạn như công ty con hoặc bộ phận.
Cấu trúc publisherAssertion bao gồm ba phần tử: fromKey (businessKey đầu tiên), toKey (businessKey thứ hai) và keyedReference.
KeyedReference chỉ định kiểu quan hệ được xác nhận theo cặp keyName keyValue trong tModel, được tham chiếu duy nhất bởi 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>