周 鵬,尹 菲
(北京師范大學(xué)珠海分校信息技術(shù)學(xué)院,廣東珠海519085)
基于云計算技術(shù)的GIS軟件工程模式
周 鵬,尹 菲
(北京師范大學(xué)珠海分校信息技術(shù)學(xué)院,廣東珠海519085)
介紹云計算的基本概念與GIS的軟件工程的特點(diǎn),分析云計算對GIS軟件開發(fā)的影響,從GIS軟件體系結(jié)構(gòu)、開發(fā)組織和部署管理三個方面探討云計算環(huán)境下GIS軟件工程設(shè)計方法,并對云計算環(huán)境下實(shí)施GIS軟件開發(fā)需要注意的幾個問題提出建議。
云計算;GIS;軟件工程
在互聯(lián)網(wǎng)和 IT業(yè)巨頭們的推動下,云計算(cloud computing)時代即將來臨。以摩爾定律和Wintel架構(gòu)為主導(dǎo)的硬件產(chǎn)業(yè),傳統(tǒng)軟件產(chǎn)業(yè)的商業(yè)模式,企業(yè)IT架構(gòu),甚至普通人的生活都會因云計算的到來和發(fā)展而發(fā)生改變。GIS是構(gòu)建在堅(jiān)固IT基礎(chǔ)之上的信息系統(tǒng),云計算時代的到來對GIS的發(fā)展將會有深遠(yuǎn)影響。
云計算實(shí)質(zhì)上是對軟件和信息系統(tǒng)體系結(jié)構(gòu)的又一次革新。它將系統(tǒng)軟件和應(yīng)用的邊界重新進(jìn)行了劃分。云計算環(huán)境下GIS軟件工程模式的主要特點(diǎn)就是將基礎(chǔ)數(shù)據(jù)服務(wù)和軟件服務(wù)由專業(yè)機(jī)構(gòu)統(tǒng)一提供,GIS應(yīng)用以此為基礎(chǔ)去構(gòu)建更為復(fù)雜的GIS應(yīng)用軟件系統(tǒng)。
云計算(cloud computing),是分布式計算技術(shù)的一種,其最基本的概念是通過網(wǎng)絡(luò)將龐大的計算處理程序自動分拆成無數(shù)個較小的子程序,再交由多部服務(wù)器所組成的龐大系統(tǒng)經(jīng)搜尋、計算分析之后將處理結(jié)果回傳給用戶。通過這項(xiàng)技術(shù),網(wǎng)絡(luò)服務(wù)提供者可以在數(shù)秒之內(nèi),成功處理數(shù)以千萬計甚至億計的信息,達(dá)到和“超級計算機(jī)”同樣強(qiáng)大效能的網(wǎng)絡(luò)服務(wù)。
狹義云計算是指IT基礎(chǔ)設(shè)施的交付和使用模式,即通過網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需要的資源(硬件、平臺、軟件)。
廣義云計算是指服務(wù)的交付和使用模式,指通過網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需要的服務(wù)。這種服務(wù)可以是IT和軟件、互聯(lián)網(wǎng)相關(guān)的,也可以是其他的任意服務(wù)。
云計算經(jīng)常與并行計算(parallel computing)、分布式計算(distributed computing)和網(wǎng)格計算(grid computing)相混淆。云計算是虛擬化(virtualization)、效用計算(utility computing)、基礎(chǔ)設(shè)施即服務(wù)(laaS)、平臺即服務(wù) (paaS)、軟件即服務(wù) (saaS)等概念混合演進(jìn)并躍升的結(jié)果。
云計算的基本流程如圖1所示。
圖1 云計算的基本流程
1)超大規(guī)模?!霸啤本哂邢喈?dāng)大的規(guī)模。如:從2007年初Google發(fā)布Google Apps服務(wù)(一種免費(fèi)提供的簡化office軟件包,數(shù)據(jù)在互聯(lián)網(wǎng)上存儲與處理)到現(xiàn)在,Google的云計算已經(jīng)擁有100多萬臺服務(wù)器;而 Amazon、IBM、微軟、Yahoo等的“云”也均擁有幾十萬臺服務(wù)器。“云”能賦予用戶前所未有的計算能力和數(shù)據(jù)儲存能力。
2)全虛擬化。云計算支持用戶在任意位置、使用各種終端獲取應(yīng)用服務(wù)。所請求的資源來自“云”,而不是固定的有形的實(shí)體。應(yīng)用在“云”中某處運(yùn)行,但實(shí)際上用戶無須了解,也不用擔(dān)心應(yīng)用運(yùn)行的具體位置。只需要一臺筆記本或者一部手機(jī),就可以通過網(wǎng)絡(luò)服務(wù)來實(shí)現(xiàn)我們需要的一切,甚至可以完成包括超級計算這樣的任務(wù)。
3)高可靠性?!霸啤笔褂昧藬?shù)據(jù)多副本容錯、計算節(jié)點(diǎn)同構(gòu)可互換等措施來保障服務(wù)的高可靠性,有專業(yè)的數(shù)據(jù)管理人員和更好的數(shù)據(jù)管理平臺來維護(hù)數(shù)據(jù)安全和有效的使用。
4)寬通用性。云計算不針對特定的應(yīng)用,在“云”的支撐下可以構(gòu)造出千變?nèi)f化的應(yīng)用,同一個“云”可以同時支撐不同的應(yīng)用運(yùn)行。從用戶角度來看,不同用戶看到的是不同的“云”,不同的“云”能給予用戶不同的權(quán)限。
5)高擴(kuò)展性?!霸啤钡囊?guī)??梢詣討B(tài)伸縮,自動滿足應(yīng)用需求和用戶規(guī)模增長的需要。而這種擴(kuò)展性對用戶卻是透明的。
6)按需服務(wù)?!霸啤笔且粋€龐大的資源池,可按需使用,“云”可以像有線電視那樣使用,可以根據(jù)需要訂閱服務(wù)內(nèi)容。
7)極其廉價。由于“云”的特殊容錯措施可以采用極其廉價的節(jié)點(diǎn)來構(gòu)成,“云”的自動化集中式管理使大量企業(yè)無須負(fù)擔(dān)日益高昂的數(shù)據(jù)中心的管理成本,“云”的通用性使資源的利用率較之傳統(tǒng)系統(tǒng)大幅提升,因此用戶可以充分享受“云”的低成本優(yōu)勢,經(jīng)常只要花費(fèi)幾百美元、幾天時間就能完成以前需要數(shù)萬美元、數(shù)月時間才能完成的任務(wù)。
GIS軟件工程是指用軟件工程的概念、原理、技術(shù)和方法組織GIS軟件設(shè)計開發(fā)和維護(hù)的工程活動。它包括GIS工程規(guī)劃、設(shè)計、實(shí)施、評價與維護(hù)技術(shù),還包括工程的需求控制、質(zhì)量控制、進(jìn)度控制、風(fēng)險控制等管理技術(shù),以及GIS數(shù)據(jù)生產(chǎn)的管理和質(zhì)量控制體系。
(1)系統(tǒng)復(fù)雜度高
軟件的復(fù)雜度與如下幾個因素密切相關(guān):
1)交付的文檔的質(zhì)量和數(shù)量。交付的文檔中,包括軟件需求說明、系統(tǒng)設(shè)計書、用戶手冊、程序清單、測試報告中必須增加與空間數(shù)據(jù)及其空間分析功能相關(guān)的說明,致使文檔的內(nèi)容和難度增加。
2)軟件的微觀復(fù)雜度。因?yàn)镚IS涉及的因素多、數(shù)據(jù)容量大、功能復(fù)雜,其程序的長度和內(nèi)部結(jié)構(gòu)的復(fù)雜程度都非常大。
3)軟件的宏觀復(fù)雜性。由于空間理論的理解難度,以及目前我國GIS軟件人才相對缺乏致使GIS軟件開發(fā)難度較高。
(2)數(shù)據(jù)在系統(tǒng)中具有特別地位
GIS的特色在于支持異質(zhì)海量數(shù)據(jù)處理,數(shù)據(jù)庫建設(shè)在GIS建設(shè)中占有非常重要的地位。在系統(tǒng)開發(fā)過程中,在數(shù)據(jù)準(zhǔn)備方面需要注意如下幾點(diǎn):
1)數(shù)據(jù)的質(zhì)量。GIS需要輸入高質(zhì)量的數(shù)據(jù),否則容易影響系統(tǒng)效率和功能實(shí)現(xiàn),甚至導(dǎo)致系統(tǒng)崩潰。GIS的數(shù)據(jù)在空間關(guān)系(主要是拓?fù)潢P(guān)系、點(diǎn)位關(guān)系等)、元數(shù)據(jù)、分層、圖文關(guān)聯(lián)等方面有嚴(yán)格的要求。
2)數(shù)據(jù)的現(xiàn)勢性。即數(shù)據(jù)的時效,在GIS中空間數(shù)據(jù)變化較快,數(shù)據(jù)容易過時,導(dǎo)致數(shù)據(jù)失效,所以需要不斷地進(jìn)行數(shù)據(jù)采集。
3)合理的數(shù)據(jù)組織結(jié)構(gòu)。GIS所處理的數(shù)據(jù)包括矢量格式、柵格格式的空間數(shù)據(jù)和表格、文本、多媒體等非空間數(shù)據(jù),不同的組織方式對系統(tǒng)的效率、安全性具有至關(guān)重要的影響。
下面從軟件體系結(jié)構(gòu)、軟件開發(fā)組織和軟件部署、運(yùn)行管理維護(hù)三個方面探討云計算環(huán)境下的GIS軟件工程模式
與傳統(tǒng)的GIS軟件體系結(jié)構(gòu)相比,基于云計算的GIS軟件體系結(jié)構(gòu)最重要的特點(diǎn)在于其前所未有的開放性和成熟的構(gòu)件化。在“云”端的GIS應(yīng)用必將大量利用“云”服務(wù)提供的現(xiàn)成的GIS構(gòu)件。同時,新研制的軟件又將成為后續(xù)GIS應(yīng)用軟件開發(fā)所能利用的成熟GIS構(gòu)件,由云計算的特點(diǎn)可知,在“云”端可以超大規(guī)模、有效、可靠地提供海量的地圖數(shù)據(jù)和地圖服務(wù);在“云”的支撐下可以構(gòu)造不同用戶需求的GIS應(yīng)用。在“云”的另一端,用戶在計算機(jī)的瀏覽器上就可以完成對所有功能的使用。所以在云計算環(huán)境下能大大降低GIS軟件開發(fā)的復(fù)雜度。
云計算GIS軟件體系結(jié)構(gòu),本質(zhì)上是完全分布式的,是客戶端、服務(wù)端、管理端、開發(fā)端、測試端等多種軟件的有機(jī)集成,應(yīng)用之間有清晰的邏輯邊界,但不再有截然分開的物理邊界。GIS軟件體系結(jié)構(gòu)非常穩(wěn)定,給GIS軟件以后的開發(fā)和數(shù)據(jù)的維護(hù)、更新帶來相當(dāng)大的便利。
從生命周期特點(diǎn)看,傳統(tǒng)的GIS軟件生命周期模型是串行的,本質(zhì)都是瀑布模型的變形,這樣的生命周期模型更易于控制。但在云計算環(huán)境下,GIS軟件開發(fā)生命周期模型、并發(fā)模型、多重螺旋模型將成為主流,瀑布模型、迭代模型的使用越來越少,在GIS部署后,交付的都是中間版,軟件升級將成為常態(tài)。
從開發(fā)流程來看,GIS軟件開發(fā)不再是一個封閉的、全局控制的流程,而是存在多個并發(fā)和自治的流程,在一個項(xiàng)目中,可以自底向上或自頂向下有機(jī)集成。
從GIS軟件開發(fā)的各個基本階段來看,需求階段將占據(jù)較大比例的工作量。架構(gòu)設(shè)計基本可以從已有的成熟架構(gòu)模式中選型確定,詳細(xì)設(shè)計可以借用大量的成熟構(gòu)件和代碼。隨著GIS軟件復(fù)用程度的提高,GIS軟件測試的工作量將大大降低,GIS軟件質(zhì)量相應(yīng)得到有效提升。開發(fā)過程中的不同階段,GIS軟件開發(fā)者、服務(wù)提供者、軟件使用者等多種角色使用同一個軟件開發(fā)工具,由云計算服務(wù)商統(tǒng)一提供,開發(fā)組織無須購買永久性的軟件許可。只需在開發(fā)周期內(nèi)按需租用云服務(wù)商的軟件許可,這樣可以大大降低GIS軟件開發(fā)費(fèi)用。而GIS軟件中數(shù)據(jù)處理的難題也會在云計算中得到迅速的解決。使用云服務(wù)商提供的高質(zhì)量的空間數(shù)據(jù)與用戶自有空間數(shù)據(jù),在云計算服務(wù)商提供的服務(wù)中進(jìn)行無縫聯(lián)接,使多種空間數(shù)據(jù)得到有效組合。
云計算給GIS軟件部署、管理和維護(hù)帶來了高度的靈活性,對于一個特定的GIS功能應(yīng)用,軟件部署、管理、維護(hù)和開發(fā)過程是并行的。第一次部署的可能只是一小部分功能,在隨后的軟件升級中不斷完善,由于云計算模式極大地降低了GIS軟件構(gòu)件之間的耦合程度,GIS軟件的客戶端、服務(wù)端、管理端等構(gòu)件完全以并發(fā)或獨(dú)立的方式部署和管理,甚至GIS軟件運(yùn)行的各種資源也可以針對用戶透明的方式完成升級換代和重新部署。
云計算GIS軟件的客戶端軟件運(yùn)行平臺可采用目前非常成熟的虛擬化技術(shù),產(chǎn)生多種虛擬環(huán)境,如Windows,UNIX,甚至是瀏覽器等,用戶可以根據(jù)自己的喜好選擇。在服務(wù)器端,可以把大規(guī)模的服務(wù)器系統(tǒng)虛擬為單一的處理單元和連續(xù)的存儲單元,降低了用戶端管理的復(fù)雜程度。
GIS軟件中的空間數(shù)據(jù)具有很強(qiáng)的現(xiàn)勢性,需要不斷的更新,大量的不同格式的新采集的空間數(shù)據(jù)導(dǎo)入現(xiàn)有空間數(shù)據(jù)庫中。在云計算GIS服務(wù)商提供的專業(yè)服務(wù)支持下,新采集的空間數(shù)據(jù)與已有空間數(shù)據(jù)的無縫聯(lián)接可以得到高效的解決。云計算GIS軟件運(yùn)行的最底層的硬件系統(tǒng)和基礎(chǔ)軟件系統(tǒng)則由專業(yè)的計算機(jī)信息系統(tǒng)集成商統(tǒng)一維護(hù)管理。
云計算前景是非常廣闊的,但它還是一項(xiàng)發(fā)展中的技術(shù),必須慎重考慮它對軟件開發(fā)的有利方面和不利因素。下面從成本和實(shí)施步驟等方面進(jìn)行探討。
從成本上看,云計算的優(yōu)勢就是能夠大大地降低成本。這對于GIS軟件開發(fā)組織特別是中小企業(yè)來說,在硬件設(shè)施和軟件工具等方面將大大降低開發(fā)費(fèi)用。但對云計算GIS服務(wù)商來說,在建設(shè)云計算基礎(chǔ)設(shè)施時需要較大的投入,如能利用已有設(shè)施和工具,這項(xiàng)成本也可以降低,而大量的企業(yè)進(jìn)入云計算的GIS軟件開發(fā)亦可進(jìn)一步分?jǐn)偝杀尽?/p>
從實(shí)施步驟來看,可首先選擇適合質(zhì)量保證(software quality assurance)架構(gòu)的應(yīng)用軟件采用云計算體系進(jìn)行開發(fā),這同時也為云計算積累成熟構(gòu)件。GIS軟件開發(fā)組織應(yīng)成立專門負(fù)責(zé)云計算的部門或機(jī)構(gòu),負(fù)責(zé)協(xié)調(diào)云計算過程中與現(xiàn)有GIS行業(yè)體制和技術(shù)休養(yǎng)所產(chǎn)生的問題。
雖然云計算技術(shù)目前還沒有達(dá)到非常成熟的地步,但我們也不能等到它完全成熟才投入應(yīng)用。從我國國情看,傳統(tǒng)GIS產(chǎn)業(yè)處于非常不利的地位,其核心技術(shù)都掌握在國外廠商手中。而云計算給我們實(shí)現(xiàn)跨越式發(fā)展提供了難得的機(jī)遇。
[1]陳述彭.地理信息系統(tǒng)導(dǎo)論[M].北京:科學(xué)出版社,1999.
[2]畢碩本,王橋,徐秀華.地理信息系統(tǒng)軟件工程的原理與方法[M].北京:科學(xué)出版社,2003.
[3]邊馥苓.地理信息系統(tǒng)原理和方法[M].北京:測繪出版社,1996.
[4]王昊鵬,劉旺盛.虛擬化技術(shù)在云計算中的應(yīng)用初探[J].電腦知識與技術(shù),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—),男,湖北荊州人,碩士,講師,主要研究方向?yàn)镚IS。