UDDI-데이터 모델
UDDI에는 다음 데이터 구조를 설명하는 XML 스키마가 포함되어 있습니다.
- 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>
businessKey 및 serviceKey 속성 에서 UUID (Universally Unique Identifier) 사용에 유의하십시오 . 모든 비즈니스 항목 및 비즈니스 서비스는 정보를 처음 입력 할 때 레지스트리에서 할당 한 UUID를 통해 모든 UDDI 레지스트리에서 고유하게 식별됩니다.
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 포트 유형을 정의하는 경우 UDDI 내에서 해당 포트 유형을 나타내는 tModel을 정의 할 수 있습니다. 그런 다음 tModel을 해당 비즈니스 서비스의 바인딩 템플릿 중 하나와 연결하여 지정된 비즈니스 서비스가 해당 포트 유형을 구현하도록 지정할 수 있습니다.
다음은 Hello World 인터페이스 포트 유형을 나타내는 tModel의 예입니다.
<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 데이터 구조
이는 자회사 또는 부서와 같은 특정 관계 유형에 따라 둘 이상의 businessEntity 구조를 연결하는 관계 구조입니다.
publisherAssertion 구조는 fromKey (첫 번째 businessKey), toKey (두 번째 businessKey) 및 keyedReference의 세 가지 요소로 구성됩니다.
keyedReference는 tModelKey에 의해 고유하게 참조되는 tModel 내의 keyName keyValue 쌍의 관점에서 주장 된 관계 유형을 지정합니다.
<element name = "publisherAssertion" type = "uddi:publisherAssertion" />
<complexType name = "publisherAssertion">
<sequence>
<element ref = "uddi:fromKey" />
<element ref = "uddi:toKey" />
<element ref = "uddi:keyedReference" />
</sequence>
</complexType>