SOAP(Simple Object Access Protocol) & WSDL(Web Services Description Language)

DVR관련/Onvif 2010. 8. 17. 16:46
SOAP(Simple Object Access Protocol)
 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라고 명명된 새로운 제원을 만들고 있는 중이다.

위키백과 설명
SOAP(Simple Object Access Protocol)은 일반적으로 널리 알려진 HTTP,HTTPS,SMTP등을 사용하여 XML기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 형태의 프로토콜이다. SOAP은 웹 서비스(Web Service)에서 기본적인 메시지를 전달하는 기반이 된다. SOAP에는 몇가지 형태의 메시지 패턴이 있지만, 보통의 경우 원격 프로시져 호출(Remote Procedure Call:RPC) 패턴으로, 네트워크 노드(클라이언트)에서 다른 쪽 노드(서버)쪽으로 메시지를 요청 하고, 서버는 메시지를 즉시 응답하게 된다. SOAP는 XML-RPC와 WDDX에서 envelope/header/body로 이루어진 구조와 전송(transport)와 상호 중립성(interaction neutrality)의 개념을 가져왔다.


WSDL(Web Services Description Language)
 WSDL은 XML 용어의 하나로 프로그래밍 단계의 자동적 통합에 요구되는 모든 기술 세목들을 구성한다. WSDL은 어떻게 보면 방 법론 디스크립션 부분, 아규먼트 형태 및 결과 값에 있어서, 또는 WSDL이 서비스의 호출을 원하는 이용자에게 상세한 구현 절차 를 설명함으로써 IDL에 비교된다. WSDL은 밑단의 구현 절차를 개의치 않고 메시지 프로토콜의 요건적 정의의 설명에 주력한다. WSDL 1.1은 현재 추천의 고려 대상으로 W3C에 제출되어 있다.

WSDL(Web Services Description Language의 약자)은 웹 서비스 기술언어 또는 기술된 정의 파일의 총칭으로 XML로 기술된다. 웹 서비스의 구체적 내용이 기술되어 있어 서비스 제공 장소, 서비스 메시지 포맷, 프로토콜 등이 기술된다.
W3C WSDL Specification


웹 서비스 프로토콜 스택

웹서비스 스택
① 트랜스포트 단계 (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은 구매자, 판매자, 중개자 간에 어떻게 연동하는가에 대한 설명이다.


: