웹 서비스 설명 언어

Web Services Description Language
웹 서비스 설명 언어
WSDL.svg
파일 이름 확장자
.wsdl
인터넷 미디어 유형
응용 프로그램/wsdl+xml
개발자월드 와이드 웹 컨소시엄
포함자XML
표준.2.0 권장 사항

Web Services Description Language(WSDL / w'z d'l/)XML 기반의 인터페이스 기술 언어이며 웹 서비스가 제공하는 기능을 기술하기 위해 사용됩니다.또한 웹 서비스의 특정 WSDL 설명(WSDL 파일이라고도 함)에도 사용됩니다.이 설명에서는 서비스를 호출하는 방법, 예상되는 파라미터 및 반환되는 데이터 구조에 대한 기계 판독 가능한 설명이 제공됩니다.따라서 그 목적은 프로그래밍 언어의 형식 서명과 거의 유사합니다.

WSDL의 최신 버전은 2007년에 W3C 권고가 된 WSDL 2.0입니다.약어의 의미는 버전 1.1에서 "Definition"을 의미하는 "D"에서 변경되었습니다.

묘사

WSDL 1.1 및 WSDL 2.0 문서에 정의되어 있는 개념의 표현.

WSDL은 서비스를 네트워크 엔드포인트 또는 포트의 집합으로 설명합니다.WSDL 사양에서는 이 목적을 위한 문서의 XML 형식을 제공합니다.포트 및 메시지의 추상적인 정의는 구체적인 사용 또는 인스턴스와 분리되어 있기 때문에 이러한 정의를 재사용할 수 있습니다.포트는 네트워크주소를 재사용 가능한 바인딩과 관련지어 정의되며 포트의 집합은 서비스를 정의합니다.메시지는 교환되는 데이터의 추상적인 설명이며 포트 유형은 지원되는 작업의 추상적인 모음입니다.특정 포트 유형에 대한 구체적인 프로토콜 및 데이터 형식 사양은 재사용 가능한 바인딩을 구성합니다. 여기서 작업 및 메시지는 구체적인 네트워크 프로토콜 및 메시지 형식으로 바인딩됩니다.이와 같이 WSDL은 웹 서비스에 대한 퍼블릭인터페이스를 나타냅니다.

WSDL은 SOAP 및 XML 스키마와 함께 인터넷을 통해 웹 서비스를 제공하기 위해 자주 사용됩니다.웹 서비스에 접속되어 있는 클라이언트프로그램은 WSDL 파일을 읽고 서버에서 사용할 수 있는 조작을 판별할 수 있습니다.사용되는 특수 데이터 유형은 XML 스키마 형식으로 WSDL 파일에 포함됩니다.다음으로 클라이언트는 SOAP을 사용하여 XML over HTTP 등의 WSDL 파일에 기재되어 있는 조작 중 하나를 실제로 호출할 수 있습니다.

이 사양의 현재 버전은 2.0입니다.버전 1.1은 W3C에서 승인되지 않았지만 버전 2.0은 W3C에서 [1]권장되는 버전입니다.WSDL 1.2는 WSDL 1.1과의 큰 차이 때문에 WSDL 2.0으로 이름이 변경되었습니다.WSDL 2.0 사양은 모든 HTTP 요구 방식(버전 1.1과 같이 GET 및 POST뿐만 아니라)에 대한 바인딩을 받아들이기 때문에 RESTful Web 서비스를 보다 효율적으로 지원할 수 있으며 [2][3]구현도 훨씬 간단합니다.그러나 WSDL 1.1 [needs update][citation needed]전용 툴을 제공하는 웹 서비스용 소프트웨어 개발 키트에서는 이 사양에 대한 지원이 여전히 부족합니다.예를 들어 BPEL(Business Process Execution Language) 버전 2.0은 WSDL 1.1만 지원합니다.

WSDL 1.1 용어 WSDL 2.0 용어 묘사
서비스 서비스 웹 기반 프로토콜에 노출된 시스템 기능 집합을 포함합니다.
항구 엔드포인트 웹 서비스에 대한 주소 또는 연결 지점을 정의합니다.통상, 단순한 HTTP URL 문자열로 표시됩니다.
바인딩 바인딩 인터페이스를 지정하고 SOAP 바인딩 스타일(RPC/Document) 및 전송(SOAP Protocol)을 정의합니다.바인딩 섹션에는 조작도 정의되어 있습니다.
포트 타입 인터페이스 웹 서비스, 수행할 수 있는 작업 및 작업을 수행하는 데 사용되는 메시지를 정의합니다.
작동 작동 SOAP 액션 및 메시지 부호화 방법을 정의합니다(예: "Literal").연산은 전통적인 프로그래밍 언어로 메서드 또는 함수 호출과 같습니다.
메세지 일반적으로 메시지는 조작에 대응합니다.메시지에는 조작 실행에 필요한 정보가 포함되어 있습니다.각 메시지는 하나 이상의 논리적 부분으로 구성됩니다.각 부품은 메시지 타이핑속성과 관련지어집니다.메시지 이름 속성은 모든 메시지에서 원하는 이름을 제공합니다.요소 이름 속성은 동봉된 메시지의 모든 부분 중에서 고유한 이름을 제공합니다.부품은 메시지의 논리적 내용에 대한 설명입니다.RPC 바인딩에서 바인딩은 부품에 대한 바인딩 고유 정보를 지정하기 위해 부품 이름을 참조할 수 있습니다.부품은 메시지 내의 파라미터를 나타낼 수 있습니다.바인딩은 부품의 실제 의미를 정의합니다.WSDL 2.0에서는 메시지가 삭제되었습니다.WSDL 2.0에서는 입력, 출력 및 장애 본문을 정의하기 위한 XML 스키마 타입이 단순하고 직접 참조됩니다.
종류들 종류들 데이터에 대해 설명합니다.XML Schema 언어(XSD라고도 함)가 이 목적으로 사용됩니다(인라인 또는 참조).

서브셋 WSDL

Subset WSDL(SWSDL)[4]은 원래 WSDL의 서브셋 조작을 가진 WSDL입니다.개발자는 SWSDL을 사용하여 서브셋서비스에 액세스하여 웹 서비스 코드의 서브셋을 처리할 수 있습니다.서브셋 WSDL은 웹 서비스 테스트 및 탑다운 개발에 사용할 수 있습니다.웹 서비스의 슬라이스는 서브셋 WSDL을 사용하여 서브셋서비스에 액세스 할 수 있습니다.서브셋 서비스는 SWSDL을 사용하여 레이어로 분류할 수 있습니다.SWSDL은 웹 서비스 분석, 테스트 및 탑다운 개발에 사용됩니다.AWSCM은[5] SWSDL을 성공적으로 구축하기 위한 선구적인 도구입니다.

WSDL 파일의 예

<?xml version="1.0" encoding="UTF-8"?> <description xmlns="http://www.w3.org/ns/wsdl" xmlns:whttp="http://schemas.xmlsoap.org/wsdl/http/" xmlns:wsoap="http://schemas.xmlsoap.org/wsdl/soap/" target Namespace="http://www.tmsws.com/wsdl20sample"> <설명> 이것은 WSDL 2.0 문서의 샘플입니다.<>/documentation>,>. 추상적인 타입-><>types>,<>xs:스키마 xmlns:xs="http://www.w3.org/2001/XMLSchema"xmlns="http://www.tmsws.com/wsdl20sample"targetNamespace="http://www.example.com/wsdl20sample">,<>xs:요소 name="request">,...<>/xs:element>,<>xs:요소 name="반응">,...<>/xs:element>,<>/xs:schema>,<>/types>,>. 추상적인 인터페이스,><>int.erface name="Interface1"> <fault name="Error1" element="tns:response"/> <operation name="Get" pattern="http://www.w3.org/ns/wsdl/in-out"> <input messageLabel="in" element="tns:request"/> <output messageLabel="Out" element="tns:response"/> </operation> </interface> <!-- HTTP --> <바인딩명="HttpBinding" interface="tns:Interface1" type="http://www.w3.org/ns/wsdl/http"> <operation ref="tns:get" whttp:method="GET"/> </binding> <!-- SOAP에 의한 콘크리트 바인딩--> <binding name="SoapBinding" interface="tns:interface1" type="http://www.w3.org/ns/wsdl/soap" wsoap:mepDefault="http://www.w3.org/2003/05/soap/mep/request-response"> <operation ref="tns:Get" /> </binding> <!--  바인딩 모두에 대해 엔드포인트를 제공하는 웹 서비스 --> <service name="Service1" interface="tns:Interface1"> <호출명="HttpEndpoint" binding="tns:HttpBinding" address="http://www.example.com/rest/"/> <http name="SoapEndpoint" binding="tns:SoapBinding" address="http://www.example.com/soap/"/> </service> </description>

역사

WSDL 1.0(2000년 9월)은 IBM, MicrosoftAriba의해 SOAP 툴킷의 Web 서비스를 설명하기 위해 개발되었습니다.IBM의 NASL(Network Application Service Specification Language)과 마이크로소프트의 SDL(Service Description Language)의 두 가지 서비스 기술 언어를 결합하여 구축되었습니다.

WSDL 1.1은 2001년 3월에 발행된 WSDL 1.0의 정식화입니다.1.0과 1.1 사이에 큰 변화는 없었습니다.

WSDL 1.2(2003년 6월)는 W3C에서 작업 중인 초안이었지만 WSDL 2.0이 되었습니다.W3C에 따르면 WSDL 1.2는 이전 버전보다 개발자에게 더 쉽고 유연합니다.WSDL 1.2는 상호 운용할 수 없는 기능을 삭제하려고 하며 HTTP 1.1 바인딩을 보다 적절하게 정의합니다.WSDL 1.2는 대부분의 SOAP 서버/벤더에서 지원되지 않았습니다.

WSDL 2.0은 2007년6월에 W3C 권장사항이 되었습니다.WSDL 1.2는 WSDL 1.1과 큰 차이가 있기 때문에 WSDL 2.0으로 이름이 변경되었습니다.변경된 내용은 다음과 같습니다.

  • 설명 언어에 의미론 추가
  • 메시지 구성 제거됨
  • 연산자 오버로드가 지원되지 않습니다.
  • PortTypes에서 인터페이스로 이름 변경
  • 항구 엔드 포인트에 이름을

보안 고려 사항

어떤 웹 서비스를 기술하는 데 이후로 WebServicesDescriptionLanguage파일 있는 XML기반의 규격, WebServicesDescriptionLanguage파일 공격에 취약하다.[6],, WebServicesDescriptionLanguage정의에 대한 적절한 액세스 제한 설정하고, 웹 서비스에서 불필요한 정의는 것이 권장되는 것을 피하고 생성된 WSDL파일에 액세스 제한 이러한 파일의 취약점 줄이려면.

참고 항목

참조

  1. ^ "Web Services Definition Language (WSDL) Version 2.0 Part 1: Core Language". Retrieved 2007-06-27.
  2. ^ "Web Services Definition Language (WSDL) Version 2.0 Part 2: Adjuncts".
  3. ^ "WITW WSDL 2.0 HTTP Binding".
  4. ^ Chaturvedi, Animesh (2014). Subset WSDL to Access Subset Service for Analysis. 2014 IEEE 6th International Conference on Cloud Computing Technology and Science. p. 688. doi:10.1109/CloudCom.2014.149. ISBN 978-1-4799-4093-6.
  5. ^ Chaturvedi, Animesh (2014). Automated Web Service Change Management AWSCM - A Tool. 2014 IEEE 6th International Conference on Cloud Computing Technology and Science. p. 715. doi:10.1109/CloudCom.2014.144. ISBN 978-1-4799-4093-6.
  6. ^ "WSDL Disclosure". Retrieved 2017-05-31.

외부 링크