GIS 服务器的工作原理

ArcGIS Server 由若干可分布于多个计算机的组件组成。在对分配给一组服务的资源进行管理、激活、禁用和加载平衡的过程中,ArcGIS Server 系统中的各个组件都有着特定的分工。

ArcGIS Server 的组件可以归纳如下:

此外,ArcGIS Server 系统还包括一套已在服务器上发布的服务、Web 应用程序和 KML 网络链接,以及用于创建和组织这些内容的管理器应用程序。这套服务和应用程序,连同与其相关的 Web 服务器和 GIS 服务器,被称为一个 ArcGIS Server 实例。

GIS 服务器

GIS 服务器由一个 SOM 和一个或多个 SOC 组成。SOM 负责管理该套分布于各 SOC 的服务。当应用程序通过 LAN 或 WAN 直接连接到 GIS 服务器时,会首先连接到 SOM,然后 SOM 会针对事务的生存时间查找空闲的服务实例分配给客户端。

SOC 可承载由 SOM 管理的服务。所有服务都会在所有 SOC 上运行,因此所有 SOC 都必须具有对运行各服务所需的资源和数据的访问权限。您可以对 SOC 的容量值进行设置,从而限制其能够同时承载运行的服务实例的数量。

每个 SOC 计算机能够承载多个 SOC 进程。每个 SOC 进程中可以运行一个或多个具有相同服务配置的服务实例。SOM 使用 ArcSOCMon 进程来协调 SOC 进程的启动和停止,以在 SOM 意外断开连接或出现故障的情况下保持容器进程的状态。SOC 进程中承载的对象是作为 ArcGIS Server 安装的一部分而安装在 SOC 计算机上的 ArcObjects 组件。

SOM、ArcSOCMon 和 SOC 是在计算机上运行的进程。在 ArcGIS Server 配置中,单个计算机既可充当 SOM,又可充当 SOC。ArcGIS Server 配置中的所有计算机都具有 ArcSOCMon 进程。必要时,Web 服务器和 Web 应用程序开发框架 (ADF) 可以与 SOM 和 SOC 并存,以便在一台计算机上部署 ArcGIS Server。此种类型的配置适用于开发、测试及小型部署等任务。

服务器目录

服务器可管理多种类型的用于存储服务器工作所需文件的目录。

  • 输出目录用于存储服务器所需的临时文件。有时,这些文件(比如地图影像)会作为输出返回给用户。有些服务类型(如地理数据服务)必须具有输出目录。而对于另外一些服务,输出目录可作为可选项,或根本不需要。
  • 缓存目录中存储了可在地图或 globe 服务中用于快速显示的预渲染地图影像缓存。要了解有关缓存的详细信息,请参阅什么是地图缓存?globe 缓存的工作原理
  • 作业目录可存储地理处理服务所需的文件。通常,地理处理任务需要有用于储存正在进行的作业的信息和写入临时文件的空间。这些项目将储存在作业目录中。
  • 输入目录中包含使用“地图服务发布”工具条从 ArcMap 发布服务时所创建的地图服务定义 (MSD) 文件。
  • 索引目录可存储搜索服务所生成的索引文件。这些文件以后可用于在组织内快速查找 GIS 资源。要了解有关索引及其生成方式的详细信息,请参阅搜索服务

由 GIS 服务器启动的进程

ArcGIS 服务器对象管理器和 ArcGIS SOC 监视器这两项 Windows 服务即相当于 GIS 服务器。ArcGIS 服务器对象管理器服务可启动以下进程,这些进程将始终运行于处于工作状态的 GIS 服务器上,即便所有 GIS 服务均已停止:

ArcSOM.exe - 1 个实例

  • 服务器对象管理器进程 - 充当各种服务请求的代理。

ArcSOC.exe - 1 个实例

  • 服务器目录管理器 - 清理 ArcGIS Server 目录

可以在任何 SOC 计算机上创建“服务器目录管理器”进程,而且除大小之外,该进程与其他 ArcSOC.exe 进程不存在明显区别。目录进程通常比相当于 GIS 服务的 ArcSOC.exe 进程小。

ArcGIS Server 部署中的各个计算机上均提供 ArcGIS SOC 监视器服务。该服务负责在各个计算机上启动以下进程,并将始终运行在处于正常状态的 GIS 服务器中:

ArcSOCMon.exe - 每台计算机 1 个实例(包括独立的 SOM 计算机,即便不位于独立的 Web 服务计算机上)

  • SOC 监视器进程 (ArcSOCMon.exe) 负责读取和写入 ArcGIS Server 日志并监视 ArcSOC.exe 进程在 SOC 计算机上的运行状态。此进程有助于在 SOM 因网络或硬件故障而与其 SOC 计算机断开连接的情况下快速恢复 ArcGIS Server 部署。重新建立 SOM 的连接时,无需重新启动运行中的 SOC 实例,而是将该实例重新附加即可。
进入正题进入正题:

除上述进程外,您可能还会看到名为 ArcSOMP.exe 和 ArcSOCP.exe 的进程在计算机上运行。虽然这些进程的名称看起来很熟悉,但它们并不是 ArcGIS Server 的一部分。它们为 ArcGIS Desktop 所创建和使用,用于在用户执行其他任务时在后台运行地理处理工具。

监视 SOC 计算机的健康状态

结合使用 SOM 和 ArcSOCMon 可持续监视其所控制的 SOC,以确定这些 SOC 的连接状态是否正常。如果 ArcGIS Server SOC 计算机和 SOM 之间的连接中断或损坏(无论是因间歇性网络故障还是因 SOC 被关闭而导致),SOM 计算机将首先尝试修复与 SOC 计算机的连接,尝试未果后,再将该 SOC 计算机标记为不可用。对于不可用的计算机,系统会定期执行轮询以了解该计算机是否处于运行状态,以及是否可再次被添加到服务器。

您可以通过编辑 Server.dat 文件中的 <MachinePing*> 标记来控制这种轮询行为。有关 Server.dat 文件的详细信息以及上述标记的含义,请参阅服务器配置文件

如果将某一计算机确定为禁用,则该计算机所承载的所有服务实例都将被重新分配到 ArcGIS Server 中的其他 SOC 计算机上。确定重新启用该禁用的 SOC 计算机之后,可将该计算机添加回 ArcGIS Server,服务实例也将以均衡的方式分配回该计算机。

如果 SOM 本身因网络或硬件故障而禁用,则 ArcSOCMon 进程将发挥作用,在该 SOM 可以重新连接或重新启动之前,它将一直保持 ArcSOC.exe 进程处于活动状态。

Web 服务器

Web 服务器负责承载 Web 应用程序和 Web 服务。Web 应用程序包括制图和离线编辑应用程序,以及使用 ArcObjects 且适用于 Web 浏览器的其他应用程序。

Web 服务可提供桌面 GIS 用户可以通过 Internet 进行连接并使用的服务,如地图服务或地理编码服务。您也可以创建自己的本地 Web 服务,服务的参数可以不是 ArcObjects 类型的,但只要能够执行具体的 GIS 功能便可。例如,您可以编写一个 Web 服务 FindNearestHospital,它接受将 x,y 坐标作为输入,并可返回由应用程序定义的具有地址、名称和床位等属性的 Hospital 对象。

Web 应用程序通过 LAN 连接到其组织内部的 GIS 服务器。从这个意义上讲,Web 应用程序或 Web 服务便是 GIS 服务器的客户端。虽然用户通过 Internet 或 intranet 连接到 Web 应用程序和 Web 服务,但所有 Web 应用程序的逻辑都运行在 Web 服务器中并会向浏览器客户端发送超文本标记语言 (HTML)。Web 应用程序本身使用在 GIS 服务器内运行的对象和功能。这样,您便可以开发一个使用服务器中的 ArcObjects 的应用程序,类似于通过 LAN 或 WAN 连接到 GIS 服务器的桌面应用程序。

用户与浏览器进行交互时,浏览器会向 Web 应用程序发出请求,Web 应用程序会转而向 SOM 发出请求。SOM 向服务器对象或运行于 GIS 服务器中的服务器对象返还一个代理。Web 应用程序可通过该代理来处理对象,就如同对象存在于 Web 应用程序进程中一样,只不过所有操作都是在 GIS 服务器上执行的。

客户端

ArcGIS Server 系统的客户端可以包括以下任意一项:

Web 浏览器

任何具有 Web 浏览器和 Internet 连接的用户均可使用适当的 Web 应用程序对服务执行 GIS 任务。.NET 和 Java 框架的 Web ADF,以及 JavaScript、Flex 和 Silverlight 框架的 ArcGIS API,均提供用于创建使用服务的 Web 应用程序的工具。这些 Web 应用程序的最终用户无需在计算机上安装任何 GIS 软件或 ArcObjects。

ArcGIS Explorer

ArcGIS Explorer 是一款用于数据可视化和导航的大方且轻巧的应用程序。您可以将 ArcGIS Server 服务作为数据添加到 ArcGIS Explorer 中,从而获得丰富的导航和查看体验。对于高级功能,您可以使用 ArcGIS Explorer SDK 开发自定义任务来处理服务。

ArcGIS Desktop

可以使用 ArcGIS Desktop 连接到 ArcGIS Server 服务。可用于访问服务的应用程序包括 ArcMap、ArcCatalog、ArcGlobe 和 ArcReader。

使用 ArcCatalog 或 ArcMap 中的 Catalog 窗口,您可以连接到 LAN 或 WAN 上的 GIS 服务器。您还可以指定 GIS 服务器的 URL,或某个具体的 Web 服务,来通过 Internet 连接到 GIS 服务器。

GIS 服务器管理员还可以使用 ArcCatalog 管理该套服务及其属性。管理员可通过 LAN 或 WAN 连接到 GIS 服务器,然后使用 ArcCatalog 添加和移除服务,并对服务的运行方式进行配置(无法通过 Internet 连接对服务进行管理)。管理员还可指定可用于服务器的容器计算机组,以及可用于服务器写入任何输出的目录。

ArcGIS Engine 应用程序

ArcGIS Engine 应用程序可以多种方式使用 GIS 服务器。最简单的方式是在地图或 globe 文档中以数据的形式处理服务。ArcGIS Engine 开发人员还可以设计用于将数据发送到 GIS 服务器的应用程序,从而执行需要仅在服务器计算机上获得许可的扩展模块的高级任务, 如空间分析。 相反,应用程序还可从服务器中请求数据,以在 ArcGIS Engine 应用程序的丰富化用户界面中进行编辑或分析。

ArcGIS Server 实例

ArcGIS Server 实例是对 Web 服务器、相关 GIS 服务器以及一套服务和应用程序进行组合的一种方式。默认情况下,ArcGIS Server 会安装一个名为 ArcGIS 的实例,而您可以添加实例。在大型部署中,使用多个 ArcGIS Server 实例有助于在某一组织的各个不同部门间组织资源。值得注意的是,当谈及单个服务的配置时,也常会用到实例这个术语(例如,“服务器创建了地图服务的三个实例”) 。不要将这种类型的实例与 ArcGIS Server 实例相混淆。

该实例作为虚拟根目录中的文件夹,实际存在于磁盘中。此文件夹可包含一个虚拟目录,该目录提供“管理器”以及实例所运行的服务的 SOAP 和 REST 端点。该实例还可用于提供其他资源,如 KML 网络链接。如果使用默认安装,则可通过导航到 C:\Inetpub\wwwroot\ArcGIS 来查看实例中所包含的内容。

实例可以包含服务管理器、应用程序管理器或两者兼而有之(如果包含两者,则在管理器内将既可以管理服务又可以创建 Web 应用程序)。如果创建实例的目的仅是为了提供安装程序的 Web 服务组件,则实例中也可以不包含任何管理器。

要创建新实例,可使用 ArcGIS Instance Administrator 工具,该工具的位置为 <ArcGIS 安装位置>\DotNet\AddInstance.exe。您将需要提供新实例名、端口号、将要使用的 SOM 计算机,以及 ArcGIS Web 服务的帐户名和密码。

如果新实例中包括管理器组件,则 Windows “开始”菜单上会显示管理器的链接。连接到新实例的 Web 服务时同样会用到实例名,因为用于建立 ArcGIS Server Internet 连接的 URL 为 http://<服务器名>/<实例名>/services。

网络环境

ArcGIS Server 可以在 Windows 域或 Windows 工作组环境中运行。

在 Windows 工作组环境中使用 ArcGIS Server 时,需要执行以下步骤,以确保对 GIS 服务器进行正确的身份验证:


3/7/2012