李明,劉德文,楊成林
(蘇州思萃工業(yè)互聯(lián)網(wǎng)技術(shù)研究所有限公司,江蘇 蘇州 215163)
為了進(jìn)一步提升辦公信息化項目的效率,達(dá)到辦公信息化預(yù)期效果,降低產(chǎn)品開發(fā)的成本,在不建立大數(shù)據(jù)倉庫的情況下,加強數(shù)據(jù)資源的整合效率,主要面向解決的問題總結(jié)為:
(1)解決管理信息化系統(tǒng)各子系統(tǒng)信息孤島的問題,實現(xiàn)數(shù)據(jù)整合、統(tǒng)一展示、共享的目的。
(2)實現(xiàn)各個業(yè)務(wù)系統(tǒng)數(shù)據(jù)全程可追溯及在各系統(tǒng)流轉(zhuǎn)后的數(shù)據(jù)一致性。
(3)解決工作中需要一鍵查詢非自己經(jīng)辦的各個系統(tǒng)業(yè)務(wù)數(shù)據(jù)的問題。
(4)解決一鍵賬號權(quán)限分配及回收問題。
為解決目前業(yè)務(wù)信息系統(tǒng)建設(shè)信息孤島現(xiàn)象導(dǎo)致的無法統(tǒng)一查詢數(shù)據(jù)、進(jìn)行有效數(shù)據(jù)分析的問題,以及進(jìn)行系統(tǒng)間數(shù)據(jù)打通關(guān)聯(lián)的問題,設(shè)計了一套基于源數(shù)據(jù)適配的大數(shù)據(jù)分析系統(tǒng),該系統(tǒng)在不建立大數(shù)據(jù)倉庫的情況下,能很好地解決多個業(yè)務(wù)系統(tǒng)數(shù)據(jù)關(guān)聯(lián)、數(shù)據(jù)查詢、信息孤島的問題,將分散的業(yè)務(wù)系統(tǒng)做整合,變成業(yè)務(wù)上統(tǒng)一的系統(tǒng)。
設(shè)計的系統(tǒng)有以下特點:
(1)該系統(tǒng)定位為數(shù)據(jù)中間件平臺,不用建立統(tǒng)一數(shù)據(jù)倉庫,即可達(dá)到數(shù)據(jù)統(tǒng)一、數(shù)據(jù)關(guān)聯(lián)、統(tǒng)一查詢的目的。
(2)在統(tǒng)一認(rèn)證登錄平臺基礎(chǔ)上增加了數(shù)據(jù)共享的功能,真正做到數(shù)據(jù)的統(tǒng)一。
(3)本系統(tǒng)下分三個子系統(tǒng),通過三個子系統(tǒng):業(yè)務(wù)系統(tǒng)接口適配系統(tǒng)、數(shù)據(jù)調(diào)用和組合規(guī)則適配調(diào)用系統(tǒng)、服務(wù)調(diào)用數(shù)據(jù)管理系統(tǒng)實現(xiàn)孤立業(yè)務(wù)信息系統(tǒng)源數(shù)據(jù)的整合,對外統(tǒng)一呈現(xiàn)數(shù)據(jù)。
基于源數(shù)據(jù)適配的大數(shù)據(jù)分析系統(tǒng)方案特點為:實現(xiàn)了各個業(yè)務(wù)系統(tǒng)數(shù)據(jù)接口的統(tǒng)一轉(zhuǎn)化,建立核心分發(fā)器,進(jìn)行數(shù)據(jù)分發(fā)、調(diào)用,并有效進(jìn)行了元數(shù)據(jù)、服務(wù)、用戶權(quán)限的管理。
技術(shù)手段為:搭建基于源數(shù)據(jù)適配的大數(shù)據(jù)分析系統(tǒng),通過接口適配、權(quán)限管理、調(diào)用規(guī)則組合實現(xiàn)數(shù)據(jù)的統(tǒng)一處理、獲取。系統(tǒng)由業(yè)務(wù)系統(tǒng)接口適配系統(tǒng)、數(shù)據(jù)調(diào)用權(quán)限和組合規(guī)則適配調(diào)用系統(tǒng)、服務(wù)調(diào)用數(shù)據(jù)管理平臺三個子系統(tǒng)組成,以實現(xiàn)業(yè)務(wù)信息系統(tǒng)源數(shù)據(jù)的整合,對外統(tǒng)一呈現(xiàn)數(shù)據(jù)。系統(tǒng)架構(gòu)如圖1所示。
圖1 基于源數(shù)據(jù)適配的大數(shù)據(jù)分析系統(tǒng)架構(gòu)示例圖
大數(shù)據(jù)分析系統(tǒng)通過統(tǒng)一接入框架,為上層統(tǒng)一信息平臺提供統(tǒng)一后的業(yè)務(wù)數(shù)據(jù),協(xié)助展示。采用組件化的架構(gòu)來實現(xiàn)各模塊的高內(nèi)聚、低耦合,同時方便并行開發(fā)。通過Restful 接口與App Server 中的接口服務(wù)進(jìn)行交互,一般不直接與管理后臺進(jìn)行交互。
采用大數(shù)據(jù)分析系統(tǒng)的信息平臺還需要支持統(tǒng)一認(rèn)證功能,即為用戶認(rèn)證采用統(tǒng)一認(rèn)證服務(wù),所有接入到統(tǒng)一認(rèn)證的應(yīng)用都可以很方便地接入客戶端,應(yīng)用之間的相互訪問變得簡單。
基于源數(shù)據(jù)適配的大數(shù)據(jù)分析系統(tǒng)的子系統(tǒng)設(shè)計為:對各上層業(yè)務(wù)系統(tǒng)開放的入口。
各業(yè)務(wù)系統(tǒng)之間調(diào)用存在不同的調(diào)用方式:RPC、Restful、CXF 等,數(shù)據(jù)格式也會存在XML、JSON 等不同的格式,該系統(tǒng)將適配不同的調(diào)用方式,本系統(tǒng)首先需要將原接口進(jìn)行統(tǒng)一錄入和管理,產(chǎn)品應(yīng)用Web 界面如圖2所示。
圖2 原始接口管理界面圖
系統(tǒng)通過原接口管理、業(yè)務(wù)系統(tǒng)管理、調(diào)試子系統(tǒng)等模塊錄入管理需要接入的業(yè)務(wù)系統(tǒng)以及對應(yīng)API 接口,系統(tǒng)支撐批量導(dǎo)入和單個API 錄入管理,管理顆粒度可精確到具體API 接口。
系統(tǒng)通過定義全量的適配規(guī)范模塊并將不同的數(shù)據(jù)接口統(tǒng)一轉(zhuǎn)換成JAVA 對象形式,傳遞給后續(xù)使用,并將調(diào)用到的數(shù)據(jù),適配成業(yè)務(wù)系統(tǒng)支持的調(diào)用方式以及數(shù)據(jù)結(jié)構(gòu)返回給業(yè)務(wù)系統(tǒng)。通過接口適配管理、新接口管理模塊來管理適配后的新接口。
某一個業(yè)務(wù)系統(tǒng)提供的一個服務(wù),可能會橫穿多個業(yè)務(wù)系統(tǒng),所以該服務(wù)在多個業(yè)務(wù)系統(tǒng)間會存在一個接口調(diào)用鏈,數(shù)據(jù)調(diào)用權(quán)限組合規(guī)則適配調(diào)用系統(tǒng)充當(dāng)?shù)氖且粋€核心分發(fā)器的角色,調(diào)度著這條調(diào)用鏈上的每一個執(zhí)行。平臺只負(fù)責(zé)不同數(shù)據(jù)庫的調(diào)用,并按照業(yè)務(wù)系統(tǒng)所能接收的調(diào)用協(xié)議和接收格式進(jìn)行統(tǒng)一返回,但是數(shù)據(jù)的具體業(yè)務(wù)邏輯處理,依舊交由各自業(yè)務(wù)系統(tǒng)進(jìn)行,然后根據(jù)業(yè)務(wù)需求進(jìn)行下一個業(yè)務(wù)數(shù)據(jù)庫的調(diào)用。如圖3所示。
圖3 數(shù)據(jù)調(diào)用和組合規(guī)則調(diào)用關(guān)系
數(shù)據(jù)調(diào)用權(quán)限和組合規(guī)則適配調(diào)用系統(tǒng)功能規(guī)劃:
(1)權(quán)限控制模塊。業(yè)務(wù)數(shù)據(jù)的調(diào)用權(quán)限應(yīng)該由調(diào)用方業(yè)務(wù)系統(tǒng)控制,此處的權(quán)限控制為平臺認(rèn)證授權(quán),前端業(yè)務(wù)系統(tǒng)接口適配系統(tǒng)所傳遞的參數(shù)中必須帶有平臺認(rèn)證授權(quán)token,保證數(shù)據(jù)訪問來源是允許的。
(2)適配規(guī)則管理和調(diào)用引擎模塊。確定該服務(wù)每一步所要調(diào)用的業(yè)務(wù)數(shù)據(jù)庫。調(diào)用引擎根據(jù)服務(wù)規(guī)則定義控制業(yè)務(wù)數(shù)據(jù)庫的調(diào)用順序以及路由分發(fā),如果插入、更新、刪除操作遇到異常時,可以根據(jù)元數(shù)據(jù)庫中針對每一個服務(wù)在具體一個業(yè)務(wù)數(shù)據(jù)庫所執(zhí)行的SQL 的對應(yīng)的事物補償進(jìn)行數(shù)據(jù)回滾,詳細(xì)看服務(wù)調(diào)用數(shù)據(jù)管理平臺。
(3)SQL 生成器模塊。根據(jù)每一個服務(wù)存儲在元數(shù)據(jù)庫中的調(diào)用數(shù)據(jù)規(guī)則,生成可執(zhí)行的SQL。如果是插入、更新、刪除操作,需要同時生成響應(yīng)的事物補償SQL,用于同一調(diào)用鏈不同的數(shù)據(jù)庫發(fā)生異常時能進(jìn)行事物回滾。
(4)數(shù)據(jù)返回結(jié)構(gòu)化模塊。根據(jù)每一個服務(wù)儲存在元數(shù)據(jù)庫中的返回報文規(guī)則,將SQL 執(zhí)行結(jié)果,或者其他結(jié)果,例如插入或更新數(shù)據(jù)成功后不返回主鍵直接返回固定的操作成功通知對象,轉(zhuǎn)換成業(yè)務(wù)系統(tǒng)接口適配系統(tǒng)所需要的結(jié)構(gòu)化數(shù)據(jù)。
對服務(wù)調(diào)用的規(guī)則管理,實現(xiàn)服務(wù)編排,達(dá)到服務(wù)組合的目的。該子系統(tǒng)對各業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫表描述的元數(shù)據(jù)管理,實現(xiàn)接口適配管理,并實現(xiàn)將細(xì)粒度的若干服務(wù)封裝為粗粒度服務(wù),如通過組合適配規(guī)則,將三個細(xì)粒度的底層服務(wù)封裝為一個粗粒度的服務(wù),提高了服務(wù)的復(fù)用性。降低系統(tǒng)復(fù)雜度,使得業(yè)務(wù)平臺和大數(shù)據(jù)分析系統(tǒng)邏輯分離,便于各層系統(tǒng)的獨立擴(kuò)展。
服務(wù)調(diào)用數(shù)據(jù)管理平臺系統(tǒng)功能規(guī)劃:
(1)數(shù)據(jù)庫管理模塊。各個業(yè)務(wù)數(shù)據(jù)庫的數(shù)據(jù)表元數(shù)據(jù)描述管理,業(yè)務(wù)系統(tǒng)用戶在修改自己系統(tǒng)數(shù)據(jù)庫的元數(shù)據(jù)時,需要系統(tǒng)通知該數(shù)據(jù)庫所關(guān)聯(lián)的服務(wù)所從屬的其他業(yè)務(wù)系統(tǒng)用戶。如圖4所示產(chǎn)品應(yīng)用Web 界面所示,可以對數(shù)據(jù)表元數(shù)據(jù)進(jìn)行統(tǒng)一管理。實現(xiàn)對各個數(shù)據(jù)表的統(tǒng)一管理、查詢。增加大數(shù)據(jù)分析系統(tǒng)的精細(xì)化管理程度。
圖4 數(shù)據(jù)表元數(shù)據(jù)管理界面圖
(2)服務(wù)調(diào)用管理模塊。定義每一個服務(wù)的調(diào)用鏈,以及每一個調(diào)用節(jié)點的業(yè)務(wù)數(shù)據(jù)庫路由。
定義服務(wù)在每一個調(diào)用節(jié)點上業(yè)務(wù)數(shù)據(jù)庫的調(diào)用規(guī)則及參數(shù)規(guī)則,用于數(shù)據(jù)調(diào)用權(quán)限組合規(guī)則適配調(diào)用系統(tǒng)生成可執(zhí)行SQL。
如果是插入、更新、刪除操作,定義服務(wù)在每一個調(diào)用節(jié)點上業(yè)務(wù)數(shù)據(jù)庫的事物補償規(guī)則,用于數(shù)據(jù)調(diào)用權(quán)限組合規(guī)則適配調(diào)用系統(tǒng)生成可執(zhí)行事物補償SQL。
(3)接口適配管理模塊。每一個服務(wù)的調(diào)用鏈,涉及的跨本業(yè)務(wù)數(shù)據(jù)庫操作的節(jié)點,都需要對應(yīng)業(yè)務(wù)系統(tǒng)的管理員審核,開放調(diào)用權(quán)限。
該模塊提供的服務(wù)編排功能,通過規(guī)則對多個服務(wù)進(jìn)行編排形成新的服務(wù),為松耦合但需短時間自動執(zhí)行的服務(wù)編排流程提供了技術(shù)實現(xiàn)方案,提供工具讓開發(fā)者以編程界面的方式來編排服務(wù)。
(4)用戶中心管理模塊。針對超級管理員、各系統(tǒng)管理員等用戶,設(shè)計用戶管理模塊,顯示各自的服務(wù),管理自己系統(tǒng)的元數(shù)據(jù)、接口、調(diào)試所管理的業(yè)務(wù)系統(tǒng)接口。
(5)配置中心模塊。該模塊配置數(shù)據(jù)庫、局部環(huán)境變量、全局環(huán)境變量等,并支持以不同模板形式保存歷史配置數(shù)據(jù),通過配置中心可實現(xiàn)對大數(shù)據(jù)分析系統(tǒng)的配置管理。
在沒有使用數(shù)據(jù)源整合系統(tǒng)的信息化系統(tǒng)中,存在業(yè)務(wù)信息孤島,業(yè)務(wù)新系統(tǒng)數(shù)據(jù)全程可追溯困難,各系統(tǒng)流轉(zhuǎn)后的數(shù)據(jù)一致性實現(xiàn)困難,無法實現(xiàn)一鍵賬號權(quán)限分配及回收問題。
基于源數(shù)據(jù)適配的大數(shù)據(jù)分析系統(tǒng)系統(tǒng)可以廣泛應(yīng)用在辦公信息化領(lǐng)域,尤其解決存量中大型企業(yè)的辦公統(tǒng)一信息化、各子系統(tǒng)信息孤島的問題及數(shù)據(jù)統(tǒng)一查詢、分析的問題。該場景下:企業(yè)已經(jīng)有多個存量信息化系統(tǒng),且各個業(yè)務(wù)信息系統(tǒng)是不同廠家,獨立建設(shè)的場景。存量子業(yè)務(wù)系統(tǒng)通過該大數(shù)據(jù)分析中間件平臺對接、分發(fā),從用戶層面,實現(xiàn)數(shù)據(jù)的統(tǒng)一。有助于實現(xiàn)統(tǒng)一報表分析、大屏數(shù)據(jù)分析、各個業(yè)務(wù)數(shù)據(jù)一屏展示。如果建設(shè)大數(shù)據(jù)平臺,建設(shè)成本較高,耗時較長,可以通過本文的基于源數(shù)據(jù)適配的大數(shù)據(jù)分析系統(tǒng),即一個數(shù)據(jù)整合的中間處理平臺,來實現(xiàn)數(shù)據(jù)的轉(zhuǎn)換、分發(fā)、統(tǒng)一抽取、共享。
該系統(tǒng)實現(xiàn)各個業(yè)務(wù)系統(tǒng)數(shù)據(jù)全程可追溯及在各系統(tǒng)流轉(zhuǎn)后的數(shù)據(jù)一致性:各個業(yè)務(wù)保存的同一數(shù)據(jù)的稽核,自動核對報銷數(shù)據(jù)、財務(wù)數(shù)據(jù)、合同數(shù)據(jù)的一致性。
實現(xiàn)了信息平臺的輕量化:從信息架構(gòu)層面有助于實現(xiàn)信息平臺的輕量化,支持通過本地+接口、H5 兩種方式適配接入各管信系統(tǒng)。減少建設(shè)大數(shù)據(jù)倉庫,減少單獨建設(shè)企業(yè)服務(wù)總線(Enterprise Service Bus,ESB)。
加強系統(tǒng)的賬戶權(quán)限控制,通過于統(tǒng)一認(rèn)證系統(tǒng)的配合,通過數(shù)據(jù)訪問權(quán)限層面,控制系統(tǒng)訪問,當(dāng)某個系統(tǒng)停用或者某些重要數(shù)據(jù)接口受限時,除了通過統(tǒng)一認(rèn)證系統(tǒng)進(jìn)行控制,還可通過該大數(shù)據(jù)分析系統(tǒng)可達(dá)到接口的權(quán)限控制目的,起到安全雙保障的效果。
通過本文方案,通過應(yīng)用基于源數(shù)據(jù)適配的大數(shù)據(jù)分析系統(tǒng),可以解決管理信息化系統(tǒng)各子系統(tǒng)信息孤島的問題,在不用建立統(tǒng)一數(shù)據(jù)倉庫情況下,達(dá)到數(shù)據(jù)的整合、統(tǒng)一展示、共享;以及實現(xiàn)各業(yè)務(wù)系統(tǒng)數(shù)據(jù)全程可追溯、流轉(zhuǎn)數(shù)據(jù)保持一致性;并可解決一鍵查詢各系統(tǒng)業(yè)數(shù)據(jù)的問題、一鍵賬號權(quán)限分配及回收問題。