基于PaaS平台的多应用自集成方案之公共数据集成
源寶導讀:在明源云“天際”PaaS平臺之上,可以構建、部署和運行多個業務應用,并支持多應用分離部署,以提升系統整體的性能和穩定性。本文將介紹多應用自集成解決方案以及相關的實現細節。
一、背景
1.1、業務場景
? ? 在明源云“天際”PaaS平臺之上,可以構建、運行多個業務應用。這些業務應用可以集中部署在同一站點和數據庫,也可以按應用分開部署多個站點與數據庫,可大幅提升業務應用的運行性能與穩定性。部署模式如下示意圖:
1.2、業務應用分開部署后帶來的問題
用戶需要分開單獨訪問應用站點,訪問每個業務應用時都需要登陸,操作繁瑣;
每個業務應用中都存在系統管理,但管理員希望只設置一遍,在各個應用站點生效;
業務應用之間共享的公共配置(例如運行設置、安全設置、外觀設置等),需要在每個應用中重復配置;
每個業務應用都需要的公共數據(例如圖表數據、業務參數配置、桌面部件數據等),互相隔離無法同步。
二、解決方案
? ? 由于這些業務應用都基于“天際”PaaS平臺構建和運行,可以通過底層平臺強大能力,打通這些應用“孤島”,形成一個“去中心化”的“自集成”架構。
自集成架構的能力包含三個方面:
公共數據集成;
應用接口集成;
應用事件集成。
公共數據集成能力包括:
系統配置集中管理,解決應用之間配置無法共享問題;
登錄導航集成統一,解決用戶重復登錄,訪問入口分散問題;
基礎數據自動集成,解決各個應用的基礎功能同步一致;
系統管理統一入口,解決系統管理員重復設置的問題。
三、實現原理
3.1、系統配置集中管理
實現難點:如何保證集中式的配置管理不會引發單點故障。
設計方案:在平臺邏輯中緩存這些配置信息,并且通過站點標識來識別當前站點。比如我們成本系統,在成本系統的web.config 中配置對應的站點標識erp60-cbxt ,那么當前站點以獨立的成本系統運行,并且可以識別主站點和其他站點。
3.2、登錄導航集成統一
3.2.1、集成其他應用的導航
導航集成的實現原理:
? ?通過集中配置,我們能獲取到其他應用站點地址,然后通過接口獲取相應的導航數據,最終合并展示在當前應用站點。
實現難點:如何保證獲取的數據性能以及穩定性。
設計方案:
獲取的集成的導航基礎數據做全局緩存,所有的用戶都可以獲取;
針對用戶個人導航數據在登錄也做二級緩存;
利用二級緩存,可以保證在其他應用站點不可用時,當前應用站點不受影響。
3.2.1、多應用之間實現單點登錄
? ? 當用戶訪問任意應用的站點時,如果沒有登錄,都會自動跳轉到主應用站點進行登錄。
? ? 跨應用的單點登錄身份認證原理圖:
實現難點:如何保證主應用站異常時,其他應用站點能登錄正常。
設計方案:
保證所有應用站點的登錄功能,必須訪問同一個數據庫,保證登錄校驗結果一致;
通過多站更新機制,保證所有應用站點的平臺版本一致,進而保證所有應用站點的登錄功能一致。
3.3、基礎數據自動集成
? ? 類似用戶桌面部件、圖表數據集、業務參數配置等基礎數據,平臺底層會通過內部接口,將各個應用中的本地數據,獲取到主應用站點。
3.4、系統管理統一入口
? ? 系統管理應用屬于平臺底層功能應用,每個業務應用站點都有一套,應用自集成后,整個自集成環境看做一個完整的ERP系統,所以平臺必須保證只有一個系統管理應用。
實現難點:如何保證在一個系統管理上面配置所有系統的權限。
設計方案:
主應用站點通過自集成接口獲取所有子系統應用和模塊的定義數據時,只獲取當前應用自己的定義數據,保證最后的權限數據不重復;
在權限接口上層設置依賴級別,保證在整個請求鏈路包括跨站點的鏈路的依賴級別一致;
四、總結
我們的應用自集成方案優勢:
開箱即用:用戶部署好各個應用站點,通過簡單的配置步驟,就可以實現應用自集成的部署環境;
對業務應用侵入小:平臺從系統配置、基礎數據、登錄導航、接口事件等方面從底層實現了打通,對上層的應用基本是透明的,非跨應用的業務場景無需做任何改造,而跨應用的業務場景的影響也非常小。
? ? ?公共數據自集成,是應用接口、事件集成的基礎。因為公共數據的打通,才保證了跨應用接口調用時,找到正確的應用站點;應用事件觸發時,才能正確通知到所有訂閱了事件的業務應用。后面的文章中,我們將繼續分享應用接口自集成和應用事件自集成的設計方案與實踐。
------ END ------
作者簡介
蔡同學:?開發SM,目前負責ERP建模平臺的設計與開發工作。
也許您還想看
從案例角度解析建模平臺動態規則引擎
基于工作單元的高性能實體服務
如何解決大批量數據保存的性能問題
【復雜系統遷移 .NET Core平臺系列】之應用發布與部署
ERP的配置管理實踐
總結
以上是生活随笔為你收集整理的基于PaaS平台的多应用自集成方案之公共数据集成的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用 Github Actions 自动
- 下一篇: C#实践设计模式原则SOLID