首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

If-Trader 訂單流程系統:以 Windows 2003 Application Server 實作非同步分單與自動審核

     編輯:關於VC++

系統背景

原系統建構於 IIS 6.0、COM+ 1.5、MSMQ 3.0,採用經典「Web 前端 → COM 元件 → MSMQ 暫存 → 人工審核 → 寫入資料庫」架構。隨業務增長,需支援差異化流程:VIP 客戶/業務代單直接確認,一般客戶仍需人工審核。利用 Windows Server 2003 Application Server 新功能 (應用程式集區、COM+ 分割區、MSMQ 觸發程序),在極少修改程式碼前提下完成架構升級。

原始架構

原系統架構圖

  1. 用戶透過 IIS Web 頁面下單。
  2. COM 元件將訂單序列化送入 MSMQ 佇列。
  3. 管理員執行 WinForm 工具 (iFDemoAdmin.exe) 從佇列讀取、審核。
  4. 確認後透過 COM 元件寫入 SQL Server,發送 Email 通知。

新架構:應用程式集區隔離 + COM+ 分割區路由 + MSMQ 觸發自動化

新系統架構圖

  • IIS 應用程式集區:建立 AppPoolDemo,指定身分 NetUser1 (屬 IIS_WPG、Performance Log Users 群組),實現處理序級隔離與身分模擬。
  • 虛擬目錄綁定集區:新增 App1Demo 虛擬目錄指向同一 Web 程式碼,但指派至 AppPoolDemo。修改 Login.aspx 邏輯:VIP/業務登入導向 App1Demo,一般客戶留在預設站點。
  • COM+ 分割區:啟用分割區功能,建立 COMPart2,指定 NetUser1 為分割區使用者與啟動器角色。在分割區下建立 COM+ 應用程式 iFDemoExpressOrder,匯入原有 iFDemo.OrderEntry.dll,設定啟動函式字串指向專用佇列 .\\private$\\iFDemo_ExpressOrder。
  • MSMQ 觸發程序自動審核:建立第二專用佇列 iFDemo_ExpressOrder,設定觸發規則 TransferOrder:訊息標籤不含 "Customer" 時,呼叫 iFDemo.OrderProcess.QueueTrigger.Transfer 自動轉單並寫入資料庫、發信,完全無人介入。

部署檢核清單

系統需求

  • Windows Server 2003 (含 IIS 6.0、COM+ 1.5、MSMQ 3.0、SMTP 服務)
  • SQL Server 2000 (還原 Trade.dmp,修改 config 與 Users 表的 SMTP/Email 設定)

原系統部署步驟 (摘要)

  1. 還原資料庫 Trade。
  2. 編譯 iFDemoService (Server 端 COM+ 元件),執行 SetupConfig.exe 安裝效能計數器。
  3. 部署 Web 應用程式 iFDemoWeb,修改 Web.config 連線字串。
  4. 設定 COM+ 應用程式 iFDemoOrderEntry 授權 (加入 Network 使用者至 OrderEntryRole)。
  5. 部署管理工具 iFDemoAdmin.exe,修改連線字串。
  6. 測試三種角色登入與下單/審核流程。

新架構額外部署步驟

  1. 建立本地使用者 NetUser1,設定密碼永不過期,加入 IIS_WPG、Performance Log Users、Performance Monitor Users。
  2. IIS 建立應用程式集區 AppPoolDemo,身分設為 NetUser1。
  3. 新增虛擬目錄 App1Demo 指向同一 Web 程式碼,指派集區 AppPoolDemo。
  4. 修改 Login.aspx:註解原架構程式碼區塊,啟用新架構程式碼區塊,重新建置。
  5. MSMQ 建立專用佇列 iFDemo_ExpressOrder,設定觸發規則 TransferOrder (條件:標籤不含 "Customer",動作:呼叫 iFDemo.OrderProcess.QueueTrigger.Transfer,參數:佇列路徑、訊息 ID)。
  6. 元件服務啟用分割區,建立 COMPart2,指定 NetUser1 為分割區使用者與啟動器。
  7. 在 COMPart2 下建立 COM+ 應用程式 iFDemoExpressOrder,匯入 iFDemo.OrderEntry.dll,設定啟動函式字串 .\\private$\\iFDemo_ExpressOrder,授權 NetUser1 為 OrderEntryRole。

測試驗證

角色帳號/密碼登入後網址訂單處理方式
VIP 客戶user1 / 9999https://localhost/App1Demo/Order/OrderProcess.aspx直接確認、發信
一般客戶user2 / 9999https://localhost/iFDemoWeb/Order/OrderProcess.aspx進入佇列待人工審核
業務人員sales1 / 9999https://localhost/App1Demo/Order/OrderProcess.aspx直接確認、發信

核心價值

  • 零停機升級:原有 COM 元件、資料庫、Web 頁面幾乎不動。
  • 平台級路由:以 IIS 集區身分 + COM+ 分割區使用者對應,實現聲明式流程分派。
  • 自動化審核:MSMQ 觸發程序取代人工輪詢,即時處理高優先級訂單。
  • 彈性擴充:新增客戶等級只需調整登入導向與佇列規則,無需重寫業務邏輯。

原始碼下載:https://www.vckbase.com/code/downcode.asp?id=2560

本文配套完整原始碼與部署腳本可供下載。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved