When you administer your site using the ArcIMS, you should be familiar with the definition and relationship among Spatial Servers, Virtual Servers, and ArcIMS Services. You should also understand the general guidelines for adding Spatial Servers and instances.
The Spatial Server handles requests for maps and related information. When a request is received, the Spatial Server performs one or more functions. Each function can be thought of as a component of the Spatial Server.
A Spatial Server contains either:
The Spatial Server is a process that runs on your machine. When you look at your list of running processes, this process is named aimsserver.exe. After using the Typical installation option of ArcIMS, only one Spatial Server process is running. The process includes all components except ArcMap Image. On Windows, Solaris, and Linux, if you install ArcMap Server, you will have two additional Spatial Server processes running that contain only the ArcMap Image component.
You do not have much direct access to Spatial Servers. Managing Spatial Servers is limited to adding and removing them from the configuration as the need arises. Instead, most of your interaction with a Spatial Server is through Virtual Servers.
Since you do not interact directly with Spatial Server processes, you need some way to manage them. Imagine if you have five machines, each with four Spatial Server processes. This means you have 20 processes to manage. To help manage all these processes, ArcIMS has the concept of a Virtual Server. It is important to remember that a Virtual Server does not exist; it is merely a management tool. Each Spatial Server is assigned to one or more Virtual Servers. In the following example, the image component of two ArcIMS Spatial Servers are assigned to a Virtual Server named ImageServer1.
Each Virtual Server corresponds to a component of the Spatial Server. Therefore, one Spatial Server process can have multiple Virtual Servers referencing it. The exception is a Spatial Server process dedicated to ArcMap Server. When you install ArcIMS, the initial assignments are done for you. You have the option to modify the assignments when necessary. The following table lists the types of Virtual Servers and the default Virtual Server created during the install.
|Virtual Server type||Default name||Description|
|Image (public)||ImageServer1||A new map image is generated each time a client requests new information. For example, if a user zooms in on an area of a map, a message is sent from the client to the server. A new map image of the zoom extent is generated by the server and sent back to the client, replacing the old image. The image is sent to the client in one of three formats: jpeg, gif, or png.||ArcMap Image (public)||ImageServerArcMap1||Publishes maps created in ArcMap. A new map image is generated each time a client requests new information. The image is sent to the client in one of following formats: jpeg, gif, or png.|
|Feature (public)||FeatureServer1||Data from shapefiles and ArcSDE layers is read and streamed to the client. The client uses a Java applet to assemble the streamed data into a map. Most processing is done by the Java applet. Requests are only sent to the ArcIMS site when additional data is needed. For example, a request would be sent if a query were made on data beyond the visible map extent.|
|Metadata (public)||MetadataServer1||Provides a forum for sharing data by allowing users to search and browse metadata that you have published. For information, see An overview of Metadata Services.|
|Query (private)||QueryServer1||Provides query functionality for Image Services. Different querying capabilities such as identify, select, find, and buffer are supported. Data is returned as tabular data to the user.|
|Geocode (private)||GeocodeServer1||Supports geocoding and address matching on shapefiles and ArcSDE layers for Image and Feature Services.|
|Extract (private)||ExtractServer1||Extracts selected features from shapefile and ArcSDE vector layers in an Image Service and creates a ZIP file of shapefile data.|
|Route (private)||RouteServer1||Calculates routes between a set of two or more stops. You must have purchased and installed the optional Route Server extension to ArcIMS.|
|SDCGeocode (private)||SDCGeocodeServer1||Supports geocoding on Route Server data when using Image Services. You must have purchased and installed the optional Route Server extension to ArcIMS.|
Virtual Servers are either public or private. When you use one of the administrative tools, only the public Virtual Servers are exposed to you. You can select them when creating or changing a service. Private Virtual Servers work behind the scenes and are called when an Image or Feature Service needs specific functionality. You cannot manage private Virtual Servers directly.
The ultimate goal for managing Spatial and Virtual Servers is for you to have an easy way to create and administer ArcIMS services. When you start an ArcIMS service, you can select from one of four service types.
|1. Image Service||An Image Service delivers map content to a client application as JPEG, PNG, and GIF images. A new map image is
generated each time a client requests new information.
Use an Image Service when:
|2. ArcMap Image Service||An ArcMap Image Service is a special type of Image Service that lets you publish maps you create in ArcMap or ArcReader. It behaves similar to the way Image Services behave.|
|3. Feature Service||A Feature Service is a service that delivers map content to the user as streamed features. Feature streaming is a
temporary compressed format that remains only as long as the client is open. Requests are sent to the Spatial Server only when
additional data is needed.
Use a Feature Service when:
|4. Metadata Service||A Metadata Service lets you and your users share metadata - information about a data set. Metadata for geographic data typically describes the content, quality, type, collection date, and spatial location of the actual data. Looking at metadata can help your users determine whether a particular data set is appropriate for their needs. In fact, it's often easier to judge the suitability of the data from its metadata than by examining the actual data itself.|
From a management standpoint, you assign your service to a corresponding Virtual Server. For example, an Image Service would get assigned to the ImageServer1 Virtual Server. Behind the scenes, all the Spatial Servers assigned to that Virtual Server will receive the information to start the service. Where applicable, each private Virtual Server is instructed to start the service when appropriate. The following table summarizes the Virtual Servers each service is assigned to.
|Service type||Public Virtual Server||Default Name||Private Virtual Servers|
|Image Service||Image Server||ImageServer1||Query Server
|ArcMap Image Service||ArcMap Image Server||ImageServerArcMap1||None|
|Feature Service||Feature Server||FeatureServer1||Geocode Server|
|Metadata Service||Metadata Server||MetadataServer1||None|
A Spatial Server process consists of one or more server instances. ArcIMS, by default, assigns two instances per Virtual Server process. In other words, two instances are assigned to handle the Image component, two are assigned to handle the Query component, two are assigned to handle the Geocode component, and so on. The exception is for Spatial Servers hosting ArcMap Image Services. These Spatial Servers are assigned one instance each.
The number of instances equates to the number of requests that can be handled simultaneously. For example, if a Spatial Server has two instances of the image component, two requests for an Image Service map can be processed at the same time. If a Virtual Server consists of two Spatial Servers each with two instances, then that Virtual Server can handle four simultaneous requests.
The optimum number of Spatial Servers and instances on a machine is limited by the hardware. Although you can continue to add many Spatial Servers and instances, you will start to see diminishing returns quickly. When starting out, a general guideline for the number of Spatial Servers and instances per machine is:
After analyzing CPU usage following the general guidelines, you can start adding instances or Spatial Server processes to try to maximize CPU usage. Since every site is different, there is no one answer on the ideal number of Spatial Server processes and instances.