Working with services
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 the GIS software installed. Instead, the server stores the resource, hosts the service, and does the GIS work, sending back a common format of result such as images or text to the client.
You do not have to have any specialized GIS software in order to work with a service; you can consume the service within a Web browser or a 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 document 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 Desktop, then publishing the resources as services so that client applications can use them.
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 a geocoding capability to allow someone to find a place by its address. 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, as 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.
The capabilities that are available for a resource vary depending on what type of resource it is, and, in the case of a map document, what layers are inside it. Map documents have the most available capabilities. Some, like WMS and KML, are always available. Others, such as Geodata Access and Geoprocessing, require special types of layers. This chart details the capabilities you can enable, and the GIS resource required to expose each one.
Capability | What it does | Required GIS resource |
Mapping | Provides access to the contents of a map document | Map document (.mxd) or published map document (.pmf) |
WMS | Uses a map document to create a service compliant with Open Geographic Consortiom (OGC) Web Mapping Service (WMS) specifications | Map document |
KML | Uses a map document to create Keyhole Markup Language (KML) features | Map document |
Mobile Data Access | Allows extraction of data from a map document to a mobile device | Map document |
Geodata Access | Allows an end user to perform replication and data extraction in ArcMap | Map document with a layer from a geodatabase |
Geoprocessing | Provides access to geoprocessing models from either a toolbox or a tool layer. A tool layer represents a model that has been dragged and dropped from ArcToolbox into a map document's Table of Contents. Enabling this capability while publishing a map document creates an associated geoprocessing service. This capability is always enabled when you publish a geoprocessing service. | Toolbox (.tbx), ArcSDE toolbox, or a map document with a tool layer |
Network Analysis | Solves transportation network analysis problems using the Network Analyst extension | Map document with a network analysis layer referencing a network dataset |
Globe | Provides access to the contents of a globe document | Globe document (.3dd) |
Geodata | Provides access to the contents of a geodatabase for data query, extraction, and replication. | SDE connection file (.sde), Personal Geodatabase, or File Geodatabase |
Geocoding | Provides access to an address locator | Address locator file (.loc), ArcView 3 locator (.mxs), ArcSDE locator, Personal Geodatabase locator, File Geodatabase locator |
It's important to know which capabilities are available, and 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 with the Mapping capability enabled. See Map services.
- If you want to create a service that is accessible from any WMS client, you need to create a map document, then publish it with the WMS capability enabled. See WMS 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. See KML services.
- 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 use ArcMap to check out data from a geodatabase on the server, perform edits, and then check in the changes, you need to create a map document and add the geodatabase layer. Then, publish the map document with the Geodata Access capability enabled. See Geodata services.
- If you want clients to be able to run a model you created, you need to incorporate the model in a tool layer in a map document. Then, publish the map document with the Geoprocessing capability enabled. See Geoprocessing services.
- If you have multiple sites that need to perform routing analysis, you need to create a map document with a network analysis layer, then publish the map with the Network Analysis capability enabled. See Network analysis services.
- If you have data that you want to display in 3-D, you should create a globe document, then publish the globe with the Globe capability enabled. See Globe services.
- If you want multiple sites to synchronize the information in their geodatabases, you need to publish the geodatabases as geodata services, with the Geodata capability enabled. See Geodata services.
- If you want clients to be able to geocode addresses, you need to create an address locator and publish it with the Geocoding capability enabled. See Geocode 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 known as server objects and capabilities are known as server object extensions. The Developer Help contains topics and samples about creating your own server object extensions.
Making services available on the Web
When clients connect to the server, they can do so through a local or wide area network (LAN or WAN), or through the Internet. When clients connect to a GIS service through the Internet, they're accessing it as a Web service.
When you publish a service, it is automatically enabled for Web access and given an associated URL. You can always disable Web access, or set security parameters that limit who can access the service through the Internet.
Supported operations
ArcGIS Server Web services have supported operations which you can toggle to define what clients are allowed to do with the service. Each supported operation represents a group of related methods. When you disable an operation, you prevent clients from executing those methods.
For example, map services have Map, Query, and Data as their supported 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 supported operations and their associated methods in Securing ArcGIS Server Web 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. You set the messaging format at the folder level, in the folder properties.
By default, both SOAP and Binary 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.
Web service URLs
For clients to access Web services, they will need to know the URL. When you make an Internet connection to the server, you will use a URL in this format:
http://<server name>:8399/<instance name>/services
To connect to a specific service, the URL takes a longer format:
http://<server name>:8399/<instance name>/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.
Capabilities that require Web access
Some capabilities require that clients access the service through the Internet; therefore there is no option to disable Web access for these capabilites. The capabilities that require Web access are KML, WMS, and Mobile Data Access.