自治应用程序的体系结构
2007-02-23 12:21:12 来源:WEB开发网应该明白,向客户端应用程序公开 XML 数据集并不等同于使客户端依赖于数据库。实际上,恰恰相反!但必须理解 XML 数据集才能充分利用它们。在定义它们的 XSD 方案时,应该将注意力放在它们的使用上;根本就不用考虑数据库的结构。
这一点在面向服务的应用程序中特别重要。面向服务的应用程序向客户端公开返回 XML 流或 XML 文档的编程接口。至少对于公开 Web 服务的面向服务的应用程序是如此。XML 文档的结构受其 XSD 方案控制,对于 XML 数据集也一样(它们其实就是 XML 文档)。
XML 数据集从不连接到数据库一些开发人员可能还不知道 XML 数据集从不连接到数据库。它不能够连接到数据库。要在 XML 数据集和数据库之间移动数据,需要某类代理来将数据集表映射到关系表。ADO.NET 提供这样的对象,对于不同的数据库产品有不同的特色。它被称为数据适配器,只用于在数据集和数据源之间移动数据。数据集本身并不知道数据库的任何信息以及向数据集填充数据或将数据移到数据源的 SQL 语句的内容。
那为什么这一点会那么容易令人混淆呢?为什么这么多人相信使用数据集意味着依赖于数据库呢?原因可能是 XML 数据集在习惯叫法上像是用于传统 ADO、远程数据对象 (RDO) 和数据访问对象 (DAO) 的旧记录集的替代品。在所有这些模型中,记录集都直接连接到数据源(例如关系数据库)。唯一例外是 ADO 记录集,它可以断开与数据库的连接,然后再次连接。
XML 数据集与旧记录集完全不同。它们的目的是保留和传输数据快照,完全独立于可能从中提取数据的任何数据库并忽视它。
小结下一次我们将着手介绍一个软件开发项目,考虑将其架构为 fiefdom。如果您的应用程序要公开用户界面(大多数应用程序都如此),则应该考虑将其架构为一组 emissary。Emissary 应该尝试尽可能在没有 fiefdom 的干预下完成自己的工作,除非万不得已。例如,它们应该缓存参考数据,应该保留会话状态而不借助 fiefdom。以这种方式构建的应用程序的可扩展性强于最大程度利用服务器资源(例如共享数据)的应用程序。
该策略有助于您将 fiefdom 设计成使用无状态组件。对于提高可扩展性和简单性,这是非常有用的。然而,您应该在万不得已的情况下才使用有状态组件。在大多数应用程序中,应该真正考虑使用 ADO.NET XML 数据集,将其作为数据传输器。再结合使用数据适配器,就可以完美地利用数据库了。它们透明地跨进程和机器界限工作,并且完全基于 XML。它们被设计为数据绑定,这在很多情况下是在 Web 窗体或 Windows 窗体中向用户显示数据的首选方法。
更多精彩
赞助商链接