31
Extending ArcGIS Enterprise Bill Major

Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Embed Size (px)

Citation preview

Page 1: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Extending ArcGIS EnterpriseBill Major

Page 2: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Agenda

• Introduction

• Server Object Extensions

- Demo

• Server Object Interceptors

- Demo

• Q&A

Page 3: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Introduction

Page 4: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

ArcGIS Enterprise

• Powerful built-in mapping and analytics

• Configurable tools and templates

• Extensible APIs and building blocks

ArcGIS

Page 5: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Why?Motivations for extending ArcGIS Enterprise

• Existing behavior is not adequate

• Custom business logic

• Security

• Integrating disparate systems

Page 6: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Options

Custom

applications

Geoprocessing

services

Server object

extensions

Image

Services

SOE

Server object

interceptors

Map

ServicesSOI

Page 7: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Options

Custom applications

Business logic coded in your

application

• Performance

• Reusability

• Scalability

Server Extensibility

Page 8: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Geoprocessingservices

• Full GIS library

• Asynchronous

• Python

Options

Page 9: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Server Object Extensions and InterceptorsEssentials

• Allows you to enhance capabilities of Map, Feature and Image services

• Services have to be published from ArcMap

• Extensions and Interceptors are not yet supported on services published from ArcGIS

Pro**

• Must have ArcObjects development experience

• Java or .NET

Page 10: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Server Object Extensions

Page 11: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Server Object ExtensionsBasics

• Server-side code

• Attaches to Map or Image services

• Custom API

- Needs custom applications

• Managed lifecycle

- No additional hardware needed to deploy

- No need to worry about authentication and authorization

- One instance of your object per instance of the service

Page 12: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Use cases

Editing Data Processing

Image Functions Network Analysis

Page 13: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

GIS Server

Map

Services

Image

Services

Well-defined API

SOE

SOE

Custom API

Out-of-box applications Custom applications

Architecture

Page 14: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Development process

Install SDKStart with

samples/templatesAdd logic and build

.soe file

Register via ManagerConfigure extension

on a serviceDebug

Page 15: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Implementation notes

Page 16: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

DemoServer Object Extensions

Image

ServicesSOE

Page 17: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Server Object Interceptors

Page 18: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Server Object InterceptorsBasics

• Server-side code

• Filters requests to Map or Image services

• No change in API

- Existing applications are unaware

• Two or more can form an ordered chain

• Managed lifecycle

- No additional hardware needed to deploy

- No need to worry about authentication and authorization

Page 19: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Use cases

Security & Access Control

Data Enrichment

NotificationsAuditing & Metering

Page 20: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

GIS Server

Map

Services

Image

Services

Well-defined API

SOI

SOI

Out-of-box applications

Architecture

Page 21: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

GIS ServerOut-of-box applications

ArcSOC

Map

Services

Web

HandlerSOI 1 SOI 2

Call sequence

Page 22: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Implementation notes

Page 23: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

DemoServer Object Interceptors

Page 24: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Road ahead

Page 25: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Coming to a release near you…

• New Enterprise SDK for Java and .NET developers

• Extend and intercept ArcGIS Pro-based Map, Feature and Image services

• Intercept calls to Utility Networks

Page 26: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Best practices and tips

Page 27: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Troubleshooting

• Logging

- Access to server logger in your code

- Messages can be logged at various levels (SEVERE, WARNING, INFO, …)

- You can query logs using ArcGIS Server Manager or Administrator Directory (Admin API)

- Always good to add logs in the initialization routines

• Make sure to package your dependencies!

• Be aware of service startup time (default: 5mins) if initialization takes longer

Page 28: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Debugging

• 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 29: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Samples & templatesAutomate development workflows using Admin API

Use GP services for long running tasks

Don’t change the API in an SOI

Implement security carefullyNo SOIs for hosted feature or tile requests

May need to increase ArcSOC heap size for intensive

extensions

Always…

Page 30: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API

Download the Esri Events

app and find your eventSelect the session

you attended

Scroll down to find the

feedback section

Complete answers

and select “Submit”

Please Take Our Survey in the Esri Events App

Page 31: Extending ArcGIS Enterprise - proceedings.esri.comproceedings.esri.com/library/userconf/devsummit-dc18/papers/dev-dc... · • Attaches to Map or Image services • Custom API