肖小智
摘要:隨著政府部門業(yè)務系統(tǒng)的增多,系統(tǒng)間數據存在著密切聯系,互通互連需求越來越密切。以北京市為例,當前各業(yè)務系統(tǒng)數據互通互連存在如下四個問題:一是應用環(huán)境不同、二是數據庫環(huán)境不同、三是缺乏統(tǒng)一數據主題、四是數據傳遞機制不統(tǒng)一。為了解決這些問題,本文提出了一種以主題為中心的面向業(yè)務流的數據共享與交換模型。該模型使用JSON(JavaScript Object Notation)作為總線技術,數據共享與交換中心作為架構中心,形成以數據共享與交換代理提供代理服務的總分式結構模式。在北京市的試運行結果表明,這種數據交換與共享在一定程度上解決數據和共享難題,值得進一步推廣。
關鍵詞: 數據共享與交換; 數據共享;數據交換;信息流;異構數據庫
中圖分類號:TM76? ? ? ?文獻標識碼:A
文章編號:1009-3044(2019)27-0261-04
Abstract: With the increase of business systems in government departments, there is a close relationship between the data of various systems, and the demand for interoperability is getting closer. Taking Beijing as an example, there are four problems in the current interconnection of data in various business systems: one is that the application environment is different, the other is that the database environment is different, the third is the lack of unified data topics, and the fourth is that the data transmission mechanism is not uniform. To solve these problems, this paper proposes a topic-centric data sharing and exchange model for business flow. Using JSON as the bus technology, the data sharing and exchange center as the architecture center, the data sharing and exchange Adapt provides the total fractional structure model of the proxy service. The trial operation results in Beijing show that this data sharing and exchange model solves the data sharing and exchange problem to a certain extend and deserves further promotion.
Key words: data sharing and exchange;data sharing;data exchange;information flow;heterogeneous database
隨著社會和科學技術的不斷發(fā)展,我國各政府部門相繼建立起計算機信息管理系統(tǒng),以提高管理水平,取代繁瑣的手工業(yè)務流程。在建立前期,因缺乏統(tǒng)一規(guī)劃,大部分的業(yè)務系統(tǒng)都是獨立開發(fā)、獨立管理、獨立使用。造成平臺、開發(fā)語言、數據庫種類和版本之間存在很大的差異。各部門之間甚至部門內部數據交換困難重重,各部門的業(yè)務系統(tǒng)變成自封閉的“信息孤島”。一旦涉及跨部門業(yè)務協同,辦事效率極其低下,甚至在管理上會出現一些嚴重的漏洞。
以北京市為例,當前數據共享與交換主要存在如下四個問題:一是信息系統(tǒng)的應用系統(tǒng)環(huán)境不同;二是數據庫環(huán)境不同(Oracle/MySql/Sql Server),同一實體也存在多種數據結構;三是缺乏統(tǒng)一數據主題;四是數據傳遞機制不統(tǒng)一。
因此提供一套基于Web、安全、開放、低成本、以主題為中心的數據共享與交換模型,旨在不改變各部門其原有業(yè)務的基礎上進行數據的共享與交換,具有廣泛的現實意義:1. 實現了數據的共享與交換,打破了信息孤島。2. 保持各部門原有的信息管理系統(tǒng)的軟、硬件的有效性,避免因數據共享與交換而引發(fā)的二次開發(fā),節(jié)約開發(fā)成本。3. 靈活、可擴展,不影響現有的信息系統(tǒng)的業(yè)務運行,同時為后續(xù)信息的開發(fā)提供一套可供參考的標準。本文結合北京市政府部門數據交換與共享的實際應用場景,提出并建立一個以主題為中心的面向業(yè)務流的數據共享與交換模型。
1 數據共享與交換模型設計
設計的數據共享與交換模型(data share and exchange model, DSEM)采用基于Java的主流技術,以JSON作為技術總線,其目的是針對多源異構數據建立一個低成本、容易維護、容易實現、松耦合的交換平臺。讓有數據交換或業(yè)務協同需要的業(yè)務系統(tǒng)能夠進行數據交換、數據共享,從而實現整合業(yè)務流的集成或實現特殊業(yè)務處理的目的,最終實現數據資產的管理和增值。
1.1 平臺框架設計
本文所提出的數據共享與交換模型以JSON(JavaScript Object Notation)作為總線技術,數據共享與交換中心(data share and exchange center, DSEC)作為模型的中心,實現數據的交換和數據的共享。數據共享與交換適配器(data share and exchange adapter, DSEA)提供代理服務,連接DSEC和目標數據庫,整個模型為總-分結構。圖1為本文所提出的數據共享與交換平臺模型架構圖:
從圖1可以看出,本文提出的數據共享與交換模型架構具有如下兩大優(yōu)勢:
1)有數據交換或共享需求的業(yè)務系統(tǒng),盡管其業(yè)務系統(tǒng)運行在不同的平臺(Linux/Window)之上、具有不同的數據源或者數據結構。但是都可以通過DSEA與DSEC連接,進行數據共享與交換,以整合業(yè)務流,完成數據協同交換。數據交換的過程是不同業(yè)務系統(tǒng)通過DSEA與DSEC進行消息與數據的交換,所有消息和數據的交換均以JSON數據格式進行傳輸。
2)當有新的業(yè)務系統(tǒng)需要進行數據交換或共享,只需要將業(yè)務源數據庫通過對應DSEA與DSEC相連。對平臺而言,只需要在系統(tǒng)進行相應注冊,不需要修改原業(yè)務系統(tǒng)的代碼。與當前市場上的數據交換軟件相比,整個系統(tǒng)是松耦合的。
1.2 數據共享與交換適配器設計
DSEA部署在客戶端,是整個數據交換和共享模型的重要組成部分,同時也是連接各個業(yè)務系統(tǒng)源數據庫與DSEC的橋梁。每一種DSEA僅且負責一種數據庫系統(tǒng),目前以為Oracle、MySQL、SQLServer等主流數據庫實現其對應的DSEC。它的主要功能是與DSEC交互、封裝信息流、同時作為DSEC的數據緩存區(qū)。本模型信息流以JSON數據格式呈現,包括消息、狀態(tài)碼、簽名和數據四個部分,消息包括數據交互雙方代理節(jié)點的信息、數據交互的操作信息等,狀態(tài)代碼指交互過程中DSEC和DSEA的狀態(tài),數據則是要上傳或下載的數據,簽名是的消息、狀態(tài)、數據三者的簽名,防止數據在傳輸過程中被篡改。消息流的組成如圖2所示:
如圖3所示,當上傳數據時,DSEA按DSEC發(fā)送的指令抽取數據,經預處理后轉換成JSON數據,然后經數字簽名和數據加密后形成新型流形式的JSON數據上傳到DSEC;當接收數據時,即把從平臺傳輸過來的JSON數據,經DSEA的簽名確認及解密,然后經一定的數據結構轉換處理,最后導入業(yè)務系統(tǒng)。
1.3 數據共享與交換中心設計
DSEC是整個數據共享與交換模型的中心,其設計架構圖如圖4所示,總體為金字塔塔型,從下到上依次為數據接入層、信息解析/信息應答交互管理/服務監(jiān)控、數據上傳/下載/同步/重組、數據主題管理、主題數據發(fā)布等五層架構。
數據接入層負責與所有DSEA連接和通信,可以根據業(yè)務系統(tǒng)所處的環(huán)境或者業(yè)務系統(tǒng)所處的秘級選擇合適的數據通信傳遞方式,類似于TCP/IP五層模型中的物理層。信息解析/信息應答交互管理/服務監(jiān)控類似于TCP/IP五層模型中的連接層,負責解析/組裝信息流。數據上傳/下載/同步/重組類似TCP/IP中的網絡層,根據下層的信息流的指令解析信息流中的數據,并將數據送到指定的DSEA。數據主題管理與TCP/IP中的傳輸層有點類似,負責將下層的元數據重組成以業(yè)務需求為中心的數據主題。數據發(fā)布類似于TCP/IP的應用層,負責將數據主題中的數據形成RESTFUL風格的API,讓新建的業(yè)務系統(tǒng)或者待建的業(yè)務系統(tǒng)直接通過API的方式接入數據。
從總體上看,整個模型就是一臺多節(jié)點接入的中心數據庫,也是一臺數據交換機。DSEA和DSEC之間以JSON的數據格式將數據從源數據庫傳輸到目標數據庫。整個模型是解耦合的,可以很容易擴展為多層次的雪花型結構。
2 數據交換與共享流程與具體實現
數據共享與交換的流程包括:建立通信連接、封裝信息流、數據的上傳/下載、服務監(jiān)控、通信會話結束。
2.1 建立通信連接
DSEA以DSEC作為中心節(jié)點進行數據共享與交換,DSEA間數據交換主要有兩種模式。
第一種是“請求+應答模式”,兩個DSEA間進行數據交換,需要數據接收方向DSEC發(fā)出請求信息,DSEC審核其權限后將消息傳遞給數據發(fā)送方。數據發(fā)送方獲得請求信息,并將同意返回給DSEC。DSEC檢查數據接收方和發(fā)送方的DSEA的連接請求,為二者建立一條安全的傳輸信道,此時建立連接完成。
第二種是“發(fā)布+訂閱模式”,某個DSEA需要共享其他DSEA的數據,需要向DSEC發(fā)出訂閱請求,當被訂閱的DSEA節(jié)點有相應的數據更新時,即向DSEC發(fā)布數據更新消息。DSEC收到消息或將更新的數據傳遞到訂閱者的DSEA,從而實現數據的實時更新。
2.2 封裝信息流
在數據共享與交換中信息流的封裝包括消息的封裝、DSEA/DSEC狀態(tài)的封裝、目標數據的封裝、簽名的生成四個步驟。消息包括發(fā)送方DSEA節(jié)點DSEA_SEND_ID、接收方DSEA節(jié)點的DSEA_RECEIVE_ID、業(yè)務類型BUSSINESS_TYPE、上傳時間UPLOAD_DATE等。在本模型的實際開發(fā)中使用JDBC調用目標數據庫,將獲取到的數據轉換成JSON數組。Code是發(fā)送方當前的狀態(tài),Sign是根據消息、代碼、數據生成的簽名。信息流封裝好,將其傳輸到DSEC處理。
2.3 數據的上傳/下載
數據上傳/下載流程如圖5所示,在本模型的實際開發(fā)中,采用RabbitMQ實現緩沖池。因此數據/下載的過程可以描述成DSEA將數據發(fā)送到RabbitMQ和從RabbitMQ中取數據的過程。
在實際開發(fā)中,可以通過動態(tài)設置RabbitMQ的大小提高數據交換和共享的效率。對非實時數據,可以等緩沖池滿時,再進行數據的交換和共享。對于海量數據,可以通過緩沖池進行分片共享與交換,緩解系統(tǒng)的壓力。當出現數據共享與交換失敗,也只需要對緩沖池里的數據進行重新共享與交換。
在實際開發(fā)中,使用表1來存儲市場上常用數據庫類型的映射關系。同時用另外一張普通表如表2建立起源數據字段到目標數據字段的映射關系。
2.4 服務監(jiān)控
服務監(jiān)控的主要目的是對數據交換和共享的過程進行記錄,當數據傳輸異常時,可以通過日志進行恢復。在實際開發(fā)中,使用的方式是將日志信息和異常信息發(fā)送到日志節(jié)點,由日志節(jié)點將信息寫到日志文件中。
異常分為可捕捉異常和不可捕捉異常,異常的處理針對的是可捕捉異常。當服務監(jiān)控收到可捕捉異常時,根據系統(tǒng)內置的處理方式進行異常處理。例如重新對緩沖池中的數據進行交換,或者回退已交換的數據。
2.5 通信會話結束
會話結束實際上是分別中斷DSEC與發(fā)送方DSEA的連接以及DSEC與接收方DSEA的連接。當數據上傳結束之后,會發(fā)送一條結束連接的請求給DSEC,DESC收到后并不立即處理,而是讓發(fā)送方處理等待狀態(tài),以防有新的數據請求。當接收方數據下載完畢之后,接收方也發(fā)同樣一條請求給DSEC。當DSEC收到接收方的請求后,此時才分別中斷其與發(fā)送方DSEA和接收方DSEA的連接。
3 主題數據建立與發(fā)布
各部門后續(xù)開發(fā)的計算機系統(tǒng),有兩種方式進行數據交換和共享,一種是如上文描述的數據共享與交換,即和其他DSEA節(jié)點數據進行交換或者訂閱其他DSEA節(jié)點發(fā)布的數據。還可以在DSEC中建立主題服務,將主題發(fā)布的數據集成到系統(tǒng)中。
主題數據與發(fā)布其整體架構圖如6所示,其核心是通過CSEC實現主題和各DSEA下各字段的映射,從而實現數據重組,將組合之后的數據形成JSON數據包,讓其他在建系統(tǒng)或待建系統(tǒng)以RESTFUL風格的鏈接既可以訪問數據。減少系統(tǒng)減少成本,讓在建或待建系統(tǒng)專注于前端業(yè)務邏輯和頁面設計。
4 結束語
本文從北京市各政府部門數據協同交換的實際應用場景出發(fā),針對當前各部門異構數據共享與交換過程中的實際問題,設計了以主題為中心的數據共享與交換中心模型,以支持異構數據的共享與交換,支持異構數據發(fā)布,支持多種擴展方式,大幅降低對數據交換和共享的過程中對專業(yè)技術的要求,簡化了操作流程,提高了數據交換和共享的效率。
數據共享與交換中心模型還有很多工作尚未完成,未來的工作將從以下四個方面進行:一是提供數據標注功能,以讓政府部門間的數據更能在機器學習和深度學習系統(tǒng)中使用。二是對數據進行合理的安全管理、三提供相應的數據質量管理工具。四是提供更豐富的數據集成工具以集成網絡數據、文件數據、消息流和IOT數據。
參考文獻:
[1] MacWhinney, Brian, and Catherine Snow. The child language data exchange system.Journal of child language 12.2 (1985): 271-295.
[2] Helgeson, Christopher S., et al. Method and apparatus for managing data exchange among systems in a network. U.S. Patent No. 6,643,652. 4 Nov. 2003.
[3] 張耕凡.一種基于JSON的分布式系統(tǒng)架構[J].中國農機化學報,2015,36(5):255.
[4] 呂國,等.基于XML的數字校園交換平臺設計[J].電腦與信息,2018,20:235.
[5] Fagin, Ronald, et al. Data exchange: getting to the core. ACM Transactions on Database Systems (TODS) 30.1 (2005): 174-210.
[6] 周建寧,等.公安跨網絡數據交換系統(tǒng)設計與實現[J].中國公共安全·學術版,2019,2:81.
[7] 黎亞孟.基于 XML 數據交換的電子政務集成系統(tǒng)[J].數據庫技術,2019:160.
[8] 文必龍.基于數據集的數據交換技術研究[J].計算機技術,2011,11(29):7123.
[9] Libkin, Leonid. Data exchange and incomplete information. Proceedings of the twenty-fifth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems. ACM, 2006.
[10] 唐爽,等.面向多源數據的可擴展主題建模分析框架[J].計算機科學與探索,2019,13(5):742.
[11] Iverson, Kevin George, et al. Cryptographically enforced data exchange. U.S. Patent Application No. 15/956,143.
[12] 中國信息通信研究院云計算與大數據研究所.數據資產管理實踐白皮書(2.0版).中國信通院,2018.
[13] 中國信息通信研究院云計算與大數據研究所.數據資產管理實踐白皮書(3.0版).中國信通院,2019.
[14] 林烈青,等.企業(yè)數據中心的研究與設計.制造業(yè)自動化,2011,33(8):22.
[15] Ajileye,Temitope, Boris Motik, and Ian Horrocks. Datalog Materialisation in Distributed RDF Stores with Dynamic Data Exchange. arXiv preprint arXiv:1906.10261 (2019).
[16] He, Jindong, et al. Multidimensional Data Security Exchange Modeling and its Optimization Method. IOP Conference Series: Earth and Environmental Science. Vol. 252. No. 3. IOP Publishing, 2019.
[17] Marussig, Benjamin, and Thomas JR Hughes.A review of trimming in isogeometric analysis: challenges, data exchange and simulation aspects.Archives of computational methods in engineering 25.4 (2018): 1059-1127.
[18] Balsari, Satchit, et al. Reimagining Health Data Exchange: An application programming interface–enabled roadmap for India.Journal of medical Internet research 20.7 (2018): e10725.
[19] Chang, Sherry, et al. Data exchange and re-supply infrastructure for vehicles.U.S. Patent Application No. 16/146,573.
[20] Wu X D,Zhu X Q, Wu G Q,et al.Data mining with big data.IEEE Transactions on Knowledge & Data Engineering,2013,26(1):97.
[21] Jordan M I.Graphical Models.Statistical Science,2004,19(1):140.
[22] Fleischer, Bruce M., et al.High bandwidth low latency data exchange between processing elements. U.S. Patent No. 9,928,190. 27 Mar. 2018.
[23] Chakraborty, Saugata, Swapnel Shrivastava, and Sudip Mitra. "Automatic data exchange between peer devices." U.S. Patent No. 9,894,507. 13 Feb. 2018.
【通聯編輯:唐一東】