프로젝트

일반

사용자정보

SOAP API » 이력 » 버전 1

이태훈, 2022/08/02 07:36

1 1 이태훈
h1. SOAP API
2
3
 * HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하기 위한 통신규약 프로토콜 입니다.
4
5
h2. 1) SOAP 특징
6
7
 * HTTP를 이용하기 때문에 다른 RPC에 비해 Proxy와 방화벽에 제약을 받지 않고 쉽게 통신이 가능
8
 * 플랫폼과 프로그래밍 언어에 독립적
9
 * 멀티파트 MIME 구조
10
 * XML형식 메시지 처리
11
12
h2. 2) SOAP 단점
13
14
 * 복잡한 구조로 인해 오버헤드가 있다.
15
 * REST에 비해 상대적으로 무겁고 속도도 느리다.
16
 * 개발 난이도가 높아 개발 환경의 지원이 필요하다.
17
18
h2. 3) SOAP 메시지 구조
19
20
|_. SOAP-ENV:Envelope|
21
|=. SOAP-ENV:Header|
22
|=. SOAP-ENV:Body|
23
24
 * Envelope : 모든 SOAP 메시지의 루트 요소이며 두개의 하위 요소인 선택적 Header 요소 및 필수 Body 요소를 포함합니다.
25
 * Header : Envelope의 선택적 하위요소이며 메시지 경로를 따라 SOAP 노드로만 처리될 애플리케이션 관련 정보를 전달하는데 사용됩니다.
26
 * Body : Envelope의 필수 하위 요소이며 메시지의 최종 수신인을 대상으로 하는 정보를 포함합니다.
27
 * Fault : Body의 하위 요소이며 오류 보고에 사용됩니다.
28
29
h2. 4) SOAP의 전달과정
30
31
|_. 클라이언트(Client)|→|_. 중게자(Intermediary)|→|_. 중게자(Intermediary)|→|_. 디폴트 액터(Default Actor)|
32
33
 * 먼저 Client에서 특정한 작업을 요청하게 되면 중계자가 받게 됩니다.
34
 * 자신이 처리할 내용이 있는지 확인 후 다음 중계자에게 전달합니다.
35
 * 중계자를 통해 메시지의 이부를 변경하여 다음 중계자에게 포워딩 하다가 액터를 만나게 되면 해당 작업을 처리합니다.
36
 * 이 액터를 Default Actor라고 부르며 SOAP message의 최종 수신자라고 말할 수 있습니다.
37
38
h2. 5) SOAP 구현을 위한 라이브러리
39
40
 * gSOAP : C++로 작성되었으며, SOAP 1.1/1.2 명세를 충실히 따르는 안정적인 라이브러리로 클라이언트와 서버를 모두 지원한다.
41
 * cSOAP : 순수 C언어로 구현된 라이브러리로 클라이언트와 서버를 모두 지원하며 의존 라이브러리로 libxml, libssl, libpthread가 있다.
42
 * libSOAP : GNOME 환경을 위한 HTTP 클라이언트/서버 라이브러리이며 의존 라이브러리로 libglib, libgnutls, libpthread가 있으며, 비동기뿐만 아니라 동기 API도 가지고 있어 Thread 프로그래밍도 가능하다.