아키텍쳐2012. 10. 17. 15:20

WSDL 이란?

- Web Service가 제공하는 서비스에 대한 정보를 기술하기 위한 XML 기반의 마크업 언어

- 특정 비즈니스가 제공하는 서비스를 설명. 개인이나 다른 회사들이 그러한 서비스에 전자적으로 접근할 수 있는 방법을 제공하기 위해 사용되는 XML 기반의 언어. WSDL은 마이크로소프트, IBM 및 Ariba 등에 의해 주도된 UDDL의 기반의 등록처이며, WSDL은 그렇게 하기 위한 언어

  WSDL은ㅇ 마이크로소프트의 SOAP와 IBM의 NASSL로부터 파생되었지만, 이제 UDDI 등록처에 비즈니스 서비스를 명시하는 수단으로써, NASSL과 SOAP 둘 모두를 대처할 수 있다.


WSDL 내용

- 웹 서비스의 name 과 URL 정보

- SOAP 메시지의 인코딩 방법

- SOAP 메시지 전송을 위한 프로토콜 정보

- 웹 서비스를 이용하는데 필요한 인터페이스 정보


WSDL 역할

- 웹 서비스를 기술

- WSDL은 공표된 웹 서비스가 실제 어디에 위치하고 있고, 그 웹 서비스를 이용하기 위한 Biding 정보를 담고 있는 문서

- WSDL 정보를 해석하면 비로서 SOAP를 사용해 해당 서비스에 필요한 객체를 실행할 수 있음.

- 대부분의 경우 인터넷이나 이메일을 통해서 이러한 정보를 주고 받게 될 것임으로 HTTP나 SMTP가 가장 많이 사용하는 전송프로토콜이 될 것임.

- WSDL은 XML로 표기되며 해당 웹 서비스의 문법적인 규격에 대한 정보만 있을 뿐, 그 웹 서비스가 갖는 의미는 표현되지 않음.


WSDL 구조

- 기본적으로 서비스는 하나 이상의 port를 통해 접근할 수 있으며 port는 하나의 prtyType에 연관되어 묶여 있다. portType은 서비스를 추상적으로 정의해둔 것으로 인터페이스의 개념과 같다. portType 하나는 여러개의 binding을 가질 수 있으므로 HTTP, JMS, SMTP 등 여러 프로토콜로 접근하는 방법을 기술할 수 있음.

- 서비스를 추상적으로 정의하기 위한 항목 : <types>, <message>, <portType>

- 실제 그 서비스가 수행되기 위한 구체적인 정보를 기술하는 항목 : <binding>, <service>


<types>

- 메시지나 프로시저 컨텐츠에 대한 저수준 데이터 타입을 결정하도록 함.

- 네임스페이스의 확장성을 이용해서 다른 메커니즘을 이용할 수도 있지만, 대부분의 경우에는 XML 스키마를 사용하는 것이 일반적임.

<message>

- 각각의 메시지 전송과 관련한 데이터 포맷을 정의

<portType>

- 단일 논리 오퍼레이션을 구성하도록 메시지를 그룹화, 예를 들어 앞의 예에서는 EndorsingDrinker 요청이 EndorsingEringker 응답을 유발하며, 문제가 발생하면 EndorsingDringkerFault 에러를 발생시키는데 이러한 일련의 과정을 하나의 WSDL 포트 타입으로 그룹화한 것.

- WSDL 문서는 이와 같이 구체적으로 물리적인 부분(데이터 타입 정의)에서 추상적이고 논리적인 부분(메시지와 포트타입)에 이르기 까지 모두 포괄하며 이를 사이에 참조할 수 있음.

- 의미적으로 볼 때 일련의 오퍼레이션들이 속해 있는 인터페이스의 역할을 하므로 현재 개발중인 WSDL 1.2버전에서는 엘리먼트 이름이 <interface>로 변경될 예정

<binding>

- 논리적 모델과 물리적 모델 사이의 연결을 제공하는 것

- 연결할 때는 이미 정의한 추상적인 포트 타입을 SOAP를 어떻게 전송할 것인지 구체적으로 기술한 실제 포트에 연결시키면 됨.

- 요청방식이 단순히 문서를 전달하는 것인지 프로시져를 호출하는 것인지에 따라 document 타입과 RPC타입 등으로 선택 가능

- WSDL은 이 밖에도 HTTP와 MIME를 직접 이용하거나 다른 프로토콜을 이용해서 바인딩 할 수 있도록 허용

<soap:operation>

- <binding>내의 <operation>의 하위 엘리먼트로 포트 타입에 있는 각각의 메시지를 SOAP전송에 대한 정의에 매핑하는 역할

- SoapAction에 주어진 값은 메시지의 의도를 나타내기 위해 실제 메시지의 HTTP 헤더에서 이용해야 함.

- SOAP에 HTTP나 SMTP같은 프로토콜을 사용하면 지능형 프록시나 방화벽을 통과할 수 있기 때문에 편리하지만 그만큼 보안성에 있어서는 취약하다는 것을 고려해야 함.

<service>

- 통신에서 종단점의 물리적 위치를 정의

- 포트 타입과 바인딩을 이용해서 서비스에 대한 웹 주소 또는 URL를 지정함. SOAP 서버를 설정한 위치를 지정했으며, 이렇게 하는 것이 일반적인 방식임.



출처 - 유혹님의 블로그

 

'아키텍쳐' 카테고리의 다른 글

다층 구조(N-Tier)  (0) 2013.03.04
Posted by 건깡