程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> If-Trader 訂單流程系統

If-Trader 訂單流程系統

編輯:關於VC++

簡介

這是一個原應用程序建構在 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。

下載源代碼:http://www.vckbase.com/code/downcode.asp?id=2560 (或者用自己的壓縮包)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved