基于ArcGIS10.0和Oracle10g的空间数据管理平台(C#开发)ArcGIS相关知识补充学习

     先打一个广告:我的独立博客网址是:http://wuyouqiang.sinaapp.com/

    我的新浪微博:http://weibo.com/freshairbrucewoo

    欢迎大家相互交流,共同提高技术。

 

    其实开发一个项目,难点不在于语言方面,不管哪一种语言都不是你实现一个项目的阻力,其实真正能不能完成一个项目,要看能不能完整而详细的理解项目的需求,然后理解需求的基础又是对行业相关知识的把握,只有弄清楚了行业知识以及相关的概念并且能够深入理解,才能轻松加愉快的完成项目,不然的话只有每天在无情的加班和代码面前无能为力。就针对我讲解的这个项目的开发,对于当时的我来说却是存在很多新的概念,而且第一次看资料还不一定能够看懂,只有不停的查阅更多相关资料并深入理解才能够把握项目的功能需求。下面就针对自己在学习相关概念和知识时收集到的一些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组的帐户也必须是本地用户;

-这些本地帐户必须在所有机器上使用相同的用户名和密码;

-更改本地安全默认设置如下:控制面板——管理工具——本地安全策略——本地策略——安全选项——网络访问:本地帐户的共享和安全模式(双击,修改为经典-本地用户以自己的身份验证)

 

 

 

 

posted @ 2011-11-22 01:03  蔷薇理想人生  阅读(2099)  评论(2编辑  收藏  举报