Skip To Content

Getting started with the GeoEvent Server Software Development Kit (SDK)

ArcGIS GeoEvent Server provides a software development kit (SDK) which allows developers to create custom components for GeoEvent Server including transports, adapters, and processors.

Note: Transports and adapters are the underlying components of connectors. An adapter interprets the data format of the event data while a transport sends and receives event data over a specified communication protocol.

For more information on connectors, see Managing connectors.

For more information on processors, see Processors.

The GeoEvent Server SDK includes documentation on the packages and classes exposed through the GeoEvent Server REST API. Before developing a custom component, determine if an existing component available with GeoEvent Server will provide the desired functionality.

What is the GeoEvent Server SDK?

The GeoEvent Server SDK includes documentation on setting up the Java SE Development Kit and development tools such as Apache Maven. It provides information on the architecture of GeoEvent Server, how to develop custom components, and provides sample components that can be used as a starting point in your development efforts.

The GeoEvent Server SDK and documentation can be found in the ArcGIS Server installation directory. The default installation directories are below:

  • Windows: <ArcGIS Server installation directory>\GeoEvent\sdk (for example, C:\Program Files\ArcGIS\Server\GeoEvent\sdk).
  • Linux: <ArcGIS Server installation directory>/GeoEvent/sdk (for example, ~/arcgis/server/GeoEvent/sdk).

When you need a custom transport

GeoEvent Server includes transports such as HTTP transports that supports normal REST request and response messages. Support for HTTP basic authentication is also available. Additional transports that support communications over TCP, UDP, SMS, SMTP, XMPP, WebSocket, and Esri feature services are also included.

If these transports available with GeoEvent Server do not meet your needs, you might need to develop a custom transport using the GeoEvent Server SDK. For instance, if you have access to a service which used a proprietary authentication mechanism such as an exchange of credentials over a TCP socket connection you would need develop a custom transport that understands both the TCP socket protocol and the mechanism being used for authentication.

When you need a custom adapter

GeoEvent Server includes adapters able to parse generic JSON, GeoJSON, and Esri Feature JSON as well as content formatted as geoRSS, XML, and delimited text.

If these adapters available withGeoEvent Server do not meet your needs, you might need to develop a custom adapter using the GeoEvent Server SDK. For instance, if a data provider were sending event data over a socket connection as a stream of hexadecimal bytes, you would need to develop a custom adapter that understood how to translate the raw byte stream into normal data types such as integers or strings.

When you need a custom processor

GeoEvent Server includes many processors you can use to perform real-time analytics. For instance, you can configure a Field Calculator Processor to compute a derivative value or a Field Enricher Processor to pull information from an external source into an event record. These are examples of processors available with GeoEvent Server.

If the processors available with GeoEvent Server do not meet your needs, you might need to develop a custom processor using the GeoEvent Server SDK. For instance, processors receiving an event record generally have no knowledge of attribute values contained in event records that have been recently processed or are about to be processed. If you needed a processor to maintain a cache of attribute values from event records it has received and to periodically report the minimum, maximum, and average of the attribute values as statistics over some period, you would need to develop a custom processor to perform the event aggregation and statistical calculations.