内容简介XML和基于XML的Web服务是近20年来IT技术发展的又一件大事,并将逐渐走进Internet行业中大多数人的生活和工作中。本书深刻揭示了XML在即将到来的数据革命中的作用和用于构建分布式信息系统的真实价值;解释了XML如何改变管理数据和构建软件系统的方式。本书主要包括如下内容:XML及其在企业扩展中的作用,XML技术系列、实际应用和安全,.NET和J2EE如何满足Web服务事务处理和安全方面的要求,ebXML和基于过程的Web交互,如何发挥基于大型机的传统应用的新作用,以及满足对等计算的Web服务的发展前景。本书内容生动、丰富,用平实的语言介绍最新技术,非常适合于技术专家、管理人员和体系结构设计师阅读。XML, Web Services, and the Data RevolutionFrank P. CoyleCopyright © 2003 by Addison-WesleyOriginal English Language Edition Published by Addison - WesleyAll Rights Reserved.
前 言 XML(可扩展标记语言)和基于XML的Web服务是近20年来的“下一件大事”,并将逐渐走进将来的软件和Internet行业中大多数人的生活和工作中。在许多观察者中有这么一种倾向,他们把World Wide Web视作高科技产业的一部分,并把它的发展描述成受某种理解模糊的技术强制力所驱动。Web服务是(就如本书一样)“如果我们建立它,它们将到来”假设的一个特别清楚的例子,此假设倾向于赞同只将Web作为高科技板块一角的观点。大型软件公司经理的演讲喜欢称赞即将到来的Web服务时代,而不会解释这将如何以及为何会发生。关于这一新“模式”是众说纷纭,但它们都没有解释:如果把软件作为服务而不是用CD出售在技术上是可能的,那么希望获得有保障利益的任何人(包括软件供应商在内)将如何受益? 以下将开始讲述Web现象的更复杂的分析和XML在其发展中所发挥的作用。要了解Web的发展方向,不仅仅要了解定义它的技术,还必须了解它们之间以及Web与社会和经济体系之间是如何交互作用来产生巨大的影响的,而这些影响远远大于技术部分的总和。按此观点,Web不是被设计出来的;它的发展方式不是孕育它的技术的发明者所能预见的。没有哪个梦想家描绘过我们今天所拥有的东西,直到它成为现实;也没有哪个委员会描述过对Web的需求,并修订设计来实现它。相反,当TCP/IP和HTTP产生了适度可靠的通用网络,简单而强大的HTML(以及后来的XML)标记语言几乎普遍地被浏览器和创建工具支持时,Web的特征就是这个时候突然出现的属性。 这不是对优秀工程技术在许多定义它的单个组件(如:IP路由器、HTTP服务器以及HTML/XML浏览器和编辑器)的重要产品的成功中的作用不予重视。可靠性工程的原则与那些有助于生存发展的工程相同(简单性、模块化、容易使用和便宜等等)。相反,如果理解它是困难的,则建立它也将是困难的;如果它的建立是困难的,则它将中断;如果它中断了,则它将不能生存。虽然如此,为了解Web是如何像我们已经知道的那样从分离的组件中出现的,以及预测出它在将来的发展,就需要从一种更高层次、较少技术驱动的角度看问题。 本书很好地解释了Web/XML现象,清楚地描述了它从哪里来、为何它被证明是如此有用以及它将把我们带往何处。它提供了各种有关XML的规范和标准化组织,尤其是那些与Web服务有关的规范和标准化组织的全部技术概述。更重要的是,本书作者解释了它们是如何协同作用的,以及在今天和不远的将来怎样用它们来处理实际业务。本书把这些自底向上和自顶向下的方法组合在一起,因而,适合于技术专家、管理人员和体系结构设计师阅读,技术专家需要对发展迅速且令人困惑的XML和Web服务规范的详细介绍,管理人员试图掌握它的所有商业涵义,而体系结构设计师需要把这二者整合起来。 本书最重要的作用是,展示XML如何接受和扩展培育WORLD WIDE WEB的体系结构准则: 简单性:在不确定时,选择最简单的(来实现)解决方案。 模块化:不要试图构建“能做全部事情”的软件,每个组件应该做好一件事,以使能按未预料到的方式复用它。 松耦合:组件之间的联系应尽可能少,以便在需要时进行互换和升级。使用诸如Web这样的松耦合系统,设计者就不必留意每一个细节;他们使交互的可能性达到最大,并关注着系统的成长。 突现行为:当简单、模块化、松耦合的组件以新方式组合和复用时,将出现惊人的可能性。 换言之,强大的系统应当建立在简单、松耦合组件的基础之上;将来不是在大公司的实验室或会议室中设计XML支持的Web,但由于XML把数据从创建它的应用程序中解放出来,XML将以出人意料的方式发展。Web服务最基本的标准SOAP,就是一个很好的例子。大型公司多年来努力使各种专用“远程过程调用”工具能很好地工作,并使其广泛地被开发人员使用。行业团体也努力为完善一种与平台和供应商无关的标准而进行着同样的工作。虽然Java RMI、Microsoft的 COM/DCOM和OMG的 CORBA都是稳定的、广泛使用的技术,但它们都不是以“惊人速度”产生的。然而,SOAP已经创造了奇迹,虽然它的功能不多,也没有它前面的技术成熟,但通过运用可互操作的HTTP服务和XML的平台无关性,它已解决了许多原先认为困难的问题。Coyle的读者将会很快认识到SOAP的“突现属性”,这些属性会组合互补技术,以产生一种新的组合产品,而这一组合产品不仅仅是它的各部分之和。 数据从应用程序中的解放就是本书所指的“数据革命”。与EDI系统(它既指定数据格式,也指定协议)和Java RMI(它与Java Virtual Machine操作环境相关)不同,XML是纯数据,可用于任何环境,并可用任意可行的方法进行交换。与所有以对象为中心的方法(即使是与平台无关紧密联系的方法,如Java或CORBA)相比,通过使数据独立于编程和传送,XML处理组件就更能模块化,并可组合成更为松耦合的系统。此外,一旦数据采用XML格式,则使用XML编码的信息是否是“实际”文档、消息、RPC调用或其他形式就无关紧要了;现在已有越来越多的规范和工具用来查询、操作、确认、转换和显示XML数据。那些本质上不能用XML技术执行的操作可以用任意现代软件开发语言或工具来定义。 关于怎样把XML、Web服务和数据革命的消息应用于现实生活,专家们的意见尚不统一。首先,许多计算机业界专家认为:在行业标准规范可用来定义供应链中业务间消息的格式之后,XML才能真正实现。他们相信XML的采用被“巴别塔”或XML成果的“割据”所阻碍。毫无疑问,这种分析是正确的,但若从松耦合Web前景而不是通常的紧耦合前景来考虑,结论将与此不同。使用相互间仅有最少联系的松耦合系统(例如,Web服务的调用约定的WSDL描述),设计者能有效地最大化交互作用的可能性,而不是迫使每个组件都符合总体计划。HTML和HTTP将文本世界从应用程序的紧耦合、专用格式和协议中解放出来,当用某种与此相同的新方式联结和复用组件时,才能真正体现松耦合Web服务的作用。 同样地,虽然本书作者没有明确地讨论这一点,但从他的分析可知:由于Web和XML的成功依赖于简单性、模块化和松耦合,所以要防止下面的趋势:标准组织在规范中增加功能,供应商把实现工具组合到更“有效的”的软件包。实际上只要把新功能放在现有模块之上(最优化没有改变Web组件的外部行为),或者把新的简单性、模块化、松耦合技术添加到“菜单”中,便能取得满意的效果。虽然易用性和性能与Web的基本原则不相符合,然而,它并不会危害这一利益如此之多的系统的发展。 仔细阅读本书也许会改变人们对XML和Web技术的思考方式。Frank Coyle对XML在我们正经历着的各种软件、Internet和数据革命中的作用作出了新的展望,并对其进行了详细论述。毋庸置疑,阅读本书将有助于您对XML技术及其使用范围的理解,有助于您更好地使用它。 Michael Champion 高级研发专家 Software AG, Darmstadt, Germany