Geoprocessing in the Web ADF


Summary There are a number of methods and techniques for working with the geoprocessing (GP) capabilities of ArcGIS Server. This topic presents the options for working with geoprocessing using the Web Application Developer Framework (ADF) from an ArcGIS Server developer perspective.

In this topic


Web ADF geoprocessing components

Assuming that a toolbox has been published as a GP service—and created a Web application—the easiest option for working with a GP service is to use the Web ADF task framework to configure a GP task (Web task). Each Web task is associated with a tool or model in a GP service (a server task). If the GP server task is associated with a map document, the Web task can utilize it.
  • For non-developers, you can use ArcGIS Server Manager (Manager) to consume a GP server task and configure the GP Web task without opening Visual Studio or writing any code.
  • For developers, you can do any of the following in Visual Studio:
    • Work with the task framework controls (for example, TaskManager, TaskResults, and GeoprocessingTask). At run time, the Web ADF geoprocessing task dialog box is generated, based on the inputs required for the GP service task. If you're working with the Web Mapping Application template (for example, in the Web site created by Manager), the Web ADF controls needed to utilize GP tasks have been added for you. In general, the GP server task input and outputs are managed for you.
    • Work with the Web ADF IGeoprocessingFunctionality interface via custom code. You can create the user interface (UI) for the GP server task and explicitly manage input and output values. The IGeoprocessingFunctionality interface enables you to submit asynchronous jobs, execute synchronous jobs, check their status, get results, and so on. It works with a Web ADF-maintained set of the GP value types (prefixed GP* in ESRI.ArcGIS.ADF.Web.DataSources).
    • Work with the Web ADF GP proxies and value objects. In general, if you're working with existing GP services and you need more control over the GP process than provided in IGeoprocessingFunctionality or if you do not need the overhead associated with a resource manager, resource, and functionality, use the GPServer proxy and value objects in ESRI.ArcGIS.ADF.ArcGISServer. There is a Web service proxy (GPServerProxy) for ArcGIS Server Internet data sources and a Distributed Component Object Model (DCOM) proxy (GPServerDcomProxy) for ArcGIS Server local data sources. Both can be used with an existing resource or standalone. The Web service proxy is available via the GeoprocessingResourceInternet.GPServerProxy property. The DCOM proxy is available via the GeoprocessingResourceLocal.GPServerProxy property. Both also work with the GP value object types in the ESRI.ArcGIS.ADF.ArcGISServer namespace (prefixed GP*). This is a good lightweight option for implementation in a custom Web service.

Basic geoprocessing components for .NET

The Web ADF includes basic GP components that are available for the Microsoft .NET development environment. They can be used in a Web ADF application but are not restricted to it. You have the following options for using the basic .NET GP components depending on the type of access you have to ArcGIS Server (local or Internet):
  • Local access to ArcGIS Server
    • To work with a well-known toolbox, tool, or model on the geographic information system (GIS) server without using an existing GP service, use the .NET Geoprocessor wrapper with an empty server context. The following options are available:
      • IGPServer—Server object type available for existing GP services. This is the easiest way to work with existing GP services using ArcObjects. Full control over task execution on the server. Works with a specific set of GP value types provided in ESRI.ArcGIS.Geoprocessing. You can provide a set of features as well as work with layers in an associated map document.
      • Geoprocessor—.NET wrapper for the IGeoProcessor Component Object Model (COM) object. Can be used with existing system toolboxes and custom toolboxes on the server (empty server context) or locally. The wrapper provides .NET developers with better design-time information (intellisense) than working with COM objects and interfaces. It does not provide data type information for tools or models explicitly. Additional information about tool and model parameters can be discovered using ArcObjects—IToolboxWorkspace, IGPToolbox, IGPTool, and IGPParameter.
      • IGeoProcessor—COM interface to the ArcObjects GeoProcessor COM object. As with the .NET Geoprocessor wrapper, it can be used with existing system and custom toolboxes on the server (empty server context) or locally. It provides the finest level of detail for working with GP tools and models. It does not provide data type information for tools or models explicitly. Additional information about tool and model parameters can be discovered using ArcObjects—IToolboxWorkspace, IGPToolbox, IGPTool, and IGPParameter.
  • Internet access to ArcGIS Server
    • GPServer proxy—Existing GP services can be exposed as ArcGIS Server Web services. They provide a GP service-specific Web Service Description Language (WSDL) that can be used to generate a set of client-side value objects and a Web service proxy to work with geoprocessing on the GIS server. The value objects include a set of GP-specific types (prefixed GP*), and the Web service proxy provides a set of methods to submit asynchronous jobs, execute synchronous jobs, check their status, get results, and so on. This option can be used without installing any ESRI software.