Skip To Content

Extend using custom components

The capabilities of ArcGIS GeoEvent Server can be extended by developing custom components using the ArcGIS GeoEvent Server SDK. The GeoEvent Server SDK allows you, as a developer, to develop custom components including adapters, transports, and processors.

Note:

Adapters and transports are the underlying components of connectors. An adapter interprets the data format of the event data and a transport sends and receives event data over a specified communication protocol.

The GeoEvent Server SDK includes the library files, samples, Javadoc API reference, and a developer guide. It also includes documentation for the packages and classes exposed through the GeoEvent Server REST API. Before developing a custom component with the SDK, decide whether existing existing out-of-the-box components configured using ArcGIS GeoEvent Manager or add-ons available in the ArcGIS GeoEvent Server Gallery provide the necessary functionality for your use case. For more information on both, see Extend using out-of-the-box components and Use the add-on manager.

GeoEvent Server SDK documentation

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

The GeoEvent Server SDK and its documentation are available in the ArcGIS Server installation directory. The default installation directories are as follows:

  • 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)

Develop custom adapters

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

If the adapters available with GeoEvent Server do not meet your needs, you can develop custom adapters using the GeoEvent Server SDK. For example, if a data provider sends event data over a socket connection as a stream of hexadecimal bytes, you can develop a custom adapter that understands how to translate the raw byte stream into normal data types such as integers or strings.

Develop custom transports

GeoEvent Server includes transports such as HTTP transports that support typical 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 the transports included with GeoEvent Server do not meet your needs, you can develop a custom transport using GeoEvent Server SDK. For example, if you have access to a service that used a proprietary authentication mechanism such as an exchange of credentials over a TCP socket connection, you can develop a custom transport that understands both the TCP socket protocol and the mechanism being used for authentication.

Develop custom processors

GeoEvent Server includes many processors that you can use to perform real-time analysis. For example, you can configure the Field Calculator Processor to compute a derivative value or the Field Enricher Processor to join information from an external source to an event record.

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