SOAP(Simple Object Access Protocols)
KNUG(Korea .NET User Group) 자료
제2절 SOAP(Simple Object Access Protocols)
과거의 분산컴퓨팅 환경의 프로토콜 기술
- DCOM(Distributed Component Object Model)
- CORBA(Common Object Request Broker Architecture)
- IIOP(Internet Inter-ORB Protocol)
- RMI(Remote Methods Invocations)
분산 환경
- 인터넷에 연결될 수 있는 모든 기기들이 상호 운용될 수 있는 환경
- 어떠한 하드웨어나 플랫폼에 독립적으로 공개된 환경
- 어떠한 프로그래밍 언어나 플랫폼, 하드웨어의 중심적인 사고를 벗어나 서비스가 중심이 되는 시대
2.2.1 SOAP 프로토콜의 필요성
- SOAP은 인터넷에서 양 끝단간 데이터나 혹은 XML 메시지를 교환할 수 있는 프로토콜
- XML이 없는 특정한 지점간의 연결
* 문제점 : 상호운용성(Interoperability), 보안 문제, 성능(Performance), 확장성(Scalability)
- XML 기반 접근 방법
* 각 장치간에 전송되는 메시지와 변환 작업을 전송계층(transport layer)과 별도로 어플리케이션 계층의 프로토콜 (application-level protocol)에서 처리한다면 보다 더 편리
2.2.2 SOAP의 메시지 전달 모델
- SOAP은 각 접점의 종단점(endpoints)에 의해서 메시지가 처리
- 종단점은 중개자(intermediary)의 역할을 수행
2.2.3 SOAP 프로토콜의 구조
- SOAP의 디자인 목적은 단순함(Simplicity)과 확장성(Extensibility)
- SOAP의 가장 중요한 개념은 메시지를 전달할 때, XML을 사용한다는 점
- SOAP Envelope
* 선택적인(optional) SOAP Header와 반드시 포함되는 SOAP BODY로 구성
- SOAP Header
* 만약 포함된다면 반드시 SOAP Envelope의 자식요소(child element)로 선언
- SOAP Body
* 절차지향 메시지와 문서지향 메시지
- SOAP Fault
* SOAP 메시지에서 클라이언트에게 에러 메시지를 전송하는 영역
* 예외 처리 부분
2.2.4 SOAP 프로토콜의 아름다움 - 확장 가능한 프로토콜
- SOAP 1.1 버전의 경우 전송 프로토콜로 SMTP나 FTP와 같은 프로토콜을 사용할 수 있는 가능성
- SOAP 메시지가 특정한 전송 프로토콜에 의하여 전달될 수 있는 것을 프로토콜 바인딩(Protocol Binding)
2.2.5 SOAP 프로토콜의 장점과 미래
- SOAP 프로토콜의 장점
* SOAP은 프로그래밍 언어에 상관없이 작성
* 기존 프로토콜을 재사용할 수 있으며 내부 메커니즘을 개발자들이 알 필요가 없다
* 배치가 손쉽다
* 기존의 산업 표준들을 재활용한다
* 개발자들은 XML을 숙지할 필요가 없다
* 어느 환경에도 상관없이 동작할 수 있는 상호운영성을 제공
- SOAP 프로토콜의 미래
* 보안
* 성능
* 바이너리 데이터(Binary Data) : 구조화된 이미지 파일(JPEG, GIF 등) → MIME or DIME or MTOM
* 경로 : SOAP 스팩은 경로에 관한 메커니즘이 존재하지 않는다
+ WS-Routing 사용
2.2.6 요약
- 웹 서비스에서 메시지의 전달에만 중점
- SOAP Header에 다양한 부가적인 정보들을 삽입할 수 있는 SOAP 확장 메커니즘(extensibility mechanism)을 제공