Web?

SOAP와 REST(Simple Object Access Protocol)

디자인인스 2016. 7. 19. 11:26

1. SOAP(Service Oriented Architecture)를 따르는 웹 서비스 디자인 표준

1) 정의

- SOA(Service Oriented Architecture)를 따르는 웹 서비스 디자인 표준

- HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 형태의 프로토콜

- Web Services Description Language(WSDL)을 이용하여 정의

- XML을 근간으로 헤더와 바디를 조합하는 디자인 패턴으로 설계


- WSDL(Web Services Description Language) : 네트워크 연결된 XML 기반 서비스를 설명하는 표준 스펙

- UDDI(Universal Descripton, Discovery, and Integration) : 웹 서비스에 대한 정보를 공개하고 발견하는 방법을 정의


2) 장점

- 플렛폼과 프로그래밍에 독립적

- 분산 컴퓨팅 환경에서 사용하기 위한 디자인

- 웹 서비스를 위해 널리 사용되는 표준이며, 다른 표준과 통합을 통한 확장성이 뛰어나고 다양한 Vendor을 통한 지원이 이루어지고 있음

- 에러처리 기능이 포함되어 있음


3) 단점

- 개념적으로 REST보다 더 어렵고 무거움

- 개발이 REST보다 어렵고 Tool이 필요한 경우가 많음


2. REST(Representational State Transfer)

1) 정의

- ROAD(Resource Oriented Architecture)를 따르는 웹 서비스 디자인 표준

- 원드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식

- CRUD(Create Read Update Delete)에 해당 하는 4가지의 메서드만 사용

Method

CRUD

SQL

용 도

POST

Create

INSERT

ㅋㅓㄹ렉션에 새로운 리소스를 만들거나 컴트롤러를 실행할때 사용

GET

Read

SELECT

리소스 상태의 표현을 얻을때 사용

PUT

Update

UPDATE

새로운 리소스를 스토어에 추가하거나 기존 리소스를 갱신할때 사용

DELETE

Delete

DELETA

리소스 제거


- WADL(Web Services Description Language) : HTTP 기반 웹 어플리세이션(전형적 REST용 웹 서비스)의 기계 판독형 XML 설명


2) 장점

- 분산 환경에서 메시지가 중간 경ㅇ지를 여러번 통과하는 경우 사용하기 어려움

- 보안, 정책, 안정적인 메시지 전달을 지원하기 위한 표준이 부족함. 즉, 복잡한 요구사항을 표현하기 위해 직접 구현해야 함


3. 서비스 기술 비교



SOAP 기반 웹서비스

RESTful 웹서비스

배경 및 현황

- 기업을 위한 비즈니스 응용에서부터 출발

- IBM, BEA(현재 IBM으로 통합), Oracle 등을 선두로 하는 웹서버 벤더에서 주창

- SOA의 서비스는 대부분이 비즈니스 컴포넌트로서의 의미를 가짐

- WEB2.0은 서비스 어플리케이션에서 부터 시작

- 구글, 아마존, 야후와 같은 인터넷 서비스 기업에 의해서 주창

- 맵이나 뉴스, 가젯 등과 같이 UI 성격을 갖는 서비스가 대다수임

특징

- The Machine-Readable Web: 사람보다는 기계가 해석할 수 있는 웹

- Stateful : 오퍼레이션 중 서비스 상태가 일관되게 유지, 관리 되어야 함.

-엄격한 문법 검사, 서비스 계약에 충실

- 웹서버 등 웹서비스 개발 환경이 지원되어야 함

- The Homan-Readable Web : 사람이 해석할 수 있는 웹

- Stateless : 오퍼레이션 중 서비스/리소스의 상태를 관리하지 않음(HTTP의 기본 메커니즘), 필요한 경우에 직접 관리해야 함

- 기본 XML만으로 서비스 개발 가능

- 별도의 개발 환경 지원이 필요 없음

전달 메커니즘

Remoto Procedure Call

Pubilsh/Syndicate Patterm

전달 프로토콜

SOAP/HTTP, SMTP

HTTP

서비스 명세

WSDL

WADL, XML, JSON, hREST(시맨틱 REST)등

서비스 레지스트리

UDDL

없음

필요 스택

W3C의 WS-+스택(WS-addressing, WS-security등)

없음

 주요 적용 분야

트랜잭션 프로세싱

데이터와 UI(User Interface) 프로세싱 

현재의 문제점

어려운 사용법, 무거운 프로토콜

표준의 부재, 관리가 어려움