프로젝트

일반

사용자정보

Actions

SOAP API

  • HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하기 위한 통신규약 프로토콜 입니다.

1) SOAP 특징

  • HTTP를 이용하기 때문에 다른 RPC에 비해 Proxy와 방화벽에 제약을 받지 않고 쉽게 통신이 가능
  • 플랫폼과 프로그래밍 언어에 독립적
  • 멀티파트 MIME 구조
  • XML형식 메시지 처리

2) SOAP 단점

  • 복잡한 구조로 인해 오버헤드가 있다.
  • REST에 비해 상대적으로 무겁고 속도도 느리다.
  • 개발 난이도가 높아 개발 환경의 지원이 필요하다.

3) SOAP 메시지 구조

SOAP-ENV:Envelope
SOAP-ENV:Header
SOAP-ENV:Body
  • Envelope : 모든 SOAP 메시지의 루트 요소이며 두개의 하위 요소인 선택적 Header 요소 및 필수 Body 요소를 포함합니다.
  • Header : Envelope의 선택적 하위요소이며 메시지 경로를 따라 SOAP 노드로만 처리될 애플리케이션 관련 정보를 전달하는데 사용됩니다.
  • Body : Envelope의 필수 하위 요소이며 메시지의 최종 수신인을 대상으로 하는 정보를 포함합니다.
  • Fault : Body의 하위 요소이며 오류 보고에 사용됩니다.

4) SOAP의 전달과정

클라이언트(Client) 중게자(Intermediary) 중게자(Intermediary) 디폴트 액터(Default Actor)
  • 먼저 Client에서 특정한 작업을 요청하게 되면 중계자가 받게 됩니다.
  • 자신이 처리할 내용이 있는지 확인 후 다음 중계자에게 전달합니다.
  • 중계자를 통해 메시지의 이부를 변경하여 다음 중계자에게 포워딩 하다가 액터를 만나게 되면 해당 작업을 처리합니다.
  • 이 액터를 Default Actor라고 부르며 SOAP message의 최종 수신자라고 말할 수 있습니다.

5) SOAP 구현을 위한 라이브러리

  • gSOAP : C++로 작성되었으며, SOAP 1.1/1.2 명세를 충실히 따르는 안정적인 라이브러리로 클라이언트와 서버를 모두 지원한다.
  • cSOAP : 순수 C언어로 구현된 라이브러리로 클라이언트와 서버를 모두 지원하며 의존 라이브러리로 libxml, libssl, libpthread가 있다.
  • libSOAP : GNOME 환경을 위한 HTTP 클라이언트/서버 라이브러리이며 의존 라이브러리로 libglib, libgnutls, libpthread가 있으며, 비동기뿐만 아니라 동기 API도 가지고 있어 Thread 프로그래밍도 가능하다.

이태훈이(가) 3년 이상 전에 변경 · 1 revisions