컴퓨터III-인터넷 발표 일시 : 2009. 04. 29.(수) 발표자 : 김광호 soap KONYANG Electronic Information Engineering
Contents SOAP ( Simple Object Access Protocol ) SOAP Message의 기본 구조 SOAP Message Processing KONYANG Electronic Information Engineering
SOAP ( Simple Object Access Protocol ) SOAP은 인터넷 상에서 XML 데이터를 교환하 는데 사용되는 메세징 프레임 웍을 정의하는 데 사용된다. 메세징 프레임 웍은 단순, 개발하기 쉽고, 플 랫폼에서 독립적, 분산 컴퓨팅 환경에 적합해 야만 한다. SOAP은 이와 같은 메세징 프레임 웍의 조건 을 충족시킴과 동시에 최소한의 가장 기본적 인 전송에 사용될 수 있게 만들어진 프로토콜 이다. KONYANG Electronic Information Engineering
SOAP 은 왜 새롭게 사용 되어야 하는가? IIOP, ORPC, JRMP 들이 binary protocol인 반 면 SOAP은 XML을 사용하는 text-baseprotocol 이다.(debug 하기 쉽다) Vendor에 상관없이 적용될 수 있는 기술 (XML, HTTP, SMTP 등) 에 기반을 두고 있다. 다른 protocol들에 비해 아주 이해하기 쉬운 간단한 구조를 가지고 있다. KONYANG Electronic Information Engineering
SOAP Message의 기본구조 SOAP Message는 다음과 같이 Envelope, Header, Body 세 개의 주요 파트(parts)로 이 루어진다. SOAP Message의 구성 요소 : Envelope: 메시지의 시작과 끝을 정의함 Header: 메시지의 모든 조건적 속성들을 포함함 (optional) Body: 전송될 메시지를 포함한 모든 XML 데이터를 포함함 첨부 파일 (Attachments): XML 포맷과 아스키 혹은 바이너리와 같은 데이터 포맷 지원 KONYANG Electronic Information Engineering
SOAP 메시지 구조 요소 (Element) 엔벨로프 (Envelope) 헤더 (옵션) 바디 (Body) 첨부 파일 (Attachments) (옵션) SOAP Envelope (Primary MIME part) Attachment SOAP 1.1 Message W/Attachments Header entry Body entry SOAP Header SOAP Body
SOAP Message의 예 <?xml version='1.0' ?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" > <env:Header> … </env:Header> <env:Body> <m:chargeReservationResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding" xmlns:m="http://travelcompany.example.org/"> </m:chargeReservationResponse> </env:Body> </env:Envelope> KONYANG Electronic Information Engineering
SOAP Message의 전달과정 SOAP Message는 SOAP sender에 의해 생성 여러 SOAP Node들을 거치면서 Optional하 게 SOAP Header에 대한 부분적인 처리 최종적으로 SOAP Receiver에게 전달 SOAP Header와 SOAP Body에 대한 특정 처 리 및 작동을 촉구 KONYANG Electronic Information Engineering ES&L
SOAP Message Processing SOAP Message를 처리하는 각 Node들은 SOAP Message를 받으면 순차적으로 수행. 전달 받은 SOAP message에 대한 현 Node의 가능한 모든 role을 결정. 현 Node에서 처리해야 할 Header block들을 Identify한다. 만약 mustUnderstandattribute의 값이 “true”로 주어진 header를 이해할 수 없으면 Fault Message를 보내고 종료. KONYANG Electronic Information Engineering
SOAP Message Processing 현 Node에서 처리해야 할 Header block들에 대한 처리. 만약mustUnderstandattribute의 값이 “true”로 주어진 header를 처리할 수 없으면 Fault Message를 보내고 종료. 현 Node가 전달 받은 SOAP Message의 ‘ultimate SOAP receiver’ 라면 SOAP body에 대한 처리. 현 Node가 ‘SOAP intermediary’ 이고 ‘relay attribute value표’에 따라relay가 필요하다면 SOAP message를 relay한다. KONYANG Electronic Information Engineering