Presentation is loading. Please wait.

Presentation is loading. Please wait.

Extending ArcGIS for Server

Similar presentations


Presentation on theme: "Extending ArcGIS for Server"— Presentation transcript:

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

2 Server Object Extensions
Agenda Introduction Server Object Extensions Server Object Interceptors

3 THE BIG WEBGIS PICTURE Introduction

4 APPS Desktop Web Device SHARING API Portal SERVICES DATA GIS Servers

5 CREATE Desktop Web Device API CUSTOMIZE Portal EXTEND GIS Servers

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

7

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

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

10 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…

11 Extending GIS services
Tools, SOE and SOI

12 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

13 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

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

15 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

16 Server Object Extensions
Adds NEW GIS capability to server

17 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

18 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!

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

20 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!

21 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!

22 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

23 Server Object Interceptors
New at Extends EXISTING capabilities

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

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

26 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!

27 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!

28 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!

29 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

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

31 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

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

33 DEMOs SOI Chaining Akshay Maloo

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

35 Thank you Please fill out the session surveys

36


Download ppt "Extending ArcGIS for Server"

Similar presentations


Ads by Google