본문 바로가기
Server/server

SOAP(Simple Object Access Protocol)이란?

by 꼬바리 2021. 7. 7.

SOAP(Simple Object Access Protocol)이란?

  • 일반적으로 널리 알려진 HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜입니다. 
  • 웹 서비스에서 기본적인 메시지를 전달하는 기반이 됩니다.
  • 몇가지 형태의 메시지 패턴이 있지만, 보통의 경우 원격 프로시져 호출(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)하여 사용합니다.

 

SOAP의 동작원리

 서비스 요청자가 SOAP로 인코딩하여 웹 서비스 요청을 서비스 제공자에게 전달하며, 서비스 제공자는 이를 디코딩하여 적절한 서비스 로직을 수행시켜서 결과를 얻고, 그 결과를 다시 SOAP로 인코딩하여 반환합니다.

 

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의 하위 요소이며 오류 보고에 사용됩니다.

 

SOAP 메시지의 구조

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope" 
                     soap:encodingStyle=http://schemas.xmlsoap.org/soap/encoding">
  <soap:Header>
                ...
  </soap:Header>
  <soap:Body>
               ...
    <soap:Fault>
                 ...
    </soap:Fault>
  </soap:Body>
</soap:Envelope>
Colored by Color Scripter
cs

 

UDDI(Universal Description ,Discovery and Integration)

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

 

출처:https://ko.wikipedia.org/wiki/SOAP

728x90
반응형

'Server > server' 카테고리의 다른 글

특정 포트 찾기/ 포트 죽이기  (0) 2022.01.24
클라우드 컴퓨팅  (2) 2021.03.26
[WAS] 웹서버, WAS 란?  (0) 2021.03.25
[Server] 웹 서버(Server)의 기초 개념  (0) 2021.03.25
[ Server] 란 무엇인가?  (0) 2021.03.25

댓글