Web Services란 XML을 기반으로 하는 공개 표준들을 이용해서 인터넷 기반의 분산 컴퓨팅 환경에서 원격 메소드를 호출하여 사용할 수 있는 재사용 가능한 소프트웨어 컴포넌트를 일컫는다. Web Services를 이용하면 웹을 통한 원격 프로시저 호출(RPC : Remote Procedure Call)이 가능해 진다.
Web Services를 간단히 표현하면 웹으로 공개된 메소드라고 할 수 있다. 메소드가 웹으로 공개되어 있다고 했을 때, 그러한 웹 메소드가 서비스 제공자와 사용자 사이에서 효율적으로 사용되어지기 위해서는 다음과 같은 몇 가지 요구사항이 만족해야 한다.
우선 사용자들이 특정 웹 메소드를 사용하고자 할 때, 우선적으로 어떤 메소드가 어떤 서비스 제공자에 의해서 어디에서 서비스 되고 있는지 검색할 수 있어야 한다. 특정 서비스를 검색한 다음에는 해당 메소드가 어떤 역할을 수행하며, 어떤 형태의 입력 값과 어떠한 형태의 결과 값을 반환하게 되는가 등의 상세한 메소드에 대한 설명 즉, 서비스에 대한 정보를 필요로 하게 된다. 마지막으로 서비스를 검색하고 해당 서비스에 대한 정보를 알게 되었다면, 서비스 요청자가 어떠한 형태의 서비스 요청 메시지를 서비스 제공자에게 보내야 하고, 어떤 결과 메시지를 받아야 할지에 대한 일련의 프로토콜이 정해져야 한다.
이러한 요구 사항에 대해서 Web Services는 3가지 XML 기반의 표준을 가지고 있는데, 바로 SOAP(Simple Object Access Protocol), WSDL(Web Services Description Language), UDDI(Universal Description, Discovery and Integration)이다. SOAP은 Web Services 제공자와 Web Services 요청자 사이에서 주고받는 메시지의 형식을 정의한 메시지 교환 프로토콜이고, WSDL은 해당 Web Services에 대한 상세한 설명을 포함하고 있는 서비스 명세이다. 그리고 UDDI는 Web Services를 등록하고, 검색할 수 있는 일종의 Web Services 레지스트리에 대한 명세이다. 이러한 SOAP, WSDL, UDDI 등 Web Services와 관련된 표준들은 XML을 기반으로한 공개 표준들로, SOAP과 WSDL은 월드 와이드 웹에 관련된 표준을 관장하는 W3C에서 관리되고 있으며, UDDI는 ebXML로 잘 알려진 OASIS에서 관리되고 있는 표준 명세이다.
Web Services의 구조는 앞서 설명한 바와 같이 SOAP, WSDL, UDDL라고 하는 3가지 XML 기반의 공개 표준을 바탕으로 하고 있다. Fig 1. 은 이러한 Web Services의 3가지 관련 표준들이 어떻게 상호 관계하여 Web Services를 가능하게 하는 기반을 제공하는지를 표현하고 있다.
SOAP(Simple Object Access Protocol)
SOAP은 Simple Object Access Protocol의 약자로 분산 환경에서 HTTP 등의 통신 프로토콜을 이용하여 XML 기반의 RPC 호출 메커니즘을 제공하기 위한 2세대 XML 프로토콜로, 최초 마이크로소프트 사에서 자사의 DCOM 기술을 보완할 목적으로 설계되었다. SOAP은 서비스 제공자와 사용자 사이의 교환 내용을 최소화한 경량(Light Weight)프로토콜이며, 마이크로소프트 사에서 자사의 DCOM기술을 보완할 목적으로 최초 개발되었다. 하지만 마이크로소프트 사는 자사 기술 의존적인 부분을 제거하고 1.1 버전을 2000년 3월에 월드 와이드 웹 컨소시엄(이하 W3C)에 제출하며 공개하였다. 그 후 SOAP은 XML 프로토콜의 표준으로 자리 잡았고, 최근 1.2 버전이 W3C Recommendation 으로 승인되었다.
WSDL(Web Services Description Language)
SOAP이 등장하면서 웹상에 존재하는 메소드를 호출할 수 있는 방법이 제공되기 시작했지만, 해당 서비스가 어디에 존재하고, 어떤 SOAP 메시지를 만들어 보내야 할지, 그리고 어떤 결과 값을 반환하는지 등 서비스에 대한 자세한 명세를 제공할 필요성이 있었다. 이러한 Web Services에 대한 설명을 기술할 수 있도록 고안된 것이 WSDL(Web Services Description Language)이다. 한마디로 WSDL은 Web Services에 대한 인터페이스 명세서라고 볼 수 있다.
WSDL에 포함되어 있는 내용은 해당 서비스가 하는 일은 무엇인가에 대한 내용, 그리고 서비스에 대한 접근 방법과 구체적인 서비스의 위치 등이다. 서비스 요청자는 서비스 제공자가 공개한 해당 Web Services의 WSDL을 보고 적절한 SOAP 메시지를 작성할 수 있다.
WSDL은 마이크로소프트 사의 SDL(Service Description Language)와 SCL(SOAP Contract Language)과 IBM의 NASSL(Network Accessible Services Specification Language)을 결합하여 개발된 것으로 SOAP과 마찬가지로 W3C에 제출되어진 공개 표준이다. 현재 1.2 버전이 W3C Working Draft 단계에 있다.
UDDI(Universal Description, Discovery and Integration)
앞서 설명한 SOAP과 WSDL만을 사용하여도 충분히 Web Services가 구현되어 질 수 있다. 하지만 Web Services가 대중화되기 위해서는 서비스를 요청할 소비자가 특정 서비스를 원할 때, 누가 어떤 서비스를 제공하고 있는지에 대한 정보를 쉽게 얻을 수 있는 방법이 더 필요할 것이다. 특히 Web Services를 제공하는 업체의 관점에서 볼 때, Web Services를 등록하고 검색할 수 있는 레지스트리의 존재는 그 무엇보다 중요한 요소가 될 것이다.
Web Services의 확산을 목적으로 IBM, Ariba, 마이크로소프트를 중심으로 주요 산업계 리더들이 UDDI 프로젝트를 설립하고 Web Services를 위한 레지스트리의 표준인 UDDI 1.0 버전을 발표하였다. 그 후 많은 업체들이 추가되어 현재 300여개의 업체들이 UDDI 커뮤니티에 참여하고 있다. 하지만 이들은 2002년 6월 UDDI 버전 3.0을 발표하면서, 표준화에 대한 작업 일체를 ebXML로 잘알려진 OASIS에 일임하였고, 그리하여 이제 UDDI의 표준화는 OASIS에서 담당하고 있다.
UDDI는 크게 공용 UDDI와 사설 UDDI로 나누어진다. 공용 UDDI는 흔히 UBR(Universal Business Registry)라고 불리며, 누구나 접근해서 검색할 수 있다. 공용 UDDI는 UDDI 오퍼레이터 노드라고 불리우는 업체들에 의해서 운영되어 지고 있는데, 현재 UDDI 2.0 표준을 준수하는 공용 UDDI의 오퍼레이터 노드는 IBM, 마이크로소프트, SAP, NTT-Com이다. 이들은 각자 UDDI를 운영하고 있지만, 등록 데이터를 12시간 간격으로 서로 복제하여 공유하기 때문에, 논리적으로는 하나의 거대한 UBR로서 존재하게 된다. 반면, 사설 UDDI는 한 기업이나 단체에서 자체적으로 사용할 목적의 UDDI를 일컫는다.
UDDI는 Web Services에 대한 등록 정보를 UDDI 정보모델이라 일컬어지는 XML 데이터로 저장한다. 저장하는 데이터는 제공하는 서비스에 대한 정보, 그리고 정보를 제공하는 업체에 대한 정보, 해당 서비스와의 연결에 이용되는 정보, 그리고 서비스의 기술적인 정보들이 포함되며, 해당 서비스와 업체에 대한 표준 분류 코드를 지원하여 효율적으로 검색할 수 있게 하고 있다.
댓글을 달아 주세요