CN101616177A - 基于p2p的网络地形系统的数据传输共享方法 - Google Patents
基于p2p的网络地形系统的数据传输共享方法 Download PDFInfo
- Publication number
- CN101616177A CN101616177A CN200910063268A CN200910063268A CN101616177A CN 101616177 A CN101616177 A CN 101616177A CN 200910063268 A CN200910063268 A CN 200910063268A CN 200910063268 A CN200910063268 A CN 200910063268A CN 101616177 A CN101616177 A CN 101616177A
- Authority
- CN
- China
- Prior art keywords
- node
- tile
- interest
- region
- agent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及基于P2P的网络地形系统的数据传输共享方法,通过节点特征的测试,更准确的对节点进行分类,均衡组内各个节点的共享性能;利用兴趣区域的划分,减少缓存映射信息交互所额外消耗的网络带宽;通过一级代理和二级代理,减少分组节点规模的大小,和减少兴趣区域变化造成的节点分组的频繁变动,降低共享时的“抖动”效应;通过瓦片分布计算和节点服务能力计算,充分利用了节点的空闲网络资源,通过快速均匀分布瓦片以提高瓦片请求时的节点命中率和节点匹配率,降低共享失败的几率,从而提高共享效率。本发明提供了具有低花费、高性能、高可用性和高可扩展性的空间数据传输与共享方案。
Description
技术领域
本发明涉及网络GIS数据传输技术领域,特别涉及基于P2P的网络地形系统的数据传输共享方法。
背景技术
数据传输是网络地形系统中的关键技术,它决定了地形系统中瓦片数据的共享和传输策略,并且直接影响着网络GIS地形系统的造价、负载能力和系统的整体性能等。
目前的分布式虚拟地理环境的大规模普及应用仍然受到众多现实条件的限制,包括有限的网络带宽资源、海量的空间数据信息和领域信息、庞大的用户请求量和机器性能的限制等。国内外相关专家学者、科研单位及企业一直致力于利用现有的资源来提升分布式虚拟地理环境服务的能力,包括浏览速度、地理空间分析效率、对庞大请求量的支持等,也取得了较多的科研成果和产品,但是均存在一定程度的缺陷,或是以一方面的绝对牺牲来换取另一方面的提升,如花费巨资增加有效物理负载能力和提升服务速度。然而,这些方法成本高昂,且总是难以追赶由于用户数增加而对地形服务器带宽的爆炸式需求增长,如Google Earth等,其管理者们在2006年的Interop展会上表示这种消耗速度简直让人难以置信,对这些方面的前景甚为担忧(参见喻占武,郑胜,李忠民.一种混合式P2P下的大规模地形数据传输机制.测绘学报,2008,37(1):243-250)。
为了解决这种大规模地形系统的传输和共享问题,有大量的研究,包括在服务器端给出三维物体不同分辨率的模型表示,客户端根据系统的计算能力和网络带宽请求合适的模型,从而满足一定质量的漫游要求,以及采用一种在高速和高带宽的专用网络上实现海量地形数据的实时漫游方法(参见汪国平,吴学礼,陈斌,等.高速网上3维海量地形数据的实时交互浏览的实现.测绘学报,2002,31(1):34-38),和通过建立多级缓冲区减小网络传输的延迟,实现地形数据的实时渲染(参见段炼,朱欣焰.基于Internet的大范围三维地形实时渲染.武汉大学学报(理学版),2005,51(S2):199-202),还有利用渐进传输等方案,但是这些方法都存在着性能等方面的缺陷,如当涉及大规模的场景漫游及空间分析请求时,性能将急剧下降,甚至无法提供服务,同时大量的数据传输均集中在地形服务器,对地形服务器的网络带宽将是一个挑战,经常造成请求数据无法及时传达、空间分析请求很难及时完成等。
传统的基于集中式的地形系统或者由于地形服务器的性能瓶颈问题不支持大规模用户访问,或者由于需要部署大量地形服务器来满足用户日益增长的带宽要求而代价高昂而难以普遍实施;P2P(Peer-to-Peer),即对等计算或对等网络)的出现,为大规模海量地形漫游中的节点规模和地形服务器的带宽和性能瓶颈等矛盾提供了一条有效的解决途径。分布式虚拟地理环境的客户端在进行地理地形数据信息的浏览时,都会在本地保存历史数据,这对通过P2P进行数据共享提供了有效的数据基础。目前基于P2P的网络地形系统主要涉及两类,一类是利用P2P进行数据存储,包括ASPEN系统和P2PR-Tree系统等;另一类是简单的利用P2P进行瓦片数据的共享,如GeoTorrent系统和APPOINT系统等。
利用P2P进行地形数据存储并没有真正解决前面集中式模式下的两个问题,其目的是解决存储空间问题,而不是解决数据传输共享问题;而简单的利用P2P进行数据共享模式中,由于没有充分考虑地形系统的特点,如瓦片热度问题(海洋、沙漠、城市等热度的差异)、节点性能差异问题(南北运营商差异、延时特性、在线状态)、地形漫游(平移操作、放大操作)的特征问题,导致无法满足节点动态性的要求,而P2P系统具有天生的动态性,因此,很难满足实际应用的需要。目前,还没有实用的基于P2P的GIS地形系统出现。
发明内容
本发明目的在于解决现有技术不足,提供基于P2P的网络地形系统的数据传输共享方法。
本发明技术方案为一种基于P2P的网络地形系统的数据传输共享方法,所述网络地形系统中设有地形服务器和节点,其特征在于:在网络地形系统中设置中心服务器,节点上线时通过网络与中心服务器建立通信;地形影像数据预先按照不同比例尺分层分块生成图片并存储于地形服务器中,形成地形瓦片金子塔模型;
预先在中心服务器设置系统配置参数,包括节点分组规模大小、一级代理节点个数以及分组服务质量级差大小及查询跳数;
节点上线接入网络时,自动从中心服务器获取查询跳数;以地形瓦片金字塔模型的0层瓦片划分兴趣区域,根据对应地形数据的0层瓦片个数即为划分的兴趣区域个数,节点按照漫游时的瓦片坐标划分到不同的兴趣区域,然后根据该节点与该兴趣区域内其它节点之间的通信质量,加入兴趣区域内不同分组,分组时满足节点分组规模大小和分组服务质量级差大小;
节点上线接入网络后,每个节点在后台开启一个守护线程,实时监测和统计与本组内其它节点之间的通信质量,依据通信质量的变化在兴趣区域内调整所属分组;分组内节点之间通过缓存映射交换组内各节点拥有的瓦片信息;每个节点设置两级代理,第一级的代理节点根据一级代理节点个数选定,第二级的代理节点从本兴趣区域的相邻区域选定,分组内节点通过代理节点的代理映射获取代理节点信息;
节点在进行地形漫游瓦片下载时,具体处理步骤如下,步骤1,首先通过本组的缓存映射查询本组内节点是否存在目标瓦片,若查询到则直接请求通过P2P的方式下载;若查询不到则从第一级的代理节点开始在所属兴趣区域范围内进行代理查询,查询到后通过P2P的方式下载,查询不到时进入步骤2;步骤2,若请求的目标瓦片属于相邻兴趣区域时,则从第二级的代理节点开始进行代理查询,查询到后通过P2P的方式下载,查询不到时进入步骤3;若请求的目标瓦片不属于相邻兴趣区域时,直接进入步骤3;步骤3,调整节点所在兴趣区域,并将节点在新的兴趣区域加入分组后,返回步骤1循环执行;
步骤1和2中所述代理查询,实现方式为根据从中心服务器获取的查询跳数;向代理节点发出查询请求;代理节点在收到查询请求后,首先在代理节点的缓存映射中查询,若存在目标瓦片则通过P2P的方式下载,若不存在则查询跳数减1后向代理节点的代理节点查询,依此类推直到查询跳数为0时判定查询不到。
而且,节点空闲时,通过计算瓦片的分布情况选择一个节点所属兴趣区域内局部稀少的瓦片作为目标瓦片,然后依据选择的目标瓦片计算本组所有节点针对该瓦片的服务提供能力,最终选择一个服务提供能力最大的节点提供目标瓦片的下载服务。
而且,节点的本地缓存区满时,后台定时依据瓦片寿命和访问热度对瓦片进行置换。
本发明具有以下特点:(1)通过节点特征的测试,更准确的对节点进行分类,减少木桶的“短板”效应,均衡组内各个节点的共享性能。(2)利用兴趣区域的划分,大大减少缓存映射信息交互所额外消耗的网络带宽。可以计算,在2%动态性时,SRTM90地形数据50个节点分组规模下的信息交互需要6.6Mbps的带宽,而采用兴趣区域后,只需要41.7Kbps的带宽。(3)更进一步,通过一级代理和二级代理,可以大大减少分组节点规模的大小。通过测算,在分组节点规模减少到10个时,其消耗的带宽仅仅7.7Kbps,基本可以忽略。(4)同时,通过两级代理,不但扩大了节点共享规模,而且可以减少兴趣区域变化造成的节点分组的频繁变动,降低共享时的“抖动”效应。(5)最后通过瓦片分布计算和节点服务能力计算,充分利用了节点的空闲网络资源,通过快速均匀分布瓦片以提高瓦片请求时的节点命中率和节点匹配率,降低共享失败的几率,从而提高共享效率。可见本发明提供了具有低花费、高性能、高可用性和高可扩展性的空间数据传输与共享方案。
附图说明
附图1是本发明实施例中节点加入系统程序流程图。
附图2是本发明实施例中节点分组自我进发流程图,其中图2a为节点分组自我进发主程序流程,图2b为发送回调函数流程,图2c为接收回调函数流程。
附图3是本发明实施例中广播缓存映射变化程序流程图,其中图3a为Broadcast函数流程,图3b为缓存映射接收消息函数。
附图4是本发明实施例中组领导获取代理节点映射并通知组内其它成员的程序流程图。
附图5是本发明实施例中请求通过P2P下载瓦片的程序流程图,其中图5a为P2P下载请求函数,图5b为P2P下载接收消息函数,图5c为接收数据函数。
附图6是本发明实施例中代理节点查询的程序流程图,其中图6a为P2P下载查询函数,图6b为瓦片查询接收消息函数。
附图7是本发明实施例中节点空闲时瓦片调度程序流程图。
具体实施方式
目前的地形系统中,其影像数据被预先按照不同比例尺分层分块生成图片,形成地形瓦片金子塔模型,当用户请求瓦片时,地形服务器不需要实时生成数据,而是根据用户请求的范围和尺度,在地形服务器选择预先生成好的图片,拼接成满足用户要求的范围,返回给用户,因此,其主要的性能瓶颈存在传输方面,因此通过P2P的方式进行共享是减少地形服务器带宽要求的有效手段之一。但由于地形系统瓦片数量巨大,如90米分辨率的SRTM90,共有3538890块瓦片,如果按照传统模式交换节点间的瓦片信息,将消耗大量的额外带宽;同时,由于P2P节点的动态性以及性能差异,部分节点闲置,而部分节点超载,导致容易出现或者没有瓦片,或者有瓦片但没有剩余服务带宽而出现共享失败,因此如何充分利用节点空闲资源,均匀化分布瓦片,减少部分节点的“热”度,避免共享失败,提高共享效率也很关键。本发明在基于P2P的网络地形系统中设置负责管理节点的中心服务器,新系统由地形服务器、中心服务器和节点构成。因为用户登录地形系统是通过客户端计算机等设备接入网络,与其它节点和中心服务器进行通信,因此节点是动态的。预先在中心服务器设置系统配置参数,包括节点分组规模大小、一级代理节点个数以及分组服务质量级差大小及查询跳数。节点上线时通过网络与中心服务器建立通信,自动获取这些系统配置参数,以便进行分组和瓦片下载。在基于P2P的情况下,节点主要从其它节点下载瓦片,只有节点需要从地形服务器之间下载瓦片时,才与地形服务器通过网络连接进行下载,下载完毕后可以断开连接。
以下对本发明技术方案的具体实施提供详细建议说明:
(1)首先是对节点进行分组:节点上线接入网络时,自动从中心服务器获取查询跳数;以地形瓦片金字塔模型的0层瓦片(即分辨率最低层的瓦片)划分兴趣区域,根据对应地形数据的0层瓦片个数即为划分的兴趣区域个数,节点按照漫游时的瓦片坐标划分到不同的兴趣区域,然后根据该节点与该兴趣区域内其它节点之间的通信质量,加入兴趣区域内不同分组,分组时满足节点分组规模大小和分组服务质量级差大小。通过分组服务质量级差大小,可以根据运营商下的通信质量等级划分为最高级到最低级多个等级。在同一等级的节点可能数目众多,因此在节点分组规模大小的限制内进行分组,同一等级可能出现多个分组。
根据地形瓦片金子塔模型,任意节点漫游区域可以依据式(1)计算对应的兴趣区域:
依据网络通讯质量不同,将节点分入不同的组。具体实施时网络之间的通讯质量可按照IP地址分类和网络带宽来划分:根据全球IP地址表对节点区分对待,将同一类运营商,且服务带宽基本相同的节点归为一组,并赋予一个组号;设运营商的集合为Y,对某一类运营商y的第i个节点,给定最小带宽和带宽级别差异为r,则可得到该节点所属组Ri,y的计算方法:
对每一个分组Ri,j,可赋予一个组号,不同运营商之间的节点,即使带宽相同,但其实际通信质量一般较差,将归入不同的组。同一组内节点间通过缓存映射交换瓦片信息。
(2)节点上线接入网络后,每个节点在后台开启一个守护线程,实时监测和统计与本组内其它节点之间的通信质量,依据通信质量的变化在兴趣区域内调整所属分组;分组内节点之间通过缓存映射交换组内各节点拥有的瓦片信息;每个节点设置两级代理,第一级的代理节点根据一级代理节点个数选定,第二级的代理节点从本兴趣区域的相邻区域选定,分组内节点通过代理节点的代理映射获取代理节点信息;
实施例中,第i个节点的缓存映射信息由一个四元组<IDi,bi,qi,ui>来描述,其中IDi是节点标识,全局唯一(可以通过节点的MAC地址生成),bi是该节点带宽,qi是该节点服务请求队列,表明节点服务的繁忙程度,即“热”度,ui是数组(指针),用于存放节点是否拥有某块瓦片,即ui k表示节点i是否拥有瓦片k,ui k=1表示第i个节点拥有瓦片k,为0则不拥有。经过缓存映射后,一个分组内的缓存映射信息BM(Buffer Map)则是由组内不同节点的四元组构成的内存块来表示,按照<<IDi,bi,qi,ui>,<IDi+1,bi+1,qi+1,ui+1>,……>的形式组织。每个分组内节点都在其缓存映射存储空间内存储所属分组内的缓存映射信息BM。
为了扩大节点共享搜索范围,引入两级代理,其中一级代理节点个数不限,具体实施时可以根据需要在中心服务器预先设定,选取本兴趣区域内其它分组的节点即可;二级代理节点个数固定为8个,分别对应本兴趣区域的8个相邻区域,一个相邻区域一个;提供代理的节点称为代理节点,对应的组称为代理组;从中心服务器获取的代理节点信息也由一个四元组<Gj,IDj,ipj,portj>来描述,其中Gj是代理组的组号,IDj是从代理组内选择的代理节点的标识,ipj和portj分别为代理节点的IP地址和服务端口;代理节点映射信息PPM(ProxyPeer Map)则是由不同代理节点的四元组组成的内存块来表示,按照<<Gj,IDj,ipj,portj>,<Gj+1,IDj+1,ipj+1,portj+1>,……>的形式组织。一个组内各个成员节点之间具有相同的PPM映射信息,具体实施时可以为每个组依据服务质量最大的原则选择组内一个节点作为组领导,组领导负责从中心服务器获取和刷新代理节点映射,并将最新的代理节点映射信息通知组内其它节点,存入各节点的代理映射存储空间。为了减少传输数据量,采取更新刷新的原则,即每次只传输更新的部分。一个组领导下线时,依据同样的原则在组内节点间产生新的领导。
模型中的消息主要分为五类:BM局部交换消息、BM全局交换消息、PPM局部交换消息、PPM全局交换消息和节点搜索消息;为了减少在消息传递过程中所消耗的网络带宽,可以分别对BM局部交换消息和BM全局交换消息形式进行优化。
BM局部交换消息在节点瓦片部分更新时传递,是在节点新下载一块(或多块)瓦片或新删除一块(或多块)瓦片时使用,其消息体定义为<b,TileAddr,Flag>的形式,其中TileAddr表示瓦片地址,Flag表示瓦片状态标志,新下载用1表示,新删除用0表示,由于通过传输通道可以定位节点,故省略节点标识的传递;当同时出现有限块瓦片信息更新时(如下载一块新瓦片的同时删除一块老瓦片),以<b1,<TileAddr1,Flag1>,<TileAddr2,Flag2>>形式传递更新消息;如表示带宽为256Kbps的节点新下载1000号瓦片,同时新删除2000号瓦片的消息形式为<256,<1000,1>,<2000,0>>。对带宽没有变化的节点,消息可以更进一步简化为<<TileAddr1,Flag1>,<TileAddr2,Flag2>>的形式。
BM全局交换消息的交换则是全部瓦片的状态序列<IDi,bi,Flag,Flag,…>,是在节点上线时传递全部瓦片信息时使用,拥有某瓦片时,对应位的Flag为1,否则为0,这样按照一定组织顺序,所有瓦片状态信息都被传递,1个瓦片只占用1位,8个瓦片才占用1个字节的传输数据量。
PPM局部交换消息和PPM全局交换消息由于变化较少,可以不做优化,只需要简单按照每个组代理节点占用16个字节计算。PPM全局交换消息在节点上线时获取,PPM局部交换消息则可以定时刷新,可以与现有BT协议一致,设定每次刷新时更新PPM中三个最慢的代理节点信息的内存块。
(3)节点在进行地形漫游瓦片下载时,具体处理步骤如下,步骤1,首先通过本组的缓存映射查询本组内节点是否存在目标瓦片,若查询到则直接请求通过P2P的方式下载;若查询不到则从第一级的代理节点开始在所属兴趣区域范围内进行代理查询,查询到后通过P2P的方式下载,查询不到时进入步骤2;
步骤2,若请求的目标瓦片属于相邻兴趣区域时,则从第二级的代理节点开始进行代理查询,查询到后通过P2P的方式下载,查询不到时进入步骤3;若请求的目标瓦片不属于相邻兴趣区域时,直接进入步骤3;
步骤3,调整节点所在兴趣区域,并将节点在新的兴趣区域加入分组后,返回步骤1循环执行。将节点在新的兴趣区域加入分组,与节点上线接入网络时加入分组的实现方式一致,即根据该节点与新的兴趣区域内其它节点之间的通信质量,加入兴趣区域内不同分组,分组时满足节点分组规模大小和分组服务质量级差大小。
步骤1和2中所述代理查询,实现方式为根据从中心服务器获取的查询跳数;向代理节点发出查询请求;代理节点在收到查询请求后,首先在代理节点的缓存映射中查询,若存在目标瓦片则通过P2P的方式下载,若不存在则查询跳数减1后向代理节点的代理节点查询,依此类推直到查询跳数为0时判定查询不到。代理节点在收到查询请求后,首先在自己的缓存映射查询所在分组的缓存映射信息BM,有则直接请求P2P下载,否则才继续代理查询。
实施例中的节点搜索消息是在一个节点需要瓦片时,向本组的代理节点发出的查询请求。为了消息在代理之间、代理与代理本组之间传递,消息中必须包含请求者的信息。可以用四元组<ip,port,TileAddr,TTL>来描述消息内容,其中ip和port分别表示请求者的地址和服务端口。因为代理节点并没有节点的缓存映射信息,所以也没有保存对应节点的地址信息;同时,代理节点在没有查询到目标信息时,可能需要将该消息转发给代理节点的代理,传递该信息便于在消息反馈时直接反馈,而不需要像一般的洪泛搜索一样逐级反馈,节省网际流量。TileAddr是搜索目标,即瓦片地址,全局唯一定义;TTL是消息允许的最大查询跳数,每传递一次,跳数减1,直到为0时停止搜索,消息则不再转发,显然,调整TTL跳数值可控制搜索的网络直径。
(4)节点空闲时,通过计算瓦片的分布情况选择一个节点所属兴趣区域内局部稀少的瓦片作为目标下载瓦片,然后依据选择的目标瓦片计算本组所有节点针对该瓦片的服务提供能力,最终选择一个服务提供能力最大的节点提供目标瓦片的下载服务。
为了减少共享失败,充分利用空闲资源,在节点空闲时,主动从中心服务节点下载普通节点没有的瓦片或者组内相对稀少的瓦片,提前为P2P共享准备数据,由于有更多的节点提供所需要的瓦片下载,能有效的分担下载服务,可以减少部分“好”节点成为“热点”的可能。
一个分组内,若设节点总个数为M,该分组对应的兴趣区域内瓦片总块数为S,第i个节点标为mi,第k个瓦片标为pk,考虑局部稀少的数据,同时兼顾全局区域属性以限制瓦片选择,对某瓦片pk定义TSC(Tile Spreading Capability)作为选择依据,TSC值越大,瓦片越被优先下载;分别用LRF(pk)表示瓦片pk的局部稀少性,G(pk)表示瓦片pk的全局区域属性,将地形服务器看成特殊节点0,属于所有分组,则对任意瓦片pk,设为 即地形服务器拥有任意瓦片,则有:
在式(4)中,其中G表示第i个节点所属的兴趣区域。在式(3)中,分子表示所有邻居节点中(包含节点自身)不拥有瓦片pi的节点数量,分母表示拥有瓦片pk的节点数量,则LRF(pk)∈[0,M-1];对TSC作如下定义:
TSC(pk)=LRF(pk)+M×G(pk) (5)
式(5)表明,1)组内瓦片数据的TSC值总是大于组外瓦片数据的TSC值(至少大1)。2)对于组内任意一块瓦片数据,拥有瓦片的节点越少,其TSC值越大,被选择下载进行主动缓存的机会就越大。
同样,对某瓦片pk和节点mi,定义PPC(Peer Providing Capability)作为节点选择依据,PPC最大的节点被选择提供下载服务,如果存在相同PPC的节点,则从中随机选择。对此,节点mi对瓦片pk的PPC值为:
式(6)中,bi是节点mi带宽,qi是节点mi服务请求队列,S×qi代表服务请求队列大小(放大S倍,目的是和请求瓦片数量平衡大小),代表可以被请求的瓦片数量,服务排队队列越长,节点负载越大;可以被请求的瓦片数量越多,成为“热点”的可能性越大;算式表明,在相同条件下,优先选择负载小、成为热点可能性小,且服务带宽越大的节点提供下载服务(在拥有该瓦片的前提下)。
(5)节点的本地缓存区满时,后台定时依据瓦片寿命和访问热度对瓦片进行置换。
对每块瓦片从缓存时间、访问次数、最后一次访问时间进行记录,分别存入变量firstStoreTime(j)、totalAccessTimes(j)、lastAccessTime(j)中,设瓦片平均缓存寿命为acTime(N),则通过公式 可以计算瓦片平均缓存寿命,其中N为已经被置换的瓦片总数,Tn r为第n个瓦片的置换时间、 为首次存储时间;若设当前系统时间为currentSystemTime,则对应的某块瓦片j的缓存存活时间可以表示为ccTime(j)=currentSystemTime-lastAccessTime(j),这样任意瓦片j的老化程度可以定义为 根据以上定义和计算,基于缓存空间需求,将老化程度tclepr(j)最高的一个或多个瓦片从缓存中删除或置换以缓存更有用的瓦片。
本发明实施时可以由本领域技术人员采用软件方式实现自动化流程处理,以下结合附图提供实施例的流程说明。
参见附图1,节点加入系统程序流程为通过提供节点加入组函数实现;函数实现过程为:提取节点网络地址;将节点网络地址与全球网络地址表比较得到该节点所属运营商y;提取节点当前漫游区域瓦片坐标(l,Xi,Yi);根据金字塔模型计算对应的(X0,Y0);根据计算的(X0,Y0)匹配到兴趣区域Mx,y;提取兴趣区域Mx,y下运营商y的最高级分组节点集s;测试节点与节点集s之间的通信质量,当通信质量符合时节点加入当前级分组,否则进行下一步判断所有级分组测试是否完成,完成时节点加入最低级分组,未完成则提取兴趣区域Mx,y下运营商y的下一级分组节点s进行循环测试直至通信质量满足某级分组要求或者所有分组测试完成。实施例首先根据运营商分配节点,是因为不同运营商提供的网络之间通信影响;然后根据运营商下的通信质量等级划分为最高级到最低级多个等级,根据等级进行分组有利于节点之间性能匹配。
参见附图2,节点分组自我进发流程为:守护线程;初始化局部变量,即发送带宽统计变量SendBW值为0和接收带宽统计变量RecvBW值为0;根据统计周期判断是否统计时间到达,到达则开始统计,没有到达则继续等待;开始统计时首先申请线程锁对变量进行多线程锁定;然后根据统计变量SendBW和RecvBW的值,确定通信质量,识别其对应的分组级别G;释放之前申请的线程琐;判断分组级别G和当前节点所处的分组级别是否相符,若相符,则节点离开分组,并重新执行节点加入系统程序流程,否则,继续等待下一次统计。统计变量SendBW和RecvBW的值由2个回调函数修改:1)发送回调函数在节点发送瓦片数据时调用,发送回调函数的流程为:发送回调函数;申请线程锁对变量进行多线程锁定;根据发送信息刷新SendBW的值;释放之前申请的线程锁。2)接收回调函数在节点接收到瓦片数据时调用,接收回调函数的流程为:接收回调函数;申请线程琐对变量进行多线程锁定;根据接收信息刷新RecvBW的值;释放之前申请的线程琐。
参见附图3,广播缓存映射变化程序流程通过提供Broadcast函数实现;函数实现过程为:修改节点自身的缓存映射信息;将映射变化消息编码,根据BM局部交换原则,消息中包含消息ID,节点ID,节点带宽信息b,瓦片地址TileAddr,瓦片标志Flag(为1表示新增加,为0表示新删除);取组内第一个节点开始进行遍历,发送编码好的消息;判断遍历是否完成,若没有完成,则取组内下一个节点并发送编码好的消息,直至组内所有节点遍历完成。节点在接收到消息时,调用缓存映射接收消息函数处理接收到的缓存映射消息,缓存映射接收消息函数的流程为:缓存映射接收消息函数;对接收的消息解码;判断消息ID是否表明为缓存映射消息;若是,则根据解码的节点ID、瓦片地址TileAddr、瓦片标志Flag和节点带宽信息b更新该节点的缓存映射信息。
参见附图4,组领导获取代理节点映射并通知组内其它成员的程序流程通过提供代理节点映射函数实现;函数实现过程为:选择三个服务质量最差的代理节点作为删除的代理节点;从中心服务器请求三个新的代理节点作为新增的代理节点;按照<节点ID,节点标志Flag,...>的形式排列组织所有代理节点的消息,其中删除代理节点的Flag为0,新增代理节点的Flag为1;设置消息ID为代理节点映射消息ID,然后调用广播缓存映射变化程序流程的Broadcast函数广播代理节点映射变化消息。具体实施时,可以根据需要确定更新的代理节点数目,建议是三个。
参见附图5,请求通过P2P下载瓦片的程序流程通过提供P2P下载请求函数实现;函数实现过程为:设置消息ID为P2P下载请求,对请求消息进行编码,消息中还包含请求的瓦片索引地址TileIndex,请求节点的网络服务地址Addr和服务端口Port;根据选择的目标节点的服务地址和端口,利用sendto函数(windows下TCP/IP模块提供的标准发送函数)将请求消息发送到目标节点。目标节点在接收到该请求消息后,通过P2P下载接收消息函数处理接收到的P2P请求消息,P2P下载接收消息函数的流程为:P2P下载接收消息函数;首先将接收到的消息解码,等到消息参数,包括消息ID,请求的瓦片索引地址TileIndex,请求节点的网络服务地址Addr和服务端口Port;然后判断是否为P2P下载请求消息,若是,则记录开始时间;根据请求的瓦片索引地址从本地缓存区获取瓦片数据后利用SendTo函数循环发送所需要的瓦片数据到请求节点的网络服务地址Addr和服务端口Port;发送完毕后记录完成时间;根据发送的瓦片数据大小和发送开始时间、发送完成时间计算发送带宽统计变量SendBW的值;调用节点分组自我进发流程的发送回调函数修改统计变量SendBW。请求节点在接收到瓦片数据时,则自动调用接收数据函数接收瓦片,接收数据函数的流程为:记录接收数据的开始时间;循环调用recvfrom函数(windows下TCP/IP模块提供的标准接收函数)接收瓦片数据,并保存到本地缓存区;接收完毕后记录完成时间;根据接收的瓦片数据大小和接收开始时间、接收完成时间计算接收带宽统计变量RecvBW的值;调用节点分组自我进发流程的接收回调函数修改统计变量RecvBW。
参见附图6,代理节点查询的程序流程为通过提供P2P下载查询函数实现;函数实现过程为:首先通过本地缓存映射信息查询组内节点是否拥有目标瓦片;若存在,则直接调用P2P下载请求函数进行瓦片下载;若不存在,则判断查询跳数是否大于0,若不大于0,则表示不能通过代理查询,则将请求直接发送给地形服务器,由地形服务器提供瓦片下载;若查询跳数是大于0,则首先将查询跳数减1,然后设置消息ID为瓦片查询消息后将消息编码,消息中包含查询的目标瓦片索引地址TileIndex,最初发出查询请求的节点网络服务地址Addr和服务端口Port,以及剩余的查询跳数值TTL;最后循环遍历所有代理节点,从代理节点映射找到第一个代理节点,根据代理节点的网络服务地址和服务端口,利用SendTo函数将消息发送到代理节点;若还存在代理节点,则选择下一个代理节点继续发送,直到所有代理节点都发送完毕。代理节点在接收到消息后,通过瓦片查询接收消息函数处理接收到的瓦片查询消息,瓦片查询接收消息函数的流程为:瓦片查询接收消息函数;首先将接收到的消息解码,得到消息参数,包括消息ID,查询的瓦片索引地址TileIndex,请求节点的网络服务地址Addr和服务端口Port;然后判断是否为瓦片查询消息,若是,则直接调用P2P下载查询函数进行查询处理。
参见附图7,节点空闲时瓦片调度程序流程通过提供瓦片调度函数实现;函数实现过程为:根据节点所处兴趣区域,遍历该区域内的所有瓦片并根据公式(5)计算其对应的TSC值;将所有瓦片的TSC值,按照从大到小的顺序排列,选择TSC值最大的瓦片p作为目标备份瓦片;根据选择的目标瓦片p,根据公式(6)计算该节点对应的组内所有节点的PPC值;将所有节点的PPC值,按照从大到小的顺序排列,选择PPC值最大的节点m作为目标服务节点;调用P2P下载请求函数,从目标服务节点m下载备份目标瓦片p。
Claims (3)
1.一种基于P2P的网络地形系统的数据传输共享方法,所述网络地形系统中设有地形服务器和节点,其特征在于:在网络地形系统中设置中心服务器,节点上线时通过网络与中心服务器建立通信;地形影像数据预先按照不同比例尺分层分块生成图片并存储于地形服务器中,形成地形瓦片金子塔模型;
预先在中心服务器设置系统配置参数,包括节点分组规模大小、一级代理节点个数以及分组服务质量级差大小及查询跳数;
节点上线接入网络时,自动从中心服务器获取上述系统配置参数;以地形瓦片金字塔模型的0层瓦片划分兴趣区域,根据对应地形数据的0层瓦片个数即为划分的兴趣区域个数,节点按照漫游时的瓦片坐标划分到不同的兴趣区域,然后根据该节点与该兴趣区域内其它节点之间的通信质量,加入兴趣区域内不同分组,分组时满足节点分组规模大小和分组服务质量级差大小;
节点上线接入网络后,每个节点在后台开启一个守护线程,实时监测和统计与本组内其它节点之间的通信质量,依据通信质量的变化在兴趣区域内调整所属分组;分组内节点之间通过缓存映射交换组内各节点拥有的瓦片信息;每个节点设置两级代理,第一级的代理节点根据一级代理节点个数选定,第二级的代理节点从本兴趣区域的相邻区域选定,分组内节点通过代理节点的代理映射获取代理节点信息;
节点在进行地形漫游瓦片下载时,具体处理步骤如下,
步骤1,首先通过本组的缓存映射查询本组内节点是否存在目标瓦片,若查询到则直接请求通过P2P的方式下载;若查询不到则从第一级的代理节点开始在所属兴趣区域范围内进行代理查询,查询到后通过P2P的方式下载,查询不到时进入步骤2;
步骤2,若请求的目标瓦片属于相邻兴趣区域时,则从第二级的代理节点开始进行代理查询,查询到后通过P2P的方式下载,查询不到时进入步骤3;若请求的目标瓦片不属于相邻兴趣区域时,直接进入步骤3;
步骤3,调整节点所在兴趣区域,并将节点在新的兴趣区域加入分组后,返回步骤1循环执行;
步骤1和2中所述代理查询,实现方式为根据从中心服务器获取的查询跳数;向代理节点发出查询请求;代理节点在收到查询请求后,首先在代理节点的缓存映射中查询,若存在目标瓦片则通过P2P的方式下载,若不存在则查询跳数减1后向代理节点的代理节点查询,依此类推直到查询跳数为0时判定查询不到。
2.如权利要求1所述网络地形系统的数据传输共享方法,其特征在于:节点空闲时,通过计算瓦片的分布情况选择一个节点所属兴趣区域内局部稀少的瓦片作为目标瓦片,然后依据选择的目标瓦片计算本组所有节点针对该瓦片的服务提供能力,最终选择一个服务提供能力最大的节点提供目标瓦片的下载服务。
3.如权利要求1所述网络地形系统的数据传输共享方法,其特征在于:节点的本地缓存区满时,后台定时依据瓦片寿命和访问热度对瓦片进行置换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910063268A CN101616177A (zh) | 2009-07-21 | 2009-07-21 | 基于p2p的网络地形系统的数据传输共享方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910063268A CN101616177A (zh) | 2009-07-21 | 2009-07-21 | 基于p2p的网络地形系统的数据传输共享方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101616177A true CN101616177A (zh) | 2009-12-30 |
Family
ID=41495577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910063268A Pending CN101616177A (zh) | 2009-07-21 | 2009-07-21 | 基于p2p的网络地形系统的数据传输共享方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101616177A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103118102A (zh) * | 2013-01-28 | 2013-05-22 | 北京师范大学珠海分校 | 一种在云计算环境下空间数据访问规律的统计与控制系统及方法 |
CN105872000A (zh) * | 2015-12-21 | 2016-08-17 | 乐视云计算有限公司 | P2p节点的分组方法、装置及系统 |
CN107911294A (zh) * | 2017-11-22 | 2018-04-13 | 武汉兆格信息技术有限公司 | 一种基于地表区块的协同标绘消息路由转发及处理方法 |
CN108632298A (zh) * | 2017-03-15 | 2018-10-09 | 长沙博为软件技术股份有限公司 | 一种实现网络智能多点共享大数据的方法和装置 |
CN113254366A (zh) * | 2021-06-28 | 2021-08-13 | 浙江大学 | 一种基于时空老化模型的服务端瓦片缓存置换方法 |
CN114490458A (zh) * | 2021-12-31 | 2022-05-13 | 浙江毫微米科技有限公司 | 数据传输方法、芯片、服务器以及存储介质 |
-
2009
- 2009-07-21 CN CN200910063268A patent/CN101616177A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103118102A (zh) * | 2013-01-28 | 2013-05-22 | 北京师范大学珠海分校 | 一种在云计算环境下空间数据访问规律的统计与控制系统及方法 |
CN103118102B (zh) * | 2013-01-28 | 2016-05-04 | 北京师范大学珠海分校 | 一种在云计算环境下空间数据访问规律的统计与控制系统及方法 |
CN105872000A (zh) * | 2015-12-21 | 2016-08-17 | 乐视云计算有限公司 | P2p节点的分组方法、装置及系统 |
CN108632298A (zh) * | 2017-03-15 | 2018-10-09 | 长沙博为软件技术股份有限公司 | 一种实现网络智能多点共享大数据的方法和装置 |
CN107911294A (zh) * | 2017-11-22 | 2018-04-13 | 武汉兆格信息技术有限公司 | 一种基于地表区块的协同标绘消息路由转发及处理方法 |
CN113254366A (zh) * | 2021-06-28 | 2021-08-13 | 浙江大学 | 一种基于时空老化模型的服务端瓦片缓存置换方法 |
CN114490458A (zh) * | 2021-12-31 | 2022-05-13 | 浙江毫微米科技有限公司 | 数据传输方法、芯片、服务器以及存储介质 |
CN114490458B (zh) * | 2021-12-31 | 2023-06-20 | 浙江毫微米科技有限公司 | 数据传输方法、芯片、服务器以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Su et al. | Big data in mobile social networks: A QoE-oriented framework | |
Xu et al. | Performance-aware mobile community-based VoD streaming over vehicular ad hoc networks | |
CN105338113B (zh) | 一种针对城市数据资源共享的多平台数据互联系统 | |
CN109873860B (zh) | 一种卫星网络资源信息存储方法、发现方法及系统 | |
Sonbol et al. | EdgeKV: Decentralized, scalable, and consistent storage for the edge | |
CN101616177A (zh) | 基于p2p的网络地形系统的数据传输共享方法 | |
CN104135715B (zh) | 一种位置服务的实现方法、装置,及系统 | |
CN108920552A (zh) | 一种面向多源大数据流的分布式索引方法 | |
CN105117497B (zh) | 基于Spark云网络的海洋大数据主从索引系统及方法 | |
CN104539681A (zh) | 分布式gis加速系统和gis服务的处理方法 | |
CN104346345B (zh) | 数据的存储方法及装置 | |
CN101217565B (zh) | 一种对等网络视频共享系统中分类检索的网络组织方法 | |
CN110461037B (zh) | 一种动态格网化网络rtk定位方法及系统 | |
CN102355490A (zh) | 用于网络空间信息服务系统的空间信息集群缓存预取方法 | |
CN109582637A (zh) | 网络基础结构系统和使用其的数据处理和数据共享的方法 | |
Lee et al. | Efficient peer-to-peer information sharing over mobile ad hoc networks | |
CN110413845A (zh) | 基于物联网操作系统的资源存储方法及装置 | |
CN101719148A (zh) | 三维空间信息的存储方法、装置、系统及调度系统 | |
CN102420864B (zh) | 一种面向海量数据的数据交换方法 | |
CN103107944B (zh) | 一种内容定位方法和路由设备 | |
CN101179475B (zh) | 一种以对等网络方式下载地图数据的方法 | |
Singh et al. | Location driven edge assisted device and solutions for intelligent transportation | |
US8543700B1 (en) | Asynchronous content transfer | |
KR100475668B1 (ko) | 그리드 네트워크에서 그리드 자원에 대한 정보를 제공하는장치 및 방법과 그 프로세스를 기록한 컴퓨터 판독가능한기록매체 | |
Liu et al. | Real-time search-driven caching for sensing data in vehicular networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20091230 |