文/王歡 刁喆
隨著高校信息化建設(shè)進(jìn)入深水區(qū),如何整合不同來源的數(shù)據(jù)并在統(tǒng)一平臺上使用,成為當(dāng)前高校大數(shù)據(jù)管理平臺建設(shè)面臨的重大挑戰(zhàn)。文章提出了一種基于消息傳遞的異構(gòu)信息接入及標(biāo)準(zhǔn)化處理的方法和相應(yīng)的軟件架構(gòu)。
數(shù)據(jù)集成是將互相關(guān)聯(lián)的分布式異構(gòu)數(shù)據(jù)源集成到一起,使用戶能夠以透明的方式訪問這些數(shù)據(jù)源。異構(gòu)數(shù)據(jù)源主要有自治性、分布性和異構(gòu)性三個特征。目前,對異構(gòu)數(shù)據(jù)資源進(jìn)行集成和管理的方法主要有模式集成和數(shù)據(jù)復(fù)制。
模式集成是人們最早采用的數(shù)據(jù)集成方法。其基本思想是,在構(gòu)建集成系統(tǒng)時將各數(shù)據(jù)源的數(shù)據(jù)視圖集成為全局模式,使用戶能夠按照全局模式透明地訪問各數(shù)據(jù)源的數(shù)據(jù)。全局模式描述了數(shù)據(jù)源共享數(shù)據(jù)的結(jié)構(gòu)、語義及操作等。用戶直接在全局模式的基礎(chǔ)上提交請求,由數(shù)據(jù)集成系統(tǒng)處理這些請求,轉(zhuǎn)換成各個數(shù)據(jù)源在本地數(shù)據(jù)視圖基礎(chǔ)上能夠執(zhí)行的請求。模式集成方法的特點(diǎn)是直接為用戶提供透明的數(shù)據(jù)訪問。由于用戶使用的全局模式是虛擬的數(shù)據(jù)源視圖,一些學(xué)者也把模式集成方法稱作虛擬視圖集成方法。典型的模式集成方法包括聯(lián)邦數(shù)據(jù)庫和中間件集成。
數(shù)據(jù)復(fù)制是指將各個數(shù)據(jù)源的數(shù)據(jù)復(fù)制到與其相關(guān)的其它數(shù)據(jù)源上,并維護(hù)數(shù)據(jù)源整體上的一致性、提高信息共享利用的效率,也被稱為實體化方法。最常見的數(shù)據(jù)復(fù)制方法就是數(shù)據(jù)倉庫法。其體系結(jié)構(gòu)可以劃分為客戶端、數(shù)據(jù)倉庫和數(shù)據(jù)源三部分。數(shù)據(jù)倉庫需要有效的數(shù)據(jù)加載和增量式更新維護(hù)等技術(shù)。
高校大數(shù)據(jù)平臺一般由數(shù)據(jù)源、數(shù)據(jù)層、應(yīng)用層三層架構(gòu)組成。數(shù)據(jù)源層全面感知學(xué)校的人員、設(shè)備、資源及各業(yè)務(wù)系統(tǒng)產(chǎn)生的數(shù)據(jù)信息。數(shù)據(jù)層將通過各類網(wǎng)絡(luò)采集來的異構(gòu)信息進(jìn)行全面集成和匯聚。應(yīng)用層主要為用戶提供個性化的服務(wù),如教學(xué)、科研、管理等各類應(yīng)用,實現(xiàn)輔助決策、按需服務(wù)。據(jù)圖1可知,數(shù)據(jù)接入及標(biāo)準(zhǔn)化系統(tǒng)位于數(shù)據(jù)層,主要實現(xiàn)各類異構(gòu)系統(tǒng)數(shù)據(jù)適配、轉(zhuǎn)換、共享等工作,起到前方的異構(gòu)系統(tǒng)與后方數(shù)據(jù)匯聚平臺聯(lián)通的橋梁作用,提供給上層用戶透明的訪問和使用,仿佛在訪問一個數(shù)據(jù)源一樣,為學(xué)校的數(shù)據(jù)治理、分析決策及數(shù)據(jù)挖掘提供數(shù)據(jù)支撐。
圖 1 面向高校的異構(gòu)系統(tǒng)集成架構(gòu)
數(shù)據(jù)接入及標(biāo)準(zhǔn)化系統(tǒng)由通用數(shù)據(jù)采集適配器和數(shù)據(jù)適配中間件構(gòu)成,主要實現(xiàn)消息格式適配、消息數(shù)據(jù)格式轉(zhuǎn)換、消息傳輸功能。其功能描述如下:
消息格式適配,通過通用數(shù)據(jù)采集適配器對用戶提供協(xié)議適配界面,通過該界面,設(shè)置需傳遞消息的數(shù)據(jù)格式,便于適配器進(jìn)行解析及轉(zhuǎn)換。消息數(shù)據(jù)格式轉(zhuǎn)換,主要將獲取的消息內(nèi)容轉(zhuǎn)換成標(biāo)準(zhǔn)格式的數(shù)據(jù)形式。消息傳輸,與異構(gòu)系統(tǒng)建立消息通道,獲取該系統(tǒng)的消息內(nèi)容,并分發(fā)給分布式數(shù)據(jù)總線。
通用數(shù)據(jù)采集適配器為用戶提供界面化的工具,實現(xiàn)了對數(shù)據(jù)采集端點(diǎn)的有效配置。數(shù)據(jù)端點(diǎn)配置包括數(shù)據(jù)源(數(shù)據(jù)來源)配置和數(shù)據(jù)訂閱者(數(shù)據(jù)去向)配置。通用數(shù)據(jù)采集適配器實現(xiàn)數(shù)據(jù)的接入轉(zhuǎn)發(fā)、狀態(tài)監(jiān)測、信息路由、鏈路管理等。數(shù)據(jù)適配中間件為用戶提供界面化操作,實現(xiàn)轉(zhuǎn)換規(guī)則配置及輸入數(shù)據(jù)的解析及格式化。轉(zhuǎn)換規(guī)則配置包括數(shù)據(jù)源的數(shù)據(jù)格式配置,數(shù)據(jù)訂閱者的數(shù)據(jù)格式配置,以及它們之間的數(shù)據(jù)轉(zhuǎn)換規(guī)則配置。
通用數(shù)據(jù)采集適配器基于管道或過濾器架構(gòu)設(shè)計,包括通用數(shù)據(jù)采集適配配置工具及通用數(shù)據(jù)采集適配服務(wù)。總體設(shè)計如圖2所示。
圖 2 數(shù)據(jù)采集適配器總體設(shè)計
數(shù)據(jù)采集適配器主要接收數(shù)據(jù)生產(chǎn)者發(fā)送過來的數(shù)據(jù)信息,為每一個外部系統(tǒng)分配一條管道,通過不同的消息通道處理不同種類的信息,采用推模式對消息進(jìn)行處理。將轉(zhuǎn)換為標(biāo)準(zhǔn)格式的信息分發(fā)給數(shù)據(jù)訂閱者(包括數(shù)據(jù)庫中間件)。
信息路由模塊根據(jù)消息類型完成消息的路由。數(shù)據(jù)分發(fā)子模塊將消息轉(zhuǎn)發(fā)到相應(yīng)的訂閱者。鏈路管理模塊管理鏈路的連接、關(guān)閉、異常信息,在生產(chǎn)者與訂閱者之間建立連接關(guān)系。異常信息處理模塊處理異常信息。數(shù)據(jù)適配接口模塊進(jìn)行消息聚合及分解,同時調(diào)用數(shù)據(jù)適配中間件進(jìn)行消息處理。數(shù)據(jù)映射關(guān)系管理模塊管理信息生產(chǎn)者和消費(fèi)者通道。運(yùn)行狀態(tài)監(jiān)控模塊查看各個通道狀態(tài)信息,并統(tǒng)計生產(chǎn)者和訂閱者的數(shù)量。
通用數(shù)據(jù)采集適配配置工具主要包括數(shù)據(jù)源配置、訂閱者配置、運(yùn)行狀態(tài)監(jiān)控、日志查看及系統(tǒng)數(shù)據(jù)審查等功能。
數(shù)據(jù)采集適配服務(wù)對業(yè)務(wù)數(shù)據(jù)的處理包括數(shù)據(jù)接收、格式化及分發(fā)。根據(jù)通用數(shù)據(jù)采集適配器的業(yè)務(wù)數(shù)據(jù)處理配置,包括數(shù)據(jù)直接透傳、異構(gòu)數(shù)據(jù)標(biāo)準(zhǔn)化供內(nèi)部訂閱者進(jìn)行訂閱、標(biāo)準(zhǔn)數(shù)據(jù)個性化供特定訂閱者進(jìn)行訂閱。
通信組件與數(shù)據(jù)生產(chǎn)者、數(shù)據(jù)訂閱者建立通信鏈路,保存識別該鏈路的ID。信息路由子模塊接收到通信組件發(fā)送過來的數(shù)據(jù)信息,并將信息分發(fā)到各個子模塊。如果出現(xiàn)Accept、Connect、鏈路Error、心跳等,就將該消息發(fā)送到鏈路管理子模塊。業(yè)務(wù)數(shù)據(jù)消息如果未經(jīng)轉(zhuǎn)換就路由到數(shù)據(jù)適配接口子模塊,由適配接口子模塊對消息進(jìn)行分包及聚合,獲取消息的數(shù)據(jù)結(jié)構(gòu),并調(diào)用數(shù)據(jù)適配中間件完成數(shù)據(jù)解析,將結(jié)果返回給消息路由子模塊。數(shù)據(jù)分發(fā)子模塊接收到信息路由子模塊發(fā)送過來的數(shù)據(jù)信息,通過向數(shù)據(jù)映射關(guān)系管理子模塊獲取訂閱者信息,并將發(fā)送任務(wù)發(fā)送到通信組件,由通信組件完成信息的分發(fā)。
數(shù)據(jù)適配中間件采用責(zé)任鏈設(shè)計模式完成該中間件總體構(gòu)建。消息傳輸系統(tǒng)按照層設(shè)計模式分為四個層次,包括消息傳輸、數(shù)據(jù)表示、數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)適配中間件實現(xiàn)后三個層次的消息轉(zhuǎn)換。按照分層的設(shè)計模式理念,層與層之間是相互不干擾,只是通過接口實現(xiàn)層與層之間的通信,包括中間件配置工具及數(shù)據(jù)適配服務(wù)。中間件配置工具為用戶提供界面化操作,數(shù)據(jù)適配服務(wù)負(fù)責(zé)對輸入的數(shù)據(jù)進(jìn)行解析并格式化。
數(shù)據(jù)適配中間件配置工具組件啟動后通過添加或修改數(shù)據(jù)格式,輸入相應(yīng)格式數(shù)據(jù)的屬性參數(shù),系統(tǒng)輸出對應(yīng)XML格式的配置文件。數(shù)據(jù)適配服務(wù)讀取相應(yīng)的配置文件,包括數(shù)據(jù)格式、類型、轉(zhuǎn)換規(guī)則,建立規(guī)則責(zé)任鏈,對讀入的數(shù)據(jù)進(jìn)行解析獲取數(shù)據(jù)類型,并轉(zhuǎn)換為新的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)解析支持每秒500條以上。
本文根據(jù)校園應(yīng)用系統(tǒng)中數(shù)據(jù)資源的結(jié)構(gòu)特點(diǎn)提出了一個靈活性強(qiáng)、易擴(kuò)展的數(shù)據(jù)接入及標(biāo)準(zhǔn)化系統(tǒng),以實現(xiàn)異構(gòu)數(shù)據(jù)源的集成,為高校大數(shù)據(jù)平臺的建設(shè)打下基礎(chǔ)。通過異構(gòu)數(shù)據(jù)接入及標(biāo)準(zhǔn)化系統(tǒng),將一卡通消費(fèi)數(shù)據(jù)、門禁刷卡統(tǒng)計數(shù)據(jù)、教學(xué)科研數(shù)據(jù)等標(biāo)準(zhǔn)化,為各類應(yīng)用系統(tǒng)進(jìn)行分析研判提供了統(tǒng)一的訪問接口和數(shù)據(jù)標(biāo)準(zhǔn)。
該系統(tǒng)的優(yōu)勢在于,可以使用可定制格式頻繁的、可靠的、實時的傳輸數(shù)據(jù),并保證了源應(yīng)用與目的應(yīng)用的松耦合。該系統(tǒng)在百兆網(wǎng)速內(nèi),高網(wǎng)絡(luò)負(fù)載下可穩(wěn)定運(yùn)行,支持二進(jìn)制、文本數(shù)據(jù)格式之間的相互轉(zhuǎn)換,對相應(yīng)數(shù)據(jù)字段進(jìn)行標(biāo)準(zhǔn)化。支持二進(jìn)制、文本數(shù)據(jù)格式配置,支持TCP、UDP網(wǎng)絡(luò)傳輸協(xié)議。兼容各種網(wǎng)絡(luò)傳輸采集(WebService、HTTP、TCP、UDP、RS232/485),兼容關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫??梢愿鶕?jù)需要,擴(kuò)展更多的數(shù)據(jù)格式及標(biāo)準(zhǔn)化函數(shù)。