商务参考体系结构:企业对消费者 (B2C电子商务实践) 第 4 章:物理设计阶段

 

商务参考体系结构:企业对消费者

第 4 章:物理设计阶段
Microsoft Corporation
2001年5月

摘要:本章讨论了和商务参考体系结构应用程序 ConsolidatedRetail.com 有关的 Microsoft 解决方案框架 (MSF) 物理设计阶段。在逻辑设计阶段,项目开发小组将实际的物理设计约束应用到在逻辑设计阶段创建的逻辑设计。这项活动的目标是标识一组组件,然后确定哪些组件已经存在以及哪些组件必须创建。在该阶段的末尾,将结果记录在明确定义的技术规范中,该规范将成为构建应用程序的蓝图。

简介

物理设计阶段是将实际的物理设计约束应用到逻辑设计的过渡阶段。标识了逻辑组件之后,下一个任务就是分析哪些组件已经存在,哪些组件可以重复使用或进行修改,而哪些组件必须创建。

正如前文所述,物理设计过程是从开发人员的角度考虑的。该阶段的成果是一个完整实现方案的设计或蓝图,同时编写出了技术规范文档,开发小组将使用该文档来构建应用程序。

物理阶段可以分为三个更小的任务阶段,如下所示:

  • 研究:在此阶段,开发小组将确定物理基础结构约束和解决方案需求,并处理这两者之间的冲突。此外,开发小组还将确定预期的实现技术。

  • 分析/合理化:开发小组将选择要使用的实现技术,并确定如何满足定义的业务需求。

  • 实现:开发小组将选择编程模型、指定组件接口并选择开发语言。

本章的其余部分将详细讨论这三个任务,并在适当的地方给出示例。

研究工作

物理阶段涉及的第一个任务是研究和收集有关以下主题的信息:

  • 物理解决方案需求

  • 物理约束

  • 可供选择的现有技术

客户需求暗含在需求文档中,在逻辑阶段进一步加以定义;不过开发小组可能需要研究并确定实际的约束和现有的技术。

确定物理解决方案需求

物理解决方案需求是专用于指导基础结构设计的需求。在第 1 章中,我们定义了以下系统需求:

  • 全球化

  • 性能/可靠性

  • 可扩展性

  • 可用性

  • 可管理性

  • 安全性

  • 可访问性

以下章节将对每个主题进行详细说明。

全球化(国际化)

全球化(或国际化)是开发程序核心内容需要经过的一个过程,在这个过程中,不再是基于单种语言或区域进行功能设计和代码设计,同时,编写的源代码更便于创建程序的不同语言版本。

全球化使您能将应用程序移植到不同的文化环境。在早期的编程中,这仅仅意味着支持多种语言(例如,支持 Unicode),但是现在进行全球化时,还要考虑选择什么样的界面,例如确定颜色、导航布局以及页结构等。

进行全球化时,需要仔细审查应用程序或网页中涉及的一些众所周知的地理和文化问题。全球化的步骤包括:研究语言和文化问题,请语言专家校验一些众所周知的问题,如果可能的话,请特定销售区域的公司代表校验一些众所周知的问题。

要支持这些文化差异,可以定义以下物理需求:

  • 在数据库中使用 nVarChar 而不使用 VarChar

  • 提供自定义界面的能力

性能

性能一般用“系统总吞吐量”和“响应时间”来衡量。

系统总吞吐量

系统总吞吐量使用“每秒事务数 (TPS)”来衡量,反映了系统在执行服务请求的特定集合(称为事务)方面的能力。对于电子商务应用程序,事务可能由以下依次执行直到结束的事件组成:

  • 用户来到站点。

  • 用户浏览目录,找到想要的产品。

  • 用户将产品添加到购物车。

  • 用户注册。

  • 用户结帐。

TPS 是系统每秒可以处理这些事务的最大数量。正如在业务需求中所述的,当使用以下开发配置时,将商务参考体系结构应用程序设计为每小时至少处理 4800 个这样的事务:

  • [(4) PIII 500mhz,1GB RAM,服务器运行 IIS 和 Commerce Server]

  • [(1) PIII 500mhz,1GB RAM,服务器运行 SQL Server]

响应时间

响应时间是用户请求和系统响应之间间隔的时间量,是用户最关心的性能指标。响应时间通常用一个百分比和响应秒数来表示。例如,“所有请求中的 90% 应在 5 秒之内响应”意味着在用户认为应用程序的运行出现问题之前,其所发请求中的 90% 必须在 5 秒之内得到服务器的响应。

商务参考体系结构应用程序要求在 5 秒内响应全部请求中的 95%。

可扩展性

可扩展性是指添加资源时站点容量增加的能力。从用户角度来看,这意味着当大量用户同时访问站点时,站点仍能提供可接受的响应时间。

我们在以前的章节中已经提过,提高可扩展性有两个方法:“向上扩展”和“向外扩展”。

向上扩展

“向上扩展”就是通过采用更好和/或更快的 CPU、更大的 RAM、更快的磁盘等等来增强服务器的处理能力。这种方法非常有效,尤其是在数据层上,该层上的一些大型数据库需要相对较强的处理能力。不过,由于硬件成本随处理能力的加强而按指数增长,因此,服务器越接近顶端,这种方法就愈加不合算。

向外扩展

“向外扩展”则是指利用群集(也称为“Web 领域”)中的多个服务器来分担处理工作量。Web 领域在硬件方面的花费更为合算,而且提供了更为灵活、可扩展的解决方案。当站点上的负载增加时,可以很轻松地将服务器添加到 Web 领域中。

要启用向外扩展,您必须避免使用服务器特定的会话内存(例如 ASP 中的 Session 对象)保留信息。其原因如下:

  • 用户会话将依附于特定服务器(会话相关性),这会破坏动态地将请求分配给服务器的网络负载平衡策略。此外,还会破坏服务器领域的可靠性,因为当原服务器发生故障(并丢失了其内存中的会话状态信息)时,就无法将用户会话转移到其他服务器。

  • 内存资源被前端服务器耗费在存放用户会话状态的细节上,从而减少了可用于处理请求和高速缓存内容的内存。如果一个受欢迎的站点能够在短时间内吸引大量的用户,则状态维护方面的内存需求可能非常大。为了部分解决内存需求问题,Commerce Server 大量使用了高速缓存。对配置文件架构、折扣和商业活动都将进行高速缓存。

可用性

可用性是指在任意时候客户机能及时连接和使用资源的能力。

理解高可用性的一种方法是将其与“容错”相对比。这些术语描述了测量可用性的两个不同的基准。“容错”被定义为在 100% 时间内的 100% 可用性(无论处于何种环境)。容错系统的设计目的是“确保”资源的可用性。

高可用性的资源对于客户机来说几乎总是处于运作状态并且是可访问的。因此,它不能出现单点故障。服务器群集和网络负载平衡是使系统资源保持可用的两种方法。

部署站点之前,应将以下方法组合使用,防止服务器出现故障:

  • 地理位置分散的数据中心。

  • 不间断的双重电源。

  • 数据备份。

  • 群集形式的服务器,多个计算机所起的作用相当于单个服务器的作用。

  • 数据复制。

  • 网络负载平衡,即由多个相同的服务器分担负载以确保可用性、可扩展性和完全一致的用户体验。

可管理性

可管理性是指执行站点管理任务的能力。对于电子商务应用程序来说,它包括对产品目录、特价促销、装运费用、税率、用户帐户进行配置,以及为站点使用情况、趋势提供报告机制等等。

如果具有全面的管理基础结构,业务经理就能对站点进行配置,以根据市场趋势和竞争对手的活动采取相应的对策。

安全性

如果能确保最基本的窗体的安全性,也就确保了数据或设备受到保护,防止未经授权的人访问或使用它们。在电子商务应用程序的环境中,应该保护以下信息:

  • 敏感的用户信息

  • 信用卡号

  • 未公开的产品数据

应用程序安全性的设计主要包括三个方面的内容:“身份验证”、“授权”和“加密”。

身份验证

有两种主要的方法可用于分布式解决方案(例如电子商务站点)中的用户身份验证。一般是用“假冒/委托”模型和“受托服务器”模型来描述。

这两种模型都假定使用了 n 层应用程序。在本示例中,用户连接到中间层(具体是指 Web 领域),Web 领域依次访问后端层(具体是指 SQL Server 数据库)的数据或服务。这两种方法的不同之处在于用来访问后端数据的安全帐户不同。

  • “假冒/委托”模型

    在“假冒/委托”模型中,用户向中间层应用程序提供安全凭据,然后,中间层应用程序使用用户的安全凭据访问后端数据库。中间层应用程序实质上在“假冒”用户,代表用户检索数据。

    图 4-1 说明了“假冒/委托”模型:

图 4-1:“假冒/委托”模型

  • “受托服务器”模型

    在“受托服务器”模型中,中间层应用程序对用户进行身份验证,通常是校验用户名和口令的组合。中间层应用程序认为用户的身份正确无误后,它使用“自己的安全帐户”访问后端数据库。除了通过中间层应用程序之外,用户无权访问后端数据。在这种方法中,实际上有两种身份验证操作。首先,Web 应用程序对用户进行身份验证,然后数据库服务器对 Web 应用程序进行身份验证。

    图 4-2 说明了“受托服务器”模型:

图 4-2:“受托服务器”模型

授权

授权是指对特定用户或服务授予访问资源的权限。用户通过了身份验证后,应能从应用程序请求特定的功能。可以向用户分配权限或“授权”,以便执行某些任务而不能执行其他任务。在安全环境中,将访问级别限制为授权的用户是非常重要的。

安全专家经常谈论“最小权限原理”。这是一个经验法则,规定用户应该具有足够的权限来执行所需执行的任务,“但不应该具有更多的权限”。

加密

加密是确保安全的另一种方法,通过对数据进行编码以防止未经授权的访问。

根据加密的位置不同,加密可以在许多级别上进行。通常,加密可以在服务器上、传输时或客户机上进行。

  • 服务器加密

    服务器上的加密是指对在服务器基础结构中存储和传输的数据进行加密的过程。对服务器基础结构中的数据进行加密后,就能确保在出现违反安全性的事件时,访问到的敏感数据由于被加密而毫无使用价值。

    用户的信用卡数据就是应对数据加密的一个示例。当业务层在数据层中存储用户的信用卡信息时,对该数据进行加密是非常重要的。如果某个黑客侵入了系统,并获得了对保存加密的信用卡信息的表的访问权,那么该信息对于黑客没有任何用处。如果信用卡信息未加密,则加重了应用程序对数据安全所负的责任。

  • 传输加密

    传输加密专门用于处理在服务器和客户机之间传送的数据。例如,用户向服务器提交 HTML 窗体时,用户输入到窗体中的数据使用超文本传输协议 (Hypertext Transfer Protocol,HTTP) 通过连接(例如 Internet)进行传输,然后由服务器接收。

    在传输过程中,数据可能会被偷窃和篡改,这可以通过在传输时对数据加密来解决。在 Internet 上传输的数据可以通过以下方式加密:在 Web 服务器上安装安全证书,为站点配置安全套接字层 (Secure Sockets Layer,SSL) 端口,使用 HTTP 的加密形式 HTTPS 作为传输协议。

    服务器证书可以从 http://www.microsoft.com/security/(英文)所列的认证机构之一处购买。您可以使用 Microsoft Certificate Services 发布独立的证书,这将允许您在单个服务器上测试 SSL 安全性。请使用 Web Server Certificate Wizard 安装证书,该向导可以通过 Internet Services Manager 中的站点属性来访问。

    构建实现 SSL 的站点时,应该意识到:将用户从未加密会话定向到加密会话的超级链接或重定向操作必须包含 https:// 前缀。这指定了用户的浏览器将使用 HTTPS 与服务器进行通信。

  • 客户机加密

    客户机加密专门用于处理驻留在客户机上的数据。例如,如果某个文件是公用的,但它被加密了,那么只有具有正确的解密密钥的用户可以使用该文件。

    对于一般的电子商务应用程序,客户机加密不如传输和服务器加密重要,但是某些情况下可能要求使用这种加密方式。

可访问性

可访问性是指从多种设备或浏览器访问站点的能力。Internet 正在以难以置信的速度向前发展,而访问 Internet 的设备也变得五花八门。因此,使电子商务应用程序可被多种设备访问并且在这些设备上正常运行是一个非常艰巨的任务。

支持多个客户机的关键是将表示形式从内容中分离出来。许多方法可以做到这一点,其中包括编写 ASP 页中的逻辑来根据客户机生成不同的响应,或将不同设备重定向到替代站点。不过,将表示逻辑从内容中分离出来的最佳方法之一就是使用 XML。如果数据可以用 XML 来表示,那么可以使用 XSL 样式表为特定类型的客户机呈现数据。通过应用不同的样式表,可以为不同的客户机表示同一内容。图 4-3 说明了这个概念。

frameborder="0" height="230" marginheight="0" marginwidth="1" scrolling="yes" src="/china/msdn/images/raoverview15.gif" width="550">

图 4-3:将表示形式从内容中分离出来

确定可供选择的现有技术

可供选择的技术是指解决方案中可以使用的技术、产品或服务。利用现有的技术来实现功能在经济上经常是很合算的,这样就不必另外构建这些功能了。例如,构建 Web 应用程序时,您需要一个操作系统作为解决方案的基础,但是没有必要自己构建一个操作系统。

既然在每次构建应用程序时没有必要自己构建一个操作系统,同样也就没有必要自己构建 Web 解决方案本身的所有部分。许多专家都认为:未来的整个应用程序将使用现有的服务来构建,这些服务只需重新加以组合就可构成一个应用程序。

因此,收集有关在解决方案中可以使用哪些技术的信息很重要。在物理设计阶段涉及的下一个任务中,设计小组将分析该信息,并确定哪些技术(如果有的话)可以满足正在讨论的特定应用程序的需求。

操作系统

任何现代的应用程序都是在操作系统之上构建的。操作系统不仅提供了与硬件通信的接口,还提供了构建应用程序的公共框架。选择一个支持面向对象的方法和公共框架(应用程序可以在该框架上运行和通信)的操作系统是很重要的。

Windows 2000 Server 平台

Microsoft® Windows 2000 Server 为应用程序开发人员提供了一套内容丰富的功能。Internet 上许多主要的电子商务站点都是在 Windows 2000 上运行的,其中包括 Buy.com、BarnesAndNoble.com、Dell.comIntel.com

Internet 服务

基于 Web 的应用程序的另一个核心部分是 Internet 服务。基于 Web 的应用程序需要一个 Internet 服务平台,该平台负责基本的 Web 服务,例如响应客户机的 HTTP 请求、HTTPS 请求和其他请求。一个好的 Internet 服务平台还应该提供站点管理能力和动态内容编程模型。

Microsoft Internet Information Services

Microsoft® Internet Information Services (IIS) 是内置于 Windows 2000 中的 Web 服务器。IIS 提供了一个内容丰富的 Internet 服务软件包,包括 ASP、DAV、Web Folders、FrontPage Extensions、FTP、多站点宿主以及其他支持。

表示服务

正如以前在“可访问性”一节中提到的,使内容和表示形式分离是非常重要的,只有这样才能从多个客户机访问内容。进行这种分离对于简化全球化工作也是非常重要的。

正如以前所述,将表示逻辑从内容中分离出来的一种方法是同时使用 XML 和 XSL。除了同时使用 XML 和 XSL 之外,还可以根据诸如 Browscap.ini 文件、USER_AGENT 字符串等等之类的实体,在 ASP 页自身中构建复杂的页逻辑。

Microsoft XSLISAPI 过滤器

可以实现表示服务功能的一个备选技术是 Microsoft® XSLISAPI 过滤器。ISAPI 代表 Internet 服务应用程序编程接口,是 IIS 的基础。筛选器放置在 ISAPI 之上,并在 Web 服务器接收客户机或服务请求时提供相应的功能。例如,ASP 引擎 (ASP.dll) 是在 ISAPI 之上运行的扩展。

XSLISAPI 过滤器用于截获所有对具有 XML 或 PASP 文件名扩展的文档的请求。PASP 文件名扩展专用于与 XSLISAPI 过滤器一起使用的应用程序。具有该扩展的文件被认为是标准的 ASP 文件(具有某些限制),这些文件可以生成有效的 XML(而不是 HTML)输出。然后,根据将 ISAPI 过滤器应用于直接请求的 XML 文件的相同规则,转换 PASP 脚本的输出内容。

检索了 XML 后,表示过程的下一步是将数据转换为某些类型的有效标记(客户机可以显示这些标记)。对于浏览器,这可能是 HTML;对于支持 WAP 的手机,这可能是 WML。可以从以下 Web 位置获取 XSLISAPI 文档:http://msdn.microsoft.com/code/default.asp?URL=/code/sample.asp?url=/MSDN-FILES/026/002/187/msdncompositedoc.xml(英文)。

图 4-4 说明了 XSLISAPI 过滤器的概念:

frameborder="0" height="260" marginheight="0" marginwidth="1" scrolling="yes" src="/china/msdn/images/raoverview16.gif" width="550">

图 4-4:XSLISAPI 过滤器功能

数据服务

对于电子商务解决方案的构建而言,具备存储、检索和管理数据的功能也很重要。这些服务被封装到一个数据库服务器中。对于企业数据库服务器来说,性能高、并发性好以及具备可扩展性是非常重要的。

SQL Server 2000

Microsoft® SQL Server 2000 是一种 SQL 数据库服务器,它提供了企业级性能、可扩展性和良好的并发性。它还提供了对 XML 的丰富支持、严密的安全性以及功能强大的分析工具。

商务平台

如果从头开始构建一个企业电子商务解决方案,将会耗费大量的时间和人力物力资源。如果充分利用现有产品中的电子商务功能,则会显著缩短整个程序的开发时间,节约大量开发费用。

Microsoft® Commerce Server 2000 就是充分利用现有功能开发的。

Commerce Server 2000

Commerce Server 2000 是一个综合性产品,它将电子商务解决方案的许多功能封装到一个软件包中。Commerce Server 2000 提供了高级的管理功能、较强的可扩展性和良好的性能。有关详细信息,请访问 Microsoft Commerce Server 网站,其 URL 是:http://www.microsoft.com/commerceserver(英文)。

分析/合理化

物理设计阶段的研究工作完成之后,紧接着要进行分析和合理化方面的工作。分析和合理化是指对研究过程中收集的信息进行分析,并基于这些信息作出决策。

使用现有的技术

当设计小组考虑使用现有技术时,必须权衡所有可能影响解决方案的因素。以下列出了可能的因素,但不一定全面:

  • 能力:该技术是否能实现业务功能?

  • 所有权成本:该技术在经济上是否合算?需要考虑产品、开发、升级、许可证、部署和运营方面的费用。

  • 经验:该技术要求开发人员具有哪些经验和专业技能?是否会有培训费用?是否有未知的费用?

  • 成熟和创新:该产品是否是成熟的?它是否已被市场接受?该产品是否有创新性,是否使用了最新的技术?它是否仍是流行的?

  • 部署:该技术是否难以实现?

  • 可支持性:该技术是否可以获得支持?

  • 体系结构:该技术是否实现了一个可接受的体系结构?该体系结构是否满足企业的需求?

  • 可扩展性:该技术是否可以扩展以满足发展要求?

  • 互操作性:该技术是否可以和组织中现有的系统协同工作?

  • 性能:该技术是否可以提供所需的性能?

  • 可靠性:该技术是否可以满足应用程序的可靠性需求?

  • 可用性:该技术是否可以处理应用程序需求,而不会导致解决方案失败?

  • 可管理性:该技术是否易于管理?

  • 安全性:该技术是否符合安全性需求?

  • 标准兼容性:该技术是否与公认的标准兼容?

其他因素,例如项目时间表和预算约束以及可能牵涉到的其他内部项目,都应该考虑在内。

Windows 2000 Server

Windows 2000 Server 是商务参考体系结构的操作系统,因为它提供了一套专门为企业应用程序设计的功能。其中包括以下功能:

  • 服务器类型的选择:Windows 2000 Server 平台可在多种服务器上运行。在商务参考体系结构解决方案的环境中,应用程序既能向上扩展也能向外扩展是非常重要的。根据应用程序负载需求,组织可以选择在两个或多个运行 Windows 2000 Server 或 Windows 2000 Advanced Server 的服务器上部署解决方案。要获取最佳性能并允许将负载分布在多个服务器上,请使用 Microsoft 2000 Datacenter Server 网络和网络负载平衡 (NLB)。

  • 可扩展性:通过使用 Microsoft Windows 2000 群集服务和网络负载平衡,Windows 2000 Advanced Server 和 Datacenter Server 可以进行向外扩展。

通过使两个服务器运行同一应用程序、共享公共的存储机制,群集服务确保了连续的服务。如果这些服务器之一出现故障,另外一个可以接管。由于构建了系统基础结构中的冗余,应用程序就可以使停机时间降为零。

图 4-5 说明了群集的概念。

图 4-5:群集形式的服务器

Windows 2000 Advanced Server 和 Datacenter Server 还可以通过 NLB 进行向外扩展,在这种方法中,将多个服务器作为具有单个 IP 地址的单个单元显示,应用程序负载均匀分布在这些服务器上。当 NLB 设置中的一个服务器出现故障时,NLB 自动检测出现故障的系统,将其负载转移到其他系统,然后重新启动计算机。

图 4-6 说明了 NLB 的概念。

图 4-6:网络负载平衡

  • 可用性:通过使用 Windows 2000 Advanced Server 或 Windows 2000 Datacenter Server 中的群集服务和 NLB 服务,Windows 2000 Server 提供了具有高可用性的解决方案。将 NLB 服务和群集服务一起使用可以消除单点故障。

  • 可靠性:Windows 2000 Server 平台实现了“5 个 9”的可靠性,即确保了正常运行时间高达 99.999%,这相当于每年的停机时间小于 5 分钟。在企业电子商务环境中,停机意味着损失几百万美元的直接收入,还会给客户带来烦恼、招致他们的抱怨。因此,可靠的操作系统是企业解决方案不可分割的一部分。

  • 性能:Windows 2000 Advanced Server 和 Datacenter Server 实现了对称多处理 (Symmetric Multiprocessing,SMP) 支持,它使服务器有效用于 Advanced Server 的处理器高达 8 个,用于 Datacenter Server 的处理器高达 32 个。此外,Advanced Server 还包含增强的内存功能,使服务器可具有高达 8GB 的内存;对于 Datacenter Server,允许服务器的内存达到 64GB。

  • 可管理性:Windows 2000 Server 提供了一套种类繁多的工具,允许您管理网站并连接 Microsoft Management Console (MMC),以便在一个集中的位置管理服务器功能。Windows 2000 中的某些管理功能包括事件记录、性能监视、终端服务以及 Windows 管理规范 (Windows Management Instrumentation,WMI)。

  • 安全性:Windows 2000 提供了一个安全的环境,通过 Active Directory、安全性/身份验证协议以及通信加密,严格控制对文件或服务的访问。

  • 组件服务:Windows 2000 COM+ 服务为开发人员和管理员提供了应用程序功能。这种内置的功能允许开发分布式事务应用程序,而不必开发支持最小单位的事务或异步操作的底层基础结构。您可以在以下位置查找有关 Windows 2000 Server 的详细信息:http://www.microsoft.com/Windows2000(英文)。

Microsoft Internet Information Services (IIS)

Microsoft IIS 随 Microsoft Windows 2000 一起提供,它提供了使用 Internet 提交内容的丰富平台。由于 IIS 完全是在操作系统级别上集成,因此它允许开发和部署直接写入计算基础结构中的解决方案。

IIS 为商务参考体系结构解决方案提供了 Internet 服务,因为它随操作系统一起提供并具有内容丰富的功能集。两个关键的 IIS 功能是 Active Server Pages (ASP) 和 Internet 服务应用程序编程接口 (ISAPI)。

XSLISAPI

XSLISAPI 过滤器为商务参考体系结构解决方案提供了表示服务。使用 XSLISAPI 过滤器后,内容可以和表示形式完全分离,从而允许自定义内容发送而无需修改 ASP 代码。

如果不想同时使用 XML 和 XSL,还可以使用另一方法:在 ASP 页本身中构建复杂的页逻辑。不过,此方法有两个主要的缺点:第一,代码中复杂的显示逻辑可能难以管理;第二,运行这种逻辑需要庞大的开销。

XSLISAPI 截获对具有 XML 或 PASP 文件扩展的文档的所有请求。PASP 文件名扩展专用于与 XSLISAPI 过滤器一起使用的应用程序。具有该扩展的文件被认为是标准的 ASP 文件(具有某些限制),这些文件可以生成有效的 XML(而不是 HTML)输出。

然后,根据发出请求的设备,XSLISAPI 过滤器使用 XSL 样式表转换 PASP 或 XML 页的 XML 输出,将转换后的输出内容发送给客户机。

使用 XSLISAPI 过滤器还有另一个好处,即能按不同的技能组分配相应工作量,从而使开发过程更易于管理。例如,图形设计人员可以按自己的界面规范创建 XSL,而 ASP 开发人员只需要考虑如何将正确的数据传递到界面。

SQL Server 2000

SQL Server 2000 为商务参考体系结构解决方案提供了数据服务。它提供了一个完整的企业数据库解决方案,Commerce Server 2000 将依赖于它的数据服务。对于许多电子商务解决方案,只需要在 Windows 2000 Datacenter Server 上安装一个群集形式的 SQL Server 即可提供所需的可扩展性级别。对于存储数据量极大的站点,可以在多个服务器上创建 SQL Server 数据库,并用“分布式分区视图”来实现跨物理服务器的数据存取与更新。

Commerce Server 2000

开发小组之所以选择 Commerce Server 2000,是因为它是为 Windows 2000 平台构建的,并且为电子商务应用程序提供了一套内容丰富的开发、部署和管理工具。Commerce Server 提供的大约 80% 的对象是在逻辑阶段定义的,开发所需的费用很低。这些对象是作为可用于 ASP 页的 COM 对象实现的。

Commerce Server 2000 提供了以下功能:

  • 与其他服务和软件功能集成:因为 Commerce Server 2000 是专门为 Windows 2000 设计的,因此其体系结构可以和操作系统完全集成。Commerce Server 充分利用了 Windows 2000 Server 中的 COM+ 功能,为企业电子商务应用程序提供了坚实的基础。

    Commerce Server 还可以和 Microsoft® BizTalk™ Server 很好地集成,以便降低某些流程管理功能和外部通信的负担。

  • 管道组件:“管道组件”是一组可配置的自定义 COM 对象,它们被依次调用来执行特定的业务流程。在 Commerce Server 解决方案中,大多数自定义业务类可以作为管道组件实现,以便可以用简单的方法来管理业务流程。(管道组件只不过是实现人们熟知的接口 (IpipelineComponent) 的一些 COM 组件)。这样就允许 Commerce Server 将管道组件标识为适合于 Commerce Server 的组件,然后可以被管道调用。

    在参考体系结构应用程序中,管道组件用于处理诸如“客户订单处理”这样的流程,并确保按顺序执行处理订单所需的任务。

  • 管理基础结构:为电子商务站点设计和构建管理框架不仅要耗费大量资源,而且其工作量一般要大于电子商务应用程序本身的开发工作量。Commerce Server 的管理基础结构是吸引人们最终使用 Commerce Server 的主要因素。

    Commerce Server BizDesk 随 Commerce Server 一起提供。BizDesk 是基于 DHTML 的应用程序,在 IE 5.5 或更高版本上运行,允许管理员远程管理拍卖、促销活动、目录、订单和用户,并提供了一套内容丰富的分析工具。

    因为 BizDesk 是完全基于 DHTML 的,它还可以用于远程管理在 Commerce Server 之上构建的电子商务解决方案。这种方法将 BizDesk 应用程序负载置于客户机上,不会影响电子商务站点的性能。

满足业务需求

确定了可以使用的现有技术之后,开发小组必须确定这些技术如何满足以前提到的业务需求。为了满足这些需求,开发小组必须就工具、过程和方法作出某些关键决策。应该能在必须满足的特定业务需求的环境中查看这些决策。

全球化

正如以前提到的,全球化是指将应用程序移植到不同文化环境中的能力。为了满足该需求,提供给用户的内容和表示形式必须进行“全球化”。在全球化期间,可以将内容分为以下两种类型:

  • 静态内容 — 界面上可以找到的内容以及界面本身。

  • 动态内容 —“动态构建”并显示给用户的内容。

以下各个小节说明了涉及的问题以及对两种内容全球化所作出的关键决策。

静态内容

静态内容包括界面上的文本和界面本身,必须针对指定的文化或语言进行本地化。XSLISAPI 过滤器是这样进行本地化的:允许开发小组对于不同语言使用不同的界面设计,然后将应用程序部署为不同的网站或不同的虚拟目录。通过使用该方法,用户可以选择自己的语言,然后重定向到相应的站点。

注意:参考体系结构应用程序并未进行全球化;不过,该应用程序使用了 XSLISAPI 过滤器,因此具有实现全球化的能力。

动态内容

动态内容由应用程序“动态”生成的内容组成。

如果应用程序将要支持不同语言,它必须支持不同的字符集。Unicode 标准是包含世界上所有语言的字符的字符集。使用 Unicode 标准确保了所有语言可以在动态数据中表示。要支持 Unicode 标准,所有保存字符数据的数据库字段必须使用诸如 nVarChar、nChar 等等的数据类型。同时,业务层必须支持 Unicode 的使用。

因此,商务参考体系结构解决方案在整个应用程序中始终使用 Unicode 标准。

性能

要获得最佳性能,设计小组必须作出多个关键决策。首先,要使系统总吞吐量(即应用程序的总体效率和性能)最大化,为此设计小组应解决以下关键问题:

  • 封送

  • 语言选择

  • 异步处理

使封送最小化

提高系统吞吐量的一种方法是使封送最小化,要做到这一点,最好的方法是减少网站对其他位置上的组件的远程过程调用。许多电子商务站点驻留在专用 Web 服务器的领域中,而业务组件则位于单独的应用程序服务器群集中。虽然这个体系结构可有效确保系统的安全性,尤其是当应用程序服务器通过防火墙或包过滤交换机与 Web 领域分开时更是如此;但是该体系结构将对响应时间造成负面影响,因为对组件的每次调用都必须通过网络连接进行封送。

商务参考体系结构应用程序将组件部署在网站所在的同一服务器上,因此它避免了跨网络的封送,缩短了响应时间。(Commerce Server 提供了参考体系结构应用程序使用的大多数业务组件,这些组件将安装在 Web 服务器上。)

语言选择

语言选择也会影响性能。例如,虽然为 Commerce Server 管道创建的组件可以用脚本语言来编写,但是对于企业应用程序,组件应该使用更低级的语言(例如 Microsoft® Visual Basic® 开发系统或 C++)来构建以获得最佳性能。虽然类似于 ADO 这样的组件在 Visual Basic 组件和 C++ 组件中运行的速度几乎相同,但是复杂的业务例程在 C++ 中运行得更快一些。因此,选择 C++ 作为商务参考体系结构应用程序中所有组件的构建语言。

异步处理

为了使响应时间最小化,许多过程应被设计为异步运行。例如,在用户结帐时,在他收到界面响应之前,不必等待系统发送电子邮件进行确认。

可扩展性

解决可扩展性问题可能是一个非常艰巨的任务。扩展应用程序的第一个方法是向上扩展,主要是为单个服务器配置性能更好的硬件,从而提高速度。对于向上扩展来说,虽然所需考虑的设计因素相对较少,但是这种满足需要的方法过于昂贵,因为硬件价格随性能呈指数上升。

解决可扩展性问题的另一个方法是添加更多的服务器,这种方法被称为“向外扩展”。虽然向外扩展在硬件方面更为合算,但是它需要考虑更多的设计因素。正如以前所讨论的,向外扩展的最大问题是维护会话信息。

为了成功进行向外扩展,商务参考应用程序应满足以下要求:

  • 不使用 ASP Session 对象来维护会话状态,因为它引入了服务器会话亲合力,并要求 IIS 维护内存中的会话状态。

  • 在 Commerce Server 对象的协助下,两个页请求之间的用户会话状态被保存到数据库中,并可被新的页请求检索。虽然这种会话维护方法对于每个页请求来说导致了某些额外的数据库开销,但是它可以很好地满足站点的可扩展性需求。单个高端数据库服务器(或群集)可以为整个前端服务器领域提供状态保存服务。

  • 当用户登录时,会将一个每会话 cookie 发送给用户,并作为“查找字段”来检索相关用户帐户的状态数据。每会话 cookie 不存储在用户的硬盘上,因此即使在最具安全意识的用户浏览器上也可以启用它们。如果在用户浏览器中禁用了每会话 cookie,用户将无法登录到站点。

可管理性

如果选择 Windows 2000 Server 和 Microsoft Commerce Server,将会拥有强大的管理基础结构。正如以前所述的,Commerce Server 提供了 BizDesk 中的功能强大的管理界面,而 Windows 2000 通过 Microsoft Management Console 和其他组件也提供了功能强大的管理界面。

安全性

为了满足为参考体系结构应用程序定义的安全性需求,设计小组就以下问题作出了选择:

身份验证

在“假冒/委托”和“受托服务器”这两个可用的模型中,设计小组选择了“受托服务器”模型作为商务参考体系结构应用程序的身份验证方案。

因为“假冒”模型要假冒每个用户,因此解决方案必须为访问站点的每个用户管理帐户。在基于 Intranet 的小型应用程序中,用户很少,并且限制是基于用户的,因此“假冒”模型可以很好地运行;但是,在较大的解决方案中,“假冒”模型很快会难以控制。因此,设计小组选择了更为简单的“受托服务器”模型,它提供了更好的性能,管理起来也更为方便。

授权

为了遵循物理阶段的“研究”部分中所述的最小权限原理,设计小组是这样选择部署和设计方案的:

  • IIS 虚拟根目录权限:部署后,应将站点设置为对虚拟根目录具有只读权限。

  • NTFS 权限:部署后,用于匿名访问的 Windows 帐户对包含 Web 应用程序文件的文件夹只具有只读权限。

  • 匿名客户的权限:商务参考体系结构解决方案应使用 cookie 来标识未进行身份验证的用户,当用户希望结帐或访问任何配置文件管理页时,应将他们重定向到“登录”页。

  • 已验证客户的权限:即使是通过了身份验证的用户,也应该对他们加以适当限制。例如,系统管理员可以使用 Commerce Server BizDesk 工具,通过对用户隐藏或只允许只读权限,限制对特定配置文件设置的访问。

至于数据库本身,存在的授权问题就更多。用户对数据库具有的唯一直接权限是分配给中间层应用程序(本示例中是 Commerce Server)的帐户具有的权限,且该帐户权限应被限制为向站点提供数据服务所需的最小权限。因此,语句权限(例如 Drop Table)未分配给该帐户。

加密

作为一个应该易于安装和检查的示例应用程序,商务参考体系结构应用程序没有实现加密。不过,在电子商务系统产品中,传输诸如口令或信用卡细节这样的敏感数据时,应该使用加密会话。

虽然在电子商务产品环境中加密是必要的,但是在传输不敏感的数据时,应避免对连接使用 SSL。这是因为建立加密会话时需要一定的开销,其中涉及将服务器的公开密钥传送到浏览器,以及生成和交换加密会话所使用的会话密钥。

浏览器独立性

参考体系结构应用程序使用 XSLISAPI 过滤器来满足浏览器的独立性需求。它提供了将内容和表示形式分离的一流机制,这对于合理处理不同浏览器的功能非常必要。

实现

物理阶段的最后一步是将有关约束、需求和技术方面的决策应用到逻辑设计,并实际定义物理实现方案。在此阶段中,将确定编程模型、组件接口和每个组件的内部结构。

标识组件

商务参考体系结构的各个组件将在此“开发人员指南”的第二部分中进行详细讨论。将在该部分中说明编码方法、使用的组件,以及代码片断和它们的定义。有关详细信息,请参考代码本身提供的开发人员注释。

创建规范

在“实现”阶段结束时,开发小组必须将作出的决策文档化,形成一个详细的技术规范。该文档将成为构建应用程序的蓝图,开发小组在组建专家组、编制一览表、分配任务及创建测试和部署计划时,都要用它作参考。

总结

本章介绍了确定应用程序实际将包含哪些组件、使用哪些技术的物理设计阶段,该阶段可细分为三个更小的阶段;并概要说明了开发商务参考体系结构应用程序 ConsolidatedRetail.com 期间所作选择的依据。在整个项目开发周期中,物理设计阶段的最终目标是将实际的物理设计约束应用到逻辑设计,并编写出一个合理的技术规范来指导开发工作。

本指南的下一部分将着重介绍在“商务参考体系结构:企业对消费者”应用程序中提供的实际代码。正如以前所述的,此应用程序是作为一个参考示例开发的,在作为产品使用时需要进行一些修改。

你可能感兴趣的:(商务参考体系结构:企业对消费者 (B2C电子商务实践) 第 4 章:物理设计阶段)