Download presentation
Presentation is loading. Please wait.
1
SOAP (Simple Object Access Protocol)
전산게임학과 조정귀
2
목 차 SOAP 란? SOAP 용도 SOAP 장점 SOAP 기능 SOAP의 구조
3
SOAP 란? SOAP(Simple Object Access Protocol)
XML과 HTTP 통신을 기반으로 하여 네트워크 상에 존재하는 각종 컴포넌트간의 호출을 효율적으로 실현하기 위한 방법을 제시하는 규약이다. 네트워크 상에서 Client와 Service Provider간에 메시지를 요청하고 이에 응답해주는 방법을 제공하는 것이다. 이러한 방식들은 기존의 RPC(Remote Procedure Call) 떨어져(Remote)있는 컴퓨터상의 프로그램이 다른 컴퓨터 내에 있는 서브프로그램(Procedure)을 불러내는(Call)것을 의미한다 즉, SOAP은 RPC의 한가지 방법이라 할 수가 있다 SOAP은 여러 Application Layer Protocol 들 중에 HTTP를 사용함으로써 여러 시스템간의 통신과 통합을 위한 좀더 단순하면서도 가벼운 메카니즘을 제공한다. RPC 메커니즘 RPC와 그에 따른 응답에 대한 내용을 정의 원격 애플리케이션의 메소드를 호출하고 응답 받는 것에 대한 규약 SOAP 프로토콜이 인코딩된 객체를 원격 프로시져에 매개변수로서 전달하는 방법
4
SOAP 란? HTTP를 사용하게 된 중요한 이유는 바로 방화벽에 제한을 받지 않는 범용성 때문이라 말할 수 있다.
다른 Application Layer Protocol의 경우 그들만의 약정된 TCP 또는 UDP 포트를 사용하기 때문에 인터넷상에 설치되어있는 방화벽에 많은 제약을 받게 된다. 하지만 SOAP은 HTTP를 채택함으로써 방화벽의 제약을 받지 않고 불특정 다수의 클라이언트 또는 인터넷 상의 특정한 서버와의 RPC를 효율적으로 수행할 수 있도록 해준다. 보안의 문제로 SOAP는 SOAP만이 가지는 특정한 HTTP Header를 방화벽의 필터링 부분에 보냄으로써 메시지의 통과여부를 가릴 수 있게 하는 방법으로 보안이라는 문제를 해결한다.
5
SOAP 용도… SOAP 용도은 2가지로 구분된다. 1. EDI(Eletronic Data Interchange)
문서 스타일 SOAP(document style SOAP)이라고도 하며 주로 전자 문서를 교환하기 위해서 사용된다. 예로는 물품 주문서, 세금 계산서 등을 SOAP을 이용하여 전달하는 경우이다. 문서 스타일 SOAP을 위해서 SUN에서는 JAXM(Java API for Messaging)을 제공한다. 2. RPC(Remote Procedure Call) 원격 함수를 호출하기 위해서 사용되는 SOAP이다. SOAP을 통해서 전달되는 내용은 호출할 메소드의 이름, 매게 변수, 리턴 값이다. RPC 스타일 SOAP 을 위해서 SUN에서는 JAX-RPC를 제공한다.
6
플랫폼 및 언어에 종속되지 않고 쉽게 구현 및 사용 가능
SOAP 장점 사용하기 쉬움 (Use Easily) HTTP는 웹상에서 가장 일반적인 통신 프로토콜 상호운영성 (Interoperability) 플랫폼이나 언어에 상관없음 확장성 (Extensibility) XML 스키마(Schema) 와 네임스페이스(namespace) 사용 Add… 1) 언어와 시스템에 상관없이 HTTP 프로토콜을 지원 2) XML 처리만 가능하면 통신이 가능 단점 1) XML을 보내다보니 메시지 크기가 큼 2) XML 처리 로직이 필요하기 때문에 속도가 떨어짐 플랫폼 독립적 인간 친화적 플랫폼 및 언어에 종속되지 않고 쉽게 구현 및 사용 가능 방화벽 등의 방해 없이 거의 모든 시스템과 통신 가능 비동기식 처리로 한 방향 액션(퍼블리싱 등) 처리 유용 XML 기반 SMTP 사용 HTTP 사용
7
SOAP 기능 SOAP는 4가지 기능을 가진다. SOAP envelope
Message에 무엇이 있는가, 누가 무엇을 다루는가, 어떤 것이 Optional이고 mandatory인가를 나타내기 위한 전체적인 framework를 제공한다. SOAP encoding rules Application에 정의된 data type들의 instance를 교환하는데 사용되는 메카니즘이다. SOAP RPC 표현 Remote procedure call과 response들을 나타내는데 사용되는 규약을 정의한다. SOAP binding 두가지 동등한 전송프로토콜을 사용하여 SOAP envelope 교환에 대한 규약을 정의한다. SOAP envelop: SOAP 메시지에 무엇을 담을 것인지, 어떻게 다룰 것인지, 선택적인지, 필수적인지를 나타낸스 전반적인 틀을 정의
8
SOAP 기능… 위의 4가지 중에 envelope와 encoding rule은 서로 다른 namespace에 정의되어있는 XML 이며, link를 걸어놓음으로써 정의된 내용들을 사용할 수 있다. SOAP은 Message Based Protocol이기 때문에 두 시스템간의 통합 시 쌍방 간의 Message Format만을 약속하면 되므로 통합시간 및 효율을 높일 수 있으며, 매우 간단하다.
9
SOAP 메시지 구조 요소 (Element) 엔벨로프 (Envelope) 헤더 (옵션) 바디 (Body)
첨부 파일 (Attachments) (옵션)
10
SOAP 메시지 구조 SOAP Envelope
SOAP Message는 필수항목인 SOAP envelope와 생략 가능한 SOAP Header 그리고 SOAP Body로 구성되어 있는 XML Document이다. SOAP Header SOAP는 Header라는 구성을 통해 통신을 하는 쌍방 간의 어떤 제약없이 Message를 확장할 수 있는 융통성 있는 구조를 제공한다. (보안,트랜젝션,신뢰성 있는 메시징과 같은 고급레벨 기능을 정의) SOAP Body SOAP Body 구성하는 필수 정보를 교환하기 위해 사용되는 간단한 메카니즘을 제공한다, 일반적으로 Body는 어떤 결과나 error를 보고하기 위해 사용된다.
11
참고 자료 및 요약 http://www.w3.org/TR/soap/
웹서비스에서 메시지 전달에만 중점. SOAP header에 다양한 부가적인 정보를 삽입할수 있는 SOAP 확장 메커니즘을 제공한다.
12
감사합니다
Similar presentations