How the GIS server works
ArcGIS Server consists 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 set of services.
The components of ArcGIS Server can be summarized as follows:
- GIS server--Hosts and runs services. The GIS server consists of a server object manager (SOM) and one or more server object container (SOC) machines.
- Web server--Hosts Web applications and Web services that use the objects running in the GIS server.
- Clients--Web browsers can be used to connect to Web applications running in the Web server. Desktop applications can either connect through Hypertext Transfer Protocol (HTTP) to ArcGIS Web services running in the Web server or connect directly to the GIS server over a LAN or WAN.
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 the SOCs. When an application makes a direct connection to a GIS server over a LAN or WAN, it first makes a connection to the SOM, which then finds a free service instance to assign to the client for the lifetime of the transaction.
SOCs host the services that are managed by the SOM. All services run on all SOCs, so it's important that all SOCs have access to the resources and data necessary to run each service. You can set the capacity value of a SOC to limit the number of running service instances it can host at one time.
Each SOC machine is capable of hosting multiple SOC processes. Each SOC process can have one or more service instances of the same service configuration running within it. The SOM coordinates starting and stopping SOC processes by using the ArcSOCMon process, which maintains the state of the container processes should the SOM be disconnected or fail unexpectedly. The objects hosted within the SOC processes are ArcObjects components that are installed on the SOC machine as part of the installation of ArcGIS Server.
The SOM, ArcSOCMon, and SOC are processes that run on a machine. A single machine can act as both a SOM and a SOC in an ArcGIS Server configuration. All machines in an ArcGIS Server configuration have an ArcSOCMon process. 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.
- Output directories are for temporary files needed by the server. Sometimes, these files are returned to the user as output, such as map images. Some service types, such as geodata services, require output directories. For other services, an output directory is optional or not needed.
- Cache directories store caches of prerendered map images that map and globe services can use for faster display. See What is map caching? and How globe caches work to learn more about caching.
- The jobs directory stores files needed by geoprocessing services. Often, geoprocessing tasks require a space to write temporary files and store information about ongoing jobs. These items are stored in the jobs directory.
- The input directory contains map service definition (MSD) files that are created when you publish a service from ArcMap with the Map Service Publishing toolbar.
- The indexes directory stores index files generated by search services. These indexes can later be used to quickly find GIS resources within your organization. See Search services to learn more about the index and how it is generated.
Processes started by the GIS server
The Windows services ArcGIS Server Object Manager and ArcGIS SOC Monitor represent the GIS server. The ArcGIS Server Object Manager 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
- Server Object Manager process—Acts as a broker for requests to the various services
ArcSOC.exe - 1 instance
- Server Directory Manager—Cleans ArcGIS Server directories
The Server Directory Manager process can be created on any SOC machine and is indistinguishable from other ArcSOC.exe processes except by size. The directory process is generally smaller than ArcSOC.exe processes that represent GIS services.
The ArcGIS SOC Monitor service is present on each machine in an ArcGIS Server deployment. This service is responsible for starting the following process on each machine and will always be running in a healthy GIS server:
ArcSOCMon.exe—1 instance per machine (including a stand-alone SOM machine, though not on a stand-alone Web services machine)
- The SOC Monitor process ArcSOCMon.exe handles the reading and writing of ArcGIS Server logs and monitors the state of ArcSOC.exe processes running on a SOC machine. This aids in the quick recovery of the ArcGIS Server deployment in the case where the SOM is disconnected from its SOC machines by a network or hardware failure. When the SOM's connection is re-established, running SOC instances do not need to be restarted but can instead just be reattached.
You may also see processes named ArcSOMP.exe and ArcSOCP.exe running on your machine. Despite their familiar-looking names, these processes are not part of ArcGIS Server. They are created and used by ArcGIS Desktop to allow geoprocessing tools to run in the background while you perform other tasks.
Monitoring the health of SOC machines
The SOM and ArcSOCMon work together to constantly monitor the SOCs that they control 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 added again 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.
If the SOM itself becomes disabled, whether by a network or hardware fault, the ArcSOCMon process works to keep the ArcSOC.exe processes alive until the SOM can be reconnected or restarted.
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.
If you'll be exposing ArcGIS Server to the Internet, you need to perform a few configuration tasks before users can access your services. For more information, see the topic Exposing your services to external users.
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 Web ADFs for .NET and Java—as well as the ArcGIS APIs for JavaScript, Flex, and Silverlight—provide tools for creating Web applications that make use of services. 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 application for data visualization and navigation. 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 services using ArcGIS Desktop. Applications that can access services include ArcMap, ArcCatalog, ArcGlobe, and ArcReader.
With ArcCatalog or the Catalog window in ArcMap, you can connect to a GIS server on the LAN or WAN. You can also specify the URL of a GIS server or a specific Web service to 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 (services cannot be administered through an Internet connection). 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.
Network environments on Windows platforms
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:
- All users must be local users. All accounts defined in the GIS Server Post Install (SOC Account, SOM Account, and ArcGIS Web services Account) and any users added to the AGSUSERS or AGSADMIN groups must be local users.
- These local user accounts need to have the same user name and password (case sensitive) on all machines.
- Local Security Settings must be altered from the default as follows:
- Navigate to Control Panel > Administrative Tools > Local Security Policy.
- In the left menu tree structure, navigate to Security Settings > Local Policies > Security Options.
- Double-click Network access: Sharing and security model for local accounts.
- Select Classic - local users authenticate as themselves and click OK.