arcgis geoevent extension for server: best practicesreceive json on a rest endpoint receive features...

81
ArcGIS GeoEvent Extension for Server: Best Practices February 910, 2015 | Washington, DC Federal GIS Conference C. Adam Mollenkopf Product Lead Esri [email protected] @amollenkopf Gary Sheppard Solution Engineer Esri [email protected]

Upload: others

Post on 28-Jun-2020

26 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

ArcGIS GeoEvent Extension for Server:

Best Practices

February 9–10, 2015 | Washington, DC

Federal GIS Conference

C. Adam MollenkopfProduct Lead

Esri

[email protected]

@amollenkopf

Gary SheppardSolution Engineer

Esri

[email protected]

Page 2: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Live Data: Ubiquitous, Plenteous

• Internet of Things (excluding PCs, phones, and tablets)

- 2009: 0.9 billion devices

- 2020: 26 billion devices

- Source: Gartner

• Total amount of digital data created

- 2010: 1.2 zettabytes

- 2013: 4 zettabytes

- 2020: 35 zettabytes

- (Zettabyte = 1 billion terabytes)

- Sources: IDC, VSAT Voice

Page 3: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Real-Time GISIntegration and exploitation of streaming 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

ArcGIS Server

GeoEvent

Extension

DesktopWeb Device

Page 4: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

“I built my own system to handle live data.

It was easy and it’s awesome.”

No one ever

Page 5: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Benefits of GeoEvent Extension

• We’ve built what’s hard about live data handling

• You build what’s specific to you (the easy part!)

• We’ll fully support you

• Let us show you some best practices...

Page 6: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Agenda

• Getting started

• Basic configuration

• Filtering and processing

• Real-time in web maps

• Security

• Performance

• High availability and scalability

Page 7: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Getting Started

Page 8: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

How to Get GeoEvent Extension

• Now (getting started):

- Check to see if your organization already has it

- Or subscribe to Esri Developer Network (EDN)

• Later (when you deploy):

- Purchase it if you don’t have it yet

- It’s an extension to ArcGIS for Server

Page 9: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Installation and Configuration

Page 10: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Installation and Configuration

Page 11: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Best Practices for Getting Started

• GeoEvent tutorials on ArcGIS.com

Page 12: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Better Together

• GeoEvent Extension

• Operations Dashboard

Page 13: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Demo:

• GeoEvent Manager

• Operations Dashboard

Live Data

Page 14: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Basic Configuration

Page 15: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

GeoEvent Definitions

• Schema for GeoEvents

• Reusable

• Create by hand or import from feature service

Page 16: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Best Practices for GeoEvent Definitions

• Import from feature service

- Avoid creating by hand

• Treat as a contract

- Don’t edit unless you absolutely must

Page 17: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Receiving Real-Time DataEasily integrate real-time streaming data into ArcGIS using an Input Connector

You can create

your own

connectors.

GeoEvent Extension

Inp

uts

Ou

tpu

ts

GeoEvent Services

Poll an ArcGIS Server for Features

Poll an external website for JSON

Poll an external website for XML

Receive JSON on a REST endpoint

Receive Features on a REST endpoint

Receive JSON on a WebSocket

Receive RSS

Receive Text from a TCP Socket

Receive Text from a UDP Socket

Receive XML on a REST endpoint

Subscribe to a WebSocket for JSON

Ou

t o

f th

e B

ox

REST

REST

Watch a Folder for New CSV files

Watch a Folder for New JSON files

.csv

.json

HTTP

WS

WS

HTTP

REST

Esri

Gallery

ActiveMQ

CAP

Instagram

GeoMessage

Cursor-on-Target

Trimble (TAIP)

Sierra Wireless (RAP)

RabbitMQ

Twitter

Kafka

NMEA

VMF

*

* Part

ner

Gallery

CompassCom

exactEarth

GNIP

Geofeedia

FAA (ASDI)

Zonar

Valarm

OSIsoft

Harris

NetworkFleet

Page 18: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

CAP

Cursor-on-Target

GeoMessage

Instagram

NMEA

Sierra Wireless (RAP)

Trimble (TAIP)

Twitter

VMF

Es

riG

all

ery

Esri

Gallery ActiveMQ

Kafka

RabbitMQ

Twitter

Receiving Real-Time DataInput Connector = Transport + Adapter

GeoEvent Extension

Inp

uts

Ou

tpu

ts

GeoEvent Services

WebSocket JSON

Connectors Transport Adapter

HTTP XML

JSON

Adapters

JSON (Feature)

RSS

Text

XML

Feature Service

Transports

File

HTTP

HTTP+BasicAuth

HTTP+OAuth

TCP

UDP

WebSocket

Receive JSON on a WebSocket

Receive XML on a REST endpoint

WS

REST

*

*

Page 19: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

You can create

your own

connectors.

Sending Real-Time DataEasily disseminate notifications, alerts, and updates using an Output Connector

GeoEvent Extension

Inp

uts

Ou

tpu

ts

GeoEvent Services

Ou

t o

f th

e B

ox

Add a feature

Publish Text to a UDP Socket

Send a Text Message

Send an Email

Push Text to an External TCP Socket

Push JSON to an External WebSocket

Push JSON to an External Website

Send an Instant Message

Send Features to a Stream Service

Write to a JSON File.json

Update a Feature

Write to a CSV File

ActiveMQ

Esri

Gallery

Hadoop

Kafka

MongoDB

RabbitMQ

CESIUM

Part

ner

.csv

WS

im

HTTP

Twitter

Page 20: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

ActiveMQ

Hadoop

Kafka

MongoDB

RabbitMQ

Twitter

Esri

Gallery

*

*Part

ner

CESIUM

Sending Real-Time DataOutput Connector = Adapter + Transport

GeoEvent Extension

Inp

uts

Ou

tpu

ts

GeoEvent Services

MessageFormatter SMTP

Connectors TransportAdapter

JSON-Feature StreamService

Send an Email

Send Features to a Stream Service

Cache

Adapters

JSON

JSON (Feature)

Message Formatter

RSS

Text

WebSocket

Feature Service

Transports

File

HTTP

HTTP+BasicAuth

HTTP+OAuth

SMS

SMTP

Stream Service

TCP

UDP

WebSocket

XMPP

Page 21: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Best Practices for Adapters and Transports

• Use included adapters and transports if possible

• Use GeoEvent SDK if necessary to build your own (Java)

- If you do, try to make them generic

Page 22: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Best Practices for Connectors

• “Incoming Data Contains GeoEvent Definition”: careful! (Demo)

• Use included connectors when possible

• Configure new connectors if needed (no code)

- Make them generic if possible

• Remember:

- Connector = Adapter + Transport

• Try solutions-geoevent-java repository

Page 23: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Filtering and Processing

Page 24: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Filtering GeoEvents

• Attribute filters

• Spatial filters (GeoFences)

• GeoEvent property filters (e.g. $DEFINITION_NAME and $RECEIVED_TIME)

Page 25: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Applying real-time analyticsGeoEvent Processing

You can create

your own

processors.

• You can perform continuous analytics on GeoEvents as they are received using a

processor.

GeoEvent Extension

Inp

uts

Ou

tpu

ts

GeoEvent Services

Ou

t o

f th

e B

ox

Field Calculator

Field Enricher

IncidentDetector

Track Gap Detector

GeoTagger

Field Reducer

Field Mapper

New

at

Arc

GIS

10.3

Buffer Creator

Convex Hull Creator

Projector

Simplifier

Intersector

Envelope Creator

Difference Creator

Symmetric Difference

Union Creator

Add XYZ

Esri

Gallery

Bearing

Ellipse

ETA Calculator

Field Group

GeoNames Lookup

Motion Calculator

Reverse Geocoder

Service Area Creator

Symbol Lookup

Track Idle Detector

Unit Conversion

Visibility

Volume Control

Range Fan Query Report

Page 26: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Best practice for processing GeoEvents

• Use Field Reducer to avoid writing null values with Field Mapper

Page 27: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Real-Time in Web Maps

Page 28: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Real-Time GIS

ArcGIS Server

GeoEvent

Extension

DesktopWeb Device

Page 29: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Real-Time GIS

ArcGIS Server

GeoEvent

Extension

DesktopWeb Device

Stream Service

Stream Layer

Page 30: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Two patterns

GeoEvent Extension

ArcGIS Server

Your

Applications

Stream Layer

Map Services

Feature Services

Feature Layer

feature layers

Update a Feature

Add a Feature

EGDB

Polling

(Pull)

Stream Services

Getting Real-Time data into Web Apps

• 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

Send Features to a Stream Service

Page 31: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Stream Services

Real-Time in Web Maps

Demo

Page 32: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Real-Time GIS

ArcGIS Server

GeoEvent

Extension

DesktopWeb Device

Stream Layer support

coming later in 2015

Stream Service

Stream Layer

Page 33: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Security

Page 34: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Security @ 10.3Integrated security with ArcGIS for Server and Portal for ArcGIS

• GeoEvent Manager

- Uses the same credentials as ArcGIS for Server or Portal for ArcGIS

- Recognizes Server/Portal roles – Administrators and Publishers

• SSL- GeoEvent utilizes SSL certificates that have been registered for ArcGIS for Server / Portal for ArcGIS

Page 35: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Performance

Page 36: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Throughput Performance @ 10.3Two times more throughput than 10.2.2

0

500

1000

1500

2000

2500

3000

3500

Event Throughput

10.2.2 10.3

Thro

ughput =

Pro

cessed #

Events

per

Second

Velocity = # of produced Events per Second

3,000

1,500

As captured on primary benchmarking machine using ArcGIS 10.3

Two times more

throughput than 10.2.2

Page 37: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Geofencing Performance @ 10.3US States benchmark – 51 geofences with 1,617 vertices on average (78 min / 21,970 max)

Page 38: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Geofencing Performance @ 10.3US Congressional Districts benchmark – 436 geofences with 512 vertices on average (24 min / 7,285 max)

Page 39: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Geofencing Performance @ 10.3US Counties benchmark = 3,143 geofences with 166 vertices on average (9 min / 838 max)

Page 40: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

0.00

500.00

1000.00

1500.00

2000.00

2500.00

3000.00

250 500 750 1000 1250 1500 1750 2000 2250 2500 2750 3000

US States51 Geofences

1,617 vertices on average (78 min and 21,970 max)

Disjoint Any Inside Any Intersect Any Outside Any Touches Any Within Any

Geofencing Performance @ 10.3US States benchmark

2,4992,245

Operator

10.3

events

per second

10.2.2

events

per second

Disjoint Any 2,499

Inside Any 2,488 150

Intersect Any 2,486

Within Any 2,482

Touches Any 2,248

Outside Any 2,245

16 times faster

than 10.2.2

150T

hro

ughput =

Pro

cessed #

Events

per

Second

Velocity = # of produced events per second

As captured on primary benchmarking machine using ArcGIS 10.3

Page 41: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

0.00

500.00

1000.00

1500.00

2000.00

2500.00

3000.00

250 500 750 1000 1250 1500 1750 2000 2250 2500 2750 3000

US Congressional Districts436 Geofences

512 vertices on average (24 min and 7,285 max)

Disjoint Any Inside Any Intersect Any Outside Any Touches Any Within Any

2,249

Geofencing Performance @ 10.3US Congressional Districts benchmark

As captured on primary benchmarking machine using ArcGIS 10.3

note: this scenario was not benchmarked at 10.2.2

Velocity = # of produced events per second

Thro

ughput =

Pro

cessed #

Events

per

Second

Operator

10.3

events

per second

Disjoint Any 2,249

Outside Any 2,248

Intersect Any 2,248

Touches Any 2,244

Within Any 2,244

Inside Any 2,244

Page 42: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

0.00

500.00

1000.00

1500.00

2000.00

2500.00

3000.00

250 500 750 1000 1250 1500 1750 2000 2250 2500 2750 3000

US Counties3,143 Geofences

166 vertices on average (9 min and 838 max)

Disjoint Any Inside Any Intersect Any Outside Any Touches Any Within Any

1,7401,997

Geofencing Performance @ 10.3US Counties benchmark

17 times faster

than 10.2.2

130

Velocity = # of produced events per second

Thro

ughput =

Pro

cessed #

Events

per

Second

Operator

10.3

events

per second

10.2.2

events

per second

Disjoint Any 1,997

Intersect Any 1,996

Outside Any 1,992

Touches Any 1,747

Inside Any 1,742 130

Within Any 1,740

As captured on primary benchmarking machine using ArcGIS 10.3

Page 43: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

PerformancePrimary factors to consider

• Operating environment

- Virtual Machines – beware! resources need to be shared in an effective way, like EC2.

- Bare-Metal machines – have dedicated resources which are much more deterministic.

• Network

- Speed (Mbps) – the faster the better.

• RAM

- size (GB) – minimum of 8GB is required at 10.3.

- type (DDR2, DDR3) – minimum of DDR3 is recommended.

- clock speed (MHz) – the faster the better.

- transfer rate (Mbps) – the faster the better.

• Processor

- speed (GHz) – the faster the better.

- # of cores – the more the better.

Page 44: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

GeoEvent Extension

High Availability & Scalability

Page 45: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

High Availability & ScalabilityClustering

• Clusters administered via ArcGIS Server Manager

- Site, Cluster(s), Machines

• Machines in a cluster share configuration

- automatic provisioning upon joining a cluster

- including custom components

• High Availability is achievable out-of-the-box

• Scale-out by adding machines to a cluster

Page 46: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

High AvailabilitySite(s), cluster(s), and machines

Page 47: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

High AvailabilityDistributed configuration store

Page 48: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

High AvailabilityDistributed configuration store

Page 49: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

High AvailabilityDistributed configuration store

Page 50: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

High AvailabilityDistributed configuration store

Page 51: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

High AvailabilityDistributed configuration store

Page 52: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

High AvailabilityDistributed configuration store

Page 53: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

High AvailabilityDistributed configuration store

Page 54: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

High AvailabilityDistributed configuration store

Page 55: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

High AvailabilityDistributed configuration store

Page 56: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

ScalabilityOutput transports

Page 57: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

ScalabilityInput transports

Page 58: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

ScalabilityInput transports that are automatically load balanced

Page 59: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

ScalabilityInputs transports that require you to bring your own load balancer

Page 60: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

ScalabilityInputs and distributed stream processing

a1

a1

a1 a1 a1

a1

c3 c3

c3

c3

c3

c3b2

b2

b2

b2

b2 b2

a1

a1

Page 61: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

High AvailabilityInputs and distributed stream processing

a1

c3

b2

Page 62: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

High AvailabilityInputs and distributed stream processing

c3

c3

c3

c3 c3

c3

b2

b2 b2 b2

b2

b2

Page 63: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

ScalabilityPinned inputs

Page 64: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

ScalabilityPinned inputs and distributed stream processing

a1b2

a1 a1

a1

b2 b2 b2c3

c3 c3

c3

a1

c3

b2

a1

Page 65: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

High AvailabilityPinned inputs and distributed stream processing

a1

c3

b2

Page 66: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

High AvailabilityPinned inputs and distributed stream processing

a1

a1 a1

a1

b2b2

b2

b2

c3

c3 c3

c3

a1c3

b2

Page 67: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

ScalabilityClustering for increased throughput

• Clusters administered via ArcGIS Server Manager

- Site, Cluster(s), Machines

• Scale-out by adding machines to a cluster

0

1000

2000

3000

4000

5000

6000

1000 2000 3000 4000 5000 6000 7000

Event Throughput with Clustering

1 machine 2 machines 3 machines

Thro

ughput =

Pro

cessed #

Events

per

Second

Velocity = # of produced Events per Second

3,900

As captured on 10.3 benchmarking cluster using ArcGIS 10.3

3,000

4,800

Page 68: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Stream Services

High Availability & Scalability

Page 69: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

ScalabilityScaling out Stream Services to support an increased # of concurrent users

Page 70: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

High AvailabilityStream Services concurrent user failover

Page 71: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

High AvailabilityStream Services concurrent user failover

Page 72: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

High AvailabilityStream Services concurrent user failover

Page 73: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

ScalabilityScaling out Stream Services to support an increased # of concurrent users with a reverse proxy

Page 74: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

High AvailabilityStream Services concurrent user failover with a reverse proxy

Page 75: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

High AvailabilityStream Services concurrent user failover with a reverse proxy

Page 76: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

GeoEvent Extension: Best PracticesSummary

• ArcGIS is a dynamic platform that enables continuous analytics and real-time visualization

for better understanding of our world.

• The ArcGIS GeoEvent Extension for Server allows you to:

- know what is happening, as it happens

- react and make smarter decisions faster

- be notified when interesting events occur

Page 77: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Where to learn more?Other Workshops

• Configuring Real-Time Web Applications- Mon 3:00pm-4:00pm (Hall D, Theater 3)

- Tue 11:00am-12:00pm (Room 101)

• ArcGIS GeoEvent Extension for Server: Best Practices- Tue 1:30pm-2:30pm (Room 101)

• ArcGIS GeoEvent Extension for Server: Applying Real-Time Analytics- Tue 2:45pm-3:45pm (Room 101)

• Web AppBuilder for ArcGIS: An Overview- Mon 3:00pm-4:00pm (Room 103B)

- Tue 5:15pm-6:15pm (Room 207B)

• Operations Dashboard for ArcGIS: An Overview- Tue 11:00am-12:00pm (Room 207B)

• ArcGIS GeoEvent Extension for Server: Building Real-Time Web Applications- Wed 1:00pm-1:45pm (Room 209A)

Page 78: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

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://geonet.esri.com/community/gis/enterprise-gis/geoevent

Page 79: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Don’t forget to complete

a session evaluation form!

February 9–10, 2015 | Washington, DC

Federal GIS Conference

Page 80: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Interested in diving

deeper into Esri technology?

Add a day to your Fed GIS experience and register to attend the Esri

DevSummit Washington DC. Stop by the registration counter to sign up.

February 9–10, 2015 | Washington, DC

Federal GIS Conference

Page 81: ArcGIS GeoEvent Extension for Server: Best PracticesReceive JSON on a REST endpoint Receive Features on a REST endpoint Receive JSON on a WebSocket Receive RSS Receive Text from a

Questions / Feedback?

http://links.esri.com/geoevent

https://geonet.esri.com/community/gis/enterprise-gis/geoevent

To learn more:

C. Adam MollenkopfProduct Lead

Esri

[email protected]

@amollenkopf

Gary SheppardSolution Engineer

Esri, Federal Office

[email protected]