贾晓强
(渭南师范学院 数学与信息科学学院,陕西 渭南 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—),男,陕西凤翔人,硕士,讲师。研究方向:软件工程、数据挖掘。