<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    內蒙古java團隊

    j2se,j2ee開發組
    posts - 139, comments - 212, trackbacks - 0, articles - 65
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    MapGuide的系統架構

    Posted on 2011-04-20 09:39 帥子 閱讀(1250) 評論(0)  編輯  收藏 所屬分類: MapGuide
    ?MapGuide由四個獨立的組件(Component)構成,它們分別是:MapGuide Server MapGuide Web Extensions MapGuide Studio MapGuide Viewer

    MapGuide的系統架構 - 氣體分子 - 氣體分子

    ??? MapGuide Studio和MapGuide Viewer是MapGuide Server的客戶端,來自客戶端請求使用HTTP協議發送到Web Extentions,Web Extensions的WebAgent組件對這些請求進行處理最后發送到MapGuide Server。當MapGuide Server接收到一個請求,它會訪問存儲在資源庫中資源,以圖像或DWF格式創建和渲染地圖,最后將地圖返回到MapGuide Viewer。MapGuide View用于在屏幕上顯示地圖、管理圖層和要素的屬性數據。對于DWF Viewer,返回DWF格式的地圖;對于AJAX Viewer,返回圖像格式的地圖。MapGuide Studio包含了一個內建的DWF Viewer。

    1. MapGuide Server
    ??? MapGuide Server用來管理連接(Connection)、線程池(Thread Pools)、日志,提供各種類型的服務(Service),響應客戶端的服務請求。
    ??? 運行于Web應用程序服務器上的程序通過MapGuide Service API訪問MapGuide Server提供的服務。MapGuide Service API使用了MapGuide服務TCP/IP協議與MapGuide進行通訊。MapGuide服務TCP/IP協議是一個簡單的二進制傳輸協議,它會將連接和操作請求進行編碼發送到MapGuide服務器,并且將MapGuide服務器的響應結果進行解碼返回給調用者。
    ??? MapGuide Service API對于MapGuide二次開發人員來說是透明的,如果你不打算研究MapGuide的源代碼,那么無需了解MapGuide Service API。

    MapGuide的系統架構 - 氣體分子 - 氣體分子

    1.1?站點(Site)和服務器(Server)
    ??? 為了解決負載平衡的問題,MapGuide引入了站點(Site)的概念,站點是用來處理MapGuide的服務請求的一系列服務器的集合。用戶可以將MapGuide的服務部署到站點內的多個服務器上,這些服務器共享一個獨立的資源庫(Resource Repository)。資源庫存儲著要素源(Feature Source)、地圖(Map)、圖層(Layer)等資源。
    ??? 在下圖中,站點有兩臺服務器組成,其中一臺用來作為站點服務器。站點服務器上部署著資源庫,并且連接到站點內的其他服務器和數據庫服務器。

    MapGuide的系統架構 - 氣體分子 - 氣體分子

    ???? MapGuide Server提供了七種服務:站點服務(Site Service)、資源服務(Resource)、制圖服務(Drawing)、要素服務(Feature Service)、地圖服務(Drawing Service)、渲染服務(Rendering Service)和分塊服務(Tile Service)。如果你使用的是單機服務器,所有的服務都運行在這一臺服務器上。站點服務和資源服務只能運行在站點服務器上,因為站點服務器負責數據的訪問和管理站點內的所有資源。如果你有兩臺或更多的服務器,你可以將除站點服務和資源服務外的任意服務部署到其他服務器上。例如,地圖服務和渲染服務是最耗時的操作,我們可以將這兩種服務部署到一臺獨立的服務器,從而提高系統的性能。
    ??? 在安裝Web Extensions時,會同時安裝一個站點管理程序(Site Administrator Program),通過它你可以管理站點和服務器。這是一個Web界面的應用程序,用戶可以通過瀏覽器來使用它。打開瀏覽器,在地址欄中輸入http://servername/mapguide/mapadmin/login.php,你就可以啟動這個程序。其中,“servername”代表安裝Web Extensions的服務器的IP地址或名稱。
    ??? 登錄站點管理程序,你可以

    管理站點。例如:增加、刪除服務器,將服務器置為離線(Offline)以進行維護。 分派服務到不同的服務器。例如:一臺服務器可以處理地圖服務,另一臺處理渲染服務。 監測任何服務器的狀態。 定義用戶和組,管理他們的權限。

    MapGuide的系統架構 - 氣體分子 - 氣體分子

    1.2?資源庫(Resource Repository)
    ??? 資源庫是一個基于Berkeley DB XML的XML數據庫,用于管理層次結構的資源。一個站點內只能有一個資源庫,并且必須駐留在站點服務器。
    ??? 在MapGuide中,資源是設計來共享和重用的。資源庫中包含兩種類型的節點:資源文件夾節點和資源文檔節點。資源文件夾代表一個可以包含資源文檔和其它資源文件夾的容器,資源文檔用來存儲一個文檔。每種類型的資源節點都有一個唯一的ID、名稱、路徑和相關的訪問權限,我們可以通過資源的ID或路徑加文件名訪問任意一個資源節點。用戶對每個資源節點的訪問權限是由它的訪問權限決定的,子節點總是繼承父節點的訪問權限,子節點可以通過覆蓋父節點訪問權限改變對自己的訪問權限。
    ??? 一個資源可以引用另一個資源。例如:地圖、圖層、要素源(Feature Source)被存儲為三種不同的資源,地圖引用了地圖內的所有圖層,圖層引用了要素源。當原始的要素源更新后,圖層也會自動更新。一般情況下,一個資源通過ID來引用另一個資源。這樣的話,即使資源被移動或重命名,也無需進行任何修改。
    ??? 一個資源也可以是獨立的,不引用任何其他資源。例如:打印布局(Print Layerout)。資源庫支持如下類型的資源:

    Web布局(Web Layerout) 打印布局(Print Layerout) 地圖(Map) 圖層(Layer) 符號庫(Symbol Libary) 制圖源(Drawing Source) 要素源(Feature Source): 過程(Procedure) 文件夾(Folder)

    ??? 每個資源還可以擁有自己的資源數據(Resource Data),資源數據可以存儲為文件、流和字符串。

    MapGuide的系統架構 - 氣體分子 - 氣體分子

    2.?MapGuide Web Extensions
    ??? MapGuide Web Extensions是一個可以通過Web Extensions API訪問的內部組件,它暴露了MapGuide Server提供給客戶端的服務。Web Extensions也是一個應用程序開發平臺,開發人員可以調用Web Extensions API開發Web應用程序。目前,Web Extensions API支持PHP、ASP和JSP三種語言。
    ??? WebAgent用來處理來自MapGuide Studio或MapGudie Viewer的請求,將其傳輸給MapGuide Server。WebAgent實現了MapGuide服務HTTP協議,用于將請求轉發給服務器。WebAgent處理傳入請求的參數,建立與服務器的連接,調用相應服務的API。在得到API的響應后,將API返回的數據以流的方式返回給客戶端。
    ??? OpenGIS Agent實現了多個OpenGIS Web地圖協議,使用戶可以通過標準OpenGIS客戶端的訪問MapGuide提供的服務。作為Web服務的空間數據服務規范,只要某一個GIS軟件支持這些OpenGIS Web地圖協議,其他GIS軟件就可以通過這些地圖協議定義的接口得到所需要的數據。目前,OpenGIS Web Agent完成了如下協議:

    Web地圖服務(Web Map Service):Web地圖服務提供了一個簡單的HTTP接口,從地理空間數據庫中返回圖層級的地圖影像數據。這個規范定義了三個操作:GetCapabitities返回服務級元數據,它是對服務信息內容和要求參數的一種描述;GetMap返回一個地圖影像,其地理空間參考和大小參數是明確定義了的;GetFeatureInfo(可選)返回顯示在地圖上的某些特殊要素的信息。
    Web要素服務(Web Feature Service):Web要素服務地圖服務提供了一個簡單的HTTP接口,從地理空間數據庫中返回是要素的GML編碼,并提供對要素的增加、修改、刪除等事務操作。Web要素服務允許客戶端從多個Web要素服務中取得使用地理標記語言(GML)編碼的地理空間數據,定義了五個操作:GetCapabilites返回Web要素服務性能描述文檔(用XML描述);DescribeFeatureType返回描述可以提供服務的任何要素結構的XML文檔;GetFeature為一個獲取要素實例的請求提供服務;Transaction為事務請求提供服務;LockFeature處理在一個事務期間對一個或多個要素類型實例上鎖的請求。
    Web覆蓋服務(Web Coverage Service):Web覆蓋服務定義了一個簡單的接口和一些操作,用于訪問地理空間“覆蓋”(Coverage)數據。Web覆蓋服務由三種操作組成:GetCapabilities,GetCoverage和DescribeCoverageType。GetCapabilities操作返回描述服務和數據集的XML文檔。GetCoverage操作是在GetCapabilities確定什么樣的查詢可以執行、什么樣的數據能夠獲取之后執行的,它使用通用的覆蓋格式返回地理位置的值或屬性。DescribeCoverageType操作允許客戶端請求由具體的WCS服務器提供的任一覆蓋層的完全描述。
    注:覆蓋是將閉合區域區內的位置關聯于一些屬性值的要素。“網絡覆蓋”(Grid Coverages)一般指衛星影像、航拍影像、遙感圖像、數字高程數據等數據,每個像素代表或關聯于一個屬性值。

    ??? 從技術實現的角度,可以將Web服務理解為一個應用程序,它向外界暴露出一個能通過Web進行調用的接口,允許被任何平臺、任何系統,用任何語言編寫的程序調用。這個應用程序可以用現有的各種編程語言實現。Web服務最大的特點是可以實現跨平臺、跨語言、跨硬件的互操作。

    MapGuide的系統架構 - 氣體分子 - 氣體分子

    3. MapGuide Viewer
    ??? MapGuide Viewer提供了一種途徑讓用戶可以在Web瀏覽器中瀏覽地圖。目前,最新版本的MapGuide有三種風格的View:

    DWF Viewer:這種類型的Viewer只能工作在Windows平臺的IE瀏覽器,需要用戶下載和安裝一個ActiveX控件以支持顯示DWF格式的數據。
    AJAX Viewer: 這是一個零客戶端Viewer,用戶無需下載或安裝任何軟件。它能夠工作在Windows平臺Microsoft Internet Explorer和MacOS或Linux的Firefox上。
    基于Fusion的AJAX Viewer:這種Viewer極大地提高了AJAX Viewer從功能和界面方面進行定制的能力。

    3.1?DWF Viewer
    ??? MapGuide DWF Viewer是基于DWF和Autodesk DWF Viewer (ADV)的。DWF (Design Web Formt) 是Autodesk公司開發的、用戶共享工程設計數據的、一種開放、安全的文件格式。DWF文件是一個壓縮文件,一般非常小,所以非常易于傳輸和查看。Autodesk DWF Viewer是用于瀏覽DWF格式文件的一個工具,它只支持標準的包含二維EPlot文檔和三維EModel文檔的DWF文件。
    ??? 非常遺憾的是Autodesk Design Review 2010不再包含MapGuide DWF Viewer所使用的組件, Autodesk不再支持和維護DWF Viewer,所以MapGuide 2010及其后的版本不再支持DWF Viewer。對于那些仍然依賴于DWF Viewer的MapGuide應用程序,可以通過安裝Autodesk Design Review 2009繼續使用它們。
    ??? MapGuide DWF Viewer的架構如下圖所示:

    MapGuide的系統架構 - 氣體分子 - 氣體分子

    ??? Map文檔是MapGuide對現有DWF文件格式的一種擴展,定義了地圖的名稱、坐標系、范圍、地圖圖層列表、地圖圖層分組和一系列應用程序擴展。一個DWF文件可以包含多個EMap文檔。
    ??? EMap View是對現有Autodesk DWF Viewer的擴展,用來支持顯示EMap文檔。EMap View可以枚舉DWF文件中的所有EMap文檔、顯示當前的EMap文檔、枚舉EMap文檔中的所有圖層、改變每個圖層的可見性(Visibility)。同樣,EMap Viewer可以利用Autodesk DWF Viewer已有的功能縮放、選擇地圖上的要素。EMap Viewer使用了如下三種用戶界面組件:

    地圖導航控件(Map Navigation Control):用于選擇DWF文件中當前顯示的EMap,與地圖圖例(Map Legend)交互、執行預定的查詢等。
    地圖控件(Map Control):用于瀏覽地圖,按照當前比例尺顯示或隱藏圖層,計算標注的位置等。
    屬性瀏覽控件(Property Browsers Control):用戶顯示關聯到地圖、圖層、要素的屬性信息。這個控件是標準Autodesk DWF Viewer的一部分。

    ??? MapGuide Viewer API適配器(Adapter)暴露了MapGuide 6.x API,提供了一種將以前版本的MapGuide應用程序升級到新版本的解決方案。


    3.2?AJAX Viewer
    ??? DWF Viewer有不錯的性能,因為DWF是一種向量格式的文件,在平移和縮放地圖的時候無需向服務器重新發送請求。但是,DWF Viewer只能工作在Windows平臺,這非常大地限制了MapGuide的應用。在MapGuide 6.5之后,MapGuide引入了AJAX Viewer來解決這個問題,使MapGuide可以工作在Linux平臺。
    ??? 使用AJAX Viewer時,地圖總是被渲染為圖像傳送到AJAX Viewer。每次平移或縮放地圖,AJAX Viewer會向服務器發送請求,要求重新渲染地圖,所以性能要比DWF Viewer差一點。

    3.3?基于Fusion的Viewer
    ??? Fusion框架是一個靈活的、可擴展的模版系統,它可以將應用程序的界面和功能模塊分割開來。在最簡單的情況下,一個Fusion應用程序模版(Fusion Application Template)由一個HTML頁面組成。通過將Javescript腳本庫fusion.js加載HTML頁面中,在onload事件中初始化Fusion對象,就可以創建一個Fusion應用程序。Fusion使用了一個專有的XML文檔來決定在頁面中創建哪些功能模塊,MapGuide中這個XML文件作為一個ApplicationDefinition資源存儲在MapGuide資源庫中。
    ??? 我們將Fusion應用程序的每個功能片稱之為Widgets,一個Widget包含一種獨立的功能。通常情況下,Widget是自包容的,不依賴于任何其他的Widget。但實際中,如果沒有其他的Widget,有一些Widget是毫無意義的。一個Widget通常包含了一些用戶界面,例如按鈕或圖例(Legend)。Widget的顯示位置是由應用程序模版中的HTML id屬性來控制的,但并不受限于Fusion框架。Widget是設計的用于顯示在HTML頁面中的,它會根據容器的大小自動縮放。同時,Widget也設計為可配置的(Configurable),通過修改ApplicationDefinition可以訂制Widget的功能。通過覆蓋某些CSS類,也可以改變Widget的外觀。
    ??? Fusion框架使用了Jx庫來簡化支持不同瀏覽器的問題。Jx是一個獨立的Javascript庫,最開始是開發用來支持WebStudio的。當定制一個應用程序的外觀時,開發人員通常是定制Jx模塊,而不是Widget自身。例如:將所有按鈕Widget外觀效仿Window XP樣式,開發人員實際上會提供一個CSS文件覆蓋Jx默認的CSS文件。通常來說,Fusion Widget不包含自己的CSS或可視樣式(Visual Style)。
    ??? 盡管Fusion由Javascript編寫而成,但是它有一種機制可以異步地調用服務器腳本。這樣可以大大提升MapGuide Web Extensions API的能力,從而提供更多高級的功能。Fusion的架構是設計的可以支持任何服務器端腳本語言,但是現在只實現了對PHP的支持。
    ??? Fusion的引入是為了解決MapGuide原有的AJAX Viewer在功能和界面方面難于定制的問題。MapGuide創建了一系列widget來復制原有AJAX Viewer的功能,并且開發了幾個基本的應用程序模版作為開發新的應用程序的基礎。

    4.?MapGuide Studio
    ??? MapGuide Studio是一個用來制作收集、準備地理空間數據和制作地圖的工具。它只能運行在Windows平臺,MapGuide開源版提供了一個免費的預覽版Studio,這個版本沒有經過嚴格的測試。MapGuide企業版提供了一個經過嚴格測試的完全版Studio,不過它是需要付費的。當你使用MapGuide Studio的時候,一般會遵循如下的幾個步驟:

    為地理空間數據在資源庫中創建相應的資源。你既可以直接加載文件類型的數據,也可以連接到一個外部的數據庫。
    創建圖層(Layer)。
    編輯地圖(Map),將所需的圖層加入地圖。
    將地圖嵌入一個Web Layout中。

    ??? 在有了一個Web Layout后,你就可以通過添加自己的代碼定制Web應用程序的界面和功能。最后一步就是將完成的Web應用程序發布到Internet或Intranet供用戶瀏覽和交互。
    ??? MapGuide Studio接口分為了三個部分:

    ??? 當打開MapGuid Studio連接到站點服務器,站點管理器會顯示存儲在資源庫中的所有資源。雙擊站點管理器中的任何一個資源,對應的編輯器會打開,用戶可以修改資源的信息。如果資源是圖層或地圖,Viewer會打開并顯示數據的預覽。

    MapGuide的系統架構 - 氣體分子 - 氣體分子

    ?

    “即使資源被移動或重命名,也無需進行任何修改” 資源之間的dependency沒有強制關聯,比如LayerDefinition 引用了 FeatureSource,但是如果移動或者重命名這個FeatureSource,在LayerDefinition中引用的地址不會自動更新的,從而引用關系丟失。在2011中有計劃加入一個參數,使得移動或者重命名時能夠保持關系。不過從本質上來講,MapGuide的資源沒有像RDBMS那樣具有“外鍵”約束。一點小問題: MapGuide Server提供了七種服務:站點服務(Site Service)、資源服務(Resource)、制圖服務(Drawing)、要素服務(Feature Service)、地圖服務(Drawing Service)、渲染服務(Rendering Service)和分塊服務(Tile Service)。 Drawing Service ----繪圖服務/制圖服務 Mapping Service ----地圖服務


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 色欲色香天天天综合网站免费 | 中文字幕a∨在线乱码免费看| 日韩视频免费一区二区三区| 亚洲粉嫩美白在线| 野花高清在线观看免费完整版中文| 亚洲狠狠狠一区二区三区| 亚洲精品在线免费观看视频| 亚洲第一二三四区| 男女做羞羞的事视频免费观看无遮挡 | 亚洲国产成人乱码精品女人久久久不卡 | 我要看免费的毛片| 老子影院午夜伦不卡亚洲| 免费在线看片网站| 国产男女爽爽爽免费视频| 亚洲av伊人久久综合密臀性色| 久久久久久国产精品免费免费男同| 亚洲视频免费播放| 四虎国产精品免费久久| 亚洲av乱码中文一区二区三区| 亚洲精品岛国片在线观看| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 亚洲精品第一国产综合精品| 国产在线a免费观看| 亚洲AV无码AV男人的天堂不卡| www.亚洲精品| 免费人成在线观看网站品爱网| 亚洲一级视频在线观看| 国产色婷婷精品免费视频| 亚欧免费视频一区二区三区| 亚洲人妖女同在线播放| 免费永久在线观看黄网站| 国产裸体美女永久免费无遮挡| 久久亚洲精品国产精品| 女人张腿给男人桶视频免费版 | 久爱免费观看在线网站| 亚洲情A成黄在线观看动漫软件| 亚洲国产成人久久综合区| 亚洲一级免费视频| 日亚毛片免费乱码不卡一区| 亚洲嫩草影院久久精品| 日本v片免费一区二区三区|