UDDI - แบบจำลองข้อมูล
UDDI มี XML Schema ที่อธิบายโครงสร้างข้อมูลต่อไปนี้ -
- businessEntity
- businessService
- bindingTemplate
- tModel
- publisherAssertion
โครงสร้างข้อมูล businessEntity
โครงสร้างนิติบุคคลแสดงถึงผู้ให้บริการเว็บ ภายในรีจิสทรี UDDI โครงสร้างนี้ประกอบด้วยข้อมูลเกี่ยวกับ บริษัท เองรวมถึงข้อมูลการติดต่อหมวดหมู่อุตสาหกรรมตัวระบุธุรกิจและรายการบริการที่มีให้
นี่คือตัวอย่างรายการลงทะเบียน UDDI ของธุรกิจสมมติ -
<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
โครงสร้างบริการทางธุรกิจแสดงถึงบริการเว็บแต่ละรายการที่จัดทำโดยองค์กรธุรกิจ คำอธิบายรวมถึงข้อมูลเกี่ยวกับวิธีการผูกกับบริการเว็บประเภทของบริการบนเว็บและหมวดหมู่การจัดหมวดหมู่ที่เกี่ยวข้อง
นี่คือตัวอย่างโครงสร้างบริการทางธุรกิจสำหรับบริการเว็บ 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>
สังเกตการใช้ Universally Unique Identifiers (UUIDs) ในแอตทริบิวต์businessKeyและserviceKey ทุกหน่วยงานธุรกิจและบริการทางธุรกิจจะถูกระบุโดยไม่ซ้ำกันในการลงทะเบียน UDDI ทั้งหมดผ่าน UUID ที่กำหนดโดยรีจิสทรีเมื่อป้อนข้อมูลครั้งแรก
BindingTemplate โครงสร้างข้อมูล
เทมเพลตการผูกเป็นคำอธิบายทางเทคนิคของบริการบนเว็บที่แสดงโดยโครงสร้างบริการทางธุรกิจ บริการทางธุรกิจเดียวอาจมีเทมเพลตการผูกหลายแบบ เทมเพลตการผูกแสดงถึงการนำบริการเว็บไปใช้จริง
นี่คือตัวอย่างของเทมเพลตการผูกสำหรับ 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>
เนื่องจากบริการทางธุรกิจอาจมีเทมเพลตการผูกหลายแบบบริการอาจระบุการใช้งานบริการเดียวกันที่แตกต่างกันโดยแต่ละแบบจะผูกกับชุดโปรโตคอลที่แตกต่างกันหรือที่อยู่เครือข่ายอื่น
โครงสร้างข้อมูล tModel
tModel เป็นประเภทข้อมูลหลักสุดท้าย แต่อาจเข้าใจยากที่สุด tModel ย่อมาจากรูปแบบทางเทคนิค
tModel เป็นวิธีการอธิบายโครงสร้างธุรกิจบริการและเทมเพลตต่างๆที่จัดเก็บไว้ในรีจิสทรีของ UDDI แนวคิดนามธรรมใด ๆ สามารถลงทะเบียนภายใน UDDI เป็น tModel ตัวอย่างเช่นหากคุณกำหนดประเภทพอร์ต WSDL ใหม่คุณสามารถกำหนด tModel ที่แสดงถึงประเภทพอร์ตนั้นภายใน UDDI จากนั้นคุณสามารถระบุว่าบริการทางธุรกิจที่ระบุจะใช้ประเภทพอร์ตนั้นโดยการเชื่อมโยง tModel กับเทมเพลตการผูกของบริการธุรกิจนั้น
นี่คือตัวอย่างของ tModel ที่แสดงประเภทพอร์ตของ 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
นี่คือโครงสร้างความสัมพันธ์ที่นำไปเชื่อมโยงกับโครงสร้าง BusinessEntity ตั้งแต่สองโครงสร้างขึ้นไปตามประเภทความสัมพันธ์ที่เฉพาะเจาะจงเช่น บริษัท ย่อยหรือแผนก
โครงสร้าง publisherAssertion ประกอบด้วย 3 องค์ประกอบ: fromKey (คีย์ธุรกิจแรก), toKey (businessKey ที่สอง) และ keyedReference
keyedReference กำหนดชนิดความสัมพันธ์ที่ยืนยันในรูปแบบของคู่ keyName keyValue ภายใน tModel ซึ่งอ้างอิงโดยไม่ซ้ำกันโดย 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>