How the GIS server works

Release 9.3.1 E-mail This Topic Printable Version Give Us Feedback

ArcGIS Server is a distributed system consisting of several components that can be distributed across multiple machines. Each component in the ArcGIS Server system plays a specific role in the process of managing, activating, deactivating, and load balancing the resources that are allocated to a given service or set of services.

The components of ArcGIS Server can be summarized as follows:

An ArcGIS Server system also includes a set of services, Web applications, and KML network links that have been published on the server, as well as a Manager application for creating and organizing them. This group of services and applications with its associated Web server and GIS server is called an ArcGIS Server instance.

The ArcGIS Server system architecture

The GIS server

The GIS server is composed of a SOM and one or more SOCs. The SOM manages the set of services that are distributed across one or more SOCs. When an application makes a direct connection to a GIS server over a LAN or WAN, it is making a connection to the SOM.

SOCs host the services that are managed by the SOM. All services run on all container machines, so it's important that all container machines have access to the resources and data necessary to run each service. You can set the capacity value of a SOC machine to limit the number of running services it can host at one time.

Each container machine is capable of hosting multiple container processes, in which one or more services are running. The SOM starts and shuts down the container processes. The objects hosted within the container processes are ArcObjects components that are installed on the container machine as part of the installation of ArcGIS Server.

The SOM and SOC are processes that run on a machine; therefore, a single machine can act as both a SOM and a SOC in an ArcGIS Server configuration. If desired, the Web server and the Web Application Developer Framework (ADF) can coexist with the SOM and the SOC, allowing a deployment of ArcGIS Server on just one machine. This type of configuration is useful for development and testing purposes, as well as small deployments.

Server directories

The server manages several types of directories, which are used to store files that the server needs for its work.

Processes started by the GIS server

The Windows service ArcGIS Server Object Manager represents the GIS server. This service starts the following processes, which will always be running on a working GIS server, even when all GIS services have been stopped:

ArcSOM.exe - 1 instance

ArcSOCMon.exe -1 instance per SOC machine

ArcSOC.exe - 2 instances

The Server Log and Server Directory Manager processes can be created on any SOC machine and are indistinguishable from other ArcSOC.exe processes except by size. The logging and directory processes are generally smaller than ArcSOC.exe processes that represent GIS services.

Monitoring the health of SOC machines

The SOM constantly monitors the SOCs that it controls to determine whether they are properly connected. If the connection between an ArcGIS Server SOC machine and the SOM is interrupted or broken, whether by an intermittent network fault or by shutting down the SOC, the SOM machine will first try to recover the connection to the SOC machine, then mark the SOC machine as disabled. Disabled machines are periodically polled to see if they are running and can be re-added to the server.

You can control some of this polling behavior by editing the <MachinePing*> tags in the Server.dat file. See Server configuration files for more information about the Server.dat file and the meanings of these tags.

If a machine is determined to be disabled, all the service instances it was hosting are reassigned to other SOC machines in the ArcGIS Server. When the disabled SOC machine is determined to be enabled again, it is added back to the ArcGIS Server, and service instances are distributed back to the machine in a balanced way.

The Web server

The Web server hosts Web applications and Web services. Examples of Web applications include mapping and disconnected editing applications, as well as any other application that makes use of ArcObjects and is appropriate for Web browsers.

Web services can expose, for example, map and geocode services that desktop GIS users can connect to and consume over the Internet. It is possible to create your own native Web services whose parameters are not ArcObjects types but do perform a specific GIS function. For example, you could write a Web service FindNearestHospital, that accepts x,y coordinates as input and returns an application-defined Hospital object that has properties such as the address, name, and number of beds.

Web applications connect to GIS servers within their organization over the LAN. In this sense, the Web application or Web service is a client of the GIS server. Users connect to Web applications and Web services over the Internet or intranet, but all the Web application's logic runs in the Web server and sends Hypertext Markup Language (HTML) to the browser client. The Web application itself makes use of objects and functionality running within the GIS server. This allows you to develop Web applications that make use of ArcObjects in the server as would a desktop application connecting to the GIS server over the LAN or WAN.

As users interact with their browser, it makes requests to the Web application, which in turn makes requests to the SOM. The SOM hands back a proxy to a server object or server objects that are running within the GIS server. The Web application uses the proxy to work with the object as if it existed in the Web application's process, but all execution happens on the GIS server.

Clients

Clients of an ArcGIS Server system can include any of the following:

Web browsers

Anyone with a Web browser and an Internet connection can perform GIS tasks on services using an appropriately designed Web application. The ADF provides tools for creating Web applications that make use of services. Since all the work is done on the server, end users of these Web applications don't need to have any GIS software or ArcObjects installed on their machines.

ArcGIS Explorer

ArcGIS Explorer is a free lightweight desktop client for ArcGIS Server that can display data in three dimensions. You can add your ArcGIS Server services as data in ArcGIS Explorer for a rich navigation and viewing experience. For advanced functionality, you can use the ArcGIS Explorer SDK to develop custom tasks that work with the services.

ArcGIS Desktop

You can connect to ArcGIS Server using ArcGIS Desktop applications to make use of services running in the server. ArcGIS Desktop applications that can access services include ArcMap, ArcCatalog, ArcGlobe, and ArcReader.

With ArcCatalog, you can connect to a GIS server directly on the LAN or WAN. You can also specify the URL of a GIS server or a specific Web service running on that GIS server to indirectly connect to a GIS server over the Internet.

The GIS server administrator can also use ArcCatalog to administer the set of services and their properties. Administrators can connect to the GIS server over the LAN or WAN and use ArcCatalog to add and remove services as well as configure how services should be run. Administrators also designate the set of container machines that are available for the server and the directories the server can use to write any output.

ArcGIS Engine applications

ArcGIS Engine applications can utilize the GIS server in a variety of ways. The simplest is by working with services in the form of data inside map or globe documents. An ArcGIS Engine developer could also design an application that sends data to the GIS server for advanced tasks, such as spatial analysis, that require extensions only licensed on the server machine. Conversely, the application might request data from the server to edit or analyze within the rich user interface of the ArcGIS Engine application.

ArcGIS Server instances

An ArcGIS Server instance is a way of grouping a Web server, an associated GIS server, and a set of services and applications. By default, ArcGIS Server installs one instance named ArcGIS, but you can add instances. In large deployments, multiple ArcGIS Server instances can be useful in organizing resources between different departments in an organization. It should be noted that the term "instance" is also frequently used when talking about individual service configurations (for example, "The server created three instances of the map service". These types of instances should not be confused with the ArcGIS Server instance.

An ArcGIS Server instance consists of the following:

ArcGIS Server instances can share the same Web server and even the same SOCs, but they must use different SOMs. The set of applications and services also differs between instances. Before you create a new instance, you should ensure that the appropriate software (SOM, SOC, and so on) is installed on all the machines that will be included in the instance and that you have run the GIS Server Post Install on all machines, using identical names and passwords for the SOM and SOC Accounts. Each SOC in the instance should have the same edition of ArcGIS Server installed.

To create a new instance with ArcGIS Server for the Microsoft .NET Framework, use the Add ArcGIS Instance tool located at <ArcGIS install location>\DotNet\AddInstance.exe. You'll need to provide the name of the new instance, its port number, the SOM machine it will use, and the ArcGIS Web Services account name and password.

Once you create the new instance, you will see an additional link to Manager on the Windows Start menu. Each instance has its own Manager. You'll also use the new instance's name when you connect to its Web services, since the URL for making an ArcGIS Server Internet connection is http://<server name>/<instance name>/services.

Network environments

ArcGIS Server can run in Windows Domain or Windows Workgroup environments.

When using ArcGIS Server in a Windows Workgroup environment, you need to take the following steps to ensure proper authentication against the GIS server: