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>

businessKeyserviceKey 속성 에서 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>