賈曉強
(渭南師范學(xué)院 數(shù)學(xué)與信息科學(xué)學(xué)院,陜西 渭南 714000)
一種基于C/S模式的中間件SDO的P2P平臺的網(wǎng)絡(luò)拓撲設(shè)計
賈曉強
(渭南師范學(xué)院 數(shù)學(xué)與信息科學(xué)學(xué)院,陜西 渭南 714000)
為了解決異構(gòu)數(shù)據(jù)間的共享問題,提供標準、統(tǒng)一、功能豐富的接口,對傳統(tǒng)的SDO的數(shù)據(jù)集成做了改進,并在P2P上加上了對server的支持,提高了模塊的復(fù)用程度,降低了通訊的復(fù)雜度,用戶獲取數(shù)據(jù)時既可以從peer那獲取,也可以從cdn或其它服務(wù)器上獲取。
P2P;耦合;SDO;元數(shù)據(jù);虛擬視圖
隨著網(wǎng)絡(luò)的發(fā)展和信息化的逐步深入,大多數(shù)企業(yè)都實現(xiàn)了信息的計算機化管理,數(shù)據(jù)是企業(yè)最重要的信息資產(chǎn),在大多數(shù)企業(yè)中,數(shù)據(jù)大都以不同的格式分布在不同的系統(tǒng)中,這些數(shù)據(jù)受數(shù)據(jù)模型及存儲方式的差異,具有明顯的異構(gòu)性、分布性和自治性。如何將這些不同來源、格式和質(zhì)量的數(shù)據(jù)進行有效的集成,實現(xiàn)企業(yè)級數(shù)據(jù)的全面共享,就是異構(gòu)數(shù)據(jù)集成所要解決的問題。
目前,娛樂媒體的許多業(yè)務(wù)都需要用到了P2P[4-5]技術(shù),有些已經(jīng)投入了一些力量,但目前還處于各自為戰(zhàn)的地位,因此建立一個統(tǒng)一的P2P平臺是非常必要的。從嚴格意義上來說,基于SDO[1-3]的數(shù)據(jù)集成屬于虛擬視圖法中的中間件/包裝器方法,用SDO API替代了中間件的數(shù)據(jù)接口,SDO中的數(shù)據(jù)獲取、修改等實現(xiàn)完成部分中間件的工作,數(shù)據(jù)中介服務(wù)充當了包裝器的角色,而SDO的元數(shù)據(jù)與中間件/包裝器方法中的元數(shù)據(jù)具有相同的功能。其集成的基本原理也與中間件/包裝器方法相類似:即用統(tǒng)一的元數(shù)據(jù)作為公共模型,不同的數(shù)據(jù)服務(wù)中間依據(jù)元數(shù)據(jù)將特定的數(shù)據(jù)源下的數(shù)據(jù)包裝為統(tǒng)一的數(shù)據(jù)圖,由SDO客戶端完成對數(shù)據(jù)圖的訪問、更新操作,最后由數(shù)據(jù)中介服務(wù)完成對數(shù)據(jù)源的更新。
服務(wù)數(shù)據(jù)對象 (Ser vice Data Object,SDO)是由IBM公司和BEA公司于2003年11月合作發(fā)布的一種數(shù)據(jù)編程框架及其API。主要是為了統(tǒng)一對不同數(shù)據(jù)類型的訪問和操作方法,并允許應(yīng)用程序、工具、框架更加輕松地查詢、查看、更新、綁定和內(nèi)省數(shù)據(jù)。SDO架構(gòu)具有以下優(yōu)勢:
1)支持動態(tài)編程模型和靜態(tài)編程模型。
2)支持離線編程模型??蛻舳四軌蜃x取一組數(shù)據(jù),短時間內(nèi)保留在本地,操作這些數(shù)據(jù),然后將這些修改提交到數(shù)據(jù)源中,這種方式能夠使客戶端在斷線的情況下進行數(shù)據(jù)修改,滿足了眾多的應(yīng)用需求,能夠?qū)Χ喾N數(shù)據(jù)源進行訪問、更新,如關(guān)系數(shù)據(jù)庫、XML數(shù)據(jù)文檔、Web數(shù)據(jù)等。
SDO架構(gòu)由元數(shù)據(jù) (M et adata)、數(shù)據(jù)中介服務(wù)(DataMediator Service,DMS)、數(shù)據(jù)圖(Data Graph)、數(shù)據(jù)對象(Data Object)、SDO客戶端 (SDO Client)和數(shù)據(jù)源(DataSource)構(gòu)成。
元數(shù)據(jù):元數(shù)據(jù)包括技術(shù)元數(shù)據(jù)和業(yè)務(wù)元數(shù)據(jù)。技術(shù)元數(shù)據(jù)分為指明數(shù)據(jù)源的形式、位置、數(shù)據(jù)源結(jié)構(gòu) 如 數(shù)據(jù)庫描述、所包含的表)、用于數(shù)據(jù)源連接的用戶名稱和密碼、數(shù)據(jù)源內(nèi)數(shù)據(jù)表結(jié)構(gòu)、表間關(guān)系的數(shù)據(jù)源元數(shù)據(jù)和用于說明DM S在如何對數(shù)據(jù)進行封裝、生成數(shù)據(jù)圖及數(shù)據(jù)集的構(gòu)成情況的對象元數(shù)據(jù)。技術(shù)元數(shù)據(jù)則指映射規(guī)則,用于指明數(shù)據(jù)源的本地數(shù)據(jù)圖與目標數(shù)據(jù)圖的映射關(guān)系。
數(shù)據(jù)中介服務(wù):SDO本身不與數(shù)據(jù)源進行連接,對數(shù)據(jù)源的訪問、更新均由數(shù)據(jù)中介服務(wù)完成;不同的數(shù)據(jù)源采用不同的數(shù)據(jù)中介服務(wù);SDO的API一致性通過不同的數(shù)據(jù)中介服務(wù)得以保證。
數(shù)據(jù)對象:是SDO的核心概念,數(shù)據(jù)對象是由屬性及屬性值,以及數(shù)據(jù)對象間關(guān)系的描述構(gòu)成的。數(shù)據(jù)對象包含了一般性的屬性getter、setter方法和新增數(shù)據(jù)對象、修改數(shù)據(jù)對象、屬性值多種索引的API;同時提供序列Sequence的API操作,序列Sequence是數(shù)據(jù)對象內(nèi)部對屬性、類型的一種封裝機制,用于支持對非結(jié)構(gòu)化數(shù)據(jù)的支持。
數(shù)據(jù)圖:數(shù)據(jù)圖是整個數(shù)據(jù)的封裝,包括了數(shù)據(jù)對象及對數(shù)據(jù)對象更改的記錄(修改摘要,Change Summary)。數(shù)據(jù)圖由數(shù)據(jù)中介服務(wù)訪問數(shù)據(jù)源后依據(jù)元數(shù)據(jù)封裝而成,SDO對數(shù)據(jù)源的訪問、更新,實際上是對數(shù)據(jù)圖進行訪問和更新,對數(shù)據(jù)的增、刪、改等操作首先被記錄在修改摘要中,然后由數(shù)據(jù)中介服務(wù)依據(jù)修改摘要對數(shù)據(jù)源進行相應(yīng)的更新操作。
數(shù)據(jù)源:SDO能夠?qū)Χ喾N數(shù)據(jù)源進行訪問、更新,如關(guān)系數(shù)據(jù)庫、XML數(shù)據(jù)文檔、Web數(shù)據(jù)等。
在SDO的基礎(chǔ)上,總的網(wǎng)絡(luò)拓樸采用非常適合視頻的P4P[6]技術(shù),同區(qū)域的用戶優(yōu)先的原則,可以最大限度的保證用戶的啟動時間,使用用戶在打開的初期得到比較好的體驗。 主要的實現(xiàn)是通過ip庫來實現(xiàn)用戶的區(qū)域定位,并采用tracerout校驗,使用戶的定位更加準確,也可以修正ip庫。拓撲結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)網(wǎng)絡(luò)設(shè)計拓撲Fig.1 System network topology design
2 .2 .1 服務(wù)器架構(gòu)設(shè)計
服務(wù)器設(shè)計采用全分布式設(shè)計,可以根椐用戶量的情況實時調(diào)整系統(tǒng)的大小,整個系統(tǒng)可以在某個數(shù)量級上同時在線內(nèi)任意擴展,容錯性和容災(zāi)性也比較強,系統(tǒng)性能優(yōu)秀。設(shè)計架構(gòu)如圖2所示。
圖2 服務(wù)器架構(gòu)設(shè)計圖Fig.2 Server architecture design
Loginserver:負責整個系統(tǒng)的登錄和負載均衡,采用分布式集群布置,特點是業(yè)務(wù)量比較大,但邏輯比較輕。
Trackserver:是整個系統(tǒng)的具體邏輯處理層,負責整個系統(tǒng)第二層登錄,信息記錄,peer查詢,打洞等邏輯。這層服務(wù)器之間是相互獨立的。
Coreserver:是整個系統(tǒng)的信息中心,記錄了整個系統(tǒng)中的所有peer信息,這組服務(wù)器之間采用的是分段記錄原則,所有的coreserver組成一個完整的信息體。
Databases:數(shù)據(jù)分為二部分,一部分是日志記錄,一部分為數(shù)據(jù)庫記錄,日志記錄采用文本記錄方式,記錄所有用戶的操作日志,數(shù)據(jù)庫記錄記錄用戶的匯總信息,和整個系統(tǒng)的運行日志。
Reportsystem:統(tǒng)計報表系統(tǒng),負責以圖表和記錄方式展示整個系統(tǒng)的運行實時狀態(tài)和周期匯總情況。
Stunserver:負責判斷用戶網(wǎng)絡(luò)類型。
2 .2 .2 客戶架構(gòu)設(shè)計
統(tǒng)一p2p平臺是在同一套平臺里同一套公開接口支持多個業(yè)務(wù)形式,對多個業(yè)務(wù)的支持主要體現(xiàn)在客戶端上面.支持的業(yè)務(wù)包括游戲下載,視頻點播,視頻直播。設(shè)計架構(gòu)如圖3所示。
客戶端具體分為3層,通信層,業(yè)務(wù)層,接口層。
通信層:負責整個系統(tǒng)的具體的數(shù)據(jù)接收與發(fā)送,udp傳輸包括安全傳輸,自動拆包,組包,重傳,流量和擁塞等,http傳輸主要是服務(wù)器的httpserver,目前的游戲服務(wù)器和視頻服務(wù)器都是采用http服務(wù)器。
業(yè)務(wù)層:主要包括不同業(yè)務(wù)的設(shè)度算法,游戲下載和視頻點播采用的是同一套算法,直播采用另一套算法.協(xié)議處理。
接口層:對不同的業(yè)務(wù)提供統(tǒng)一的接口。
圖3 客戶架構(gòu)設(shè)計圖Fig.3 Client architecture design
基于SDO的P2P平臺采用PULL工作方式,這種工作方式的工作原理是:各數(shù)據(jù)服務(wù)中介將其所負責的數(shù)據(jù)源中的上傳或下載數(shù)據(jù)提取,并封裝為統(tǒng)一的數(shù)據(jù)圖,由結(jié)果抽取模塊對數(shù)據(jù)圖逐個抽取后,形成新的數(shù)據(jù)圖,并將其交給結(jié)果集成[7,9]模塊,結(jié)果集成模塊將這些數(shù)據(jù)圖合并成一個數(shù)據(jù)圖后返回用戶。這種工作方式的優(yōu)勢在于:不需要將基于統(tǒng)一的數(shù)據(jù)圖的查詢轉(zhuǎn)換為數(shù)據(jù)源的本地查詢方式,從而減少了查詢轉(zhuǎn)換帶來的系統(tǒng)開發(fā)的復(fù)雜度行時查詢轉(zhuǎn)換的開銷;容易添加新的數(shù)據(jù)源,只需要為新的數(shù)據(jù)源增加新的數(shù)據(jù)服務(wù)中介,并在元數(shù)據(jù)內(nèi)加入新數(shù)據(jù)源的注冊信息即可。PULL工作方法的不足是:這種不加區(qū)分、不加篩選的將數(shù)據(jù)源內(nèi)的數(shù)據(jù)全部發(fā)送到查詢驅(qū)動的方式,在數(shù)據(jù)量較大及網(wǎng)絡(luò)環(huán)境下,容易受到網(wǎng)絡(luò)帶寬的限制,影響到數(shù)據(jù)集成的速度。
可以通過兩個步驟改進這一問題。
1 )在對數(shù)據(jù)源的描述中加入數(shù)據(jù)篩選條件:在數(shù)據(jù)源的元數(shù)據(jù)中加入數(shù)據(jù)篩選條件,使得數(shù)據(jù)中介服務(wù)在提取數(shù)據(jù)源內(nèi)數(shù)據(jù)時,只提取目標數(shù)據(jù)模型需要的數(shù)據(jù)內(nèi)容,對于不同的目標模型,篩選條件也不同;
2 )在集成過程中,將數(shù)據(jù)源端的集成平臺作為代理平臺[10]使用,由集成請求平臺將查詢分解成多個子查詢,將查詢及數(shù)據(jù)請求一同發(fā)送到代理平臺,代理平臺內(nèi)的數(shù)據(jù)中介服務(wù)生成數(shù)據(jù)圖后,代理平臺內(nèi)部的查詢執(zhí)行模塊對數(shù)據(jù)圖執(zhí)行子查詢,將所得的結(jié)果封裝成新的數(shù)據(jù)圖,發(fā)送到集成請求平臺,最后由集成請求平臺內(nèi)的集成模塊將多個數(shù)據(jù)圖合成一個數(shù)據(jù)圖。
相對于傳統(tǒng)的中間件/包裝器方法來說,基于SDO的P2P平臺具有以下優(yōu)勢:標準、統(tǒng)一、功能豐富的接口,能夠支持視頻直播,支持視頻點播,支持游戲下載,支持bt下載等;數(shù)據(jù)獲取模塊與數(shù)據(jù)使用模塊松散耦合,支持離線的數(shù)據(jù)訪問的優(yōu)點,同時SDO實現(xiàn)了業(yè)務(wù)代碼與數(shù)據(jù)代碼的解耦,并使用虛擬的數(shù)據(jù)獲取方式,使得集成平臺更加柔性化,便于后期的擴展。
[1]王盼卿,劉增良,陶源.基于SDO的數(shù)據(jù)集成平臺研究[J].計算機測量與控制,2010.18(7).1657-1663.
WANG Pan-qin,LIU Zeng-liang,TAO Yuan.Data integration platform Research based on SDO [J].Computer Measurement and Control,2010,18(7):1657-1663.
[2]趙雨順.鐵路信息共享平臺基于SDO的數(shù)據(jù)交換接口研究[D].北京:北京交通大學(xué),2008.
[3]宋慧駒,馬楠,吳志剛.SOA編程模型— SCA/SDO[J].軟件工程與標準化,2007(11):38-39.
SONG Hui-ju,MA Nan,WU Zhi-gang.SOA programming model-SCA and SDO [J].Journal of Software Engineering and Standardization,2007(11):38-39.
[4]楊明川.P2P運營模式及P2P業(yè)務(wù)發(fā)展策略[R].北京中國電信股份有限公司,2007.
[5]趙澤良,陳興蜀,劉益和,等.P2P應(yīng)用的安全體系結(jié)構(gòu)研究[J].四川大學(xué)學(xué)報:自然科學(xué)版,2006(4):812-813.
ZHAO Ze-liang,CHEN Xing-shu,LIU Yi-he,et al.P2P application security architecture research [J].Journal of Sichuan University:Natural Science Edition,2006(4):812-813.
[6]張 騫,張 霞,劉積仁.混合P2P環(huán)境下有效的查詢擴展及其搜索算法[J].軟件學(xué)報.2006,17(4):782-793.
ZHANG Jian,ZHANG Xia,LIU Ji-ren.Under Hybrid P2P environment effective query expansion and its search algorithm[J].Journal of Software,2006(4):782-793.
[7]周國能.異構(gòu)數(shù)據(jù)庫集成中間件的構(gòu)建研究與應(yīng)用 [D].大連:大連理工大學(xué),2007.
[8]段惠卿,孫翠娟,董鴻燕.一種基于服務(wù)數(shù)據(jù)對象的異構(gòu)數(shù)據(jù)集成系統(tǒng)[J].四川兵工學(xué)報,2010(6):81-83.
DUAN Hui-qing,SUN Cui-juan,DONG Hong-yan.A kind of heterogeneous data integration system based on service data objects[J].Journal of Sichuan Armaments Factories,2010(6):81-83.
[9]馬 蓉.異構(gòu)數(shù)據(jù)庫統(tǒng)一平臺設(shè)計與分析[J].自動化與儀器儀表,2011(5):173-175.
MA Rong.Unified heterogeneous database platform design and analysis [J].Automation and Instrumentation,2011(5):173-175.
[10]曾茜,王卓昊,周明全.面向科技信息的資源共享服務(wù)平臺設(shè)計[J].計算機技術(shù)與發(fā)展,2009(4):149-151.
ZENG Xi,WANG Zhuo-hao,ZHOU Quan-ming.Design of Information resource sharing service platform oriented science and technology [J].Computer Technology and Development,2009(4):149-151.
A network topology structural design of P2P platform with middleware SDO based on C/S mode
JIA Xiao-qiang
(Department of Computer Science,Weinan Normal University,Weinan 714000,China)
In order to solve the sharing problem of heterogeneous data,provide a standard,unified,feature-rich interface,the traditional SDO data integration has been improved and the P2P added server support.It has improved the level of multiplexing module reduced the complexity of communication.users can access it from the peer,but cdn,or other servers.
P2P;coupling;SDO;metadata;virtual view
TP3-05
A
1674-6236(2014)13-0031-03
2013-10-20 稿件編號:201310121
陜西省軍民融合基金資助項目 (12JMR19);渭南市基礎(chǔ)研究計劃項目 (2013JCYJ-4);渭南市科研基金資助項目(2013JCYJ-10)
賈曉強(1977—),男,陜西鳳翔人,碩士,講師。研究方向:軟件工程、數(shù)據(jù)挖掘。