Simple Object Access Protocol(SOAP)
SOAP이란 위에 정의된 것 처럼 일반적으로 널리 알려진 HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜입니다.
장점
기존 원격 기술들에 비해서 프록시와 방화벽에 구애 받지 않고 쉽게 통신이 가능하다.
플랫폼과 프로그래밍 언어에 독립적이다.
웹 서비스를 제공하기 위한 표준 (WSDL, UDDI, WS-*) 이 잘 정립되어 있다.
에러 처리에 대한 내용이 기본으로 내장되어 있다.
분산 환경에 적합하다.
단점
개발 난이도가 높아 개발 환경의 지원이 필요하다.
REST에 비해 상대적으로 무겁고 속도도 느리다.
복잡한 구조로 인한 오버헤드가 있으며, 이는 SOAP의 확장을 저해하고 있다.
SOAP의 아키텍처는 크게 UDDI 레지스트리(UDDI registry), 서비스 요청자(Service requestor), 서비스 제공자(Service provider)로 구성됩니다. 서비스 공급자는 웹 서비스를 UDDI 레지스트리에 등록 (Publish)하며, 서비스 요청자는 웹 서비스를 UDDI 레지스트리에서 탐색 (Find) 합니다. 서비스 공급자와 서비스 제공자는 SOAP 형태로 인코딩된 메시지로 바인딩 (Bind) 합니다. 다시말하면 서비스 요청자는 SOAP으로 인코딩하여 웹 서비스를 요청합니다. 서비스 제공자는 이를 디코딩하여 적절한 서비스 로직을 수행시켜서 결과를 얻고 그 결과를 다시 SOAP으로 인코딩하여 반환합니다.
아키텍처 상세설명
WSDL( Web Service Description Language )
어떤 등록처나 저장소에 자료를 저장하려면 어떤자료가 어디에 어떤형식으로 저장되는 알아야 사용이 가능한데
이런 특정서비스의 설명과 접근방법같은 것은 전자적으로 접근하는 방법을 XML언어기반으로 제공하는 기술이다.
UDDI( Universal Description, Descovery Intergration )
기업이나 단체, 개인이 자신들의 서비스내용을 인터넷상에 등록할수 있게하는 XLML 기반의 등록처이다.
이 등록처에 WSDL을 사용하여 수행한다.
SOAP ( Simple Object Access Protocol )
웹상에 연결된 컴퓨터속에 있는 각 객체들을 액세스 하기 위한 MS사의 프로토콜인데
HTTP로 XML구문을 사용하여 COM,DCOM,자바등이 수행될수 있다.
[출처] 웹서비스 ( SOAP, UDDI, WSDL ) 가 뭘까?|작성자 수수깡
아래는 SOAP메시지 구조.
REpresentational State Transfer(REST)
REST란 위에 정의된 것 처럼 HTTP를 통해 세션 트랙킹 같은 부가적인 전송 레이어 없이, 전송하기 위한 아주 간단한 인터페이스 입니다. 또한 HTTP 등의 기본 개념에 충실히 따르는 웹 서비스 입니다.
장점
플랫폼과 프로그래밍 언어에 독립적이다. ( = SOAP )
SOAP 보다 개발하기 단순하므로 학습곡선이 작고 도구가 거의 필요없다.
간결하므로 추가적인 메시지 계층이 없다.
단점
Point-to-point 통신 모델을 가정하므로 둘 이상으로 상호작용하는 분산환경에는 유용하지 않다.
보안, 정책 등에 대한 표준이 없다.
HTTP 통신 모델만 지원한다.
REST아키텍처
REST의 아키텍처는 자원 요청자(Resource requester), 자원 제공자(Resource provider) 로 구성됩니다. REST는 자원을 등록하고 저장해주는 중간 매체 없이 자원 제공자가 직접 자원 요청자에게 제공합니다. REST는 기본 HTTP 프로토콜의 메소드인 GET/PUT/POST/DELETE를 이용하여 자원 요청자는 자원을 요청합니다. 자원 제공자는 다양한 형태로 표현된 (JSON, XML, RSS 등)의 리소스를 반환합니다.
REST 메시지구조
Google Trend를 통해 SOAP과 REST 검색량 비교를 해본 결과 SOAP은 평행을 유지하고 있지만 REST는 급격히 상승하고 있는 것을 알게 되었습니다. SOAP이 견고하고 단단하지만 많은 제약을 갖고 있어서 확장에 불편함이 있는 것에 비해, 최근에는 REST 처럼 간편하지만 활용성이 높은 웹 서비스가 많아지고 있는 현상을 표현해주고 있다고 생각합니다.
참고 : http://www.slideshare.net/yjaeseok/soap-rest
'소소한 개발팁' 카테고리의 다른 글
러닝커브~ (0) | 2016.07.15 |
---|---|
빅엔디안(Big-Endian), 리틀엔디안(Little-Endian) (0) | 2016.06.02 |
용어 하나씩 추가해보자!(약자) (0) | 2016.04.05 |
log4j xml, properties 등록하기. (0) | 2016.03.29 |
rtp패킷구조 (0) | 2015.04.24 |