您的位置:首页 > 其它

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

2008-03-11 13:14 405 查看
图 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 过滤器是这样进行本地化的:允许开发小组对于不同语言使用不同的界面设计,然后将应用程序部署为不同的网站或不同的虚拟目录。通过使用该方法,用户可以选择自己的语言,然后重定向到相应的站点。
[b]注意:[/b]参考体系结构应用程序并未进行全球化;不过,该应用程序使用了 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 期间所作选择的依据。在整个项目开发周期中,物理设计阶段的最终目标是将实际的物理设计约束应用到逻辑设计,并编写出一个合理的技术规范来指导开发工作。
本指南的下一部分将着重介绍在“商务参考体系结构:企业对消费者”应用程序中提供的实际代码。正如以前所述的,此应用程序是作为一个参考示例开发的,在作为产品使用时需要进行一些修改。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐