맨위로가기

WSDL

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

WSDL(Web Services Description Language)은 네트워크 엔드포인트 또는 포트의 집합으로서 서비스를 기술하는 XML 기반 파일 형식이다. WSDL은 SOAP 및 XML 스키마와 결합하여 웹 서비스를 제공하는 데 사용되며, 클라이언트 프로그램이 WSDL 파일을 읽어 서버에서 수행 가능한 작업을 결정할 수 있게 한다. 현재 버전은 2.0이며, 1.1 버전과 비교하여 RESTful 웹 서비스에 대한 지원이 향상되었다. WSDL은 서비스의 인터페이스, 바인딩, 엔드포인트 등을 정의하며, 부분 집합 WSDL을 통해 웹 서비스의 부분적인 접근을 가능하게 한다. WSDL 파일은 보안 취약점을 가질 수 있으므로, 접근 제한과 적절한 정의 설정을 통해 보호해야 한다.

더 읽어볼만한 페이지

  • W3C 표준 - HTML
    HTML은 웹 페이지 제작을 위한 표준 마크업 언어로서, 팀 버너스리가 제안하고 구현한 후 인터넷 발전과 함께 널리 사용되며, SGML에 기반하여 하이퍼텍스트 기능으로 다양한 콘텐츠를 표현하고 연결하며, W3C와 WHATWG에서 표준화를 진행하고 최신 버전은 HTML Living Standard이다.
  • W3C 표준 - 타임드 텍스트
    타임드 텍스트는 영상이나 오디오 콘텐츠에 시간 정보를 담아 표현되는 텍스트로, 자막이나 캡션 등에 활용되며 TTML, WebVTT 등의 표준이 존재한다.
  • XML 기반 표준 - XAML
    XAML은 마이크로소프트에서 개발한 XML 기반의 마크업 언어로, 사용자 인터페이스, 데이터 바인딩, 이벤트 처리 등을 정의하며 WPF, Silverlight, WF, WinRT API 앱, Xamarin.Forms 등에서 UI 개발에 널리 사용된다.
  • XML 기반 표준 - 아톰 (표준)
    Atom은 웹 사이트 업데이트 정보와 콘텐츠 배포를 위한 XML 기반 문서 형식으로, Atom 배포 형식과 Atom 출판 프로토콜로 구성되어 있으며, RSS를 대체하기 위해 고안되었고 국제화 지원 및 모듈성에서 차이를 보인다.
WSDL - [IT 관련 정보]에 관한 문서
개요
종류XML 기반 인터페이스 기술 언어
개발월드 와이드 웹 컨소시엄
확장자.wsdl
MIME 형식application/wsdl+xml
표준2.0 권고안

2. 설명

WSDL은 네트워크의 엔드포인트나 포트의 총집합으로서의 서비스를 기술한다. WSDL의 사양은 XML 형식을 제공한다.

WSDL은 자주 SOAPXML 스키마와 결합하여 인터넷 상에 웹 서비스를 제공하기 위해 사용되기도 한다. 웹 서비스에 연결되는 클라이언트 프로그램은 WSDL 파일을 읽어들여 서버에 어떠한 조작이 가능한지를 결정할 수 있다.

현재의 WSDL 버전은 2.0이다. 버전 1.1은 W3C에 의해 서명되지 않았으나 버전 2.0은 W3C 권고안이다.[10] 1.1버전까지는 WSDL의 D는 Definition을 뜻하였다. WSDL 1.2가 WSDL 2.0으로 바뀐 이유는 WSDL 1.1과의 근본적인 차이 때문이다. 모든 HTTP 요청 메소드에 바인드하는 것을 허용함으로써(버전 1.1에서처럼 GET, POST뿐 아니라) WSDL 2.0 사양은 RESTful 웹 서비스에 대한 더 나은 지원을 제공하며 구현하기가 훨씬 더 쉬워졌다.[11][12]

WSDL 1.1 용어WSDL 2.0 용어설명
ServiceService웹 기반 프로토콜에 노출되는 시스템 함수의 집합을 포함한다.
PortEndpoint웹 서비스로의 주소 또는 연결 지점을 정의한다. 단순 HTTP URL 문자열로 표현하는 것이 보통이다.
BindingBinding인터페이스를 규정하고 SOAP 바인딩 스타일(RPC/Document)과 트랜스포트(SOAP 프로토콜)을 정의한다. binding 섹션 또한 operation을 정의한다.
PortTypeInterface웹 서비스를 정의한다.
OperationOperationSOAP의 동작 및 메시지 인코딩 방식을 정의한다.
Message없음보통 message는 operation에 상응한다.
TypesTypes데이터를 기술한다.



WSDL 1.1 및 WSDL 2.0 문서에 의해 정의된 개념의 표현


WSDL은 서비스를 네트워크 통신 종단점 또는 포트 (컴퓨터 네트워킹)의 집합으로 설명한다. WSDL 사양은 이러한 목적으로 문서를 위한 XML 파일 형식을 제공한다.

포트와 메시지의 추상적인 정의는 구체적인 사용 또는 인스턴스와 분리되어 있어 이러한 정의를 재사용할 수 있다. 포트는 재사용 가능한 바인딩과 네트워크 주소를 연결하여 정의되며, 포트의 집합은 서비스를 정의한다. 메시지는 교환되는 데이터에 대한 추상적인 설명이며, 포트 유형은 지원되는 작업의 추상적인 집합이다. 특정 포트 유형에 대한 구체적인 프로토콜 및 데이터 형식 사양은 재사용 가능한 바인딩을 구성하며, 여기서 작업과 메시지는 구체적인 네트워크 프로토콜 및 메시지 형식에 바인딩된다. 이러한 방식으로 WSDL은 웹 서비스의 공개 인터페이스를 설명한다.

3. 버전

WSDL의 현재 버전은 2.0이다. 버전 1.1은 W3C에 의해 서명되지 않았으나, 버전 2.0은 W3C 권고안이다.[10] WSDL 1.2가 WSDL 2.0으로 바뀐 이유는 WSDL 1.1과의 근본적인 차이 때문이다. 모든 HTTP 요청 메소드에 바인드하는 것을 허용함으로써(버전 1.1에서처럼 GET, POST뿐 아니라) WSDL 2.0 사양은 RESTful 웹 서비스에 대한 더 나은 지원을 제공하며 구현하기가 훨씬 더 쉬워졌다.[11][12]

WSDL 1.0(2000년 9월)은 IBM, 마이크로소프트, Ariba에 의해 SOAP 툴킷에 웹 서비스를 기술하기 위해 개발되었다. IBM의 NASSL(Network Application Service Specification Language)과 마이크로소프트의 SDL(Service Description Language)의 두 가지 서비스 기술 언어를 병합하여 만들어졌다.

WSDL 1.1(2001년 3월)은 WSDL 1.0의 형식을 갖춘 판으로, 1.0과 1.1 사이에 주요 변경 사항은 없다.

WSDL 1.2(2013년 6월)는 W3C에서 작업 중인 초안이었으나 WSDL 2.0이 되었다.

3. 1. WSDL 1.1과 WSDL 2.0 용어 비교

WSDL 1.1 용어WSDL 2.0 용어설명
서비스서비스웹 기반 프로토콜에 노출되는 시스템 함수의 집합이다.
포트엔드포인트웹 서비스로의 주소 또는 연결 지점을 정의한다. 단순 HTTP URL 문자열로 표현하는 것이 보통이다.
바인딩바인딩인터페이스를 규정하고 SOAP 바인딩 스타일 (RPC/Document)과 트랜스포트(SOAP 프로토콜)을 정의한다. 바인딩 섹션은 오퍼레이션(Operation)도 정의한다.
포트 타입인터페이스웹 서비스를 정의한다. 수행 가능한 작업 및 작업에 사용되는 메시지를 정의한다.
오퍼레이션오퍼레이션SOAP 동작 및 메시지 인코딩 방식을 정의한다.
메시지없음보통 메시지(message)는 오퍼레이션(operation)에 상응한다. WSDL 2.0에서는 제거되었다.
타입타입데이터를 기술한다. XML 스키마 언어 (XSD)가 이 목적으로 사용된다.


4. 역사

WSDL 1.0 (2000년 9월)은 SOAP 툴킷에 웹 서비스를 기술하기 위해 IBM, 마이크로소프트, Ariba에 의해 개발되었다. 이는 IBM의 NASSL(Network Application Service Specification Language)과 마이크로소프트의 SDL(Service Description Language)이라는 두 가지 서비스 기술 언어를 병합하여 만들어졌다.

WSDL 1.1 (2001년 3월)은 WSDL 1.0의 형식을 갖춘 판이다. 1.0과 1.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 서버/벤더에서 지원되지 않았다.[2]

WSDL 2.0은 2007년 6월 W3C 권고안이 되었다. WSDL 1.2는 WSDL 1.1과 실질적인 차이가 있어 WSDL 2.0으로 이름이 변경되었다. 변경 사항은 다음과 같다.[3]


  • 설명 언어에 더 많은 의미 체계 추가
  • 메시지 구조 제거
  • 연산자 오버로딩 미지원
  • PortTypes를 인터페이스로 이름 변경
  • Ports를 엔드포인트로 이름 변경

5. Subset WSDL

부분 집합 WSDL(SWSDL)[4]은 원본 WSDL의 부분 집합 연산을 가진 WSDL이다. 개발자는 SWSDL을 사용하여 부분 집합 서비스에 접근하여 웹 서비스 코드의 부분 집합을 처리할 수 있다. 부분 집합 WSDL은 웹 서비스 테스트 및 상향식 개발에 사용될 수 있다. 웹 서비스 슬라이싱은 부분 집합 WSDL을 사용하여 부분 집합 서비스에 접근함으로써 수행될 수 있다. 부분 집합 서비스는 SWSDL을 사용하여 계층으로 분류될 수 있다. SWSDL은 웹 서비스 분석, 테스트 및 상향식 개발에 사용된다. AWSCM[5]은 WSDL 파일에서 부분 집합 연산을 식별하여 부분 집합 WSDL을 구성할 수 있는 도구이다.

6. 보안 고려 사항

WSDL 파일은 웹 서비스를 설명하기 위한 XML 기반 명세이므로 공격에 취약할 수 있다.[6] 이러한 파일의 취약성을 완화하기 위해 생성된 WSDL 파일에 대한 접근을 제한하고, WSDL 정의에 적절한 접근 제한을 설정하며, 웹 서비스에서 불필요한 정의를 피하는 것이 권장된다.

7. 관련 기술

WSDL은 자주 SOAPXML 스키마를 결합하여 인터넷 상에 웹 서비스를 제공하기 위해 사용된다. 웹 서비스에 연결되는 클라이언트 프로그램은 WSDL 파일을 읽어들여 서버에 어떠한 조작이 가능한지를 결정할 수 있다.[10]

WSDL 1.1과 WSDL 2.0의 용어는 아래 표와 같이 비교할 수 있다.

WSDL 1.1 용어WSDL 2.0 용어설명
ServiceService웹 기반 프로토콜에 노출되는 시스템 함수의 집합을 포함한다.
PortEndpoint웹 서비스로의 주소 또는 연결 지점을 정의한다. 단순 HTTP URL 문자열로 표현하는 것이 보통이다.
BindingBinding인터페이스를 규정하고 SOAP 바인딩 스타일(RPC/Document)과 트랜스포트(SOAP 프로토콜)을 정의한다. binding 섹션 또한 operation을 정의한다.
PortTypeInterface웹 서비스를 정의한다.
OperationOperationSOAP의 동작 및 메시지 인코딩 방식을 정의한다.
Message없음보통 message는 operation에 상응한다.
TypesTypes데이터를 기술한다.



관련 기술은 다음과 같다.


  • SOAP (프로토콜)
  • 웹 서비스
  • UDDI
  • 확장성 생성 언어(XML)
  • 웹 서비스 상호 운용성 (WS-I)

참조

[1] 웹사이트 Web Services Definition Language (WSDL) Version 2.0 Part 1: Core Language http://www.w3.org/TR[...] 2007-06-27
[2] 웹사이트 Web Services Definition Language (WSDL) Version 2.0 Part 2: Adjuncts http://www.w3.org/TR[...]
[3] 웹사이트 WITW WSDL 2.0 HTTP Binding http://www.pacificsp[...] 2007-09-20
[4] 컨퍼런스 Subset WSDL to Access Subset Service for Analysis
[5] 컨퍼런스 Automated Web Service Change Management AWSCM - A Tool
[6] 웹사이트 WSDL Disclosure http://www.ws-attack[...] 2017-05-31
[7] 웹사이트 Web Services Definition Language (WSDL) Version 2.0 Part 1: Core Language https://www.w3.org/T[...] 2007-06-27
[8] 웹사이트 Web Services Definition Language (WSDL) Version 2.0 Part 2: Adjuncts https://www.w3.org/T[...] 2018-02-16
[9] 웹사이트 WITW WSDL 2.0 HTTP Binding http://www.pacificsp[...]
[10] 웹인용 Web Services Definition Language (WSDL) Version 2.0 Part 1: Core Language http://www.w3.org/TR[...] 2007-06-27
[11] 웹인용 Web Services Definition Language (WSDL) Version 2.0 Part 2: Adjuncts http://www.w3.org/TR[...]
[12] 웹인용 WITW WSDL 2.0 HTTP Binding http://www.pacificsp[...] 2016-03-29



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com