What types of services can you publish?
A GIS server hosts GIS services. A GIS service represents a GIS resource—such as a map, globe, locator, or geodatabase connection—that is located on the server and is made available to client applications. Services make it easy to share the use of resources across clients. You can be sure that each client has the same view of the resource, and you save resources because the server is storing the resources and the clients don't need to have GIS software installed. Instead, the server stores the resource, hosts the service, and does the GIS work, sending back a result in a common format—such as images or text—to the client.
Working with services
You don't need any specialized GIS software to work with a service; you can consume the service within a web browser or custom application. However, ArcGIS applications, such as ArcMap and ArcGlobe, can also act as clients to GIS services.
When you work with a service hosted by ArcGIS Server, you have, in most cases, the same level of access to the resource that you would have if the resource were located on your machine. A map service, for example, allows client applications to access the contents of a map on the server in much the same way that they would if the map were stored locally.
Publishing a GIS resource as a service is the key to making that resource available to other people. As you deploy ArcGIS Server, you will follow the common pattern of creating resources in ArcGIS for Desktop and publishing the resources as services so that client applications can use them.
This chart summarizes the services that are available and the GIS resource required for each:
Service type | Required GIS resource |
---|---|
Map service |
Map document (.mxd) |
Geocode service |
Address locator (.loc, .mxs, SDE batch locator) |
Geodata service |
File geodatabase or database connection file (.sde) to a geodatabase |
Geoprocessing service |
Geoprocessing result from Results window in ArcGIS for Desktop |
Globe service |
Globe document (.3dd) |
Image service |
Raster dataset or mosaic dataset or layer file referencing a raster dataset or mosaic dataset |
Enabling capabilities
When you publish a GIS resource to the server, you can enable capabilities that define the various ways clients can use the service. For example, you might enable the feature access capability on a map service to allow someone to edit features over the web. By enabling capabilities, you can provide the GIS functionality that the users of your applications will need.
As an ArcGIS Server administrator, your view of the server focuses on GIS resources and the services you create from them. However, a client's view of the server focuses more on the capabilities that you enabled when you published the resource, since that is what can be consumed. As an administrator, it's possible for you to publish one GIS resource and enable many capabilities for that resource. The person who uses these services will view these capabilities as separate services.
This chart details the capabilities you can enable and the GIS resource required to expose each:
Capability |
What it does |
Services that expose this capability |
---|---|---|
Feature Access |
Provides access to vector features in a map. |
Map services |
Geocoding |
Provides access to an address locator. This capability is always enabled when you publish a geocode service. |
Geocode services |
Geodata |
Provides access to the contents of a geodatabase for data query, extraction, and replication. This capability is always enabled when you publish a geodata service. |
Geodata services |
Geoprocessing |
Provides access to geoprocessing models. This capability is always enabled when you publish a geoprocessing service. |
Geoprocessing services |
Globe |
Provides access to the contents of a globe document. This capability is always enabled when you publish a globe service. |
Globe services |
Imaging |
Provides access to the contents of a raster dataset or mosaic dataset, including pixel values, properties, metadata, and bands. This capability is always enabled when you publish an image service. |
Image services |
JPIP | Provides JPIP streaming capability when using JPEG 2000 or NITF (with JPEG 2000 compression) files and configured with a JPIP Server from Exelis VIS. | Image services |
KML |
Uses a map document to create Keyhole Markup Language (KML) features. |
Map services |
Mapping |
Provides access to the contents of a map, such as the layers and their underlying attributes. This capability is always enabled when you publish a map service. |
Map services |
Mobile Data Access |
Allows extraction of data from a map to a mobile device. |
Map services |
Network Analysis |
Solves transportation network analysis problems using the ArcGIS Network Analyst extension. |
Map services |
Schematics |
Allows viewing, generating, updating, and editing schematic diagrams. |
Map services |
WCS |
Creates a service compliant with the Open Geospatial Consortium, Inc. (OGC), Web Coverage Service (WCS) specification. |
Map services, image services, geodata services |
WFS |
Creates a service compliant with the OGC Web Feature Service (WFS) specification. |
Map services, geodata services |
WMS |
Creates a service compliant with the OGC Web Map Service (WMS) specification. |
Map services, image services |
WMTS* | Creates a service compliant with the OGC Web Map Tile Service (WMTS) specification. | Map services, image services |
WPS | Creates a service compliant with the OGC Web Processing Service (WPS) specification. | Geoprocessing services |
*Unlike other types of OGC services, there is no WMTS capability option to enable or disable when you create a cached map service. The map service and its tiles are automatically accessible using the WMTS specification.
What service capability should I enable?
It's important to know which capabilities are available and to choose the ones that will best meet your needs. The following examples may help get you thinking about which capabilities you should enable when you publish your GIS resources:
If you want to display the contents of a map document in a web application, you need to publish the map document as a map service. The Mapping capability is always enabled for this type of service. See the Map services book.
If you want to make images of your map available on the web using an open, recognized standard, you need to create a map document and publish it with the WMS capability enabled. See WMS services.
If you want to make your ArcGIS Server maps run faster on the web using an open, recognized standard, create a cached map service and access it through an OGC WMTS-compliant application. When you create a cached map service using ArcGIS Server, the map service and its tiles are automatically accessible using the WMTS specification. See WMTS services.
If you want to create a service that is accessible from Google Earth, you need to publish a map document with the KML capability enabled. This capability is enabled by default on new map services. See Viewing services as KML.
If you want to get data from a map document into your mobile device, you need to publish the map document with the Mobile Data Access capability enabled. See Mobile data services.
If you want clients to be able to run a model you created, you need to publish the results of the model. See the help for geoprocessing with ArcGIS Server.
If you want clients to be able to run a model you created using an open, recognized standard, you need to publish the results of a geoprocessing model with the WPS capability enabled. See WPS services.
If you have multiple sites that need to perform routing analysis, you need to create a map document with a network analysis layer and publish the map with the Network Analysis capability enabled. See Network analysis services.
-
If you want to access your schematic diagrams in a server environment, you need to create a map document with schematic layers related to those diagrams. Publishing the map with the Schematics capability enabled allows you to edit the diagrams (apply schematic algorithms, update) and generate new diagrams. See Schematics services.
If you have data that you want to display in 3D, you should create a globe document and publish it as a service. The Globe capability is enabled by default. See the Globe services book.
If you want multiple sites to synchronize the information in their geodatabases, you need to publish the geodatabases as a geodata service. The Geodata capability is always enabled for this type of service. See Geodata services.
If you want clients to be able to geocode addresses, you need to create an address locator and publish it as a geocode service. The Geocoding capability is always enabled for this type of service. See the Geocode services book.
If you want to make geographic feature data available over the web through an open, recognized standard, you can publish a geodata service or a map service and enable the WFS capability. See WFS services.
If you have a large collection of raster data that you want to make available through the web, you need to publish it as an image service. The Imaging capability is always enabled for this type of service. See Image services.
If you want to make your imagery available through an open, recognized standard, you can enable the WCS capability on the image service. You can also enable this capability on a map or geodata service. See WCS services.
If you have a specific piece of functionality that you need to make available to client applications, you can develop your own capability. You can develop capabilities for any type of service. In ArcGIS Server development, services are referred to as server objects and capabilities are server object extensions. See Extending services.
Making services available on the web
When you publish a service to ArcGIS Server, it exposes itself through the common web service technologies SOAP and REST. If you don't want everyone in your organization to see the service, you can configure ArcGIS Server security to set limits on access. You can also restrict what types of things users are allowed to do with the service by disabling the allowed operations discussed below.
Allowed operations
ArcGIS Server web services have operations that define what users are allowed to do with the service. Each operation represents a group of related methods. When you disable an operation, you prevent clients from executing those methods. When you allow an operation, clients can call all the methods in that operation.
For example, map services have Map, Query, and Data as their allowed operations. The Identify tool uses a method in Query; therefore, if you didn't want clients to be able to use an Identify tool with a map service, you would disable Query. For each type of service, you can find a list of operations and their associated methods in Tuning and configuring services.
Messaging formats
ArcGIS Server web services support both SOAP and binary messaging formats. SOAP is a common web service messaging protocol. Binary is used by certain ArcGIS client applications, such as ArcMap and ArcGlobe, to view services.
By default, both binary and SOAP messaging formats are enabled. You can, however, choose to use just one of these formats. Be aware that if you choose just binary, standard web clients will not be able to consume the service; only ArcGIS clients can use the binary messaging format.
To change the messaging format for your services, you must use the ArcGIS Server Administrator Directory to edit the site's properties. For instructions, open the Administrator Directory Help and navigate to the topic Server Properties under the System resource.
Web service URLs
For clients to access web services, they will need to know the URL. To access a server through REST, use the following format:
http://<server name>:<port number>/arcgis/rest/services
This displays a page called the Services Directory. You can navigate the links in the Services Directory to get the URL for any service on your server. You'll notice that to connect to a specific service, the REST URL takes a longer format:
http://<server name>:<port number>/arcgis/rest/services/<folder name (if the service resides in a folder)>/<service name>/<service type>
To access a server through SOAP, format your URL as follows:
http://<server name>:<port number>/arcgis/services
To access a particular service through SOAP, use this format:
http://<server name>:<port number>/arcgis/services/<folder name (if the service resides in a folder)>/<service name>/<service type (required for some services)>/<capability type (required for some services)>
For further instructions on the URL formats to use with your services, see the documentation topic specific to the type of service you are creating. To change the format of the URL, you can use URL mapping.