案例研究:If-Trader 订单流程处理系统

王朝vc·作者佚名  2006-01-17
窄屏简体版  字體: |||超大  

案例研究:If-Trader 订单流程系统

作者:台湾弈飞资讯

下载源代码

英文名称:iF Traders Case Study:i-Freelancer Demo Order Process System

简介

这是一个原应用程序建构在 IIS 6.0、COM 1.5、MSMQ 3.0的网络订单处理系统,利用Application

Server 的新增功能,在对源代码作稍许修改的情况下,对应用程序进行扩展,使之成为具有分单及自动化审核的新程序架构,真正达到“Do more with less”。

首先当我们计划建立一个电子商务网站,需要考虑的网络交易机制基本功能可能有下列几项:客户能在 Internet

24小时完成交易,而业务人员仅可能在某些时段进行审阅订单,在不希望遗失任何一笔订单机会且能非同步完成审核作业的前提下,用现有技术也可以简单地实现,将应用程序部署在 IIS 上,透过 COM 组件将订单资料先暂存于 MSMQ,业务人员从队列读取并审核订单资料,确认订单后再

通过 COM

组件写入数据库,系统架构示意图如下:

原系统架构图

当网站开始营运后,可能陆续引发当初规划时始料未及的需求,每当新需求产生后,程序开发人员便开始重新评估可行性、系统分析设计、编写程序或修改、测试与部署等一连串的繁重的系统开发工作,现在

Windows 2003 所具有的 Application Server

服务平台,在原本服务中新增加许多颇具弹性的功能及作法,使应用程序系统更具安全性、延展性和可管理性。

在上述范例中,我们可能会因使用者的不同,当完成网络下单后,系统能对应不同的作业流程,例如 VIP

级的客户或业务人员代理客户下单时,系统能直接完成确认订单,省略人工审核作业,而其他使用者(一般客户)仍遵循原作业流程。将原系统架构重新调整如下图:

新系统架构

应用 IIS 6.0 应用程序区域及 COM 分区(Partitions) 特性,将接单订单资料分别暂存不同队列中,自动化审阅订单的流程,可以使用 MSMQ 中的触发程序完成订单审核,并调用原有的 COM

组件执行资料处理,整个系统架构看似两个截然不同的应用程序,实际上仅进行少许程序开发,其余的系统改造部份均由 Application Server

平台服务来完成。透过范例程序逐步指引完成,应可以更加明了如何运用 Application Server 所带来的益处。

系统需求

操作系统:Windows 2003

Services:请确认以下服务均以安装并启动

IIS 6.0

COM 1.5

MSMQ 3.0

方法是:添加/删除 Windows 组件 >> Application Server >> 按 [详细信息] >> 选中 [消息队列服务] >>

按 [确定] >> 按 [下一步] >> 按 [完成]

SMTP

方法是:添加/删除 Windows 组件 >> Application Server >> 按 [详细信息] >> 选择[Internet

信息服务(IIS)] >> 按[详细信息] >> 选中 [SMTP Service] >>按 [确定] >> 按 [下一步] >> 按 [完成]

SQL Server 2000

Setup 原系统应用程序

源程序代码解压缩后(以下说明出现 %Root% 表示此路径),计有以下三个文件夹:

DataBase

Doc

SampleCode:包含 iFDemoApplication、iFDemoService 两个文件夹。

请按下列步骤安装:

1、安装 Trade 数据库

开启 [SQL Server 企业管理器]。

Microsoft SQL Server >> SQL Server 组 >> (local)(Windows NT) >>

数据库 >>

按右键 >> 所有任务 >> 还原数据库。

设定 [还原成数据库] 输入:Trade。

选择 [从设备] 还原 >> 按 [选择设备] >> 按 [添加]。

按 […] >> 选择 %Root%\DataBase 文件夹。

选定 [文件名称] 输入:Trade.dmp 。

连续按 3 次 [确定] >> 等候完成再按 [确定]。

关闭 [SQL Server 企业管理器] 。

修改表 config 中的记录为有效的 SMTP 服务器地址。

修改表 Users 中 Email 的字段,将其设定为有效的 Email。

2、部署 Server 端组件及设定

用资源管理器打开 %Root%\SourceCode\iFDemoService 文件夹

执行 [Visual Studio .NET 2003 vsvars32] 进入控制台命令行

在控制台命令行中输入 buildall,按回车生成应用程序

生成完毕后关闭控制台命令行窗口

3、COM 应用程序授权

打开 [组件服务]。

展开 组件服务 >> 计算机 >> 我的电脑 >> COM+ 应用程序 >> iFDemoOrderEntry >> 角色 >>

OrderEntryRole >> 用户

按 [右键] >> [新建] >> [用户] >> 输入:Network >> 按 [确定]

4. 安装效能计数器及环境变数

用资源管理器打开 %Root%\SourceCode\iFDemoService\SetupConfig\bin文件夹。

执行 SetupConfig.exe。

5. 安装 Web 应用程序

打开 [Internet 服务管理器]。

Internet 信息服务 >> (本地计算机) >> 默认 Web 站点 >> 按 [右键] >> [新建] >> [虚拟目录]。

按 [下一步] >> 在 [别名] 中输入:iFDemoWeb。

按 [下一步] >> 按 [浏览] 选择目录>> 选泽 %Root%\iFDemoApplication\iFDemoApplication\iFDemoWeb。

按 [确定]。

按 [下一步] >> 按 [下一步] >> 按 [完成]。

用资源管理器打开 %Root%\SourceCode\iFDemoApplication\iFDemoWeb 文件夹

用记事本打开 Web.config。

修改 ConnDBString 的 Value 设定为 SQL Server 连接字符串。

打开浏览器,输入网址: http://localhost/iFDemoWeb 检查网页是否正常启用,若否检查本项步骤是否正确。

6. 安装 Windows 管理程序

打开 %Root%\iFDemoApplication\iFDemoAdmin\bin 文件夹。

用记事本打开 iFDemoAdmin.exe.config。

修改 ConnDBString 的 Value 设定为 SQL Server 连接字符串。

7. 测试结果

打开浏览器,输入网址: http://localhost/iFDemoWeb。

测试登入:

i. VIP客户使用者名称:user1,密码:9999

ii. 一般客户使用者名称:user2,密码:9999

iii. 内部业务员名称: sales1,密码:9999

执行下单作业

i. 按产品编号右侧 [选择] >> 打开 [选择产品窗口] >> 选择产品分类 >> 选择产品一览表中按 [订购]。

ii. 回到主画面中 >> 按 [加入订购明细]。

iii. 可依上述步骤加入多项明细。

iv. 按下 [确认订单] 即完成下单作业。

执行审核作业

i. 打开 %Root%\iFDemoApplication\iFDemoAdmin\bin\ 文件夹,执行 iFDemoAdmin.exe。

ii. [客户订单处理] 窗口中,按下 [读取资料]。

iii. 按 [确认订单] 即完成审核,记录被添加到 SQL Server,同时系统发出 Email。

iv. 按 [取消订单] 即取消该笔记录。

Setup 新架构应用程序

1、新增本地用户,目的是 IIS 要添加 Pooling 以便指定此用户帐号。

打开控制面板中的管理工具 >> 计算机管理。

管理工具 >> 本地用户和组 >> 用户 >> 按 [右键] >> 新用户。

在用户名称中输入:NetUser1,输入密码并确认密码 >> 取消 [用户下次登入时须更改密码] >> 选中 [密码永

不过期] >>

按 [创建] >> 按 [关闭]。

选择 NetUser1 >> 按 [右键] >> [属性] >> 选择 [隶属于] 标签。

按 [添加] >> 输入:IIS_WPG >> 按 [确定] 。

按 [添加] >> 输入:Performance Log Users >> 按 [确定] 。

按 [添加] >> 输入:Performance Monitor User >> 按 [确定] 。

按 [确定]。

2. 在IIS 6.0上建立新的应用程序区域:

Internet 信息服务 >> (本地计算机) >> 应用程序区域 >> 按 [右键] >> [新

建] >> [应用程序区域] 。

[应用程序区域标识]输入:AppPoolDemo >> 按 [确定]。

Internet 信息服务 >> (本地计算机) >> 应用程序区域 >> AppPoolDemo >> 按 [右键] >> [属性] 。

选择 [身份标识] 标签 。

选中 [设置为],在用户名称栏输入:NetUser1,输入密码

按 [确定]。

3. 在新的应用程序集区中以原程序码建立应用程序:

打开 [Internet 服务管理器]。

Internet 信息服务 >> (本地计算机) >> 网站 >> 默认 Web 网站 >> 按 [右键] >> [新

建] >> [虚拟目录]。

按 [下一步] >> 在 [别名] 中输入:App1Demo 。

按 [下一步] >> 按 [浏览] >> 选择 %Root%\iFDemoApplication\iFDemoApplication\iFDemoWeb

按 [确定] >> 按 [下一步] >> 按 [下一步] >> 按 [完成]

Internet 信息服务 >> (本地计算机) >> 网站 >> 默认 Web 网站 >> >> App1Demo >>按 [右键] >> [属性] 。

在 [虚拟目录] 标签页下方的 [应用程序区域] 选择 AppPoolDemo

4. 修改登入画面的程序代码

启动 Microsoft Visual Studio.NET >> 打开 >> 项目 >> 选择

%Root%\ SourceCode\Solution.sln

在 [解决方案] 所列的项目中打开 iFDemoWeb\Login.aspx 源代码文件,将

#Region " 原架构 "

......

#End Region

中的程序代码选取并将它注释掉,使程序不执行。

在 Login.aspx.vb 源代码文件

#Region " 新架构程序码 "

......

#End Region

中的程序代码选取并取消注释,使程序可执行。

重新生成项目: [生成] >> [生成 iFDemoWeb]。

5. 生成第二个消息队列,并设定其触发程序

打开 [管理工具] >> [计算机管理]。

计算机管理(本地) >> 服务和应用程序 >> 消息队列 >> 触发程序 >> 规则 >> 按 [右键] >> [新增] >> [规则] 。

在规则名称输入:TransferOrder >> [下一步] 。

[条件:] 请选择 信息标签不包含,[筛选器数值/字串:] 请输入 Customer >> 按 [新增] >> 按[下一步]。

在[组件ProgID]中请输入:iFDemo.OrderProcess.QueueTrigger,在[方法名称] 中请输入: Transfer。

按 [参数] >> 打开 [调用参数] 窗口 。

选择参数的下拉菜单中的 [队列路径名称(String 类型)] >>按[新增] ,[消息ID(Variant 类型)] >>按[新增] >> 按

[确定] >> 按[完成]。

计算机管理(本地) >> 服务和应用程序 >> 消息队列 >> 专用队列 >> 按 [右键] >> [新增] >>

专用队列 。

在 队列名称 中输入: iFDemo_ExpressOrder >>按 [确定] 。

展开 iFDemo_ExpressOrder >> 触发程序 >> 按 [右键] >> [新增] >> [触发程序] 。

在[触发程序名称]中输入: TriggerTransferOrder >> 按 [下一步]。

左侧 [规则] 中选取 TransferOrder >> 按 [附加] >> 按 [完成]。

6. 建立 COM 分区

打开 [组件服务]。

主控台根目录 >> 组件服务 >> 我的电脑 >> 按 [右键] >> [属性]

选择 [选项] 标签页,选中 [启用分隔] >> 按 [确定] 。

主控台根目录 >>组件服务 >> 我的电脑 >> COM 分区 >> 按 [右键] >> [新增] >> [分区] >> [下一步] 。

按 [建立一个空的分区] >> 在 [名称] 中输入 COMPart2 >> [下一步] >> [完成]。

7. 指定 COM 分区用户

主控台根目录 >>组件服务 >> 我的电脑 >> COM 分区用户 >>按 [右键] >> [新增] >> [使用者] 。

按 [新增] >> 输入: NetUser1 >> [确定] >> [确定]。

主控台根目录 >>组件服务 >> 我的电脑 >> COM 分区 >> COMPart2 >> 角色 >> 启动器 >> [用户使用者] 。

按 [新增] >> 输入: NetUser1 >> [确定] >> [确定]。

8. 在新的 COM 分区中建立 COM 应用程序

主控台根目录 >>组件服务 >> 我的电脑 >> COM 分区 >> COMPart2 >> COM 应用程序 >>按 [右键] >>

[新增] >> [应用程序] 。

[下一步] >> [建立空的应用程序] >> 输入 iFDemoExpressOrder >> 按4次 [下一步] >> [完成] 。

选择 iFDemoExpressOrder>> 组件 >> 按[右键] >> [新增] >>组件

[下一步] >> 安装新组件 >> 选择

%Root%\ iFDemoService\OrderEntry\bin\iFDemo.OrderEntry.dll

>> [开启] >> [下一步] >> [完成] 。

展开 iFDemoExpressOrder >> 组件 >> iFDemo.OrderProcess.OrderEntry >> 按[右键]

>> [属性] 。

选择 [启动标签] >> 选中 [启动对象建立] >> 在 [建立函数字符串] 中请输入: .\\private$\\iFDemo_ExpressOrder。

主控台根目录 >>组件服务 >> 我的电脑 >> COM 分区 >> COMPart2 >> COM 应用程序 >> iFDemoExpress >> 角色 >> OrderEntryRole >>

用户

按 [右键] >> [新增] >> [用户] >> 输入: NetUser1 >> 按 [确定]

9. 测试结果

打开浏览器输入网址: http://localhost/iFDemoWeb,

用VIP客户用户名称: user1,密码: 9999,登入成功后网址应为http://localhost/App1Demo/Order/OrderProcess.aspx,接续完成下单作业,系统将直接确认订单并发出 Email。

一般客户用户名称: user2,密码: 9999,登入成功后网址应为http://localhost/iFDemoWeb/Order/OrderProcess.aspx,接续完成下单作业,系统将订单

记录保留在消息队列中,等候执行

%Root%\iFDemoApplication\iFDemoAdmin\\bin\ iFDemoAdmin.exe

进行订单人工审核确认作业。

用业务用户名称: sales1,密码: 9999,登入成功后网址应为http://localhost/App1Demo/Order/OrderProcess.aspx,接续完成下单作业,系统将直接确认订单并发出 Email。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航