>  Docs Center  >  Geospatial Services Framework  >  GSF Glossary
Geospatial Services Framework

GSF Glossary



A cluster is a network of computers, or nodes, that run jobs in parallel. For a tutorial on setting up a cluster, see Clustering.

Directed Acyclic Graph (DAG)

A Directed Acyclic Graph is a concept describing a path that cannot start and end at the same vertex. For our purposes, a DAG is used to describe a chain of tasks and how their parameters are connected. For more information and examples, see the Metatasks tutorial on creating metatasks with the GSF Javascript Engine.

Distributed Workspace

In a distributed workspace, each node in the cluster creates a folder on its own local filesystem. This is where the engine writes files. This folder exists on each node independently, and the other nodes cannot access the data directly. The workspace manager moves the output data to other nodes when necessary. This is the default configuration. The alternative configuration is a shared workspace.


An engine is a collection of tasks that can be used to perform processing. An engine needs to be a module written in JavaScript to integrate with the server. Often the JavaScript code is just a wrapper around a command line tool that does the actual processing. It is not reccomended to write complex algorithms in JavaScript.


GeoServer is an open-source geospatial data server designed for web interoperability. It publishes data as HTTP endpoints to aid in the display of geospatial data products in web clients.

Inversion of Control (IOC)

Inversion of Control is a design concept in which dependencies are injected into objects at the time of creation. This is used instead of objects being responsible for the dependencies. This helps promote a decoupled architecture in which each module may exist and operate in isolation.


A job contains all the information needed to run a task, and it contain the results of the task on completion.

Job Manager

The responsibility of a job manager is to maintain a queue of submitted jobs and execute them sequentially. See the JobManager interface for more details.


A task that can submit other tasks. Metatasks are useful for grouping tasks together to form a processing chain. Because metatasks control the submission of jobs to the job manager's queue, they are able to take advantage of concurrent processing on a single node or cluster. For more information and examples, see the Metatasks tutorial on creating metatasks with the GSF Javascript Engine.


A module is a package specifically designed to plug into the server's modular architecture. All job managers, request handlers, parameter mappers, etc. are modules.


In a clustered environment, a node is a single machine. A node has at least one worker process running and is responsible for pulling jobs off the queue for processing.


A package is a collection of JavaScript code and files that complies with the npm package specifications. This includes GSF modules, but also includes third party libraries and utilities.

Parameter Mapper

A parameter mapper is used to translate parameters to a format that is consumable by the engine. It is possible to enable multiple parameter mappers simultaneously. See the ParameterMapper interface for more details. See the Custom Parameter Mapper tutorial for information on developing custom parameter mappers.

Request Handler

A request handler provides a set of HTTP endpoints for initiating processing and retrieving information about a job. See the RequestHandler interface for more details. See the Custom Request Handler tutorial for more information on developing custom request handlers.


A route is a job queue defined for each node in the cluster and is used to find the next job to process. Every job submitted is added to a route, and each node in a cluster can only process jobs from routes defined in its configuration. Multiple routes on a single node can be ordered in the configuration to create priority. This would cause all jobs in the first route to be processed before any jobs in the next route.

Route Mapper

A route mapper is used to assign a new route based on the job submission input parameters. See the RouteMapper interface for more details.


A service is an HTTP endpoint created by an engine. All HTTP requests to an endpoint are processed by the engine which created that endpoint.

Shared Workspace

A shared workspace is a single location that is accessible from all nodes in the cluster. There is no need for the workspace manager to copy data from one node to another as they all have access to the data directly. The alternative configuration is a distributed workspace.


A task is an algorithm or some predefined functionality that an engine can perform. It accepts a set of input values and returns output values.


A worker accepts jobs from the job manager one at a time and passes those jobs to the engine for execution. When the engine is finished, the worker passes the results back to the job manager, allowing for the next job to be pulled off the queue. It is possible to have multiple workers on a single node so that jobs can be executed in parallel. See the Getting Started tutorial for more details.


A workspace is where the results of a job are written. Workspaces may be shared or distributed among nodes.

Workspace Manager

A workspace manager handles the creation and maintenance of workspace folders and files for each job. If each node has a distributed workspace, the manager determines if data needs transferred to another node during job submission. See the WorkspaceManager interface for more details.

© 2019 Harris Geospatial Solutions, Inc. |  Legal
My Account    |    Store    |    Contact Us