An overview of ArcGIS Image Server clients

The client component of ArcGIS Image Server, Image Server Client DLL (ISClient DLL), is compact and can be easily integrated into a number of different applications. This feature of ISClient DLL enables the applications to quickly access the imagery and features of ArcGIS Image Server. ESRI provides client interfaces for nearly all their products and a number of 3rd party products. The Image Server Client DLL has been specifically written to enable quick integration into different applications and the corresponding interfaces are provided by the developers.

You can also add other client applications by using the ISClient DLL. ArcGIS Image Server support to a client application enables you to have fast access to large quantities of high quality imagery available on ArcGIS Image Server. The client application does not have much load even while accessing huge image datasets. This is because ArcGIS Image Server only sends the imagery required for display to the client application.

A client application can access image services either by using the ISClient DLL or the OGC WMS. The WMS method is based on the OGC WMS standards. Any client application that supports the OGC WMS standard can access imagery from ArcGIS Image Server, but requires the administrator to set up a Web Server and an OGC Service Provider that converts the WMS HTTP requests to native ArcGIS Image Server requests and returns the processed imagery.

ISClient DLL enables you to access image services served from ArcGIS Server via HTTP protocol. This is facilitated by typing "http://" and the name of the ArcGIS Server in the Server Name text box while adding an Image Server connection. For example, if the server name is TestServer, type "http://TestServer" in the Server Name text box on the Add Image Server Connection dialog box. When using the REST address you need to specify the path to the location of the image services. The path is case sensitive. For example, if the image services are contained within /MyServices/Vegas/, then the REST address needs to contain the Vegas folder in its path, such as http://iservices.online.com/MyServices/Vegas.

The ISClient DLL interface has been written specifically to enable developers to add support for ArcGIS Image Server quickly and majority of aspects of creating and maintaining an interface is handled by the DLL. The direct access uses RPC vs HTTP, which has advantages and disadvantages. RPC is a more compact communication protocol that requires specified communication ports. These ports are often blocked by firewalls.

Advantages of connecting a client to an image server directly using the client interface:

Provides faster access: RPC is generally faster and cuts out the intermediate Web Server and OGC Service Provider.
The direct interface specification for ArcGIS Image Server is much richer enabling more advanced clients. For example, features such as Viewpoint, change compression method, and order by attribute are directly available.
Provides greater breadth of imagery: ArcGIS Image Server can provide imagery in multiple image types including 32 bit and so on.
Better user experience: The GUI control is already provided.
Metadata support: The client provides detailed metadata about the service, image, and source data.
Quicker to implement: Unless the application already supports WMS, the ISClient DLL is generally much faster to implement and test.

This chapter will aid developers in customizing their applications to support ArcGIS Image Server. The development environment supports COM, .Net, and C. These technologies allow developers to customize their applications using a number of legacy languages such as Visual Basic, Visual Basic .Net, C#, C++, and so on.

The source code for the Image Server Viewer is available along with this Developer Kit. Image Server Viewer is a simple Visual Basic application that can be compiled and tested. Code from this application can be copied to create other client applications.

Following is an overview of how direct clients connect to a specified published service and obtains imagery.

Publishing and selecting an ESRI Image Service

IS_CL_SelectService

The following are the steps performed in publishing an Image Service and selecting a service.

1.Load compiled service definition in service provider (or multiple).
2.Service provider publishes service to server.
3.Server publishes available services.
4.Client request server for available services.
5.Server transmits list of available services to client.
6.Client selects and opens service.
7.Server performs load balancing to determine which service provider should handle requests.
8.Server transmits details of the service provider to client. The list can include alternative service providers.
9.Client requests a connection with the service provider.
10.Service provider accepts and sends detailed service parameters, else rejects.

Requesting an image

IS_CL_GetImage

The following are the steps performed by a client to request an image covering a specified area of interest, after the client has connected to a service provider serving the image service.

1.Client sets properties, including the spatial reference system, mosaic method, and sampling method.
2.Service provider reconfigures the connection and transmits back revised properties.
3.Client requests an area of interest (AOI) consisting of minimum and maximum x and y coordinates, the number of rows, number of columns, and optionally viewpoint x, y, and z coordinates.
4.Service provider identifies the required rasters, processes the required rasters, mosaics them, performs the service process (if required), and optionally compresses the data and transmits the imagery to the client.
5.The client displays the image.
6.Optionally, the client may request metadata about the last request.
7.Service Provider returns metadata about the request.
8.Client displays metadata.

The client maintains the state of its connection, defining its currently defined spatial reference system and mosaic method. If the connection fails, the client will attempt to re-establish a connection with the service provider, otherwise it will return to the server to get a new connection.