Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European...

35
Extending ArcGIS Enterprise Cédric Despierre-Corporon | Markus Schlager

Transcript of Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European...

Page 1: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Extending ArcGIS EnterpriseCédric Despierre-Corporon | Markus Schlager

Page 2: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Thank You to Our Sponsors

Page 3: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Agenda

• Introduction- Extending ArcGIS Enterprise

- ArcGIS Enterprise SDK

• Server Object Extensions- Demo

• Server Object Interceptors- Demo

• Q&A

Page 4: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

ArcGIS Enterprise

• Powerful built-in mapping and analytics

• Configurable tools and templates

+=ArcGIS

Enterprise

Portal for ArcGIS

ArcGIS Server

ArcGIS Data Store

+

ArcGIS Web Adaptor

+

Page 5: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Why?Motivations for extending ArcGIS Enterprise

• Existing behavior is not adequate

• Custom business logic

• Security

• Integrating disparate systems

Page 6: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Extension Options

Custom Applications

Geoprocessing Services

Server Object Extensions

Image Services

SOE

Server Object Interceptors

Map ServicesSOI

Page 7: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Custom ApplicationsExtension Options

• Specific set of Business Logic

• Performance Client-Side

• (Mostly) Specific to one platform

• Lifecycle/Code Management

Page 8: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Geoprocessing ServicesExtension Options

• “Bread and Butter” of GIS Analysts

• Full GIS library

• Python | ArcObjects

• Asynchronous

Page 9: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Server Object Extensions and Server Object InterceptorsExtension Options

• SOE adds functions to services

• SOI modifies/extends service functions

Server Object Extensions

Image Services

Server Object Interceptors

Map ServicesSOI

Page 10: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Server Object Extensions and Server Object InterceptorsExtension Options

Co

mm

on

Service : Object = 1 : n

No worries about Authentication and Authorization

No additional Hardware needed

Enhance Map, Feature and Image Services

Server-Side Code | .NET or Java

ArcObjects or ArcGIS Enterprise SDK

Page 11: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

ArcGIS Enterprise SDK

• ArcGIS Enterprise SDK : new SDK available since 10.6.1

• For “server side” extensions : SOE and SOI

• For extending services published from ArcGIS Pro

• In .NET and Java

• Similar API to ArcObjects SDK, not the same.

• ArcObjects extensions can be migrated to use the Enterprise SDK

• Enterprise SDK and ArcObjects SDK can coexist

Page 12: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

ArcGIS Enterprise SDK

• ArcObjects is a huge SDK- Very large scope

- Compatibility with old versions : lot of interfaces

- Not that simple to get into

• Enterprise SDK aim to be easier to get started- While keeping the core function used by SOE and SOI

- Data access : Geometry and Geodatabase

- Map service manipulation

- Extending ArcGIS Server

Page 13: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Server Object Extensions

Page 14: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Server Object ExtensionsThe Basics

Spec

ific Editing | Data Processing

Image Functions | Network Analysis

Custom API

Extends Service Functionality

Co

mm

on

Service : Object = 1 : n

No worries about Authentication and Authorization

No additional Hardware needed

Enhance Map, Feature and Image Services

ArcGIS Enterprise SDK or ArcObjects

Server-Side Code | .NET or Java

Page 15: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Server Object ExtensionsUse Cases

Editing Data Processing

Image Functions Network Analysis

Page 16: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Server Object ExtensionsArchitecture

GIS Server

Map Services

Image Services

Well-defined API

SOE

SOE

Custom API

Custom applicationsOut-of-the-box applications

Page 17: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Server Object ExtensionsDevelopment Process

Install SDK Start with samples/templates

Add logic and build .soe file

Register via Manager Configure extension on a service Debug

Page 18: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Server Object ExtensionsImplementation Notes

Page 19: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Server Object Extension

Demo ImageServices SOE

Page 20: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

External data API SOE

• We have a super real time parking status solution

• It’s not available with an API

• Information is only in a specific Database

• The database is not spatial- But we have the long/lat of the sensors !

Let’s use the SOE to make our own REST API !

Page 21: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Server Object Interceptors

Page 22: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Server Object InterceptorsThe Basics

Spec

ific Security & Access Control | Data Enrichment

Notifications | Auditing & Metering

No change in API

Intercepts/Filters Service Requests

Co

mm

on

Service : Object = 1 : n

No worries about Authentication and Authorization

No additional Hardware needed

Enhance Map, Feature and Image Services

ArcGIS Enterprise SDK or ArcObjects

Server-Side Code | .NET or Java

Page 23: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Server Object InterceptorsUse Cases

Security & Access Control Data Enrichment

Notifications Auditing & Metering

Page 24: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

GIS Server

Server Object InterceptorsArchitecture

Map Services

Image Services

Well-defined API

Out-of-the-box applications

SOI

SOI

Page 25: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Server Object InterceptorsCall Sequence

Out-of-the-box applicationsGIS Server

ArcSOC

Map Services

WebHandler SOI 1 SOI 2

Page 26: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Server Object InterceptorsImplementation Notes

Page 27: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Server Object Interceptor

Demo

https://github.com/ceddc/devsummit-berlin-2018-SOI

Page 28: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Server side cluster SOI : how to ?

• Intercept the export map request

• Parse the parameters to get the Extent

• Request the database to get all points for the first layer in the Extent

• Cluster them !- Every point in 80 px radius get clustered

- Put the cluster center at the average coordinates

• Create a new image of the clusters

• Send the new image instead of the normal one.

https://github.com/ceddc/devsummit-berlin-2018-SOI

Page 29: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Extending ArcGIS Enterprise

Best Practices and Tips

Page 30: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Best Practices and TipsTroubleshooting

• Logging- Access to Server Logger in your code

- Use various log levels (SEVERE, WARNING, INFO, …)

- Query logs using ArcGIS Server Manager or the Admin API

- Add logs in the initialization routines!

• Don’t forget to package your dependencies!

• Be aware of service startup time if initialization takes longer

Page 31: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Best Practices and TipsDebugging

• Hint: Process command line contains the name of the service- Example: -Dservice=parcels.MapServer

• .NET- Attach Visual Studio to running ArcSOC process

• Java- Using ArcGIS Server Manager, enable remote debugging and configure port range

- Configure IDE for remote debugging

- Attach IDE to running ArcSOC process on a specific port

Page 32: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Best Practices and TipsKey Takeaways

Samples & templatesUse GP services for long running tasks

Don’t change the API in an SOI

Implement security carefullyNo SOIs for hosted feature or tile requests yet

May need to increase ArcSOC heap size for intensive extensions

Page 33: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Automate and Configure ArcGIS Enterprise

Questions?

Page 34: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,

Please Take Our Survey!

Download the Esri Events app and go to DevSummit

Select the session you attended

Scroll down to the “Feedback” section

Complete Answers,add a Comment,

and Select “Submit”

Page 35: Extending ArcGIS Enterprise...Extending ArcGIS Enterprise Author Esri Subject 2018 Esri European Developer Summit Presentation Keywords 2018 Esri European Developer Summit – Presentation,