UDDI(Universal Description, Discovery, and Integration) 스펙은 웹 서비스에 대한 정보를 공개하고 발견하는 방법을 정의합니다. UDDI에는 두 가지 기능이 있습니다. 즉, (1) UDDI 클라이언트와 레지스트리의 통신 방법을 정의하는 SOAP 기반 프로토콜 (2) 글로벌 복제된 특정 레지스트리 세트입니다.
서비스 등록은 4가지 코어 데이터 구조 유형과 관련됩니다.
UDDI 데이터 유형에 대한 자세한 정보는 이 주제의 끝 부분에 있는 관련 참조 주제를 참조하십시오.
WSDL(Web Services Description Language)은 웹 서비스를 설명하는 XML 기반 표준 스펙입니다. WSDL은 네트워크 서비스를 문서 지향 또는 프로시저 지향 정보를 포함하는 메시지에서 기능을 수행하는 한 세트의 엔드포인트로 설명하는 XML 형식을 정의합니다.
WSDL 서비스 설명은 다양한 방법으로 구조화할 수 있습니다. 그러나 UDDI 레지스트리에서 WSDL 서비스 설명을 공개 및 검색하는 조작을 지원하기 위해 WSDL 문서는 다음 2개의 기본 파트로 구성됩니다.
Apache Axis 런타임 환경을 사용하여 웹 서비스를 작성할 경우 웹 서비스 도구는 Java™ Bean 또는 EJB에서 웹 서비스를 생성할 때 단일 WSDL 문서를 작성합니다. 이 WSDL 문서는 서비스 인터페이스 및 구현 문서를 모두 포함합니다.
서비스 인터페이스는 유형, 가져오기, 메시지, portType 및 바인딩 요소가 포함된 WSDL 문서로 설명됩니다. 서비스 인터페이스는 하나 이상의 서비스를 구현하는 데 사용할 WSDL 서비스 정의를 포함합니다. 이 정의는 웹 서비스의 추상 정의이며 특정 유형의 서비스를 설명하는 데 사용됩니다. 이 문서는 가져오기 요소를 사용하여 다른 서비스 인터페이스 문서를 참조할 수 있습니다. 이 제품의 웹 서비스 도구는 portType의 바인딩만 포함하는 바인딩 문서에서 참조된 message 및 portType 요소만 포함하는 서비스 인터페이스 문서를 생성합니다.
서비스 구현 문서는 서비스 요소를 포함합니다. 서비스 구현 문서는 서비스 인터페이스를 구현하는 서비스 설명을 포함합니다. 최소 하나의 가져오기 요소가 WSDL 서비스 인터페이스 문서에 대한 참조를 포함하지만 Axis 런타임 환경을 사용하여 작성된 단일체 WSDL에는 가져오기가 포함되지 않습니다. 서비스 구현 문서는 여러 서비스 인터페이스 문서에 대한 참조를 포함할 수 있습니다.
서비스 제공자는 웹 서비스를 호스트하고 SOAP/HTTP 및 SOAP/JMS와 같은 프로토콜을 사용하여 액세스할 수 있게 합니다. 웹 서비스는 제공자의 서버나 특수 저장소에 저장된 WSDL 문서로 설명됩니다. WSDL 문서는 UDDI 비즈니스 서비스(서비스 문서) 및 tModel(바인딩 문서)에 의해 참조됩니다. 서비스 요청자는 이러한 포인터로 웹 서비스를 발견할 수 있습니다.
그림 1. UDDI와 WSDL의 관계.
그림 1은 UDDI와 WSDL의 관계를 보여줍니다. WSDL 서비스 요소는 WSDL 바인딩 요소를 참조합니다. WSDL 바인딩 요소가 포함된 문서의 URL은 UDDI 비즈니스 레지스트리에 tModel로 공개됩니다. WSDL 서비스 요소가 포함된 문서의 URL은 UDDI 비즈니스 레지스트리에 businessService로 공개되고 bindingTemplate에 대한 정보를 포함합니다. UDDI 레지스트리 데이터 구조에 대한 자세한 정보는 이 문서의 끝 부분에 있는 관련 참조 섹션을 참조하십시오. 다이어그램의 가져오기 부분은 런타임 환경에 따라 선택적입니다. Axis 런타임 환경을 사용하여 작성된 단일체 WSDL에는 가져오기가 포함되지 않습니다.
서비스 구현은 서비스의 인스턴스를 설명합니다. 인스턴스는 WSDL 서비스 요소를 사용하여 정의합니다. 서비스 구현 문서의 서비스 요소는 UDDI businessService를 공개하는 데 사용됩니다. WSDL 서비스 설명을 공개할 경우 서비스 인터페이스를 tModel로 공개한 후 서비스 구현을 businessService로 공개해야 합니다.
서비스 구현은 UDDI 레지스트리에서 하나 이상의 bindingTemplate 요소가 포함된 businessService의 파트로 공개됩니다. businessService는 서비스 제공자가 공개합니다. 서비스 구현 문서에 정의된 서비스 요소에 대해 새 businessService가 작성됩니다. 새 bindingTemplate 요소는 businessService 내에서 서비스 요소 내에 정의된 각 포트 요소에 대해 작성됩니다.
WSDL 및 UDDI 간의 관계에 대한 자세한 정보는 uddi.org/bestpractices.html을 참조하십시오.