Extending ArcGIS Enterprise -...
Transcript of Extending ArcGIS Enterprise -...
![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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/1.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/2.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/3.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/4.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/5.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/6.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/7.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/8.jpg)
“
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/9.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/10.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/11.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/12.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/13.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/14.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/15.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/16.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/17.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/18.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/19.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/20.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/21.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/22.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/23.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/24.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/25.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/26.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/27.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/28.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/29.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/30.jpg)
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 ...](https://reader031.fdocuments.us/reader031/viewer/2022012923/5b3b5c5a7f8b9a4b0a8ed87f/html5/thumbnails/31.jpg)