构建客户端 Windows DNA 既支持用 Visual Basic 等语言编写的本地 Windows 客户端,也支持浏览器客户端。浏览器客户端的局限性较大,尤其同时将 Microsoft Internet Explorer 和 Netscape 作为浏览器时。因此,应用程序通常同时拥有浏览器客户端和本地 Windows 客户端。浏览器客户端提供的界面很有限,但用它可以方便地访问 Internet,而 Windows 客户端能提供全功能的界面。使用可下载的 Microsoft ActiveX? 控件可以创建更复杂的浏览器界面,但必须确保浏览器是 Internet Explorer,并且用户愿意信任应用程序的创建者。 管理浏览器应用程序中的状态 ASP 应用程序可以使用几个不同的机制来维护服务器上客户端请求之间的信息。但是 Windows DNA 中有一条严格的规则,如果应用程序在两台或多台机器之间平衡负载,则绝对不能使用 ASP Session 对象存储每个客户端的状态。ASP 的 Session 对象被锁定在一台机器上,因此不能用于负载平衡的应用程序。 ASP Session 对象和 ASP Application 对象还有另一个限制。使用它们中的任何一个来存储 ADO 记录集都会大大降低可伸缩性,因为它限制了应用程序开发多线程的能力。因此,在这两个对象的任何一个中存储记录集都不是好办法。 分布式通信 在 Windows DNA 中,选择运行在不同机器上的组件的通信方式非常简单:DCOM 可以说是唯一的选择。单纯从体系结构上来看,DCOM 是 COM 的简单扩展。但实际上,DCOM 还有许多其他含义,其中包括: ●由于实际上是其自有协议,因而使用 DCOM 与远程 COM+ 对象进行通信非常直接。 ●只要配置正确,DCOM 将是非常安全的协议。但是要实现这种配置并不容易,因此该协议不太容易使用。尽管如此,DCOM 自身仍能提供很好的分布式身份验证、数据完整性和数据保密性,特别是在 Windows 2000 域内。 ●由于 DCOM 需要打开任意端口,因此不适合与防火墙配合使用。所以,对于必须通过 Internet 进行通信的应用程序,一般不能使用 DCOM. 访问存储数据 可以将使用 ADO 构建的数据访问体系结构分为两类:轻型和重型。轻型 ADO 客户端尽可能简短地保持数据库连接,并使用存储过程写入数据库。轻型客户端使用以下三种方法之一检索数据: ●通过使用只读的、仅向前游标填充记录集; ●通过存储过程输出参数; ●使用数据流(在 ADO 的较新版本中)。 重型客户端则会较长时间地保持数据库连接。这类应用程序依赖于开放式连接,以及那些连接所允许的有状态的服务器端游标,以: ●使记录集能够直接访问其他用户或应用程序所做的更改; ●启用保守式锁定; ●尽可能减少复制到 ADO 客户端的数据量,以减少网络通信量。与轻型客户端不同,使用服务器端游标的客户端可以将查询结果保留在数据库内,直到真正需要这些数据时再取出。此外,这种方法向记录集复制的元数据较少,而把更多的数据保留在数据库中。 轻型应用程序最具伸缩性,因为它们最有效地使用了数据库连接这一稀有资源。相比之下,重型应用程序必须保持长期有效的数据库连接,因为这是有状 态的服务器端游标所要求的。这就大大地限制了应用程序的可伸缩性,尤其不适用于 Internet 服务器应用程序。尽管使用 ADO 开发重型应用程序可能更简单,但通常这并不是最佳选择。 ADO 也不是特别适用于处理 XML 文档等分层数据。ADO 完成此项工作的功能用法复杂,且不易理解。同样,ADO 仅为访问 SQL Server 2000 的 XML 功能提供有限支持,因此,Windows DNA 应用程序通常都避免使用 ADO 处理分层数据。 将数据传递到客户端 对于所有 N 层应用程序而言,将数据从中间层有效地移动到客户端都是一个关键的环节。当使用 DCOM 与 Windows 客户端通信时,Windows DNA 应用程序可以使用 ADO 断开连接的记录集。当确保浏览器为 Internet Explorer 时,此选项也可用于浏览器客户端。而将数据发送到任意浏览器则比较困难。一种方法是显式地将数据转换为 XML,然后将数据和所有必要的脚本代码发送到浏览器。 |