Web Service 服務接口需要綁定具體實現(xiàn)服務的服務組件來實現(xiàn)服務, 他對具體的服務實現(xiàn)完成了封裝,實現(xiàn)了服務的透明化,客戶端不需要知道服務是如何實現(xiàn)的,但是Web Service 組件本身是知道服務是如何實現(xiàn)的, 另外客戶端調(diào)用Web Service組件時, 需要知道Web Service 的具體位置和傳輸協(xié)議, 這些都會造成一定的不靈活性, 它只是實現(xiàn)了一定程度上的抽象。

The basic Web Service platform is XML + HTTP.
XML provides a language which can be used between different platforms and programming languages and still express complex messages and functions.
Web Services platform elements:
- SOAP (Simple Object Access Protocol)
- UDDI (Universal Description, Discovery and Integration)
- WSDL (Web Services Description Language)
Web Services have two types of Uses
???Resuable application components
Web Services can offer applications components like currency conversion, weather reports, or even language translation as service
Connect existing software
Web services help to solve the interoperability problem by giving different applications a way to link their data
With Web Services you can exchange data between different applications and different platforms.
WSDL( Web Service Description Language)
A WSDL document defines services as collections of network endpoints, or ports. In WSDL, the abstract definition of endpoints and messages is separated from their concrete network deployment or data format bindings. This allows the reuse of abstract definitions: messages, which are abstract descriptions of the data being exchanged, and port types which are abstract collections of operations. The concrete protocol and data format specifications for a particular port type constitutes a reusable binding. A port is defined by associating a network address with a reusable binding, and a collection of ports define a service. Hence, a WSDL document uses the following elements in the definition of network services:
-
Types– a container for data type definitions using some type system (such as XSD).
-
Message– an abstract, typed definition of the data being communicated.
-
Operation– an abstract description of an action supported by the service.
-
Port Type–an abstract set of operations supported by one or more endpoints.
-
Binding– a concrete protocol and data format specification for a particular port type.
-
Port– a single endpoint defined as a combination of a binding and a network address.
-
Service– a collection of related endpoints.
Example 1 SOAP 1.1 Request/Response via HTTP
<?xml version="1.0"?>
<definitions name="StockQuote"
targetNamespace="http://example.com/stockquote.wsdl"
xmlns:tns="http://example.com/stockquote.wsdl"
xmlns:xsd1="http://example.com/stockquote.xsd"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<schema targetNamespace="http://example.com/stockquote.xsd"
xmlns="http://www.w3.org/2000/10/XMLSchema">
<element name="TradePriceRequest">
<complexType>
<all>
<element name="tickerSymbol" type="string"/>
</all>
</complexType>
</element>
<element name="TradePrice">
<complexType>
<all>
<element name="price" type="float"/>
</all>
</complexType>
</element>
</schema>
</types>
<message name="GetLastTradePriceInput">
<part name="body" element="xsd1:TradePriceRequest"/>
</message>
<message name="GetLastTradePriceOutput">
<part name="body" element="xsd1:TradePrice"/>
</message>
<portType name="StockQuotePortType">
<operation name="GetLastTradePrice">
<input message="tns:GetLastTradePriceInput"/>
<output message="tns:GetLastTradePriceOutput"/>
</operation>
</portType>
<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetLastTradePrice">
<soap:operation soapAction="http://example.com/GetLastTradePrice"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<documentation>My first service</documentation>
<port name="StockQuotePort" binding="tns:StockQuoteBinding">
<soap:address location="http://example.com/stockquote"/>
</port>
</service>
</definitions>
?