Extending ArcGIS for Server

Slides:



Advertisements
Similar presentations
Designing, Deploying and Managing Workflow in SharePoint Sites Steve Heaney Product Development Manager OBS
Advertisements

Web Applications Development Using Coldbox Platform Eddie Johnston.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
ArcGIS Data Reviewer: An Introduction
Web Editing in ArcGIS for Server
Introduction to ESRI Add-Ins
Technical Workshops | Esri International User Conference San Diego, California Customizing ArcPad solutions Marika Vertzonis, Gareth Walters, Stephen Quan.
Understanding and Managing WebSphere V5
Esri International User Conference | San Diego, CA Technical Workshops | ArcGIS Runtime Euan Cameron Mary Harvey Ralf Gottschalk Road Ahead.
Sage CRM v7.2 Developers Course An Introduction to the Developer Program.
Esri International User Conference | San Diego, CA Technical Workshops | ArcGIS Server for the Java Developer Dan Ajit Dharmik Eric Bader.
Sharing Geographic Content
Technical Workshops | Esri International User Conference San Diego, California ArcGIS Viewer for Flex – Advanced Topics Lloyd Heberlie Björn Svensson July.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
ArcGIS Workflow Manager An Introduction
Best Design Practices Using the Qt Runtime SDK (using QML)
Introduction to ArcGIS API for JavaScript
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
Python: An Introduction
ArcGIS for Server: An Introduction
ArcGIS for Server: Reference Implementations
9. Introduction to ArcObjects Most GIS analysis carried out within a GIS consists of a labor- intensive sequence of steps. Automating a GIS makes it possible.
material assembled from the web pages at
Geospatially Enabling the Intelligence Collector David Attaway Natalie Feuerstein Phil Suarez.
Creating Apps Using ArcGIS Online Templates
Achieving Interoperability using the ArcGIS Platform
Publishing to ArcGIS for Server
Data Interoperability Basics Bruce Harold & Dale Lutz.
Enabling High-Quality Printing in Web Applications
Leveraging ArcGIS Online Elevation and Hydrology Services
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Road Ahead - ArcGIS.
Esri UC 2014 | Technical Workshop | Esri Roads and Highways: Integrating and Developing LRS Business Systems Tom Hill.
Portal for ArcGIS An Introduction
ArcGIS Data Reviewer: An Introduction
Getting the most out of ArcGIS Web Application Templates
Introduction to Web AppBuilder for ArcGIS: JavaScript Apps Made Easy
Technical Workshops | Esri International User Conference San Diego, California Creating Geoprocessing Services Kevin Hibma, Scott Murray July 25, 2012.
ArcGIS Server for Administrators
Esri Production Mapping: Automate Map Production With ArcGIS Workflow Manager Joe Sheffield.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Esri UC 2014 | Technical Workshop | ArcGIS Online: An Introduction and Overview Ray Bunn Andrew Hendrickson Tim Oliver, Horry County Paul Ross.
Extend the Operations Dashboard with Custom Widgets (and more)
Esri UC 2014 | Technical Workshop | Operations Dashboard for ArcGIS: Extending the Functionality Jay Chen Kylie Donia Tif Pun.
Working with Feature Services Gary MacDougall Russell Brennan.
Getting the most out of ArcMap Jack Horton & Jorge Ruiz-Valdepeña.
Esri UC 2014 | Technical Workshop | Creating Geoprocessing Services Kevin Hibma.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Customizing the Operations.
Extending the Operations Dashboard
ArcGIS Online: Sharing your Content Ben Ramseth John Thieling.
Advanced workflows for creating 3D Web Scenes in ArcGIS Online Javier Gutierrez and Janett Baresel.
Developing Cross Platform Apps with the ArcGIS Runtime SDK for Qt
Publishing GIS Services to ArcGIS Server
Python: Building Geoprocessing Tools David Wynne, Ghislain Prince.
ArcGIS Workflow Manager: Integrating Geoprocessing into Your Business Processes Nishi Mishra.
Workflow in Microsoft Office SharePoint Server Jessica Gruber Consultant Microsoft Corporation.
Sharing Maps and Layers to Portal for ArcGIS Melanie Summers, Tom Shippee, Ty Fitzpatrick.
The Holmes Platform and Applications
ArcGIS Workflow Manager: Advanced Workflows and Concepts
App Configuration, Customization or Development
Working with Feature Layers
PYTHON: AN INTRODUCTION
ArcGIS for Server: What’s New
Shankar Chandrasekaran
Web AppBuilder for ArcGIS
Tile layers, map image layers, and on-premises Web GIS
Network Analyst – Automating Workflows with Geoprocessing
ArcGIS Online – The Road Ahead
Publishing image services in ArcGIS
Introduction to Portal for ArcGIS
ArcGIS Pro: An Introduction Overview
Presentation transcript:

Extending ArcGIS for Server Akshay Maloo Shreyas Shinde with Rüdiger Gartmann from con•terra

Server Object Extensions Agenda Introduction Server Object Extensions Server Object Interceptors

THE BIG WEBGIS PICTURE Introduction

APPS Desktop Web Device SHARING API Portal SERVICES DATA GIS Servers

CREATE Desktop Web Device API CUSTOMIZE Portal EXTEND GIS Servers

CLIENT-SIDE SERVER-SIDE WEB & MOBILE APPLICATIONS CLIENT-SIDE Desktop Web Device TEMPLATES & WIDGETS Portal SERVER-SIDE GIS Servers

CLIENT-SIDE SERVER-SIDE WEB & MOBILE APPLICATIONS CLIENT-SIDE Desktop Web Device TEMPLATES & WIDGETS Portal SERVER-SIDE GIS Servers

CLIENT-SIDE SERVER-SIDE Desktop Web Device Portal GP TOOLS, SOE & SOI SERVER-SIDE GIS Servers

Other sessions presenting client-side extensions ArcGIS Runtime Developing Cross Platform Apps with the ArcGIS Runtime SDK for Qt Developing iOS and Mac Apps with the ArcGIS Runtime SDK AppStudio for ArcGIS Web AppBuilder Introduction to the Web AppBuilder for ArcGIS: JavaScript apps made easy Templates Getting the most out of ArcGIS Web App Templates Customizing and extending ArcGIS Web App Templates And many more…

Extending GIS services Tools, SOE and SOI

Why extend GIS services? Extensions run inside the server framework Security Scalability HA Custom business logic Push round-trip heavy logic to server-side Full access to Esri’s GIS component library (arcobjects) to implement core GIS functionality

ANALYSIS or DATA MANAGEMENT EXTEND EXISTING SERVICES Server Object Interceptors Extension types Geo-processing Tools Server Object Extensions ANALYSIS or DATA MANAGEMENT ADD NEW GIS CAPABILITIES

Geoprocessing tools Analysis Data management Back office jobs .NET, Java, Python IDE integration Asynchronous, scalable framework

Geoprocessing tools – how do you develop it? Implement IGPFunction IGPFunctionFactory Package the implementation Deploy the packaged implementation to Desktop Create a new empty toolbox and add tool to this toolbox Publishing tool as Geoprocessing service Copy dependent libraries to server Once the service is published to server, only implementation need to be updated

Server Object Extensions Adds NEW GIS capability to server

Server object extension (SOE) – internals GIS Server Well defined API Map Services SOE New API APPS CUSTOM APPS Image Services SOE Server Object Extensions - New APIs for your custom apps

Advanced symbology and rendering Data extraction SOE – use cases Advanced editing Advanced symbology and rendering Data extraction Advanced raster functions Raster management Great way to reduce round-trips in your client apps!

Process of extending GIS services ArcGIS for Server SDK IDE IMPLEMENT INTERFACES PACKAGE DEPLOY TEST DEBUG Coding up your business logic

Package the implementation (.soe) Developing an SOE .NET or Java (Java 7) Implement IServerObjectExtension IRESTRequestHandler or IRequestHandler (Soap/binary) Package the implementation (.soe) Zip file Esri-provided tooling generated Contains assemblies or jars Some metadata Deploy to GIS Server through Manager application Enable SOE for a service SDK contains base classes that already implement these interfaces for you!

SOE – interfaces to implement TIP: This should execute very quickly! Name Functions Purpose IServerObjectExtension init(…) shutdown() Initialization of SOE Cleanup IRESTRequestHandler getSchema() handleRESTRequest(…) Define the API as resources and operations Handle all REST resources and operation requests IRequestHandler2 handleStringRequest(…) handleBinaryRequest(…) Handle SOAP requests Handle “binary” requests from ArcMap Most server object extensions are REST API based!

SOE – tips and best practices… Always start with the template in your IDE Boiler-plate code Easier to implement REST API Services directory view is auto-generated Custom property configuration pages Follow the debugging guide in server help

Server Object Interceptors New at 10.3.1 Extends EXISTING capabilities

Server object interceptors (SOI) – internals GIS Server Well defined API Map Services SOI APPS Image Services SOI Existing applications continue to work!

Intercepts requests and responses! SOI – execution model GIS Server ARCSOC APPS API HANDLER SOI MAP SERVICE Intercepts requests and responses! EXTERNAL RULE DATABASE

Enforce business rules Add quality assurance SOI – use cases Advanced security Call into external systems Enforce business rules Add quality assurance Trigger back-office workflows upon receiving updates Custom filtering logic for existing apps!

Decide on interceptors for Map or Image services .NET or Java (Java 7) Developing an SOI Decide on interceptors for Map or Image services .NET or Java (Java 7) Implement IServerObjectExtension IRESTRequestHandler IRequestHandler IWebRequestHandler Package the implementation (.soe) Deploy to GIS Server through Manager application Enable SOI for a service SDK contains base classes that already implement these interfaces for you!

SOI – interfaces Name Functions Purpose IServerObjectExtension init(…) shutdown() Initialization of SOE Cleanup IRESTRequestHandler getSchema() handleRESTRequest(…) Define the API as resources and operations Handle all REST resources and operation requests IRequestHandler2 handleStringRequest(…) handleBinaryRequest(…) Handle SOAP requests Handle “binary” requests from ArcMap IWebRequestHandler handleStringWebRequest(…) Handle OGC requests Interfaces for extensions and interceptors are the same but behavior/logic would have to be different!

SOI – tips and best practices… Always start with the template in your IDE Boiler-plate code Default delegation based behavior Utility functions API cannot be changed For security interceptors: Block all operations first Iteratively allow operations and resources Does not intercept tiled map services and hosted feature services

DEMOs From simple to smart… Akshay Maloo Rüdiger Gartmann

SOI chaining (in the next release) Chain multiple SOIs together Allows for in-house and third party interceptors SOIs can be repeated Particularly useful for security specific SOIs

SOI chaining – execution model GIS Server ARCSOC APPS API HANDLER SOI 1 SOI 2 MAP SERVICE EXTERNAL RULE DATABASE EXTERNAL DATABASE

DEMOs SOI Chaining Akshay Maloo

Server Object Interceptors In summary… Server Object Interceptors New at 10.3.1 Change the behavior of existing GIS services Server Object Extensions Add new GIS functionality (API)

Thank you Please fill out the session surveys