内容简介 XML Web服务将在极大程度上影响今后网络技术和软件开发技术的发展,它是微软公司.NET战略的核心。本书主要介绍如何使用Visual C#.NET来开发ASP.NET XML Web服务。首先,本书介绍了XML Web服务的基本概念,并带领读者逐步创建XML Web服务和客户程序,然后逐个介绍XML Web服务中使用的各种关键技术以及ASP.NET提供的功能,以及如何在XML Web服务中使用这些技术和功能。最后本书创建了一个通用的XML Web服务客户程序,用户可以使用它来对XML Web服务进行测试。本书由浅入深地介绍了各种概念,同时提供了大量的示例程序,通过本书的学习用户可以轻松掌握ASP.NET XML Web服务这种全新的应用程序开发方式。本书主要面向初中级用户,也可作为Web服务编程爱好者的技术指导书及专业Web服务编程人员的参考书。
前言 XML Web服务是IT业界公认的能够影响今后网络发展的一项技术。XML Web服务从某个角度来说,正是要解决分布式计算的问题。如果说Windows是操纵一台计算机的灵魂,那么XML Web服务则是今后网络的灵魂。总之,XML Web服务将彻底改变软件产业的格局。 XML Web服务是微软公司.NET战略的核心。XML Web服务作为新兴的一种依赖于Internet,为用户或其他XML Web服务提供单一服务功能的组件,将成为未来软件的存在形态。 当ASP出现之后,“软件就是服务”这个真理终于被人们认可了。但现实就是这么残酷,曾经被认为是继电子邮件出现之后,对企业用户影响最大的应用—— ASP,今天却面临风雨飘摇的窘境。究其原因,主要是ASP仍然是一个集中式计算模型的产物,只不过披着一层互联网的外衣。但XML Web服务却迥然不同,它秉承“软件就是服务”的真理,同时顺应分布式计算模式大行其道的潮流。它的存在形式与以往软件不同,这种组件模式小巧、单一,开发成本较低。 XML Web服务在某种意义上就是结合了ASP和组件产品两方面的特性,它通过标准协议在互联网上提供单一特定的服务。两者的区别在于XML Web服务面对的用户群更广,而且更加通用。而ASP服务的对象则需要签订一定的合作协约。XML Web服务的出现,给软件产业又一次带来新的商业模式。XML Web服务的供应商,既可以将XML Web服务一次卖断给软件开发商,也可以通过租赁的方式按月收取服务费用。试想一下,如果有人开发的XML Web服务被微软公司选中应用在Windows XP平台里,那他很有可能将一夜成为百万富翁的美梦变为现实。 XML Web服务就是通过标准的Web协议可编程访问的Web组件。如果不进一步地加以解释,没有多少人能够明白它讲的是什么。当用户使用Word编写报告的时候,需要调用一个Excel制作好的报表,这时可以使用对象嵌入功能。在执行这个操作的时候,实际上是在使用Word的过程中去调用另外一个应用程序。而XML Web服务的功能也与此十分相近。只不过它不是发生在一个单一的PC机上,而是发生在客户端与服务器之间或是服务器与服务器之间。 例如浏览一个英文网页,随着鼠标指针的移动,屏幕上显示出相应的中文解释,不要以为这个用户正在使用金山词霸,他只不过是通过网络调用了一个提供即时翻译功能的XML Web服务。此时的即时翻译程序,变成了一个远在异地的应用组件。这些基于后端的XML Web服务被微软公司认为将会成为未来互联网的主导,而抢占了这个阵地也就赢得了互联网的明天。由此引发出很多新的标准、协议,以便让这些XML Web服务组件能够顺利地被调用。 其实XML Web服务是一次分布式计算体系的跃进,是分布式计算模式对集中式计算模式的胜利。它强调的是不同组件协同工作来为用户提供服务。分布式对象结构是将标准化的组件对象放在远端的计算机上,客户端在调用对象时使用分布式对象结构的调用标准来获取对象。在这里人们要清楚一点,此时的客户端内涵已经被扩大,变为任何一个对调用对象提出服务请求的组件。面对互联网这个广义的分布式计算体系,XML Web服务实际上更像是一种远程访问的标准。 CORBA曾经是最热门的分布式对象结构。它的优势就在于可以跨平台、跨开发语言来调用服务器端某个对象模块提供的服务。XML Web服务和CORBA这些分布式应用技术的目的都是要解决远程目标之间的通信问题。和其他的解决方案不同,XML Web服务提供基于开放式标准上的完全终端对终端的解决方案。对于需要XML Web服务解决方案的用户来说,没有任何特殊的要求。 面对XML Web服务这样的发展前景,微软公司坚信打赢XML Web服务这场战斗将确立在整个互联网中的霸主地位。为了能够实现这个理想,微软公司做出了很多的努力。首先是力推XML,因为XML Web服务所要涉及到的信息已经不仅是简单的文本,而更多的是数据。此外XML Web服务需要跨平台,原有的HTML是无法满足需要的,通过XML可以使程序之间更容易进行沟通。 微软公司对XML Web服务的核心SOAP也颇费心机。SOAP是对象间信息交换的通信协议,可以把它看成是用户端与服务器端之间进行沟通的特殊语言。在按照SOAP协议封装的信息里,包含了用户端申请XML Web服务所必要的内容,例如,该Web Service所涉及到的名称、参数等。当然服务器端也会按照SOAP通信协议返回相应的结果。 但新的一个问题又出现了,就是用户端的程序如何才能知道XML Web服务提供了什么可以进行调用的服务呢?这时WSDL(Web Service Description Language,Web服务描述语言)出现了,它是用来描述XML Web服务的相关信息。现在一切就绪,可那些XML Web服务开发商还需要一个方法将自己开发的XML Web服务进行发布。于是UDDI(Universal Description,Discovery and Integration)应运而生。UDDI是一个跨产业、跨平台的开放性架构。它可以帮助XML Web服务开发商在Internet上发布自己推出的XML Web服务。 针对开发XML Web服务应用,微软公司推出了Visual Studio .NET集成开发工具。在Visual Studio.NET平台下,用户可以利用Visual Basic、Visual C++和Visual C#等多种开发工具共同开发各种符合XML Web服务标准的应用,并且这些应用可以保持相互兼容。Visual C#.NET是微软公司针对XML Web服务推出的一种全新的开发语言,而ASP.NET则提供了支持XML Web服务的全新基础框架。将这两者结合使用,用户可以简单方便地开发出功能强大的XML Web服务。 本书主要介绍如何使用Visual C#.NET语言并充分利用ASP.NET的强大功能来开发XML Web服务,同时还介绍了各种关键技术,比如WSDL、SOAP和UDDI等的应用。本书要求读者对XML和HTTP等Internet标准规范和协议有一些基本的了解。关于这些内容,读者可以参考作者的另外一本书《Visual C# .NET中文版Web服务开发基础》。在该书中,详细地介绍了一些常用的Internet标准规范和协议。 本书主要包含以下内容: 第1章概括介绍XML Web服务的概念以及与它相关的各种技术。 第2章带领用户逐步创建一个简单的ASP.NET XML Web服务 第3章介绍如何创建用于访问XML Web服务的不同类型的客户程序,包括Windows窗体客户程序和Web窗体客户程序。 第4章介绍XML Web服务的描述语言—— WSDL。 第5章介绍如何使用WSDL来进行接口方式化的开发。 第6章介绍XML Web服务所使用的标准通信协议。 第7章介绍如何定制SOAP消息以使之满足特殊的需求。 第8章介绍如何使用SOAP扩展来在SOAP消息的处理过程中添加处理功能。 第9章介绍XML Web服务的标准发现机制—— UDDI,并实现一个简单的UDDI浏览器。 第10章介绍如何在XML Web服务的方法中使用各种不同数据类型的参数和返回值。 第11章介绍如何在XML Web服务中充分利用ASP.NET提供的强大功能。 第12章介绍如何在XML Web服务中使用各种安全技术。 第13章创建一个通用的XML Web服务客户程序,它只需知道一个WSDL文档的地址就可以访问任意的XML Web服务。 本书除了封面署名的作者外,其他参加本书制作的人员有吴涛、王卫国、宋艳华、陆波、杨丽坤、周涛、庞爱民、王军、郭颖浩和吕伟臣等。由于XML Web服务是一种全新的技术,作者掌握的水平有限,所以在本书的介绍中难免会存在不足之处,恳请读者批评指正。 孙永强 2002年9月