賈曉強
(渭南師范學院 數學與信息科學學院,陜西 渭南 714000)
一種基于C/S模式的中間件SDO的P2P平臺的網絡拓撲設計
賈曉強
(渭南師范學院 數學與信息科學學院,陜西 渭南 714000)
為了解決異構數據間的共享問題,提供標準、統一、功能豐富的接口,對傳統的SDO的數據集成做了改進,并在P2P上加上了對server的支持,提高了模塊的復用程度,降低了通訊的復雜度,用戶獲取數據時既可以從peer那獲取,也可以從cdn或其它服務器上獲取。
P2P;耦合;SDO;元數據;虛擬視圖
隨著網絡的發展和信息化的逐步深入,大多數企業都實現了信息的計算機化管理,數據是企業最重要的信息資產,在大多數企業中,數據大都以不同的格式分布在不同的系統中,這些數據受數據模型及存儲方式的差異,具有明顯的異構性、分布性和自治性。如何將這些不同來源、格式和質量的數據進行有效的集成,實現企業級數據的全面共享,就是異構數據集成所要解決的問題。
目前,娛樂媒體的許多業務都需要用到了P2P[4-5]技術,有些已經投入了一些力量,但目前還處于各自為戰的地位,因此建立一個統一的P2P平臺是非常必要的。從嚴格意義上來說,基于SDO[1-3]的數據集成屬于虛擬視圖法中的中間件/包裝器方法,用SDO API替代了中間件的數據接口,SDO中的數據獲取、修改等實現完成部分中間件的工作,數據中介服務充當了包裝器的角色,而SDO的元數據與中間件/包裝器方法中的元數據具有相同的功能。其集成的基本原理也與中間件/包裝器方法相類似:即用統一的元數據作為公共模型,不同的數據服務中間依據元數據將特定的數據源下的數據包裝為統一的數據圖,由SDO客戶端完成對數據圖的訪問、更新操作,最后由數據中介服務完成對數據源的更新。
服務數據對象 (Ser vice Data Object,SDO)是由IBM公司和BEA公司于2003年11月合作發布的一種數據編程框架及其API。主要是為了統一對不同數據類型的訪問和操作方法,并允許應用程序、工具、框架更加輕松地查詢、查看、更新、綁定和內省數據。SDO架構具有以下優勢:
1)支持動態編程模型和靜態編程模型。
2)支持離線編程模型。客戶端能夠讀取一組數據,短時間內保留在本地,操作這些數據,然后將這些修改提交到數據源中,這種方式能夠使客戶端在斷線的情況下進行數據修改,滿足了眾多的應用需求,能夠對多種數據源進行訪問、更新,如關系數據庫、XML數據文檔、Web數據等。
SDO架構由元數據 (M et adata)、數據中介服務(DataMediator Service,DMS)、數據圖(Data Graph)、數據對象(Data Object)、SDO客戶端 (SDO Client)和數據源(DataSource)構成。
元數據:元數據包括技術元數據和業務元數據。技術元數據分為指明數據源的形式、位置、數據源結構 如 數據庫描述、所包含的表)、用于數據源連接的用戶名稱和密碼、數據源內數據表結構、表間關系的數據源元數據和用于說明DM S在如何對數據進行封裝、生成數據圖及數據集的構成情況的對象元數據。技術元數據則指映射規則,用于指明數據源的本地數據圖與目標數據圖的映射關系。
數據中介服務:SDO本身不與數據源進行連接,對數據源的訪問、更新均由數據中介服務完成;不同的數據源采用不同的數據中介服務;SDO的API一致性通過不同的數據中介服務得以保證。
數據對象:是SDO的核心概念,數據對象是由屬性及屬性值,以及數據對象間關系的描述構成的。數據對象包含了一般性的屬性getter、setter方法和新增數據對象、修改數據對象、屬性值多種索引的API;同時提供序列Sequence的API操作,序列Sequence是數據對象內部對屬性、類型的一種封裝機制,用于支持對非結構化數據的支持。
數據圖:數據圖是整個數據的封裝,包括了數據對象及對數據對象更改的記錄(修改摘要,Change Summary)。數據圖由數據中介服務訪問數據源后依據元數據封裝而成,SDO對數據源的訪問、更新,實際上是對數據圖進行訪問和更新,對數據的增、刪、改等操作首先被記錄在修改摘要中,然后由數據中介服務依據修改摘要對數據源進行相應的更新操作。
數據源:SDO能夠對多種數據源進行訪問、更新,如關系數據庫、XML數據文檔、Web數據等。
在SDO的基礎上,總的網絡拓樸采用非常適合視頻的P4P[6]技術,同區域的用戶優先的原則,可以最大限度的保證用戶的啟動時間,使用用戶在打開的初期得到比較好的體驗。 主要的實現是通過ip庫來實現用戶的區域定位,并采用tracerout校驗,使用戶的定位更加準確,也可以修正ip庫。拓撲結構如圖1所示。

圖1 系統網絡設計拓撲Fig.1 System network topology design
2 .2 .1 服務器架構設計
服務器設計采用全分布式設計,可以根椐用戶量的情況實時調整系統的大小,整個系統可以在某個數量級上同時在線內任意擴展,容錯性和容災性也比較強,系統性能優秀。設計架構如圖2所示。

圖2 服務器架構設計圖Fig.2 Server architecture design
Loginserver:負責整個系統的登錄和負載均衡,采用分布式集群布置,特點是業務量比較大,但邏輯比較輕。
Trackserver:是整個系統的具體邏輯處理層,負責整個系統第二層登錄,信息記錄,peer查詢,打洞等邏輯。這層服務器之間是相互獨立的。
Coreserver:是整個系統的信息中心,記錄了整個系統中的所有peer信息,這組服務器之間采用的是分段記錄原則,所有的coreserver組成一個完整的信息體。
Databases:數據分為二部分,一部分是日志記錄,一部分為數據庫記錄,日志記錄采用文本記錄方式,記錄所有用戶的操作日志,數據庫記錄記錄用戶的匯總信息,和整個系統的運行日志。
Reportsystem:統計報表系統,負責以圖表和記錄方式展示整個系統的運行實時狀態和周期匯總情況。
Stunserver:負責判斷用戶網絡類型。
2 .2 .2 客戶架構設計
統一p2p平臺是在同一套平臺里同一套公開接口支持多個業務形式,對多個業務的支持主要體現在客戶端上面.支持的業務包括游戲下載,視頻點播,視頻直播。設計架構如圖3所示。
客戶端具體分為3層,通信層,業務層,接口層。
通信層:負責整個系統的具體的數據接收與發送,udp傳輸包括安全傳輸,自動拆包,組包,重傳,流量和擁塞等,http傳輸主要是服務器的httpserver,目前的游戲服務器和視頻服務器都是采用http服務器。
業務層:主要包括不同業務的設度算法,游戲下載和視頻點播采用的是同一套算法,直播采用另一套算法.協議處理。
接口層:對不同的業務提供統一的接口。

圖3 客戶架構設計圖Fig.3 Client architecture design
基于SDO的P2P平臺采用PULL工作方式,這種工作方式的工作原理是:各數據服務中介將其所負責的數據源中的上傳或下載數據提取,并封裝為統一的數據圖,由結果抽取模塊對數據圖逐個抽取后,形成新的數據圖,并將其交給結果集成[7,9]模塊,結果集成模塊將這些數據圖合并成一個數據圖后返回用戶。這種工作方式的優勢在于:不需要將基于統一的數據圖的查詢轉換為數據源的本地查詢方式,從而減少了查詢轉換帶來的系統開發的復雜度行時查詢轉換的開銷;容易添加新的數據源,只需要為新的數據源增加新的數據服務中介,并在元數據內加入新數據源的注冊信息即可。PULL工作方法的不足是:這種不加區分、不加篩選的將數據源內的數據全部發送到查詢驅動的方式,在數據量較大及網絡環境下,容易受到網絡帶寬的限制,影響到數據集成的速度。
可以通過兩個步驟改進這一問題。
1 )在對數據源的描述中加入數據篩選條件:在數據源的元數據中加入數據篩選條件,使得數據中介服務在提取數據源內數據時,只提取目標數據模型需要的數據內容,對于不同的目標模型,篩選條件也不同;
2 )在集成過程中,將數據源端的集成平臺作為代理平臺[10]使用,由集成請求平臺將查詢分解成多個子查詢,將查詢及數據請求一同發送到代理平臺,代理平臺內的數據中介服務生成數據圖后,代理平臺內部的查詢執行模塊對數據圖執行子查詢,將所得的結果封裝成新的數據圖,發送到集成請求平臺,最后由集成請求平臺內的集成模塊將多個數據圖合成一個數據圖。
相對于傳統的中間件/包裝器方法來說,基于SDO的P2P平臺具有以下優勢:標準、統一、功能豐富的接口,能夠支持視頻直播,支持視頻點播,支持游戲下載,支持bt下載等;數據獲取模塊與數據使用模塊松散耦合,支持離線的數據訪問的優點,同時SDO實現了業務代碼與數據代碼的解耦,并使用虛擬的數據獲取方式,使得集成平臺更加柔性化,便于后期的擴展。
[1]王盼卿,劉增良,陶源.基于SDO的數據集成平臺研究[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的數據交換接口研究[D].北京:北京交通大學,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業務發展策略[R].北京中國電信股份有限公司,2007.
[5]趙澤良,陳興蜀,劉益和,等.P2P應用的安全體系結構研究[J].四川大學學報:自然科學版,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環境下有效的查詢擴展及其搜索算法[J].軟件學報.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]周國能.異構數據庫集成中間件的構建研究與應用 [D].大連:大連理工大學,2007.
[8]段惠卿,孫翠娟,董鴻燕.一種基于服務數據對象的異構數據集成系統[J].四川兵工學報,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]馬 蓉.異構數據庫統一平臺設計與分析[J].自動化與儀器儀表,2011(5):173-175.
MA Rong.Unified heterogeneous database platform design and analysis [J].Automation and Instrumentation,2011(5):173-175.
[10]曾茜,王卓昊,周明全.面向科技信息的資源共享服務平臺設計[J].計算機技術與發展,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);渭南市基礎研究計劃項目 (2013JCYJ-4);渭南市科研基金資助項目(2013JCYJ-10)
賈曉強(1977—),男,陜西鳳翔人,碩士,講師。研究方向:軟件工程、數據挖掘。