여러분은 서비스 제공자, 중계자, 요청자 사이 관계를 설명하는 삼각형 그림을 본 적이 있을 것이다. 서비스 제공자, 서비스 요청자,서비스 레지스터리로 구성되는 웹서비스의 아키텍처를 흔히 SOA(Service Oriented Architecture)라 부른다. ![]() 또 SOA에서는“Publish, find, bind”등의 세 가지 오퍼레이션을 정의하고 있다. “Publish, find, bind”의 단어들로부터 이들 세 가지 오퍼레이션의 개념이 무엇인지 어느 정도 파악이 가능하기 때문에 이들에 대한 긴 설명은 생략하도록 하겠다. 웹서비스를 구성하는 가장 기본적인 구성요소들은 다음과 같다.
서비스 요청자는 웹서비스의 사용자이고 그 실체는 비즈니스 고객의 서버에서 실행되고 있는 프로그램인 경우가 보통이다. 서비스 요청자 프로그램은 서비스 중개자에 저장된 WSDL 파일을 우선적 참조하여 사용코자하는 서비스에 대한 상세한 정보를 얻는다. 그 다음에는 서비스 제공자에게 서비스를 요청하는 SOAP 메시지를 생성한다. 이 SOAP 메시지는 보통 HTTP를 전송 프로토콜로 사용한다. HTTP를 사용하게 되면 상대방 기업의 방화벽을 별도의 customization 없이 통과할 수 있다는 이점이 있다. 그러나 반드시 HTTP 만을 전송 프로토콜로 사용해야 하는 것은 아니다. HTTP가 제공하는 것보 다 더 신뢰성 있는 메시징을 필요로 한다면 IBM WebSphere MQ와 같은 메시징 큐 시스템을 사용할 수 있다. 특히 WebSphere MQ 는 HTTP 프로토콜 상에서도 작동하기 때문에 방화벽을 통과하는 데 문제가 없고 동시에 MQ 메시징이 가져다 주는 모든 이점도 함 께 취할 수 있다. 웹서비스를 사용할 때 얻는 가장 큰 이점은 위에서도 언급했듯이 서로 다른 프로그래밍 언어와 다른 플랫폼이 서로 표준화된
방식의 통신을 한다는 점이다. 또 다른 웹서비스의 이점은 표준 웹 프로토콜을 사용하고 있다는 점이다. 이미 많은 기업들이
XML, HTTP와 TCP/IP를 쓰고 있으며 이들에 관한 많은 경험과 지식을 축적해 가고 있다. |
비즈니스 측면에서의 웹서비스 |
CEO의 관점에서 볼 때 웹서비스가 제공하는 최대 장점은 통합(Integration)을 위한 경제적인 솔루션을 제공한다는 것이다. 웹서비스 는 조직간에 어플리케이션 기능의 통합, 또는 비즈니스 파트너간의 통합을 위한 솔루션으로써 이용될 수 있다. 과거의 통합을 위한 접근 방식은 통합의 대상이 되는 시스템들을 일일이 요건 분석하여 정보의 source와 target을 point-to-point 방식으로 묶는 식이었 다. 통합의 대상이 바뀌게 되면 기존의 솔루션을 그대로 적용할 수 없는 경우가 대부분이었다. |
기술적 측면에서의 웹서비스 |
기술적으로 보자면 웹서비스는 단지 네트워크로 접근가능하고 서비스 상세에 의해 설명되는 오퍼레이션들을 통합하는 것이다. 이 런 의미에서는 웹서비스는 전혀 새로운 것이 아니다. 단지 다르다면 웹서비스는 W3C에서 관리하는 공개 표준이라는 점이다. |
웹서비스의 용도 |
웹서비스의 쓰임새에 대해서는 여러 가지 다른 의견이 있지만 대체로 두 가지로 쓰일 것이라고 보고 있다. 첫 번째는 EAI(Enterprise Application Integration)와 인터넷을 통한 B2B 파트너의 통합이다. 위에서 살펴본 웹서비스의 기본 특징, 프로그래밍 언어와 플랫폼 독립적으로 보아 기업 내에 존재하는 서로 다른 플랫폼의 legacy 시스템을 웹서비스로 통합하는데 매력적이다. 많은 기업에서 내부 어플리케이션의 통합을 목적으로 웹서비스를 적용하려 하고 있다. B2B는 두개 이상의 회사의 비즈니스 시스템을 통합하는 것을 의 미한다. 이에 사람들은 웹서비스가 서로 다른 기업의 비즈니스 프로세스를 통합하는데 핵심 요소가 될 것이라고 생각한다. 1. SOA (Service-Oriented Architectures) ![]() ① 트랜스포트 단계 (Transport layer) Transport layer에서는 네트워크 프로토콜로서 HTTP, HTTPS, SMTP, FTP 등의 인터넷 프로토콜들을 사용할 수 있도록 정의 되어 있다. 아울러 RMI/IIOP나 MQSeries도 쓸 수 있다. ② XML기반 메시징 단계 (XML-based messaging layer) SOAP 은 XML을 사용한 메시지 프로토콜이다. 모든 SOAP 메시지는 웹서비스 구조의 publish, bind, find을 지원한다. SOAP 메시지는 메시지 컨텐트를 묘사하기 위한 envelope과 엔코딩 룰, 리모트 프리시져 호출을 제공하기 위한 메커니즘으로 구성 되어 있다. ③ 서비스 설명 단계 (Service description layer) 서비스 설명은 웹서비스를 호출하는 수단에 대한 상세 정보를 제공한다. WSDL(Web Service Desciption Language)이 이 layer에서 서비스 실행과 인터페이스를 정의하는데 쓰이는 기본 표준이다. ④ 서비스 공개 단계 (Service publication layer) UDDI registry에 웹서비스 정보를 publish하기 위해서는 WSDL을 보완한 다른 서비스 설명이 필요하다. 이 단계에서는 비즈니 스 컨텍스트를 설명하기 위해 UDDI 데이터 구조를 사용한다. 서비스 클라이언트 라이프 사이클의 어느 단계에서도 WSDL 다큐먼트를 사용하게 할 수 있다. 이 단계에서 서비스 제공자(service provider)는 WSDL 다큐먼트를 서비스 클라이언트에게 보낼 수 있다. 이런 방식을 직접 공 개 방식(direct publication)이라 한다. 또한 서비스 제공자는 WSDL 다큐먼트를 퍼블릭 레지스트리가 아닌 로컬 레지스터리에 공개할 수도 있다. ⑤ 서비스 디스커버리 단계 (Service discovery layer) 서 비스 디스커버리는 서비스 공개에 의존한다. 만약 웹서비스가 공개될 수 없거나 안 되었다면 그 웹서비스를 찾을 수 없다. 서비스 클라이언트는 직접 공개(direct publish) 방식을 통해 서비스 제공자로부터 WSDL 다큐먼트를 바로 다운받을 수 있다. 이러한 방식을 static discovery라 한다. 한편 서비스 클라이언트가 public 또는 private UDDI 레지스터리를 사용하여 WSDL 다 큐먼트를 바로 다운받을 수 있으며 이러한 방식을 dynamic discovery라 한다. ⑥ 서비스 플로우 단계 (Service flow layer) WSFL(Web Services Flow Language)는 웹서비스 스택의 최상위 layer인 service flow layer의 표준이다. IBM이 선도적으로 W3C에 제안하였으며 업계 표준으로 자리잡아 가고 있다. WSFL은 어떻게 웹서비스가 Workflow에서 상호 작용하는지를 설 명하는데 쓰이고 어떻게 service-to-service communication을 수행하는가를 설명한다. 예를 들면 WSFL은 구매자, 판매자, 중개자 간에 어떻게 연동하는가에 대한 설명이다. |
웹서비스를 구성하는 기본요소들 |
XML XML의 이점은 다음과 같다. SOAP 은 기본적으로 RPC Call을 위한 XML 마샬링 메커니즘이다. SOAP은 TCP/IP 소켓이나 JMS 메시지를 통해 RPC call로 인코 드 되어 사용할 수도 있다. SOAP은 전자적 커뮤니케이션의 기본 프로토콜로서 XML로 작성된 간단한 요청과 응답 메시지들을 위 한 모델이다. SOAP은 어떠한 전송 프로토콜과도 함께 사용될 수 있다: HTTP는 현재 가장 많이 사용된다. 하지만 SOAP은 TCP/IP 소켓이나 JMS 메시지를 통해 RPC call로 인코드 되어 사용할 수도 있다. 어떤 형태의 XML 정보를 교환하는데도 사용될 수 있다. W3C 기구의 XML 프로토콜 담당 그룹은 앞으로 W3C의 추천 사양이 될 SOAP 1.2라고 명명된 새로운 제원을 만들고 있는 중이다. - WSDL: Web Service Description Language WSDL 은 XML 용어의 하나로 프로그래밍 단계의 자동적 통합에 요구되는 모든 기술 세목들을 구성한다. WSDL은 어떻게 보면 방 법론 디스크립션 부분, 아규먼트 형태 및 결과 값에 있어서, 또는 WSDL이 서비스의 호출을 원하는 이용자에게 상세한 구현 절차 를 설명함으로써 IDL에 비교된다. WSDL은 밑단의 구현 절차를 개의치 않고 메시지 프로토콜의 요건적 정의의 설명에 주력한다. WSDL 1.1은 현재 추천의 고려 대상으로 W3C에 제출되어 있다. - UDDI: Universal Description, Discovery, and Integration UDDI 는 글로벌 전자적 옐로우 페이지의 역할을 수행한다. 다시 말하면 사용 가능한 웹서비스의 서비스 레지스터리를 정의하는 데 에 사용되는 요소이다. UDDI는 기업으로 하여금 자신이 서비스의 제공자임을 드러내어, 가용한 제품과 서비스 설명을 레지스터리 에 공개하도록 해준다. 요청자는 잠재된 비즈니스 파트너를 찾는 동시에 서비스 제공자와의 e-비즈니스 시작을 위한 간단한 통합 을 이룰 수 있다. UDDI의 현재 버전은 2.0으로 http://uddi.org에서 개발 중에 있으며, 세 번째 릴리즈가 나오게 되면 표준 기관에 제 출될 것이다. [출처] 웹 서비스의 요소 기술 Review|작성자 눈꽃천사 |