[置頂] 遵循Java EE標準體系的開源GIS服務平臺架構

 

傳送門 ☞ Android兵器譜 ☞ 轉載請註明 ☞ http://blog.csdn.net/leverage_1229
html

傳送門 ☞ 系統架構設計 ☞ 轉載請註明 ☞ http://blog.csdn.net/leverage_1229
前端

傳送門 ☞ GoF23種設計模式 ☞ 轉載請註明 ☞ http://blog.csdn.net/leverage_1229android

1、平臺現狀數據庫

        近年來因爲信息科技的演進,在其推進下地理信息系統的應用也較以往更爲普遍;而對於空間資料(Spatial Data)的生成也已從早期必須經由專家學者處理才能發佈,到如今普通人只須要簡單的工具,甚至是經過自動設備就有可能生成這些具備地理信息的資料。
        然而空間資料的創建僅僅是提供服務最基本的一環,若是須要將這些原始的資料轉變成能夠提供他人使用的服務,則須要額外的處理。完整的服務平臺架構以下所示。分爲用戶端(Client)、應用服務(Application Services)和服務提供者(Service Provider)三個部分。  設計模式

        就目前市面上的商用軟件而言,若是要創建地理信息的服務,已經存在不少種解決方案,在此不便評述。本文主要探討的是如何經過整合開源軟件(Open Source)來構建此服務平臺。此外,筆者從事過Java EE和Android開發,對Java EE平臺較爲熟悉。結合近期的業務需求,須要提供一種基於Java EE標準體系的GIS解決方案。所以,指望經過本文的介紹,能給那些想要轉型Web GIS應用的童鞋提供參考。
2、應用服務
        以通常的信息系統爲例,即使後臺擁有功能強大的服務器主機與系統,經過該系統能夠處理想打龐大的資料,不過資料畢竟是要給人操做的,如何提供友好的用戶界面也是至關關鍵的一環。對於地理信息系統,縱然咱們擁有高效的服務器與強大的計算能力,也一樣須要提供一個良好的操做界面給用戶。
        在地理信息系統中,除了後臺能夠處理地圖資源之外,在前端亦須要有一個合適的界面能夠提供GIS的基本操做(如:縮放、平移、疊加圖層等)。
OpenLayers
        OpenLayers是經過JavaScript腳本語言所開發的一種工具,提供豐富的地圖資源支持,包含由ArcGIS Server所發佈的資料(ArcGIS Cache)、服務(ArcGIS REST、ArcIMS等),對於其餘在線地圖服務(如:Google Map、Bing Map等)都有很好的支持。很是適合用於開發地理信息系統的用戶界面。 緩存

3、服務提供者
        在地理信息系統中,若是須要將具備空間屬性的資源顯示在網絡上,必須先借助適當的軟件才能達到,經過客戶端才能存取服務端提供的服務。
GeoServer
        GeoServer是一套由Java語言開發的免費軟件,它提供分享和編輯具備空間信息的資源的功能。雖然說它只是一套由社區所維護的軟件,不過對於通常商用軟件所具備的功能,它大多都也提供相似的服務。值得一提的是,因爲它是免費軟件,因此對於標準的交換格式也都支持。在GIS領域中,由開發地理空間協會(Open Geospatial Consortium)所訂製的網絡地圖服務(Web Map Service,WMS)、網絡圖徽服務(Web Feature Service,WFS)、網絡網格資源服務(Web Coverage Service,WCS)、KML等資源交換規範,GeoService都支持。 服務器

        在地理信息系統中,爲了讓整個系統的實用性更高,每每都會搭配層疊豐富的形象資源,包含地圖、衛星影像、航空照片影像等。然而,若是資源數量龐大到須要耗費時間才能經過網絡傳送,能夠預見整個系統的效率會大幅度下降。爲了解決加載大量地圖資源的問題,瓦片地圖(Map Tile)的技術相繼被提出。
        瓦片地圖就是將影像資源依據必定的比例尺、命名規則、存儲目錄結構等事先定義好的規範進行處理。當須要展現特定區域的資源時,僅取出該範圍的若干片拼接在一塊兒便可。如此一來,不只能夠節省即時處理龐大影像所花費的系統資源,並且大大下降了系統的延遲時間。由於圖片資源都是已處理好的瓦片,獲取時僅需經過服務器提供服務便可。 網絡

        生成瓦片地圖的機制多種多樣,其中包括商用軟件的解決方案(如:ESRI ArcGIS Server生成Cache的方式),或者開發者能夠依照相關規範自行編寫程序來生成切片;不過在免費軟件中,也有提供相似服務的軟件GeoWebCache。
GeoWebCache
        GeoWebCache是一個採用Java實現用於緩存WMS(Web Map Service)Tile的開源項目。當地圖客戶端請求一張新地圖和Tile時,GeoWebCache將攔截這些調用而後返回緩存過的Tiles。若是找不到緩存再調用服務器上的Tiles,從而提升地圖展現的速度。實現更好的用戶體驗。 架構

        針對大量數據的進行處理時,每每會使用數據庫系統(DBMS)進行管理,以加強其運行效率。所以,數據庫系統的使用在整個系統運行中是很是常見的一環。這類軟件包括商用軟件的解決方案,如:Oracle、SQL Server等,或者免費軟件MySQL等。
        一樣的問題也會出如今地理信息系統上,若是大量的數據須要存放在GIS上,採用原有的數據存儲方式,系統的執行效率勢必大大地下降。若是想要獲得改善,就必須經過數據庫系統來管理大量的數據資源。然而地理信息的資源與普通資源最大的差別,也就是再於地理信息資源中含有大量的空間屬性。所以,被選爲處理空間資源的數據庫必須具備這項能力。
        近幾年來,Orace數據庫針對這個部分進行研發,誕生了Oracle Spatial;而Microsoft在新版本的SQL Server中也添加了處理空間屬性的功能。對於免費數據庫這塊,PostgreSQL自己做爲一個至關不錯的數據庫,再搭配PostGIS以後,也具備處理空間信息的能力。
PostgreSQL
        PostgreSQL是一種對象-關係型數據庫管理系統(ORDBMS),也是目前功能最強大、特性最豐富和最複雜的自由軟件數據庫系統。它起源於伯克利(BSD)的數據庫研究計劃,目前是最重要的開源數據庫產品開發項目之一, 有着很是普遍的用戶。PostGIS在對象關係型數據庫PostgreSQL上增長了存儲管理空間數據的能力,至關於Oracle的spatial部分。PostGIS最大的特色是符合而且實現了OpenGIS的一些規範,是最著名的開源GIS數據庫。 ide

4、總結         因爲地理信息技術的不斷髮展,GIS在開源軟件陣營中也獲得了長足的進步。開源軟件的特色就是須要遵循必定的規範才能協同工做。故而,本文提供了一種基於Java EE標準體系的GIS服務平臺架構:OpenLayers+GeoServer+GeoWebCache+PostgreSQL+Eclipse/MyEclipse+Tomcat/Jetty,同時對所涉及的軟件進行了簡單介紹和職責分派。說明了在不借助商用軟件提供的解決方案的前提下,咱們一樣也能夠構建出具備高效能品質的地理信息服務。

相關文章
相關標籤/搜索