??xml version="1.0" encoding="utf-8" standalone="yes"?> IBM ?ESB 的立场是——ƈ且一贯是——认?ESB 作ؓ SOA 中的一U体pȝ构模式发挥了Ҏ(gu)性的作用。ESB 是实现成?SOA 采用的重要入口点Qƈ且是M面向服务的解x案的关键成功因素。事实上Q作为对 SOA 中的 ESB 承诺的一部分QIBM 提供了实?ESB 模式?a cmimpressionsent="1">三个战略产品?/p>
本系列的W?1 部分描述了企业服务ȝ (ESB) 体系l构模式如何适应 IBM SOA FoundationQ以?ESB?Foundation 的其他部分如何相兟?/p>
本文介绍以下主题Q?/p>
IBM SOA Foundation 白皮?/font>描述?IBM 交付 SOA 价值的整体Ҏ(gu)。SOA Foundation 的参考体pȝ构(?1昄了逻辑模型视图Q的核心中具?ESB。该参考体pȝ构的描述声明“ESB 的存在是化服务调用Q务的基础”。虽然该白皮书是?2005 q末发布的,但是其中预述的论点却随着旉推移而通过我们在采?SOA 的客h面的l验得到加强?/p>
本系列的W?1 部分表明?ESB 是称?SOA 的更大体pȝ构模式中的一个关键体pȝ构模式。充当中间层?ESB 提供了服务交互中参与者之间的松散耦合q接Q从而提供了 SOA 的中枢。作Z间层QESB 执行服务虚拟化以协调服务hE序和服务提供程序之间的差异Qƈ提供面向斚w的连接以用作诸如理和安全性等 SOA {略的执行点。松散耦合允许解决Ҏ(gu)中的l成部分之间d分离x事项Q时间上、技术上和组l上的分)Q从而同时支持业务流E和 IT pȝ的灵zL和敏捷性?/p>
通过 ESB 实现的松散耦合的部分优点(包括本系列的W?1 部分详细描述的服务虚拟化和面向方面的q接中所固有的优点)如下Q?/p>
一ơ性全面采?SOA 可能是一艰巨的d。IBM 已确定了五个SOA 入口?/font>Q这些入口点提供了有兛_何开始渐q地采用 SOA 的指对{渐q的采用Ҏ(gu)允许企业以最适合需要的方式和步调采?SOA。ؓ什么我们要定五个入口点?单的原因在于众口难调Q企业的在成熟度U别和特定需求方面各不相同,适合于一家企业的入口点可能不适合于另一家企业。这五个入口点基于已D我们的客h功实C SOA 的方法。存在两U类别的入口点: (zhn)也许已l从SOA Foundation 白皮?/font>中预料到Q?em>q接?/em>意味着使用 ESB ?#8220;通过更加安全、可靠和可~的Ҏ(gu)?IT 环境Q从而在企业内外q行q接”。IBM 认ؓQ虽?ESB 无疑是一U以 IT Z心的 SOA Ҏ(gu)Q但?#8220;它本w交付了实际业务价|q且是将来的 SOA 计划的核心构?#8221;。本文中的一个关键问题(在下面q行讨论Q是如何最好地使用 ESB 来Ş成将来的 SOA 计划的构Ӟ以及如何通过q接性入口点获得最大的业务价倹{?/p>
存在多种利用q接性入口点的方法。有时客户已l在其环境中定义了一些服务(也许是通过合作伙伴Q,不过是直接连接的服务Q这U情况导致缺乏灵zLƈ增加理成本。如上所qͼ在此cȝ境中插入 ESB 可以提供直接的松散耦合优点。此外,ESB 的存在ؓ来定义附加服务、创造附加重用机会、支持新的重用渠道、降低管理成本和获得更多敏捷性的工作创造了条g?/p>
客户通常知道 ESB 的h(hun)值ƈ渴望开始从 ESB 中实现好处,但是他们q没有在其环境中定义服务。我们看C两种已采用过的成功技术,q两U技术帮助在q种情况下从 ESB 获得好处。客L常合用重用和q接性入口点。他们确定需要作为服务来q接的功能或应用E序Q请求程序或提供E序Q。同Ӟ他们?ESB 插入该体pȝ构,以提供新的服务请求程序和提供E序之间所需的松散耦合。合方法得以流行的一个重要因素是 ESB 产品的{换和变换功能。此cd能允怋用同一?ESB 产品作ؓ某种形式的适配器,以便以更加可重用的Ş式公开功能或应用程序,q提供所需的服务虚拟化和面向方面的q接。这里成功的关键是}慎地开始,公开量的服务ƈ开发对应的中介Q但是这些服务和中介都在虑中的整个最l范围而设计的体系l构之内?/p>
有些客户插入 ESB 以徏立组l中q接的所需方向Q尽v初还没有定要连接的服务。在此情况下QESB 是组l的M参考体pȝ构的一部分Q?em>参考体pȝ?/em>提供了体pȝ构方向,q强制要求最l将作ؓ解决Ҏ(gu)一部分而创建的所有服务(hE序和提供程序)q行松散耦合q接。ESB 是用于实现该松散耦合的首选机制。采?ESB 实际上消除了解决Ҏ(gu)中的直接q接不知不觉地增长的可能性。这里成功的关键是: 存在一l?IBM 强烈用于M SOA 采用的最?jng)_c这些最?jng)_늚最重要元素是徏立一个\U图q渐q地实现该\U图Q该路线囑֮义了实现所需业务目标的采用计划(请参?a cmimpressionsent="1">参考资?/font>部分以获得指向文?#8220;Service Oriented Architecture:An Introduction for Managers”的链接)。该路线囑括两个重要组成部分: 此类路线囑օ许?zhn)渐进地实?SOAQ以在每个项目步骤中回报业务价倹{?/p>
(zhn)应该在执行该\U图的早期确定?zhn)业务的最?SOA 入口炏V?zhn)应该Z从?zhn)的M战略q景和当?SOA 成熟度别得出的要求来选择该入口点。该入口点可能是也可能不是连接性入口点Q它可能是上q入口点的合。但是,q接性入口点是最普遍的入口点Q因为有如此多的客户h请求程序连接到提供E序的即旉要,q希望获?ESB 提供的松散耦合的好处。IBM 提供了一个在U工?a nmouseover="linkQueryAppend(this)" cmimpressionsent="1">Business Value AnalyzerQ以帮助(zhn)选择 SOA 入口炏V?/p>
另一个最?jng)_跉|建立ȝ框架以确保组l遵循该路线图(请参?a cmimpressionsent="1">参考资?/font>以获得指向文?#8220;SOA Governance and Service Lifecycle Management”的链接)。SOA 所促进的灵zL增强和跨组l性质要求l织建立ȝ框架Q以实现d的决{制定、准的跟踪、改q的服务能力和更好的交流。有效的ȝ通过在增Mh(hun)值的同时q风险和回报,从而帮助实C业的业务目标?/p>
正如上面所的,渐进?SOA 采用是成功的关键。IBM 从试验项目开始,该试验项目: 通过 SOA 实现的关注事分ȝ臛_许试验项目以能够U篏专业l验和验证业务h(hun)g不中断主要操作的方式引入 SOA?/p>
除了 SOA 最?jng)_践以外,q存在其他更特定?ESB 的最?jng)_践: 前面几个部分说明了从 ESB 开始成功的 SOA 之旅。另外四个入口点不需?ESB 卛_开始该旅程。然?IBM 认ؓQ无论其入口Ҏ(gu)什么,l大多数成熟的面向服务的解决Ҏ(gu)都将包括 ESBQ以最大化 SOA 中所需的敏h和灉|性。因此,虽然初始目可以不包?ESBQ但是在(zhn)的长期业务?IT 路线图中QESB 应该是参考体pȝ构的一部分Q以实现成功?SOA。如果没?ESB 提供的敏h和灉|性,(zhn)会发现在面临不可避免的变更Ӟ理解决Ҏ(gu)变得非常困难,q且开销很大?/p>
q是否意味着在准备好包括 ESB 在内的所有体pȝ构组件之前,(zhn)还没有拥有真正?SOA 呢?此问题没有正或错误的答案,q且可能存在许多选项。在某种E度上,此问题ƈ不重要——重要的是在实现新的 SOA 目以及解决Ҏ(gu)Ҏ(gu)(zhn)的路线N渐变得成熟Ӟ(zhn)要渐进地向业务交互来多的h(hun)倹{?/p>
我们的客户好像同意这个观炏V几乎我们的所有采?SOA 的客户都?ESB 开始,或最l在解决Ҏ(gu)中用了 ESBQƈ?ESB 支持的灵zL和敏捷性中获得了重大的 IT 和业务h(hun)倹{?/p>
IBM ?ESB 的重视及其对 ESB 的承Z现在我们如何使用产品来行对 SOA Foundation 的承Z。IBM 推出了一个品系列,其中包括三个实现 ESB 体系l构模式的品: Z么要推出三个产品Q同h׃众口难调。所有三个品都实现?ESB 模式Q但是分别强调了使它们适合于特定情늚特定功能。?zhn)?a cmimpressionsent="1">developerWorks上找到许多文章和IBM U皮?#174;Q编写这些内容的目的是ؓ了帮助在面向服务的解x案中使用q些产品?br />
本文再次?IBM 一如既往的信从ͼ?ESB 是称?SOA 的更大模式中的一U基本体pȝ构模式。?zhn)通过阅读本文了解?ESB 如何帮助?SOA 获得业务价|以及 ESB 如何成ؓ成功?SOA 采用的重要入口点——ESB 模式是如此重要,以致?IBM 目前?SOA Foundation l合中推Z三个实现该模式的战略产品?
2005q?1月, IBM、BEA、IONA、Oracle、S{几家厂商就合作建立新的业内规范来简?SOA 应用发展达成了一_共同发布了两w对SOA的重要构件模型规范——SCA 0.9和SDO。此后,该团体陆l吸引了Red Hat、普元、TIBCO{多家公司的加盟QŞ成了OSOAQOpen Service Oriented ArchitectureQ联盟,目前成员数量辑ֈ18家。OSOA联盟旨在为SOA赯一pd的规范,q以免版E的许可方式提供l业界用。AP 2007q?月,OSOA联盟宣布了SCA和SDO规范中关键部分的完成Q发布了SCA 1.0和SDO 2.1Qƈ其正式提交lOASISQ通过其开攑ּ标准q程q行推动?/p>
SCA规范旨在化服务的创徏和合成,对于q用ZSOA方式服务的应用构建十分关键。随着SCA规范的完成,联盟合作厂商希望其标准化过E提交给OASIS。此外,联盟厂商也已完成了SDO规范Q旨在实现对多个站点中多U格式数据的l一讉KQƈ把SDOZJava的规范开发和理提交lJavaC֛q程QJava Community ProcessQJCPQ组l,而基于非Java的规范(C++Q提交给OASIS?/p>
SCA和SDO规范能帮助企业更便捷地创建新的以及改造现有的IT资Q之可复用、易整合Q以满不断变化的业务需求。这些规范提供了l一服务的途径Q大大降低了在应用开发过E中Q因E序设计语言与部|^台的不同而生的复杂性。SCA和SDO规范都是用于化业务逻辑和业务数据呈现的新兴技术?/p>
“我们对OSOA联盟取得q一里程成,q择了在接下来通过开放标准过El推动这一重要工作表示Ƣ迎和赞赏,”OASIS CEO和总裁Patrick Gannon_“我们希望能进一步推qSCA规范Q实现标准化Q获得最q泛的行业应用?#8221; OASIS不只是研I和产生标准Q同时也跟其他国际组l一起合作推动标准的采用和技术的发展。通过十多q的努力QOASIS已经得到q泛的承认,可以直接向国际标准组l、国际电(sh)联和联合国相x准组l直接提交标准提案?/p>
SCA是一U规范,它开发h员可以将注意力集中在业务逻辑的编写上。更直接地说Q它是一U大大改q了的部|描q符Q它可以使用M语言而不限于Java。此外,~程人员q可以用编E式语言和声明式语言Q比如BPEL和XSLTQeXtensible Stylesheet Language TransformationQ扩展样式表转换语言Q。SCA的特别之处在于,它对安全性、事务和可靠消息传递之cȝҎ(gu)用了声明式策略的理念?/p>
SCA是专门针对SOA设计的,而不像J2EE只是面向SOA做了修改。SCAx的是如何描述按照各种~程模型和协议编写的lg所l成的程序集。SCA允许开发应用程序集而不考虑特定的API或具体语a。中间g SCA的核心概忉|服务及其相关实现。服务由接口定义Q而接口包含一l操作。服务实现可以引用其他服务,UCؓ引用。服务可以有一个或多个属性,q些属性是可以在外部配|的数据倹{?/p>
SCA中的一个关键推动因素是SDOQService Data ObjectQ服务数据对象)。SDO用于表示业务数据、参C及服务调用的q回|当它遍历服务|络Ӟ它还是一U表C数据的方式。注意,也可以用XML Beans及其他技术?/p>
SCAlg被组成ؓE序集。程序集是服务的应用程序,它是服务的集合,q些服务被连接在一Pq进行了正确的配|。SCAE序集运行在两个U别Q第一U情况,E序集是pȝ内的一l松散连接的lgQ另一U情况,E序集是模块内的一l松散连接的lg。二者的区别在于Q一般来_模块是组件的集合Q而系l是模块的集合。此外,pȝ对应?#8220;大规模编E?#8221;Qprogramming in the large或megaprogrammingQ,而模块对应于“规模编E?#8221;Qprogramming in the smallQ,比如构徏当今的典型应用程序?/p>
组件连接到它所依赖的服务的方式是服务|络“装配”的方式。程序集已经在许多技术和框架中广为应用,比如CORBA、J2EE、ATG Dynamo和SpringQ也是_它ƈ不是新出现的。从q些技术中我们可以知道Q程序集提供了许多重要的优点Q比如更L的P代开发,以及避免使业务逻辑依赖于中间g容器。SCA使用E序集解决了许多SOA开发中的重要问题,包括Q?/p>
*业务逻辑与底层基架构、服务质量和传输的分R?/p>
*“规模编E?#8221;?#8220;大规模编E?#8221;的联pR?/p>
*为架构的设计、编码和操作性部|在自底向上Qbottom-upQ和自顶向下Qtop-downQ两U方法中来回切换提供了一U统一的方式?br />
]]>
SCA的基本思想是将业务功能作ؓ一pd服务来提供,q些服务l合CP以创建满特定业务需要的解决Ҏ(gu)。这些复合应用程序既可以包含专门应用E序创徏的新服务Q也可以包含来自现有pȝ和应用程序的业务功能Q作为复合应用程序的一部分来重用)。SCA为服务组合和服务lg的创建(包括SCA复合应用E序内部现有应用E序功能的重用)提供了模型?br />
注:UML也是一U徏模语aQ而可以看到SCAlg模型是对应的不是UML中的c,而可能是一个粗_度的组件包Q对于粗_度的组件包Q特别是一个服务组Ӟ我们x的就是它暴露了哪些服务,有哪些属性,引用了哪些其它子lg{。这些描q清楚了一个服务基本就描述清楚了。特别是在构建组合服务的时候,我们看到服务和应用描q方式很Ҏ(gu)多个子lg串联在一P而不需要通过BPEL服务~排方式实现?/span>
SCAq一模型旨在包含q泛的服务组件技术以及用于连接这些组件的讉KҎ(gu)。对于组Ӟ它不仅包括各U编E语aQ还包括通常与这些语a一起用的框架和环境。对于访问方法,SCA复合应用E序允许使用各种常用的通信和服务访问技术,例如QWeb服务、消息传递系l和q程q程调用QRPCQ?br />
SCA包括如下规范
服务lg提供l别的服务调用的入口叫Interface(接口)。而服务组件本w可能也需要调用别的服务,q个调用出口叫Reference(引用)。无论是接口q是引用Q其调用规范都是WSDL或Java接口SCA服务lg与传l组件的主要区别在于:
服务数据对象QSDOQ?/span>
l一讉K不同数据源的数据~程模型Q让开发h员可以从不同的数据源以统一的方式访问和操纵数据。服务数据对象(SDOQ的设计是ؓ了简化和l一应用E序处理数据的方式。利用SDOQ应用程序编Eh员可以一致地讉K和操U|自异构数据源的数据,包括关系数据库、XML数据源、Web服务和企业信息系l?br />
在SDO中有两个要素Q一个是数据视图Q一个是数据视图中的数据对象。数据视图是描述数据对象的分层结构,包括数据对象树和更改摘要Q而数据对象是保存数据的组Ӟ有键/值对l成Q每个值可以是原始的数据类型,也可以是一个数据对象,q支持序列化?br />
Z要采用SCA和SDO?因ؓ通过SCA和SDO获得了更高的灉|性和更高的开发效率。可以在不改变应用程序情况下,使用不同的技术来作ؓlg的实?或者改变通信协议{等Q同时模块也可以Ҏ(gu)Ҏ(gu)的被重用和组装,易于修改和变更?/span>
]]>
]]>
XML技术自出现以来发展非常q速,在许多领域内得到q泛的支持而有着qK的应用前景。例如电(sh)子数据交换、电(sh)子商务等更是XML作ؓ一U基性、支柱性的技术来看待?/p>
1、数据库?/strong>
数据库系l是随着计算机技术的不断发展Q在特定的历史时期、特定的需求环境下出现的。在1946q的W一台计机?0世纪60q代qO长的20q里Q计机操作pȝ主要局限于文g的操作,Ҏ(gu)据的理也主要是通过文gpȝ来实现。进行计所需要的各种数据存放在各自的文g里,使用q些数据时将文g打开Q读取文件中的数据到内存中,当计完毕后Q将计算l果仍旧写入到文件中去,它的不主要集中在无法对数据q行有效的统一理。针Ҏ(gu)件系l的重要~点Qh们逐步发展了以l一理数据和共享数据ؓ主要特征的系l,x据库pȝ?964q_国通用甉|公司开发成功了世界上的W一个数据库pȝIDS(IntegratedDataStore)。IDS奠定了网状数据库的基Qƈ得到了广泛的发行和应用,成ؓ数据库系l发展史上的一座丰?969q_国国际商用机器公司(IBM)也推Z界上W一个层ơ数据库pȝIMS(InformationManagement System)Q同样在数据库系l发展史上占有重要的C?/p>
70q代初,E.F.Codd在ȝ前面的层ơ、网状数据库优缺点的基础上,提出了关pL据模型的概念及关pM数和关系演算。在70q代Q关pL据库pȝ无论从理Zq是实践上都取得了丰的成果。在理论上确立了完整的关pL型理论、数据依赖理论和关系数据库的设计理论Q在实践上,世界上出C很多著名的关pL据库pȝQ比较著名的如SystemR、INGRES、Oracle{?/p>
与文件系l相比,数据库系l有几个斚w的特点:向用h供高U的接口Q向用户提供非过E化的数据库语言(即SQL语言)Q查询的处理和优化;q发控制Q数据的完整性约束?/p>
q入80q代之后Q计机g技术的飞速提高促使计机应用不断深入Q生了许多新的应用领域Q例如计机辅助设计、计机辅助刉、计机辅助教学、办公自动化、智能信息处理、决{支持等。这些新的领域对数据库系l提Z新的要求。但׃应用的多元化Q不能设计出一个统一的数据模型来表示q些新型的数据及其相互关p,因而出C癑֮争鸣的局面,产生了演l数据库、面向对象数据库、分布式数据库、工E数据库、时态数据库、模p数据库{新型数据库的研I和应用?/p>
2、XML?/strong>
XML推荐标准1.0版发布于1998q?月,之后q速在全球掀起了XML应用的浪潮。XML是一U描q型的标记语aQ与HTML同ؓSGML(标准通用标记语言QISO-8879国际标准)的一U应用。由于XML在可扩展性、可UL性和l构性等斚w的突Z点,它的应用范围H破了HTML所辑ֈ的范围?/p>
一XML文档由标记和内容l成。XML中有六种标记Q元?elements)、属?attributes)、实体引?entityreferences)、注?comments)、处理指?processinginstructions)和CDATAD?CDATAsections)。XML与HTML最显著的不同是XML文档中引入了“文档类型声明?Document Type Declarations)。DTD使文档可以与分析器交关于它的内容的元信息。DTD的出玎ͼ赋予了XML文档可扩展性、结构性和可验证性,使XML具备了类g数据库的一些性质Q可以利用XML来组l和理信息Q又可以与HTML一样在览器中方便地表C,在Internet上高效地传递和交换。考虑CHTML的兼容,DTDq不是XML文档必需的成份。具有DTD的XML文档UC“Valid”,否则是“Well-formed”?/p>
目前Q处理XML文档的方式主要有SAX与DOM两种。SAX(SimpleAPIforXML)是一U基于流的、以事g处理方式工作的接口。SAX 2.0?000q?月发布,增强了许多功能,包括对名字空间的支持。DOM(Document Object Model)则是在对XML文档q行分析后,在内存中建立起一个完整的树结构,然后在此基础上进行各U操作。简单地比较来看QSAX对系l资源要求低、速度快,但对文档的操作是只读的;DOM的处理能力强大,但要求大量的pȝ资源Q尤其是对于大的文档。而后q出CXpath和Xpointer用以完成XML的搜索和转换QXSL、XSLT和SOAP用以完成XML的远E对象访问,XML Query Languages的出CXML查询语言可用于Q何XML文档?/p>
3、XML与数据库
XML文g是数据的集合Q它是自描述的、可交换的,能够以树型或囑Şl构描述数据。XML提供了许多数据库所具备的工P存储(XML文档)、模?DTDQXMLschemaQRE1AXNG{?、查询语a(XQueryQXPathQXQLQXML-QLQQUILT{?、编E接?SAXQDOMQJDOM){。但XMLq不能完全替代数据库技术。XML~少作ؓ实用的数据库所应具备的Ҏ(gu):高效的存储、烦引和数据修改机制Q严格的数据安全控制Q完整的事务和数据一致性控Ӟ多用戯问机Ӟ触发器、完善的q发控制{。因此,管在数据量、用户少和性能要求不太高的环境下,可以XML文档用作数据库,但却不适用于用户量大、数据集成度高以及性能要求高的作业环境?/p>
随着Web技术的不断发展Q信息共享和数据交换的范围不断扩大,传统的关pL据库也面临着挑战。数据库技术的应用是徏立在数据库管理系l基上的Q各数据库管理系l之间的异构性及其所依赖操作pȝ的异构性,严重限制了信息共享和数据交换范围Q数据库技术的语义描述能力差,大多通过技术文档表C,很难实现数据语义的持久性和传递性,而数据交换和信息׃n都是Z语义q行的,在异构应用数据交换时Q不利于计算机基于语义自动进行正数据的索与应用Q数据库属于高端应用Q需要昂늚h和运行环境。而随着|络和Internet的发展,数据交换的能力已成ؓ新的应用pȝ的一个重要的要求。XML的好处是数据的可交换?portable)Q同时在数据应用斚wq具有如下优点:(1)XML文g为纯文本文gQ不受操作系l、Y件^台的限制Q?2)XMLhZSchema自描q语义的功能Q容易描q数据的语义Q这U描q能机理解和自动处理;(3)XML不仅可以描述l构化数据,q可有效描述半结构化Q甚至非l构化数据?/p>
4、XML文g的存?/strong>
XML文g的存储方式有三大c:(1)文件存储于文gpȝ(StoringDocumentsinthe File System)Q?2)文件存储于BLOB(Storing Documents in BLOBs)Q利用数据库的事务管理、安全、多用户讉K{优炏V此外许多关pL据库提供的检索工具可以进行全文检索、近似检索、同义词索和模糊索。其中某些工具将会支持XMLQ这样就可消除将XML文g作ؓU文本检索所带来的问题?3)文件存储于原生XML数据?Native XML DatabasesQNXD)。NXD是专用于存储XML文g的数据库Q支持事务管理、安全、多用户讉K、编EAPI和查询语a{。与其它数据库的唯一区别在于其内部模型是ZXML的。其中,最重要的存储方式当属原生XML数据库?br />
4.1、原生XML数据?/strong>
原生XML数据?NativeXMLDatabases)为XML文档定义了一?逻辑)模型QƈҎ(gu)该模型存取文件。这个模型至应包括元素、属性、PCDATA和文仉序。其例子有XPath数据模型、XMLIn-foset以及DOM所用的模型和SAX 1.0的事件。它以XML文g作ؓ其基本存储单位,对底层的物理存储模型没有Ҏ(gu)要求。例如,它可以徏在关pd、层ơ型或面向对象的数据库之上,或者用专用的存储格式Q比如烦引或压羃文g?/p>
NXD最适于存储以文档ؓ中心的文件。这是由于NXD保留了文件、顺序、处理指令、注释、CDA-TA块以及实体引用等Q而支持XML的数据库XED(XML-enableddatabase)无法做到。XED是在原有数据库基上扩展了XML支持模块Q完成XML数据和数据库之间的格式{换和传输。从存储_度上,可以把整个XML文档作ؓRDBMS表中一行,或把XML文档q行解析后,存储到相应的表格中。ؓ了支持W3C的一些XML操作标准QXpath、XED提供一些新的原?如Oracle9iR2增加了一些数据包来操作XML数据{?Qƈ优化了XML处理模块?/p>
NXD一般采用层ơ数据存储模型,保持XML文档的树形结构,省掉了XML文档和传l数据库的数据{换过E。NXDq适用于存储“天然格式”ؓXML的文ӞNXDq可以存储半l构化数据、在某种特定情Ş下提高存取速度以及存储没有DTD的文?良构的文??/p>
4.2、原生XML数据库的l构
原生XML数据库的l构可分Z大类Q基于文本的和基于模型的?/p>
Z文本的NXD(Text-BasedNativeXMLDatabases)XML作ؓ文本存储。它可以是文件系l中的文件、关pL据库中的BLOB或特定的文g格式。基于文本的NXD与层ơ结构的数据库很怼Q当存取预先定义好层ơ的数据Ӟ它比关系数据库更胜一{V和层次l构的数据库一P当以其它形式比如转置层次存取数据ӞNXD也会遇到ȝ。这个问题的严重E度未可知Q很多关pL据库都用逻辑指针Q相同复杂度的查询以相同的速度完成?/p>
Z模型的NXD(Model-BasedNativeXMLDatabases)是根据文件构造一个内部模型ƈ存储q个模型。有些数据库该模型存储于关pd和面向对象的数据库中Q例如在关系型数据库中存储DOMӞ׃有元素、属性、PCDATA、实体、实体引用等表格。其他数据库使用了专U模型优化了的存储格式。用专用存储格式的Z模型的NXD如果以文件的存储序d文gQ其性能与基于文本的NXD怼?/p>
4.3、原生XML数据库的Ҏ(gu)?/strong>
原生XML数据库的Ҏ(gu)?FeaturesofNativeXML Databases)有:(1)文g?Document Collections)Q支持集?Collection)的概念,其作用相当于关系数据库中的表和文件系l中的文件夹?2)查询语言(Query Languages)Q最常用的有XPath(对多个文件的查询作了扩充)和XQLQ以及专有的查询语言?3)更新和删?Updates and Deletes)QNXDҎ(gu)件的更新和删除方式从单的替换或删除现有文ӞC改当前活动的DOM树,以及用于指定如何修改文g片断的语a?4)事务、锁定和q发(TransactionsQLockingQand Concurrency)Q支持事务处理。锁定通常是对整个文档的,所以多用户q发性相对较低。问题的大小取决于应用程序以及“文件”的构成?5)原生数据库提供应用程序接口API(Application Programming InterfacesQAPIs)?6)NXD的一个重要特性是它可以ؓXML文档提供“往qR?round-trip)”。可以将XML文g存放在NXD中,而且再取回“同L”文件。对于以文档Z心的应用E序来说非常重要Q因为CDATA部分、实体用法、注释和处理指o是这些文档不可缺的l成部分。特别是对于法律和医学文Ӟ按规定这些文档必要保持原样?7)外部数据(Remote Data)Q某些NXD可包含有外部数据Q它来自存储在数据库中的文档。通常q些数据通过OD-BC、OLE DB或JDBC从关pL据中取出Q模型可以是Z表格的或对象-关系型映?8)支持元素和属性的索引?/p>
5、结?/strong>
XML技术的出现Q数据处理从文件方式到数据库系l再到文件方式的循环Q但新的文g方式已经与最初的文gpȝ有了本质的区?---格式化文档。XML和关pL据库在数据应用和数据理斚w各有优势?/p>
一斚wQ我们要研究数据库的新技术、探索数据库的发展方向;另一斚wQ在数据库的基本实现基础上,d必要的新技术是探烦新数据库的发展方向?/p>
目前Q正当用户们准备引入真正的XML数据库品之ӞMicrosoft和IBM{传l数据库厂商已经发v了更加猛烈的竞争d。此外,Oracle和Sybase也在努力说服企业IT部门采用自己的下一代数据存储技术以及与之相关的数据理和应用开发工兗?/p>
498)this.style.width=498;" border=1>
热烈Ƣ迎XML
在IDC最q发布的一份报告中Q?00家受访企业的IT部门中有29%Uͼ正在大量使用XML存储库和数据库;U有同样比例的受访者称Q正在探索这斚w的用前景。此外,q项研究q发现XML技术的使用是非常广泛的Q包括编辑器、基于XML的电(sh)子表格和XML图表{。其中,U有三分之一的受访者都在用其中的一U技术,其比例与声称正在探烦此类技术用前景的受访问者几乎相同。随着用户兴趣的提高,传统数据库厂商开始调整自q产品计划Q而原有的XML服务器厂商则更加野心勃勃地投w于市场的竞争?
微Y公司?005q年底发布了代号为Yukon的SQL Server 2005。该产品可以存储和处理XML数据Q且无须这些数据{换ؓ关系列和行,更不需要将其存储ؓ二进制大型对象。编Eh员可以用XML Query或称XQuery来检索XML数据。这U语a卛_获得World Wide Web ConsortiumQW3CQ的批准?/p>
IBM正在对其DB2 Viperq行试。该产品可以存储传统的关pL据和XML数据。按计划QViper于今年晚些时候正式推出。IBM已经明确指出QViper的XML数据理能力完全W合面向服务架构QSOAQ的要求。在面向服务的架构中Q用户可以用标准的Web服务界面对程序和所有格式的数据q行分类、查找、访问和使用?
目前QW3C创徏XQuery最l徏议的工作已经完成。XQuery 创建出一U标准的查询语言Q能够对已经存储的XML数据q行讉K和处理。在XML的环境中Q该语言相当于SQL语言在关pL据库中的CQƈ且可以大q度地简化XML应用的编E过E?
XML提高非l构性文件的通用表达能力Q这cL件包括文档、报告和表格。Gartner集团高性能市场事业的副总裁Rita Knox_“高端出版应用Q如航空航天和汽车工业的技术手册)在很久以前就开始用XML。但目前QXML正在朝着更脓(chung)qh们日常生zȝ领域q军Q如银行业)。美国银行业中正在开发一U名为可扩展商业报告语言QXBRLQ实现通用的XML表达Q主要用于向联邦储蓄保险公司发送资产及负债报告和其他信息?#8221;
拿来做些什?/strong>
厂商的热捧ƈ不奇怪,但更为关键的问题是提供内Ҏ(gu)务方面能够用XML做些什么事QIDC内容技术项目主Melissa Webster_下一阶段的开发工作就正在q些斚w作出努力?
大体上看Q原有的XML数据库品和传统数据库中新展现出的XML能力在基工作斚w的表现都非常好,比如良好的扩展性、出色的性能、管理XML文档版本的能力,以及链接内容中各部分的能力等{。但Webster也认为,真正的优势来自两个更高的领域。其中一个就是连l修改内容,例如技术手册的更新或修改与工程师创建的注释和说明结合在一赗Webster这一斚w的能力称为配|管理?
其二Q是已存储的XML信息与关键业务流E联pv来。例如处理一份按揭贷ƾ或修理一架喷气式客机Q?zhn)可以从飞机的CAD工程囄开始着手,qؓ发动机维修技师生成最l技术文档,然后修理单与特定的说明和图U怸q提交给有关的维修h员。同Ӟl修工作中的重要事件将被反馈到发动机的l修历史中,q将q些内容写入那些提交l制造商和联邦航I管理局的报告中?/p>
Webster指出Q?#8220;q去Q技术手册与使用它的业务程怺隔离。在此过E中Q需要有人才能把两者联pv来。而现在,则可以借助XML内容服务把业务流E和特定内容l合h?#8221;
q种潜力q一步刺Ȁ了原有XML产品厂商在市Z的野心。尽IBM、Microsoft和Oracle{厂商在q方面的声势很大Q但投资者们昄非常看好像Mark Logicq类新兴的XML内容服务厂商?
Mark Logic公司负责客户解决Ҏ(gu)的副总裁Max Schireson指出Q?#8220;如果XML内容只是由XML包装的简单数据,那么Q用户就没有理由不用Oracle或Microsoft的品?#8221; 但是Q如果是在复杂的文档和流E中Q关pL据库很隑֯文档和其他内容实施有效的理了?/p>
比如O'Reilly Media公司使用Mark Logic服务器创Z一个系l。利用该pȝQ大学教授可以针对不同的评创徏定制的阅LE。教授们可以对O'Reilly 那些以XML文档形式存储的图书和出版物内容库q行复杂搜烦Q他们还可以d一些自q写的内容Qƈ且根据需要下订单Q由出版商负责将其印刷出来ƈ直接交付到教授们的手中?
链接QXML数据库的应用先驱
其实QXML数据库最初只是应用于一U特D品?Command金融出版C是国U约的一安融信息出版商Q该公司使用Ixiasoft XML服务器来存储和管理其共有基金客户的募股说明书。每一家客户都有多U基金,因此该公叔R要每q出版大量的此类信息。Command公司IT部门的项目管理主Will Montgomery_“很多数据都是独一无二的,但其中也有很大一部分对于所有客L基金来说都是通用的?#8221;
q去Q在~写、校寏V修改和再次校对{过E中Q即使是那些通常应保持完全一致的模板文g也必ȝ怿攏VMontgomery_“如果客户?00个基金,他们必进行数百次修改?#8221; 而在使用Ixiasoft XML服务器之后,客户在Microsoft Word 2003中完成这些修改工作只需一ơ即可,修改后的内容可随时复制到有关的文档?
现在QCommand金融公司正在评估另外一U做法,卛_股东报告q种非结构性文件中使用q种技术?/p>
一.学术界与工业界的两种不同索求
Ronald Bourret 在他那篇著名的《XML Database Products》中Q将XML数据库品分Z间g(Middleware)、支持XML的数据库(XML-Enabled Databases)、纯XML数据?Native XML Databases)、XML服务?XML Servers)、Wrappers、内容管理系l?Content Management Systems)、XML查询引擎(XML Query Engines)、XML Data Binding、Discontinued products{九(ji)U,在业界媄响很大。但是,在XML数据库的研究和开发h员眼里,或许只有支持XML的数据库、纯XML数据库能够称得上是真正意义上的XML数据库。支持XML的数据库可以被看做是支持XML数据的数据库pȝQ它可能是关pL据库、对象数据库{。就在一q半以前Q还有相当多的h在争论关pd支持的XML数据库和UXML数据库孰优孰劣的问题。但是,UXML数据库却在这U争Z(zhn)然q步Q在技术上有了长的发展?/p>
Z已经来們于认为XML数据库就是纯XML数据库。随着金融界确立XBRL(XML的一个子?标准和政府规范电(sh)子政务的XML格式Q实跉|动着XML数据库技术不断向前发展?/p>
XML数据库系l从最初简单的查询引擎Q不断地加入查询优化、事务处理、触发器、ƈ发控制、代数系l等传统的数据库技术,一步步C性能和功能上完善自己?/p>
从目前XML数据库的产品情况来看Q学术界的实验系l和市场产品之间有着些许微妙的差别,管它们的主技术是一致的?/p>
学术界完成的实验室原型系l一般侧重于下面的一些特点:
?专注于查询性能的提高,Ҏ(gu)询优化的研究较多。ؓ了提高查询效率,学术界十分重视烦引结构的设计Q先后提Z十几U适合于XML数据的烦引方式,比如影响很大、简单易用的三元l烦引,q在此基上开发出了以l构化联接ؓ基础的查询模式匹配方法?/p>
?q_无关性。在XML数据库研I的早期Q业界曾存在一个争?到底XML数据存储在关pd中,q是另外开发存储XML的物理数据库。这在一定程度上影响着XML的研I者,在设计烦引结构时必须考虑使烦引过的XML数据可以存储在多U数据库l构中?/p>
?从理论的角度较多地考虑了XML数据库的模式设计规范化问题。设计了Z键的函数依赖推理Q在如何优化XML数据库设计、消除数据冗余和不一致方面有了一些实质上的进展?/p>
工业界的XML数据库品更加强调实用,有着一些与学术界原型系l不相同的特点Q?/p>
?现有的主XML数据库品都在底层提供collection数据l构Q以存储XML元素节点Q通过B+树结构来索引q些元素节点。这一点与关系库系l的底层处理如出一辙。在collection之上一般还会有一U或两索引Q以加快查询处理速度。这一Ҏ(gu)q_无关的实验原型系l更高效实用?/p>
?市场上的数据库品通过引入日志理Q徏立了较完善的事务处理机制Q这Z层的数据库应用开发提供了便利。目前的商用XML数据库一般提供事务处理功能,包括提交、回滚和日志文g。通过提供事务日志机制Q纪录系l执行的每个事务的详l情况,保证在系l出现问题后可以完全恢复?/p>
?增强了对异构数据源的集成理。树型结构的XML数据有其难以理的一面,但是QXML技术的可扩展性又使得它具有集成异构数据源的强大能力。因此,市场上的XML数据库品普遍具有较强的集成多种数据源的功能。这也是当前市场上的XML数据库品的一大亮炏V?/p>
?实验室的原型pȝ和商用化产品
最q几q以来,在学术界和工业界的共同推动下Q如雨后春笋般诞生出大量的XML数据库原型系l和商用产品?/p>
在Ronald Bourret的《XML Database Products》中一共列?6UXML数据库品,大致上可分ؓ三大cdQ?/p>
?商业c?commercial)Q如Ipedo、Tamino、Natix、Xyleme{。其中,国Ipedo公司的Ipedo XML Database和d国Software AG公司的Tamino是其中的g者,成ؓ目前市场上的L产品?/p>
?研究c?research)Q如Stanford大学早期开发的Lore{?/p>
?开放源码类(open source)Q其中媄响较大的是Berkeley DB XML、dbXML、XDB和Xindice?/p>
需要指出的是, Lore database systems 只是Stanford大学早期针对半结构化数据而开发的数据库系l。Loreq同其专设语aLorel都是为半l构化数据而写的。尽说XML数据在某U程度上也是一U半l构化数据,但是Q两者之间还是有着一些差别,DLore database systems很难成ؓ一U完全意义上的XML数据库系l?/p>
事实上,在学术界Q真正受到关注的XML数据库原型系l有三家Q密歇根大学安阿伯分校的Timber、西雅图华盛大学的Tukwila和威斯康星大学麦q逊分校的Niagara。其中,影响最大的是TimberQ在该系l的实施q程中,产生了许多有关XML数据库的新的概念和方法。当Ӟ多u多大学的Tox也是一个相当不错的pȝQ尤其是其出色的索引l构。但是,M上不如前面的三家有名?br />
?核心技术的q展
l合XML数据库的实验室原型和商业产品的共性,XML数据库的核心技术主要包括:
1.查询语言
自从1995qXML技术的研究和开发逐渐升温以来QŞ形色色的XML查询语言不断问世。比较有代表性的如早期的XML-QL、XQL、UnQLQ后来的Quilt、XpathQ以及由Quilt发展而来的XQuery。在W3C的极力推动和学术界、工业界的大力支持下QXQuery逐渐在这些查询语a中脱颖而出Q成Z实上的工业标准?/p>
XQuery的FLWR语句规范Q有着与关pL据库的SQL完全cM的表达方式,使得它在一般用L里,也变得友好v来?/p>
而Xpath可以理解为是XQuery的一个子集。Xpath表达式在相关文献中被证明与查询模式树是等LQ这也与学术界推崇的模式树查询方式一_使得实验室系l可以毫不困隑֜处理Xpath查询表达式,q能q行查询优化。这一点在XML数据库研I中昑־颇有价倹{?/p>
2.XML文档解析
在图1中,XML文档载入数据库时Q会l过一个XML数据解析器。数据解析器会依据一定的规则对XML数据q行解析后装入数据库。目前的数据解析器一般提供SAX(simple API for XML)和DOM(document object model)两种方式?/p>
SAX和DOM是针对XML文档的两U不同的应用E序~程接口API。SAX更多C赖语法制?syntax driven)Q而DOM则提供一l功能程序来开发与XML数据相关的应用?/p>
SAX解析器是边读入边解析Q带有一定的实时性,特别适合于XML数据的处理。而DOM解析器是待整个文档均导入内存后才开始解析,在一定程度上受到内存定w的限制。目前的XML数据库品均支持q两U解析方式?/p>
3.查询处理
查询处理的方式和效率Q一直是XML数据库研I和开发者关注的首要问题?/p>
如图1所C,XML数据库的查询处理一般是从解析查询语a(如XQuery)的查询语句表辑ּ开始的。XML数据库的查询解析器将表达式解析ؓ一|询模式树(有的pȝ叫做语法??/p>
假设一个XQuery表达式ؓQ?/p>
book [tittle = ‘XML’] // [ year = ?000’]
它所对应的模式树如图2所C,它表C我们要查询?book节点满下面的条Ӟ
?有一个子节点tittleQ它的内容ؓ串值XML;
?它有一个后代节点yearQ它的内容ؓ串?000?/p>
从语义上来说Q就是:查找“一?000q出版的、名为XML的书”?/p>
接下来就是到XML数据库中d配这|Q得到最l的XMLl果文档?/p>
在如何匹配模式树的技术上Q实验室原型pȝ与商业品之间有着一些差别?/p>
比如Q在Timber中,考虑了一U叫做“结构化联接”的技术。它的基本思\是将上述的模式树分解Z元关pd列。而在此之前,也已l将XML文档库做了烦引处理,文档中每个元素节点均被标以一个三元组索引QŞ式ؓQ?文档标识W,开始位|:l束位置Q层??/p>
于是Q该查询模式可以分两步来完成:在烦引过的XML数据库中匚w上述分解的二元结构关p?查扑ֈ的二元结构匹配结果组?stitching)成最l的W合上述查询表达式的完整文档?/p>
l构化联接技术在2002q被提出q在Timber中实C后,在学术界引vq较大的反响。自2002q以来不断有技术上的改q文章出现在数据库的三大国际会议(VLDB、SIGMOD/PODS、ICDE)上,其中较有影响的成果是隐检整枝联接(holistic twig join)技术,可以用相互连接的多栈l构一ơ性生成查询结果文档?/p>
在商用品中Q由于文档元素节点均存储在B+树结构中Q可以直接到底层的数据库中去查找相关的匹配节点序列,再根据其指针兌Q将l果节点集组装成l果文档?/p>
ȝ来说Q实验室产品在输入节点序列较长时效率会较高,其是隐整枝联接技术。而商用品在查询的文档较大时更显优势?/p>
在查询处理阶D,实验室品做了而商用品没做的事情是模式树的最化。它的主要思想是Q模式树的匹配效率依赖于模式树的规模(元素节点的多?。而一般的模式树均存在一定量的冗余节点,可以通过最化法予以去除?/p>
Ҏ(gu)复旦大学数据库研I中心XML组的实验结果表明,在随机徏立的XML查询模式树集合中Q最化法q_可以消除30%的冗余节炏V?/p>
当然Q模式树最化法的时间复杂度比较高,目前的关注点主要在于旉复杂度的降低上。最新算法的旉复杂度已l降低到低阶的多式旉了。这Ҏ(gu)术的实用化是值得期待的?br />
4.事务处理和版本控?/strong>
目前的商用XML数据库一般提供事务处理功能,包括提交、撤回和日志文g。我们知道,事务为数据库的一l操作,q些操作l成一个逻辑单元Q执行时要么全部完成Q要么全部不?do all or do nothing)。XML数据库通过提供事务日志机制Q纪录系l执行的每个事务的详l情况,保证在系l出现问题后可以完全恢复?/p>
事务遵@的ACID性质 (原子性、一致性、独立性和持久? 保证了大部分事务处理E_地运行?/p>
商用XML数据库也包含对XML文档的版本控制功能。用版本控Ӟ用户或应用程序可以检?check in)或检?check out)XML文档Q利用版本号、日期或者标{获得以前版本的文档Q以及显CXML文档的版本历史信息。每一个处于版本控制之下的文档都有自己的历史信息,U录了修Ҏ(gu)档的作者以及时间等。用者可以根据文档或用户或日期来查看整个的版本历史信息?/p>
版本控制允许用户通过查询更新原信息。通过更新引擎可以注释、修改和_信息。内|的版本pȝ跟踪信息的变化,提供q些变化的历史信息?/p>
应该_在事务处理和版本控制机制上,实验室品的考虑是不够的Q所提供的事务处理的功能昑־单。尽加州大学洛杉矶分校的数据库实验室在XML的版本控制方面有一些突出的成果Q但是,目前未形成产品?/p>
q有一个需要说明的是多事务q发控制机制和加锁协议。这Ҏ(gu)术的研发目前刚刚h。现今的商用XML数据库只在逻辑层面提供q发加锁协议Q但_度为整个文档。随着单个XML文档的增大,q个_度昄太粗。这一点可能要{待研究界开发出_度为文档元素节点的q发协议了?/p>
5.代数pȝ和模式规范化
代数表达式和数据库模式设计理论曾l是关系数据库理论的_N。代数系l成为关pd查询优化的重要工P而范式理论的提出也曾为RDBMS设计优化的库l构提供了依据。那么,Z不禁要问Q在XML数据库中是否存在相类似的理论和方?
׃q两个问题有一定的隑ֺQ注定只能是由学术界的实验系l先行一步?/p>
学术界公认的三大实验pȝ都设计了相应的代数系l,其中影响最为广泛的是Timber中实现的TAX(Tree Algebra for XML)。TAX以整个文档树作ؓ操作的基本单位,在逻辑层提供选择、投影、联接等cM关系库的9U基本操作和5U附加操作,以匹配模式树得到实例?witness tree)为基本操作方法。在物理层提?U基本操作实Cq逻辑q算?/p>
Timber依据TAX对XML查询语句q行改写和优化,但是效果q不理想。业界对TAX存在问题的看法是Q过分地模仿了关pd的代数系l而忽略了对XML文档本n特点的考虑?/p>
XML模式规范化理论的早期开拓者是宑֤法尼亚大学的樊文飞等人。从定义XML的键(key)和函C赖,到XML和DTD范式Q再到基于约束的XML数据库的模式规范化,XML数据库的模式规范化理论在Ex地推动着。国内的复旦大学数据库研I中心等单位也有着不错的研I进展。在未来两年内,估计会有较成熟的XML数据库模式设计理论投入到实验室品和商用pȝ中?/p>
6.多数据源的集?/strong>
多数据源的集成是数据库市场对XML数据库系l提出的要求。从1970qIBM公司的E.F.Codd提出关系数据库的概念以来Q关pL据库在几乎所有的应用领域都取得了巨大成功。XML数据库是一个新事物Q它从诞生的那一天vQ就面着关系数据库一l天下的局面。有Q关pL据库完全战胜层次和网状数据库用了近20q时_XML数据库也会用20q时间战胜关pL据库。这U看法ƈ不全面。至从目前来看Q两者应该各展所长,共同服务于巨大的数据库市场?/p>
那么QXML数据库的优势在哪?用XML技术来q行多数据源的集成就是其中之一?/p>
?001q以后,面对多数据源的集成这个传l关pd数据库系l做不了的事情,Ipedo{商用数据库pȝ自q数据库系l扩展ؓ一个集成^収ͼ它可以将关系数据库系l、MISpȝ、OApȝ、文件系l等集成在同一个^CQ给用户提供l一的界面。如Ipedo公司的Ipedo XMLq_Qؓ用户提供XML View来统一讉K底层的异构数据。h们也从这一点上q一步看CXML技术的力量?/p>
?未来的技术发展方?/strong>
l过q?q业界同仁的共同努力QXML数据库技术取得了很大的进展,已经有若q种XML数据库品问世ƈ服务于社会生zȝ各个斚w。但是,XML数据库的事业才刚刚开始,q有很多问题{待着我们去解冟?/p>
未来几年QXML数据库技术有可能在下q方面取得进展:
?异构数据源的集成。XML数据库对多数据源的集成,是对XML技术可扩展性这一长处的极好发挥。但是,q前的集成E度和在应用层上所提供的功能来看还是远q不够的。如何从Ҏ(gu)据的集成q渡到对pȝ的集成,从而在q景目标上实现类g|格计算(grid computing)概念的系l,恐怕是XML数据库工作者的核心d之一?/p>
?底层索引l构。目前的商用XML数据库系l优于实验室原型pȝ的特点之一是其底层的索引l构。但是,现有的商用XML数据库的底层索引l构一般都是B+树。虽然B+树烦引是一U成熟的索引l构Q但是,研究l果昄Q在XML数据库中Q它的性能表现q不是最好的。学术界已经开发出了若q种适用于XML数据的烦引结构,如XR树、XB树等Q需要XML数据库工作者来q一步关注?/p>
?q发加锁协议。在现有的XML数据库系l中Q加锁的_度是整个文档,事务q发的层ơ也在文档一U。随着应用U文档的日益增大Q这个粒度在一定程度上会成ؓpȝ效率的瓶颈。如何通过辚w(edge lock)机制来实现元素节点_度的加?q一工作现在吸引了不研I者的目光,而且Q上q的锁协议是在逻辑层,如何它映射到底层的B+树烦?或者XR树烦?上,也是必须要做的一件事情?/p>
?XML模式规范化是一个值得x的方向。一旦取得突_会使我们可以像在关pd中那h便地设计XML数据库的l构Q消除数据的冗余和不一致现象。目前,q一领域已经成ؓ学术界关注的热点。但是,完整的、ؓ业界所公认的理Zpd未徏立?br />
在未来,到底SOA扮演一个怎样的角Ԍ企业千差万别QITpȝ又是各具特色Q他们该如何LSOA路线图?实现“SOAqA”Q怎样让SOA发挥更大的效益?是什么得CIO们在SOA面前变得永无宁日Q?nbsp;
时下QSOA正成为国际大厂商和CIO们共同的热点话题。与此同Ӟ各分析机构乐观预,SOA大行其道。但攄全球Q由于缺更多的成功案例QSOA正逐渐招致CIO怀疑的目光?/p>
在未来,到底SOA扮演一个怎样的角Ԍ企业千差万别QITpȝ又是各具特色Q他们该如何LSOA路线图?实现“SOAqA”Q怎样让SOA发挥更大的效益?是什么得CIO们在SOA面前变得永无宁日Q?/p>
我们走近大师——SOA的Eh物Eric NewcomerQ听听他的声韟?/p>
来自CIO的质?/p>
2006q_在日本D行的q会上,Gartner公司乐观预测QSOA卛_成ؓ应用LQ到2007q_会有过50%的企业采用SOA体系Q到 2010q该比例会辑ֈ80%。但q一乐观预测遭到来自用户的广泛质疑,其是在中国Q用户对于国际厂商的大玩SOA概念心存疑虑。这到底是ؓ什么?
记者:关于SOA的讨论已l很多,众多厂商也在各种场合不遗余力地宣讲SOAQ但到目前ؓ止似乎鲜有成功案例,q没有大面积推广h。甚x人告诫用P“如果一个厂商拼命地游说‘我们已经实施了大量的SOA成功案例’Q那你就该小心这个供应商的用心了?#8221;持这一观点的不乏SOA标准l织里的专家Q在(zhn)看来,其中的原因是什么?
EricQ?span style="color: #0000ff">许多机构仅凭它们在用诸如SOAP、WSDL和(或)UDDL{Web服务技术,p为它们已l采用SOA了,q对用户是一个误对{?/span>
其实Q?span style="color: #0000ff">SOA是一U设计方?/span>Q它指导着业务服务在其生命周期Q从构思开始,直到停止使用Q中创徏和用SOA的方斚w面。SOA也是一U定义和提供 IT基础设施QIT InfrastructureQ的方式Q它允许不同应用之间交互数据、参与业务流E(Business ProcessesQ,无论它们各自背后使用的是何种操系l或采用了何U编E语a?/p>
从技术上而言Q目前已l有很多厂商开发出具备SOA形态的产品Q如果一个用戯想从局部实现SOAQ比如在企业内部采用SOAP协议实现功能的调用,C个品很快就可以实现?span style="color: #0000ff">但作ZU实C务和IT高度融合的IT架构Ҏ(gu)Q?#8220;SOA?#8221;是一U很长的q程Q一个企业用戯定需要更长的旉。以 IONA的客户ؓ例,他们在SOA上的计划都是长期的、战略性的。以SOA的关键功能—?span style="color: #ff0000">集成来说Q一个企业在长期q营q程中,不断面Ҏ(gu)自这斚w的挑战,集成问题正成为那些CIO和ITl理们心照不宣的U密?/p>
其实Q在SOA的成功案例方面,׃国外计算机技术发展较早,IT技术在企业业务pȝ的应用更为普遍;同时对现有系l进行SOA攚w,以实现更灉|的ITpȝQ更好地支撑业务发展的愿望也更加q切。瑞士信贷集团是IONA的客户之一Q也是全球最早成功实施SOA的客户之一。到目前为止Q瑞士信贷集团已l取得了令h瞩目的收益。它的生产环境中?500多个服务Q日处理量达?00万笔。由于采用了SOA的技术架构,使系l的d发和集成成本下降?3Q,同时实现?0Q的服务重用。SOA是大势Q我怿q方面的成功案例会越来越多?/p>
记者:那到底是什么在影响SOA的进E?
从用戯度来看,有很多因素会影响企业接受SOAQ其中的主要因素包括Q?/p>
首先Q企业必L入够的_֊和h员进行技术和业务程的培训,才能保所开发的服务是可重用?/span>。Q何技术,无论看上d么有前途,都有被误用的可能。Q何服务的开发,不能只顾及眼前利益,也要Q或许是更重要的Q考虑长期利益?span style="color: #0000ff">换句话说Q各个服务的单独存在q无太大价|除非q些服务能与其他服务一赯使用Qƈ能根据业务的变化Q快速组合成各种新的应用?/span>
其次是如何更好地处理现有应用与新架构的关pR某些原有的应用需要加以调整或者借用另外的程序后才能融入SOAQ应׃务分析师来定义业务流E?ql架构师来将程变ؓ规约和规则,再由软g工程师来开发新的代码,而项目经理要跟踪整个q程Q这是一复杂的工作和过E?/p>
W三是长、短期成本的理。构Z个全面SOA的成本ƈ不低Q对现有pȝq行再工E(ReengineeringQ的耗费是巨大的Qƈ且回报期也比较长?/p>
SOA与技术无?/p>
在SOA的拥怸Q不乏很多的中间件厂商,甚至包含着EAIQEnterprise Application IntegrationQ企业应用集成)厂商Q他们都打着集成的口可军SOA。面对不同的~程语言、技术架构、技术标准和供应商,用户会问QSOA的实现是否与具体的技术有养I
记者:我们知道QIONA是包括W3C、OMG、OASISI在内的很多SOA标准l织的成员。目前,倡导SOA的供应商很多Q每安宣称推出了SOA的品和架构Q都提出要引导SOA潮流Q这是不是会l?zhn)参与制定SOA的标准带来一些困难?
EricQ有些h可能会感到惊奇,但面向服务的架构QSOAQ确实已l存?0多年了!因ؓSOA是基于一U设计理念及一pd设计原则的,而这些都是与技术无?/span>——尽SOA已经应用了这么多q_q守着一些公共原则?/p>
在过?0多年里,可用于实现SOA的技术是多种多样的,它们包括Q分布式对象──CORBA、J2EE、COM/DCOMQ面向消息的中间?nbsp;──WebSphere MQ、Tibco RendezvousQ事务处理监控器──CICS、IMS、Encinia、TuxedoQB2Bq_──ebXML、RosettaNet?/p>
在这些技术中Q有的适于构徏SOAQ有的则不然。一个技术,如果h多“与Web服务q_相当”的能力,它就适于构徏SOA?/p>
对于M用户而言Q他们都希望能有一个统一的标准,以提?#8220;技术的l济?#8221;Q这是标准的h(hun)值所在,在SOA领域也是一栗一直以来,我都代表 IONA公司在SOA相关标准化组l里做相应的工作。最q,我代表IONA参加了一些标准方面的基础目研究QIONA对这些基目的研I生了U极而显著的影响。SOA其中的一个标准就是用~程工具来实现这一个技术,从而变成一U独立于厂商、独立于产品的SOA工具。对用户来说Q这样实现SOA׃更ؓ便:比如Q包括CA、IBM、BEA 在内其他公司也可以用Q但是同时又保持独立。但在SOA发展的早期,很多实力雄厚的大公司都希望其中的SOA采用自己的标准,可是q样其他厂商没有办法用q个工具。我代表标准l织成员之一IONA投了反对,因ؓ我们坚信Q只有中立的技术,才能使最l用户和IT厂家受益Q同Ӟ技术中立也是IONA自始至终坚守的信c?/p>
记者:SOA一个重要的功能是集成,以实C业的信息pȝ的整合。一直以来,业界都存在着两个怺对立的观点:有h认ؓSOA代替传l的EAIQ而有为SOA概念的成熟将q一步推动EAI厂商的发展,(zhn)如何看待这两种对立的观点? EricQ在我看来,SOA是革命性的技术进步,从某U意义上ԌSOA可以被看作是EAI的一Ugl,但不是简单的延箋。EAI与SOA同样解决企业集成的问题,但SOA解决的问题远比EAI解决的IT问题多得多、复杂得多,因此产生的媄响要p得多?/p>
在企业ITpȝ中,有一部分集成问题是可以通过EAI来解决的。但是,EAI解决集成的问题往往是在事后Q企业碰C集成问题Q才L办法通过 EAI来解冟?span style="color: #0000ff">与之相反的是QSOA架构解决企业集成的问题是事先?/span>Q也是_企业在一开始搭建SOAq一IT架构的时候,已l考虑了集成的问题。这是SOA区别于EAI的一个重大不同?/p>
另外QEAI解决集成问题Ӟ可能会带来更多其他集成问题,最l会带来一个更加复杂的IT架构。SOA解决q些集成问题Ӟ是将现有的系l以l一的标准接口进行一ơ重新的梳理Q不会再带来新的集成问题。它承认q尊重企业现有的IT架构Q不会再引进不能兼容的新的IT架构。SOA会得企业业务层面更加灵z,企业可以Ҏ(gu)现有的企业ITpȝ的各U服务,l徏新的程Q这是SOA最大的特点之一?/p>
记者:那IONA和这些中间g公司又有什么不同呢Q?/p>
EricQ其实,IONA的第一代CORBA产品Orbix是最早的实现分布式SOA架构的基架构解决Ҏ(gu)Q正是这U分布式SOA基础架构解决Ҏ(gu)帮助IONA成ؓq一领域的领D。在q去几年里,IONA帮助包括德国邮政、美国独立电(sh)信公司CLEC、美国证券、荷兰银行、渣打银行、蒙特利银行、富士通等在内的航I、金融、制造业、零售业和电(sh)信行业领域的多家世界500Z业成功实CSOA。通过SOA/CORBA解决Ҏ(gu)的应用,q些客户都得到非帔R的投资回报?/p>
IONA的第二代SOA产品是Artix ESB基础架构解决Ҏ(gu)。如何灵zR^滑地构徏SOApȝ是目前一个具有代表性的ITpȝ的技术难题。通常用户使用的ITpȝ由多家供应商提供Q编E语a一般要采用java?NET、C++{,服务器端会采用java?NET、C++、CORBA{,中间件还会包括BEA的Tuxedo、IBM的WebSphereQ甚臌要在大型Z安装包括SAP、Oracle在内的套装Y件解x案。这样复杂的ITpȝ分布在企业ITpȝ的不同角落。对用户来说Q他们迫切需要用最好的Ҏ(gu)Q把q些不同的应用、技术、端点进行集成,从而ؓ企业的业务提供最高效的支持?span style="color: #0000ff">轻量U、分布式SOA架构方式
同时Q技术中立和对其他中间g厂商技术良好的支持也是IONA解决Ҏ(gu)的显著特炏V一套成功的企业USOA解决Ҏ(gu)要求各个不同的应用程序都能够以安全、可靠、易操作的方式相互集成,而不Z们的底层操作q_存在多大的不同。IONA的Artix恰恰可以做到q一炏V?/p>
SOAҎ(gu)Z路线?/p>
在很多技术问题之外,SOA的成功实施需要一个企业或l织做大量的工作Q也是_SOA的实施是一个永l的q程。应该说Q每个企业的业务和ITpȝ都是不同的,是否存在SOAqA的方法论和\U图Q?/p>
记者:面对SOAQ很多用户却不知道如何下手,应该采用什么样的方法?IONA是否从历史案例中ȝ出经验?
EricQ从用户斚w来看Q?#8220;自上而下”?#8220;自下而上”的方法均可以使用。第一U方法是自顶层向下,从业务逻辑开始;另外一U方式就是从底层开始,直接d代码的编写,然后再考虑如何在上层支持业务逻辑Q最后再其构徏成ؓ完善的SOA。ȝhQ就?个字Q?nbsp;“思于博,始于l,成其?/span>”Q这也是IOAN的企业理c首先要Ҏ(gu)企业的业务需要,通盘考虑需要的SOA架构Q用中国的一个成语,?#8220;胸有成竹”Q其ơ是从一个局部做P以渐q的方式向SOA架构演进Q避免大而全的SOA实施Q这样可以最大程度地规避目风险Q降低初期投入;再次是在局部成功实?nbsp;SOA的基上,构徏完整的SOA架构pȝ?/p>
作ؓ全球分步式SOA的领D,在IONA公司的SOA成功案例中,大多通过分布式的、基于标准的途径实现。其中最主要的特点就是用户可以渐q式地采用SOA。用h据应用系l的发展情况定要用规模,从非常小的局部开始,最后再扩展到整个系l的应用中,不断向大规模SOA演进Q获得很大的灉|性。这样做的目的很明显Q就是要降低客户初期的以及大规模实现SOA时的成本QIONA不需要企业用户再去购买服务器。具有讽刺意味的是,现在100%的SOA解决Ҏ(gu)提供商都希望用户采购他们的应用服务器Q然后在q些应用服务器之上去构徏用户的SOA体系Q用L成本大大提高了?/p>
其次是用国际标准,体现可兼Ҏ(gu),体现技术上的中立。可以说Q用户业务是随时变化的。因此基于开放标准的解决Ҏ(gu)对他们来说至关重要,q样可以q泛兼容现有pȝQƈ为快速响应未来的业务变化打下坚实的基?/p>
记者:企业在实现SOAq程中,应如何发挥SOA最大功效? EricQ应用程序供应商也逐渐采用SOA体系Q如Oracle、SAP、i2{企业,q将会SOA体系得到更ؓq泛的采用。需要指出的是,虽然SOA的一个核心思想是实现程序和服务的重复利用,重复利用带来的利益可在所有应用程序中实现Q但q不是说QSOA体系能够在每个项目中都取得显著成果和效益?/p>
一个企业要x大化地发挥SOA的功效,需要在以下几个斚wq行深入思考ƈ做好准备Q从而实?#8220;SOAqA”?/p>
1Q可能需要徏立新的成?利益模型?/p>
2Q利用新的团队徏立业务框架模型。这个团队对业务q行整体规划和设计(包括BPR在内Q,打破单个业务使用独立ITpȝ的模式,特别是那些可以重复用的Qƈ判断哪些程适合q一模式?/p>
3Q要求应用开发商不断提高技能ƈ提供服务。要求应用程序开发商使用多种新的技术开发重用Y件、不断提高服务能力正成ؓ用户一w要的技能?/p>
4Q徏立区别于传统的技术支持中心?/p>
我们可以把SOA看作是工厂里的品装配线。它是一W对来业务q营的投入,所以在q笔投入发挥效益之前Q需要做相关的计划、设计和开发工作。正如生产线上制造的W一辆R的花费要比第一千辆高出很多一P用SOA部v的第一个服务所需的花费要比部|第一百个多出很多。SOA的主要优势是逐渐体现出来的,不能一y而就?/p>
记者:q么说来QSOA对一个企业来说将是一个长期的q程Q是什么原因促成SOAq程的长期化呢? EricQ有几个常见的导致业务集成的驱动力得企业需要在SOA上长期不断投入: 兼ƈ与收购:兼ƈ和收购活动常怋得一个企业的CIO解决“有多个ITpȝ处理怼事务”的问题以体现兼ƈ和收购的商业价倹{?/p>
内部重组Q尽企业内部重l所产生的媄响不如兼q和收购那样巨大Q但也可以造成许多怼的问题,而且出现的频率更高?/p>
应用和系l整合:如果怼的事务可以被多个ITpȝ处理Q这需要通过合ƈ或者替换,以节省资金,减少人数Q让业务操作q营更加畅。比如一家电(sh)信公司有多个不同的计费系l,那合q和化将是明Z举?/p>
不一致、重复和零散的数据的׃nQ有时候,很多重要的业务数据分布在多个不同pȝ上。用户必d它们加以合ƈ和过滤才能有助于决策。比如,销售部门的领导希望员工和客L到的都是同一个视囄面?/p>
C务战略:一个持l创新的公司l常要根据变化的业务环境贯彻新的业务战略Q这p求原来的各个ITpȝ能够以崭新的方式一同工作。最l,同行业的其他公司也必d出同hcM的改变才能保持竞争力Q比如电(sh)信行业中的运营商和SP的关pR实时精准制造等?/p>
遵守政府条例Qؓ了遵守新的政府条例,企业可能需要重新定义业务流E以保护消费者或W合新的信息披露要求Q比如本地电(sh)话携可{|和企业遵守萨班斯法案等?/p>
保持业务程畅Q在q去的业务流E中Q数据常帔R要通过手工录入C同的pȝ当中Q如今,很多pȝ都被新的支持“无需人工q预可以进行多pȝ间事务处?#8221;的系l所代替。比如,一家公总前通过传真接收定单Q然后手工将定单信息录入到定单管理系l和刉控制系l中Q而现在,该公司功q网站接收定单,定单信息被自动录入到定单理pȝ和制造控制系l当中?/p>
SOAȝQSOA GovernanceQ的目的是让软gȝ与业务治理相互配合,包括协调各领域之间的软g开发、Y件获取及软g、重用。以取得最大程度的机动性和规模l济性与范围l济性。SOAȝ认ؓ服务是整个生命周期都需要管理的企业资?/p>
Eric Newcomer?/p>
Eric Newcomer是IONAU技公司的首席技术官QCTOQ? 主要负责指导q协调完成公司技术蓝图以及与标准采用、体pL构、品设计相关的产品战略规划。Eric?6q的计算Z业经验,其中?5q是?nbsp;DEC/Compaq公司度过的。在DEC/Compaq公司工作期间Q他担Q了各cd司层技术与理职位?/p>
Eric Newcomer是制定SOAP1.2标准的全球广域网协会QW3CQXML协议工作l的创始成员Q参与编写了W3C Web服务架构规范Q编写了Web服务W合应用E序框架QWS-CAFQ系列规范,q担任OASISl织中的WS-CAF技术委员会联合d、OASIS l织和WS-Il织的首席代表。ƈ与Phil Bernstein合作出版了《Principles of Transaction Processing》(1997Q, 出版?nbsp;Understanding Web Services 》(2002Q? 与Greg Lomow共同~写 《Understanding SOA with Web Services》(2004Q?br />
]]>