XRX/XRX 的优势
XRX 从其三个底层标准中的每一个中获益
- XForms
- REST
- XRX 利用了网络基础设施,如多级缓存和统称为深度 REST 系统的技术。
- XQuery
- XQuery 是一种面向 XML 的功能查询和转换语言,可以执行许多系统的业务逻辑。除了其 XML 转换能力之外,它还具有比 1970 年代和 1980 年代设计的 SQL 等旧查询语言的优势。XQuery 具有 SQL 的表达能力(联接等),还可以操作递归层次结构数据。与 SQL 不同,XQuery 是一个 W3C 标准,在供应商之间具有非常强大的标准化,并拥有超过 14,000 个测试来确保跨供应商兼容性。开发人员经常在低成本的开源数据库上开发 XQuery 应用程序,并将它们移植到商业系统,而无需进行重大更改。
这三种标准共同使开发人员能够在客户端、中间层和数据库服务器上使用单一数据格式 (XML)。这意味着在层之间没有数据格式的转换。相比之下,许多其他现代系统使用 XML 进行通信,在面向对象的层中处理业务逻辑,将数据存储在关系数据库中,并将 GUI 呈现为 HTML。
考虑典型的现代系统中的所有“粘合”代码,这些代码除了将一种表示形式转换为另一种表示形式之外,没有任何其他目的:对象关系映射、HTML 渲染代码、XML 导入/导出代码。这些 Web 应用程序架构采用 HTML 表单(使用扁平的键值对),将这些数据结构转换为中间层对象(如 Java 或 .Net),然后将这些对象转换为表格数据流,以便它们可以存储在关系数据库中。一旦进入关系数据库,数据就必须通过执行 SELECT 语句重新序列化,转换为对象,然后将这些对象转换回 HTML 表单。这是一个四步转换架构。
相比之下,XRX 使用零转换架构。零转换意味着 XML 存储在 Web 客户端中,以 XML 格式传输到中间层验证规则引擎,然后以其全部形式存储在 XML 数据库中。通常,XML 也是从其他系统传递或流式传输数据的格式。作为 XML 的存储也被称为零粉碎过程,因为数据文件不会被分离成第三范式 (3NF) 数据结构。
这种关系 (3NF) 存储通常没有帮助。XML 数据将关系内置到数据中,而关系数据存储在“哑”表中,并允许/要求应用程序指定关系。对于关系众所周知(例如,用户有一个博客文章集合,这些文章有一个评论和回复集合)的应用程序,XML 更好。当需要“数据仓库”并且关系根据调用应用程序而广泛变化时,关系存储可能更好,因为 RDB 针对临时联接进行了优化,而 XML DB 通常没有。(例如,一群用户在一个社交网络中,并且存在各种必须快速查询的临时关系 - 使用 RDB)。XML 数据库针对 XML 中内置的关系进行了优化,关系数据库针对易于编程和在首选关系集上的性能进行了优化。
然而,最大的区别是零转换与“到处转换”。
使用这三种标准的组合,Web 开发人员的生产力提高了十倍。