메뉴 건너뛰기

(*.106.188.101) 조회 수 425 추천 수 0 댓글 0
Extra Form

WSDL

위키백과, 우리 모두의 백과사전.
WSDL

WSDL(Web Services Description Language의 약자)은 웹 서비스 기술언어 또는 기술된 정의 파일의 총칭으로 XML로 기술된다. 웹 서비스의 구체적 내용이 기술되어 있어 서비스 제공 장소, 서비스 메시지 포맷, 프로토콜 등이 기술된다.

개요[편집]

WSDL 1.1과 WSDL 2.0 문서에 정의된 개념의 표현도.

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

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

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

예제[편집]

WSDL 2.0 문서의 구조:

<?xml version="1.0" encoding="UTF-8"?>
<description xmlns="http://www.w3.org/ns/wsdl" 
             xmlns:tns="http://www.example.com/wsdl20sample" 
             xmlns:whttp="http://www.w3.org/ns/wsdl/http"
             xmlns:wsoap="http://www.w3.org/ns/wsdl/soap"
             targetNamespace="http://www.example.com/wsdl20sample">


<!-- Abstract types -->
   <types>
      <xs:schema xmlns="http://www.example.com/wsdl20sample"
                 xmlns:xs="http://www.w3.org/2001/XMLSchema" 
                 targetNamespace="http://www.example.com/wsdl20sample">
                 
         <xs:element name="request">
            <xs:complexType>
               <xs:sequence>
                  <xs:element name="header" maxOccurs="unbounded">
                     <xs:complexType>
                        <xs:simpleContent>
                           <xs:extension base="xs:string">
                              <xs:attribute name="name" type="xs:string" use="required"/>
                           </xs:extension>
                        </xs:simpleContent>
                     </xs:complexType>
                  </xs:element>
                  <xs:element name="body" type="xs:anyType" minOccurs="0"/>
               </xs:sequence>
               <xs:attribute name="method" type="xs:string" use="required"/>
               <xs:attribute name="uri" type="xs:anyURI" use="required"/>
            </xs:complexType>
         </xs:element>
         
         <xs:element name="response">
            <xs:complexType>
               <xs:sequence>
                  <xs:element name="header" maxOccurs="unbounded">
                     <xs:complexType>
                        <xs:simpleContent>
                           <xs:extension base="xs:string">
                              <xs:attribute name="name" type="xs:string" use="required"/>
                           </xs:extension>
                        </xs:simpleContent>
                     </xs:complexType>
                  </xs:element>
                  <xs:element name="body" type="xs:anyType" minOccurs="0"/>
               </xs:sequence>
               <xs:attribute name="status-code" type="xs:anySimpleType" use="required"/>
               <xs:attribute name="response-phrase" use="required"/>
            </xs:complexType>
         </xs:element>
      </xs:schema>
   </types>


<!-- Abstract interfaces -->
   <interface name="RESTfulInterface">
      <fault name="ClientError" element="tns:response"/>
      <fault name="ServerError" element="tns:response"/>
      <fault name="Redirection" element="tns:response"/>
      <operation name="Get" pattern="http://www.w3.org/ns/wsdl/in-out">
         <input messageLabel="GetMsg" element="tns:request"/>
         <output messageLabel="SuccessfulMsg" element="tns:response"/>
      </operation>
      <operation name="Post" pattern="http://www.w3.org/ns/wsdl/in-out">
         <input messageLabel="PostMsg" element="tns:request"/>
         <output messageLabel="SuccessfulMsg" element="tns:response"/>
      </operation>
      <operation name="Put" pattern="http://www.w3.org/ns/wsdl/in-out">
         <input messageLabel="PutMsg" element="tns:request"/>
         <output messageLabel="SuccessfulMsg" element="tns:response"/>
      </operation>
      <operation name="Delete" pattern="http://www.w3.org/ns/wsdl/in-out">
         <input messageLabel="DeleteMsg" element="tns:request"/>
         <output messageLabel="SuccessfulMsg" element="tns:response"/>
      </operation>
   </interface>



<!-- Concrete Binding Over HTTP -->
   <binding name="RESTfulInterfaceHttpBinding" interface="tns:RESTfulInterface" 
            type="http://www.w3.org/ns/wsdl/http">
      <operation ref="tns:Get" whttp:method="GET"/>
      <operation ref="tns:Post" whttp:method="POST" 
                 whttp:inputSerialization="application/x-www-form-urlencoded"/>
      <operation ref="tns:Put" whttp:method="PUT" 
                 whttp:inputSerialization="application/x-www-form-urlencoded"/>
      <operation ref="tns:Delete" whttp:method="DELETE"/>
   </binding>
   
<!-- Concrete Binding with SOAP-->
   <binding name="RESTfulInterfaceSoapBinding" interface="tns:RESTfulInterface" 
            type="http://www.w3.org/ns/wsdl/soap" 
            wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP/"
            wsoap:mepDefault="http://www.w3.org/2003/05/soap/mep/request-response">
      <operation ref="tns:Get" />
      <operation ref="tns:Post" />
      <operation ref="tns:Put" />
      <operation ref="tns:Delete" />
   </binding>
   

<!-- Web Service offering endpoints for both the bindings-->
   <service name="RESTfulService" interface="tns:RESTfulInterface">
      <endpoint name="RESTfulServiceRestEndpoint" 
                binding="tns:RESTfulInterfaceHttpBinding" 
                address="http://www.example.com/rest/"/>
      <endpoint name="RESTfulServiceSoapEndpoint" 
                binding="tns:RESTfulInterfaceSoapBinding" 
                address="http://www.example.com/soap/"/>
   </service>
</description>

각주[편집]

바깥 고리[편집]


  1. WSDL (Web Services Description Language) 2.0

    WSDL위키백과, 우리 모두의 백과사전. WSDL WSDL(Web Services Description Language의 약자)은 웹 서비스 기술언어 또는 기술된 정의 파일의 총칭으로 XML로 기술된다. 웹 서비스의 구체적 내용이 기술되어 있어 서비스 제공 장소, 서비스 메시지 포맷, 프로...
    Date2016.04.01 Reply0 Views425
    Read More
  2. SOAP (Simple Object Access Protocol) 1.2

    SOAP SOAP(Simple Object Access Protocol)은 일반적으로 널리 알려진 HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜이다. SOAP은 웹 서비스에서 기본적인 메시지를 전달하는 기반이 된다. SOAP에는 몇가지 형태...
    Date2016.04.01 Reply0 Views447
    Read More
  3. No Image

    XML (extensible markup language)

    XML (extensible markup language) 인터넷 웹페이지를 만드는 HTML을 획기적으로 개선하여 만든 언어이다. 홈페이지 구축기능, 검색기능 등이 향상되었고, 웹 페이지의 추가와 작성이 편리해졌다. 확장성 생성 언어(擴張性生成言語)로 번역되며, 1996년 W3C(Wo...
    Date2016.03.30 Reply0 Views468
    Read More
  4. No Image

    2016 오픈소스 프로젝트 기대주 14선

    블랙 덕 소프트웨어(Black Duck Software)은 오픈소스 세계를 리뷰하고 지난 해에 시작된 최고의 신규 프로젝트를 시상하며, 2014년 이후로 그 결과를 인포월드(InfoWorld)를 통해 공개하고 있다. 올 해 루키 중 상위 프로젝트 대부분은 영리 기업들이 후원 및...
    Date2016.03.29 Reply0 Views387
    Read More
  5. 지리정보시스템 (Geographic Information System)

    지리정보시스템[ Geographic Information System ] 지형공간정보를 입력, 저장, 관리, 분석, 편집, 출력할 수 있는 컴퓨터 응용 시스템으로 시스템의 데이터베이스를 다양한 목적에 따라 활용할 수 있음.약어GIS 지리정보시스템(GIS)은 지...
    Date2016.03.20 Reply0 Views890 file
    Read More
  6. No Image

    H.265/HEVC 차세대 동영상 압축 표준 지원

      현재 동영상 압축 표준으로 사용되고 있는 H.264 와 비교하여, 약 2배의 압축율을 지니는 차세대 동영상 압축 표준인 H.265/HEVC (High Efficiency Video Coding) 을 지원합니다.   H.265/HEVC 는 차세대 UHD 방송포맷 표준으로 정해지면서 관심을 받고 있으...
    Date2016.03.11 Reply0 Views337
    Read More
  7. DevOPS 정의

    데브옵스 (DevOps) 란 데브옵스란 본래 스타트업 벤쳐들의 일하는 방식으로서, Development, 개발과 Operations, 운영의 소통과 협업을 촉진시켜 혁신의 속도를 빠르게 하는 점을 전통적인 IT 조직에 적용하여 스타트업의 혁신을 재현하고자 하는데서 출발합니...
    Date2016.03.01 Reply0 Views425
    Read More
목록
Board Pagination Prev 1 2 3 4 5 Next
/ 5