商务参考体系结构:企业对消费者 第 5 章:实现概述
Microsoft Corporation
2001年5月
摘要:“Microsoft 商务参考体系结构:企业对消费者”提供了可重复使用和可定制的组件,可用于加快大中型企业的电子商务解决方案开发过程。本章概述了完全理解代码所需的知识,同时还简单介绍了此应用程序的组件。
后面的章节将深入讲解代码的具体方面,以及代码开发过程中遇到的具体实现问题。
简介
正如“开发人员指南”(英文)的第一部分所介绍的那样,“Microsoft 商务参考体系结构:企业对消费者”提供了可重复使用和可定制的组件,可用于加快大中型企业的电子商务解决方案开发过程。Microsoft 商务参考体系结构:B2C 解决方案由一些经过工程处理的代码组件组成,开发人员可利用这些组件来构建使用 Microsoft® Windows® 2000 Server 操作系统和 Microsoft® .Net Enterprise Server 产品(如 Microsoft® Commerce Server 2000 和 Microsoft® SQL Server 2000)的 B2C 零售网站。
该指南的第二部分面向应用程序开发人员和所有其他想学习使用 Microsoft 技术来构建电子商务解决方案的人。这一部分包含对此应用程序及其组件的初步概述和组件指南,并深入讨论了在其开发过程中遇到的实现问题。
实现功能
在参考体系结构应用程序中实现的 ConsolidatedRetail.com 站点包括电子商务解决方案中的许多常见功能。有关应用程序业务需求的完整说明,请参阅“开发人员指南”的第一部分。
建议的背景知识
要理解代码功能的详细信息,本文读者应具备以下知识:
ASP: 开发人员应了解如何使用 Microsoft® Visual Basic® Scripting Edition (VBScript) 来创建 Active Server Pages (ASP)。这包括了解核心 ASP 对象,并能实例化和使用组件对象模型 (COM) 和 COM+ 组件。此应用程序使用的大量代码都是 ASP 代码。
XML: 在此应用程序中,大量地使用了可扩展标记语言 (XML) 作为在应用程序组件之间传递数据的方法。开发人员应熟悉 XML,包括基本语法、架构和结构。某些代码利用 XML 文档对象模型 (DOM) 来对 XML 内容进行语法分析。
XSL: 要理解用户界面是如何工作的,开发人员需要充分掌握可扩展样式表语言转换 (XSLT)。
Microsoft Commerce Server 2000 及其对象: Commerce Server 是一个复杂的系统。因此,尽管此应用程序和文档提供了一些有关如何使用该系统的指导信息,开发人员还是应参阅 Commerce Server 文档,以熟悉 Commerce Server 的功能和组件。
SQL Server: 尽管此应用程序大量地使用了 SQL Server,但是大多数实际数据库存取操作仍然隐藏于幕后,需通过 Commerce Server 对象提供的抽象层来执行。不过,要真正了解数据的访问和存储方式,开发人员应仔细研究由 Commerce Server 在后台维护的表和存储过程。
Visual C++:为了获得最佳性能,此应用程序的自定义 COM 组件是使用 Microsoft® Visual C++® 开发系统编写的。虽然要从参考体系结构中获取有价值的信息并不需要完全理解组件的内部工作原理,但如果要完全理解其工作原理,则需要 C++ 技能。
有关为何选择这些技术的信息,请参阅“开发人员指南”的第一部分。
技术概述
以下各小节简单介绍了参考体系结构应用程序中是如何使用每项核心技术的。
ConsolidatedRetail.com 解决方案中的 XML
该解决方案是通过一个 Commerce Server 2000 站点来实现的。该站点使用 SQL Server 2000 进行数据存储;使用 Commerce Server Object Library 进行管理。该站点本身使用 XML 来表示网页的内容,并使用 XSL 样式表将内容转换为适合 Web 浏览器的超文本标记语言 (HTML)。使用一个 Internet 服务器应用程序编程接口 (ISAPI) 应用程序过滤器对 XML 进行处理,并应用必要的 XSL 转换。使用这种方法,可以轻而易举地将解决方案扩展到其它类型的客户端,而不必用 ASP 重新编写业务逻辑。
Microsoft 已经承诺采用 XML 作为分布式计算环境中传递结构化内容的标准。针对这种情况,商务参考体系结构代码在整个解决方案中都采用了 XML。使用 XML 的示例包括:
从 PASP 脚本生成 XML 输出,然后用 XSLISAPI 过滤器进行 XSL 转换:实现解决方案站点前端功能的预处理 Active Server Pages (PASP) 脚本使用 XSLISAPI 过滤器来生成 XML 格式(而不是 HTML 格式)的输出。这使内容及其表现方式进一步分离。由这些 PASP 页生成的 XML 通过 XSL 样式表进行转换。有关如何使用 PASP 和 XSLISAPI 过滤器的详细信息,请参阅 XSLISAPI 过滤器文档,该文档可从 Microsoft 网站下载。
注意:参考体系结构应用程序代码中使用了 XSLISAPI 过滤器的自定义版本 (XSLISAPI2.dll)。该版本不能从 www.microsoft.com 下载;不过,公共版(XSLISAPI.dll, 2.1 版)的文档也适用于自定义版本。
从商务组件输出 XML:许多 Commerce Server 2000 对象可以使用 ActiveX 数据对象 (ADO) 或 XML 格式传递记录集(例如,产品列表)。在可能的情况下,ASP 脚本代码从商务对象请求 XML 格式的信息。
使用 ASP 编写前端脚本灵活自如
在 Microsoft 平台上,对于大多数基于 Web 的应用程序开发,驱动 Web 前端的代码都是通过使用 VBScript 编写的 ASP 文件执行的。将 ASP 用于 Web 编程的主要原因是它提供了灵活简便的开发。在迅猛发展的电子商务领域,能够迅速改变站点的外观或基本前端功能非常重要。
脚本语言的解释执行方式让编程人员和设计人员能够迅速改变站点的功能,而不必经历冗长的编译过程:您只需保存源文件,即已改变程序。不过,应该注意的是,为了获得最佳性能和可伸缩性,主要业务处理任务都是通过组件(由 Commerce Server 提供或自定义构建)来执行的。
商务参考体系结构 B2C 解决方案代码在 ASP 编程中加入了新的变化,使用 XSLISAPI 过滤器的功能将内容表现方式的生成与内容分离开。即:预处理的 Active Server Pages (PASP) 脚本不直接生成 HTML 内容,而是生成 XML 输出,然后再由 XSL 样式表将 XML 输出转换成正确的显示格式。这种转换可在服务器或客户机(若客户机具备此能力)上进行,从而缓解了 CPU 的工作压力。
Commerce Server 组件
Commerce Server 2000 为站点开发人员、系统管理员和业务经理提供了一套相当丰富的工具,可用于开发、部署和管理 Web 商务应用程序。与任何功能强大的大型软件系统一样,Commerce Server 提供的功能之强,范围之广绝对会将让您无所适从,除非您熟悉该系统。参考体系结构为自己提供了一个适当的定义:它是一个设计合理、说明充分的小型电子商务应用程序,显示了许多在用的 Commerce Server 对象。虽然没有用到 Commerce Server 的每一个功能,但参考体系结构 B2C 代码演示了如何实现以下功能:
设置边界,划定哪些内容和操作可由匿名用户访问,哪些可由通过验证的用户访问。
不依赖于引入服务器会话相关性的方法,保持用户的会话状态;并在跨越匿名访问和通过验证的访问之间的边界时,保留会话信息。
创建产品目录,浏览目录层次,并通过目录显示产品的详细信息。
在不要求验证的情况下,允许顾客将自己要买的产品收集在一起(使用购物车这一比喻)。
存储和检索用户配置信息,这样,用户在以后访问时,就不需要重新输入这些信息。
参考体系结构应用程序中所用的 Commerce Server 2000 对象在本指南的以后各章中列出。
数据层中的存储过程
此应用程序没有编写任何自定义存储过程。SQL Server 上 Commerce 数据存储区中的所有存储过程都是由 Commerce Server 创建的,用于为许多 Commerce 对象提供数据访问功能。
用于输入检查的客户端脚本
此应用程序的用户界面使用客户端 JavaScript 代码,在多处进行输入验证。客户端脚本的功能并不十分复杂,而且在一定程度上与应用程序的核心功能并无多大关联,因此,本指南不对这些脚本进行详细介绍。
总结
本章介绍要充分利用本指南所需要的背景知识。另外,还简要概述了构成参考体系结构应用程序(ConsolidatedRetail.com 应用程序)的组件。下一章“解决方案指南”详细介绍代码组件,提供代码示例,并提供了指向其它信息的链接。