-
细细品味ASP.NET (五)
开发Web Services(Web服务)
在Internet上作为服务发布的软件是 Web Services的核心。 ASP.NET提供了一个 Web Services的基础构造环境,从而使开发人员能够为这个服务模型创建服务。
现在我们来跟踪一个简单的例子。比如说你要从一个在线书商那里购买书籍,他们有一个跟踪系统,使你能够看到自己定单的状态。书商用一个陆地运输公司来运输你订的货。这个运输公司也有一个跟踪系统。这样,为了得到你的定单的确切状态,你要查看两个站点。如果书商能够将它自己的定单状态和运输公司的状态信息一同显示出来,就会很方便。
Web Services就允许你在Web上将客户商用函数暴露给公众,例如包裹跟踪细节。编写一个对象,将其方法作为URI暴露出来,URI返回一个XML数据。现在书商可以调用运输公司的跟踪服务,并将跟踪的结果合并到它自己的定单跟踪应用程序中。以下是运输公司如何用 C#创建一个服务的代码:
<%@ WebService language=“c#” %>
using System.Web.Services;
public class Shipping {
[WebMethod]
public String OrderStatus(String OrderNumber) {
// code here to retrieve order details from data store
return Status;
}
}
以上代码保存于 Tracking.asmx文件中,位于运输公司 Web站点的应用程序目录中。这样书商就可以使用多种方法来调用这个 Web Services了。比如使用 HTTP-GET,参数同查询字符串一同被传递:
http://orders.ups.com/orders/Tracking.asmx/OrderStatus?OrderNumber=BRU123
书商还可以使用 HTTP-POST,方法的参数作为表单值在post体内传递。或者还可以使用HTTP-SOAP,方法的参数被包裹在一个工业标准 XML格式中。
现在用户只需要在书商那里查询他们的定单细节,书商的 Web 应用程序就会从运输公司那里收集跟踪信息,然后同书的状态一起返回。书商也可以将它的定单状态细节作为一个Web Services暴露出来,让其它人使用它。
Web Services的伟大之处在于,它允许你暴露一个服务而不必暴露数据或所有的商业规则。当自动提供商业服务的同时,代码和数据都是安全的。在以后几年里,随着B2B方案的可利用,Web Services的市场会得到快速的增长。