두 가지 (SOAP 및 WSDL)가 웹 서비스의 구성 요소 인 SOAP와 WSDL의 차이점을 말하기 전에 웹 서비스가 무엇인지 정의해야합니다.
대부분의 응용 프로그램은 사용자와 상호 작용하도록 개발되었으며 사용자가 인터페이스를 통해 데이터를 입력하거나 검색하면 응용 프로그램이 사용자의 입력에 응답합니다.
웹 서비스는 웹 서비스 응용 프로그램이 컴퓨터에서 컴퓨터로 또는 응용 프로그램에서 응용 프로그램으로 만 통신한다는 점을 제외하면 거의 동일한 작업을 수행합니다. 직접적인 사용자 상호 작용이없는 경우가 많습니다.
웹 서비스는 기본적으로 응용 프로그램간에 데이터를 교환하는 데 사용되는 개방형 프로토콜 모음입니다. 개방형 프로토콜을 사용하면 웹 서비스가 플랫폼에 독립적이 될 수 있습니다. 다른 프로그래밍 언어로 작성되고 다른 플랫폼에서 실행되는 소프트웨어는 웹 서비스를 사용하여 인터넷과 같은 컴퓨터 네트워크를 통해 데이터를 교환 할 수 있습니다. 즉, Windows 응용 프로그램은 PHP, Java 및 Perl 응용 프로그램 및 기타 많은 응용 프로그램과 통신 할 수 있지만 일반적인 상황에서는 불가능합니다.
웹 서비스는 어떻게 작동합니까?
서로 다른 응용 프로그램이 서로 다른 프로그래밍 언어로 작성되기 때문에 서로 통신 할 수없는 경우가 많습니다. 웹 서비스는 개방형 프로토콜과 표준, 주로 XML, SOAP 및 WSDL의 조합을 사용하여 이러한 통신을 가능하게합니다. 웹 서비스는 XML을 사용하여 데이터에 태그를 지정하고 SOAP를 사용하여 메시지를 전송하고 마지막으로 WSDL을 사용하여 서비스 가용성을 설명합니다. 웹 서비스 애플리케이션의이 세 가지 주요 구성 요소를 살펴 보겠습니다.
SOAP (Simple Object Access Protocol)
SOAP (Simple Object Access Protocol)는 상호 운용성 문제에 직면하지 않고 응용 프로그램간에 메시지를 보내고 받기위한 프로토콜입니다 (상호 운용성은 웹 서비스가 실행되는 플랫폼이 관련이 없음을 의미 함). 유사한 기능을 가진 또 다른 프로토콜은 HTTP입니다. 웹 페이지에 액세스하거나 인터넷을 서핑하는 데 사용됩니다. HTTP를 사용하면보고있는 페이지를 제공하는지 또는보고있는 페이지가 ASP.NET 또는 HTML로 만들어 졌는지에 대해 어떤 종류의 웹 서버 (Apache, IIS 또는 기타)에 대해 걱정할 필요가 없습니다.
SOAP는 요청과 응답 모두에 사용되기 때문에 그 내용은 목적에 따라 약간 씩 다릅니다.
다음은 SOAP 요청 및 응답 메시지의 예입니다.
SOAP 요청 :
POST /InStock HTTP/1.1
Host: www.bookshop.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.bookshop.org/prices">
<m:GetBookPrice>
<m:BookName>The Fleamarket</m:BookName>
</m:GetBookPrice>
</soap:Body>
</soap:Envelope>
SOAP 응답 :
POST /InStock HTTP/1.1
Host: www.bookshop.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.bookshop.org/prices">
<m:GetBookPriceResponse>
<m: Price>10.95</m: Price>
</m:GetBookPriceResponse>
</soap:Body>
</soap:Envelope>
두 메시지가 동일하게 보이지만 다른 방법을 수행합니다. 예를 들어 위의 예를 살펴보면 요청 메시지가 GetBookPrice
책 가격을 가져 오는 방법을 사용한다는 것을 알 수 있습니다 . 응답은 GetBookPriceResponse
"요청자"가 보게 될 메시지가 될 메서드에 의해 수행됩니다 . 또한 메시지가 XML을 사용하여 작성되었음을 알 수 있습니다.
웹 서비스 기술 언어 또는 WSDL
WSDL은 웹 서비스를 설명하고 해당 메소드에 액세스하고 사용하는 방법을 알려주는 문서입니다.
WSDL은 인터넷에서 우연히 발견 한 웹 서비스에서 사용할 수있는 메서드를 어떻게 알 수 있는지 관리합니다.
샘플 WSDL 파일을 살펴보십시오.
<?xml version="1.0" encoding="UTF-8"?>
<definitions name ="DayOfWeek"
targetNamespace="http://www.roguewave.com/soapworx/examples/DayOfWeek.wsdl"
xmlns:tns="http://www.roguewave.com/soapworx/examples/DayOfWeek.wsdl"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<message name="DayOfWeekInput">
<part name="date" type="xsd:date"/>
</message>
<message name="DayOfWeekResponse">
<part name="dayOfWeek" type="xsd:string"/>
</message>
<portType name="DayOfWeekPortType">
<operation name="GetDayOfWeek">
<input message="tns:DayOfWeekInput"/>
<output message="tns:DayOfWeekResponse"/>
</operation>
</portType>
<binding name="DayOfWeekBinding" type="tns:DayOfWeekPortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetDayOfWeek">
<soap:operation soapAction="getdayofweek"/>
<input>
<soap:body use="encoded"
namespace="http://www.roguewave.com/soapworx/examples"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded"
namespace="http://www.roguewave.com/soapworx/examples"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<service name="DayOfWeekService" >
<documentation>
Returns the day-of-week name for a given date
</documentation>
<port name="DayOfWeekPort" binding="tns:DayOfWeekBinding">
<soap:address location="http://localhost:8090/dayofweek/DayOfWeek"/>
</port>
</service>
</definitions>
WSDL 파일에 대해 기억해야 할 주요 사항은 다음을 제공한다는 것입니다.
웹 서비스에 대한 설명
웹 서비스가 사용하는 방법과 사용하는 매개 변수
웹 서비스를 찾는 방법