.NET 開源工作流: Slickflow流程引擎基礎介紹(六)--模塊化架構設計和實踐


前言:在集成Slickflow.NET 引擎組件過程中,引擎組件需要將用戶,角色等資源數據讀取進來,供引擎內部調用;而企業客戶都是有自己的組織架構模型,在引入模塊化架構設計后,引擎組件的集成性更加友好便捷。

1. 未采用模塊化設計之前的項目結構

 在引擎內部,創建了Resource的目錄,用於組織機構模型數據的處理,而且僅作了用戶和角色相關的數據讀取,未涉及到組織機構模型;比如部門和員工等信息。這樣當用戶集成自己的組織架構模型時候,就要擴展此部分代碼,對引擎內部的統一性造成一定影響,不便於用戶的后期版本升級。

 

 

2. 采用模塊化設計之后的項目結構

新增加了Slickflow.Module項目,用於統一定義所有的模塊化接口,包含組織機構模型接口。后期可能新增加的模型有權限模型,數據對接模型等。在Slickflow.Module項目里面主要申明標准接口和實體的定義。實體用於引擎組件內部使用,假如企業客戶所使用的實體屬性字段不同,需要做實體之間的轉換。

添加Slickflow.Module項目之后,也就是要對標准接口和實體進行實現,比如Slickflow.Module.Resource項目就是對組織機構模型的具體實現,每個企業客戶關於自有的組織機構模型業務代碼,就可以添加到這里。用戶不用關注引擎內部,而直接在該項目中修改增加代碼即可。這樣做到了組織機構模型跟引擎內部邏輯的分離。

 

 

3. 模塊化架構設計原則

為何要進行模塊化設計? 在引擎組件集成過程中,引擎內部功能雖然比較穩定,但是組織架構等模塊卻容易引起變化,如何方便用戶修改擴展通常帶來一定的困擾。而采用模塊化架構設計后,問題被分離出來,首先定義好標准化的接口和實體,然后客戶自己實現自有的模塊項目就可以。這樣保證了系統在整體性上的穩定。

1) 始終分離容易變化的部分

 個體功能的多樣性是一種自然存在的法則,不能強求用戶的意志,而要從系統上做到包容。包容的方式就是將變化的部分分離出來,讓用戶自己去實現各種特性,從而達到對業務集成的滿意度。

2) 保持核心功能的穩定性

在分離變化的部分后,引擎提供的核心功能會更加穩定,模塊化的組件會被按照依賴注入的方式被引入到引擎組件內部,外部的模塊和引擎內部做到了一種合理的交流交互。

3) 方便核心功能的后期升級

引擎版本會不斷升級,模塊的標准化接口也會不斷升級。在采用模塊化架構設計后,用戶會關注兩個升級指標,一個是引擎核心功能,一個是標准化的模塊定義。職責上的分離,將會幫助客戶認識系統核心和外部模塊的邊界,保持對引擎組件的熟悉。

 

4. 總結

Slickflow項目組致力於良好的軟件架構設計,模塊化架構設計和實踐是我們在設計引擎組件過程中的原創思路,其目的是讓用戶始終能夠升級和擴展工作流系統,保持整個系統的穩定性。歡迎讀者繼續關注和使用Slickflow.NET 引擎組件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM