网络服务(Web Service)是基于网络的分布式应用程序的基本构造模块,而这些程序是以平台、对象模板和多语言方式构建的。建立在象HTTP和XML之类的开放的Internet 标准之上的,并且由此形成了可编程网络理念的基础。

图1 网络服务应用模型
这篇文章详细讲述网络服务以及为其提供支持的技术,这些技术能确保服务被集成到应用程序里去。同时本文将讲述新的Microsoft.NET框架及其对生成和使用网络服务的支持。
现在开发中最紧迫的问题是应用程序的集成化:运行在不同操作系统上的不同的应用程序,通常是由不同编程语言对象模板建立的,获取这些程序然后把它们转化为易于使用的网络应用程序。建立在象HTTP和XML之类开放的网络标准之上的网络服务接受了这项挑战。
但是只支持标准协议是不够的,我们必须有途径来生成、部署、扩展和维护这些网络服务,这正是Microsoft.NET框架要解决的问题。

图2 Microsoft.NET Framework体系结构
下面笔者将介绍网络服务及Microsft.NET框架的组件,包括通用运行语言(Common Language Runtime)、服务框架和用于建立、集成网络服务的程序模板。
网络服务一览
通常说来,网络服务只是一个作为服务发行的简单应用程序。换句话说,它是可通过URL定位的自动将信息返回到需要它的客户端那里的一种资源。网络服务一个重要的特点是客户不需要知道一种服务是怎样实现的。在本文中,笔者将向你解释网络及网络服务如何把基于组件技术的最好的方面结合在一起,并且介绍与网络服务通信所需的基本框架。
同组件一样,网络服务提供“黑匣子”函数,它可以被多次用而不用关心此服务是怎样实现的。网络服务还提供被称为契约的精确定义的接口,此接口描绘了所提供的服务。开发人员可以将远程服务、本地服务和定制代码组合在一起集成到应用程序中。例如,某公司可以使用如下服务组建一个在线商店:微软护照(Passport)服务用来验证用户身份、第三方个人化服务用来使网页匹配每一个用户的参数、信用卡处理服务、销售税服务、对每个运输公司的包裹跟踪服务,链接公司内部库存管理程序的内部目录服务以及少量定制代码,以使他们的商店能脱颖而出。图1显示的模型说明了为生成分布式网络应用程序应怎样链接网络服务。
