StackDoc

StackDoc

當前位置: 主頁 > 數琚庫 > Oracle >

基於ArcGIS10.0和Oracle10g的空間數據管理平台(C#開發)ArcGIS相關知識補充學習

時間:2011-11-22 09:25來源:Internet 作者:Internet 點擊:
     其實開發一個項目,難點不在於語言方面,不管哪一種語言都不是你實現一個項目的阻力,其實真正能不能完成一個項目,要看能不能完整而詳細的理解項目的需求,然後

     其實開發一個項目,難點不在於語言方面,不管哪一種語言都不是你實現一個項目的阻力,其實真正能不能完成一個項目,要看能不能完整而詳細的理解項目的需求,然後理解需求的基礎又是對行業相關知識的把握,只有弄清楚了行業知識以及相關的概念並且能夠深入理解,才能輕松加愉快的完成項目,不然的話只有每天在無情的加班和代碼面前無能为力。就針對我講解的這個項目的開發,對於當時的我來說卻是存在很多新的概念,而且第一次看資料還不一定能夠看懂,只有不停的查閱更多相關資料並深入理解才能夠把握項目的功能需求。下面就針對自己在學習相關概念和知識時收集到的一些ArcGIS資料整理如下,這些資料都是從網上收集來的,所以感謝那些無私的在互聯網上提供各種學習資料的人,當然我也樂於將自己的所學和所得與互聯網上的同行們分享之。

1.ArcGIS Server 體系結構

    ArcGIS Server是一個發布企業級GIS應用程序的綜合平台,提供了創建和配置GIS應用程序和服務的框架,可以滿足各種客戶端的各種需求,這是對 ArcGIS Server一個抽象的描述,那麼ArcGIS Server在GIS應用中具體扮演什麼样的角色呢?
    使用過ArcGIS 桌面應用軟件的人知道,在桌面環境中存在各種GIS工具可以供使用,如展現GIS數據可以用ArcMap、ArcGlobe,根據位置尋址可以使用 address locator,對數據進行分析操作可使用ArcToolbox的Geoprocessing工具,這些包含了不同級別的GIS功能,從底層來看,都是通過ArcObjects來實現這些的。

    站在ArcGIS Server的角度上,我們不再考慮要處理的數據是ArcMap的mxd文檔、ArcGlobe的3dd文檔、還是address locators等,相應地,我們用服務的概念來對它們進行描述,這些服務可以是map services、globe services、geocode services,GIS資源依托這些服務存在,當需要在GIS Server上共享一個地圖時,就使用該地圖的mxd來定義一個Map Service。可以看出,ArcGIS Server的目的就是宿主各種服務,並为客戶端應用提供這些服務資源,另外,ArcGIS Server提供了一個管理程序來對服務進行控制與管理。

ArcGIS Server體系結構可以用下圖來描述:


    (1)GIS Server

     宿主各種GIS資源,例如maps、globes、address locators,並將它們封裝为服務提供给客戶端應用。
     GIS Server本身包括兩部分:Server Ojbect Manager(SOM)和Server Object Containers(SOCs)。通過命名可以看出,是一個SOM和一個或多個SOC,客戶端發送請求到SOM,SOM將分配的資源提供给客戶端,通過 SOM對SOC進行調度與管理。

    (2)Web Server


    Web Server包含Web應用的部署,以及Web服務,它們均使用GIS Server上的服務資源。

    (3)Clients

    這裏所說的客戶端是多样化的,可以是Web客戶端、Mobile移動設備、通過HTTP連接到ArcGIS Server Internet服務或通過LAN/WAN連接到ArcGIS Server Local Services的ArcGIS桌面應用。

    (4)Data Server

    包含GIS Server上所發布服務的GIS資源,可以是mxd文檔、geodatabase、toolbox等。

    (5)Manager and ArcCatalog administrators

    兩者都可以用來將GIS資源作为服務發布,並進行管理,不同的是一個是在Web頁面上管理,另一個在桌面Catalog上,在圖上可以看出,它們所針對的層次有所不一样。

    (6)ArcGIS Desktop content authors

    各種GIS資源需要使用各種ArcGIS Desktop軟件來定制,如果需要为地圖服務生成緩存,可以用ArcCatalog來創建cache。

ArcGIS Engine 是一組跨平台的嵌入式 ArcObjects ,它是 ArcGIS 軟件產品的底層組件,用來構建定制的 GIS 和桌面制圖應用程序,或是向原有的應用程序增加新的功能。 ArcGIS Engine 應用程序可以是簡單的地圖瀏覽器,也可以是定制的 GIS 編輯和分析程序。通過 ArcGIS Engine 構建的應用,既可以以地圖顯示为中心,也可以不是,這一點非常重要。這一特性使 ArcGIS Engine 特別适合於構建非 GIS 为中心的應用。

2.使用ArcGIS Engine開發應用程序


   (1)ArcGIS Engine 開發包

    開發者使用 ArcGIS Engine 開發包構建應用程序,並通過 ArcGIS Engine Runtime 的軟件許可將這些程序分發给最終用戶。 ArcGIS Engine 開發包包括了支持各類開發任務的資源,为多種應用程序接口( API )提供了集成的幫助系統,以及對象模型圖和示例。

    ArcGIS Engine 開發包提供了大量 ArcObjects 組件,還包括用於創建高質量制圖用戶界面的可視化控件。這些可視化控件有多種形式: ActiveX 控件、 JavaBeans 和 .NET 的窗體控件。這些控件能與其它控件和組件一起使用,用來創建定制的用戶界面、顯示和報告。

    開發者使用 ArcGIS Engine 能做什麼?
    作为一個開發者,你能夠在程序中實現下列功能:

    a.顯示多圖層的地圖,如道路、河流和邊界。
    b.地圖的漫遊和縮放
    c.在地圖上識別要素
    d.在地圖上查詢要素
    e. 顯示航片或衛片
    f.繪制圖形要素,如點、線、圓和多邊形
    g.繪制描述性文本
    h.以線、選擇框、區域、多邊形和圓來選擇要素
    i.以要素緩沖區進行選擇
    j.以結構化查詢語句( SQL )查找和選擇要素
    k.以專題符號化方法顯示要素,如獨立值圖、分類圖和點密度圖
    l.動態顯示實時或時序數據
    m.從街道地址或交叉點尋找位置
    n.轉換地圖數據的坐標系統 
    o.對要素進行幾何操作,生成緩沖區、計算不同部分、尋找交叉點、合並等
    p.修改要素形狀或旋轉地圖
    q.新建和更新要素的幾何形狀和屬性
    r.操作個人和企業級 geodatabase
   s.使用 ArcGIS Engine 開發

     開發者可以選擇集成開發環境( IDE )來建立 ArcGIS Engine 應用程序,如 Windows 程序員使用的 Delphi 和 Visual Studio ;Java 程序員使用的 JBuilder 、 Eclipse 和 Sun ONE Studio 。開發者在他們的 IDE 中注冊 ArcGIS Engine 開發組件,然後創建基於窗體的應用程序,添加 ArcGIS Engine 組件並編寫代碼來建立應用邏輯。例如,你能夠建立一個面向 GIS 制圖的應用程序,在自己的應用程序中添加一個地圖控件、目錄表控件和選中的工具條。盡管能夠通過高級控件建立簡單的應用,但是實用的 ArcGIS Engine 應用程序需要不同對象庫的相關知識。

(2)開發者工具

    ArcGIS 開發包分为三個主要的集合:

    (a)控件——控件是 ArcGIS 的可視化用戶界面組件,它們能夠嵌入你的應用程序中。例如,地圖控件和目錄表控件能夠加入定制的程序中來表現交互式地圖。
    (b)工具條和工具——工具條包含了一組 GIS 工具,它們用來與地圖和地理信息進行交互。這样的工具如漫遊、縮放、識別和選擇。工具出現在應用程序界面的工具條上。工具簡化了定制程序的構建過程,通過提供一組常用的功能。開發者能夠很容易地將選中的工具拖放到他們的程序界面上。
     (c)對象庫——對象庫是邏輯分組的 ArcObjects 編程組件,範圍從空間幾何到制圖、 GIS 數據源和 Geodatabase 。程序員能夠在多平台的 IDE 中使用它們,來建立從簡單到复雜的應用程序。這些用來構建 ArcGIS Desktop 和 ArcGIS Server 的基礎庫能夠在常用的開發環境中使用(例如 .NET 、 C++ 、 Java 和 COM )。
部署 ArcGIS Engine 應用程序

    一旦構建了 ArcGIS Engine 應用程序,它們就能夠安裝在這样兩種環境下: ArcGIS Engine 環境,它們被嵌入系統中來運行 ArcGIS Engine 應用程序已經安裝了 ArcGIS Desktop 的環境

3.ArcSDE是什麼?

     ArcSDE是一個基於關系型數據庫基礎上的地理數據庫服務器,是對關系型數據庫的一個擴展。他可以運行於Oracle、SQL Server、DB2、Informix等大型數據庫之上。與數據庫間形成了一種Client/Server三重體系結構。采用ArcSDE管理地理信息數據ArcGIS的共享,安全,和維護和數據處理能力方面大大超過老一代地理信息系統。

(1)ArcSDE是一個地理數據事務處理系統

    我們多次提到了數據共享和锁定,起目的是在數據沖突發生之前避免其發生,但從另一方面看给應用帶來了很大的不便,實際上應用锁定了某些數據,對其中大部分數據並沒有修改,或者修改了並沒有產生沖突。一個事務處理過程周期只局限於客戶端連接周期,一旦關閉連接事務必須提交。這很大程度限制了其應用。 本文來GIS公园

如我們可能會要求地理信息系統來回答諸如“萬一…..”,“昨天……”的問題,我們是否需要對整個數據備份,然後修改數據回答“萬一…..”的問題,或每天把整個數據備份,以隨時准備調入應付“昨天……”的問題。

如電力工程項目需要經過設計,我們需要分析新的工程項目會對電力系統產生什麼样的影響,但又不能改變現有的運行系統數據。而且這個設計過程又很長。再如我們需要知道如果某一設備發生故障會連續造成什麼損失,但不可能真的去毀掉此設備。 內容來自GIS公园

這就需要系統有長事務處理的能力。ArcSDE通過版本管理技術解决了這一系列問題。數據庫中可以存儲多個版本的數據,但並非是簡單的數據備份,它們僅僅記錄數據版本的區別。版本之間是樹型繼承關系,各個版本可以獨立編輯和運行。只有當一個版本向其父版本提交時才會產生沖突。這時系統可以采用交互的手段來解决這些沖突。要麼采用本版本數據,要麼沖突版本數據,要麼采用沖突之前的數據。 gispark.com

(2)ArcSDE是一個高效的地理數據服務器

    利用了數據庫的強大數據查詢機制,ArcSDE可以實現在多用戶條件下的高效並發訪問。ArcSDE采用了與一般信息系統不一样的空間索引機制。
我們知道地理信息的數據量是非常龐大的,但處理或分析數據時很少去針對整個數據集,對於整個數據集的處理實際上是無法加快速度的,這時本地文件系統可能比數據庫效率更高。我們一般僅僅是對一個數據集的一個子集或一條記錄進行操作。如我們大概不會在計算機上的屏幕上顯示城市所有的建築物,實際上那是沒有任何意義的,你除了一片漆黑,什麼也看不清,因为屏幕的分辨率和你的大腦的信息處理能力有限,你只能選擇某一區域以合适比例顯示出來。

實際上我們看到空間位置是地理數據的關鍵的獨一無二的索引方式。也就是說,通過ArcSDE的空間索引,我們可以在龐大的地理數據中,快速地查找出指定區域的數據子集,這就是ArcSDE與單純數據庫的最大的區別。

另外ArcSDE對空間坐標采取了整數量化,和增量壓縮存儲和計算方式,減少浮點運算,磁盤存儲和輸入輸出,這些也是ArcSDE可以快速地處理地理數據的原因。

ArcSDE采用了Client/Server方式,在網络上傳輸的是操作請求和應答而不是整個原始數據,減少了網络的堵塞。

ArcSDE是專門为多用戶並發而設計的,采用了多線成的體系結構ArcSDE客戶端API通過TCP/IP端口與服務器連接,請求打開一個數據流,ArcSDE服務器为此數據流启動另外一個進程提供數據服務,直到客戶端關閉數據流。這样每個客戶端不需要等待其它的客戶端服務完成。

(3)ArcSDE是一個安全的地理數據庫

    ArcSDE采用了數據庫技術,利用數據庫的安全手段,你的地理數據將更安全,更有保障。通過對數據庫的備份可以備份地理數據。你也可以通過ArcSDE的數據備份功能來備份ArcSDE的數據。ArcSDE的版本管理功能保證了系統可以隨時恢复到定義過的數據版本上。ArcGIS的基礎是ArcObject,ArcObject基於COM技術構建,是所有ArcGIS開發活動,例如桌面版開發,服務器開發的基礎。總的來說,應用ArcGIS開發,包括以下幾個方面:

 ○ 設置或自定義ArcGIS應用程序,例如ArcMap;

 ○ 擴展ArcGIS,例如開發自己的擴展工具包(Toolbox),或者增加新的數據模型;

 ○ 應用ArcEngine開發胖客戶端應用程序,例如在其他程序中嵌入GIS功能;

 ○ 應用ArcGIS Server創建Web程序或者Web服務。

    有關AO和ArcGIS系列的關系,我們在各類文檔中已經見得很多了,這裏就不說了。有一點要強調,就是所有產品的核心是AO,而ArcGIS Engine或者ArcGIS server與Desktop不同之處在於前者提供了面向胖客戶端和服務器端的中等粒度的控件,而後者的開發則無法使用這些控件。對於應用ArcGIS開發過的讀者可以發現,即使不安裝ArcEngine,ArcEngine下的很多控件,例如Map、3D顯示的控件,也是在系統中存在的,可以推測,在ArcGIS 9.x中,Desktop應該也使用了這些控件(需要證實!)。

 

4.ArcGIS Desktop開發的類型

 ○ 自定義ArcMap、ArcCatalog的布局和界面,包括增加自定義的按鈕,指定相應的宏;

 ○ 使用VBA創建解决方案;

 ○ 創建ArcGIS擴展;

 ○ 創建獨立的應用程序(後面單獨說明)。

 

(1)自定義ArcGIS Desktop

    理解自定義ArcGIS Desktop和理解Office下的Word的自定義類似。以ArcMap为例,對於一個Map文檔(mxd),包括下面幾個部分:使用的數據(即該地圖使用了那些數據);地圖的布局;當前程序的界面布局(自定義);VBA工程。對於模版(template),有Normal Template和地圖Template的區別,前者影響ArcMap程序本身,即所有打開文檔都有應用Normal模版,後者只影響使用了該模版的地圖。因此,使用自定義的模版,是ArcGIS Desktop開發的第一個層次,通過將需要的界面元素集合起來,並重新安排,即可組成一個符合客戶需求的自定義程序,而集合一定的VBA代碼,可以完成的工作就非常多了。例如一個快遞公司,可以把地圖操作(縮放、移動、打印等)、網络分析相關的界面元素通過自定義工具,整合在一起,隱藏掉其他工具和界面元素,就可以比較好的應用於實際工作。

(2)應用VBA

    應用VBA開發解决方案有很多優勢,例如不需要安裝第三方開發工具、簡單、易於使用,還有一點就是在不熟悉AO結構的前提下,使用VBA要比使用其他方式更易上手。對於非專業程序員,使用VBA應該是ArcGIS Desktop開發的首選;對於專業開發者,通過VBA也是學習和熟悉AO很好的途徑。

     VBA工程:VBA工程是ArcGIS中VBA程序和代碼的載體,和地圖模版(template)或者地圖(mxd文件)一起保存。打開VBA編輯器後,有Normal和目前打開的文件2個VBA工程。對於一個VBA工程,由以下幾類對象組成:

 ○ ArcMap對象

 ○ 過程模塊

 ○ 窗體模塊

 ○ 類模塊

 ○ 引用(對Normal模版的引用)

     對於大多數開發,首先是通過自定義界面,例如創建工具按鈕,然後就可以在ArcMap對象中選擇這個工具,創建其事件響應過程。例如我們自定義一個按鈕,UIButtonControl1,然後在ThisDocumnet代碼窗口的對象選擇列表框選擇UIButtonControl1,在事件列表框選擇Click,創建UIButtonControl1_Click過程,在其中就可以書寫該按鈕單擊後調用的代碼。 通過窗體可以創建自定義對話框或者窗口,類模塊則可以創建自己的對象。 編寫ArcGIS Desktop擴展編寫ArcGIS擴展,可以完成以下任務(下圖): \

 

 ○ Command:即一個按鈕、菜單,通過實現ICommand、ITool、IToolCommand接口來創建;

 ○ Edit Task:與ArcMap Editor協同工作的組件,需要實現IEditTask接口;

 ○ Table of Contents tab:類似左側的數據和圖層視圖的小窗口,通過實現IContentsView接口來創建;

 ○ Class extension:自定義對象(feature),即有自己屬性和規則的空間對象,例如紅綠燈對象,電線,電閘等等,需要實現IClassExtension等接口。 copyright gispark.com

 

(3)應用程序的插件架構

    對於ArcGIS Desktop的開發,最關鍵的核心問題在於理解ArcGIS插件架構的運行機制,下面我們就對這個問題做一簡單介紹。

    插件架構的核心在於應用程序定義插件遵循的接口,然後由自定義組件來實現這個接口。其中有幾個關鍵點:

第一,主應用程序如何知道要加載插件

    對於ArcGIS是使用注冊表,和MS Office類似,在注冊表中建立一個“component categories”的條目,而組件要被ArcGIS加載,就需要注冊後,在這裏增加添加一個條目。對於現在的大多數.net程序和前COM時代的C或C++程序,則通過目錄來做到這點,通過遍曆目錄中的文件,然後通過反射機制(.net)來加載。而COM程序,如VB環境下,則可以通過CreatObject來加載一個組件。

第二,插件的初始化

    初始化包括2方面,一方面,主程序要創建一個變量,類型为插件所實現的接口,然後創建該插件,而同時,調用插件的初始化代碼,例如Connect,傳入需要主程序要暴露给插件的引用(App)。對於COM程序或者.net,是通過事件來做到這一點。主程序觸發初始化事件,該事件在插件的代碼中實現,根據傳來的變量,初始化插件的運行環境。對於C或者C++這样的環境,可以通過函數指針和回調函數來實現這一點。插件的初始化過程,就是插件插件和主程序通訊橋梁的過程,這個橋梁,對於ArcGIS,就是IApplication接口。

第三,插件和應用程序之間的通訊

    其實上邊已經差不多說清楚了,對於主應用程序,是通過創建插件對象,獲得當前插件的實例,然後控制他,如果是插件是一個按鈕,那麼初始化插件的時候,創建了按鈕對象,並绑定按鈕的click事件由插件的相應過程來處理。對於插件,則由於在初始化中通過初始化事件(例如OnCreat或者Connect這样的事件)的参數得到了當前應用程序的Application等對象實例,因此就可以使用這些對象實例來操作應用程序。對於應用程序的一些狀態變化,可以通過定義事件,然後在插件代碼中響應這些事件來完成。

 

第四,用戶界面

    Microsoft Office的COM加載宏的編寫,需要通過調用Office的Commandbar等對象來創建用戶界面元素,可以完全自定義。對於Photoshop這样的程序,插件程序使用C或C++來完成,擴展的位置固定在幾個確定的擴展點。ArcGIS個人覺得基本上處於二者之間。 本文來GIS公园

    開發ArcGIS擴展模塊的步驟和方法:明白了ArcGIS的插件架構,下來的開發主要就是在熟悉AO的基礎上,應用AO的功能開發具體的應用,或者擴展AO沒有提供的功能。一個擴展模塊開發的基本步驟如下:

(a)新建工程,添加AO的引用;

(b)實現需要的接口,添加具體的代碼;

(c)編譯为DLL,注冊該COM組件,並在ArcGIS的omponent categories注冊(也可以使用界面的自定義對話框瀏覽定位到具體的dll來注冊);

(d)測試和調試。

目前,ArcGIS Desktop擴展的開發環境包括COM兼容環境(例如VB或者VC),.net 1.1的VB.net或者C#。

(4)獨立應用程序

    一個GIS應用程序,必須實現基本的地圖功能,打開VB 6或者.net開發環境,可以看到隨ArcGIS Desktop安裝的有Map,PageLayout,Toc,Toolbar等控件。而在Desktop下可以使用(有許可)的只有Map和PageLayout控件。對於某些程序,也可以通過此類方法開發,但ESRI推薦在嵌入式或者胖客戶端程序,使用ArcGIS Engine。

總結

熟悉了ArcGIS Desktop開發的基本思路以及ArcGIS Desktop的插件架構的基本思想,應用ArcGIS Desktop開發就不再是复雜度很大的事情了。下來的主要工作就是熟悉AO,要熟悉AO,除了面向對象的知識外,GIS的很多原理和知識也是必要的,下回再見。

 

5.Geodatabase是什麼?Geodatabase簡介

     Geodatabase是什麼呢?Geodatabase實際上可以看成是我們在系統中所處理和使用的所有空間數據的一個智能庫。物理上,數據被存放在數據庫管理系統(DBMS)中,其類型可以是各種各样的,包括:

Vector  Topology

Raster  Networks

Addresses  TINs

Relationships and Rules  CAD

Metadata  Tables

     Geodatabase數據模型使現實世界的空間數據對象與其邏輯數據模型更为接近。在geodatabase中,我們定義的不再是傳統GIS對空間數據進行抽象後的“點”、“線”、“面”等簡單空間要素,而是應用領域中熟悉的對象,如:杆塔、刀閘、電纜、道路、建築、用地等。更重要的是geodatabase使我們不需要編寫任何程序代碼即可實現數據對象主要的操作行为。大多數的操作行为都可以通過對象值域(Domain)、子類型(Subtype)、規則等的定義以及ArcInfo提供的應用框架中豐富的其它功能來完成。對特殊應用中必須定義或擴展的空間對象,ArcInfo支持工業標准的統一建模語言(UML)和CASE工具(如:Visio 2000 Enterprise),通過CASE工具完成對數據對象的定義和擴展。

 

(6)ArcGIS Desktop介紹

       ArcGIS Desktop是ArcGIS family的桌面端軟件產品,为GIS專業人士提供的信息制作和使用的工具。利用ArcGIS Desktop,你可以實現任何從簡單到复雜的GIS任務,包括制圖,地理分析,數據編輯,數據管理,可視化和空間處理等。它可以作为三個獨立的軟件產品購買,每個產品提供不同層次的功能水平:

•ArcView提供了复雜的制圖、數據使用、分析,以及簡單的數據編輯和空間處理工具。

•ArcEditor除了包括了ArcView中的所有功能之外,還包括了對Shapefile和geodatabase的高級編輯功能。

•ArcInfo是一個全功能的旗艦式GIS桌面產品。它擴展了ArcView和ArcEditor的高級空間處理功能,還包括傳統的ArcInfo Workstation應用程序(Arc,ArcPlot,ArcEdit,AML等)。

        ArcView,ArcEditor,和ArcInfo僅在功能水平上有所區別,其結構都是統一的,所以地圖、數據、符號、地圖圖層、自定義的工具和接口、報表和元數據等,都可以在這三個產品中共享和交換使用。使用者無須去學習幾個不同的結構框架,本輕松入門亦是針對上述三種版本均适用。 不論是ArcView,ArcEditor還是ArcInfo,常用的應用程序都有ArcMap和ArcCatalog。ArcMap是ArcGIS Desktop中一個主要的應用程序,具有基於地圖的所有功能,包括地圖制圖、數據分析和編輯等。ArcMap提供兩種類型的地圖視圖:數據視圖和版面視圖。在數據視圖中,可以對圖層進行符號化、分析和編輯GIS數據集。在版面視圖中,可以進行地圖出圖排版,添加地圖元素,比如比例尺,圖例,指北針等。

    ArcCatalog是地理數據的資源管理器,幫助你組織和管理你所有的GIS信息,比如地圖,數據集,模型,元數據,服務等。它包括了下面的工具:

(1)瀏覽和查找地理信息。

(2)記錄、查看和管理元數據。

(3)定義、輸入和輸出geodatabase結構和設計。

(4)在局域網和廣域網上搜索和查找GIS數據。

(5)管理ArcGIS Server。

       GIS使用者使用ArcCatalog來組織、管理和使用GIS數據,同時也使用標准化的元數據來描述數據。GIS數據庫的管理員使用ArcCatalog來定義和建立geodatabase。GIS服務器管理員則使用Arccatalog來管理GIS服務器框架。

1、概述

         ArcGIS Server——基於AO的對象服務器,由GIS Server和Application Developer Framework(ADF)組成;GIS Server由Server Object Manager(SOM)和Server Object Container(SOC)組成;ADF利用AO來構建運行於GIS Server之上的web應用和web服務主要安裝ArcGIS Server Object Manager&ArcGIS Server Object Container,先嘗試在同一台機器上配置,再裝在分布式系統上

 

2、基於.NET Framework的ArcGIS Server的組成

GIS Server——SOM & SOC

SOM——管理在唯一主機上的windows服務,用於管理分布在各個SOC上的服務對象;

SOC——可以裝在多台機器上,是服務對象的宿主。每一台SOC機器可以產生多個Container processes,一個Container processes可以運行多個服務對象,Container processes 是由SOM來管理的。(每台SOC機器都需要一個授權文件)

Web Applications

Web Application Developer Framework——Runtime & Software Developer Kit

 

Runtime安裝在Web Sever機器上,SDK安裝在Web Application上

Mobile Application Developer Framework

 

3、ArcGIS Server系統架構:

GIS Server——存儲GIS資源,为客戶端應用提供服務,SOM和SOC

Web Server——向GIS Server 請求web應用和web服務

Clients——客戶端應用(web browsers,mobile,desktop application等);web browsers可以連接到web server上的web application,桌面應用可以通過HTTP協議連接到web server,也可以直接通過LAN或WAN直接連到Web server

Data Server——包含發布在GIS服務器上的資源(map document、address locators、Geodatabase、toolboxes等)

Manager and ArcCatalog administrators——ArcGIS Server管理器,用來管理和發布資源服務

ArcGIS Desktop content authors——創建GIS資源

 

4、ArcGIS Server配置

Web ADF Runtime必須裝在Web Server 機器上,如果要采用它創建桌面應用,Web ADF Runtime 還應當裝在運行這些application的所有機器上;

ArcGIS Desktop application 可以用來創建數據或管理GIS Server,但它只能裝在可以通過本地網络連接GIS Server的windows機器上;

每一個SOM管理它自己的SOC集群;

SOCs可以裝在一台或多台機器上,每一台裝有SOC的機器需要添加到SOM的管理列表中去;

Web應用也可以用來管理GIS Server,web application 包含ArcGIS Server manager application,並且應當裝在web server機器上

 

5、配置實例

ArcGIS Server 裝在單機上:(ArcGIS Desktop可以裝在同一機器上)

多個SOC(SOC不一定要和SOM在同一機器上)

單一Web Server機器(ArcGIS Desktop可以裝在任一機器上)

 

6、Post Installation

配置GIS Server:創建GIS Server帳戶,指定SOM帳戶、密碼,SOC帳戶、密碼(二者都可以是本地帳戶或者域帳戶,域帳戶必須是已經存在的),裝有SOM的機器上的SOM帳戶和SOC帳戶必須和其它SOC帳戶是一样的;

SOM帳戶權限:start container processes;

SOC帳戶權限:寫系統temp目錄,運行container proceses;

創建2個新的用戶組:agsusers和agsadmin,將不同的操作系統用戶歸於不同的用戶組,也就授予了不同的訪問GIS Server的權限。ArcGIS采用操作系統鑒定來設置不同帳戶對GIS Server的管理或使用權限。

GIS Server授權:安裝SOC的機器需要授權文件來運行container processes

 

Web application post install

後續設置:

重启電腦;

設置對GIS Server的帳戶的訪問權限(加入不同的組);

連接到GIS Server;

將所有SOC機器添加到SOM管理列表中;

組織GIS數據,設置合适的路徑使其對所有SOC機器可以引用(GIS Server上的服務數據源就是ArcGIS Desktop的數據源);

为GIS Server添加服務,並向其它用戶發布;

創建客戶端應用或使用ArcGIS Desktop訪問服務,一旦在GIS Server上發布了服務,就可以在web或desktop應用中去使用

 

7、ArcGIS Instances

概念:是一組web server、GIS server和一系列服務和應用程序。默認開始只有一個叫做ArcGIS的Instance,可以添加自定義的,Instances可以共享同一個Web server甚至是相同的SOCs,但必須是不同的SOM。並且不同的Instance,其應用和服務也應該不同。

創建Instance:使用在ArcGIS安裝目錄下的DoNet"AddInstance.exe,訪問web services的URL:http://<server name>/<instance name>/services

 

8、在windows workgroup環境下配置ArcGIS Server

-所有用戶必須是本地用戶,所有加進agsusers或agsadmin組的帳戶也必須是本地用戶;

-這些本地帳戶必須在所有機器上使用相同的用戶名和密碼;

-更改本地安全默認設置如下:控制面板——管理工具——本地安全策略——本地策略——安全選項——網络訪問:本地帳戶的共享和安全模式(雙擊,修改为經典-本地用戶以自己的身份驗證)

 

 

 

 


From:CSDN
頂一下
(0)
0%
踩一下
(0)
0%
------分隔線----------------------------
發表評論
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
評價:
表情:
驗證碼:點擊我更換圖片
欄目列表
推薦內容