본문 바로가기

Robotics/Software Tech.

SOAP(Simple Object Access Protocol)

SOAP란 무엇인가?

SOAP은 XML과 HTTP 통신을 기반으로 하여 네트워크 상에 존재하는 각종 컴포넌트간의 호출을 효율적으로 실현하기 위한 방법을 제시하는 규약이다. 쉽게 말하면 네트워크 상에서 Client와 Service Provider간에 메시지를 요청하고 이에 응답해주는 방법을 제공하는 이다..  이러한 방식들은 기존의 RPC(Remote Procedure Call)라 묶여서 불려오던 것들이다.. 따라서 SOAP은 RPC의 한가지 방법이라 수가 있다. 

SOAP은 여러 Application Layer Protocol 중에 HTTP를 사용함으로써 여러 시스템간의 통신과 통합을 위한 좀더 단순하면서도 가벼운 메카니즘을 제공한다,,

이외에... HTTP를 사용하게 중요한 이유는 바로 방화벽에 제한을 받지 않는 범용성 때문이라 말할 있다.

 다른 Application Layer Protocol의 경우 그들만의 약정된 TCP 또는 UDP 포트를 사용하기 때문에 인터넷상에 설치되어있는 방화벽에 많은 제약을 받게 된다.. 하지만 SOAP은 HTTP를 채택함으로써 방화벽의 제약을 받지 않고 불특정 다수의 클라이언트 또는 인터넷 상의 특정한 서버와의 RPC를 효율적으로 수행할 있도록 해준다.   

 그렇다면 보안의 문제는 아예 생각지 않는 것인가? 이렇게 생각하는 사람도 있을지 모르겠다.. SOAP은 SOAP만이 가지는 특정한 HTTP Header를 방화벽의 필터링 부분에 보냄으로써 메시지의 통과여부를 가릴 있게 하는 방법으로 보안이라는 문제를 해결한다. 

 SOAP은 현재 1.1버전이 널리 사용되고 있으며, w3c와 Microsoft등과 같은 쟁쟁한 몇몇 단체들이 모여 표준화 작업이 한창이다,, 현재는 1.2 버전까지 나온 상태이다..

자세한 내용은 www.w3c.org나 www.microsoft.com을 참조하기 바란다..

  

 

SOAP은 크게 다음의 4가지로 구성되어있다..

 ° SOAP envelope
Message에 무엇이 있는가, 누가 무엇을 다루는가, 어떤 것이 Optional이고 mandatory인가를 나타내기 위한 전체적인 framework를 제공한다..

 ° SOAP encoding rules
Application에 정의된 data type들의 instance를 교환하는데 사용되는 메카니즘이다.

 

° SOAP RPC 표현
Remote procedure call과 response들을 나타내는데 사용되는 규약을 정의한다.

 

° SOAP binding
peer 간의 전송프로토콜을 사용하여 SOAP envelope 교환에 대한 규약을 정의한다.

 

위의 4가지 중에 envelope와 encoding rule은 서로 다른 namespace에 정의되어있는 XML 이며, link를 걸어놓음으로써 정의된 내용들을 사용할 있다. 

 SOAP은 Message Based Protocol이기 때문에 시스템간의 통합 쌍방 간의 Message Format만을 약속하면 되므로 통합시간 효율을 높일 있으며, 매우 간단하다.

 

'Robotics > Software Tech.' 카테고리의 다른 글

MFC 샘플 소스코드  (0) 2007.09.20
메세지 펌프(Message Pump)  (0) 2007.09.08
SOAP에 대해서.  (0) 2007.09.06
CString to Hex Decimal  (1) 2007.09.06
[MFC Tip] 화면보호기 실행 방법  (0) 2007.08.30