[본문스크랩] WSDL과 WCF JAVA / 프로그래밍

출처 정보문화사 : IT 서적의 명가 | 길라잡이
원문 http://blog.naver.com/infopub/100052711725
WSDL은 웹 서비스 인터페이스에 대한 자기 기술(Self Description)이다. 서버에서 제공되는 서비스를 XML 포맷으로 서비스를 표현하여 새로운 웹 서비스를 공개할 때 각 서비스에 대한 다양한 내용을 정의하는 파일이다. WSDL은 서버와 클라리언트 상호 요구 사항을 기록하여 올바른 포맷으로 기술된 SOAP 메시지를 처리하여 서비스가 이루어지게 한다.

[그림 1]과 같이 클라이언트는 자신이 원하는 웹 서비스를 UDDI 레지스트리를 통하여 검색한다. UDDI 레지스트리는 개발자가 원하는 웹 서비스를 제공하는 웹 서비스 벤더로의 연결점만 클라이언트에게 전달한다. 벤더에 대한 자세한 내용은 UDDI 레지스트리에 포함되어 있지 않다.


[그림 1] 웹 서비스 구조

클라이언트는 그 연결점을 통해 DISCO 파일을 검색하여 웹 서비스가 사용 가능한지를 파악한다. 그 다음 WSDL 파일을 이용하여 서비스의 세부적인 내용을 파악하고 웹 서비스를 이용한다.

  • UDDI : 웹 서비스를 등록하고 찾기 위한 산업 표준으로  사용자는 UDDI를 통해 자신이 원하는 웹 서비스를 검색하고, 서비스에 대한 파라미터나 리턴 타입 등의 자세한 내용을 알아낸 다음, SOAP 메시지의 형태로 HTTP 프로토콜을 사용하여 통신한다. 
  • WSDL : 서버에서 제공되는 웹 서비스에 대한 자세한 내용을 기술하는 XML 문서다. 웹 서비스에서 제공하는 작업(Operation)에 대한 파라미터, 리턴 타입 등에 대한 자세한 내용을 기술하고 있다. 
  • SOAP : 메시지의 포맷, 전송 등과 관련한 내용을 정의하며, XML과 HTTP를 통해 구현한다. 
  • XML/HTTP : 방화벽이나 서로 다른 플랫폼간의 제약 사항을 극복하기 위해 XML을 이용해 데이터 포맷을 기술하고, HTTP를 통해 데이터를 전달한다.

이러한 XML 웹 서비스는 기존의 컴포넌트와 다르게 인터넷 표준 프로토콜을 이용하여 통신하기 때문에 진정한 컴포넌트 기술을 구현한 것이라 볼 수 있고, 다른 곳에서 만들어진 서비스를 손쉽게 자신의 서비스나 응용 프로그램에 추가할 수 있다.

차세대 웹 서비스로 Microsoft가 제시하는 WCF의 경우에도 기존 웹 서비스 방식의 각 구성 요소 대신에 ABC 컴포넌트를 통해 서비스와 통신한다. 웹 서비스의 컴포넌트와 ABC 컴포넌트가 전혀 별개의 컴포넌트를 의미하는 것은 아니다.

XML 웹 서비스는 서비스의 내용을 WSDL을 통해 바로 기술하고, WCF는 ABC를 통해 정의된 내용을 바탕으로 WSDL 문서를 자동으로 생성해 낼 수 있다. 웹 서비스 기반의 통신을 위한 방법도 지원해 주지만, Windows 기반의 분산 환경에서 사용하는 통신도 ABC 컴포넌트로 가능하므로 WCF가 더 넓은 의미를 포함하고 있다.

WCF 서비스 모델WCF는 웹 서비스뿐만 아니라 분산 응용 프로그램을 구성하는 다양한 통신 방법을 단일화된 채널 구성 방법으로 데이터를 주고받는 모델을 제시하고 있다. [그림 2]는 WCF에서 서비스를 구성하고 사용하기 위해 필요한 모든 컴포넌트를 보여주는 WCF의 서비스 모델이다.


[그림 2] WCF 서비스 모델

WCF 서비스를 구성하는 컴포넌트 중에 주소, 바인딩 그리고 계약에 해당하는 끝점은 서비스와 서비스를 이용하는 클라이언트간 최소한으로 갖추어야 하는 컴포넌트의 묶음이다. 나머지 컴포넌트는 끝점이 구성된 후, 관련 서비스가 올바르게 실행되기 위해 필요한 환경을 구성한다. 
닷넷 3.5 차세대 개발 프로그래밍
손정민, 이충일, 정병찬
정보문화사 2008.02.28

댓글

이 블로그의 인기 게시물

ORACLE DUMP (버전이 다를때-11G에서 10G로 oracle data pump)