웹서비스

개념
- 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) 프로세싱

현재의 문제점

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

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

 

댓글