论文部分内容阅读
近年来,3S技术飞速发展,空间数据得到了广泛的应用。空间数据的数量剧增和日益细化的数据生产及应用的行业分工,需要在不同的数据生产者与使用者之间建立合理的互操作机制。同时,在大多数地理信息系统中,数据层和数据表都来源于多个组织,而对GIS管理数据需要分布于不同用户之间。再次,空间数据数据量大,数据复杂,对计算和存储资源提出了更高的要求。单台计算机通常难以胜任。
随着网络技术的发展,特别是互联网的普及应用,人们开始采用在分布式环境中管理空间数据的技术。以往的空间数据分布式管理大多采用客户/服务器架构,然而存在着很多不足:一方面,这种架构下会出现网络通信瓶颈和单点失效,系统的可用性和可靠性难以保证;另一方面,系统的规模会受到中心节点性能的制约,不能满足国家级GIS应用连接大量接点的需求;此外,客户/服务器架构还有资源利用率低、伸缩性差等缺陷。近年来提出的P2P架构有助于克服上述问题,可适合空间应用。使用P2P来构建空间应用,最为基础和重要的工作是支持空间查询。在没有索引的P2P系统中,查询按照泛洪方式(floodquery)方式进行,这种方式会给网络带来巨大的通信负担,查询效率低;分布式哈希表是P2P环境的数据定位的主要方法,然而由于空间数据复杂,无法直接支持P2P环境中的空间查询,因此需要设计P2P环境下的空间索引方法,以有效的支持P2P环境下的空间查询。
本论文在对现有研究成果进行分析和总结的基础上,研究并设计实现了P2P空间索引——Peer-RTree,研究内容和成果包括:
1.研究P2P环境下的空间索引结构。
提出了一个支持PureP2P架构的空间索引结构。索引记录中保存了P2P系统中的网络节点和它们的空间范围。根据索引,可以很快找到与查询相交的对象集合,并找出所在的网络位置。空间查询可以进一步的发送到相关节点上执行。该索引结构支持PureP2P网络结构,无需中心节点或超级节点,避免了传统C/S架构中容易出现的网络通信瓶颈和单点失效等问题,提高了系统性能。其次,本索引结构是平衡的R树结构,适用于空间数据分布不均匀的特点,具有更高的查询效率。本文提出的索引结构是冗余的,在节点中某些节点失效的时候,查询仍然可以完成,提高了系统的可靠性。
2.研究P2P空间索引操作的详细算法。
P2P空间索引除了需要支持有效的空间查询外,还需要维护当P2P网络中节点变化时,索引所进行的更新。能够引起索引更新的节点变化情况包括:节点加入,节点退出,节点失效,节点数据更新。P2P网络中,节点可能随时加入和退出系统,每个网络节点均只保存索引的一部分而非全部,原有的R树算法不再适合,我们设计了相应的算法来处理。同时,由于采用了冗余机制,索引的更新不再是一个节点的事情,网络节点加入和退出时,除了要更新本地节点的索引数据,还需要把对应的更新结果发送到相关节点上。P2P网络的没有中心节点,节点失效经常发生且没有具体对应的节点维护。因此,本文设计了节点失效的检测机制,来处理节点失效的情况。
3.设计并实现了P2P空间索引原型。
在原有相关工作基础之上,我们实现了一个P2P空间索引原型。原型系统是基于Java开发的,系统中定义了P2P空间索引类以及类的操作,实现了操作中设计的各种算法。同时,与传统的空间索引相比,P2P空间索引是一个网络环境下的索引,需要在网络环境下通信是它的一个特点。为此,需要实现P2P网络中的可通信机制。研究中使用了当前较为流行的P2P通信平台是JXTA作为底层通信的基础平台,针对应用自身的特点,设计并实现了简单的用于P2P空间索引中的通信协议。最后,我们为P2P空间索引建立了试验环境,进行了相关的性能试验,试验结果证明,我们实现的P2P空间索引具备较高的查询性能。
本文的研究得到国家自然科学基金项目和国家高技术研究发展计划(863计划)课题《新一代GIS关键技术研究》的支持。