這是一篇2012年的老文章,今天看來還有價值。
前端
開放平臺已經成爲一個大趨勢。本文將探討開放平臺概念的內涵,SuperMap GIS的體系架構組成和爲開發者提供的開放平臺價值,介紹SuperMap平臺擴展應用的多種技術方式以及GIS應用系統隨着架構發展升級的技術路線圖。
算法
致力於建設一個支撐性和兼容性高、穩定性和適應性強、靈活性和擴展性好的架構,是GIS基礎平臺廠商一致追求的最高目標。由於,只有穩定的架構,才能很好 地支撐業務系統的不斷髮展,保護二次開放商和最終用戶的投資,讓其IT資產不斷增值,帶來足夠的回報,從而造成良性的循環,並進一步支持軟件平臺的持續發展。數據庫
開放平臺將系統的API經過標準化的方式來實現,讓更多的人能夠直接調用系統平臺的功能,從而能夠實現更好的融合和個性化定製,更好地知足最終用戶獨特的業務需求。
開放平臺不是簡單地開放系統的函數或者直接開放源代碼就能夠實現的,而是須要付出更多的努力,才能徹底實現方便的數據集成、功能融合和流程整合的用戶體驗,達到真正開放的效果。成爲一個開放平臺,須要知足下面的五點基本要求:
首先,開放平臺要有存在的核心價值。有很多的系統採用了開源的形式,可是沒有什麼應用價值,就很難做爲一個平臺長期發展下去。一個成功的開放平臺,第一位的是它所實現的業務功能和所存在的價值。例如GIS基礎平臺,它自己比較複雜,開發成本很高,維護難度較大。但開發者藉助其所具有的基礎的通用功能及擴展 靈活性,能夠縮短GIS應用開發的週期、下降開發成本,並能夠得到良好的技術支持和持續的版本升級,實現功能不斷豐富,保障系統穩定運行。這就意味着二次 開發者能夠一萬元的價格買到可能須要一百萬元以上的成本才能開發出的軟件,並且還有後續的支持服務。這樣的平臺軟件就有很是好的存在價值。
其次,開放平臺要有穩定的體系架構。做爲基礎支持,開放平臺要有足夠堅實和穩定的架構才能長期發展。就像一座高樓,地基的強度和框架結構決定了這 座樓能建到多高,會建成什麼樣子,能支撐哪些功能。GIS基礎平臺要考慮操做系統、網絡技術、數據庫、中間件、開發語言、開發環境、應用環境、使用習慣, 再參考發展歷史等不少因素,仔細地設計和選擇合適的技術路線。
第三,開放平臺要有很好的持續性。很多平臺的數據格式、框架結構和API接口都在不斷變化,雖然每一個版本都「開放」了,但不只沒法帶給二次開發商 和用戶真正的平臺收益,反而會讓他們感到無所適從,並增長開發和使用的成本,縮短應用系統使用的生命週期。一個真正的開放平臺是有「生命」的,能夠不斷地 完善,但要保持核心架構的穩定和發展的持續性,能最大限度下降不一樣技術變遷的影響。
第四,開放平臺要遵循通用的標準接口。開放平臺必須開放接口標準,接口標準須要你們一致地遵照,而且從技術上確保系統之間的接口是徹底一致的。開 源是開放的一種技術方式,但因爲開源代碼可隨意修改,致使接口標準難以有效地落實。例如如今不少開源系統已經衍生出不少版本,甚至不少版本之間也不兼容, 這就違背了開放系統建設的初衷,因此主要用於教育、研究領域,在工程應用上就可能帶來不少麻煩。固然,也有Apache、Eclipse等開源項目,因爲 採用了很是好的管理、協調機制,獲得了很好的發展。做爲開放平臺,必定要在接口的制定上下足夠的功夫,而且創建一種嚴格的管理機制,確保這個接口可以真正 一致起來,才能實現真正意義上的「開放」。
第五,開放平臺要實現雙向多層的開放。開放平臺須要既提供組件對象模型和服務的API供調用集成,也提供對底層數據存儲格式、數據結構、算法模塊 等的擴展來加強系統功能,還要充分考慮到這些組件對象和服務的編程模型的一致性。GIS基礎平臺既須要創建一個成熟的框架,用戶能夠擴展和加強這個框架; 也須要提供開發組件和服務模塊供你們使用,實現一體化的業務集成;同時,還須要對數據訪問、服務引擎、基礎算法等實現便捷的擴展,這個擴展要有充分的功能 支持和靈活性,又要足夠的簡單和穩定,以便於快速地擴展和長久地使用。
使用開放平臺的好處是顯而易見的。應用系統的建設成本更低、構建更快,架構和接口是穩定、一致的,多種系統和模塊、服務能夠更好地集成和協做,可 以更好地進行功能擴展,能夠隨着新技術的變化不斷進行升級。更重要的是,平臺廠商所提供的服務和技術支持,能夠爲業務系統的長期持續運行提供更好的保障。
編程
SuperMap GIS從研發之初,就被定位爲一個開放平臺,其內部是一個遵循接口標準的微內核架構,外部是一個多層次的開放架構。通過多年的發展,其體系的完備性、功能 的健壯性、架構的開放性、接口的規範性都逐步加強,已經成爲主流的GIS基礎平臺。SuperMap GIS 6R(2012)是2011年最新發布的版本,其技術與產品組成架構如圖1所示。
SuperMap GIS底層由支持多平臺的GIS核心數據結構和算法內核組成。SuperMap GIS內核有僅用於Windows平臺的SFC系列和可用於多種系統的UGC系列兩種,這是隨着技術發展的影響而造成的,其中SFC是基於微軟的MFC 庫,因此很難移植到其它平臺,而UGC是基於STL(標準模板庫)的,能夠支持不少種操做系統。因爲UGC也能夠同時支持全部的Windows系統,所以 目前超圖軟件已重點發展UGC系列內核及其系列產品。
基於GIS內核,上層封裝了組件產品,同時包括了COM、.NET和Java三種主流組件技術形態,可以使用Visual Studio、Eclipse以及其它支持組件化集成的軟件開發環境進行高度定製化系統的快速開發。鑑於COM技術已經被其提出者微軟公司宣佈再也不繼續發 展,所以組件將重點發展Objects .NET和Objects Java。這兩個產品如今已經有多個平臺的版本,Java版能夠在Linux、Unix甚至AIX系統上運行。.NET和Java版本的組件產品還有一個 很大的好處,就是再也不須要註冊表了,能夠經過快速拷貝實現綠色部署,在一個系統中也能夠共存多個版本,在使用的便捷性、安全性、可管理性上都是一個質的飛 躍。瀏覽器
圖1 SuperMap GIS 6R技術與產品體系架構示意圖安全
組件能夠很是便利地建立高度業務化的應用。而在不少場合,用戶也須要可以即裝即用的桌面GIS軟件。SuperMap GIS系列中有兩個桌面軟件產品,一個是推出較早的Deskpro,主要用於數據處理、編輯等工做,支持C++級別的插件開發,內置功能豐富但開發難度相 對較大;另一個是2009年推出的Deskpro .NET新一代桌面GIS軟件。它已不只是一個桌面工具,而是一個功能至關強大的可擴展桌面框架,能夠支持基於 .NET技術的多種語言進行插件擴展,也能夠快速地進行界面的定製和模塊的組裝。最新發布的2012版本還能夠經過網絡插件中心進行插件資源的上傳、下 載、安裝的共享操做,爲羣組協同和大量生產性任務的完成提供了很好的技術支撐手段,同時也架起了插件模塊開發者和使用者之間的橋樑。
服務器
創建在組件之上,SuperMap還開發了兩個重量級的GIS產品,即服務器GIS平臺SuperMap IS .NET和SuperMap iServer。服務器GIS可讓用戶象用組件同樣使用遠端的GIS服務,客戶端使用Web瀏覽器或移動終端就能夠了,全部的數據在服務器上統一管理, 客戶端不需安裝,部署應用很是簡單。基於UGC內核的SuperMap iServer支持Java語言和Eclipse、JavaBuilder、JDeveloper等多種開發工具,並支持豐富的客戶端。SuperMap iClient產品不只支持流行的AJAX、Flex、Silverlight等主流Web RIA的開發,還支持瀏覽器上的三維GIS應用開發,最新的版本還支持HTML 5,能夠在更多的移動設備上使用GIS功能。網絡
面向移動應用市場的興起,SuperMap GIS 6R的2012版本還增長了一個新的產品SuperMap iMobile,能夠支持Android、iOS上的移動GIS應用開發。同時,將已普遍應用的eSuperMap從新歸入SuperMap總體系統之 中,再加上專門用於導航系統開發的SNE(SuperMap Navigation Engine),SuperMap GIS平臺產品體系更加完整,讓用戶能夠在各類移動設備上使用GIS功能。數據結構
從組件到桌面,從服務器到Web端、移動終端,自2012版本開始,SuperMap GIS已經成爲全球GIS基礎平臺軟件中所包含的產品形態最爲齊全的GIS平臺軟件。這意味着,用戶不只能夠根據須要綜合集成各類運用形式搭建本身的大型 乃至超大規模GIS服務平臺和應用系統,並且能夠根據狀況將應用從桌面向Web或者移動終端遷移,或者根據需求的變化來不斷擴展已有的系統來知足業務增加 的須要,從而更好地適應各類不一樣的應用技術和應用場景。架構
圖2 SuperMap SDX+開放式空間數據庫技術架構
數據是應用的基礎。超圖軟件的空間數據庫引擎(SDX+)技術的設計理念與IT架構保持了高度的一致性,而不是特立獨行,這是極爲樸實又極具智慧 的架構選擇。因此隨着SDX+空間數據庫技術的不斷髮展,始終可以保持與主流數據庫技術的一致性和融合性,從而爲用戶提供了一個統一的技術方案,既能簡化 管理,又能在不一樣數據庫間進行遷移;同時,經過統一的數據庫存儲可以全方位地知足組件、桌面、服務器、Web和移動設備的應用須要。
SDX+技術已經爲成千上萬的應用提供可靠的空間數據庫支撐,爲了推進GIS數據交換共享和互操做的發展,超圖軟件進一步將研發多年的空間數據庫 技術進行開放,提出並聯合多家GIS軟件商制定GDB/CLI空間數據互操做標準規範,經過創建Provider/Consumer模型,實現標準化的接 口擴展機制。同時,超圖軟件還基於該規範提供了一個GDB/CLI的參考實現,內置了多種數據訪問的Provider,還爲數據提供者和使用者提供了開發 示範程序,方便進行新的數據格式的擴充。目前這一標準已逐步獲得使用,國家氣象局已基於該規範擴充了氣象數據格式訪問引擎,支持這一規範的客戶端程序無需 進行修改便可實現對這些數據的訪問,實現了真正的開放型互操做。
SuperMap服務器GIS平臺採用當下很是流行的REST接口做爲系統默認的服務接口協議,其特色是使用很是簡單、適用面很廣、計算負擔小,很是適合 基於Web的應用開發,也支持基於SOAP的地理信息服務用於企業系統集成,同時還支持OGC制定的WMS、WFS、WPS等標準。對於一些新的協議,還 能夠經過擴展服務引擎或者封裝現有的服務來提供。
早期的GIS功能(數據轉換、製圖、輸出等)都經過獨立的EXE軟件工具來完成,沒有GIS平臺這個概念。在二十世紀九十年代末,隨着技術的發 展,尤爲是組件化技術的發展,經過將GIS基礎功能獨立出來,規範化爲平臺能力,並經過平臺再進行應用系統的開發,從而大幅度下降了GIS應用系統的建設 和維護成本,加強了應用系統的規範性、擴展性、穩定性,給業務帶來更好的持續能力。
SuperMap GIS也正是在這個時期,經過SuperMap Objects全組件式GIS平臺的推出而快速發展起來,也讓GIS技術進入了更爲普及應用的時代。今天的SuperMap GIS產品系列已經全面涵蓋組件、桌面、服務器、Web、移動終端等軟件形態;實現了對Windows、Linux、Unix以及Android、 iOS、WinCE等多種操做系統的統一支持;可以在小型機、服務器、工做站、PC機、筆記本、平板電腦、智能手機、手持GPS以及車載電腦上運行,經過 網絡實現動態地獲取地理空間信息;支持經過.NET、Java等開發語言和工業標準的開發環境進行快速定製和擴展功能的深度開發。
SuperMap GIS基於規範的SOA和OOP模型進行設計,提供完整的組件對象模型、桌面插件式擴展框架、可擴展應用服務器架構、Web可擴展編程模型、移動GIS組 件對象模型等可編程體系和擴展接口,提供完整的二三維一體化GIS開發和應用流程,支持多類型移動應用和Web應用的開發。接口的標準化爲二次開發商的軟 件資產增值和用戶業務持續發展提供了很好的保障。
SuperMap GIS經過統一的數據管理技術創建了可讓數據不斷增值的體系,隨着外圍軟件和應用方式的不斷增多,數據的價值也不斷獲得提高,其重要性不斷增強。經過大量應用的推廣,數據的增值效應也愈來愈明顯。
除了傳統的項目應用外,用戶也能夠藉助SuperMapCloud在線服務平臺經過雲服務方式使用GIS功能。在這個平臺上數據和功能融爲一體,經過服務 接口或者在線Web界面來提供使用。在SuperMapCloud中全部的開發模型和API與基礎軟件平臺保持一致,這樣很是方便用戶把現有的服務應用遷 移到雲上或者進行反向遷移,部署到私有云,實現兩者的相互連通等。
咱們看到,從組件到服務、到雲計算和移動應用,已經成爲技術發展的大潮流。SuperMap GIS技術和產品架構的設計已經考慮到這一演進的特色,能夠幫助二次開發商和用戶以最小的代價跟上時代的步伐,從而保護用戶和開發商的投資,也實現GIS 開發者的智力投資的不斷增值。
隨着雲計算浪潮的來臨,雲GIS和GIS雲服務也獲得GIS業界的快速響應,新的技術、平臺和應用以更快的速度獲得發展,超圖軟件也推出了全面支持雲計算的GIS平臺軟件和GIS雲解決方案,並創建了SuperMapCloud在線服務平臺。
正所謂「一花獨放不是春,百花齊放春滿園」,GIS產業只有在上、中、下游全面發展的環境下才能實現真正的發展。超圖軟件在雲計算上的策略不只是要推出雲GIS基礎平臺,更要實現與用戶、開發商等合做夥伴一塊兒實現雲計算技術的全面應用,並一塊兒推進GIS產業向新的服務模式發展。同時,經過各類培 訓、與高校合做共建實驗室等方式培養人才,也經過GIS開發大賽鍛鍊和選拔人才,以及倡導每一年的9月15日爲GIS節,推廣GIS文化和技術,讓GIS得 到更爲普遍的認知和應用。
對於IT主流的軟件開發方式,SuperMap GIS都提供了很好的支持。包括桌面擴展和組件開發、基於Web瀏覽器的應用開發、基於移動設備的應用開發等三種最爲主流的開發模式,同時支持服務引擎和 數據庫引擎級別的底層擴展,還能夠經過SuperMapCloud在線服務進行快速應用開發,本地服務和在線服務也能夠實現聚合訪問。
桌面應用的開發擴展包括使用SuperMap Objects .NET/Java進行專業應用開發和使用SuperMap Deskpro .NET進行深度界面和模塊定製兩種方式。使用Objects組件適用於進行深度應用集成開發,能夠建立徹底一體化的應用和100%的專業化用戶界面,是 建立專業行業應用的不二之選。
經過桌面框架的定製則擁有一個標準化的運行框架和插件支持機制,定製很是方便,能夠當即見到效果,還能夠經過插件擴展和插件共享實現新功能的增長和羣組化管理,適合於專業的生產型用戶和需求常常變更的高級諮詢性項目的使用。
Web應用後臺由SuperMap iServer和IS .NET服務器提供支撐,前端的瀏覽器應用開發主要經過SuperMap iClient來完成。iClient可使用AJAX、Flex、Silverlight等多種RIA技術來進行開發,實現了與Objects相似的組 件對象模型。用戶既可使用提供的API進行Web應用功能開發,也能夠擴展底層功能,好比實現一個新的柵格地圖訪問協議的擴展,就能夠加載其它的圖片地 圖服務了。
SuperMap iClient還包含一個功能強大的產品,即Realspace三維地理場景發佈模塊,能夠快速將服務端的三維地理場景經過瀏覽器進行呈現,也支持面向對象的開發。
此外,即將推出的HTML 5客戶端,不只支持最新的W3C標準和最新的瀏覽器技術,簡化Web應用開發和提升安全性,還能夠支持大量裝載有移動瀏覽器的智能手機,大大擴展GIS應用的範圍。
爲了更加全面地支持移動應用,超圖軟件在SuperMap GIS 6R(2012)版本中新增了一個專用於移動設備原生GIS應用的iMobile產品系列,更加適合一些較爲專業的GIS應用開發,能夠支持採用 WinCE、Android、iOS等系統的手持機、車載設備、手機和平板電腦等移動設備。
超圖軟件還有一個移動應用產品即導航引擎(SNE,SuperMap Navigation Engine),支持WinCE和Android系統的各類設備,具有高效率的導航圖顯示、快速搜索和基於交通規則的路徑分析。用戶能夠直接使用基於 SNE開發的智行通導航軟件,也能夠調用SNE的組件建立與業務功能徹底整合的一體化導航與位置移動平臺,實現物流配送、位置監控、路徑引導等多種定製化 功能。
超圖軟件的SDX+空間數據庫技術是與IT主流技術徹底融合的一套技術,目前支持多種商用數據庫系統。它有一個開放的架構,能夠很是容易地擴充新的數據庫 引擎。上層經過SuperMap Workspace的一系列組件對象實現編程訪問,使用很是簡單,並且能夠在多種數據庫之間以及數據庫和文件系統之間方便地進行空間數據的遷移或者混合訪 問。
目前SDX+的體系架構設計思想即將成爲GDB/CLI標準規範,讓全部GIS使用者能夠共享,並搭建起不一樣數據庫和GIS系統進行地理空間數據 交換和統一存取的橋樑。GDB/CLI是一個遵循Provider/Consumer模型的中間件,超圖軟件提供了技術框架的實現,而且免費開放了多種數 據訪問引擎。用戶既可使用Provider接口來開放本身的格式供其餘人訪問,也能夠經過使用Consumer接口來存取衆多的數據格式,甚至包括之前 從未出現的格式。
在網絡上,應用服務和數據服務都是經過GIS服務器如SuperMap iServer來提供的。除了支持豐富的GIS應用服務功能和異構集羣技術、服務聚合技術等關鍵技術外,SuperMap iServer支持服務引擎擴展、Web層服務擴展以及多種服務的聚合應用,能夠進行核心層的應用算法等服務擴展。
經過使用SuperMapCloud雲服務,能夠簡便地開發各類基於雲服務的應用。SuperMapCloud採用SuperMap GIS基礎平臺軟件進行構建,因此SuperMap iClient和iMobile系列產品均可以做爲客戶端SDK進行開發,包括Realspace、HTML 五、AJAX、Flex、SilverLight等Web應用和Android、iOS(iPhone/iPAD)移動設備應用,是支持客戶端類型最多的 地理空間信息在線服務平臺。
圖3 Supermap雲地圖服務
除了Web和移動應用以外,組件和桌面框架軟件也能夠訪問SuperMapCloud的服務,用戶能夠直接存取SuperMapCloud的地圖,開發插件擴展功能,與本地數據和功能實現聯合應用,或者將多種服務進行組裝來完成須要的業務工做。
開發者所採用的API與傳統的軟件開發是徹底一致的,幾乎不須要從新學習便可當即投入雲GIS應用的開發,也能夠將之前的服務器GIS應用經過簡單的修改移植到雲服務平臺上運行。
在大型項目中,二次開發商和集成商也可使用雲服務進行前期的開發工做,或者租用雲服務建設原型系統,在設計和開發成型後再移植到最終使用的環境中,能夠大大下降項目前期運做的成本,集合多方資源實現網絡化的協同開發,快速展現成果實現敏捷開發。
在工具式GIS時期,超圖軟件經過SuperMap Objects組件式GIS的推出將GIS行業帶向一個快速集成、普遍應用的時代;在網絡快速發展的時期,超圖軟件推出SuperMap IS .NET讓網絡用戶經過簡單的瀏覽器便可訪問遠程的地理空間信息;在SOA概念大行其道的時候,超圖軟件推出SuperMap iServer實現了全方位GIS的服務式存取和總線式集成;隨着Web技術的發展,超圖軟件的iClient開發SDK全面覆蓋主流的RIA開發技術; 在雲計算和移動終端應用的大潮下,超圖軟件憑藉支持異構集羣與服務聚合的服務器產品和iMobile移動GIS開發套件,爲高性能、高可用、高併發的 GIS共享應用和雲服務系統的建設提供全面的平臺。開放的SDX+空間數據庫技術也隨着大型數據庫技術的發展而不斷演進,始終爲GIS應用提供最爲堅實的 支撐。
圖4 GIS從組件向雲計算模式演進與應用的發展現意圖
在技術的不斷髮展過程當中,超圖軟件秉承對技術創新的不懈追求,經過前瞻設計的雙贏、開放的架構體系,與合做夥伴共同推進GIS產業的不斷髮展。未 來還將在保持穩定架構的基礎上不斷地豐富和完善產品功能,加強在線服務、開發文檔、開發例程、插件共享等服務機制,實現服務的融合和充實,爲合做夥伴提供 最好的GIS基礎平臺。同時經過技術大會、技術培訓、人才培養、開發大賽、GIS節等多種活動持續推廣GIS應用和GIS平臺。
超圖軟件期待與合做夥伴開拓更多的GIS應用新領域,共同建立GIS產業發展的新時代。
[做者: 超圖軟件總架構師 王爾琪,2012年]