作者:foreverfda | 来源:互联网 | 2014-05-05 09:29
在SOA架构中,程序员经常应用XML在利用程序之间交换结构化和半结构化的数据。XML及其相干技巧—文档对象模型(DocumentObjectModel,DOM)、XPath、HTTP、XQuery和可扩大样式表语言转换
在 SOA 架构中,程序员经常应用 XML 在利用程序之间交换结构化和半结构化的数据。XML 及其相干技巧 — 文档对象模型(Document Object Model,DOM)、XPath、HTTP、XQuery 和可扩大样式表语言转换(Extensible Stylesheet Language Transformations,XSLT) — 为快速利用程序开发供给了一个强盛的环境。构建在这些技巧之上的利用程序将占用更小的内存空间,需要更低的保护本钱,同时又拥有更高的品德和机动性。
DB2 和其他关系数据库的 XML 方面的特征已经相当成熟,因此除了存储和治理关系数据之外,它们还是存储和治理 XML 数据的幻想选择。DB2 9 XML 支撑(称为 pureXML)供给了以纯 XML 的情势(换句话说,就是带注释的、树型的分层存储)存储 XML 的才能。在 DB2 9 中,XML 数据可以用 XML 模式索引,可以从关系数据组合而成,可以分解为关系数据,可以查询和转换,可以独立宣布,或者通过混杂应用 SQL/XML 和 XQuery 与关系数据组合起来。
Web 浏览器也正在为客户机脚本供给更多的功效来有效地处理 XML。通过应用异步 Javascript 和 XML(Asynchronous Javascript and XML,Ajax),Web 页面现在可以直接对利用服务器进行远程过程调用,并且可以在任何返回的 XML 数据上应用 DOM API。
本文将展现如何利用 DB2 XML、Ajax 和 PHP Hypertext Preprocessor (PHP) 供给的功效来编写简略的基于 XML 的利用程序。通过示例场景的帮助,您将学习如何在 Javascript 中调用 PHP 利用程序;如何应用 DOM 和 SimpleXML API 修正 XML 数据;如何将 XML 从客户机传送到利用程序再到数据库;以及如何创立 PHP Web 服务来应用 SQL/XML 和 XQuery 宣布关于 XML 数据的报告。
XML 长处
大多数利用程序都用于创立、存储、把持和浮现业务数据。对象包装是指将业务数据绑在一起,使业务逻辑更轻易处理它们。这些包装器对象的很多功效都是根据关系和格局化规矩来供给业务数据的结构,并使业务逻辑能够把持、宣布和串行化封装的数据。
图 1. 基于对象包装器的利用程序
图 1 阐释了应用对象包装器的一个示例人寿保险利用程序。每个方框表现一个对象,每个对象至少有:
·一个结构函数
·Getter 和 Setter 方法
·验证代码
·内部对象层次的串行化
这些对象与实际的业务逻辑没有关系。对象包装是为了使业务逻辑更轻易治理业务数据。包装数据所需的代码比业务逻辑要多得多。更多的代码将导致更多的 bug、更大的固定性、更多的保护和更高的本钱。
假如对象中的数据变量可以格局化为 XML 结构,并且对象的重要作用是将这些数据***露给业务逻辑并让业务逻辑把持它们,那么可以用 DOM 代替对象。
图 2. 基于 XML 的利用程序
图 2 展现了一个应用 XML 和 DOM 包装器的示例保险利用程序。图 1 中的所有数据包装器对象都用一个 DOM 对象代替。业务数据是用 XML 建模的,DOM 供给了必要的 API 来:
·创立新的 XML 对象。
·更新 XML 对象的值。
·导航 XML 对象。
·应用 XPath 在对象层次中搜索。
·串行化和反串行化 XML 对象层次(换句话说,就是内建持久性)。
通过应用 XML,可以避免应用大多数用于治理业务数据的包装器对象。利用程序将变得更加简洁,并且更多地将重点放在业务逻辑上,而不是数据治理上。
XML 和架构
将 XML 引进架构中可认为表现业务数据带来一种尺度化的方法。XML 可以供给数据的结构;XML 模式施加结构和格局化规矩;DOM API 和 XQuery、XPath 及 XSLT 之类的语言使业务逻辑可以有效地把持、宣布和串行化数据。由于业务数据的 XML 表现在客户机、中间层和数据库中都是一致的,因此把持这些对象的代码也是类似的。
我将展现如何在三层环境中构建基于 XML 的利用程序,这个三层环境由以下几个部分组成:
·Web 客户机:Asynchronous Javascript and XML (Ajax),DOM
·利用服务器:PHP 和 SimpleXML
·数据库: DB2 9 和 SQL/XML,XQuery [1] [2] [3] [4] 下一页