毫无疑问,XML正迅速成为B2B数据交换的事实上的语言。随着XML应用的增加,IT经理在决定实施高性价比XML战略之前,必须开始考虑目前正在进入市场的日益增加的XML解决方案。

Oracle和Microsoft等主要关系型数据库厂商在其产品中推出了支持XML的技术:Oracle 的XDB和Microsoft的SQLXML。IBM公司也已提供用于其DB2数据库的XML扩展器。

而新出现的NXDB(自然XML数据库)则是另一种在企业中实现XML的具有发展前景、更具管理性的技术。NXDB不替换用户已有的企业数据源。相反,它起到位于后端数据源与中间层应用组件之间的中间缓存的作用。

使用NXDB有两个主要好处。首先,用户可能有多种后端数据源和不同类型的中间层应用,不必将XML功能均匀地分布在中间层和后端上(这样做会大大增加技术花费),相反可以通过实施NXDB来添加所需要的XML支持。NXDB提供了支持多种应用和数据源所需的编程接口和数据访问方式。

用户可以利用NXDB来增强主企业数据库的处理能力。你不必在高峰时间将主数据库处理能力用于XML翻译、存储和检索,而是将这些操作交给NXDB去完成,这样做可以解放主数据库,让它去处理更重要的任务,如交易处理。然后NXDB与后端数据源之间的互操作可以在白天或晚上时间执行,从而使你优化了处理性能,减少了还必须为其他应用和最终用户提供服务的后端数据库的负担。

最近添加到RDBMS的许多XML处理功能提供类似于NXDB具有的功能性。这引起了人们的困惑,并回避了问题的实质,即NXDB有什么独特之处?

NXDB在三个主要方面与RDBMS不同。第一,NXDB使用XML文档作为存储的主要方式,而RDBMS中的主要存储方式是行。RDBMS可以存储XML文档,但这个XML文档常常保存在数据库行中或作为数据库对象保存。自然地存储XML文档使得在与业务合作伙伴交换数据过程中检索更容易。

第二,NXDB使用多种基础物理存储模型。一些NXDB构建时将关系型技术用于物理存储,而另一些NXDB则使用面向对象的、分级的或专用存储工具。NXDB中基础功能对最终用户是透明的,从而使管理XML文档组(叫做集合)更容易。

最后,NXDB 中的XML文档由使用XML技术的应用(如XPath)所访问。相比之下,RDBMS可能要求利用其他技术访问基于XML的数据,如ODBC(开放数据库连接性)或JDBC(Java数据库连接性),而这会在交换B2B文档时降低访问速度。

NXDB的剖析

当一个XML文档保存在NXDB中时,NXDB生成一个包括多层嵌套并支持半结构化数据的基于XML的模型。然后这个模型被映射到NXDB所支持的基础物理存储机制上。

NXDB通过一种叫做集合(collection)的结构来管理XML文档。集合使你可以查询和修改多个XML文档,将NXDB集合了比作RDBMS中的表结构。

但是,NXDB集合与RDBMS表不同,许多NXDB不需要与集合相关联的模式(schema),而RDBMS表则需要一个模式。 不需要模式的NXDB可以具有更多的灵活性,但它们也会降低数据完整性。

目前,XPath是用于访问NXDB中XML文档的主要查询语言。XPath可以被用来查询多个XML文档集合,但它也存在着不足。其中最主要的缺点是缺少排序、分类和数据类型。此外,XPath还缺少对交叉文档链接的支持。开发人员可以利用XSLT(可扩展样式表语言转换)来克服其中的一些障碍。

用于NXDB的新型查询语言XQuery解决了XPath中的许多缺点。多家NXDB提供商,如Software AG公司,开始支持XQuery。当XQuery标准在W3C中成为最终规范时,我们将看到更多的NXDB提供商采用该标准。

目前,更新NXDB中的数据还比较麻烦。多数NXDB解决方案要求对整个XML文档检索,并要求文档中的数据必须通过基于XML的API更新。

一些NXDB通过提供专用更新程序或建议开发人员使用DOM(文档对象模型)来更新XML文档中的数据,解决这些缺点。XQuery语言的最终规范可能将解决NXDB数据更新的问题。

如前所述,应用利用XML技术访问NXDB。大多数NXDB提供一种或多种API(一些是基于Java的,另一些是基于C++的)来帮助开发人员。在后端上,NXDB提供了允许混合数据库访问的服务。

考虑采用NXDB

NXDB是所有企业的最佳选择吗?肯定不是。对于一些企业来说,肯定可以使用一种不同的管理XML的方式。例如,如果大多数XML文档是从一个单一数据源保存和检索的,那么也许利用这个单一数据源的XML功能更明智。同样,为了便于应用访问,可以选择通过部署XML服务器或具有XML功能的应用服务器使XML文档靠近中间层。

对于那些拥有多种混合数据源和多种在中间层执行的混合应用的企业来说,NXDB是一种具有发展前景的战略。部署NXDB可以通过将用于多种数据源的XML功能集中在一个解决方案中,实现良好的投资回报。此外,NXDB可以帮助你更好地管理XML文档的处理。

IT经理在制定XML战略时应当考虑NXDB。但是,NXDB是一种新技术,查询和更新功能仍在成熟之中。

自然XML数据库对于必须支持XML文档处理和多个后端数据源互操作的企业来说具有很好的经济意义。此外自然XML数据库可以简化企业数据处理性能的管理。

作为一项新技术,自然XML数据库目前最适于愿意试验的早期采用者。当存在的缺点(如查询和更新处理)解决后,这种数据库将会保证XML处理对于多数IT部门更具管理性。

自然XML数据库
XML已经出现差不多六年了,而自然XML数据库则是比较新的技术,下面列出了多种新的正在成熟的自然XML数据库解决方案。

数据库名称

说明

许可证、公司/开发商

db/XML Core

自然XML数据库;支持XPath;支持Java和CORBA应用。

开放源代码(Apache-风格许可证)dbXML Groupwww.dbxmlgroup.com

GoXML DB

自然XML数据库;支持XPath和Java应用。

商用XML Global Technologieswww.wmlglobal.com

Ipedo XML数据库

具有XSLT处理功能的自然XML数据库;支持XPath;通过SOAP、DOM、XPath实现对应用的支持;与数据库和文件系统的集成。

商用Ipedowww.ipedo.com

Tamino XML数据库

自然XML数据库;可以与关系型数据库集成;支持C++和Java应用。

商用Software AGwww.tamino.com

X-Hive/DB

自然XML数据库;与关系型和普通文件数据集成;通过Java可访问;与SoftQuad的Xmetal的集成。

商用X-Hivewww.xhive.com