#WSDL(Web Service Description Language)란?
인터넷 표준기구 월드와이드웹컨소시엄(W3C)이 제정한 표준 중 하나로 웹서비스를 정의하기 위한 확장성표기언어(XML) 스키마, 즉 웹서비스를 사용하는 방법에 대해 기술한 표준방식을 말한다.
사용자는 등록된 웹서비스들 중 검색을 통해 원하는 웹서비스를 이용해야 하는데 해당 서비스가 무슨 내용을 서비스해주는지 알려주는 것이 바로 WSDL 기술이다. 개발된 웹서비스들은 웹서비스들을 자동으로 검색해주는 UDDI(Universal Description Discovery and Integration) 기술을 통해 등록되며 등록된 이들 웹서비스의 서비스 내용을 알게 해주는 것이 WSDL 기술이다.
WSDL은 로케이션, 포트 지정 및 웹서비스의 입출력을 관리하는 역할을 한다. 즉 웹서비스에 대한 리퀘스트를 기술하기 위한 언어로 IBM·마이크로소프트 등이 주도하고 있다.
2002년 12월 소프트웨어 표준단체인 객체경영그룹(OMG)에 의해 SOAP(Simple Object Access Protocol)와 함께 웹서비스 표준의 하나로 선정됐다.
WSDL은 마이크로소프트의 SOAP와 IBM의 NASSL로부터 파생되었지만, 이제 UDDI 등록처에 비즈니스 서비스를 명시하는수단으로써, NASSL과 SOAP 둘 모두를 대체할 수 있다.
개인적인생각으론 언어가 다른 클라이언트들이라고 하여도,기술을 제공받고 제공해 주는 것에 아무런제약이 없도록
만든 문서를 WSDL이라고 생각함.
#구조분석
*xml명시
-무언가 모르는 주소가 많이 등록되어있는데 이것은 네임스페이스를 선언하는 것이다.
위 코드에서 WSDL에서 고유하게 구별해야 할 엔리먼트가 필요 하기 때문에 네임스페이스들을 xmlns 로 참조 하고 있다.
definitions xmlns:soap-->네임스페이스 선언,
*-네임스페이스:xml에서 네임스페이스는 중복하는 태그가 생길 수 있는 문재를 해결하기 위해서
등장한 개념으로 예를 들어서 Name이라는 엘리먼트 밑에 다시 Name이라는 엘리먼트가 생긴다면
XML파서에서 Name이라는 엘리먼트를 검색할 때 그 값이 모호해 지게 되기 때문에 고유한 식별자를 정희 해 놓아야 한다는 것이다.xml 문서를 접하는 사람을 위한 내용이 아닌 xml문서를 처리하기 위한
응용 프로그램을 위한 용도이다.
*type
-<type>는 WSDL 문서의 나머지 부분들이 참조하고 있는 데이터 타입을 기술하게 된다. WSDL명세서는 이 절에 무엇이 포함될지에 관하여 특별히 지정하지 않고 있고 반드시 필요한 부분이 아니다.
-서버와 클라이언트가 주고 받는 복합 데이터 타입을 기술
*message(what무엇을 제공할것인가/받을것인가 )
-<message>엘리먼트는 메시지를 정의하고 있는 부분이다. 즉 메서드를 노출하고 있는 정도로이해.
-메시지는 인/아웃값
-서비스 호출 및 응답시 주고 받는 인자와 리턴값을 기술
*portType(what무엇을 제공할것인가/받을것인가 )
-<portType>는 메시지의 동작에 대해서 정의. 지금 helloWorld메시지는 inout과 output으로 정의 되어 있지만 만약 단 방향으로 보내는 메시지라면 out은 정의되지 않았을 것이다.
-서버에 선언된 인퍼페이스 및 인터페이스의 메소드를 기술
-오퍼레이션은 작동되는 메소드값 / 데이터가 전달되는 방법을 정의, 메시지를 받아 처리하는 메소드, 메시지 큐나 비즈니스
프로세스와 같은 메시지에 대한 오퍼레이션의 추상화. 전송방식은 4가지로 나뉜다.
*4가지 메시지 전송유형
*binding(how/어떻게주고받을 것인가?)
-<binding>은 앞에서 작성한 추상적인 정보들을 구체적으로 작성하는 부분으로 예를 들면
soap메시지에서 사용할 전송 프로토콜은 어떻게 지정할 것인지 혹은 인코딩은 어떻게 할 것인지
등등 모두 구체적인 정보가 여기에 기술된다.
-바인딩은 물리적인것을 실제 주소포트번호에 연결해 주는것.
-데이터를 오퍼레이션에 보내는 데 사용되는 프로토콜과 전송을 기술.
보통 웹서비스 인식 도구를 사용하여 xml 스키마 정보로 변환하고 그럼다음 WSDL 파일로 합쳐진다.
*service(where 위치)
-<service>는 서비스가 노출시키는 메시지방식을 정의하고 각각의 메시지를 사용하기 위한
기본 url을 정의한다.
-웹서비스가 제공되는 url정보를 기술.
-로케이션은 url즉 ip가 있는 실제주소.
******types,message, portType 웹서비스의 메소드와 관련된 구체적인 정보를 기술
serviec:특정 바인딩을 어떠한 포트(주소)로 연결할 것인가?
port:웹 서비스로 접근 가능한 주소 (end-point)
binding:사용될 전송 프로토콜(soap),요청방식(RPC .Document)
portType:공개된 (호출될수 있는) 메소드집합
message:메소드에서 사용할 파라미터
Types:data Type(inter,float,string)...정수,실수,문자열..
**개인적인생각**
-자바나 c 등 각종 언어를 xml형식으로 읽을 수 있도록 soap,ibm사에서 통합한 언어라고 생각됨..
-메시지는 인/아웃값
-오퍼레이션은 작동되는 메소드값
-바인딩은 물리적인것을 실제 주소포트번호에 연결해 주는것.
'course > web' 카테고리의 다른 글
[자바스크립트] 배열정렬 및 join (0) | 2016.05.30 |
---|---|
[펌] 초보 Java 웹 개발자들을 위한 학습 로드맵 (0) | 2012.06.08 |
jstl 책에 있는데로 했는데..오류 (0) | 2011.02.08 |