39
A A Developers Guide Developers Guide to to ArcGIS Server ArcGIS Server ArcGIS Server ArcGIS Server Ismael Ismael Chivite Chivite Sathia Sathia Prasad Prasad Antony Antony Jayaprakash Jayaprakash

A Developers Guide to Arcgis Server Ds09

Embed Size (px)

Citation preview

Page 1: A Developers Guide to Arcgis Server Ds09

A A Developers GuideDevelopers Guidepp

to to ArcGIS ServerArcGIS ServerArcGIS ServerArcGIS Server

IsmaelIsmael ChiviteChiviteSathiaSathia PrasadPrasad

Antony Antony JayaprakashJayaprakash

Page 2: A Developers Guide to Arcgis Server Ds09

ScheduleSchedule

•• Today we will coverToday we will coveryy––An overview of developer opportunities with ArcGIS ServerAn overview of developer opportunities with ArcGIS Server––The Developer’s view:The Developer’s view:

•• on ArcGIS Server Serviceson ArcGIS Server Services•• on ArcGIS Server Serviceson ArcGIS Server Services•• On ArcGIS Server applicationsOn ArcGIS Server applications

–– ArcGIS API’s and Web ADFsArcGIS API’s and Web ADFs

•• We will answer questions at the end of the sessionWe will answer questions at the end of the session

Please complete the session survey!Please complete the session survey!

Page 3: A Developers Guide to Arcgis Server Ds09

ArcGIS Server is a powerful framework for Web Based GISArcGIS Server is a powerful framework for Web Based GISEmpowering the NonEmpowering the Non--GIS ProfessionalGIS Professional

•• Many capabilitiesMany capabilities–– Mapping, Analysis, Mapping, Analysis, GeodataGeodata managementmanagement

•• Many clientsMany clients–– DesktopDesktopDesktopDesktop–– Web BrowsersWeb Browsers–– MobileMobile–– ArcGIS ExplorerArcGIS Explorer

MobileMobileWebWebDesktopDesktop OpenOpenAPIsAPIs

OGCOGCKMLKML

SOAPSOAPSQLSQLArcGIS ExplorerArcGIS Explorer

–– Third PartyThird Party ApplicationsApplications

SQLSQL

GDB

ServicesServices&&

GeospatialGeospatialData ManagementData Management

MappingMapping33--D VisualizationD VisualizationGeoprocessingGeoprocessingData ManagementData Management

ArcGIS ServerArcGIS Server

Page 4: A Developers Guide to Arcgis Server Ds09

Developers have many opportunities… and choicesDevelopers have many opportunities… and choices

Page 5: A Developers Guide to Arcgis Server Ds09

This session will guide you through most of these optionsThis session will guide you through most of these options

•• Understand when to use whatUnderstand when to use what•• Guide you through other sessions in this conferenceGuide you through other sessions in this conference

Page 6: A Developers Guide to Arcgis Server Ds09

ArcGIS Server has Services and ApplicationsArcGIS Server has Services and Applicationsyou can extend and develop against bothyou can extend and develop against both

WebWebBrowsersBrowsers

DesktopDesktop ExplorerExplorer MobileMobile EnterpriseEnterpriseService BusService Bus

OpenOpenAPIsAPIs

Applications= User Experience

GlobeServices

MapServices

Analysis &ModelingServices

ImageServices Geometry

Services = Capabilities

…we will focus on services and web browser based apps…we will focus on services and web browser based apps

Page 7: A Developers Guide to Arcgis Server Ds09

Developer’s view on ServicesDeveloper’s view on Services

•• Goal: Goal: Get server to do what you wantGet server to do what you wantyy

•• How:How:––Understand ‘out of the box services’Understand ‘out of the box services’––Create new ones if you need toCreate new ones if you need to

GlobeServices

MapServices

Analysis &ModelingServices

ImageServices Geometry

Page 8: A Developers Guide to Arcgis Server Ds09

Understanding out of the box ServicesUnderstanding out of the box Services

View Query& Find

Edit & or Replication

Analysis Comments& Find Replication

Map X X X Editing through WFS-T capability

Image X XGlobe X XGeocode XGeodata XGeoprocessing XNetwork X Capability of Map Service

Mobile X X X Capability of Map ServiceMobile X X X Capability of Map Service

Geometry Geometry manipulation

A th h REST d SOAPAccess through REST and SOAPExtended capabilities supported for OGC etc

Page 9: A Developers Guide to Arcgis Server Ds09

A detailed view on Map ServicesA detailed view on Map Services

•• BuildingBuilding--blocks of web mapsblocks of web mapsDisplay Map Images

OrClient side Graphicsgg pp

•• Support mapping capabilitiesSupport mapping capabilities––Cached and DynamicCached and Dynamic

•• Powerful Query CapabilitiesPowerful Query Capabilities––Go to, Map tips and client side renderingGo to, Map tips and client side rendering

On The fly On The flyMap Tile

yMap Query

Page 10: A Developers Guide to Arcgis Server Ds09

Using query capabilities to draw mapsUsing query capabilities to draw maps…and map tips and more…and map tips and more

Page 11: A Developers Guide to Arcgis Server Ds09

Learning more…Learning more…

•• Best Practices for Designing Effective Map ServicesBest Practices for Designing Effective Map Services––Tuesday 4:30pm Tuesday 4:30pm -- Catalina/Madera (Wyndham)Catalina/Madera (Wyndham)

•• www.esri.com/webmapswww.esri.com/webmaps

Page 12: A Developers Guide to Arcgis Server Ds09

A detailed view on A detailed view on GeoprocesingGeoprocesing ServicesServices

•• Provide advanced GIS functionality through web Provide advanced GIS functionality through web y gy gservicesservices

•• Hundreds of out of the box toolsHundreds of out of the box tools•• Combine them into workflows (models)Combine them into workflows (models)•• ExecuteExecute

SynchronouslySynchronously––SynchronouslySynchronously––AsynchronouslyAsynchronously

•• Use from Desktop, ArcGIS Explorer, custom appUse from Desktop, ArcGIS Explorer, custom app

Page 13: A Developers Guide to Arcgis Server Ds09

Extending Geoprocessing with custom toolsExtending Geoprocessing with custom tools

•• With Python, C#, With Python, C#, VB.NetVB.Net and Javaand Javay , ,y , ,

Page 14: A Developers Guide to Arcgis Server Ds09

Extending Geoprocessing ToolsExtending Geoprocessing Toolsfor use in ArcGIS Serverfor use in ArcGIS Server

Page 15: A Developers Guide to Arcgis Server Ds09

Learning more…Learning more…

•• Building and Optimizing Geoprocessing Services for ArcGIS ServerBuilding and Optimizing Geoprocessing Services for ArcGIS Server––Wednesday 1:00pm Wednesday 1:00pm -- Pasadena/Ventura/Sierra (Wyndham)Pasadena/Ventura/Sierra (Wyndham)

•• Designing and Developing Geoprocessing Tools with ArcGISDesigning and Developing Geoprocessing Tools with ArcGIS•• Monday 1:00pm Monday 1:00pm -- Pasadena/Ventura/Sierra (Wyndham)Pasadena/Ventura/Sierra (Wyndham)

Page 16: A Developers Guide to Arcgis Server Ds09

Creating custom ArcGIS Server ServicesCreating custom ArcGIS Server Services

•• Expose Expose ArcObjectsArcObjects functionality over httpfunctionality over httppp jj y py p––Through custom web services (REST and SOAP)Through custom web services (REST and SOAP)

•• Use from any ArcGIS Server clientUse from any ArcGIS Server client––ArcGIS API’sArcGIS API’s––Web ADFsWeb ADFs––ArcGIS Explorer, Desktop etcArcGIS Explorer, Desktop etcp pp p

Page 17: A Developers Guide to Arcgis Server Ds09

Developer’s View on ApplicationsDeveloper’s View on Applications

•• Goal: Build the user experience for ArcGIS Server servicesGoal: Build the user experience for ArcGIS Server servicespp

•• Two basic patterns:Two basic patterns:––ClientClient--side only logicside only logic

•• ArcGIS API’s:ArcGIS API’s:–– JavaScriptJavaScript–– FlexFlex–– SilverlightSilverlight

––Hybrid: ClientHybrid: Client--side plus serverside plus server--side logicside logic•• WebADFsWebADFs::

–– .Net.Net–– JavaJava

Page 18: A Developers Guide to Arcgis Server Ds09

Hybrid versus pure client side and languageHybrid versus pure client side and languageWhat is right for me?What is right for me?

•• Considerations:Considerations:––Your skills and passionYour skills and passion

Level of complexityLevel of complexity––Level of complexityLevel of complexity––Your constrains (corporate standard, legacy application…)Your constrains (corporate standard, legacy application…)––SecuritySecurity––FunctionalityFunctionality

Page 19: A Developers Guide to Arcgis Server Ds09

Introducing the ArcGIS API for Introducing the ArcGIS API for JavascriptJavascript

•• Lightweight programming modelLightweight programming model•• Your most likely choice if you are not ‘a developer’Your most likely choice if you are not ‘a developer’

––Avenue style programmingAvenue style programming––Start right away with notepadStart right away with notepad

•• Easy transition forEasy transition for ArcIMSArcIMS developersdevelopersEasy transition for Easy transition for ArcIMSArcIMS developersdevelopers

•• Simple but not just for simple stuffSimple but not just for simple stuff•• Many libraries to help you move fastMany libraries to help you move fast•• Version 1.3 with great improvementsVersion 1.3 with great improvements

Page 20: A Developers Guide to Arcgis Server Ds09

Web Mapping made easy with ArcGIS API for Web Mapping made easy with ArcGIS API for JavascriptJavascript

Page 21: A Developers Guide to Arcgis Server Ds09

Advanced techniques with the ArcGIS API for JavaScriptAdvanced techniques with the ArcGIS API for JavaScript

Page 22: A Developers Guide to Arcgis Server Ds09

Learning more…Learning more…

•• An overview of the ArcGIS JavaScript APIs An overview of the ArcGIS JavaScript APIs –– Tuesday 2:45pm Tuesday 2:45pm -- Primrose B (PSCC)Primrose B (PSCC)

Thursday 10:15Thursday 10:15 Pasadena/Ventura/Sierra (Wyndham)Pasadena/Ventura/Sierra (Wyndham)–– Thursday 10:15 Thursday 10:15 -- Pasadena/Ventura/Sierra (Wyndham)Pasadena/Ventura/Sierra (Wyndham)

•• Developing Advanced Applications with the ArcGIS JavaScript APIDeveloping Advanced Applications with the ArcGIS JavaScript APIW d d 10 30W d d 10 30 P i A (PSCC)P i A (PSCC)•• Wednesday 10:30am Wednesday 10:30am -- Primrose A (PSCC)Primrose A (PSCC)

•• Thursday 8:30am Thursday 8:30am -- Primrose B (PSCC)Primrose B (PSCC)

Page 23: A Developers Guide to Arcgis Server Ds09

Introducing the ArcGIS API’s for Flex and SilverlightIntroducing the ArcGIS API’s for Flex and Silverlight

•• Similar in functionality to JavaScriptSimilar in functionality to JavaScript•• Applications run on plugApplications run on plug--insinsApplications run on plugApplications run on plug insins

––SilverlightSilverlight––FlashFlash

•• Strong IDE’s and Web Design environmentsStrong IDE’s and Web Design environments•• CrossCross--browser, crossbrowser, cross--platfformplatfform•• Powerful graphic layers and ‘Powerful graphic layers and ‘componentrycomponentry’’•• Powerful graphic layers and ‘Powerful graphic layers and ‘componentrycomponentry’’

Page 24: A Developers Guide to Arcgis Server Ds09

ArcGIS API for Flex appsArcGIS API for Flex apps

Page 25: A Developers Guide to Arcgis Server Ds09

Getting started with the ArcGIS API for FlexGetting started with the ArcGIS API for Flex

Page 26: A Developers Guide to Arcgis Server Ds09

Learning more… (ArcGIS API for Flex)Learning more… (ArcGIS API for Flex)

•• Building Your First Rich Internet Applications with ArcGIS API for FlexBuilding Your First Rich Internet Applications with ArcGIS API for Flex––Tuesday 4:30pm Tuesday 4:30pm -- Primrose A (PSCC)Primrose A (PSCC)

•• Developing Advanced Applications with the ArcGIS API for FlexDeveloping Advanced Applications with the ArcGIS API for Flexp g ppp g pp•• Wednesday 10:30pm Wednesday 10:30pm --Primrose B (PSCC)Primrose B (PSCC)

–– Patterns and Best Practices for Building Applications with ArcGIS Patterns and Best Practices for Building Applications with ArcGIS API for FlexAPI for Flexg ppg pp•• Wednesday 1:00pm Wednesday 1:00pm --Primrose A (PSCC)Primrose A (PSCC)

•• Philadelphia Map PlugPhiladelphia Map Plug--in: Reusable Map Control with ArcGIS API for FLEXin: Reusable Map Control with ArcGIS API for FLEX•• Philadelphia Map PlugPhiladelphia Map Plug--in: Reusable Map Control with ArcGIS API for FLEXin: Reusable Map Control with ArcGIS API for FLEX–– Tuesday 2:00pm Tuesday 2:00pm --Oasis 1 (PSCC)Oasis 1 (PSCC)

Page 27: A Developers Guide to Arcgis Server Ds09

ArcGIS API for Microsoft SilverlightArcGIS API for Microsoft Silverlight

Page 28: A Developers Guide to Arcgis Server Ds09

Learning more… (ArcGIS API for Microsoft Silverlight)Learning more… (ArcGIS API for Microsoft Silverlight)

•• Patterns and Best Practices for Building Applications with the ArcGIS API Patterns and Best Practices for Building Applications with the ArcGIS API for Microsoft Silverlightfor Microsoft Silverlightgg

–– Thursday 10:15am Thursday 10:15am -- Catalina/Madera (Wyndham)Catalina/Madera (Wyndham)

•• Introduction to the ArcGIS API for Microsoft SilverlightIntroduction to the ArcGIS API for Microsoft Silverlightgg•• Wednesday 1:00pm Wednesday 1:00pm --Primrose B (PSCC)Primrose B (PSCC)

Page 29: A Developers Guide to Arcgis Server Ds09

ArcGIS Server Web ADFs (for Java and ArcGIS Server Web ADFs (for Java and .Net.Net))

•• Most complete developer environment for ArcGIS Most complete developer environment for ArcGIS ServerServer

•• Leverages Leverages .Net.Net and Javaand JavaHybrid modelHybrid model––Hybrid modelHybrid model

––Strong security model and IDE’sStrong security model and IDE’s

•• Comprehensive ADF:Comprehensive ADF:––Tasks and Task FrameworkTasks and Task Framework

Web ControlsWeb Controls––Web ControlsWeb Controls––Common Data Source APICommon Data Source API––Access to Access to ArcObjectsArcObjects API API

Page 30: A Developers Guide to Arcgis Server Ds09

Extending the Task FrameworkExtending the Task Framework

Page 31: A Developers Guide to Arcgis Server Ds09

Learning more…Learning more…

•• Building Building .Net.Net Applications using the ArcGIS Server Web ADFApplications using the ArcGIS Server Web ADF•• Implementing Security for ArcGIS Server Implementing Security for ArcGIS Server .Net.Net SolutionsSolutions•• Building and Extending Tasks for ArcGIS Server Java Web Building and Extending Tasks for ArcGIS Server Java Web

ApplicationsApplicationspppp•• Implementing Security for ArcGIS Server Java SolutionsImplementing Security for ArcGIS Server Java Solutions•• Customizing Editing Workflows with the Java Web ADFCustomizing Editing Workflows with the Java Web ADF•• BuildingBuilding SharepointSharepoint parts with theparts with the NetNet Web ADFWeb ADF•• Building Building SharepointSharepoint parts with the parts with the .Net.Net Web ADFWeb ADF•• Integrating Microsoft Silverlight with the Web ADFIntegrating Microsoft Silverlight with the Web ADF•• Customizing Graphics and Customizing Graphics and MapTipsMapTips with the Java Web ADFwith the Java Web ADF•• Customizing Graphics and Customizing Graphics and MapTipsMapTips with the with the .Net.Net Web ADFWeb ADF•• ……

Page 32: A Developers Guide to Arcgis Server Ds09

Developing against Developing against ArcObjectsArcObjects with ArcGIS Serverwith ArcGIS Server

•• TipsTips––Move your Move your ArcObjectsArcObjects logic from the web tier into the SOClogic from the web tier into the SOC

•• Do not extensively use Do not extensively use ArcObjectsArcObjects proxiesproxieso ot e te s e y useo ot e te s e y use cObjectscObjects p o esp o es•• Create utility COM objects or Server Object ExtensionsCreate utility COM objects or Server Object Extensions

Move your business logic away from the applicationMove your business logic away from the application––Move your business logic away from the applicationMove your business logic away from the application•• Create new web servicesCreate new web services

Page 33: A Developers Guide to Arcgis Server Ds09

Creating custom ArcGIS Server ServicesCreating custom ArcGIS Server ServicesIntroducing Server Object ExtensionsIntroducing Server Object Extensions

•• Advanced topicAdvanced topicpp•• Extend the functionality of core servicesExtend the functionality of core services•• Most performing approachMost performing approach

––For using the For using the ArcObjectsArcObjects API on serverAPI on server––Caches connections to data sourcesCaches connections to data sources

•• ArcObjectsArcObjects developer friendlydeveloper friendly•• ArcObjectsArcObjects developer friendlydeveloper friendly––No proxiesNo proxies––No server contexts (on your SOE)No server contexts (on your SOE)

•• ConfigurableConfigurable––From ArcGIS Server Manager and From ArcGIS Server Manager and ArcCatalogArcCatalog

•• A gateway for ArcGIS API’sA gateway for ArcGIS API’s•• A gateway for ArcGIS API sA gateway for ArcGIS API s––To To ArcObjectsArcObjects functionalityfunctionality

Page 34: A Developers Guide to Arcgis Server Ds09

Accessing fine grained Accessing fine grained ArcObjectsArcObjects

•• Pattern 1: Extensively using Pattern 1: Extensively using ArcObjectArcObject proxies from the web tierproxies from the web tier

//Connect to ArcGIS ServerIdentity identity = new Identity(agsUser, pswd, domain);AGSServerConnection agsconnection = new AGSServerConnection(“SOM", identity);agsconnection.Connect();

//Get a Server Context from an existing Server ObjectIServerObjectManager som = agsconnection.ServerObjectManager;IServerContext sc = som.CreateServerContext(_MapService, "MapServer");

//Instantiate and work with ArcObjectsIPoint pPoint = sc.CreateObject("esriGeometry.point") as IPoint;pPoint.PutCoords(dX,dY);

<a bunch of ArcObjects code here…><a bunch of ArcObjects code here…>

//Release contextsc.ReleaseContext();

Page 35: A Developers Guide to Arcgis Server Ds09

Accessing fine grained Accessing fine grained ArcObjectsArcObjects

•• Pattern 2: Consolidating Pattern 2: Consolidating ArcObjectsArcObjects logic in the Server Object Container logic in the Server Object Container with utility COM objects or Server Object Extensionswith utility COM objects or Server Object Extensions

//Connect to ArcGIS ServerIdentity identity = new Identity(agsUser, pswd, domain);AGSServerConnection agsconnection = new AGSServerConnection(“SOM", identity);agsconnection.Connect();

//Get a Server Context from an existing Server ObjectIServerObjectManager som = agsconnection.ServerObjectManager;IServerContext sc = som.CreateServerContext(_MapService, "MapServer");IServerObject so = sc.ServerObject;

//Get the Server Object ExtensionIServerObjectExtensionManager soexm = (IServerObjectExtensionManager)so;IServerObjectExtension soext = soexm.FindExtensionByTypeName("LayoutSOE");

//Cast to the Server Object Extension and invoke//Cast to the Server Object Extension and invokeESRI.APL.ILayout layout = soext as ESRI.APL.ILayout;string output = layout.ExportMapLayout(mapDesc, template, marginaliaElements, format, scale);

//Release contextsc.ReleaseContext();

Page 36: A Developers Guide to Arcgis Server Ds09

Creating custom ArcGIS Server ServicesCreating custom ArcGIS Server ServicesIntroducing Server Object ExtensionsIntroducing Server Object Extensions

ArcGISExplorer

Web ADF ArcGIS APIExplorer

Other

ArcGISServer

Server ObjectExtension

Page 37: A Developers Guide to Arcgis Server Ds09

Learning more…Learning more…

•• Extending ArcGIS Server with JavaExtending ArcGIS Server with Javagg––Wednesday 2:45pm Wednesday 2:45pm -- Primrose C/D (PSCC)Primrose C/D (PSCC)

U P iU P i•• User Presentation:User Presentation:––Print & Legend Web Services for the ArcGIS JS API or Print & Legend Web Services for the ArcGIS JS API or WebADFWebADF––Wednesday, March 25, 2009, 1:00pm, Oasis 1 (PSCC)Wednesday, March 25, 2009, 1:00pm, Oasis 1 (PSCC)y, , , p , ( )y, , , p , ( )

Page 38: A Developers Guide to Arcgis Server Ds09

At the end of the day… Common challengesAt the end of the day… Common challenges

•• Design and develop for your audienceDesign and develop for your audienceg p yg p y––Keep it simple and to the pointKeep it simple and to the point

•• Take a holistic approachTake a holistic approach––Focus on the business problem and the user experienceFocus on the business problem and the user experience––Get your services right, its not just about codeGet your services right, its not just about code

•• And Enjoy…And Enjoy…And Enjoy…And Enjoy…

Page 39: A Developers Guide to Arcgis Server Ds09

Questions?