ArcGIS Image Server architecture

ArcGIS Image Server architecture contains several components, which are organized into three main parts:

Image server—The request broker between the clients and the processing component that provides the data to the client
Service provider—The component that processes image services and distributes the data to the client
Image service—The image service definition and a collection of rasters to be served

The ways in which these main parts are created and work together are defined and managed by an image server administrator. The administrator uses the Service Editor component in ArcMap to create the image service and uses the Server Manager application to run the image server, manage the services and their service providers, and control the server configuration and access.

The diagram below outlines the ArcGIS Image Server architecture:

IS_Architecture2

Image service

An image service is composed of two main parts, the image service definition and the raster data.

Image service definition

The image service definition file (.ISDef) contains all the information used to create the image service. It references the raster data that is going to be served; defines the properties of the service, such as the spatial reference and metadata; defines the image-processing steps that will be applied to the raster data; and defines information about the output image rendering, presentation, and properties, such as the mosaic order and which images will display at which resolutions.

An image service definition is defined by a directory structure with the .ISDef extension that contains the following structures:

ImageService.ISDef—An Extensible Markup Language (XML) file defining the properties of the service entered using the Service Properties dialog box within the Image Service Editor. It defines not only properties of the service but also the fields within the service table, metadata about the service and the location of the service table, and the boundary and seamline if they are different from the defaults.
Footprint—A shapefile containing one record for each raster dataset in the image service definition. The attributes of the shapefile define the service table, and the geometry of the shapefile defines the footprint of the raster in the spatial reference system of the service. Rasters are clipped by their footprint prior to mosaicking. This record is created when each raster is added to a service.
Boundary—A shapefile containing one record defining the boundary of the image service definition in the spatial reference system of the image service definition. The boundary defines the areas where high-resolution imagery exists. This boundary shape is created through an option in the build process.
Seamline—An optional shapefile containing one record for each raster dataset. It defines the seamline along which a raster should be clipped and optionally feathered when using the Seamline mosaic method. The fields of the shapefile define the seamline parameters, such as the feather width, and link to the footprint shapefile using the Image ID.
RPDefs—A directory containing the raster process definitions used by the image service definition. Each record of the source table, defining a raster dataset, contains a RasterSource attribute that links to a raster process definition file (.RPDef). The raster process definition is an XML file containing specific information about each raster dataset used in the image service, such as the pixel size, spatial reference, and the extent that processing should be applied to the raster in the form of a process chain. A single raster dataset can contain multiple rasters. The structure enables the multiple rasters to be fully defined and each can have its own processing chain.

The image service definition is created and edited in ArcMap using tools on the Image Service Editor toolbar. The image service definition appears in ArcMap as a custom layer containing one to four of the following layers: the footprint, boundary, preview, and seamline.

The Image Service Editor toolbar provides the interface to specify the properties of a service definition; to add and remove rasters; build, optimize, and compile the service. The optimization features provide tools to define additional rasters that can be created to optimize access to the service. These include three types of derived imagery:

Derived rasters—High-resolution rasters that are added to raster process definitions to enable preprocessing of rasters. They define rasters that are to be created from the processes defined in the raster process definition and are pregenerated so they can be utilized instead of a more CPU intensive process.
Derived tiles—High-resolution rasters covering a specific area of interest created with the default mosaic method. If they exist already they are used instead of the raw rasters to reduce CPU-intensive operations. They are defined as additional raster datasets that have their own raster process definitions.
Service overviews—Low-resolution rasters that are created at varying resolutions to cover the complete service. They are utilized when you zoom out to lower resolutions or overviews of the image service. They are defined as additional raster datasets with their own raster process definitions.

The build process lets you create the derived image. Consequently, the raster process definitions are analyzed to find if definitions exist for derived images that have not been created.

The compile functionality in the Image Service Editor takes the full content of the image service definition and structures it into a single file with extension .ISCDef. It includes indexes for fast access to the different data structures. The compiled image service definition is loaded into the service provider by the Server Manager. The structure of the compiled image service definition is not published and may change from version to version.

In addition to creating image service definitions, Image Service Editor can preview the image services enabling an administrator to verify it. Included with Image Service Editor is Console Client, a command line client that is able to open and access properties, imagery, and metadata from a service by connecting to a published image service or directly opening an image service definition.

Raster data

An image service supports a number of raster datasets as raster types, such as QuickBird Basic, QuickBird Standard, Landsat ETM 1G, TIFF, DOQ, and USGS DEM. Generally, for every raster data type, there is associated metadata, either as a header or as part of an associated file. This metadata can contain basic information about the raster, such as its coordinate system, pixel size, number of rows and columns, and the number of bands, or more detailed information, such as the date of acquisition, cloud cover, and data provider's name. The raster data and any associated files should be stored together or in the same file folder structure as the data exists in when provided from a data vendor. For example, TIFF files using the information in a world file should have the .tfw file stored in the same folder.

Raster data for ArcGIS Image Server can be stored on a local disk, on a removable disk drive, or in a database—raster data can be stored anywhere as long as it can be readily accessed by the image server. The speed of reading the data affects the performance.

Service provider

The service provider is the workhorse of the system, and multiple service providers can be running within the image server system. Service providers receive the requests from the client applications for an image service product, perform the processing outlined in an image service, and deliver the required data to the client.

The service provider performs the following main functions:

Maintains one or more image services
Publishes itself to the specified image server
Communicates with the clients that require access to the imagery
Provides and processes streams of image data in reply to client requests
Maintains a detailed log of all the imagery requests made

Service providers can serve one or more image services—they usually contain a list of image services that a client can choose to receive. For example, you could have many image services on one service provider when you want to provide multiple products from one raster data source, such as Landsat. You could provide multiple image services of different band combinations; an NDVI image service; and if you have an elevation model, you can  generate derived products such as color-coded elevation models or shaded relief models to be used in conjunction with the Landsat data. The same image service can be hosted by more than one service provider as well. You may need to do this when a particular image service is requested often.

The image server scales to support heavier loads by using additional service providers. The service provider's architecture is multithreaded. Therefore, each request runs in its own thread, and a request can be for any of the image services it's providing. Multiple service providers can run in parallel, and each service provider can work with multiple image services.

When a valid client connection for an image service is received, the service provider creates a connection that it maintains until the client disconnects or is timed out. Requests are made from the client to the service provider for imagery. The service provider processes the image service and returns the requested imagery to the client. Summary details about the connections are sent to the image server on disconnect or at periodic intervals.

Image server

The image server publishes the available image services, acts as an image service request broker, ensures that you have the rights to access image services, and provides load balancing between service providers. Client applications make their first contact through the image server, and the image server identifies the service provider with which the client will further communicate.

The image server performs the following main functions:

Maintains a list of all the available image services
Provides details of available image services to client applications
Authenticates clients and provides access control to the image services
Performs load balancing when an image service is available on multiple service providers
Provides the client application with the appropriate connection details to connect to an allocated service provider
Maintains a log of all the connections made

The image server is managed by the Server Manager application.

ArcGIS Image Server tools

The ArcGIS Image Server application includes the administration tools and client applications. Use the administration tools to build the image services and administer the image server—these tools include the Service Editor (through the Image Service Editor toolbar) in ArcMap and the stand-alone Server Manager application.

Service Editor

Image services are created and edited in ArcMap using the tools and functions on the Image Service Editor toolbar.

IS_toolbarSmall

The Service Editor is used to perform the following:

Create a new image service and define its properties
Add or remove the raster data
Define any processing that is to be applied to all the data in the image service or to individual rasters
Build the image service
Review the image footprints and edit any seamlines
Preview the image service image
Validate the processes and data in the image service
Optimize the image service by creating derived tiles and overviews
Generate the compiled image service files (.ISCDef) used by the service providers

Server Manager application

An administrator uses the Server Manager application to manage the image server, the service providers connected to the image server, and the image services published by each service provider. There are tools in this application that allow an administrator to do the following:

Configure the image server and service providers
View the status and start and stop the image servers, service providers, and image services
Synchronize a modified image service on a service provider
Export or review log files
Manage security

Client applications

ArcGIS Image Server supports the following applications:

ArcGIS (9.1, 9.2, 9.3, and 10) applications: ArcMap, ArcGlobe, ArcIMS, and ArcGIS Server
AutoCAD 2000, 2000i, 2002, 2004, 2005, 2006,  2007, 2008, 2009 and 2010
MicroStation 8.05 and 8.09 (XM)
MapInfo 8.0, 8.5, 9.0, and 9.5
GeoMedia Professional 6
Image Server Viewer, a free viewer that is delivered as part of ArcGIS Image Server
Console Client, a command line client capable of scripting

By installing some additional free software, you can access the published image services from the image server directly from your desktop applications. Using a tool that is added to the user interface through the Customize dialog box, ArcMap can access the image services as a client. These client applications allow you to directly change some of the image properties, such as the spatial reference, compression, and mosaic method of the image data you receive. They also allow you to view associated metadata and export the image data to a file.