-
SOAP(Simple Object Access Protocol)EDI 관련 기술 용어 2022. 3. 18. 14:00
SOAP(Simple Object Access Protocol)는 직역하면 단순객체 접근 프로토콜로 World Wide Web Consortium(W3C)에서 유지관리하는 공식 프로토콜입니다.
(프로토콜이 궁금하시다면, 여기서 확인하세요↓)
오늘은 SOAP에 대해 알아보겠습니다.
SOAP
SOAP는 확장성 생성 언어(XML)와 하이퍼텍스트 전송 규약(HTTP) 등을 기반으로 하여 다른 컴퓨터에 있는 데이터나 서비스를 호출하기 위한 통신 규약입니다.
마이크로소프트사와 유저랜드 소프트웨어(UserLand Software)사, 디벨롭멘터(Developmentor)사가 중심이 되어 개발했습니다.
SOAP에 의한 통신에서는 XML 문서에 봉투(envelope)로 불리는 부대 정보가 붙은 메시지를 HTTP 등의 프로토콜로 교환한다고 정의할 수 있습니다.
(HTTP에 대한 정보는 여기서 확인하세요↓)
이는 웹 서비스와 상호작용하기 위해서 사용합니다.
SOAP 메시지 구조
- SOAP Envelope
모든 SOAP 메시지의 루트 요소이며, 두개의 하위 요소인 선택적 요소 및 필수 요소를 포함합니다.
메시지의 시작과 끝, 메시지에 있는 내용을 표현하기 위한 전체 프레임워크를 정의합니다.
- SOAP Header
SOAP 엔벨로프의 선택적 하위 요소입니다.
메시지에 대한 세부 사항, 추가 요구 사항을 포함합니다.
MustUnderstang 속성은 헤더 요소가 선택 사항인지 필수적인지 나타내는 속성으로, true로 설정하면 메시지 수신자는 헤더 속성을 이해하고 처리하거나 오류를 반환해야합니다.
- SOAP Body
SOAP 본문으로 엔벨로프의 필수 하위 요소이며, 메시지의 최종 수신을 대상으로 하는 정보를 포함하고 있습니다.
전송될 메시지를 포함한 모든 XML 데이터를 포함합니다.
- SOAP Encoding Rule
인스턴스를 교환하는데 사용할 수 있는 직렬화 메커니즘을 정의합니다.
-SOAP RPC Representation
원격 프로시저 호출 및 응답을 나타내는데, 사용할 수 있는 규칙을 정의합니다.
WSDL(Web Services Description Language)
SOAP 기반 웹서비스는 WSDL로부터 서비스를 요청하고 응답받는 구조입니다.
여기서 웹서비스란 네트워크를 통해 응용 프로그램 간에 정보를 교환하는 것입니다.
웹서비스에서 제공하는 기능들을 외부에서 이용할 수 있도록, 그 사용 방법을 알려주는 인터페이스 언어입니다.
개인이나 다른 회사들이 서비스에 전자적으로 접근할 수 있는 방법을 제공하기 위해 사용되는 xml 기반의 언어입니다.
웹서비스의 구체적 내용이 기술되어 있어 서비스 제공 장소, 서비스 메시지 포맷 등이 기술됩니다.
SOAP 메시지 예시
SOAP 메시지는 아래와 같이 하나의 XML 문서입니다.
<?xml version='1.0' ?><env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" ><env:Header>…</env:Header><env:Body><m:chargeReservationResponseenv:encodingStyle="http://www.w3.org/2003/05/soap-encoding"xmlns:m="http://cloudedi.example.com/">…</m:chargeReservationResponse></env:Body></env:Envelope>SOAP 장점
1. 에러 처리 기능 내장
규약을 어기면 웹 API가 에러를 유발하고 규악의 어느 부분을 어겼는지 클라이언트에게 알려줍니다.
2. 방화벽 제약 없음
HTTP기반으로, HTTP와 같이 프록시와 방화벽에 구애받지 않고 통신이 가능합니다.
3. 독립적
프로그래밍 언어나 플랫폼에 의존적이지 않습니다.
4. 확장 가능
간단하며, 확장이 용이합니다.
5. 다양성
다양한 네트워크 프로토콜을 사용합니다.
SOAP 단점
1. 속도
XML로 태그 형태로 메세지를 보내기 때문에, 다른 기술들에 비교해 상대적으로 느린 편입니다.
2. 무거운 프로토콜
SOAP 메시지에는 구조상 많은 정보가 포함되어 있어, 데이터 전송량이 큰 편입니다.
XML 파일 크기가 크기 때문에 대역폭이 제한되는 곳에서 SOAP을 사용하게 되면 문제가 됩니다.
[참고 자료]
'EDI 관련 기술 용어' 카테고리의 다른 글
SSH(Secure Shell) (0) 2022.03.31 XML(extensible markup language) (0) 2022.03.23 FTP, FTPS, SFTP (0) 2022.03.05 HTTP와 HTTPS (0) 2022.02.16 프로토콜(Protocol) (0) 2022.02.09