SOAP(Simple Object Access Protocol)
웹서비스를 실제로 이용하기 위한 객체간의 통신규약
인터넷을 통해 웹서비스가 통신할 수 있게 하는 역할을 담당하는기술
RESTful(representational State Transfer)
- Web 같은 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 형식
- REST는 리소스를 정의하고 리소스에 대한 주소를 지정하는 방법에 대한 개괄을 의미
- 도메인 지향 데이터를 HTTP위에 SOAP이나 쿠키를 통한 세션 트랙킹 같은 부가적인 전송 레이어없이 전송하기 위한 간단한 인터페이스
- RESTful은 REST스럽다의 의미임
SOAP와 RESTful
1. SOAP 기반 웹서비스와 RESTful 웹서비스
가 SOAP 기반 웹서비스
- 분산환경에서 정보 교환을 목적으로 하는 경량의 XM 기반 프로토콜
- 플랫폼, OS, 프로그래밍 언어에 독립적
- RPC 방식, 메시지 기반 정보 교환 방식
- HTTPㄹ 운반되어 방화벽통과 용이
- XML(웹서비스 내의 모든 데이터 표현), WSDL(데이터와 오퍼레이션 정의), UDDI(전역 서비스 저장소 등록)
- SOAP(공개된 웹서비스가 이용될때 서비스 요청자와 제공자 간에 이용)
나. RESTful 웹서비스
- 부수적인 레이어, 세션관리 추가없이 HTTP 프로토콜로 데이터 전달하는 프레임워크
- 클라이언트/서버 간 구성 요소 엄격히 분리구현은 단순화, 확장성과 성능을 높일 수 있는 아키텍처
- POST(CREATE), GET(READ), PUT(UPDATE), DELETE(DELETE)
2. SOAP 기반 웹서비스와 RESTful 웹서비스 비교
가. 서비스 구조간 비교
- SOAP 기반 웹서비스 서비스 제공자와 요청자 간 SOAP 프로토콜로 메시지 주고받는 방식으로 서비스 이용
- RESTful은 기본 HTTP 프로토콜의 메소드 GET/PUT/POST/DELETE를 이용하여 다양한 형태로 표현된 JSON, XML, RSS 등 리소스를 직접 실어 나름
나. 서비스기술간 비교
1) 특징 비교
- SOAP : The Maching-Readable Web, Stateful, 엄격한 문법검사, 서비스 계약에 충실, 웹서버/웹서비스 개발환경 지원
- RESTful : The Human-Readable Web, Stateless, 기본 XML만으로 서비스 개발 가능, 별도 개발환경 지원 필요 없음
3. SOAP과 RESTful 웹서비스의 서비스 사례
- SOAP : 고객정보, 주문정보 검색, 변경, 삭제 오퍼레이션 각기 존재. 기능 수행시 오퍼레이션 호출 방식
- RESTful : 총주문(/order), id를 가지는 특정주문(/order/{id}), 총고객, 고객 한명을 모두 리소스로 정의하고, 각 리소스에 URI를 할당한 후 URI에 대해 HTTP GET/PUT/POST/DELETE 오퍼레이션 수행
WSDL(web service description language)
- 웹서비스의 인터페이스에 대한 상태정보를 기술하는 표준
- XML로 구성된 언어
- 웹서비스 오퍼레이션 이름, 입출력 파라미터, 메시지 타입, 서비스 호출방법, 서비스 위치등을 가짐
UDD(Universal Description, Discovery and Integration)
- 웹서비스에 대한 정보를 등록하고 검색하기 위한 표준
soapUI
- 웹서비스 테스트툴(오픈소스)
- 따라하기 URL : http://genycho.blog.me/60124101558