Ming Zhao Software Developer ArcGIS GeoEvent Processor for Server

Slides:



Advertisements
Similar presentations
ArcGIS GeoEvent Extension for Server: An Introduction
Advertisements

The Road Ahead for Tracking
Esri UC 2014 | Technical Workshop | ArcGIS for Water Utilities: An Overview Howard Crothers Mike Miller.
Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California ArcGIS Tracking Analyst – an Introduction Morakot Pilouk,
Esri UC 2014 | Technical Workshop | Automating Cache Workflows and Tile Usage Heat Maps Eric J. Rodenberg.
T Sponsors Sameer Chabungbam Principal Program Manager, Microsoft Connector API Apps BizTalk Summit 2015 – London ExCeL London | April 13th & 14th.
Technical Workshops | Esri International User Conference San Diego, California Military Planning and Operations Dave Mitchell Derek Foll July 26, 2012.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California ArcGIS Viewer for Flex—
ArcGIS 3D Analyst: Working with 3D Analyst and CityEngine
ArcGIS GeoEvent Extension for Server: Applying Real-Time Analytics
Esri UC 2014 | Technical Workshop | Leveraging Metadata Standards for Supporting Interoperability in ArcGIS Aleta Vienneau, David Danko.
Esri Maps for Salesforce and Microsoft Dynamics CRM
Esri International User Conference | San Diego, CA Technical Workshops | Esri Tracking Solutions: Working with real-time data Adam Mollenkopf David Kaiser.
Esri UC 2014 | Technical Workshop | Optimizing Your JavaScript Web App for Performance Jeremy Bartley Derek Swingley.
Esri UC 2014 | Technical Workshop | Parcel Editing: Advanced Tim Hodson Jason Camerano.
Esri UC 2014 | Technical Workshop | Working with Elevation Services in ArcGIS Online Cody A. Benkelman.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Editing in ArcMap:
Technical Workshops | Esri International User Conference San Diego, California ArcGIS Viewer for Flex – Advanced Topics Lloyd Heberlie Björn Svensson July.
Batch Geocoding Online Bruce Harold
ArcGIS Workflow Manager An Introduction
Esri UC 2014 | Technical Workshop | Accessing Spatial Databases in ArcGIS using Query Layers Annie Sasidar.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Creating.NET Add-ins.
Esri UC 2014 | Technical Workshop | ArcGIS Data Reviewer Edwin Waite & Shankar Chandrasekaran Planning and Deploying Data Quality Services.
Real-Time GIS: GeoEvent Extension
Extending ArcGIS for Server
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California ArcGIS API for Flex.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Migrating your Data.
Enabling High-Quality Printing in Web Applications
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Road Ahead - ArcGIS.
Esri UC 2014 | Technical Workshop | Esri Roads and Highways: Integrating and Developing LRS Business Systems Tom Hill.
ArcGIS Server for Administrators
Esri UC 2014 | Technical Workshop | Python Map Automation – Beyond the Basics of arcpy.mapping Jeff Barrette Jeff Moulds.
Technical Workshops | Esri International User Conference San Diego, California Supporting High-Quality Printing in Web Applications with ArcGIS 10.1 for.
Esri UC 2014 | Technical Workshop | ArcGIS for Windows Mobile - An Introduction Sunee Puckdee, Rui Ge, Morgan Zhang.
Esri UC 2014 | Technical Workshop | Designing and Using Cached Map Services Tom Brenneman & Eric Rodenberg.
Esri UC 2014 | Technical Workshop | Geocoding with ArcGIS Online and ArcGIS Online World Geocoding Service Jeff Rogers and Brad Niemand.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Supporting High-Quality.
Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Building Map Books.
Configuring the ArcGIS for Local Government Election Polling Place and Election Results applications Lindsay Thomas.
Real-Time GIS Use Cases and Implementation Patterns
Esri UC 2014 | Technical Workshop | Data Interoperability: An Introduction Bruce Dale LutzSafe Software.
Esri UC 2014 | Technical Workshop | Creating Geoprocessing Services Kevin Hibma.
Esri UC 2014 | Technical Workshop | Using ArcGIS Online Analysis Widgets Shing Lin, Jerome Yang.
Esri UC 2014 | Technical Workshop | Developing iOS and Mac Apps with ArcGIS Runtime SDK Divesh Goyal & Al Pascual.
Esri UC 2014 | Technical Workshop | Managing and Editing Annotation Wendy Harrison.
RJ Sunderman Product Engineer GeoEvent Extension Product Team Mark Bramer Senior Technical Analyst Esri Professional Services
Esri UC2013. Technical Workshop. Demo Theater 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Introduction to the Esri.
Esri UC 2014 | Technical Workshop | Python: Beyond the Basics David Wynne, Jon Bodamer.
Publishing GIS Services to ArcGIS Server
Esri UC 2014 | Demo Theater | Troubleshooting Replication and Geodata Service Issues Ken Galliher & Ben Lin.
Esri UC 2014 | Technical Workshop | Python Map Automation – Introduction to arcpy.mapping Michael Grossman Jeff Barrette.
Esri UC 2014 | Technical Workshop | ArcGIS API for JavaScript: An Introduction Kelly Hutchins Derek Swingley.
Esri UC 2014 | Technical Workshop | Editing in ArcMap: An Introduction Lisa Stanners, Phil Sanchez.
Esri UC 2014 | Technical Workshop | Managing an Enterprise GIS Project: Key Things You Need Right from the Start Gerry Clancy Glenn Berger.
Esri UC 2014 | Technical Workshop | Administering ArcGIS for Server with Python Jon Bodamer.
Esri UC 2014 | Technical Workshop | Address Maps and Apps for State and Local Government Allison Muise Nikki Golding Scott Oppmann.
Esri UC 2014 | Technical Workshop | Enhancing Web Map Performance in ArcGIS Online Julia Guard & Melanie Summers.
Improving Snow Response Activities with the SnowCOP (Common Operational Picture) Application Lindsay Thomas.
ArcGIS for Server Security: Advanced
Eclipse Vorto Alexander Edelmann.
Export Services Deep Dive
Real-Time GIS Leveraging Stream Services
Accessing Spatial Information from MaineDOT
Site scripts and Site Design
Real-Time GIS: Applying Real-Time Analytics
Natalie Feuerstein Ben Conklin Lyle Wright
Esri Production Mapping: An Introduction
Presentation transcript:

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 ws:// Outputs GeoEvent Processor ArcGIS Server 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 Inputs Outputs GeoEvent Services Esri Gallery Twitter Instagram VMF Cursor-on-Target CAP TAIP (Trimble) NMEA RabbitMQ RAP (Sierra Wireless) GeoMessage ActiveMQ Partner Gallery GNIP Geofeedia OSIsoft ASDI (FAA) exactEarth Zonar NetworkFleet CompassCom Valarm Harris Receive RSS Receive text from a TCP Socket Receive text from a UDP Socket Receive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a Web Socket Receive JSON on external Web Socket ws:// http:// Poll an ArcGIS Server for Features Poll an external website for JSON Out of the Box Watch a folder for new .csv files Watch a folder for new .json files .csv .json 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 Inputs Outputs GeoEvent Services Twitter Esri Gallery ActiveMQ RabbitMQ Hadoop MongoDB CESIUM Partner Add a feature Update a feature Send an email Send an instant message im Send a text message Publish JSON to a Web Socket ws:// Out of the Box Push JSON to an external Web Socket ws:// Publish text on a TCP Socket Publish text on a UDP Socket Publish JSON to an external website http:// Publish on a REST endpoint Write to a .csv file .csv Write to a .json file .json 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 Inputs Outputs GeoEvent Services Your connectors Your connectors Your processors 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? Connectors are used to create Inputs and Outputs, 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

National Weather Service Creating Inputs Configured using Connectors RSS Connector National Weather Service Connectors JSON over REST Receive Text via TCP US Geological Survey GeoEvent Processor Processor Inputs GeoEvent Services Live Traffic Services Storms Earthquakes Outputs Traffic ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors

Connector The connector helps the user by Providing default values 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

Input (Receive text from a TCP Socket) Connector How Does it Help By choosing a Connector, the user implicitly selects components from 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 Start Stop Byte [ ] GeoEvent Services TCP Transport Text Adapter ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors

Exploring a Connector Demo ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors

Transport ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors

Transport Provides a Transport Definition Instantiates new Transports What makes up a Transport? Transport Service Provides a Transport Definition Instantiates new Transports Transport Definition Defines transport metadata and properties Transport Implements transport application logic ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors

Transport Behavior 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. Server calls start() Transport reads properties and starts STARTING Internal error occurs STOPPED STOPPED STARTED 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 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 Provides an Adapter Definition Instantiates new Adapters What makes up an Adapter? Adapter Service Provides an Adapter Definition Instantiates new Adapters Adapter Definition Defines adapter metadata and properties Adapter Implements adapter application logic ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors

Adapter Behavior Adapters are given Adapters are DATA DRIVEN 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

Installing and Using Custom Adapter and Transport 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 GeoEvent Processor Inputs Outputs GeoEvent Services 783 2323 5122 7138 9102 7827 4913 2981 1326 802 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 Inputs Outputs GeoEvent Services Out of the Box Field Enricher Field Reducer Track Gap Detector Incident Detector Field Mapper Geotagger Field Calculator You can create your own processors. Track Idle Detector Esri Gallery ETA Calculator Service Area Buffer Ellipse Range Fan Visibility Query Report Slope Calculator SDK Volume Control ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors

Anatomy of a Processor What makes up a Processor? Processor Service Instantiates processor definition, processor and applies configuration Processor Definition Defines processor metadata, properties and GeoEvent Definition(s) Processor Implements processor lifecycle 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 Identification Name Domain Version Description Step 1: Metadata Identification Name Domain Version Description Label Contact Information 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… ERROR Validation ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors

Property Definitions & Spatial API Demo Property Definitions & Spatial API Rangefan Calculator ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors

Processor Creation Initialization Validation Step 2: Lifecycle ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors

Processor Processing Shutdown Service Start / Stop Step 2: Lifecycle ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors

Processor Service Create new Java class 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

Processor Service and Processor Demo Processor Service and Processor Rangefan Calculator ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors

Putting it Together Rangefan Dashboard Demo ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors

Connectors – Recipe for creating inputs/outputs 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 Developer Guide in the SDK Additional Resources Developer Guide in the SDK Forum http://forums.arcgis.com/forums/257-GeoEvent-Processor Resource Center – Includes Tutorials http://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

Offering ID: 1233 Please fill out the session survey: 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

ArcGIS GeoEvent Processor for Server: Extending with New Processors and Connectors