主題數(shù)據(jù)平臺(tái)分析論文

時(shí)間:2022-11-04 03:52:00

導(dǎo)語:主題數(shù)據(jù)平臺(tái)分析論文一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

主題數(shù)據(jù)平臺(tái)分析論文

摘要本文在解決遠(yuǎn)程開放教育系統(tǒng)的信息孤島問題的基礎(chǔ)上,總結(jié)出了一個(gè)通用的主題數(shù)據(jù)平臺(tái)架構(gòu)。并進(jìn)一步針對它在不同的環(huán)境、采用不同的策略,給出了實(shí)現(xiàn)框架。

關(guān)鍵詞SOA;數(shù)據(jù)平臺(tái);信息暴露

1引言

本課題來源于中央廣播電視大學(xué)教務(wù)管理系統(tǒng)的后續(xù)開發(fā)。隨著中央電大在開放式教育思想指導(dǎo)下的教學(xué)改革的展開,系統(tǒng)業(yè)務(wù)量急劇猛增,原有的教學(xué)管理系統(tǒng)已經(jīng)逐漸的滿足不了應(yīng)用需求。所以新一代教學(xué)管理系統(tǒng)正在開發(fā)中,同時(shí)由于教育業(yè)務(wù)本身的連貫性,導(dǎo)致了新舊系統(tǒng)并行的局面出現(xiàn)。但是由于新舊系統(tǒng)間缺少關(guān)聯(lián)和通信以及必要的規(guī)范,導(dǎo)致信息“孤島”現(xiàn)象嚴(yán)重,而舊系統(tǒng)又恰恰是電大不可放棄的重要投資。同時(shí)由于各個(gè)系統(tǒng)集成度不足,運(yùn)行業(yè)務(wù)的數(shù)據(jù)庫和應(yīng)用程序也是在不同時(shí)期部署的,它們來自不同的供應(yīng)商,使用各不相同的定制技術(shù)。從而面臨著如何構(gòu)建一個(gè)強(qiáng)壯的、可靠的,將新舊系統(tǒng)中的分散功能組織成可共用的標(biāo)準(zhǔn)服務(wù)來滿足業(yè)務(wù)要求的平臺(tái),成為我們需要研究的難點(diǎn)。

通過實(shí)踐我們可以發(fā)現(xiàn),應(yīng)用程序始終都與數(shù)據(jù)有關(guān),企業(yè)級的服務(wù)程序更是如此。今天,企業(yè)應(yīng)用程序開發(fā)中有高達(dá)70%的時(shí)間都是用于訪問不同的數(shù)據(jù)。因此,對企業(yè)信息和數(shù)據(jù)按業(yè)務(wù)邏輯進(jìn)行梳理和抽取,形成企業(yè)數(shù)據(jù)的統(tǒng)一表現(xiàn)實(shí)體,該實(shí)體可以在全企業(yè)范圍內(nèi)得到一致性的使用,是邁向面向服務(wù)的體系架構(gòu)的第一步。因此我們提出了主題數(shù)據(jù)平臺(tái)的概念。

2主題數(shù)據(jù)平臺(tái)結(jié)構(gòu)

主題數(shù)據(jù)平臺(tái)結(jié)構(gòu)見圖1。主題數(shù)據(jù)平臺(tái)由:主題數(shù)據(jù)服務(wù)層、數(shù)據(jù)處理構(gòu)件、數(shù)據(jù)處理管道、適配器構(gòu)件組成。

圖1數(shù)據(jù)主題平臺(tái)的設(shè)計(jì)構(gòu)架

主題數(shù)據(jù)服務(wù)層:是底層接口與上層應(yīng)用的中間層,用于屏蔽底層接口,向上提供統(tǒng)一的服務(wù)。有兩種角色:一種角色是數(shù)據(jù)中轉(zhuǎn)站,用于保存臨時(shí)數(shù)據(jù),并等數(shù)據(jù)傳輸完整之后,進(jìn)一步對數(shù)據(jù)進(jìn)行分析和處理;另一種角色是主題數(shù)據(jù)服務(wù)層角色,用于保存數(shù)據(jù)處理的最終結(jié)果:主題數(shù)據(jù)。

數(shù)據(jù)處理構(gòu)件:是數(shù)據(jù)處理的基礎(chǔ)構(gòu)件,每一個(gè)數(shù)據(jù)處理構(gòu)件都封裝了一部分相對獨(dú)立的數(shù)據(jù)處理邏輯,包括刪除不需要的數(shù)據(jù)、補(bǔ)充缺少的數(shù)據(jù)、對數(shù)據(jù)進(jìn)行簡單的四則運(yùn)算、代碼轉(zhuǎn)換和按主題建立新的數(shù)據(jù)結(jié)構(gòu)等功能。

數(shù)據(jù)處理管道:是由多個(gè)數(shù)據(jù)處理構(gòu)件組成,它合理的組合和安排這些數(shù)據(jù)處理構(gòu)件,從而完成復(fù)雜的數(shù)據(jù)處理邏輯。

適配器構(gòu)件:用于實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫與數(shù)據(jù)處理管道的無縫連接,從而能夠方便的從異構(gòu)數(shù)據(jù)庫中抽取或插入數(shù)據(jù)。

3基于局域網(wǎng)的主題數(shù)據(jù)平臺(tái)的實(shí)現(xiàn)方案

基于局域網(wǎng)的主題數(shù)據(jù)平臺(tái)的實(shí)現(xiàn)方案見圖2。

圖2基于局域網(wǎng)的數(shù)據(jù)主題平臺(tái)的實(shí)現(xiàn)方案

由于局域網(wǎng)有著:網(wǎng)絡(luò)傳輸速度快、網(wǎng)絡(luò)故障率低、即時(shí)性強(qiáng)、服務(wù)器固定等優(yōu)點(diǎn)。所以我們采用:DTS技術(shù)、Nmake技術(shù)、臨時(shí)庫等技術(shù)來解決基于局域網(wǎng)的主題數(shù)據(jù)平臺(tái)的實(shí)現(xiàn)問題。

3.1DTS技術(shù)的應(yīng)用

采用DTS技術(shù)可以實(shí)現(xiàn)在局域網(wǎng)中從異構(gòu)的數(shù)據(jù)庫中提取或插入數(shù)據(jù),并能對數(shù)據(jù)進(jìn)行簡單的邏輯操作。它可以把相對獨(dú)立的數(shù)據(jù)處理邏輯封裝在對應(yīng)的DTS包中,從而把公用的數(shù)據(jù)處理邏輯從數(shù)據(jù)處理業(yè)務(wù)中提煉了出來,以備復(fù)用。并提供了工作流支持,保證了DTS包中數(shù)據(jù)處理業(yè)務(wù)的事務(wù)性和完整性。

⑴適配器構(gòu)件

適配器構(gòu)件只是一個(gè)數(shù)據(jù)處理通道和異構(gòu)數(shù)據(jù)源的連接器,它負(fù)責(zé)從異構(gòu)數(shù)據(jù)源中抽取或者插入數(shù)據(jù)并將數(shù)據(jù)轉(zhuǎn)移到數(shù)據(jù)處理通道中。每一個(gè)數(shù)據(jù)源對應(yīng)一個(gè)或多個(gè)適配器構(gòu)件,每個(gè)適配器構(gòu)件包含在對應(yīng)的DTS包中。整個(gè)DTS包中包含一個(gè)原數(shù)據(jù)源、一個(gè)目標(biāo)數(shù)據(jù)源和一個(gè)數(shù)據(jù)對應(yīng)轉(zhuǎn)換任務(wù)。將整個(gè)數(shù)據(jù)轉(zhuǎn)換邏輯封裝為一個(gè)構(gòu)件,有利于適配器構(gòu)件的復(fù)用。

⑵數(shù)據(jù)處理構(gòu)件

數(shù)據(jù)處理構(gòu)件封裝了數(shù)據(jù)處理邏輯,這些處理邏輯由數(shù)據(jù)業(yè)務(wù)驅(qū)動(dòng),包括刪除不需要的數(shù)據(jù)、從不同的數(shù)據(jù)來源補(bǔ)齊缺少的數(shù)據(jù)、對數(shù)據(jù)進(jìn)行簡單的四則運(yùn)算、不同信息系統(tǒng)之間的代碼轉(zhuǎn)換等功能。數(shù)據(jù)處理邏輯按其獨(dú)立性和公用性被封裝在不同的DTS包中,增強(qiáng)了數(shù)據(jù)處理構(gòu)件的可變性和復(fù)用性。DTS包提供了驗(yàn)證機(jī)制這既可以保證數(shù)據(jù)處理邏輯的正確性,又可以保證數(shù)據(jù)處理邏輯的事務(wù)性。DTS包內(nèi)包含工作流,可以針對不同的情況做出不同的處理,極大地提高了數(shù)據(jù)處理構(gòu)件的復(fù)用性,并可對業(yè)務(wù)性錯(cuò)誤做出必要的處理。

3.2Nmake技術(shù)的應(yīng)用

Microsoft程序維護(hù)實(shí)用工具Nmake是一個(gè)32位基于說明文件中包含的命令生成項(xiàng)目的工具。NMake具有豐富的選項(xiàng),可以完成復(fù)雜的處理操作,并有樹狀文件任務(wù)處理結(jié)構(gòu),并且易于編寫,結(jié)構(gòu)清晰,對于實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)處理業(yè)務(wù)提供了很大的方便。采用Nmake技術(shù)可以有效的將結(jié)構(gòu)松散的、相對獨(dú)立的數(shù)據(jù)處理構(gòu)件聚合起來,從而能夠處理復(fù)雜的數(shù)據(jù)處理業(yè)務(wù)。

數(shù)據(jù)處理管道

數(shù)據(jù)處理管道是將數(shù)據(jù)處理構(gòu)件有機(jī)的組合起來并封裝好,對主題數(shù)據(jù)服務(wù)層提供統(tǒng)一的訪問接口,從而把數(shù)據(jù)服務(wù)邏輯與數(shù)據(jù)處理邏輯分割開來。數(shù)據(jù)處理管道可以極大地提高數(shù)據(jù)處理構(gòu)件的復(fù)用率,并把復(fù)雜的數(shù)據(jù)處理邏輯從數(shù)據(jù)處理構(gòu)件中抽離了出來,當(dāng)數(shù)據(jù)處理業(yè)務(wù)變動(dòng)的時(shí)候不需要修改構(gòu)件只要按著業(yè)務(wù)需求,重新組織構(gòu)件即可解決問題。Nmake可以按著業(yè)務(wù)需求輕松地把數(shù)據(jù)處理構(gòu)件組合起來形成帶有業(yè)務(wù)邏輯關(guān)系的數(shù)據(jù)處理管道,并且Nmake提供了業(yè)務(wù)流功能,針對不同的業(yè)務(wù)需求可以提供不同的業(yè)務(wù)流支持,從而極大的提高業(yè)務(wù)本身的靈活性。當(dāng)業(yè)務(wù)需求變動(dòng)時(shí),Nmake可以通過重新組合數(shù)據(jù)處理構(gòu)件來完成業(yè)務(wù),而不需修改或者重新編寫數(shù)據(jù)處理構(gòu)件,從而提高數(shù)據(jù)處理構(gòu)件的可復(fù)用性。

4基于互聯(lián)網(wǎng)的主題數(shù)據(jù)平臺(tái)的解決方案

基于互聯(lián)網(wǎng)的主題數(shù)據(jù)平臺(tái)面臨的主要問題是如何通過遠(yuǎn)程數(shù)據(jù)傳輸將互聯(lián)網(wǎng)的異地、異構(gòu)的數(shù)據(jù)源中的數(shù)據(jù)傳輸?shù)街黝}數(shù)據(jù)服務(wù)層中。數(shù)據(jù)一旦進(jìn)入主題數(shù)據(jù)平臺(tái)的主題數(shù)據(jù)服務(wù)層,就可以使用和基于局域網(wǎng)的解決方案相同的技術(shù)對數(shù)據(jù)進(jìn)行整理。通過遠(yuǎn)程數(shù)據(jù)傳輸將互聯(lián)網(wǎng)的異構(gòu)數(shù)據(jù)傳輸?shù)街黝}數(shù)據(jù)服務(wù)層之后的功能與基于局域網(wǎng)的數(shù)據(jù)轉(zhuǎn)換接口的功能相同。

中央廣播電視大學(xué)遠(yuǎn)程開放教育的教務(wù)管理系統(tǒng)是一個(gè)跨越44個(gè)省面向全國的開放式教育體系結(jié)構(gòu)。該系統(tǒng)包含四級平臺(tái)、五種角色,由于其獨(dú)特性中央電大教務(wù)管理系統(tǒng)基于互聯(lián)網(wǎng)的主題數(shù)據(jù)平臺(tái)的搭建有如下4方面需求:

1)中央電大各個(gè)系統(tǒng)之間、中央電大教務(wù)管理系統(tǒng)各級平臺(tái)之間需要能進(jìn)行靈活的數(shù)據(jù)交換。

2)每次交換數(shù)據(jù)的數(shù)據(jù)量可能達(dá)到GB級。

3)部分?jǐn)?shù)據(jù)交換有實(shí)時(shí)性要求,在規(guī)定時(shí)間內(nèi)客戶端必須收到響應(yīng),不能因?yàn)閿?shù)據(jù)傳輸而推遲業(yè)務(wù)進(jìn)度。

4)需要在網(wǎng)絡(luò)狀況不穩(wěn)定的情況下完成數(shù)據(jù)交換,因?yàn)橹醒腚姶蠼虅?wù)系統(tǒng)是跨越44個(gè)省的開放式教育系統(tǒng),所以中央電大需要同44所省電大交換數(shù)據(jù),在這種情況下網(wǎng)絡(luò)狀況不可預(yù)知、穩(wěn)定性難以保證,但傳輸仍然需要進(jìn)行。

4.1SOAP協(xié)議與Hessian協(xié)議的比較

目前,Web服務(wù)技術(shù)是解決異構(gòu)平臺(tái)系統(tǒng)的集成及互操作問題的主流技術(shù)[1]。它所基于的XML已經(jīng)是Internet上交換數(shù)據(jù)的實(shí)際標(biāo)準(zhǔn),基于通用的進(jìn)程間通信協(xié)議和網(wǎng)絡(luò)傳輸協(xié)議屏蔽平臺(tái)的差異,可以將各種異構(gòu)環(huán)境下的通信及調(diào)用請求均統(tǒng)一為標(biāo)準(zhǔn)的Web服務(wù)格式[3]。

但是由于SOAP協(xié)議的結(jié)構(gòu)問題會(huì)使封裝的數(shù)據(jù)膨脹數(shù)倍。當(dāng)傳輸數(shù)據(jù)量比較小時(shí),問題不是那么明顯,但是當(dāng)進(jìn)行大數(shù)據(jù)量傳輸時(shí)就會(huì)導(dǎo)致Web服務(wù)的傳輸性能在實(shí)際運(yùn)用中降低了很多。這對于經(jīng)常有大數(shù)據(jù)量數(shù)據(jù)交換的應(yīng)用系統(tǒng)來說是不適用的。

CauchoTechnology公司制定的HBWSP(HessianBinaryWebServiceProtocol)[2]在這方面的有所突破。Hessian協(xié)議和webservice常用的SOAP協(xié)議類似,也是將協(xié)議報(bào)文封裝在HTTP封包中,通過HTTP信道進(jìn)行傳輸?shù)摹R虼薍essian協(xié)議具有與SOAP協(xié)議同樣的優(yōu)點(diǎn),即傳輸不受防火墻的限制(防火墻通常不限制HTTP信道)。Hessian協(xié)議的優(yōu)勢在于:它把本地格式的數(shù)據(jù)編碼為二進(jìn)制數(shù)據(jù),僅用一個(gè)字符作為結(jié)構(gòu)化標(biāo)記,HBWSP封裝后的數(shù)據(jù)增量明顯小于SOAP封裝后的數(shù)據(jù)增量。并且相對于SOAP,Hessian協(xié)議的外部數(shù)據(jù)表示有3個(gè)顯著的優(yōu)勢:

1)采用簡單的結(jié)構(gòu)化標(biāo)記。簡單的結(jié)構(gòu)化標(biāo)記減少了編碼、解碼操作對內(nèi)存的占用量。編碼時(shí),只需寫少量的數(shù)據(jù),就可以標(biāo)記結(jié)構(gòu);解碼時(shí),只需讀少量的數(shù)據(jù)就可以確定結(jié)構(gòu)。而且,簡單的結(jié)構(gòu)化標(biāo)記減少了編碼后的數(shù)據(jù)增量。

2)采用定長的字節(jié)記錄值。用定長的字節(jié)記錄值,解碼時(shí),就可以使用位操作從固定長度的位獲得值。這樣不僅操作簡單,而且可以獲得較高的性能。

3)采用引用取代重復(fù)遇到的對象。使用引用取代重復(fù)遇到的對象可以避免對重復(fù)對象的編碼,而且也減少了編碼后的數(shù)據(jù)量。

因此使用Hessian協(xié)議傳輸數(shù)據(jù)量比SOAP協(xié)議要小得多。實(shí)踐證明,傳輸同樣的對象Hessian協(xié)議傳輸?shù)臄?shù)據(jù)量比SOAP協(xié)議低一個(gè)數(shù)量級。因此Hessian協(xié)議比SOAP協(xié)議更適用于分布式應(yīng)用系統(tǒng)間大數(shù)據(jù)量的數(shù)據(jù)交換。

4.2Hessian協(xié)議的實(shí)現(xiàn)構(gòu)架

Hessian協(xié)議的實(shí)現(xiàn)構(gòu)架如圖3所示:為了實(shí)現(xiàn)Hessian構(gòu)架,設(shè)計(jì)了下列組件:編碼組件、解碼組件、通信組件、報(bào)告故障組件、組件、調(diào)用服務(wù)過程組件。

圖3Hessian協(xié)議的實(shí)現(xiàn)構(gòu)架

首先客戶端發(fā)出本地請求,組件響應(yīng)請求依據(jù)服務(wù)接口,生成客戶端存根,并調(diào)用編碼組件對本地請求進(jìn)行基于HessianBinaryWebServiceProtocol標(biāo)準(zhǔn)的二進(jìn)制編碼。然后調(diào)用通信組件將請求發(fā)送給服務(wù)器端。服務(wù)器端通信組件接收到請求后把請求轉(zhuǎn)發(fā)給調(diào)用服務(wù)過程組件,調(diào)用服務(wù)過程組件會(huì)首先調(diào)用解碼組件,得到過程標(biāo)識(shí),將過程標(biāo)識(shí)轉(zhuǎn)給服務(wù)器端存根,并依據(jù)部署文件和客戶端的請求加載服務(wù)過程的實(shí)現(xiàn)類。然后根據(jù)過程標(biāo)識(shí)、過程參數(shù)調(diào)用服務(wù)過程。最后調(diào)用編碼組件將響應(yīng)結(jié)果進(jìn)行編碼并通過通信組件返回給客戶端。

當(dāng)數(shù)據(jù)傳輸、通信發(fā)生錯(cuò)誤的時(shí)候就需要啟用報(bào)告故障組件,它可以以異常的形式,報(bào)告發(fā)送端、接收端、或者網(wǎng)絡(luò)連接發(fā)生的故障,并把錯(cuò)誤記錄以日志的方式記錄下來保存在文件中,以備日后查閱。

4.3實(shí)現(xiàn)結(jié)構(gòu)

針對教務(wù)管理系統(tǒng)互聯(lián)網(wǎng)傳輸存在的一系列問題,基于互聯(lián)網(wǎng)的主體數(shù)據(jù)平臺(tái)采用基于HBWSP的輕量級跨平臺(tái)通信技術(shù)實(shí)現(xiàn)數(shù)據(jù)交換,如圖4所示。在客戶端,應(yīng)用服務(wù)器從主題數(shù)據(jù)服務(wù)層中抽取數(shù)據(jù),并按著HBWSP的外部數(shù)據(jù)表示對本地格式數(shù)據(jù)進(jìn)行編碼。然后通過internet網(wǎng)進(jìn)行傳輸,在服務(wù)器端,數(shù)據(jù)交換的服務(wù)負(fù)責(zé)按照HBWSP的外部數(shù)據(jù)表示對接收到的數(shù)據(jù)進(jìn)行解碼,然后再對數(shù)據(jù)進(jìn)行分析、處理后把數(shù)據(jù)插入到服務(wù)器端的主題數(shù)據(jù)服務(wù)層中。

圖4非持久同步方式的數(shù)據(jù)交換解決方案

該解決方案的主要特點(diǎn)包括:

1)采用了HBWSP的二進(jìn)制編碼方式解決了異地、異構(gòu)平臺(tái)系統(tǒng)的通信問題,并使數(shù)據(jù)交互具有了一定的實(shí)時(shí)性。

2)由于HBWSP簡潔的編碼方式以及編碼、解碼性能高等特點(diǎn)使數(shù)據(jù)交換具有交換GB級數(shù)據(jù)的能力。

3)采用了HBWSP的二進(jìn)制編碼方式有助于縮短整個(gè)數(shù)據(jù)交換所需要的時(shí)間。其編碼性能高的特點(diǎn),有助于提高編碼速度,減少發(fā)送方編碼本地?cái)?shù)據(jù)的時(shí)間。其解碼性能高的特點(diǎn),可以減少接收方解碼、重構(gòu)本地?cái)?shù)據(jù)的時(shí)間。從而減少了數(shù)據(jù)交換的響應(yīng)時(shí)間。

4)采用了HBWSP的二進(jìn)制編碼方式和數(shù)據(jù)分批傳送技術(shù)有助于充分利用網(wǎng)絡(luò)狀況良好的時(shí)段??梢栽诰W(wǎng)絡(luò)狀況良好的時(shí)段盡可能多的完成數(shù)據(jù)交換。

5)采用了斷點(diǎn)續(xù)傳技術(shù),保證了當(dāng)網(wǎng)絡(luò)斷連或響應(yīng)超時(shí)導(dǎo)致正在進(jìn)行的數(shù)據(jù)交換被中斷,在故障修復(fù)后仍然可以從中斷處開始,繼續(xù)完成上次沒有完成的數(shù)據(jù)交換的能力。斷點(diǎn)的粒度可以調(diào)節(jié),可以是一條數(shù)據(jù),也可以是多條數(shù)據(jù)。

6)采用了事務(wù)保護(hù)機(jī)制,把每批要傳輸?shù)臄?shù)據(jù)定義為一個(gè)事務(wù),本批要傳輸?shù)臄?shù)據(jù)的事務(wù)完整性不依賴于已經(jīng)完成的各批數(shù)據(jù),本批數(shù)據(jù)傳輸發(fā)生錯(cuò)誤也不會(huì)對已經(jīng)完成的各批數(shù)據(jù)造成影響。采用這種方法,可以在數(shù)據(jù)交換過程被中斷的情況下保證數(shù)據(jù)交換事務(wù)的完整性。

5總結(jié)和展望

本文在SOA理論的基礎(chǔ)上提出了一個(gè)主題數(shù)據(jù)平臺(tái)的概念,力圖把異地、異構(gòu)的數(shù)據(jù)綜合起來,組成一個(gè)強(qiáng)壯的、高可靠性的、可共用的標(biāo)準(zhǔn)數(shù)據(jù)服務(wù)平臺(tái)。從而解決中央電大新舊教學(xué)管理系統(tǒng)數(shù)據(jù)“孤島”的問題。我們再進(jìn)一步針對現(xiàn)實(shí)環(huán)境:局域網(wǎng)和互聯(lián)網(wǎng)兩種情況進(jìn)行了分析,并給出了實(shí)現(xiàn)框架和技術(shù)細(xì)節(jié)。

但是如何在信息暴露的基礎(chǔ)上,對業(yè)務(wù)應(yīng)用進(jìn)行進(jìn)一步的梳理、劃分、整合,從而封裝成用戶可以隨意組合、使用的標(biāo)準(zhǔn)服務(wù),從而實(shí)現(xiàn)真正的SOA,是需要我們進(jìn)一步研究的內(nèi)容。

參考文獻(xiàn)

[1]GeorgeCoulouris,JeanDollimore,TimKindberg.DistributedSystemsConceptsandDesign.金蓓弘.第3版.機(jī)械工業(yè)出版社,2003:134-150

[2]CauchoTechnology,inc.Hessian1.0.1Specification.http:///hessian/hessian-draft-spec.xtp

[3]RameshNagappan,RobertSkoczylas,RimaPatelSriganesh.DevelopingJavaWebServicesarchitectinganddevelopingSecureWebServicesUsingJava.龐太剛,陶程.清華大學(xué)出版社,2004:17-18