劉德政



摘 要: 在介紹基于云計算環境的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.