How the GIS server works
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:
-
GIS server—Hosts and runs services. The GIS server consists of a server object
manager (SOM) and one or more server object containers (SOCs).
-
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 connect either 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.
An ArcGIS Server system also includes a set of services, Web applications,
ArcGIS Explorer Maps, 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 server object manager (SOM) and server object
containers (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.
Server object containers (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, which
are 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 ADF can coexist with the SOM and the SOC, allowing for a
deployment of ArcGIS Server on just one machine.
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 will be
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 pre-rendered map tiles that map services can use for faster
display. You can use ArcCatalog to create a cache.
-
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.
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
healthy 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 - 2 instances
-
Server Log Process - Records log messages generated from services.
-
Server Directory Manager - Cleans ArcGIS Server directories.
The above-mentioned ArcSOC.exe processes can be created on any SOC machine 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.
The Web server
The Web server hosts server applications and Web services written using the
ArcGIS Server API. These server applications use the ArcGIS Server API to
connect to a SOM, make use of services, and create other ArcObjects for use in
their applications. These Web services and Web applications can be written
using the ArcGIS Server Web Application Developer Framework (Web ADF). Examples
of Web applications include mapping applications, disconnected editing
applications, and 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 called 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 of 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 the development of Web applications to make use of
ArcObjects in the server as would a desktop application connecting to the GIS
server in client/server mode 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.
Web applications running in the Web server connect to the SOM
and work with proxies to objects running within containers in 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 two or 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/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 off 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.