【编者按】:网学网ASP.net为您提供WebService初探(3)参考,解决您在WebService初探(3)学习中工作中的难题,参考学习。
<operation name="GetLastTradePrice"><br>
<soap:operation<br> soapAction="http://example.com/GetLastTradePrice"/> <br>
<input><br>
<soap:body use="literal" <br>
namespace="http://example.com/stockquote.xsd"<br>
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/><br>
</input> <br>
<output><br>
<soap:body use="literal" <br>
namespace="http://example.com/stockquote.xsd"<br>
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <br>
</output> <br>
</operation><br>
</binding><br>
<br>
<service name="StockQuoteService"><br>
<documentation>My first service</documentation><br>
<port name="StockQuotePort" binding="tns:StockQuoteBinding"> <br>
<soap:address location="http://example.com/stockquote"/><br>
</port><br>
</service><br>
<br>
</definitions><br>
<br>
<binding name="StockQuoteServiceBinding" <br>
type="StockQuoteServiceType"> <br>
<soap:binding style="rpc"<br>
transport="http://schemas.xmlsoap.org/soap/http"/><br>
<operation name="getQuote"> <br>
<soap:operation <br>
soapAction="http://www.getquote.com/GetQuote"/><br>
<input><br>
<soap:body type="InMessageRequest"<br>
namespace="urn:live-stock-quotes" <br>
encoding="http://schemas.xmlsoap.org/soap/encoding/"/> <br>
</input><br>
<output><br>
<soap:body type="OutMessageResponse"<br>
encoding="http://schemas.xmlsoap.org/soap/encoding/"/><br>
</output><br>
</operation> <br>
</binding><br>
<service name="StockQuoteService"><br>
<documentation>My first service<br>
</documentation><br>
<port name="StockQuotePort"<br>
binding="tns:StockQuoteBinding"><br>
<soap:address location="http://example.com/stockquote"/><br>
</port><br>
</service><br>
</definitions><br>
<br>
SOAP请求:<br>
<br>
POST /StockQuote HTTP/1.1<br>
Host: www.stockquoteserver.com<br>
Content-Type: text/xml;<br>
charset="utf-8"<br>
Content-Length: nnnn<br>
SOAPAction: "Some-URI"<br>
<br>
<SOAP-ENV:Envelope<br>
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" <br>
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <br>
<SOAP-ENV:Body><br>
<m:GetLastTradePrice<br>
xmlns:m="Some-URI"><br>
<symbol>MOT</symbol><br>
</m:GetLastTradePrice> <br>
</SOAP-ENV:Body><br>
</SOAP-ENV:Envelope><br>
<br>
SOAP应答:<br>
<br>
HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8"<br>
Content-Length: nnnn<br>
<br>
<SOAP-ENV:Envelope<br>
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"<br>
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <br>
<SOAP-ENV:Body><br>
<m:GetLastTradePriceResponse<br>
xmlns:m="Some-URI"><br>
<Price>14.5</Price><br>
</m:GetLastTradePriceResponse><br>
</SOAP-ENV:Body><br>
</SOAP-ENV:Envelope><br>
<br>
XLANG<br>
<br>
<br>
数据库中的事务的传统概念是原子性,即要么不做,要么全做。在分布式的系统中维持这种原子性,一般采用一种代价昂贵的处理方式,即两相承诺。另一个相对优化的模型也在研究之中(最初叫做sagas,由Hector <br>
<br>
Garcia-Molina提出),即每个动作都有一个明确的互补动作,用以取消该动作产生的结果。在现实生活中,这种互补动作的例子很多,比如说,你在信用卡里取出$52,互补动作就是存入$52,你发出一封Email说“你将会在7天内拿到你预定的产品”,互补动作就是发Email说“哦,你还得多等几天”。XLang就是基于这样一个概念,用来表示任何要取消的请求的互补动作。而Web <br>
<br>
Service的分布式基础将推动XLang规范的发展,使之能完成复杂的撤销操作。 <br>
<br>
XAML<br>
<br>
Transaction Authority Markup Language (XAML)提供了传统的两相承诺事务语义。在XAML规范中有一个B2B事务的例子。XAML不完全局限于两相承诺,某些操作也可以象XLang一样有互补动作。两相承诺在企业集成中显然是很有效的,而大量的web事务(如B2C事务)在更便宜的互补动作模型中可以完成。除非XAML把互补动作放在第一位,否则还是XLang存在的的理由更充分。<br>
<br>
Scenario<br>
<br>
下面的场景演示了一个商业事务,包括一批web service,并将利用XAML。考虑一家公司在网上向一家化工厂购买苯。为了让买家能够购买,卖方必须有第三方提供的附加增值服务,如运货方式,付款方式,意外保险,安全运输执照等等。必须等到所有服务都就绪且满足他的要求,买方才会同意购买。他可以买或者不买,换句话说,必须满足所有的相关要求,才有可能完成这次商务活动。<br>
<br>
提供顶层商业事务功能的软件必须协调每个web service。包括(1)卖方存货系统;(2)保险服务确保产品能被运输;(3)财务服务确保依照卖方的形式付款;(4)运输服务保证按时发送货物;(5)协调服务确保与政府的安全要求一致。<br>
<br>
XKMS (XML Key Management Specification)<br>
<br>
XKMS是Microsoft和Verisign用XML应用程序集成PKI和数字认证(用于Internet事务安全性)的成果。关键的思想是将签名处理放到Web上的可信服务器(trust server)上,这样小客户就不必自己来做这些内容。XKMS依赖于XML数字签名规范和正在制定中的XML加密规范。现在的XKMS规范依赖于XML,SOAP,WSDL。<br>
<br>
其它例子<br>
<br>
Web service平台是一个发展的生态系统,达尔文主义还在起作用,这里有进化,有竞争,还有混乱。下面是一个小例子。<br>
<br>
XFS <br>
<br>
XMethods 文件系统服务让你能够通过SOAP接口读或贴文件。这个系统让开发者可以创建使用集中而稳定数据的服务。理想情况下,这种文件系统能够用来集中被多个节点访问的信息。例如,可以用它支持程序补丁的自动升级。XFS提供了一个客户端工具,在Windows Explorer中集成了XFS web service,这样Windows Explorer集成了基于XML-SOAP的文件系统。XFS是开放源码的,由xmethods.com始创,它的前景还不清楚,但是,这个想法在技术上是很有吸引力的。<br>
<br>
<br>
<br>