real-time gis: creating processors using the geoevent sdk · real-time gis: creating processors...
TRANSCRIPT
ArcGIS GeoEvent Extension for Server:Creating Processors with the SDK
Ming ZhaoSoftware DeveloperGeoEvent Extension
Patrick HillSoftware DeveloperDefense Solutions
Real-Time GISIntegration & exploitation of streaming data
DesktopWeb Device
ArcGIS Server SpatiotemporalBig Data Store
• Can ingest real-time high velocity data into ArcGIS and can store it.
• Can visualize high velocity and volume data
- as an aggregation,- as discrete features,- live & historically.
• Send updates & alerts to those who need it, where they need it.
GeoEvent
How do I get my real-time data into ArcGIS?Easily integrate real-time streaming data into ArcGIS using an Input Connector
GeoEvent Extension
Inpu
ts
Out
puts
GeoEvent Services
Poll an ArcGIS Server for Features
Poll an external website for GeoJSON, JSON, or XML
Receive Features, GeoJSON, JSON, or XML on a REST endpoint
Receive RSS
Receive GeoJSON or JSON on a WebSocket
Receive Text from a TCP or UDP Socket
Subscribe to an external WebSocket for GeoJSON or JSON
Watch a Folder for new CSV, GeoJSON, or JSON Files
Out
of t
he B
ox REST
.csv
WS
WS
HTTP
You can createyour own
connectors.
Esri
Gal
lery
ActiveMQ
CAP
Exploitation Support Data
Cursor-on-Target
RabbitMQ
NMEA 0183
MQTT
Sierra Wireless (RAP)
KML
Kafka *
Trimble (TAIP)
Part
ner G
alle
ry
enviroCar
GNIP
FAA (ASDI)
exactEarth AIS
Zonar
Valarm
Networkfleet
OSIsoft ***
*
*
CompassLDE
How do I update and alert those who need it where they need it?Easily disseminate notifications, alerts, and updates using an Output Connector
You can createyour own
connectors.
GeoEvent Extension
Inpu
ts
Out
puts
GeoEvent Services
Out
of t
he B
oxAdd or Update a feature
Publish Text to a UDP Socket
Send a Text Message
Send an Email
Push Text to an external TCP Socket
Push GeoJSON or JSON to an external WebSocket
Push GeoJSON or JSON to an external Website
Send an Instant Message
Send Features to a Stream Service
Write to a CSV, GeoJSON, or JSON File .csv
WS
im
HTTP
ActiveMQ
Esri
Gal
lery
Cursor-on-Target
Hadoop
Kafka
MongoDB
MQTT
*
RabbitMQ
Add a Feature to a Spatiotemporal Big Data Store
Update a feature in a Spatiotemporal Big Data Store
Real-Time GISArcGIS GeoEvent Extension for Server: continuous analytics on GeoEvents as they are received
You can createyour own
processors.
GeoEvent Extension
Inpu
ts
Out
puts
GeoEvent Services
Buffer Creator
Convex Hull Creator
Difference Creator
Envelope Creator
Field Calculator
Field Enricher
Field Mapper
Geotagger
Incident Detector
Intersector
Projector
Simplifier
Symmetric Difference
Track Gap Detector
Field Reducer Union Creator
Out
of t
he B
ox
Add XYZ
Esri
Gal
lery
Bearing
Ellipse
Event Volume Control
Extent Enricher
Field Grouper
GeoNames Lookup
Range Fan
Reverse Geocoder
Service Area Creator
Symbol Lookup
Track Idle Detector
Unit Converter
Visibility
Motion Calculator Query Report
Extending GeoEventSoftware Development Kit (SDK)
• You can create your own custom connectors and processors using the GeoEventSoftware Development Kit (SDK)
Your processors
Yourconnectors
Your connectors
GeoEvent Extension
Inpu
ts
Out
puts
GeoEvent Services
Creating Processors
Simple ProcessorExtract Point from Polygon Processor
Demo 1
- api: JavaDoc content associated with GeoEvent Processor SDK- repository: Local maven repository- samples: Sample processors (and connectors)
- GeoEvent Extension Developer Guide
Extending GeoEvent ProcessorSoftware Development Kit (SDK)
Java Geometry API
• Includes Java Projection Engine
• Exposes Geometry Objects• Geometry Engine
ProcessorLifecycle Review
GeoEvent Extension
GeoEvent Service
Processor
Validation
Shutdown Initialization
Creation
Processing…
Anatomy of a ProcessorWhat makes up a Processor?
• Implements processor lifecycle
Configuration • Defines processor, it’s dependencies and metadata
Processor Definition • Defines processor metadata, properties and GeoEvent Definition(s)
Processor
Processor Service • Instantiates processor definition, processor and applies configuration
Processor Service
• Creates processor definition• Creates processor instance
• Create new Java class• Extend GeoEventProcessorServiceBase class
Processor DefinitionProperties and GeoEvent Definition(s) in Code
Identification1. Name2. Domain3. Version
Processor DefinitionMetadata
Processor DefinitionMetadata
Description4. Label5. Description6. Contact
Information
1. Creation
ProcessorLifecycle
2. Initialization3. Validation
1. Creation
ProcessorLifecycle
2. Initialization3. Validation
1. Creation
ProcessorLifecycle
2. Initialization3. Validation
4. Processing
ProcessorLifecycle
5. Shutdown6. Service Start / Stop
4. Processing
ProcessorLifecycle
5. Shutdown6. Service Start / Stop
4. Processing
ProcessorLifecycle
5. Shutdown6. Service Start / Stop
Processor ServiceConfiguration
• Declare processor service as a service implementing GeoEventProcessorService interface from GeoEvent Processor SDK
ProcessorLifecycle
Put It All TogetherExtended Track Idle Processor
Demo 2
https://https://github.com/Esri/solutions-geoevent-java/tree/master/solutions-geoevent/processors/trackidle-processor
GeoEvent Extension: Creating Processors with the SDKSummary
• GeoEvent allows you to develop and deploy custom processors
• Not limitted to out-of-the-box functionality
• Can take advantage of Esri Java Geometry libraries
• Extended trackIdle Processor available on GitHub: https://https://github.com/Esri/solutions-geoevent-java/tree/master/solutions-geoevent/processors/trackidle-processor
Where to learn more?Resources• To learn more, visit the ‘Get Started’ area of the GeoEvent Extension product page:
- http://links.esri.com/geoevent- Introduction- Notifications- Stream Services- RSS, HTTP, Files- REST Admin API- Clustering
• Ask questions on the GeoEvent Forum:- http://links.esri.com/geoevent-forum
Ming ZhaoSoftware DeveloperGeoEvent Extension
Questions / Feedback?http://links.esri.com/geoevent
http://links.esri.com/geoevent-forum
To learn more:
Patrick HillSoftware DeveloperDefense Solutions