ArcGIS GeoEvent Extension for Server: Building Real-Time WebApps Ryan Elliott GeoEvent Extension relliott@esri.com Thomas Paschke GeoEvent Extension tpaschke@esri.com
Real-Time GIS
Real-Time GIS Integration and exploitation of streaming data Web Device Desktop 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 Extension ArcGIS Server
Real-Time GIS Web Device Desktop Stream Layer Stream Service GeoEvent Extension ArcGIS Server
Getting Real-Time data into Web Applications
Receiving Real-Time Data Easily integrate real-time streaming data into ArcGIS using an Input Connector GeoEvent Extension Inputs GeoEvent Services Outputs You can create your own connectors. Poll an ArcGIS Server for Features ActiveMQ CompassLDE Out of the Box HTTP REST WS WS Poll an external website for GeoJSON, JSON, or XML Receive Features, GeoJSON, JSON, or XML on a REST endpoint Receive GeoJSON or JSON on a WebSocket Receive RSS Receive Text from a TCP or UDP Socket Subscribe to an external WebSocket for GeoJSON or JSON Esri Gallery CAP Cursor-on-Target Exploitation Support Data GeoMessage Instagram KML Partner Gallery envirocar exactearth AIS FAA (ASDI) GNIP Networkfleet * * * OSIsoft *.csv Watch a Folder for New CSV or JSON Files Kafka * Valarm NMEA 0183 Zonar * RabbitMQ Sierra Wireless (RAP) Trimble (TAIP) Twitter
Receiving Real-Time Data Input Connector = Transport + Adapter GeoEvent Extension GeoEvent Services Inputs Outputs WS Connectors Transport Adapter Receive JSON on a WebSocket WebSocket JSON REST Receive GeoJSON on a REST endpoint HTTP GeoJSON Transports Adapters Esri Gallery ActiveMQ IRC Kafka RabbitMQ Twitter * Feature Service File HTTP HTTP+BasicAuth HTTP+OAuth Feature-JSON GeoJSON JSON RSS Text Esri Gallery CAP Cursor-on-Target GeoMessage Instagram NMEA TCP XML Sierra Wireless (RAP) UDP Trimble (TAIP) WebSocket Twitter VMF
Demo Collecting Real-Time Data International Space Station (ISS)
StreamService Intro
Getting Real-Time data into Web Apps Two patterns Feature layers pull from feature services - Web apps poll to get periodic updates - Must be backed by an enterprise geodatabase (EGDB) Stream layers subscribe to stream services - Web apps subscribe to immediately receive data - Low latency and high throughput ArcGIS Server feature layers Polling (Pull) Your Applications GeoEvent Extension Update a Feature Add a Feature Map Services Feature Services Stream Services EGDB Send Features to a Stream Service Feature Layer Stream Layer
Stream Services The foundation for real-time web apps Are discoverable via services directory - http://<your server>/arcgis/rest/services/iss-stream/streamserver Can be secured just like any other ArcGIS Server service using - ArcGIS internal user store - Active Directory/LDAP - PKI Can be scaled using clustering
Demo Real-Time in the Server Stream Service
Stream Layers Enabling real-time web apps Part of the ArcGIS API for JavaScript Subscribe to stream services - Immediately receive and render data - Configurable symbology with familiar api - Direct access to data on arrival Can filter on - an area of interest - field values Stream services communicate over a web socket - Web socket protocol must be allowed on network - Client must have a browser that supports web sockets - http://caniuse.com/websockets 14 + 10 + 6 + 6 +
Demo Real-Time in Web Maps Stream Services
Stream Layer Deployment Patterns Enabling real-time web apps Configure in a Web Map and - Just share it - Web App Template - Web App Builder Custom JavaScript apps
Building WebApps using the ArcGIS JavaScript API
ArcGIS JavaScript API StreamLayer: API class https://developers.arcgis.com/javascript/jsapi/streamlayer-amd.html
ArcGIS JavaScript API StreamLayer: Constructors
ArcGIS JavaScript API StreamLayer: Methods Add / remove a StreamLayer to / from a Map
ArcGIS JavaScript API StreamLayer: Event handler Subscribe to events of the StreamLayer
ArcGIS JavaScript API StreamLayer: Properties Set a renderer for the StreamLayer SimpleRenderer TemporalRenderer ClassBreaksRenderer UniqueValueRenderer DotDensityRenderer ScaleDependentRenderer
ArcGIS JavaScript API StreamLayer: Properties Set a renderer for the StreamLayer SimpleRenderer TemporalRenderer ClassBreaksRenderer UniqueValueRenderer DotDensityRenderer ScaleDependentRenderer
ArcGIS JavaScript API StreamLayer: Filtering Specify an attribute or spatial filter ` `
ArcGIS JavaScript API StreamLayer: Intercepting Events Intercepting messages received by the StreamLayer `
ArcGIS JavaScript API StreamLayer: Functionalities Store latest Features
Combining real-time with static data ArcGIS Server Stream Services GeoEvent Extension Common Join field Stream Layer Related Features EGDB
ArcGIS JavaScript API StreamLayer: Functionalities Use a related Features Find sample application at: https://github.com/ tompa0003/flightdemo
ArcGIS JavaScript API StreamLayer: Sensor Network Demo Scale and pan dependent WebApp `
Summary Stream Services - enable low-latency immediate delivery of data - are discoverable, securable and scalable Stream Layers - Consume and Display streams of features - Configurable symbology - Filter by Geometry and Attribute
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: - https:// links.esri.com/geoevent-forum
Where to learn more about GeoEvent? Other Workshops ArcGIS GeoEvent Extension for Server: Creating Connectors with the SDK - Tue 4:00pm-5:00pm (Mesquite B) ArcGIS GeoEvent Extension for Server: Creating Processors with the SDK - Tue 5:30pm-6:30pm (Mesquite B) ArcGIS GeoEvent Extension for Server: Best Practices - Wed 2:30pm-3:30pm (Catalina/Madera) ArcGIS GeoEvent Extension for Server: Use Cases for Applying Real-Time Analytics - Thu 10:30am-11:30am (Mojave Learning Center) - Fri 1:00pm-2:00pm (Mesquite GH) ArcGIS GeoEvent Extension for Server: Working with Community Connectors - Thu 5:30pm-6:30pm (Demo Theater 2 - Oasis 1) The Road Ahead: ArcGIS for Server and Portal for ArcGIS - Fri 8:30am-9:30am (Primrose C/D)
Where to learn more about ArcGIS API for JavaScript? Other Workshops ArcGIS API for JavaScript: An Introduction - Wed 10:30-11:30am (Pasadena/Sierra/Ventura) ArcGIS Online and Portal: Developing Custom JavaScript Applications - Wed 1:00-2:00pm (Primrose C/D) ArcGIS Web AppBuilder: Customizing & Extending - Wed 4:00-5:00pm (Primrose B) ArcGIS API for JavaScript: Data Visualization - Thu 9:00-10:00am (Pasadena/Sierra/Ventura) Optimizing Your JavaScript App for Performance - Thu 10:30-11:30am (Primrose B) ArcGIS API for JavaScript: The Road Ahead - Thu 5:30-6:30pm (Primrose B)
Thank you Please fill out the session survey: Paper pick up and put in drop box Online Scan the QR code or visit the Dev Summit web site
Questions / Feedback? To learn more: http://links.esri.com/geoevent https://links.esri.com/geoevent-forum Ryan Elliott GeoEvent Extension relliott@esri.com Thomas Paschke GeoEvent Extension tpaschke@esri.com