一种基于P2P网络结构的遥感空间数据共享方案*

2016-07-15 15:47宋奇王栋赵亚萌臧文乾杜佳恒
计算机时代 2016年7期

宋奇+王栋+赵亚萌+臧文乾+杜佳恒

DOI:10.16644/j.cnki.cn33-1094/tp.2016.07.006

摘 要: 随着中国卫星遥感技术的发展,遥感空间数据的数量与体积急剧增长,同时由于数据分发中心带宽有限,造成了遥感空间数据共享效率低的问题。为此设计了一种基于P2P网络结构的遥感空间数据共享方案。该方案结合集中式目录服务与文件分块传输思想,提出数据共享模型与任务队列分配模型,实现同时从多个资源节点获取数据的功能。实验结果表明,该方案提高了数据共享效率,有效缓解了服务器网络负载,在遥感数据共享领域具有借鉴意义。

关键词: 遥感空间数据; 集中式目录服务; 分块传输; P2P; 任务队列分配

中图分类号:TP391 文献标志码:A 文章编号:1006-8228(2016)07-20-04

A remote sensing spatial data sharing scheme based on P2P network

Song Qi1,2, Wang Dong2, Zhao Yameng2, Zang Wenqian2, Du Jiaheng1,2

(1. Computer and Information Engineering College, Henan University, Kaifeng, Henan 475001, China;

2. Institute of Remote Sensing and Digital Earth Chinese Academy of Sciences)

Abstract: With the development of the satellite remote sensing technology in China, the amount and the size of remote sensing spatial data increase sharply. At the same time, due to the limited bandwidth of the data distribution center, the efficiency of remote sensing spatial data sharing is not high enough. In order to solve this problem, this paper designs a remote sensing spatial data sharing scheme based on P2P network. The scheme combines centralized directory service and the idea of block file transmission, and puts forward a data sharing model and a task queue assignment model which implements the ability of getting data from multiple source peer nodes. The experimental results show that this scheme not only improves the data sharing efficiency, but also alleviates network load of the servers, and has reference significance in the field of remote sensing data sharing.

Key words: remote sensing spatial data; P2P; centralized directory service; block file transmission; task queue distribution

0 引言

在过去30余年,卫星遥感在气象、农业、资源、生态、水利、城市规划等各个行业的应用上显著提高[1],各行业用户对遥感空间数据的需求也日趋增大。而目前,遥感空间数据的共享面临以下问题:

⑴ 服务的科研单位多,数据需求量大;

⑵ 遥感空间数据文件数据量大,可达到GB级别,在数据的分发过程中,严重占用网络资源;

⑶ 数据分发中心网络带宽有限;

⑷ 很多遥感空间数据存储在不同数据中心,未能得到充分利用,形成数据孤岛。

针对这些问题,文献[2]中设计了一种主动队列控制模式的遥感空间数据分发系统,该系统采用集中式数据分发方式,所有分发任务按用户提交的顺序依次排队处理,随着用户提交数据量的增大,服务器积压的任务量越来越多,任务等待处理的时间也越来越长。系统同时存在中央服务器网络负载大以及带宽资源浪费的问题。

P2P技术能够充分利用分布在终端计算机上的资源,缓解服务器资源消耗,在计算机网络各领域尤其是文件共享领域被广泛应用[3-4]。

现阶段,P2P文件共享已经有多种实现方案。在文献[5]提出的方案中,节点间通过系统广播创建TCP连接发送网络文件共享目录并进行文件的共享和传输,但同一时间段内服务用户数量有限。文献[6]中的方案将服务器节点作为一个索引服务器,同时负责文件分割任务,当用户提交订单量增大时,会给服务器带来很大的运行压力。文献[7]中将所有的文件信息都放在相应的配置文件里,提高了资源搜索定位的效率。但随着文件数量增多,系统消耗的资源必将增长,从而导致程序的响应非常迟缓的问题。

通过上述分析,结合遥感数据共享领域的特殊性我们发现,以上P2P文件共享方案都不适用。因此,在原有数据分发系统的基础上,本文结合了经典P2P网络架构中Napster查找性能良好、便于网络管理的优点[8],以及BitTorrent传输效率高[9]的优点,采用集中式目录服务与文件分块传输的思想,设计并实现一种基于P2P网络结构的遥感空间数据共享方案,在遥感数据分发效率方面进行改进。

1 总体网络结构

本文数据共享方案总体网络结构如图1所示。

原有数据分发系统中的数据分发中心作为目录服务器,用来保存所有遥感空间数据资源索引,提供资源的查找与管理服务。

各个对等节点在逻辑上完全等价,节点之间通过网络可建立直接连接并进行数据传输,节点既作为服务器提供数据资源共享服务,又作为客户端从其他节点获取数据。

1.1 集中式目录服务

目录服务器中的数据资源索引存储在数据库中,主要包含遥感空间数据文件信息、各节点信息、数据-节点映射信息。

由于目录服务器只提供资源的查询与管理而不提供数据下载,网络负载较低,因此能够提供高效的资源查询性能。

1.2 文件分块传输

为了实现从多节点同时获取数据的功能,需要将完整的数据文件传输转换为数据文件块传输。

需求节点根据完整的数据文件大小,生成N个连续的XML格式的文件块请求。其中:每个请求包含文件块编号、数据名、文件块字节流起止位置等信息;N=数据文件大小/文件块字节流长度+1;默认字节流长度为512KB。

资源节点收到文件块请求后,读取数据文件对应部分的字节流,将其封装为XML格式文件块信息,通过Web Service的方式将文件块信息发送回需求节点。需求节点解析后生成文件块,当所有文件块获取完毕后,将其合并为完整的数据文件。

2 P2P网络数据共享

为了实现P2P数据共享,本文设计了数据共享模型与任务队列分配模型。数据共享模型负责从用户查询下单到最终获取数据的调度;任务队列分配模型负责从资源节点获取所有文件块的调度。

2.1 数据共享模型

该方案的数据共享总体模型的流程如图2所示,具体步骤如下。

步骤1 查询下单:某一需求节点查询到所需数据后直接向目录服务器提交数据下载任务单。

步骤2 查询资源索引:目录服务器收到任务单后,查询该任务单对应的数据文件信息与该数据所在节点。如果不存在可用资源节点,说明该资源只存在于数据分发中心,此时采用原有的集中式分发方式进行数据共享[2],数据共享成功后,直接执行步骤7;如果存在可用资源节点,执行步骤3。

步骤3 返回资源信息:将查询到的数据文件信息与可用资源节点信息返回需求节点。

步骤4 生成文件块请求队列:根据本文1.2中的方法生成文件块请求,并将其加入到请求队列。

步骤5 获取文件块:进行任务分配调度,从所有可用资源节点获取文件块(详见本文2.2)。

步骤6 合并数据:所有文件块获取完毕后,将其合并为完整的数据文件。

步骤7 同步资源索引:任务单完成后,进行资源索引更新,本节点将作为该数据的资源节点为其他节点提供服务。

2.2 任务队列分配模型

数据需求节点生成文件块请求队列后,需要将请求发送给资源节点来获取文件块。把每个文件块的传输看作一个任务,需要将所有的任务分配给可用资源节点。因此需要对任务的分配进行调度。具体调度流程如图3所示。

步骤1 初始化任务队列,将所有任务标状态记为“待处理”。

步骤2 按顺序一一分配待处理任务,按文件块编号的顺序将待处理任务发送给资源节点并将该任务状态标记为“正在处理”,每个任务只发送给一个资源节点,同时每个资源节点也只接收一个任务。

步骤3 如果某一任务失败,则将该任务标记为“待处理”并将其移至队列末尾,返回步骤2继续执行之后的未处理任务;如果任务执行成功,则将该任务标记为“已完成”,执行步骤4。

步骤4 判断任务队列是否全部完成,如果全部完成,结束该任务队列的处理;否则返回步骤2继续执行。

3 实验与性能分析

与本文提出的数据共享方案进行对比的是原有数据分发系统中的方案,即采用主动队列控制模式的数据分发方案。

遥感数据共享效率一般受到下载数据量、网络带宽的影响。为了验证本文方案的效果,在下载数据量不同、带宽不同的情况下,下载同样的数据进行实验。比较每景数据的平均下载时间,得出相应结论。

3.1 下载数据量不同实验结果

在带宽相同(同为100Mbps)的情况下,下载不同数据量的数据,实验数据如图4所示。

从实验数据可以看出:在下载数据量相同时,使用P2P数据共享方案效率更高,且随着下载数据量的增大,其优势也越来越显著。

3.2 带宽不同实验结果

在不同带宽环境中下载同样数据量(同为10景)的数据,实验数据如图5所示。

从实验数据可以看出,在网络带宽相同时,使用P2P数据共享方案效率更高,且随着网络带宽的降低,其优势也越来越显著。

4 结束语

针对遥感数据共享的特殊性,本文提出了数据共享模型与任务队列分配模型,设计并实现一种基于P2P网络的遥感空间数据共享方案。该方案采用集中式目录服务,能够提供良好的资源查询与管理性能,降低服务器网络负载;结合XML与Web Service技术进行文件分块传输,实现同时从多个资源节点获取数据的功能,达到了充分利用各数据中心资源的目的。实验结果证明,本文设计的方案相比原有的数据分发方案在数据共享效率上有明显的优势。

本文提出的方案还有待完善,如任务队列分配模型没有对节点间可用带宽做进一步研究。因此在后续的研究中,可以根据带宽先验值与数据实时传输状态对任务队列分配模型做进一步改进,从而达到各资源节点的自适应负载均衡。

参考文献(References):

[1] 孟庆岩,顾行发,余涛,荆凤.我国民用卫星遥感应用现状、问

题与趋势[A].中国地震学会空间对地观测专业委员会.中国地震学会空间对地观测专业委员会成立大会暨学术研讨会论文集[C].中国地震学会空间对地观测专业委员会,2008.

[2] 张振鹏.遥感数据分发系统主动队列控制模式的研究与应用[D].

河南大学,2015.

[3] 周文莉,吴晓非.P2P技术综述[J].计算机工程与设计,

2006.1:76-79

[4] 金海,廖小飞.P2P技术原理及应用[J].中兴通讯技术,2007.6.

[5] 何帅.P2P文件共享系统的设计与实现[D].华中科技大学,

2012.

[6] 胡杰.基于P2P的数据共享平台设计与实现[J].计算机时代,

2014.11:7-9,13

[7] 赵立明.基于P2P网络的文件共享系统设计与实现[D].山东

大学,2012.

[8] 刘德刚,周刚,向金海.基于Napster架构的P2P空间数据共

享研究[J].微计算机信息,2007.27:219-220,82

[9] 唐红,胡容,朱辉云.BitTorrent网络行为研究综述[J].小型微

型计算机系统,2012.9:2002-2007