Creating Input for AVL System

4609
1
08-21-2015 11:42 AM
mpboyle
Occasional Contributor III

We have just installed the GeoEvent Processor extension (10.3.1) and I'm wondering how we can use it for making an input connection to our AVL system.  Currently our AVL system writes data to a PostgreSQL database.

I'm wondering what type of input connector I should use?  I'm thinking TCP...?  I know the ip address of the server and port used for the PostgreSQL database, however I'm not entirely sure what needs to be done on the GeoEvent side to make this work.

Thanks in advance!

Tags (1)
0 Kudos
1 Reply
RJSunderman
Esri Regular Contributor

Hello Matthew -

It might help if you think of a "connector" as pairing a specific "adapter" with a specific "transport". It is the transport's job it to deliver a payload (raw bytes) to an adapter. It's the adapter's job to extract data from the received stream and use a GeoEvent Definition to create a GeoEvent.

The 'Receive Text from a TCP Socket' inbound connector you mention does not reach out to a IP address to interrogate a device. It opens a TCP socket (as a server application) so that some external client can send delimited text to that socket. The TCP socket in this scenario is the transport. The out-of-the-box text adapter is what is expecting simple delimited text that it can parse in order to retrieve data values and construct a GeoEvent.

The GeoEvent Extension does not have an ODBC / JDBC connector you can use to retrieve data directly from an RDBMS table. Please take a look at the following thread:  Re: GeoEvent process  Oracle/SQL connector

There are exercises in the product introduction tutorial, available here​, with the other product tutorials, which introduces you to the 'Receive Text from a TCP Socket' inbound connector and the GeoEvent Simulator you can use to send data to the input.

If we shift our focus away from the TCP socket protocol for a moment, the 10.3.x release has out-of-the-box inbound connectors which allow a data provider to HTTP/POST data directly to REST endpoint hosted by the GeoEvent Extension. Could you configure your AVL to HTTP / POST position data as generic JSON or generic XML to a GeoEvent REST endpoint? Could you develop an external Python script to retrieve records from your database and then POST the data to GeoEvent?

Using an HTTP / POST mechanism to send data to GeoEvent is not AVL specific -- and that's sort of my point. When considering GeoEvent you need to identify how the extension should receiving a feed from an external system, or how you can make a REST request to an external system that will return data in a well known format (such as delimited text, generic JSON, geoJSON, or generic XML).

Once you've had a chance to go through the product introduction tutorial, maybe you could take a look at the Sierra Wireless RAP Connector tutorial. This would only be useful if you happen to be using Sierra Wireless gateway devices in your vehicles, but the exercises will underscore the concept of how GeoEvent receives data, this time in an AVL context.

There are also a number of commercial AVL connectors we could look at: CompassLDE (CompassCom), Zonar, Networkfleet …

Hope this information helps -

RJ

0 Kudos