출처 : http://itroom.net/contentChannel/article.php?aca_idx=1&scol_serial=200210261348150000
--------------------

웹 서비스와 관련된 질문 중에서 가장 많이 언급되는 10가지 질문
본 기사는 웹 서비스와 관련된 질문 중에서 가장 많이 언급되는 10가지 질문에 대한 해답이다. 따라서 독자들은 웹 서비스 개요뿐만 아니라 좀더 세부적인 내용도 충분히 참고할 수 있을 것이다.
 
웹 서 비스는 분산시스템을 제작이 중요한 진화적 과정을 거치고 있다는 것을 의미한다. 그러나 사람들은 웹 서비스가 정확히 무엇을 말하 는 것이며 웹 서비스 프로토콜 스택(stack)이 무엇인지, W3C가 지원하고 있는 웹 서비스 표준이 존재하는지에 대해서는 잘 알 고 있지 못하는 것 같다.

본 기사는 웹 서비스와 관련된 질문 중에서 가장 많이 언급되는 10가지 질문에 대한 해답이다. 따라서 독자들은 웹 서비스 개요뿐만 아니라 좀더 세부적인 내용도 충분히 참고할 수 있을 것이다.

1. 웹 서비스란 무엇인가?

웹 서비스 정의에 대해 많은 논란이 있었다. 그렇지만 사람들의 공통적인 의견을 추린다면 웹 서비스란 인터넷을 통해 표준화된 XML 메시지 시스템을 사용하는 소프트웨어의 작은 조각이라고 말할 수 있다.

XML 은 웹 서비스의 모든 통신을 인코딩 하는데 사용된다. 예를 들어 클라이언트는 XML 메시지를 통해 웹 서비스를 시작하며 요청에 대 응하는 XML 응답을 기다린다. 결국 XML을 사용하여 모든 통신이 이루어지기 때문에 웹 서비스는 특정한 OS나 언어에 구애받 지 않는다. 이는 곧 자바와 펄(Perl)이 서로 통신할 수 있고 윈도우 애플리케이션과 유닉스 애플리케이션도 통신할 수 있다는 뜻 이다.

이러한 기본적인 정의 이외에도 웹 서비스는 아래와 같은 두 가지 추가적인 속성을 가지고 있다.
첫 째, 웹 서비스는 XML로 정의된 공개 인터페이스를 가진다. 인터페이스는 클라이언트가 사용할 수 있는 메소드를 정의하고 메소드 에 대한 용법을 설명한다. 현재 인터페이스 정의는 WSDL(Web Service Description Language)를 통해 서 이루어진다. (FAQ 7번 참고)
둘째, 웹 서비스를 작성한다면 그것을 발행(Publish)하기 위한 단순한 메커니즘 이 필요하다. 마찬가지로 인터페이스를 공개하거나 서비스를 사용하고자 하는 곳에 제공하기 위한 메커니즘도 필요하다. 현재 유력 한 웹 서비스 디렉토리 서비스 는 UDDI(Universal Description, Discovery, and Integration)을 통해 이루어지고 있 다. (FAQ 8번 참고)
웹 서비스는 현재 뉴스 배급회사와 같은 거대한 시스템을 비롯하여 날씨, 주식 정보, 배송추적 과 같은 세부적인 시스템에까지 운영되고 있다. 현재 사용가능한 웹 서비스의 범위를 보고싶다면 웹 서비스 디렉토리인 XMethods 를 방문해보자.

2. 웹 서비스에서 새로워진 점은? 

사람들은 지금도 RPC(Remote Procedure Calls)을 사용하고 있다. 그리고 과거에도 HTTP를 통해 RPC를 전달하는 방법을 모르고 있었던 것은 아니다.

그렇다면 과연 무엇으로 인해 웹 서비스가 과거 기술과는 달리 새로워졌다는 것인가? 정답은 XML이다.

XML은 웹 서비스의 핵심이며 RPC, 웹 서비스, 웹 서비스 디렉토리를 기술하는 공통 언어를 제공한다.

XML 이전에도 다른 애플리케이션 간에 데이터를 공유할 수 있었지만 XML은 이것을 좀더 쉽게 할 수 있게 해주었다. 같은 맥락으 로 웹 서비스 없이도 코드와 서비스를 공유할 수 있었지만 XML로 인해 같은 기능을 좀더 수월하게 수행할 수가 있게 되었다.

XML으로 모든 것을 표준화시킴으로써 서로 다른 애플리케이션은 좀더 편하게 상대방과 통신할 수 있고 이로 인해 소프트웨어에 대한 관심이 증가되고 있다.

3. 웹 서비스에 대한 글은 읽었지만 실제로 웹 서비스가 동작되는 것은 본적은 없다. 웹 서비스가 실행되는 것을 보여줄 수 있는가? 

웹 서 비스에 좀더 관심이 있다면 IBM Alphaworks 사이트에 있는 IBM 웹서비스 브라우저를 실행해 보아라. 이 브라우저 는 웹 서비스 데모를 제공하고 있다. 브라우저 화면 뒤에서는 SOAP, WSDL, UDDI 기술이 웹 서비스 검색과 실행을 위 한 단순한 plug-and-play 인터페이스를 제공하기 위해 작동되고 있다. 예를 들어 주식 시세 서비스, 교통 정보 서비 스, 날씨 정보 서비스를 발견했다면 각각의 서비스는 독립적으로 작동되기 때문에 건물 벽돌처럼 쌓을 수 있다. 그러므로 여러 개 로 된 서비스 결과를 마치 my.yahoo, my.excite처럼 하나의 페이지에 담을 수 있다.
--------------------------------------------------------------------------------

참고 기사: 아마존의 새로운 웹 서비스 사용하기

위에서 예로든 IBM Alphaworks 사이트 말고도 한빛미디어 네트워크 페이지에 등록된「아마존의 새로운 웹 서비스 사용하기」에서 웹 서비스에 대한 더 자세한 내용을 참고할 수 있습니다.
--------------------------------------------------------------------------------
4. 웹 서비스 프로토콜 스택(stack)은 무엇인가? 

웹 서비스 프로토콜 스택은 웹 서비스 정의, 발견, 실행을 위해 사용되는 프로토콜의 집합이다. 핵심 프로토콜 스택은 다음과 같이 4개의 층(layer)으로 이루어져 있다.
서비스 전송 계층: 애플리케이션 간 메시지 전송의 책임이 있다. 현재 HTTP, SMTP, FTP와 BEEP(Blocks Extensible Exchange Protocol) 같은 새로운 프로토콜을 포함한다.
XML 메시지 계층: 종단(end)에서 메시지가 해석되기 위해 공통된 XML 포맷으로 메시지를 인코딩 해야 하는 책임이 있다.
서비스 기술(description) 계층: 웹 서비스를 설명하기 위해 공개 인터페이스를 기술해야 하는 책임이 있다. 현재 WSDL이 사용된다.
서비스 발견(discovery) 계층: 공통 레지스트리로 서비스를 집중화시키거나, 발행(publish)/검색(find) 기능을 제공해야 하는 책임이 있다. 현재 UDDI가 사용된다.
웹 서 비스의 본질을 이루고 있는 XML-RPC, SOAP, WSDL, UDDI 이외에도 웹 서비스 프로토콜 스택 은 WSFL (Web Services Flow Language), SOAP- DSIG (SOAP Security Extensions: Digital Signature), USML (UDDI Search Markup Language) 과 같은 새로운 프로토콜을 포함하고 있다. 이러한 프로토콜을 자세히 알려면 오라일리 on XML.com에 있 는 Pavel Kulchenko의 기사 「Web Services Acronyms, Demystified」를 참고하기 바란다.

다행하게도 웹 서비스를 구현하기 위해서 이러한 전체 프로토콜 스택을 이해 해야 할 필요는 없다. HTTP에 대해서 알고 있다면 XML 메시지 층위에서 웹 서비스를 실행해 볼 수 있기 때문이다.

--------------------------------------------------------------------------------
참고 도서
Web Services Essentials
Ethan Cerami
--------------------------------------------------------------------------------

5. XML-RPC는 무엇인가?

XML-RPC는 RPC를 수행하기 위해 XML 메시지를 이용하는 프로토콜이다. 요청은 XML로 인코딩 되며 HTTP POST 메소드를 통해 전송된다. XML 응답은 HTTP 응답 메시지 안에 포함되어 있다.

좀더 보기 쉽게 표현한다면 "XML-RPC = HTTP + XML + RPC"라고 할 수 있다.

XML-RPC는 플랫폼 독립적이기 때문에 다양한 애플리케이션과 통신 할 수 있다. 예를 들어 자바 클라이언트는 XML-RPC를 통해 펄 서버와 대화 할 수 있다.

XML-RPC를 좀더 빨리 이해할 수 있게 날씨 정보 서비스에 대한 XML-RPC 요청(request) 예를 들어보겠다. (HTTP 헤더는 생략)

   weather.getWeather
 
     
10016
   
요청은 단순한  요소로 이루어져 있다. 이것은 메소드 이름(getWeather)과 메소드 파라미터(zip code)를 가지고 있다. 날씨 정보 서비스에 대한 XML-RPC 응답(response)은 다음과 같다.
     

         65

응답은 리턴 값(현재 온도)을 포함하고 있는 하나의  요소로 구성되어 있다. 이 경우에 리턴 값은 정수 값이다.

다양한 방법으로 XML-RPC는 SOAP보다 단순해 질 수 있기 때문에 웹 서비스를 가장 쉽게 시작할 수 있는 방법이다.

공 식적인 XML-RPC 스펙은 XML-RPC.com에서 참고할 수 있다. 위 사이트에서는 펄, 파이썬, 자바, 루비(Ruby)로 이 루어진 XML-RPC를 시험해 볼 수 있다. 완전한 실행 목록을 보려면 XML-RPC 홈페이지를 방문해 볼 것을 권장한다.

6. SOAP은 무엇인가? 

SOAP 은 컴퓨터 사이에서 정보를 교환하기 위한 XML 기반 프로토콜이다. 비록 SOAP이 다양한 메시지 시스템에서 사용될 수 있고, 다 양한 전송 프로토콜 위에서 전달될 수 있지만, 중요한 것은 HTTP를 통해 RPC가 가능하다는 것이다. XML-RPC처럼 SOAP 도 플랫폼 독립적이기 때문에 다양한 애플리케이션의 상호통신이 가능하다.

이해를 돕기 위해서 날씨 정보 서비스 요청에 대한 SOAP 메시지 예를 살펴보도록 하자. (HTTP 헤더는 생략)


   xmlns:SOAP-ENV="http://www.w3.org/2001/09/soap-envelope"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   

     
         xmlns:ns1="urn:examples:weatherservice"
         SOAP-ENV:encodingStyle=" http://www.w3.org/2001/09/soap-encoding
         
10016
 



보 다시피 이 요청은 XML-RPC보다 다소 복잡하고 XML 네임스페이스와 XML 스키마를 사용하였다. XML-RPC와 비슷하게 요청 의 바디부분은 메소드 이름(getWeather)과 파라미터 목록(zipcode)을 가지고 있다.  
   
Programming Web Services with SOAP

날씨 정보 서비스 SOAP 응답은 다음과 같다.

   xmlns:SOAP-ENV="http://www.w3.org/2001/09/soap-envelope"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   

     
         xmlns:ns1="urn:examples:weatherservice"
         SOAP-ENV:encodingStyle="http://www.w3.org/2001/09/soap-encoding">
         
65



응답은 단순한 정수 리턴 값(현재 온도)을 나타내고 있다.

W3C 는 SOAP 표준 제정을 진행하고 있다. 최근 개발 초안은 SOAP 1.2 이며 두 부분으로 나뉘어 졌다. Part 1 은 SOAP 메시지 프레임워크와 엔빌로프(envelop) 스펙을 기술하고 Part 2는 SOAP 인코딩 법칙과 SOAP-RPC 규 약, HTTP 바인딩을 기술하고 있다.

7. WSDL은 무엇인가? 

WSDL(Web Services Description Language) 은 현재 웹 서비스 프로토콜 스택 층 위에서 서비스 기술(description)층을 나타내고 있다. 간단히 말해 WSDL란 웹 서 비스의 공개 인터페이스를 설명하기 위한 XML 문법이다. 공개 인터페이스는 다음과 같은 것들을 포함한다.
- 공개적으로 사용할 수 있는 기능들의 정보
- XML 메시지를 위한 데이터 타입 정보
- 사용된 전송 프로토콜에 관한 바인딩 정보
- 특정한 서비스 위치에 관한 주소 정보
WSDL은 XML 메시지 시스템에 꼭 필요한 것은 아니지만 SOAP 메시지를 기술하기 위한 빌드인 익스텐션(built-in extensions)을 포함하고 있다.

다음은 WSDL 예제이다. 이것은 이전 SOAP 예제에서 사용된 날씨 정보 서비스에 대한 공개 인터페이스를 기술하고 있다. 이 예제를 이해하려면 많은 것을 알아야 하지만 일단은 두 가지만 생각해보자.
첫째,  요소는 컴퓨터사이에서 전송되는 각각의 XML 메시지를 설명한다. 이 경우에는 getWeatherRequest, getWeatherResponse를 가지고 있다. 둘째,  요소는 SOAP과 특정 URL을 통해서 사용 가능한 서비스를 설명하고 있다.


   targetNamespace="http://www.ecerami.com/wsdl/WeatherService.wsdl"
   xmlns="http://schemas.xmlsoap.org/wsdl/"
   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
   xmlns:tns="http://www.ecerami.com/wsdl/WeatherService.wsdl"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   

     
         transport="http://schemas.xmlsoap.org/soap/http"/>
         
         

           
               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
               namespace="urn:examples:weatherservice"
               use="encoded"/>
         
           

               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
               namespace="urn:examples:weatherservice"
               use="encoded"/>
   
      WSDL File for Weather Service
     

         
            location="http://localhost:8080/soap/servlet/rpcrouter"/>
 
WSDL 을 사용해서 클라이언트는 웹 서비스의 위치를 지정할 수 있고 공개적으로 사용 가능한 기능들을 불러 낼 수도 있다. WSDL을 감지 하는 유틸리티를 통해 모든 프로세스는 자동적으로 수행되며 새로운 서비스는 부가적인 작업 없이 쉽게 애플리케이션에 통합 될 수 있 다. 예를 들자면 Mind Electic사의 GLUE 플랫폼을 참고하기 바란다.

WSDL은 W3C에 제출되었지만 현재까지 공식적인 위치를 가지고 있지 않다. 최근 초안인 W3C 페이지를 참고하기 바란다.

8. UDDI는 무엇인가? 

UDDI(Universal Description, Discovery, and Integration)는 웹 서비스 프로토콜 스택에서 서비스 발견 계층을 나타낸다.

UDDI는 원래 마이크로소프트(Microsoft), IBM, 아리바(Ariba)에 의해서 만들어 졌고, 웹 서비스와 비즈니스를 발행(publish)/검색(Find)하기 위한 기술적인 스펙을 나타낸다.

UDDI는 다음과 같이 두 부분으로 구성되어 있다.
첫 째, UDDI는 비즈니스와 웹 서비스에 대한 분산 디렉토리를 만들기 위한 기술적인 스펙이다. 데이터는 특정한 XML 포맷으로 저장 되고, UDDI 스펙은 존재하는 데이터를 검색하고 새로운 데이터를 발행하기 위한 세부적인 API를 포함하고 있다.
둘 째, UBR(UDDI Business Registry)는 UDDI 스펙에 대한 완전한 실행 방법이다. 2001년 5월 마이크로소프 트와 IBM에 의해서 시작된 UDDI 레지스트리는 누구나 UDDI 데이터를 검색해 볼 수 있고 기업은 그들의 서비스를 등록할 수 도 있다. 그리고 UDDI의 데이터의 범주를 크게 나누면 다음과 같이 세 가지 카테고리로 나뉜다.








White 페이지: 회사에 대한 일반적인 정보를 포함하고 있다. 예를 들면 비즈니스 이름, 비즈니스 세부내용, 비즈니스 주소가 있다.








Yellow 페이지: 회사나 서비스가 제공하는 분류된 데이터를 포함하고 있다. 예를 들면 표준 분류법을 토대로 산업별, 제품별, 지리적 코드별로 나뉜 데이터를 가지고 있다.








Green 페 이지: 웹 서비스에 대한 기술적인 정보를 포함하고 있다. 일반적으로 외부 스펙을 가리키거나 웹 서비스 호출에 대한 주소를 가지 고 있다. 마이크포소프트 UDDI 사이트, IBM UDDI 사이트를 참고하고 완전한 UDDI 스펙은 uddi.org에서 사용 할 수 있다.  
















9. 웹서비스를 어떻게 시작할 것인가? 

웹 서 비스를 시작하는 가장 쉬운 방법은 XML-RPC를 이용하는 것이다. XML-RPC 스펙이나 필자 의 책 『Web Service Essentials』나 사이먼 세인트 라우런트(Simon St. Laurent), 조 존스턴 (Joe Johnston), 에드 덤빌(Edd Dumbill)이 함 께 쓴 『Programming Web Services with XML-RPC』를 참고하자.

일단 XML-RPC의 기 초를 익히고 난 후 SOAP, WSDL, UDDI를 차근차근 배우면 된다. 이러한 주제들은 모 두 『Web Service Essentials』에서 다루고 있다. SOAP에 대해 더 자세한 내용을 알고 싶다면 더그 디드웰 (Doug Tidwell), 제임스 스넬(James Snell), 파벨 쿨첸코(Pavel Kulchenko) 가 쓴 『Programming Web Services with SOAP』을 참고하면 된다.

10. W3C는 웹 서비스 표준을 지원하고 있는가? 

W3C(World Wide Web Consortium) 는 활발하게 웹 서비스 프로토콜 표준화를 추진하고 있다. 2000년 11월 W3C는 XML Protocol Activity를 설립 했다. 이 그룹의 목표는 SOAP의 정식 표준을 제정하는 것이다. SOAP 1.2 초안은 현재 검토 중이며 공식적인 W3C의 권 고 안을 통해 진행중이다.

2002년 2월 25일 W3C는 Web Service Activity 조직 편성을 발표하 였다. 이 새로운 조직은 두 개의 새로운 작업 그룹뿐만 아니라 현재의 SOAP 작업그룹도 포함하고 있다. 첫 번째 그룹은 WSDL 에 관한 웹 서비스 기술 작업과 관련된 것이며, 두 번째 그룹은 웹 서비스 프로토콜 프레임워크에 대한 웹 서비스 구조를 만드는 활 동이다.

W3C의 Web Service Activity에 대한 더 자세한 정보를 얻고 싶다면 오라일리 XML.com 을 들어가서 에드 덤빌(Edd Dumbill)의 기사 「Welcome Web Services Activity」를 참고하기 바란 다.

'UP! > Web Service' 카테고리의 다른 글

그리드 서비스를 위한 Repository 시스템 개발  (0) 2008.08.21
분산객체와 웹 서비스의 차이점  (0) 2008.08.21
분산객체시스템 종류  (0) 2008.08.21
XML,SOAP,UDDI,WSDL  (0) 2008.08.21
COBRA  (0) 2008.08.21
Posted by 으랏차
,