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