文/梁倩
華南理工大學(xué)面向智慧校園的數(shù)據(jù)集成平臺(tái)設(shè)計(jì)
文/梁倩
數(shù)據(jù)是智慧校園建設(shè)中的重要資產(chǎn),校園中需要管理的數(shù)據(jù)非常多,包括人事數(shù)據(jù)、學(xué)生數(shù)據(jù)、教務(wù)數(shù)據(jù)、科研數(shù)據(jù)、資產(chǎn)資源數(shù)據(jù)、財(cái)務(wù)數(shù)據(jù)等等。由于歷史原因,學(xué)校的IT支撐系統(tǒng)往往由各部門獨(dú)立建設(shè)、獨(dú)立部署,缺乏總體規(guī)劃和建設(shè)標(biāo)準(zhǔn),導(dǎo)致系統(tǒng)管理的數(shù)據(jù)分散,往往會(huì)形成數(shù)據(jù)孤島,從而導(dǎo)致教職工和學(xué)生辦事需在學(xué)校多個(gè)部門來回奔波,業(yè)務(wù)辦理效率低,用戶體驗(yàn)差,更無法為智慧校園建設(shè)提供數(shù)據(jù)支持。
智慧校園要求“以人為本”、“面向服務(wù)”,做好數(shù)據(jù)管理和服務(wù)是邁向智慧校園的必經(jīng)之路。智慧校園面向的服務(wù)應(yīng)該是能夠體現(xiàn)互聯(lián)網(wǎng)+時(shí)代特點(diǎn)的,依托于智能化終端和云平臺(tái)技術(shù)的一站式服務(wù)。一站式服務(wù)必然要求將學(xué)校多個(gè)二級(jí)業(yè)務(wù)部門的業(yè)務(wù)數(shù)據(jù)進(jìn)行共享,業(yè)務(wù)流程進(jìn)行整合。我們應(yīng)該利用好當(dāng)前校園IT建設(shè)中已經(jīng)積累下來的大量數(shù)據(jù)資源,使其成為智慧校園建設(shè)中的重要基礎(chǔ)資源。
因此,我們需要有一種具有無關(guān)平臺(tái),無關(guān)應(yīng)用,無關(guān)空間邏輯的一種數(shù)據(jù)集成和分配的系統(tǒng),來管理現(xiàn)有的數(shù)據(jù)調(diào)用需求,實(shí)現(xiàn)數(shù)據(jù)共享。
數(shù)據(jù)總線(DataBus)是集成各個(gè)原始數(shù)據(jù)庫(kù)并對(duì)外提供一種有規(guī)則的,可控的數(shù)據(jù)鏈接存儲(chǔ)服務(wù)。IBM和Oracle都提供了較為成熟的基于SOA架構(gòu)的數(shù)據(jù)總線解決方案,包括IBM的WebSphere Message Broker/MQ產(chǎn)品線、Oracle的Oracle Service Bus企業(yè)級(jí)服務(wù)總線、Oracle Data Integrator數(shù)據(jù)集成平臺(tái)等產(chǎn)品。
數(shù)據(jù)集成平臺(tái)可以看作是數(shù)據(jù)總線的擴(kuò)展,具有自己的數(shù)據(jù)庫(kù)和數(shù)據(jù)緩存機(jī)制,從各個(gè)數(shù)據(jù)源系統(tǒng)獲取數(shù)據(jù)副本后,供數(shù)據(jù)消費(fèi)方系統(tǒng)進(jìn)行查詢和使用。數(shù)據(jù)集成平臺(tái)還能提供配置、監(jiān)控的管理界面,提供數(shù)據(jù)安全保障等。
數(shù)據(jù)集成平臺(tái)能為智慧校園服務(wù)和決策提供重要的數(shù)據(jù)支撐,智慧校園是數(shù)據(jù)集成平臺(tái)建設(shè)的最根本的業(yè)務(wù)驅(qū)動(dòng)力。
數(shù)據(jù)集成平臺(tái)是獨(dú)立于業(yè)務(wù)系統(tǒng)的平臺(tái),不含任何業(yè)務(wù)邏輯,它負(fù)責(zé)接收來自各業(yè)務(wù)系統(tǒng)的數(shù)據(jù),并根據(jù)業(yè)務(wù)系統(tǒng)的合法的數(shù)據(jù)請(qǐng)求返回相應(yīng)的數(shù)據(jù)。業(yè)務(wù)系統(tǒng)之間不進(jìn)行數(shù)據(jù)交互,業(yè)務(wù)數(shù)據(jù)由數(shù)據(jù)生產(chǎn)者寫入數(shù)據(jù)集成平臺(tái),數(shù)據(jù)消費(fèi)者從數(shù)據(jù)集成平臺(tái)讀取相應(yīng)的數(shù)據(jù)。目前數(shù)據(jù)平臺(tái)建設(shè)的數(shù)據(jù)流向如圖1所示。

圖1 數(shù)據(jù)流向圖
數(shù)據(jù)集成平臺(tái)的數(shù)據(jù)共享遵循以下原則:
1.統(tǒng)一數(shù)據(jù)標(biāo)準(zhǔn),數(shù)據(jù)分域管理
數(shù)據(jù)集成平臺(tái)需要制訂統(tǒng)一數(shù)據(jù)標(biāo)準(zhǔn),凡是共享到該平臺(tái)的數(shù)據(jù)均需要遵循數(shù)據(jù)標(biāo)準(zhǔn);數(shù)據(jù)分成人事數(shù)據(jù)、學(xué)生數(shù)據(jù)、教務(wù)數(shù)據(jù)、科研數(shù)據(jù)、資產(chǎn)資源數(shù)據(jù)等。
2.共享數(shù)據(jù)只能由數(shù)據(jù)生產(chǎn)者修改
業(yè)務(wù)系統(tǒng)將數(shù)據(jù)共享到數(shù)據(jù)集成平臺(tái),記錄數(shù)據(jù)源系統(tǒng),非數(shù)據(jù)源系統(tǒng)只能讀取數(shù)據(jù),所有的數(shù)據(jù)變更操作必須由生產(chǎn)者即數(shù)據(jù)源系統(tǒng)進(jìn)行操作。當(dāng)數(shù)據(jù)使用方發(fā)現(xiàn)數(shù)據(jù)錯(cuò)誤時(shí),只能向數(shù)據(jù)源系統(tǒng)返回異常,由數(shù)據(jù)源系統(tǒng)進(jìn)行數(shù)據(jù)修改。
3.數(shù)據(jù)集成平臺(tái)不參與數(shù)據(jù)加密解密和數(shù)字簽名
如果存在消息傳輸過程的機(jī)密性需求,由業(yè)務(wù)系統(tǒng)對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行加密和解密,加密方式由數(shù)據(jù)的生產(chǎn)者和使用者協(xié)商確定,數(shù)據(jù)生產(chǎn)者對(duì)數(shù)據(jù)加密后寫入數(shù)據(jù)集成平臺(tái),數(shù)據(jù)使用者從數(shù)據(jù)集成平臺(tái)獲取密文后自行進(jìn)行解密。
基礎(chǔ)功能
包括系統(tǒng)管理、數(shù)據(jù)安全、配置管理、運(yùn)行監(jiān)控等功能模塊。
1. 系統(tǒng)管理,指用戶、角色、權(quán)限、菜單等基礎(chǔ)的管理功能。
2. 容災(zāi)備份,包括數(shù)據(jù)備份和災(zāi)難恢復(fù)機(jī)制。
3. 配置管理,主要包括接入系統(tǒng)配置、數(shù)據(jù)源配置、數(shù)據(jù)塊配置、數(shù)據(jù)對(duì)象配置、數(shù)據(jù)規(guī)則配置、數(shù)據(jù)拆分組合規(guī)則配置等。可根據(jù)數(shù)據(jù)處理平臺(tái)的特殊性,實(shí)現(xiàn)針對(duì)數(shù)據(jù)交換處理的靈活的配置功能。
4. 運(yùn)行監(jiān)控,提供數(shù)據(jù)服務(wù)從接收請(qǐng)求到最后返回的全過程監(jiān)控,包括請(qǐng)求鑒權(quán)、任務(wù)調(diào)度、數(shù)據(jù)處理等方面的詳細(xì)情況和日志需要能夠在界面上面查詢,并提供必要的維護(hù)手段。
展示層
展示層主要用于提供配置管理界面和運(yùn)行監(jiān)控界面。
為提供良好用戶體驗(yàn)的UI可以使用JSP為基礎(chǔ),用jQuery與AJAX技術(shù)實(shí)現(xiàn)異步局部刷新的交互能力。
數(shù)據(jù)服務(wù)接口層
數(shù)據(jù)服務(wù)接口層負(fù)責(zé)接收業(yè)務(wù)系統(tǒng)的服務(wù)調(diào)用請(qǐng)求及返回調(diào)用結(jié)果和相應(yīng)數(shù)據(jù)。
數(shù)據(jù)服務(wù)以HTTP方式提供,HTTP請(qǐng)求的內(nèi)容可以是XML或者JSON。
數(shù)據(jù)訪問層對(duì)底層數(shù)據(jù)存儲(chǔ)層進(jìn)行訪問封裝,提供易于編碼的API。數(shù)據(jù)訪問層使用技術(shù)包括JDBC、Apache Thrift、Spring Data、RPC。
訪問控制層
1. 任務(wù)調(diào)度
對(duì)數(shù)據(jù)請(qǐng)求生成任務(wù)管理,進(jìn)行任務(wù)調(diào)度,通過優(yōu)先等級(jí)控制、并行任務(wù)處理、定時(shí)處理等機(jī)制使數(shù)據(jù)服務(wù)請(qǐng)求的處理有序進(jìn)行。
2. 請(qǐng)求鑒權(quán)
服務(wù)消費(fèi)者在通過數(shù)據(jù)集成平臺(tái)訪問數(shù)據(jù)時(shí),數(shù)據(jù)集成平臺(tái)要先對(duì)請(qǐng)求服務(wù)進(jìn)行訪問鑒權(quán)控制,數(shù)據(jù)集成平臺(tái)只會(huì)對(duì)通過訪問鑒權(quán)的請(qǐng)求進(jìn)行處理。
請(qǐng)求鑒權(quán)包括身份認(rèn)證、系統(tǒng)級(jí)服務(wù)鑒權(quán)兩部分內(nèi)容。
通過服務(wù)消費(fèi)者的IP地址或認(rèn)證碼的比對(duì)等進(jìn)行認(rèn)證來證實(shí)服務(wù)消費(fèi)者的身份,對(duì)于不滿足身份認(rèn)證的請(qǐng)求予以拒絕。
系統(tǒng)級(jí)服務(wù)鑒權(quán),是指對(duì)通過認(rèn)證的服務(wù)消費(fèi)者進(jìn)行訪問數(shù)據(jù)對(duì)象授權(quán)的過程,通過鑒權(quán)確定服務(wù)消費(fèi)者可以對(duì)哪些數(shù)據(jù)對(duì)象做相應(yīng)的操作。
系統(tǒng)級(jí)鑒權(quán)的前提是數(shù)據(jù)集成平臺(tái)通過服務(wù)鑒權(quán)配置的功能配置并保存了服務(wù)商與數(shù)據(jù)集成平臺(tái)定義的數(shù)據(jù)對(duì)象的訪問關(guān)系,見表1。

表1
系統(tǒng)級(jí)鑒權(quán)根據(jù)訪問數(shù)據(jù)對(duì)象的范圍來鑒權(quán),找到對(duì)應(yīng)的ROWKEY記錄則可判定系統(tǒng)級(jí)鑒權(quán)即通過。譬如,科研系統(tǒng)請(qǐng)求訪問讀取人事數(shù)據(jù)域數(shù)據(jù),數(shù)據(jù)集成平臺(tái)拿配置數(shù)據(jù)1進(jìn)行鑒權(quán),科研系統(tǒng)對(duì)人事數(shù)據(jù)域數(shù)據(jù)有讀訪問權(quán)限,因此鑒權(quán)通過;若人事系統(tǒng)請(qǐng)求修改資產(chǎn)資源域數(shù)據(jù),在鑒權(quán)表中找不到對(duì)應(yīng)的鑒權(quán)配置,則請(qǐng)求鑒權(quán)失敗,該次訪問請(qǐng)求被拒絕。
數(shù)據(jù)處理層
1. 數(shù)據(jù)校驗(yàn)
數(shù)據(jù)集成平臺(tái)訪問URI識(shí)別請(qǐng)求類型,當(dāng)請(qǐng)求為數(shù)據(jù)對(duì)象建立或者數(shù)據(jù)新增、修改的時(shí)候?yàn)榱吮WC數(shù)據(jù)的有效性,必須對(duì)請(qǐng)求所攜帶的數(shù)據(jù)內(nèi)容進(jìn)行校驗(yàn)。數(shù)據(jù)校驗(yàn)是通過校驗(yàn)規(guī)則配置在數(shù)據(jù)對(duì)象和數(shù)據(jù)塊上,當(dāng)服務(wù)請(qǐng)求的目標(biāo)是配置了校驗(yàn)規(guī)則的數(shù)據(jù)對(duì)象或者數(shù)據(jù)塊時(shí),數(shù)據(jù)集成平臺(tái)就需要按照配置的校驗(yàn)規(guī)則執(zhí)行校驗(yàn),在校驗(yàn)失敗時(shí)停止數(shù)據(jù)操作并返回錯(cuò)誤信息。
2. 數(shù)據(jù)適配
數(shù)據(jù)集成平臺(tái)支持對(duì)數(shù)據(jù)內(nèi)容的適配能力,數(shù)據(jù)適配包括:數(shù)據(jù)豐富、數(shù)據(jù)裁剪、數(shù)據(jù)映射、數(shù)據(jù)變換。
(1) 數(shù)據(jù)豐富:數(shù)據(jù)豐富是指數(shù)據(jù)集成平臺(tái)通過配置的規(guī)則,將業(yè)務(wù)需要的附加信息添加到已有的報(bào)文或者數(shù)據(jù)塊實(shí)例中。
(2) 數(shù)據(jù)裁剪:在實(shí)際數(shù)據(jù)處理過程中時(shí)常需要把一個(gè)大的報(bào)文或者數(shù)據(jù)塊實(shí)例進(jìn)行裁剪,去掉一些不必要的信息。以減少存儲(chǔ)量和數(shù)據(jù)處理量。
(3) 數(shù)據(jù)映射:數(shù)據(jù)映射是指將數(shù)據(jù)編碼按照映射規(guī)則從一個(gè)集合映射到另外一個(gè)集合中。比如性別字段從“m”映射到“男”,從“f”映射到“女”。
(4) 數(shù)據(jù)變換:數(shù)據(jù)變換是指通過配置的運(yùn)算得出數(shù)據(jù)的值。運(yùn)算可以包含四則運(yùn)算、邏輯運(yùn)算、腳本運(yùn)算等。
3. 數(shù)據(jù)組包
數(shù)據(jù)集成平臺(tái)可根據(jù)接口要求,將多個(gè)數(shù)據(jù)塊或數(shù)據(jù)項(xiàng)按接口包文的格式要求進(jìn)行組合。
數(shù)據(jù)訪問層
數(shù)據(jù)訪問層實(shí)現(xiàn)對(duì)數(shù)據(jù)的安全、高效、準(zhǔn)確地訪問。
數(shù)據(jù)訪問層對(duì)底層數(shù)據(jù)存儲(chǔ)層進(jìn)行訪問封裝,提供易于編碼的API。數(shù)據(jù)訪問層技術(shù)包括JDBC、Apache Thrift、Spring Data、RPC。
數(shù)據(jù)存儲(chǔ)層
數(shù)據(jù)存儲(chǔ)層是數(shù)據(jù)平臺(tái)的基礎(chǔ)設(shè)施層。數(shù)據(jù)存儲(chǔ)分為一級(jí)緩存、二級(jí)緩存和數(shù)據(jù)庫(kù),分別實(shí)現(xiàn)高速存儲(chǔ)、快速存儲(chǔ)和數(shù)據(jù)持久,平臺(tái)中的數(shù)據(jù)根據(jù)訪問時(shí)效要求和訪問頻率以及系統(tǒng)內(nèi)存使用情況進(jìn)行存儲(chǔ)。一級(jí)緩存采用Redis,二級(jí)緩存采用HBase。
數(shù)據(jù)集成平臺(tái)根據(jù)各種數(shù)據(jù)的特點(diǎn)充分利用各種數(shù)據(jù)庫(kù)的特性以達(dá)到最優(yōu)的存儲(chǔ)效果和讀取效果。實(shí)時(shí)性要求高的,可以進(jìn)行離散的數(shù)據(jù)盡量放在Redis或在HBase中,對(duì)于關(guān)系型、非離散的數(shù)據(jù),盡量放在HBase或者關(guān)系型數(shù)據(jù)庫(kù)中。
數(shù)據(jù)集成平臺(tái)對(duì)于需要快速開通且對(duì)數(shù)據(jù)依賴較大的業(yè)務(wù)流程能起到較好的效果,在智慧校園建設(shè)中已經(jīng)開始了各項(xiàng)實(shí)踐。通過建設(shè)面向智慧校園大數(shù)據(jù)業(yè)務(wù)的數(shù)據(jù)集成平臺(tái),基于云平臺(tái)技術(shù),著力于校園業(yè)務(wù)辦理所需的數(shù)據(jù)共享管理,可打通相關(guān)IT系統(tǒng)的數(shù)據(jù),提高業(yè)務(wù)辦理效率,縮短服務(wù)時(shí)限,提升服務(wù)質(zhì)量。
實(shí)際上,此平臺(tái)由于與業(yè)務(wù)邏輯無關(guān),因此它可快速擴(kuò)展到其他企業(yè)級(jí)行業(yè)應(yīng)用。另一方面,數(shù)據(jù)集成平臺(tái)還可應(yīng)用于統(tǒng)計(jì)分析,并向大數(shù)據(jù)應(yīng)用的方向進(jìn)行擴(kuò)展。
(作者單位為華南理工大學(xué)信息網(wǎng)絡(luò)工程研究中心)