웹서비스
태그 :
- 개념
- - SOAP, WSDL, UDDI등의 표준 기술을 이용하여 네트워크에 연결된 다른 컴퓨터간의 개방형 분산 컴퓨팅을 지원하는 소프트웨어 및 기술 - 표준 방식으로 분산 저장되어 있는 자원들을 공유하고 호환 가능하게 하는 인터넷 서비스 - XML에 기반을 둔 플랫폼과 구현언어에 독립적인 컴포넌트 기반의 분산 컴퓨팅
I. 형상관리 활동을 점검하는 형상감사의 개요
가. 웹 서비스(Web Services)의 정의
- SOAP, WSDL, UDDI등의 표준 기술을 이용하여 네트워크에 연결된 다른 컴퓨터간의 개방형 분산 컴퓨팅을 지원하는 소프트웨어 및 기술
- 표준 방식으로 분산 저장되어 있는 자원들을 공유하고 호환 가능하게 하는 인터넷 서비스
- XML에 기반을 둔 플랫폼과 구현언어에 독립적인 컴포넌트 기반의 분산 컴퓨팅
나. 웹 서비스의 특징
특징 |
설명 |
단순성 |
XML 기반으로 기존의 분산 컴퓨팅 모델에 비해 보다 단순하고 확장이 용이한 모델을 제공 |
상호운영성 |
교환 메시지를 포함한 모든 정보 표현에 있어 XML을 이요하여, 기존의 웹 환경 위에 바로 구현 |
시스템 구조의 유연성 |
메인프레임 또는 서버-클라이언트 방식과 달리 유연한 소프트웨어 구조를 통해 이질적인 데이터 표준을 유연하게 통합/운영 |
사용의 편리성 |
사용자는 소프트웨어를 설치한 후 자연스럽게 서비스를 제공받게 되며, 인터넷을 연결할 수 있는 유/무선 다남ㄹ기를 통해 장소에 관계없는 접근이 가능 |
통합 환경 제공 |
이질적인 어플리케이션간의 통합 서비스를 제공받을 수 있고 새로운 시스템과의 통합도 자동적으로 이루어진다 |
비용 효율적 |
분산 시스템의 소프트웨어 간 통합을 자동화적으로 이행해줌으로써 IT개발 및 운영비용을 절감 |
II. 웹 서비스의 개념도 및 구성요소
가. 웹 서비스 개념도
구성도 |
구성요소 |
|
1. 구성요소 1) 웹서비스 제공자 2) 웹서비스 사용자 3) UDDI 2. 웹서비스의 표준 1) WSDL 2) SOAP 3) UDDI |
나. WSDL의 특징과 유형
1)WSDL(Web Service Description Language)의 특징
- XML기반의 웹 서비스의 문법적인 규격에 대한 정보기술 언어
- 웹 서비스의 실제 위치 제공
- 웹 서비스를 이용하기 위한 바인딩 정보 제공
- 웹 서비스 제공 기업의 간결한 정보 제공
2) WSDL의 기능
- 어플리케이션간의 통신방법 규정
- 데이터 상호교환을 위한 데이터 형식, 통신 프로토콜, 서비스 등을 표현하는 Template
- 원하는 웹 서비스를 사용하기 위한 인터페이스 명세 제공
- SOAP 툴 키트를 이용한 WSDL문서의 자동 생성
다. UDDI의 특징과 유형
1). UDDI(Universal Description, Discovery and Integration)의 특징
- 웹 서비스 정보를 구조화된 방법으로 구축하여 게시하고 검색할 수 있는 일종의 공용 레지스트리
- 거래기업의 웹 서비스 인터페이스 형태 분석
- 원하는 형태의 서비스를 제공하는 기업 검색
- 원하는 기업과의 연결
2) UDDI의 분류유형
비교항목 |
설명 |
특징 |
White Page |
웹서비스제공업체의 기본정보 |
회사소개, 주소, 연락처 등 |
Yallow Page |
기업의 자세한 정보, 서비스 설명을 분류하여 설명 |
웹서비스 분류체계별, 지역별 회사목록 |
Green Page |
제공 웹서비스의 스펙 제공 |
소프트웨어 인터페이스 사용자들이 준수해야 할 표준 |
III. 웹 서비스 아키텍처 구성도 및 발전 단계별 비즈니스 모델
가. 웹 서비스 아키텍처 구성도
구분 |
내용 |
웹서비스 제공자플랫폼 |
웹서비스 주 플랫폼, 웹서비스 실제적 운영되는 플랫폼 예) BEA Systems의 웹로직, IBM의 웹스피어등 |
웹서비스 생산자플랫폼 |
웹서비스를 개발하는 프로세스의 자공화를 제공해주는 것 예) MS의 닷넷, Sun의 SunONE |
웹서비스 관리플랫폼 |
동질적인 서비스간 상호공유, 이질적 플랫폼간 연계는 큰 이슈 닷넷기반의 서비스는 자바진여의 J2EE기반 서비스 연게 안됨 |
웹서비스 소비자플랫폼 |
서비스를 원하는 사용자에게 웹서비스를 위한 가치의 전송 및 서비스를 연결해주는 소프트웨어 |
나. 웹 서비스 발전 단계별 비즈니스 모델
구분 |
내용 |
1단계 : 기업통합모델 |
- Intra-Enterprise Integration으로 가장 단순한 형태 -기업내 하나의 인터페이스를 통해 비즈니스 프로세스를 통합 |
2단계 : 폐쇄적비즈니스 모델 |
- 다수의 서로 다른 기업들의 참여자들로 구성 - 참여자들간 비즈니스가 이루어지는 사적인 통합유형 - XML, SOAP 표준 이용, UDDI표준은 요구되지 않음 |
3단계 : 반개방적 비즈니스 모델 |
- 참여자들간 서로 인식, 기업의 사적인 비즈니스 유형 - 참여자수가 커서 참여자들을 발경할 수 있는 메커니즘 필요 - UDDI를 사용하여 연결 |
4단계 : 개방적 비즈니스 모델 |
- 참여자들간 서로 인식 못함, 개방적 커뮤니티 성격 - 참여자간의 비즈니스 프로세스가 이질적, 고도의 표준화 요구 - 이 모델은 글로벌 E-마켓플레이스를 위한 비즈니스 모델 |
IV. SOA 구현을 위한 웹 서비스 구성요소 역할
가. SOA 구현을 위한 웹 서비스 구성도
나. SOA 구현을 위한 WSDL, SOAP, UDDI의 역할
특징 |
설명 |
UDDI |
- Universal Description, Discover and Integration - 필요한 서비스를 찾을 수 잇는 웹 서비스 레지스트리 (서비스 등록, 검색) - 웹 서비스와 비즈니스를 발행(publish)/검색(Find)하기 위한 기술적인 스펙 - UDDI데이터 범주 ㆍWhite 페이지 : 회사에 대한 일반적인 정보 (비즈니스 이름, 세부내용, 주소) ㆍYellow 페이지 : 회사나 서비스가 제공하는 분류된 데이터 (표준 분류법을 토대로 산업별, 제품별, 지리적 코드 별로 나뉜 데이터) ㆍGreen 페이지 : 웹 서비스에 대한 기술적인 정보 (외부 스펙을 가리키거나 웹 서비스 호출에 대한 주소) |
WSDL |
- Web Services Description Language - 웹 서비스를 표현하고 기술하는 언어 (서비스 표현) - 웹 서비스의 공개 인터페이스를 설명하기 위한 XML 문법 - 공개 인터페이스 ㆍ공개적으로 사용할 수 있는 기능들의 정보 ㆍXML 메시지를 위한 데이터 타입 정보 ㆍ사용된 전송 프로토콜에 관한 바인딩 정보 ㆍ특정한 서비스 위치에 관한 주소 정보 - WSDL은 SML 메시지 시스템에 꼭 필요한 것은 아니지만 SOAP ㅁ시지를 기술하기 위한 빌트인 익스텐션(built-in extensions)을 포함하고 있다. |
SOAP |
- Simple Object Access Protocol - 웹 서비스에서 사용되는 보편적이며 확장성 있는 메시지 프로토콜 (데이터 통신 프로토콜) - 분산 컴퓨터 환경에서 정보를 교환하기 xml 기반 프로토콜 - 객체의 수요자와 제공자 사이의 메시징 프로토콜을 정의 - 플랫폼에 독집적인 단순하 XML 기반 포맷 - SOAP 메시지는 웹의 기본 프로토콜인 HTTP를 통하여 전송되는데, 웹 서버의 default port인 80 포트를 이용하여 모든 서버에 접근이 가능 |
V. 웹 서비스의 주요 구성요소 구현 예제
가. SOAP 구성 및 코드 샘플
- XML을 근간으로 헤더와 바디를 조합하는 디자인 패턴으로 설계
- 헤더는 선택사항으로 반복이나 보안 및 트랜잭션을 정보로 하는 메타 정보를 정의
- 바디부분은 주요한 정보 저장 영역
<SOAP-ENV :Envelope xmlns : SOAP-ENV=’http://schemas.xmlsoap.org/soap/envelope/’> <SOAP-ENV:Body> <getProductDetails xmlns=’http://warehouse.exaple.com/ws’> <productid>827635</productld> </getproductDetails> </SOAP-ENV:Body> </SOAP-ENV:Envelope> |
나. WSDL 문서구조
- 웹 서비스 기술언어 또는 기술된 정의 파일의 총칭으로 XML로 기술
- 서비스 제공 장소, 서비스 메시지 포맷, 프로토콜 등이 기술
<?xml version = ‘1.0’ encoding=’UTF-8’?> <!--네임스페이스 정의-- > <!-- 타입 추상화 --> <types> <xs:element name=’request’> <!--내용 생략 --> </xs:complesType> <xs:element name=’response’> </xs:element> </xs:chema> </types> <!-- 인터페이스 추상화 부분 --> <interface name=’RESTfullnterface’> <fault name=’ClinetError’ element=’tns:response”/><!--에러 정의--> <fault name=’SeverError’ element=’tns/response’/> <fault name=’Redirection’ element=’tns:response’/> <operation name=’Get’ pattern=’http://www.w3.org/ns/wsdl/in-out’> <!--서비스 정의--> <input messageLabel=’GetMsg’ element=’tns:request’/> <output messageLabel=’SuccessfulMsg’ element=’tns:response’/> </operation> <interface> <!--SOAP 바인딩 영역 정의 --> <binding name=’RESTfullnterfaceSoapBinding’ interface=’tns:RESTfullnterface’ type =’http://www.w3.org/ns/wsdl/soap’ wsoap:protocol=’http://www.w3.org/2003/05/soap/bindings/HTTP/’ wsoap:mepDefault=’http://www.w3.org/2003/05/soap/mep/request-response’> <operation ref=’tns:Get’ /> <operation ref=’tns:Post’ /> <operation ref=’tns:Put’ /> <operation ref=’tns:Delete’ /> </binding> </description> |
VI. SOAP 기반 웹 서비스와 RESTful 웹 서비스의 비교
|
SOAP 기반 웹서비스 |
RESTful 웹서비스 |
|
배경 및 현황 |
- 기업을 위한 비즈니스 응용에서부터 출발 - IBM, BEA(현재 IBM으로 통합), Oracle 등을 선두로 하는 웹서버 벤더에서 주창 - SOA의 서비스는 대부분이 비즈니스 컴포넌트로서의 의미를 가짐 |
- QEB 2.0은 서비스 애플리케이션에서부터 시작 - 구글, 아마존, 야후와 같은 인터넷 서비스 기업에 의해서 주창 - 앱이나 뉴스, 가젯 등과 같이 UI 성격을 갖는 서비스가 대다수임 |
|
특징 |
- The Machine-Readable Web : 사람보다는 기계가 해석할 수 있는 웹 - Stateful : 오퍼레이션 중 서비스 상태가 일관되게 유지, 관리되어야 함 - 엄격한 문법 검사, 서비스 계약에 충실 - 웹 서버 등 웹서비스 개발 환경이 지원되어야 함 |
- The Human-Readable Web : 사람이 해석할 수 있는 웹 - Stateless : 오퍼레이션 중 서비스/리소스의 상태를 관리하지 않음(HTTP의 기본 메커니즘), 필요한 경우에 직접 관리해야 함 - 기본 XML만으로 서비스 개방 가능 - 별도의 개발 환경 지원이 필요 없음 |
|
적 용 기 술 |
전달 매커니즘 |
Remote Procedure Call |
Publish/Syndicate Pattern |
전달 프로토콜 |
SOAP/HTTP,SMTP |
HTTP |
|
서비스 명세 |
WSDL |
WADL, SML, JSON, Hrest(시맨틱 REST) 등 |
|
서비스 레지스트리 |
UDDI |
없음 |
|
필요 스벅 |
W3C의 WS-*스택(WS-addressing, WS-security 등) |
없음 |
|
주요 적용 분야 |
트랜잭션 프로세싱 |
데이터와 UI(User Interface) 프로세싱 |
|
현재의 문제점 |
어려운 사용법, 무거운 프로토콜 |
표준의 부재, 관리가 어려움 |