[英]what is the architecture of workflow server?
我們計划用Microsoft WF4開發一個wf服務器
要求是為工作流,客戶端應用程序創建最終用戶設計器,以便每個用戶跟蹤任務
這台服務器的最佳架構是什么?
我感謝您的幫助
更多細節 :
我們正在開發一個文檔管理系統,我們需要創建像Ultimus這樣的工作流程系統,這個系統確實不是很大但是同樣的概念; wf服務器和wf設計師,wf客戶端
1 - 所以wf設計師將連接到wf服務器來管理保存的wfs,如checkin,checkout,delete
2- wf客戶端,普通用戶將連接到服務器以獲得他們批准的任務,拒絕,bla bla
3-在wf客戶端,Admin用戶將連接到服務器以獲取任務並監視wfs,獲取任何工作流的狀態
我之前使用的是ultimus,你只需在服務器上安裝ultimus服務器,客戶端就會連接到服務器,這個客戶端可能是web,移動或桌面
這是系統的要求
我需要了解軟件架構
最好的架構取決於您的非功能需求(例如:這是一個僅在內部使用的工具還是您要銷售它的工具?有多少用戶?用戶在何處以及如何能夠訪問系統? ),你需要考慮很多質量屬性 。
您正在處理WF4的事實並不那么重要 - 連接到后端服務器'服務'這樣的事情是相當普遍的。 WF4可能有一些“特殊”方式可以與它集成,但我不知道這些具體是什么 - 也許它們是你所追求的?
高級架構
這里沒有什么花哨的東西,4個主要層次:
UI - WF設計師
設計工作流程並非易事,構建允許用戶更難實現的UI /系統,所以我猜你會想要一種允許豐富交互的UI技術 - 也許SilverLight是一種選擇嗎? 如果需要,這將允許您通過互聯網提供應用程序(可能對遠程連接的用戶有利)。
其他選項包括HTML(想想HTML5)或胖客戶端:這是用戶的環境很重要的地方 - 你對它有什么級別的控制/對你強加什么約束?
UI - 工作流程監控
這里有很多選項,您需要與用戶進行對話並查看他們想要的內容。 您可能希望提供多種方法來監視工作流的執行:
Busiess Logic(BL)
這應該是直截了當的,但要仔細考慮如何與WF集成 - 一方面直接綁定自己將提供一些快速提供酷炫功能的絕佳機會 - 但另一方面,你將與WF緊密結合:如果它改變了你就麻煩了。
我想BL將需要消耗來自各個地方的信息 - 其中一些你自己會發明:這些都應該在接口(DI)后面抽象出來。
您可能還提供一些服務(用於填充AJAX驅動的UI控件,驅動小部件等); 盡可能多地在BL中添加邏輯,並通過UI和Integration層為其提供不同的通道。
我猜這需要作為Windows服務包裝; 如果您保持核心邏輯的清晰定義,您還應該能夠在網站,Web服務等中重復使用它。
集成層
這可能相對較薄,在你自己開始之前先看看一些DI框架; WCF也是一個顯而易見的選擇。
數據存儲庫和自定義WF服務
該層將包含您創建的任何數據存儲庫的具體實現。 它還將包含您制作的任何自定義WF組件。 請記住,這些圖層在第一個實例中是合乎邏輯的,但在很多時候也會轉換為物理圖層。 在某些時候,您將需要編寫直接針對WF4運行的代碼 - 這很酷,但您希望確保代碼盡可能小並且“盡可能地丟棄”; 這里描述的架構應該允許這樣。 因此,當您開發與WF4深度集成的代碼組件時,請保持它們小巧且模塊化 - 易於更換,通過集成層使用它們; 所有你需要做的就是保持松耦合 :DI等
最后的考慮因素
您可能希望首先看一下Windows Server AppFabric,因為這是Microsoft在IIS 7上構建的工作流服務主機的第一個版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.