摘要:數據建模完成後才應該進行主數據的內容管理,這本身有兩種做法,一個就是類似完全的快速開發平臺,表單界面間建模,規則建模全部包括,即基本不用寫代碼就可以完成一個主數據對象新增,變更功能的配置並掛接到具體的工作流引擎。流程引擎是另外一個主數據管理系統必須具備的功能,涉及到後續的主數據對象的申請創建,變更,廢棄等一系列的流程都需要通過流程引擎來進行流程配置並完成。

對於MDM主數據管理在我前兩年的博客文章中談的比較多,由於MDM一直不是我們重點研發的一個產品,因此最近關注的並不太多,但是對於SOA或ESB的應標會經常遇到客戶有MDM主數據管理的需求,因此對於主數據管理系統的建設再做下簡單的說明。

基礎層應該具備的兩個關鍵功能-ETL和流程引擎

對於主數據管理系統的基礎層應該具備兩個關鍵能力,一個是ETL,一個是流程引擎。

對於ETL主要完成存量數據的數據集成,在這個完成中重點又是完成數據的清洗後初始化入庫。裏面除了標準的ETL應該具備的數據抽取,清洗,數據轉換,調度和任務管理能力外,最重要的就是數據清洗。實際上對於數據清洗很多時候靠標準的ETL工具的功能很難完成,基本還是需要自己編寫相關的代碼或腳本進行數據的清洗,比對,去重最終入庫。對於數據完整性我們又可以理解爲兩個方面,一個是表內數據完整性,一個是表間數據完整性,表內數據包括了參考完整性和類似去重這種行間完整性檢查。表間完整性主要是關聯依賴類檢查,表間業務規則約束類檢查等。

流程引擎是另外一個主數據管理系統必須具備的功能,涉及到後續的主數據對象的申請創建,變更,廢棄等一系列的流程都需要通過流程引擎來進行流程配置並完成。一個靈活的主數據平臺既可以使用自己內置的流程引擎,也應該做到能夠使用甲方標準的公共流程平臺流程引擎能力。

應用層覆蓋主數據全生命週期管理

應用層簡單來說就是應該服務主數據的全生命週期管理。最開始就是主數據對象建模,一個靈活可擴展的主數據平臺要做的就是模型全部可以動態創建出來,創建的主數據對象模型再生成爲數據庫對應的表對象。在數據建模的過程中同時完成數據對象屬性定義,數據規則和完整性定義,數據存儲,數據分發定義等多方面的內容。

數據建模完成後才應該進行主數據的內容管理,這本身有兩種做法,一個就是類似完全的快速開發平臺,表單界面間建模,規則建模全部包括,即基本不用寫代碼就可以完成一個主數據對象新增,變更功能的配置並掛接到具體的工作流引擎。另外一種做法就是主數據申請,變更功能還是代碼開發,然後再掛接到具體的流程引擎。由於主數據在申請創建過程中往往涉及到複雜的業務規則處理,因此比較可行的方法還是自行開發相關的功能。

數據質量管理是主數據平臺另外一個關鍵功能,即對於主數據進行數據檢查和質量管控,這個一方面是在數據入庫前就基於主數據建模設定好的業務規則和參考完整性規則進行數據質量檢查,一個是在數據入庫後再定期運行數據質量檢查任務進行數據稽覈。而定期運行數據檢查任務也應該是一種靈活可配置的方式,即先定義好數據檢查項和具體的檢查規則,然後在定期運行檢查任務,輸出最終的檢查結果報表。

數據分發和數據能力開放

一個主數據平臺實際上我們看到關鍵是兩點,一個是前期通過數據集成,數據內容管理等各種方式形成一個完整的主數據視圖,第二點是將完整的主數據視圖共享開放出去供其它業務系統使用。

完整的主數據視圖的開放當前又存在兩種方式,一種是提供主數據的查詢服務接口能力,一種是對主數據信息,包括主數據新增和變更信息通過接口實時分發給各個業務系統。而第一種方式本身又存在兩個子類型,一個是數據實時查詢不落地,另外一種是數據定時查詢增量同步落地。

注意在數據落地模式下,當前最好的方式還是數據分發,同時數據分發最好的方式又是通過消息中間件進行1對多實時分發處理。在這種模式可以最大限度的保證數據的實時性,同時又充分的利用了消息中間件異步實時,支持重試,充分解耦的技術能力。

另外,在採用數據查詢方式的時候我們基本無法做多系統的主數據稽覈操作,但是在採用數據分發模式的時候我們可以基於分發成功失敗情況第一時間的進行數據稽覈和跨系統數據完整性檢查。這個也是採用數據分發模式帶來的優勢。當前業務系統間經常出現主數據不一致的情況,在採用數據分發集成模式下,至少主數據管理系統可以做出初步的分析和判斷。

主數據系統和SOA的進一步自動化集成

這個在我前面談主數據的文章也談到過,可以做到主數據平臺和SOA平臺的進一步無縫集成。其中包括瞭如下一些關鍵的集成點。第一,對於主數據建模完成的對象,我們可以將該主數據對象通過配置的方式靈活的發佈爲一個主數據查詢服務接口並註冊到SOA平臺;第二,對於主數據平臺的新增或變更分發,我們可以靈活的配置將增量數據適配到哪個JMS接口或者哪個WS服務導入接口。

對於數據集成過程中,我們還可以配置自動化定時的去調用哪個WS服務接口,同時將採集到的數據適配並寫入到主數據系統本地的數據庫表。對於ETL調度任務,我也可以配置通過WS服務的方式進行自動化觸發,類似Oracle ODI方式來實現ETL和WS服務接口的集成能力。

相關文章