What is a geoprocessing service?
Geoprocessing services are how you expose the powerful analytic capability of ArcGIS to the world-wide web. Geoprocessing services contain geoprocessing tasks, and a task takes simple data captured in a web application, processes it, and returns meaningful and useful output in the form of features, maps, reports, and files. A task could calculate the probable evacuation area for a hazardous chemical spill, the predicted track and strength of a gathering hurricane, a report of land cover and soils within a user-defined watershed, a parcel map with historical details of ownership, or a permitting application for a septic system. The possibilities for these services are infinite.
A geoprocessing service contains one or more geoprocessing tasks. A geoprocessing task is a geoprocessing tool running on a server and its execution and outputs are managed by the server. When you share a geoprocessing result as a geoprocessing service, a corresponding geoprocessing task is created from the tool that created the result. Task is a term that web-based APIs (such JavaScript, SilverLight, and Flex) use to describe routines that do work on a server and return results.
A useful way to think about services is as four separate activities: designing, authoring, publishing (or sharing), and using (or consuming). The topics in this book about geoprocessing services address the mechanics of authoring, publishing, and using. That is, how to use ArcGIS for Desktop and web programming to create and access geoprocessing services and their tasks. The design of services—the work they perform, how useful they are, and how they mesh with your suite of applications and your organizational goals, is beyond the scope of this documentation, but you'll find many design tips and ideas throughout the topics in this book.
Service and tasks, toolboxes, and tools
If you have experience with using geoprocessing in ArcGIS for Desktop, you can think of a geoprocessing service as a toolbox and tasks as tools within the toolbox. The main difference is when you execute a task in a geoprocessing service, it executes on the server computer, using resources of the server computer. In fact, using a service and its tasks in ArcGIS for Desktop is so similar to using a toolbox and its tools that you may not notice the difference.
A geoprocessing service, like a toolbox, is just a container; it doesn't perform any processing. However, there are properties of a service, such as whether results are to be drawn with a corresponding map service, execution mode, number of processes, the locations to write data, and so on, that are inherited by all tasks within the service.
When discussing geoprocessing services and tasks, it's easy to blur the distinction between a service and the tasks within, especially if a service contains only one task. In casual conversation, equating a service and a task is common and doesn't (usually) cause confusion. But throughout this documentation, the distinction between service and task is always made.
Authoring, publishing, and using
Authoring
To author a geoprocessing task, you typically create a geoprocessing tool using ModelBuilder or Python scripting. You don't have to create your own tool—you can use one of the many system tools installed with ArcGIS.
Publishing
To publish the tools you've authored, you execute the tool in an ArcGIS for Desktop application such as ArcMap or ArcGlobe. Executing the tool creates a result in the Results window. You right-click the result and choose Share As > Geoprocessing Service to open a step-by-step wizard that both defines the service and the initial task within the service. This initial task is the same as the tool that created the result. You can add additional results to the service. Each result becomes a task within the service.
To publish a service, you need publisher or administrative access to an ArcGIS for Server installation.
Using
Geoprocessing services and the tasks within are used by web clients. ArcGIS for Desktop and ArcGIS Explorer Desktop are two such web clients. Both these clients allow you to access and use any geoprocessing service—no programming is required. But the primary clients are web applications developed with JavaScript, SilverLight, or Flex. These latter clients use standard Internet browsers or custom-built applications to display and interrogate geography. Examples of clients that can access GIS services include web browsers, mobile apps, and ArcGIS Engine applications. Most importantly, GIS services are discoverable just like any other web resource. You can use the clients listed above or a search engine to find GIS resources and immediately use them.