개요
SOAP의 정의
XML과 HTTP 등을 기반으로 하여 다른 컴퓨터에 있는 데이터나 서비스를 호출하기 위한 통신 규약
SOAP의 목적
분산 환경에서 정보 전달용 XML 메시지를 서로 교환하기 위해 설계되었으며, 서로 다른 플랫폼 간의 상호 운용성(Inter-operability)을 위해 각 플랫폼에 구현된 컴포넌트들을 통합하기 위한 표준 프로토콜로 사용
SOAP의 특징
하드웨어 플랫폼이나 프로그램 언어에 독립적인 특성을 가지며, 분산 환경에서 HTTP/XML 등 개방형 표준을 근간으로 하기 때문에 폭넓은 확장성을 가짐
- 기존 분산 컴퓨팅 기술과 비교되는 SOAP의 장.단점
장점 | 단점 |
- 프로토콜 구성 요소들이 복잡하지 않은 작고 가벼운 프로토콜
- XML 기반의 구조화된 구조를 지원하며, 필요에 따라 확장이 가능
- HTTP, SMTP 등 다양한 전송 프로토콜을 사용할 수 있음
- HTTP 접근을 통해 기존 인프라 환경에서 쉬운 통합을 제공(방화벽 통과가 용이)
| - 인증이나 암호와 같은 보안 메커니즘이 부족
- 데이터 패킷이 크며, XML 파싱에 따른 오버해드가 발생
|
SOAP 스펙
SOAP Version 1.1
- 2000년 5월 W3C의 노트(Note)로 발표
- SOAP 메시지의 표준화를 위한 기반 스펙
- JWSDP 1.6의 지원 스펙
SOAP Version 1.2
- 2003년 6월 W3C 권고안(Recommendation)으로 확정
3가지 스펙으로 구성
- Part 0 : Primer
- Part 1 : Messaging Framework
Part 2 : Adjuncts
SOAP 메시지 구조
SOAP은 송신과 수신 사이의 메시지 구조를 가지며, SOAP 메시지는 2개의 데이터 구조인 SOAP Header와 SOAP Body, 그리고 이를 둘러싼 SOAP Envelope로 구성되고, 이미지 등의 첨부 파일(Attachment)을 포함할 수 있음
SOAP Envelope
SOAP 메시지를 나타내는 XML 문서의 최상위 엘리먼트로 Header와 Body를 포함
SOAP Header
인증 트랜잭션과 같은 부가적인 기능이 추가
SOAP Body
메시지 송.수신에 대한 정보를 담고 있으며, 이 정보는 RPC 호출 및 응답 정보, 그리고 오류 정보 등을 포함
SOAP 메시지 전송