企業主數據是描述企業核心業務實體的數據,如產品、客戶、員工等。企業遺留系統一般都基于本地持久實體進行主數據引用和維護,這種模式產生兩種后果:一方面,企業各業務部門只關注與其業務相關的主數據,遺留系統只有片面主數據屬性;另一方面,系統間同類主數據重復創建、重疊部分內容可能不一致。不完備、不一致的主數據會造成企業管理混亂、甚至會使企業丟失商機。為取得完備、一致的主數據,傳統方法是在對等系統間實現數據集成或應用集成,例如:(1)應用抽取、變換、加載等功能復制主數據;(2)使用消息發送和消息接收機制傳送主數據;(3)通過編程接口提供主數據訪問功能(或服務)。這些集成方法只能在一定程度上解決問題,各有不足:方式1有周期性。不能保證數據一致;方式2在頻繁同步發送主數據消息時系統性能會下降,同時遺留系統核心業務管理能力也會受到影響;如果方式2采用異步消息發送.則不能保證數據一致;方式3與方式2一樣存在性能問題,而且方式3要求接口提供系統保持足夠在線運行時間,給系統運行和維護帶來不便。
主數據管理中心(下文稱“中心”)統一為企業提供完備、一致的主數據,將主數據提供方和消費方隔離開來、是服務專業化結果。中心有事務型、混合型、注冊型等3種類型。目前Oracle、IBM、SAP等企業都推出了各自的主數據管理產品。它們有的是專用型產品,如客戶管理、產品信息管理等,單一系統不能對應企業多種類主數據管理需;有的是套件產品,服務于本企業其它產品;有的雖然是通用型產品,但系統大量使用低效的XML數據格式,單一中心承擔所有主數據服務訪問。系統壓力很大、性能不穩定。本文基于遺留系統主數據工作模式不變,結合混合型中心和傳統對等系統集成思想,設計一種以實時主數據集成為目的、中心不提供訪問服務的混合型中心方案,該方案以中心為主數據存儲轉發中介協調實現主數據在相關系統間實時集成。
本文第1節介紹本文應用的相關技術知識,第2節論述輕量數據和重量數據分管道處理的主數據集成體系結構;第3節是主數據集成流程設計,第4節介紹簡易主數據管理功能組件設計;第5節介紹如何編排主數據管理組件服務實現實時主數據集成;最后是結論。
1、相關技術應用
1.1 SOA,SCA
SOA是服務(Services)為核心的架構風格、是分布式軟件系統構造方法。服務由接口和契約組成,接口提供訪問業務功能或業務數據的技術綁定,契約用于描述和約束服務、服務消費者據此了解服務及調用規則,Web服務是SOA服務的一種實現方式.其契約包括WSDL(Web Service Description Language)文件、XML模式文件、以及描述服務質量、安全要求等內容文件.服務是以中立、標準化方式定義。不依賴具體的實現技術、操作系統、和硬件基礎架構.服務可以劃分為業務服務和業務漉程服務,業務服務對應于業務功能接口、是原子性的服務,業務流程服務是組合服務。服務組件架構(Service Component Architeeture,SCA)是一種實現SOA的規范,SCA使用業務流程執行語言(Business Process Executing Language,BPEL)對服務進行編排生成業務流程服務,SCA同時提供人工任務服務和業務規則服務,這些服務也參與服務編排。服務在服務代理上注冊后可被查找發現,服務消費者通過服務代理查找到相關服務、并點對點地調用服務。企業服務總線(EntERPrise Service Bus,ESB)解除點對點的服務調用方式,提供基于消息變換、消息內容動態路由的松散耦合服務調用能力。服務具有粗粒度、松耦合、可再用等特性,松耦合特性包括兩層意思:(1)服務定義標準化使得服務交互采用通用的、統一的方式進行;(2)ESB的作用使得服務交互可以是動態的、位置透明的;服務的這些特性決定S()A適合異構系統的交互。
1.2批量數據服務
基于批處理方式的傳統ETL(Extract,Transform,Load)程序是分布式系統數據集成的主要工具。提供成批數據移動和轉換功能,其數據處理吞吐量大、性能好。一般按周期運行,不具備實時集成特性。通過SOA服務化技術,ETL應用可以直接定制為批量數據服務,實現按需調用,批量數據服務可以作為業務流程或ESB事務處理的子過程,實現實時數據集成任務。
1.3 JCA適配器服務
JCA適配器是JCA(J2EE Connector Architecture)規范的連接器,用于連接企業遺留系統。按照其連接的對象可以分為應用程序適配器和技術適配器,應用程序適配器連接Oracle、SAP等企業提供的管理軟件包I技術適配器連接特定技術或協議的載體,如中間件組件、FTP服務器、應用服務器、數據庫表、消息隊列、文件等。企業信息系統一般都要操作本地持久存儲。如文件、數據庫表等,通過使用JCA技術適配器連接這些持久存儲并周期性地探查其數據變化l當變化發生時,JCA技術適配器捕獲該變化并觸發適配器預先定義的操作。JCA技術適配器這種工作方式產生新形式的適配器服務。
2、體系結構
遺留系統只有片面的主數據屬性,企業完備主數據是企業各系統主數據屬性的綜合.因此中心主數據管理需要跨部門、多系統共同參與。在混合中心體系里,中心只存儲必要主數據屬性,即那些在企業范圍內必須保持一致的主數據屬性和查找關鍵字合集,必要主數據屬性劃分為主分組和次分組兩部分。本文定義主分組屬性是以單值表現、且可由中心系統全權輸入的屬性和關鍵字集合,相關遺留系統負責輸入其維護職責內的次分組屬性。按照參與中心主數據管理角色分類,企業遺留系統可以劃分為源系統和引用系統兩類。(1)源系統是參與中心主數據管理業務、并引用中心主數據的系統;(2)引用系統是不參與中心主數據管理業務、只引用中心主數據的系統.中心系統和源系統一起提供主數據管理業務活動實現,這些業務活動實現按照一定的流程完成主數據管理業務。中心系統、源系統、引用系統可能由不同的軟件供應商提供、或采用不同的技術構建、或運行在不同的平臺上,系統之間有很大的異構性,它們需要在主數據管理體系下實現交互。
本文采用SOA作為主數據管理體系架構。SOA業務服務實現中心系統及源系統的主數據管理業務活動,SOA業務流程服務實現主數據管理業務,業務流程服務是通過組裝、編排跨系統主數據業務服務、質量管理服務、數據集成管理等服務而生成。
主數據集成是混合型中心方案成功的關鍵,在這種中心體系里,源系統仍然延用原有主數據工作模式:基于本地主數據持久實體的引用和維護,源系統的部分主數據屬性作為必要主數據屬性提交給中心系統。再由中心系統統一為其它引用系統提供主數據共享。源系統和中心系統必須保持必要主數據屬性實時集成,這樣才能避免系統間主數據不一致現象。
主數據集成有時需要對應大量主數據屬性的復制和變換,例如批量數據更新或導入,即使逐條新增或修改主數據屬性,也會由于人工審批等作業延遲,導致等待處理的主數據記錄大量積聚。大數據量處理不是SOA的長項,SOA框架基本都在Java容器中運行,當處理數據最很大時,Java虛擬機就會不堪重負;再者。SoA服務交互基本都足以XML通用格式數據為載體,由于XML數據中存在大量的標簽、模式定義、尖括號等附加信息,XML數據的有效載荷一般低于實際載荷的10%,XML不適合作為主數據集成的載體格式。
本文使用批量數據服務進行主數據集成操作,批量數據服務具有很好的大數據量處理能力,能夠滿足實時快速的數據集成要求。
圖1是主數據管理體系架構。如圖示,中心系統和源系統提供主數據管理服務,這些服務經過BPEL服務編排,生成統一的主數據管理業務流程服務,一個或多個業務流程服務完成一個主數據管理業務,如新增(C)業務、讀取(R)業務、修改(U)業務、刪除(D)業務,即基本的CRUD操作。主數據管理界面負責業務流程服務調用及各人工業務活動的輸入、輸出;ESB是體系各部分交互的中介,通過ESB交互的是XML格式輕最數據:包括控制消息和規模可控的輕量主數據消息;中心系統、源系統、引用系統之間的主數據集成對象是體積較大的鶯量數據,集成在數據層進行,通過批量數據服務實現;這種輕量數據與重量數據分管道處理方式有利于提高系統運行性能。
下節“主數據集成流程”將詳細介紹這種SOA框架內輕量數據、重量數據分管道處理機制。
3、主數據集成流程
本節從系統實現主數據新增、更新、刪除、讀取等業務角度分析主數據集成流程,以此作為主數據管理業務流程設計的依據。
(1)新增業務:在“主數據管理界面”發出“新增”消息,通過ESB對消息進行轉換和動態路由,“新增主數據業務流程”被執行;新增流程以新增消息為參數調用中心系統的“主數據管理服務”,中心系統新增主數據、并返回剛創建的主數據記錄定位參數(輕景數據);新增流程獲取主數據記錄定位參數、并據此調用批量數據服務,批量數據服務從中心相應主數據實體中提取新增 主數據(重量數據)、并同步到所有源系統;源系統更新其維護職責內的次要分組屬性,源系統通過主數據集成服務將錄入完畢的次分組屬性上載到中心系統(重量 數據);最后新增流程啟用新增數據并消息通知各個引用系統(輕量數據)。
(2)更新業務:與新增業務類似處理。
(3)刪除業務:由于主數據可能已經在交易中使用。系統不允許物理刪除主數據。而是采用更新業務邏輯實現邏輯刪除功能;同更新業務處理。
(4)讀取業務:源系統、引用系統基于本地持久主數據實體引用主數據,這種方式符合遺留系統主數據工作模式、使得遺留系統程序修改量很小;對于需要中 心提供的主數據屬性,遺留系統開辟新的主數據屬性存儲、并定期從中心下載這些主數據屬性值(重量數據)I遺留系統通過預定/發布(publish /subscribe)機制預定各自需要的中心主數據變更消息;當中心主數據變更時。中心系統發布有效載荷為<主數據實體,鍵值范圍,屬性類 別>的消息(輕量數據),相關遺留系統接到變更消息后,在本地系統標記變更;當遺留系統引用本地帶有變更標志的主數據時,遺留系統首先調用本地主數 據集成應用從中心下載最新主數據(重量數據),然后基于本地存儲引用這些主數據。
4、功能組件設計
如圖2所示,主數據管理組件劃分為表示層組件、業務流程組件、應用層組件等3層,下層依次為上層提供服務.
4.1表示層組件
源系統主數據工作模式保持不變,依然使用其主數據維護界面調用原有更新邏輯。需要從源系統主數據維護界面去掉“新增”和。刪除”等部件,這些功能只能 統一在中心系統使用。主數據業務管理界面負責調用主數據管理業務流程服務.工作列表是特定角色或工作人員的任務一覽表及具體任務的工作界面,如審批等業務 活動.
4.2業務流程組件
(1)新建/中心更新:在中心系統上完成單條主數據的新建/更新、清洗、審批后,下載到所有源系統。(2)源更新:在源系統端完成主數據屬性更新、清 洗、審核后,將源系統維護責任內的次分組屬性上載到中心。(3)啟停用:調用中心系統和所有源系統的啟停用服務,使用XA事務(兩階段提交)保證分布式系 統更新的全局事務性。(4)批量導入:成批她新建/更新中心主數據,流程同“新建/中心更新”。(5)批量同步:定期將中心主數據成批地下載到源系統和引 用系統,消除系統問可能存在的主數據不一致。
4.3應用層組件
(1)新建:從臨時主數據輸入實體中讀取新增主數據,生成主數據實體記錄,并自動填充關鍵字域。(2)更新:從臨時主數據輸入實體中讀取更新信息,更 新主數據實體相應記錄。(3)啟/停用:對本地主數據進行“啟用”或“停用”更新操作。(4)提取:從中心主數據實體提取規模可控的主數據記錄并轉化為通 用格式,作為其它服務的入口參數。(5)清洗:對主數據實體中的數據進行質量篩選,包括列篩選、結構篩選和業務規則篩選。(6)下載:將中心變更的主數據 下載到源系統登臺區,可能包含抽取、轉換、加載等操作。(7)上載:從中心系統登臺區提取源系統提交的次分組屬性、并加載到中心系統相關實體,可能包含抽 取、轉換、加載等操作。(8)人工任務:SCA規范的人工任務服務,如人工審批等業務活動,其人機交互界面是表現層的工作列表。(9)業務規則:SCA規 范的業務規則服務,是業務流程中的判斷活動。(10)管理訪同:從中心管理實體中讀取相關的管理信息,用于業務流程的條件判斷。(11)源下載:從源系統 登臺區下載中心提交的主分組屬性、并加載至源系統相關主數據實體,可能包括抽取、轉換、加載等操作。(12)源上載:將源系統上發生變更的次分組屬性上載 到中心系統登臺區;可能包括抽取、轉換、加載。(13)源清洗:同清洗服務。(14)源啟停用:同啟停用服務。(15)源更新:源系統仍然使用其更新邏輯 更新本地主數據,我們不對這種更新邏輯進行服務化改造。而是通過外掛適配器服務探測源系統主效據屬性變更,當變更發生時執行相關操作返回。(16)源審 核:同“源更新”服務,源系統仍然使用其審核邏輯更新本地主數據,外掛適配器服務探測主數據變更時執行相關操作返回。
5、服務編排實現實時主數據集成
中心系統、源系統之間主數據實時集成可以絕對消除主數據不一致現象。雖然批量數據服務具有很好的數據處理住能,但畢竟參與主數據管理系統眾多,需要進 行數據集成的對象系統很多,批量數據服務不可能在同一時刻將大量主數據經變換后傳送到每個相關系統I數據傳輸吞吐量也受基礎設施限制,如跨國企業的信息系 統遍布世界各地,簡單地使用批量數據服務進行快速數據集成很難保證實時性、準確性。
本文把相關業務流程包含的業務活動控制在一個全局邏輯事務內,業務流程中可以發生任何物理事務提交。但這些提交只有經過流程尾全局邏輯事務提交才生效 I提供XA事務支持的啟停用業務流程可以實現這種功能。下圖以“新增主數據業務”為例。闡述如何通過服務編排實現實時主數據集成。
圖3中共列出15個業務活動,每個業務活動對應一個服務調用,這些業務活動被編排進3個業務流程:①一⑦是“新建”業務流程。③一1212是“源更 新”業務流程,1313—1515是“啟停用”業務流程。3個業務流程都跨越中心系統和源系統。業務流程內服務之間的交互信息是輕量數據消息,當需要使用 主數據屬性作為交互參數時,使用“提取”服務從主數據實體中取得規模可控的主數據屬性值集合;圖中“提取”和“審核”(⑤)外的方框表示逐條主數據循環審 核。圖中各個業務活動都町能發生物理事務提交,但這些提交的主數據不能被源系統或引用系統在交易中使用,這可以通過設置主數據標志位(如“無效”標志)實 現,1313—1515所在的“啟停用”業務流程實現XA事務控制、并行地在各相關系統進行全局事務提交,保證新增的主數據在源系統和中心系統同時啟用, 這種提交操作只是更新相關主數據記錄狀態位,全局事務的性能能夠得到保證。
6、結束語
本文結合SOA和批鼉數據服務的特長,將系統中的數據按照輕量數據、重最數據分管道處理,通過全局邏輯事務性業務流程實現實時主數據集成。本文的實時 主數據集成方案也是簡易的主數據管理方案。通過數據集成取消單一中心訪問服務,中心不再因頻繁主數據訪問而導致系統性能下降。企業遺留系統仍然延用圖3 新增主數據業務的服務編排和實時主數據集成圖3中共列出15個業務活動,每個業務活動對應一個服務調用,這些業務活動被編排進3個業務流程:①一⑦是“新 建”業務流程。③一1212是“源更新”業務流程,1313—1515是“啟停用”業務流程。3個業務流程都跨越中心系統和源系統。業務流程內服務之間的 交互信息是輕量數據消息,當需要使用主數據屬性作為交互參數時,使用“提取”服務從主數據實體中取得規模可控的主數據屬性值集合;圖中“提取”和“審核” (⑤)外的方框表示逐條主數據循環審核。圖中各基于本地持久實體的主數據引用和維護模式。本文方案雖然是企業主數據管理的過渡方案,但由于企業煙囪效應的 信息系統建設方式難以消除,該方案有長期使用價值,也可以作為其它混合型主數據管理系統的集成方案。
轉載請注明出處:拓步ERP資訊網http://m.hanmeixuan.com/
本文標題:面向企業遺留應用設計實時主數據集成