前言:在集成Slickflow.NET 引擎組件過程當中,引擎組件須要將用戶,角色等資源數據讀取進來,供引擎內部調用;而企業客戶都是有本身的組織架構模型,在引入模塊化架構設計後,引擎組件的集成性更加友好便捷。架構
1. 未採用模塊化設計以前的項目結構模塊化
在引擎內部,建立了Resource的目錄,用於組織機構模型數據的處理,並且僅做了用戶和角色相關的數據讀取,未涉及到組織機構模型;好比部門和員工等信息。這樣當用戶集成本身的組織架構模型時候,就要擴展此部分代碼,對引擎內部的統一性形成必定影響,不便於用戶的後期版本升級。架構設計
2. 採用模塊化設計以後的項目結構設計
新增長了Slickflow.Module項目,用於統必定義全部的模塊化接口,包含組織機構模型接口。後期可能新增長的模型有權限模型,數據對接模型等。在Slickflow.Module項目裏面主要申明標準接口和實體的定義。實體用於引擎組件內部使用,假如企業客戶所使用的實體屬性字段不一樣,須要作實體之間的轉換。blog
添加Slickflow.Module項目以後,也就是要對標準接口和實體進行實現,好比Slickflow.Module.Resource項目就是對組織機構模型的具體實現,每一個企業客戶關於自有的組織機構模型業務代碼,就能夠添加到這裏。用戶不用關注引擎內部,而直接在該項目中修改增長代碼便可。這樣作到了組織機構模型跟引擎內部邏輯的分離。接口
3. 模塊化架構設計原則資源
爲什麼要進行模塊化設計? 在引擎組件集成過程當中,引擎內部功能雖然比較穩定,可是組織架構等模塊卻容易引發變化,如何方便用戶修改擴展一般帶來必定的困擾。而採用模塊化架構設計後,問題被分離出來,首先定義好標準化的接口和實體,而後客戶本身實現自有的模塊項目就能夠。這樣保證了系統在總體性上的穩定。工作流
1) 始終分離容易變化的部分擴展
個體功能的多樣性是一種天然存在的法則,不能強求用戶的意志,而要從系統上作到包容。包容的方式就是將變化的部分分離出來,讓用戶本身去實現各類特性,從而達到對業務集成的滿意度。軟件
2) 保持核心功能的穩定性
在分離變化的部分後,引擎提供的核心功能會更加穩定,模塊化的組件會被按照依賴注入的方式被引入到引擎組件內部,外部的模塊和引擎內部作到了一種合理的交流交互。
3) 方便核心功能的後期升級
引擎版本會不斷升級,模塊的標準化接口也會不斷升級。在採用模塊化架構設計後,用戶會關注兩個升級指標,一個是引擎核心功能,一個是標準化的模塊定義。職責上的分離,將會幫助客戶認識系統核心和外部模塊的邊界,保持對引擎組件的熟悉。
4. 總結
Slickflow項目組致力於良好的軟件架構設計,模塊化架構設計和實踐是咱們在設計引擎組件過程當中的原創思路,其目的是讓用戶始終可以升級和擴展工做流系統,保持整個系統的穩定性。歡迎讀者繼續關注和使用Slickflow.NET 引擎組件。