1 / 35

Extending ArcGIS for Server

Extending ArcGIS for Server. Akshay Maloo Shreyas Shinde with Rüdiger Gartmann from con•terra. Agenda. Introduction. Server Object Extensions. Server Object Interceptors. THE BIG WEBGIS PICTURE. Introduction. APPS. Web. Device. Desktop. SHARING. API. Portal. SERVICES. DATA.

Download Presentation

Extending ArcGIS for Server

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Agenda Introduction Server Object Extensions Server Object Interceptors

  3. THE BIG WEBGIS PICTURE Introduction

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

  5. CREATE Web Device Desktop API CUSTOMIZE Portal EXTEND GIS Servers

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

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

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

  9. Other sessions presenting client-side extensions And many more… • 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

  10. Extending GIS services Tools, SOE and SOI

  11. 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

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

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

  14. Server Object Extensions Adds NEW GIS capability to server

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

  16. 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!

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

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

  19. TIP: This should execute very quickly! SOE – interfaces to implement Most server object extensions are REST API based!

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

  21. Server Object Interceptors New at 10.3.1 Extends EXISTING capabilities

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

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

  24. 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!

  25. 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!

  26. SOI – interfaces Interfaces for extensions and interceptors are the same but behavior/logic would have to be different!

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

  28. DEMOs From simple to smart… AkshayMaloo RüdigerGartmann

  29. 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

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

  31. DEMOs SOI Chaining AkshayMaloo

  32. 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)

  33. Thank you Please fill out the session surveys

More Related