본문 바로가기
IT 용어/SOAP

SOAP란 무엇일까?

by HP_Factory 2020. 12. 31.

SOAP란 Simple Object Access Protocol의 두문자어로, 일반적으로 널리 알려진 HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환화는 프로토콜입니다.

 

SOAP 특징

  • 웹 서비스에서 기본적인 메시지를 전달하는 기반이 됩니다.
  • 몇가지 형태의 메시지 패턴이 있지만, 보통의 경우 원격 프로시져 호출(Remote Procedure Call:RPC)패턴으로, 네트워크 노드(클라이언트)에서 다른 쪽 노드(서버)쪽으로 메시지를 요청 하고, 서버는 메시지를 즉시 응답하게 됩니다.
  • XML-RPC와 WDDX에서 envelope/header/body로 이루어진 구조와 전송(transport)상호 중립성(Interaction neutrality)의 개념을 가지고 왔습니다.
  • SOAP은 XML을 근간으로 헤더와 바디를 조합하는 디자인 패턴으로 설계되어 있습니다. 헤더는 선택사항으로 반복이나 보안 및 트랜잭션을 정보로 하는 메타 정보를 가지며, 바디 부분은 주요한 정보인 정보를 가지고 있습니다.

 

SOAP 장점

  • 기존 원격 기술들에 비해서 프록시와 방화벽에 구애받지 않고 쉽게 통신 가능합니다.
  • 플랫폼과 프로그래밍 언어에 독립적입니다.
  • 웹 서비스를 제공하기 위한 표준(WSDL, UDDI, WS-*)이 잘 정립되어 있습니다.
  • 에러 처리에 대한 내용이 기본으로 내장되어 있습니다.
  • 분산 환경에 적합합니다.

 

 

SOAP 단점

  • 복잡한 구조로 인해 오버헤드가 있으며, 이는 SOAP의 확장을 저해하고 있습니다.
  • REST에 비해 상대적으로 무겁고 속도도 느립니다.
  • 개발 난이도가 높아 개발 환경의 지원이 필요합니다.

 

 

 

SOAP 아키텍처

 UDDI를 통해 웹서비스를 등록(Publish)하고, 검색(Find)하고, 바인딩(Bind)하여 사용합니다.

 

UDDI : Universal Description ,Discovery and Integration, 웹 서비스를 등록하고 검색하기 위한 저장소입니다. UDDI는 웹서비스를 등록하고 검색할 수 있는 일종이 웹 서비스 전용 검색엔진이라고 할 수 있습니다.

 

 

 

 

SOAP의 동작원리

  1. 서비스 요청자웹 서비스 요청을 SOAP로 인코딩
  2. 인코딩한 값을 서비스 제공자에게 전달
  3. 서비스 제공자는 2.값디코딩 후 적절한 서비스 로직을 수행
  4. 나온 결과값을 다시 SOPA로 인코딩하여 서비스 요청자에게 반환

 

SOAP의 메시지 구조

 SOAP 메시지는 선택적 Header와 필수 Body를 포함하는 Envelope로 구성된 XML 문서로 인코딩됩니다. Body에 포함된 Fault는 오류 보고에 사용됩니다.

  • SOAP Envelope

Envelope는 모든 SOAP 메시지의 루트 요소이며 두 개의 하위 요소인 선택적 Header 요소 및 필수 Body 요소를 포함합니다.

  • SOAP Header

Header는 Envelope의 선택적 하위 요소이며 메시지 경로를 따라 SOAP 노드로만 처리될 애플리케이션 관련 정보를 전달하는 데 사용됩니다.

  • SOAP Body

Body는 Envelope의 필수 하위 요소이며 메시지의 최종 수신인을 대상으로 하는 정보를 포함합니다.

  • SOAP Fault

Fault는 Body의 하위 요소이며 오류 보고에 사용됩니다.

 

 

 

 

 

 

출처

tychejin.tistory.com/148

 

댓글