Using SOAP to access ArcGIS Server web services

ArcGIS Server SOAP web services are based on two standard XML-based W3C specifications: WSDL (Web Service Description Language) and SOAP.

WSDL is a specification used to describe networked XML-based services. In general, WSDL provides a simple way for service providers to describe the basic format of requests to their services, regardless of the underlying protocol. One of those protocols, and by far the most popular, is SOAP. SOAP is used to describe the format of a message sent to a networked service and allow computers to communicate independently of an operating system or platform. SOAP messages can be transmitted to a service via a number of transport protocols, including HTTP.

Consuming SOAP services

Developer environments, such as .NET or Java, provide SOAP toolkits to automate the process of generating a set of local, native classes for a consumer. The WSDL provides the client all it needs to generate the native proxy and value objects, thus no proprietary components related to the web service are necessary.

SOAP toolkit

Value objects are simply objects that store values or properties. Depending on the WSDL, there can be many different types of value objects. On the other hand, there is only one proxy class per SOAP service type. The proxy has both properties and methods. The methods are designed to create and submit a SOAP request and return a SOAP response. The proxy uses the value objects to construct (serialize) a SOAP request. The proxy also deserializes the SOAP response and constructs value objects to be used by the client. So working with a rich client object environment makes it much easier to consume and utilize a SOAP service because you are using native objects to store properties (value objects) and manage SOAP requests and responses (proxy) on the client.

SOAP serialization and deserialization

Consuming ArcGIS Server web services

A WSDL is used to generate the proxy classes and value objects for each ArcGIS Server service type. There is one WSDL and thus one SOAP proxy class for each service type. The capabilities of a ArcGIS Server SOAP web services are defined by the methods of the proxy. The proxy is designed to work with ArcGIS Server services in a stateless manner, thus the proxy class provides methods to initiate stateless requests to an ArcGIS Server service and return results. The ArcGIS Server SOAP proxy uses value objects when calling a method and returning results. SOAP proxies and value objects are usually generated by a SOAP toolkit designed for a specific development environment such as .NET and Java. For example, Visual Studio 2005 contains an integrated SOAP toolkit (wsdl.exe) for .NET developers and the Java community maintains a number of options such as Apache Axis. It is important to note that no ESRI components need to be installed or available on the client. Thus a client application can utilize ArcGIS Server web services much like any other SOAP-based web service.

ArcGIS Server SOAP web services use the following URL pattern:

http://<host name>:<port number>/<arcgis instance>/services/<FolderName>/<ServiceName>/<ServiceType>

The WSDL for a service or extension will provide the necessary information to determine how to interact, via SOAP, with the web service. The WSDL can be returned by appending ?wsdl to the end of the URL.

ArcGIS Server web service proxies and value objects

The proxy and value objects for an ArcGIS Server service only need to be generated once per service type. Once the web service proxy and value objects for an ArcGIS Server service have been created, they can be reused with other ArcGIS Server web services of the same type, even though the proxy class name contains the original service name (dynamic proxies only). For example, if a web service proxy class is generated dynamically using a map service named NorthAmerica, the proxy class name will be NorthAmerica_MapServer. The default endpoint for the MapServer proxy will be associated with the NorthAmerica map service. To use another ArcGIS Server web map service named Europe, set the URL property to define the web service endpoint to the Europe ArcGIS Server web map service. The same applies for all ArcGIS Server service types. A comprehensive list of service types and descriptions are provided below:

Service

Service type

Description

Catalog

not applicable

Use to access to service lists and properties on an ArcGIS Server site.

Feature

FeatureServer

Use to query and edit features.

Geocode

GeocodeServer

Use to assign locations to address attribute information.

GeoData

GeoDataServer

Use to create local copies of remote data, execute geodatabase queries, and synchronize edits with other geodatabases. Designed to work with geodatabases directly.

Geometry

GeometryServer

Provides a set of useful and common operations (buffer, projection, etc.) on arrays of geometries.

Geoprocessing

GPServer

Use to interact with GIS operations for data analysis, data management, and data conversion.

Globe

GlobeServer

Use to access to ArcGIS Globe layers for query and display in a 3D environment. It is designed to be used in ArcGIS for Desktop applications only.

Image

ImageServer

Use to generate map content from raster data.

Map

MapServer

Use to generate and retrieve map content or query attributes and features.

Mobile

MobileServer

Use to provide map and data access to applications developed using the Mobile SDK. It is designed for Mobile SDK clients only.

Network Analysis

NAServer

Use to generate network solutions, such as routing, service area generation, determining closest facilities, and calculating Origin-Destination cost matrices.

11/8/2016