510 likes | 852 Views
ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors. Ming Zhao Software Developer ArcGIS GeoEvent Processor for Server mzhao@esri.com. Patrick Hill Software Developer ArcGIS for Military Solutions Team patrick_hill@esri.com.
E N D
ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors Ming Zhao Software Developer ArcGIS GeoEvent Processor for Server mzhao@esri.com Patrick Hill Software Developer ArcGIS for Military Solutions Team patrick_hill@esri.com
ArcGIS GeoEvent Processor for Server Integrates and exploits real-time data • Integrates real-time streaming data into ArcGIS • Performs continuous processing and real-time analytics • Sends updates and alerts to those who need it where they need it GeoEvent Services GeoEventProcessor ws:// ArcGIS Server Outputs Inputs ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Receiving real-time data Connectors • You can easily integrate real-time data with ArcGIS by using an input connector. GeoEvent Processor Receive RSS Twitter GNIP Instagram Geofeedia Receive text from a TCP Socket CAP exactEarth Receive text from a UDP Socket Cursor-on-Target ASDI (FAA) GeoEvent Services Receive Features on a REST endpoint .csv .json http:// VMF OSIsoft Receive JSON on a REST endpoint http:// Outputs Inputs GeoMessage Valarm Esri Gallery Out of the Box Receive JSON on a Web Socket ws:// Partner Gallery ActiveMQ Harris Receive JSON on external Web Socket ws:// RabbitMQ CompassCom Poll an ArcGIS Server for Features NMEA NetworkFleet Poll an external website for JSON http:// TAIP (Trimble) Zonar Watch a folder for new .csv files RAP (Sierra Wireless) Watch a folder for new .json files ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Applying real-time analytics GeoEvent Services • A GeoEvent Service configures the flow of GeoEvents, • the Filtering and GeoEvent Processing steps to perform, • what input(s) to apply them to, • and what outputs(s) to send the results to. ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Sending real-time data Connectors • You can easily send updates and results to those who need it where they need it using an output connector. GeoEvent Processor Add a feature Twitter Update a feature ActiveMQ Send an email RabbitMQ Esri Gallery Send an instant message im GeoEvent Services Hadoop .csv .json Send a text message MongoDB Outputs Inputs Publish JSON to a Web Socket ws:// Out of the Box Push JSON to an external Web Socket ws:// CESIUM Publish text on a TCP Socket Publish text on a UDP Socket Partner Publish JSON to an external website http:// Publish on a REST endpoint Write to a .csv file Write to a .json file ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Extending GeoEvent Processor Software Development Kit (SDK) • You can create your own custom connectors and processors using the GeoEvent Processor Software Development Kit (SDK). GeoEvent Processor Your connectors Your connectors GeoEvent Services Your processors Outputs Inputs ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
GeoEvent Processor SDK • api: JavaDoc content associated with GeoEvent Processor SDK • lib: Contains library used to build connectors (and processors) • repository: Local maven repository • samples: Sample connectors (and processors) • GeoEvent Processor Developer Guide ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Connectors ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Connectors What Does a Connector Do? • Connectorsare used to create InputsandOutputs, hiding the technical details • It might be very specific • Get latest earthquakes from USGS • Or more general • Connect to an RSS feed ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Creating Inputs Configured using Connectors Live Traffic Services US Geological Survey National Weather Service RSS Connector Connectors JSON over REST Receive Text via TCP GeoEvent Processor Processor Inputs GeoEvent Services Storms Earthquakes Outputs Traffic ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Connector How Does it Help • The connector helps the user by • Providing default values • Re-label properties to be appropriate to the context • Move properties under an “advanced” area to discourage modification • Completely hide properties that the user should not see ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Connector How Does it Help • By choosing a Connector, the user implicitly selects componentsfrom the GeoEvent Processor that know • HOW to move data (Transport) • WHAT the data looks like (Adapter) Example Input Input (Receive text from a TCP Socket) GeoEvent StartStop Byte [ ] GeoEvent Services TCP Transport Text Adapter ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Demo Exploring a Connector ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Transport ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Transport Whatmakes up a Transport? • Provides a Transport Definition • Instantiates new Transports Transport Definition • Defines transport metadata and properties Transport Service Transport • Implements transport application logic ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Transport Behavior Transports • Transports are given • Properties defining behavior • A “ByteListener” where the bytes should be sent • Transport is started by the server and it sends bytes to the receiver • Transport is stopped by the server and it stops sending bytes ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Transport Lifecycle Transports Transports have a lifecycle that determines if they are producing data. Transport reads properties and starts Server calls start() STARTING Internal error occurs STARTED STOPPED STOPPED STARTED STOPPING ERROR Transport closes resources Server calls stop() ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Outbound Transports Transports • Outbound Transports accept arrays of bytes from the Adapter and transmit them. • Occasionally the destination for the bytes depends on content in the GeoEvent. • The Transport has the option of “looking back” at the GeoEvent that generated the bytes, and using it to route the data. ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Transport Code Walkthrough • Starting the Transport ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Transport Code Walkthrough • Receiving Data ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Transport Code Walkthrough • Applying Properties • Stopping Transport ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Properties ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Property Definition Properties • Transports and Adapters request properties through their “Definition” class. • Each requested property has a • Name • Description • Type (String, Integer, Float, …) • Default Value ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Advanced Topics – More on Properties Properties • Properties can be Mandatory or Optional. • Some properties are dependent on others • Example: “Compression Algorithm” depends on “Compressed = True” • Some properties only accept values from a list of Allowed Values • “Compression Algorithm” : [ Run Length Encoding, Zip, LZW ] ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Adapter ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Adapter Whatmakes up an Adapter? • Provides an Adapter Definition • Instantiates new Adapters Adapter Definition • Defines adapter metadata and properties Adapter Service Adapter • Implements adapter application logic ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Adapter Behavior Adapters • Adapters are given • Properties defining behavior • A “GeoEventListener” where the GeoEvents should be sent • Adapters are DATA DRIVEN • No start/stop calls • The adapter is handed a byte array and pushes any generated GeoEvents to the Listener ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Adapter Code Walkthrough • Adapter Properties ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Adapter Code Walkthrough • Adapter Properties ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Adapter Code Walkthrough – Parsing Data ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Demo Installing and Using Custom Adapter and Transport ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Processors ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Extending GeoEvent Processor What is a Processor? • Software component written in Java • User configurable • Performs specific actions on GeoEvents • Runs continuously inside of server processing environment • Shares lifecycle with GeoEvent Service 2323 783 2981 9102 9102 7827 7827 5122 5122 4913 4913 7138 7138 1326 802 GeoEvent Processor GeoEvent Services Outputs Inputs ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Extending GeoEvent Processor GeoEvent Processors • You can perform continuous analytics on GeoEvents as they are received using a processor. GeoEvent Processor You can create your own processors. Track Idle Detector Field Enricher Slope Calculator SDK ETA Calculator Field Reducer Volume Control GeoEvent Services Service Area Field Calculator Buffer Geotagger Out of the Box Outputs Inputs Esri Gallery Field Mapper Ellipse Track Gap Detector Range Fan Visibility Incident Detector Query Report ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Anatomy of a Processor Whatmakes up a Processor? Processor Service • Implements processor lifecycle • Instantiates processor definition, processor and applies configuration Processor Definition • Defines processor metadata, properties and GeoEvent Definition(s) Processor ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Processor Definition Step 1: Properties and GeoEvent Definition(s) ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Processor Definition Step 1: Metadata Description • Label • Description • ContactInformation Identification • Name • Domain • Version ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Processor Step 2: Lifecycle Review GeoEvent Processor GeoEvent Service Stop Start Processor Creation Shutdown Initialization Processing… Validation ERROR ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Demo Property Definitions & Spatial API Rangefan Calculator ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Processor Step 2: Lifecycle • Creation Initialization Validation ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Processor Step 2: Lifecycle • Processing Shutdown Service Start / Stop ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Processor Service Step 3: Definition • Create new Java class • Extend GeoEventProcessorServiceBase class • Creates processor definition • Creates processor instance • Applies configuration ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Processor Service Step 4: Configuration • Declare processor service as a service implementing GeoEventProcessorService interface from GeoEvent Processor SDK ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Demo Processor Service and Processor Rangefan Calculator ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Demo Putting it Together Rangefan Dashboard ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Review • Connectors – Recipe for creating inputs/outputs • Transport – Moves raw data in/out of the GeoEvent Processor • Adapter – Converts raw data to GeoEvents and back • Properties – Used to configure an input/output for a specific use case ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
GeoEvent Processor Additional Resources • Developer Guide in the SDK • Forumhttp://forums.arcgis.com/forums/257-GeoEvent-Processor • Resource Center – Includes Tutorialshttp://pro.arcgis.com/share/goeevent-processor • Browse the GitHub projects ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Thank you… Please fill out the session survey: Offering ID: 1233 Online – www.esri.com/ucsessionsurveys Paper – pick up and put in drop box ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors
Questions / Feedback? To learn more: http://pro.arcgis.com/share/geoevent-processor Ming Zhao | Software Developer ArcGIS GeoEvent Processor for Server mzhao@esri.com Patrick Hill | Software Developer ArcGIS for Military Solutions Team patrick_hill@esri.com ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors