你的位置:首页 > ASP.net教程

[ASP.net教程]第4章 部署模式 Three


影响因素

Tiered Distribution 中讨论的影响因素也适用于此模式。有关这些通用影响因素的讨论,请参阅"Tiered Distribution"。下列影响因素仅适用于 Three-Tiered Distribution 模式:

  • 数据库负载所具有的重要性要求数据库应当使用专用的服务器(或整个群集)。
  • 安全策略禁止将公司数据库驻留在直接连接到 Internet 的服务器上。
  • 大量的用户使用他们自己的计算机或设备来访问解决方案。例如,您有一个 Web 应用程序,该应用程序具有大量访问公共应用程序的用户。
  • 必须能够扩展客户端级,以便应付用户数量的大幅度增长。
  • 客户端需要利用共享的数据库来执行事务,并且您希望跨越解决方案共享业务逻辑。
  • 客户端、应用程序逻辑和数据库的可伸缩性要求差异很大。

解决方案

围绕三个物理级构造应用程序:客户端、应用程序和数据库。图 1 显示了此三级分布。

图 1: 三级分布

客户端级

客户端级与解决方案的用户交互。如果您的应用程序遵守 Three-Layered Services Application,那么该级将驻留表示层组件。

硬件

对于 Web 应用程序,客户端级由用户工作站、PDA 以及驻留 Web 浏览器的其他设备组成。对于面向服务的解决方案,该级由使用服务的计算机和设备组成。

客户端级中的计算机相互独立,并且不应通过硬编码的方法来引用应用程序级资源;而应使用域名系统 (DNS)、轻型目录访问协议 (LDAP) 或通用描述、发现和集成 (UDDI) 等名称服务来查找服务器和服务。

该 级中的计算机数目可能十分庞大。Web 应用程序的这一级本质上具有数目不限的计算机。解决方案通常需要向上扩展,以应付用户及其关联的计算机数目的大幅度增长。客户端级不对它所包含的计算机数 或者您添加计算机处理能力加以任何限制。但是,客户端级中的所有计算机最终都必须与应用程序级交互。应用程序级的可伸缩性最终会制约客户端级处理新增用户 或每个用户所增加的工作负荷的能力。

软件

客户端级中的操作系统和解决方案软件针对响应的用户交互进行配置和优化,并且必须至少提供下列两个服务:

  • 表示解决方案的用户界面的机制。对于 Web 应用程序,此机制是 Web 浏览器。对于胖客户端,它可能是自定义的 UI 框架,甚至可能由操作系统提供。
  • 需要软件基础设施来与其他级通信。胖客户端的一个示例是 TCP/IP 套接字。HTTP 可以对 Web 应用程序提供此服务。

安全性

客户端级通常存在于不同于其他级的单独安全环境中,并且该级中的各个计算机通常处于它们自己的上下文中。许多解决方案必须能够调整客户端级的安全环境,使之适应于应用程序级。

基于 Web 的企业应用程序的网络基础结构通常基于外围网络(也称 DMZ、网络隔离或屏蔽子网)。按照定义,客户端级位于外围网络的公共端。

应用程序级

应用程序级中的服务器负责驻留应用程序的业务组件,以及 Web 服务器(在 Web 应用程序的情况下)。如果您的应用程序遵守 Three-Layered Services Application,那么该级将驻留业务层。

硬件

应用程序级中的计算机是服务器,其配置必须能够协调应用程序服务器与 Web 服务器的资源要求所引起的冲突。

由 于应用程序级服务器是 Web 服务器,因此该级通常必须包含配置为 Server Farm 的多个服务器,以满足可伸缩性和容错等运行要求。随着在客户端级中添加用户,直至解决方案的性能降低到可接受的参数以下,您必须在场中添加服务器。有关服 务器场的可伸缩性和容错等特性的详细信息,请参阅"Server Farm"。

软件

应用程序级 中的服务器同时安装了 Web 服务器和应用程序服务器软件。应用程序服务器软件为应用程序逻辑提供执行上下文。有关应用程序服务器的总体概念的详细信息,请参 阅"Application Server"。有关该级所要求的软件基础设施的示例,请参阅"使用 Windows Server 2003 实现 Application Server"。

如果您的解决方案是 Web 应用程序,那么必须针对安全性和网络连接对该服务器进行优化。否则,服务器配置应反映您的业务组件和应用程序服务器的资源要求。避免通过硬编码的方法来引 用应用程序中的特定数据库,而应使用配置文件、注册表或名称服务来选择引用适当的数据库。

安全性

该级中的服务器通常位于相同的安全环境内。因此,它们可以使用公共的安全基础结构来彼此进行交互。

如 果使用外围网络,则通常在其中部署组合的应用程序和 Web 服务器。这具有不利的影响,即增加了将敏感的业务逻辑公开于公共 Internet 的机会。如果您的安全要求规定必须将敏感的业务逻辑保留在外围网络的公司端,那么应考虑 Four-Tiered Distribution 模式。

数据级

数据级中的服务器驻留了解决方案所需要的数据库。如果您的应用程序遵守 Three-Layered Services Application 模式,那么该级将驻留于数据层。

硬件

数 据级中的计算机具有一定的规模,并配置为企业服务器。已针对 I/O 吞吐量和硬盘使用情况对这些服务器进行优化。如果可伸缩性和容错等运行要求规定该级中应具有多个服务器,那么这些服务器几乎总是被配置为服务器群集。通常 在这种情况下使用服务器群集是因为,所有服务器都必须对一个共享状态(例如,数据库)进行操作,并且服务器类的计算机对磁盘空间和磁盘 I/O 容量具有非常高的限制。有关服务器群集的可伸缩性和容错等特性的详细信息,请参阅Server Clustering。

软件

数 据级服务器驻留数据库管理系统,如 Microsoft® SQL Server™ 2000。通常,报告和数据分析软件也部署在这一级。为了从群集服务器环境获得最大的收益,要求对数据库软件进行专门的调整,以便在群集环境中使用。

安全性

由于需要保护公司的数据资产,因此数据级通常具有所有级中最严格的安全要求。通常,只允许应用程序服务器和数据库管理员工作站访问这些服务器。对于具有严格的安全要求的解决方案,可以在网络中专门的子网中部署数据级。

如果使用外围网络,那么数据级几乎总是位于外围网络的公司端。一些安全意识非常强的解决方案甚至在应用程序级和数据级之间部署第二个外围网络。

结果上下文

Three-Tiered Distribution 模式具有许多优缺点。

优点

使用此模式具有下列优点:

  • 通过将应用程序级配置为服务器场,并将数据库级配置为服务器群集,可强力支持可伸缩性和容错。
  • 通过将客户端计算机与应用程序逻辑分开,可支持瘦客户端应用程序的开发和分布。
  • 每一级都可以在其自己的安全环境中运行。
  • 由于 Web 服务器和业务组件位于同一台计算机上(甚至经常处于同一进程中),因此性能得到增强。

缺点

使用"三级分布"也具有下列缺点:

  • 业务逻辑直接向客户端级公开,对于 Web 应用程序来说,这可能带来重大的安全风险。
  • 支持 Web 服务器的硬件比同时支持 Web 服务器和应用程序服务器的硬件要便宜得多。因此,对于此解决方案而言,添加一个新用户所增加的成本通常比 Web 服务器与应用程序服务器分开的解决方案要高。