周 鵬,尹 菲
(北京師范大學珠海分校信息技術學院,廣東珠海519085)
基于云計算技術的GIS軟件工程模式
周 鵬,尹 菲
(北京師范大學珠海分校信息技術學院,廣東珠海519085)
介紹云計算的基本概念與GIS的軟件工程的特點,分析云計算對GIS軟件開發的影響,從GIS軟件體系結構、開發組織和部署管理三個方面探討云計算環境下GIS軟件工程設計方法,并對云計算環境下實施GIS軟件開發需要注意的幾個問題提出建議。
云計算;GIS;軟件工程
在互聯網和 IT業巨頭們的推動下,云計算(cloud computing)時代即將來臨。以摩爾定律和Wintel架構為主導的硬件產業,傳統軟件產業的商業模式,企業IT架構,甚至普通人的生活都會因云計算的到來和發展而發生改變。GIS是構建在堅固IT基礎之上的信息系統,云計算時代的到來對GIS的發展將會有深遠影響。
云計算實質上是對軟件和信息系統體系結構的又一次革新。它將系統軟件和應用的邊界重新進行了劃分。云計算環境下GIS軟件工程模式的主要特點就是將基礎數據服務和軟件服務由專業機構統一提供,GIS應用以此為基礎去構建更為復雜的GIS應用軟件系統。
云計算(cloud computing),是分布式計算技術的一種,其最基本的概念是通過網絡將龐大的計算處理程序自動分拆成無數個較小的子程序,再交由多部服務器所組成的龐大系統經搜尋、計算分析之后將處理結果回傳給用戶。通過這項技術,網絡服務提供者可以在數秒之內,成功處理數以千萬計甚至億計的信息,達到和“超級計算機”同樣強大效能的網絡服務。
狹義云計算是指IT基礎設施的交付和使用模式,即通過網絡以按需、易擴展的方式獲得所需要的資源(硬件、平臺、軟件)。
廣義云計算是指服務的交付和使用模式,指通過網絡以按需、易擴展的方式獲得所需要的服務。這種服務可以是IT和軟件、互聯網相關的,也可以是其他的任意服務。
云計算經常與并行計算(parallel computing)、分布式計算(distributed computing)和網格計算(grid computing)相混淆。云計算是虛擬化(virtualization)、效用計算(utility computing)、基礎設施即服務(laaS)、平臺即服務 (paaS)、軟件即服務 (saaS)等概念混合演進并躍升的結果。
云計算的基本流程如圖1所示。

圖1 云計算的基本流程
1)超大規模。“云”具有相當大的規模。如:從2007年初Google發布Google Apps服務(一種免費提供的簡化office軟件包,數據在互聯網上存儲與處理)到現在,Google的云計算已經擁有100多萬臺服務器;而 Amazon、IBM、微軟、Yahoo等的“云”也均擁有幾十萬臺服務器。“云”能賦予用戶前所未有的計算能力和數據儲存能力。
2)全虛擬化。云計算支持用戶在任意位置、使用各種終端獲取應用服務。所請求的資源來自“云”,而不是固定的有形的實體。應用在“云”中某處運行,但實際上用戶無須了解,也不用擔心應用運行的具體位置。只需要一臺筆記本或者一部手機,就可以通過網絡服務來實現我們需要的一切,甚至可以完成包括超級計算這樣的任務。
3)高可靠性。“云”使用了數據多副本容錯、計算節點同構可互換等措施來保障服務的高可靠性,有專業的數據管理人員和更好的數據管理平臺來維護數據安全和有效的使用。
4)寬通用性。云計算不針對特定的應用,在“云”的支撐下可以構造出千變萬化的應用,同一個“云”可以同時支撐不同的應用運行。從用戶角度來看,不同用戶看到的是不同的“云”,不同的“云”能給予用戶不同的權限。
5)高擴展性。“云”的規模可以動態伸縮,自動滿足應用需求和用戶規模增長的需要。而這種擴展性對用戶卻是透明的。
6)按需服務。“云”是一個龐大的資源池,可按需使用,“云”可以像有線電視那樣使用,可以根據需要訂閱服務內容。
7)極其廉價。由于“云”的特殊容錯措施可以采用極其廉價的節點來構成,“云”的自動化集中式管理使大量企業無須負擔日益高昂的數據中心的管理成本,“云”的通用性使資源的利用率較之傳統系統大幅提升,因此用戶可以充分享受“云”的低成本優勢,經常只要花費幾百美元、幾天時間就能完成以前需要數萬美元、數月時間才能完成的任務。
GIS軟件工程是指用軟件工程的概念、原理、技術和方法組織GIS軟件設計開發和維護的工程活動。它包括GIS工程規劃、設計、實施、評價與維護技術,還包括工程的需求控制、質量控制、進度控制、風險控制等管理技術,以及GIS數據生產的管理和質量控制體系。
(1)系統復雜度高
軟件的復雜度與如下幾個因素密切相關:
1)交付的文檔的質量和數量。交付的文檔中,包括軟件需求說明、系統設計書、用戶手冊、程序清單、測試報告中必須增加與空間數據及其空間分析功能相關的說明,致使文檔的內容和難度增加。
2)軟件的微觀復雜度。因為GIS涉及的因素多、數據容量大、功能復雜,其程序的長度和內部結構的復雜程度都非常大。
3)軟件的宏觀復雜性。由于空間理論的理解難度,以及目前我國GIS軟件人才相對缺乏致使GIS軟件開發難度較高。
(2)數據在系統中具有特別地位
GIS的特色在于支持異質海量數據處理,數據庫建設在GIS建設中占有非常重要的地位。在系統開發過程中,在數據準備方面需要注意如下幾點:
1)數據的質量。GIS需要輸入高質量的數據,否則容易影響系統效率和功能實現,甚至導致系統崩潰。GIS的數據在空間關系(主要是拓撲關系、點位關系等)、元數據、分層、圖文關聯等方面有嚴格的要求。
2)數據的現勢性。即數據的時效,在GIS中空間數據變化較快,數據容易過時,導致數據失效,所以需要不斷地進行數據采集。
3)合理的數據組織結構。GIS所處理的數據包括矢量格式、柵格格式的空間數據和表格、文本、多媒體等非空間數據,不同的組織方式對系統的效率、安全性具有至關重要的影響。
下面從軟件體系結構、軟件開發組織和軟件部署、運行管理維護三個方面探討云計算環境下的GIS軟件工程模式
與傳統的GIS軟件體系結構相比,基于云計算的GIS軟件體系結構最重要的特點在于其前所未有的開放性和成熟的構件化。在“云”端的GIS應用必將大量利用“云”服務提供的現成的GIS構件。同時,新研制的軟件又將成為后續GIS應用軟件開發所能利用的成熟GIS構件,由云計算的特點可知,在“云”端可以超大規模、有效、可靠地提供海量的地圖數據和地圖服務;在“云”的支撐下可以構造不同用戶需求的GIS應用。在“云”的另一端,用戶在計算機的瀏覽器上就可以完成對所有功能的使用。所以在云計算環境下能大大降低GIS軟件開發的復雜度。
云計算GIS軟件體系結構,本質上是完全分布式的,是客戶端、服務端、管理端、開發端、測試端等多種軟件的有機集成,應用之間有清晰的邏輯邊界,但不再有截然分開的物理邊界。GIS軟件體系結構非常穩定,給GIS軟件以后的開發和數據的維護、更新帶來相當大的便利。
從生命周期特點看,傳統的GIS軟件生命周期模型是串行的,本質都是瀑布模型的變形,這樣的生命周期模型更易于控制。但在云計算環境下,GIS軟件開發生命周期模型、并發模型、多重螺旋模型將成為主流,瀑布模型、迭代模型的使用越來越少,在GIS部署后,交付的都是中間版,軟件升級將成為常態。
從開發流程來看,GIS軟件開發不再是一個封閉的、全局控制的流程,而是存在多個并發和自治的流程,在一個項目中,可以自底向上或自頂向下有機集成。
從GIS軟件開發的各個基本階段來看,需求階段將占據較大比例的工作量。架構設計基本可以從已有的成熟架構模式中選型確定,詳細設計可以借用大量的成熟構件和代碼。隨著GIS軟件復用程度的提高,GIS軟件測試的工作量將大大降低,GIS軟件質量相應得到有效提升。開發過程中的不同階段,GIS軟件開發者、服務提供者、軟件使用者等多種角色使用同一個軟件開發工具,由云計算服務商統一提供,開發組織無須購買永久性的軟件許可。只需在開發周期內按需租用云服務商的軟件許可,這樣可以大大降低GIS軟件開發費用。而GIS軟件中數據處理的難題也會在云計算中得到迅速的解決。使用云服務商提供的高質量的空間數據與用戶自有空間數據,在云計算服務商提供的服務中進行無縫聯接,使多種空間數據得到有效組合。
云計算給GIS軟件部署、管理和維護帶來了高度的靈活性,對于一個特定的GIS功能應用,軟件部署、管理、維護和開發過程是并行的。第一次部署的可能只是一小部分功能,在隨后的軟件升級中不斷完善,由于云計算模式極大地降低了GIS軟件構件之間的耦合程度,GIS軟件的客戶端、服務端、管理端等構件完全以并發或獨立的方式部署和管理,甚至GIS軟件運行的各種資源也可以針對用戶透明的方式完成升級換代和重新部署。
云計算GIS軟件的客戶端軟件運行平臺可采用目前非常成熟的虛擬化技術,產生多種虛擬環境,如Windows,UNIX,甚至是瀏覽器等,用戶可以根據自己的喜好選擇。在服務器端,可以把大規模的服務器系統虛擬為單一的處理單元和連續的存儲單元,降低了用戶端管理的復雜程度。
GIS軟件中的空間數據具有很強的現勢性,需要不斷的更新,大量的不同格式的新采集的空間數據導入現有空間數據庫中。在云計算GIS服務商提供的專業服務支持下,新采集的空間數據與已有空間數據的無縫聯接可以得到高效的解決。云計算GIS軟件運行的最底層的硬件系統和基礎軟件系統則由專業的計算機信息系統集成商統一維護管理。
云計算前景是非常廣闊的,但它還是一項發展中的技術,必須慎重考慮它對軟件開發的有利方面和不利因素。下面從成本和實施步驟等方面進行探討。
從成本上看,云計算的優勢就是能夠大大地降低成本。這對于GIS軟件開發組織特別是中小企業來說,在硬件設施和軟件工具等方面將大大降低開發費用。但對云計算GIS服務商來說,在建設云計算基礎設施時需要較大的投入,如能利用已有設施和工具,這項成本也可以降低,而大量的企業進入云計算的GIS軟件開發亦可進一步分攤成本。
從實施步驟來看,可首先選擇適合質量保證(software quality assurance)架構的應用軟件采用云計算體系進行開發,這同時也為云計算積累成熟構件。GIS軟件開發組織應成立專門負責云計算的部門或機構,負責協調云計算過程中與現有GIS行業體制和技術休養所產生的問題。
雖然云計算技術目前還沒有達到非常成熟的地步,但我們也不能等到它完全成熟才投入應用。從我國國情看,傳統GIS產業處于非常不利的地位,其核心技術都掌握在國外廠商手中。而云計算給我們實現跨越式發展提供了難得的機遇。
[1]陳述彭.地理信息系統導論[M].北京:科學出版社,1999.
[2]畢碩本,王橋,徐秀華.地理信息系統軟件工程的原理與方法[M].北京:科學出版社,2003.
[3]邊馥苓.地理信息系統原理和方法[M].北京:測繪出版社,1996.
[4]王昊鵬,劉旺盛.虛擬化技術在云計算中的應用初探[J].電腦知識與技術,2008(25):76-78.
GIS Software Engineering Model Based on Cloud Computing Technology
ZHOU Peng,YIN Fei
0494-0911(2010)11-0022-03
P208
B
2010-07-27
周 鵬(1973—),男,湖北荊州人,碩士,講師,主要研究方向為GIS。