刘德政
摘 要: 在介绍基于云计算环境的GIS软件特点的基础上,指出缓存技术是影响基于云计算GIS软件发挥强大功能的关键因素,进而对各缓存技术进行比较,GIS软件缓存技术的主要目的就是减少对云数据库的查询,降低数据库的压力。通过研究,提出了基于云计算环境的GIS软件分布式缓存技术及其实现方法,给出了云计算GIS软件分布式缓存系统的结构以及数据交输的技术实现方法,提高了云计算GIS软件的用户体验度,降低了数据库的负担,充分利用了资源。
关键词: 云计算; GIS软件; 缓存技术; 分布缓存
中图分类号:TN92?34 文献标识码: A 文章编号: 1004?373X(2016)07?0033?03
Abstract: The characteristics of GIS software based on cloud computing environment is introduced, and on this basis, it is pointed out that caching technology is the key factor to affect on the function development of GIS software based on cloud computing. And then each caching technology is compared, it shows that the primary purpose of GIS software caching technology is to reduce the query of cloud database and release the database pressure. The GIS software distributed caching technology and its implementation method based on cloud computing environment are proposed according to research. The structure of the GIS software distributed caching system and technology implementation method of data delivery are given, which can improve the users′ experience of GIS software based on cloud computing, reduce the database burden, and utilize the resource fully.
Keywords: cloud computing; GIS software; caching technology; distributed caching
地理信息系统(Geographic Information System,GIS)是一种特定的且重要的空间信息系统,是对地理分布数据进行加工、应用的系统,它由硬件系统、软件系统和数据库三大部分组成。GIS是软件系统的一部分,是用户直接面向地理信息系统的桥梁,用户通过GIS软件,在庞大数据库的支持下,可以进行多种与地理信息相关的工作,例如矿产资源的普查、水污染的评测、城市发展规划、农林牧业管理等。2006年“云计算”概念的提出,基于云计算环境的GIS软件比传统的GIS软件显现出许多优点,它不仅降低了对用户的要求和开发人员的工作量,还可以高效地利用资源,在提高数据安全性的同时也大大降低了网络的负担。
如今,GIS软件可谓百花齐放,各种各样的GIS软件的功能及应用各不相同,但都需要海量的数据作为其分析基础。云计算环境下,为了应对海量数据与用户请求带来的挑战,解决传统数据库面临的大规模数据访问瓶颈问题,合适的缓存技术就显得尤为重要。只有一个好的缓存技术实现方法,才可以让云计算环境下的GIS软件发挥出其强大的功能。
1 基于云计算环境的GIS软件
GIS软件是整个地理信息系统的重要组成部分(见图1);如何选择GIS软件,要综合考虑其他软件的性能,不可剥离系统独立分析;只有综合考量才可以找到系统的解决方案,否则将会延长系统建设的周期,降低系统的效益。经过多年的发展,如今市面上常用的GIS软件非常多,常用的GIS软件有美国GIS开发商ESRI,Intergraph和MapInfo的软件产品以及三个国产软件:MapGIS,GeoStar和Citystar。这些软件随着技术的不断发展,版本不断更新,软件的功能从比较简单、单一发展到了综合多功能的软件。并且,随着云计算概念的提出,GIS软件也由传统基于网络环境的GIS逐渐向基于云计算环境的GIS发展。
就目前的发展情况而言,基于云计算环境的GIS是指将空间数据的存储和处理交给大量的分布式计算机,通过基础设施即服务(Infrastructure as a Service,IaaS)、平台即服务(Platform as a Service,PaaS)和软件即服务(Software as a Service,SaaS)三种形式为用户提供空间信息服务的地理信息系统。其中SaaS模式对GIS软件的开发与发展起到极大的推动作用。
基于云计算环境开发的SaaS软件使用云计算架构并租出给最终用户。通常,云计算处于GIS软件的底层,GIS软件处在云计算和用户之间。因为GIS软件基于云计算架构,所以该GIS软件可以获取海量的资源,然后提供给用户。以往SaaS供应商大多基于面向服务架构(Service?Oriented Architecture,SOA)开发应用并租出给最终客户,他们更专注于软件的开发,而对网络资源的管理能力相对较弱,这往往会浪费大量资金购买服务器和带宽等基础设施,而且提供的用户负载依然有限。如SaaS供应商的技术投入大部分在应用开发,而对系统底层的数据资源的收集、分析和整合投入的技术和资金都相对较小,云计算恰好与此相反,两者可以做到互补。
在云计算的环境下,GIS软件开发商可以专注于软件的开发和应用,而把网络资源的管理、计算任务的分配以及一些基础设施的建设等交给云计算,同时用户也可以更方便、更高效地利用GIS软件完成自己的任务,这样就不仅仅是双赢,而是三赢。如今,SaaS已经迅速发展起来,基于云计算环境的GIS软件的客户也不断地增长,但是基于云计算环境的GIS软件缓存技术的实现将会影响用户对GIS软件的使用体验效果。
2 缓存技术的比较
当进行一个操作,需要读取数据时,计算机硬件不会直接去内存中读取这个数据,而是先在缓存中寻找,这个缓存就起到了数据交换时的缓冲作用。如果在缓存中查找到想要的数据,就可以立即执行想要的操作;如果在缓存中找不到,再转向内存中查找。之所以要设置这样的机制,是因为很多时候大部分操作都是重复的,读取的数据也是重复,如果每次都到内存中查找数据,势必会很慢,有了缓存,重复操作的数据在缓存中进行,可以让操作执行的速度极大的提升。通过上面的描述可以知道,缓存就是协调硬件和软件之间数据调用速度不同的结构。
虽然缓存技术的不同分类有着不同的作用,但是缓存工作的最终都是指数据的引用在空间或时间上是局部的。在空间上,CPU在上一步需要的数据,接下来就可能使用其附近的数据;在时间上,一个数据在此刻被访问过,在下一刻或隔一段时间还会被访问。云计算GIS软件的缓存技术的特点在于云计算环境,GIS软件缓存技术就是指临时文件交换区,电脑把使用软件从存储器里提出来临时放在缓存中,与应用程序缓存近似,减少对云数据库的查询。
3 云计算GIS软件分布式缓存的实现
为了解决云计算环境的GIS软件缓存技术对用户使用GIS软件体验效果的影响,基于云计算GIS软件的特点,在综合比较多种缓存技术的基础上,本文提出了云计算环境下GIS软件的分布式缓存技术,并就其实现方法进行了研究。
3.1 系统结构
由图2可以看出,GIS软件的分布式缓存系统将数据分散到多个缓存服务器节点,使数据集中在内存中管理,系统对用户提供统一的访问接口。GIS软件的分布式缓存拉近了用户与应用间的距离,大大提升了用户使用GIS软件的体验效果。
3.2 标准规范
目前,分布式缓存有两个标准规范,分别是JSR?107与JSR?347。JSR?107规范主要针对Java,规定了其缓存的类型和属性,同时给出了API和操作语义说明,包括对象的创建、共享访问、失效和一致性维护等。JSR?107是由Java标准制订组织维护的一项Java对象缓存服务规范。
JSR?347是由Red Hat提交JCP的一项Java数据网格规范,它提供了对数据网格访问、存储和数据管理的API说明,并强调了扩展性及数据的持久性存储。作为JSR?107规范的超集,JSR?347复用了其大部分接口规范,同时针对JSR?107规范的局限性,添加了许多新特性(如数据分区、复制和事务等)和新的APl支持。
3.3 数据交输
云计算环境下GIS软件分布式缓存系统的核心技术在于数据的交输,根据功能层次的不同,可将其分为交输模式、数据一致性、数据分区和数据路由四个层面。交输模式指GIS软件缓存与底层云数据之间的交互模式,在交输模式层面,采用延迟写(write?behind)模式,该模式的特点是当对象更新请求被放入执行队列中,超过指定的时间间隔后异步写入数据库。这种交输模式,大大提升了GIS软件的应用性能,用户的软件体验效果也十分优异,因为不再需要等待数据写入数据库中,这样可以大大减小数据库的访问压力。数据一致性指数据复制的性能,复制技术的主要目标是提高可用性,同时可通过创建数据副本均衡节点负载、提升系统性能,从复制模式角度可将复制技术分为主从复制和多主复制。数据分区指数据分布情况,GIS软件缓存系统依据目前最流行的数据分区算法一致性哈希(consistent hashing)及其改进算法进行数据分区。数据路由则是指数据的定位问题,在客户端基于哈希算法将用户请求直接定位至目标服务器节点,在服务端,用户请求到达任一缓存节点,该节点负责将请求逐跳转发至目标节点。数据分区和数据路由二者紧密联系。
3.4 缓存特性
分布式缓存具有如下特性:
(1) 高速度性。GIS软件的分布式缓存与传统缓存方式的最大不同就是在传统缓存技术下如果遇到海量数据访问时,数据的输入和输出将大大降低缓存性能,使得GIS软件对用户请求响应的时间很长,大大降低了软件的用户体验性能;而分布式缓存则不同,它的数据存储介质是高速内存,在理想的状况下可以获得高速的读取与写入性能。
(2) 高资源利用性。GIS软件的分布式缓存支持弹性扩展,随着访问数据量的增多与减少,分布式缓存可以增加或减少缓存节点,最大限度地利用资源。
(3) 高可用性。由于数据冗余机制的存在,GIS软件的分布式缓存可以达到极高的数据可用性,并且能够自动发现失效,然后透明地解决问题。
(4) 高易用性。GIS软件的分布式缓存提供了单一的数据与管理视图,其API接口也十分简单,自动发现失效,主动恢复,自动备份节点,便于统一维护。
4 结 语
基于云计算环境下的GIS软件分布式缓存系统,不仅使得GIS软件具备了云计算的优势,降低了对GIS用户的要求和开发人员的工作量,而且分布式缓存进一步提高了GIS软件的用户体验度,它降低了数据库的负担,极有效的利用资源,而且大大提高了数据的安全性。基于云计算环境下的GIS软件必将在现有的GIS软件中一枝独秀,分布式缓存架起了云计算与GIS软件之间的桥梁,使用户受益,让 GIS软件发挥出更加强大的功能。
参考文献
[1] THAIN D, TANNENBAUM T, LIVNY M. Distributed compu?ting in practice: the condor experience [J]. Concurrency and computation: practice and experience, 2005, 17(2): 323?356.
[2] 陈维崧,陈庆秋.基于云计算的GIS研究[J].测绘与空间地理信息,2011,34(1):157?158.
[3] 戴立乾,陈娜.浅议云计算时代下GIS的发展[J].安徽农业科学,2009,37(31):15556?15557.
[4] 吴边,吴信才.Cloud GIS关键技术研究[J].计算机工程与设计,2011,32(4):1342?1346.
[5] 商新娜.Web应用中的海量数据访问缓存技术[J].北京联合大学学报(自然科学版),2007,21(3):45?49.
[6] 陈康,郑纬民.云计算:系统实例与研究现状[J].软件学报,2009(5):78?80.
[7] 林海略,韩燕波.多租户应用的性能管理关键问题研究[J].计算机学报,2010(10):80?85.
[8] 秦秀磊,张文博,魏峻,等.云计算环境下分布式缓存技术的现状与挑战[J].软件学报,2013(1):51?66.
[9] 张步忠,吕强.一个基于数据库的Web Cache的设计与实现[J].计算机工程与设计,2005,26(7):1911?1914.
[10] 宗善德,郭飞.基于Java的Web数据库连接池技术的研究[J].计算机工程与应用,2002,38(8):201?203.