Developing Web Applications with ArcGIS Server. Kevin Deege Educational Services ESRI-Washington DC

Similar documents
ArcGIS for Developers. Kevin Deege Educational Services Washington DC

Goals Give you an overview of development with ArcGIS Server Give you a roadmap to other sessions Cover the breadth of the software Not a deep dive se

Moving Desktop Applications to ArcGIS Server

Tasks. actions and generate results. Encapsulate a workflow. UI for gathering input. Generate results

Introductions Who are we? Who are you? Development D l t experience i with ith ArcObjects A Obj t Development experience with ASP.NET Basic understand

Schedule. 75 minute session. Cell phones and pagers. Please complete the session survey we take your feedback very seriously!

Building and Extending Tasks for ArcGIS Server Java Web Applications David Cardella Keyur Shah Shu Sang

Getting Started with ArcGIS for Server. Charmel Menzel and Ken Gorton

EUCOM/AFRICOM DEFENSE USER GROUP MEETING MARCH 2010 STUTTGART WELCOME!

Developing Custom Web Tasks using the Java Web ADF (Deep Dive) David Cardella Keyur Shah Developer Summit

Advanced Standard Basic Notes

Redpaper Stuart Bedoll Rob Culp Mike Ebbers Bill Innis

Developers Road Map to ArcGIS Desktop and ArcGIS Engine

Contents. 1. JSF overview. 2. JSF example

ESRI Software Evolution

ArcGIS for Server Michele Lundeen

Desktop. ArcGIS Server. ArcGIS

Working with the ArcGIS Viewer for Flex Application Builder

ArcGIS Viewer for Microsoft Silverlight An Introduction

Extend, distribute custom functionality. Multi-source support

Developing Web applications with Java

Web Mapping Applications with ArcGIS. Bernie Szukalski Derek Law

What's New in ArcGIS 9.2 Service Packs

What's New in ArcGIS 9.2 Service Packs

ArcGIS Server Java. ICEfaces - Esri Integration Guide

Mobile Solutions. Christopher Grasteit CA/NV/HI Technical Marketing ESRI

Configuring and Customizing the ArcGIS Viewer for Silverlight. Katy Dalton

JSF. What is JSF (Java Server Faces)?

An Introduction to GIS for developers

Serving Imagery with ArcGIS Server 10.1

Developing Custom Web Tasks Using the.net Web ADF. Sentha Sivabalan and Rex Hansen

Architecting ArcGIS Server Solutions for Performance and Scalability

Deploying and Using ArcGIS Explorer for Petroleum Users Bern Szukalski ESRI Redlands

Getting Started with the ArcGIS Server JavaScript API

@jbarry

Web ADF Graphics. Web-tier.NET. Client-tier JavaScript. Spatially enabled.net DataTables Render on the server using GDI+ Graphic features and groups

No Programming Required Create web apps rapidly with Web AppBuilder for ArcGIS

Developing Applications with Java EE 6 on WebLogic Server 12c

ORACLE FUSION MIDDLEWARE MAPVIEWER

Visualization with ArcGlobe. Brady Hoak

ArcGIS 9.2 Works as a Complete System

Introduction to Autodesk MapGuide EnterpriseChapter1:

ArcGIS Runtime SDK for WPF

New ArcGIS Server Application Developers? Experience in Programming with Java? Knowledge of Web Technologies? Experience with the Java WebADF?

Best Practices for Designing Effective Map Services

Publishing image services in ArcGIS

Getting Started with ArcGIS Runtime SDK for Java SE

Programming and Design Patterns for the ArcGIS Mobile SDK

Building Effective Custom Tasks for ArcGIS Explorer

White Paper AJAX. for Graphics-Intensive Web Applications

ArcGIS Online. The Road Ahead Geoff Mortson

Building Applications with the ArcGIS Runtime SDK for WPF

Introduction to ArcGIS Server Architecture and Services. Amr Wahba

75 minute session minute lecture minutes Q & A following the lecture

Introduction to Autodesk MapGuide EnterpriseChapter1:

Building Mashups Using the ArcGIS APIs for FLEX and JavaScript. Shannon Brown Lee Bock

An introduction to ArcGIS Runtime

ArcGIS Viewer for Silverlight Advanced Topics

ArcGIS Runtime SDK for Java: A Beginner s Guide. Mark Baird JC Malott

Introduction to ArcGIS API for Flex. Bjorn Svensson Lloyd Heberlie

SuperGIS Server 3.2 Value Edition Specification

Getting Started with the ArcGIS API for JavaScript. Julie Powell, Paul Hann

Installing ArcIMS 9.1 on Windows

S s y t s em e s s Ar A ch c i h tec e t c ur u e e De D s e i s gn g, n C o C n o f n igu g r u at a ion o, n a n a d n D p e l p oy o m y en e t

Oracle Developer Day

ICIT. Brian Hiller ESRI Account Manger. What s new in ArcGIS 10

ArcGIS Pro: What s New in Editing and Data Management

What s s Coming in ArcGIS 10 Desktop

ArcGIS Runtime SDK for.net Getting Started. Jo Fraley

Building Web Services with ArcGIS Server and Java. Eric Miller Antony Jayaprakash Jay Theodore Steven Citron-Pousty

ArcGIS. Server. Comprehensive Server-Based GIS

Building Java Applications Using the ArcGIS Server Web ADF and AJAX

Open Source Cloud Map User Guide

Oracle Fusion Middleware 11g: Build Applications with ADF I

Sun Java Studio Creator. Ken Paulsen Staff Engineer Sun Microsystems, Incorporated (Slides by: Craig R. McClanahan)

Building Windows Applications with.net. Allan Laframboise Shelly Gill

Building Apps with the ArcGIS Runtime SDK for ios

IBM Spatially Enables Enterprise With ESRI ArcGIS Server

Applications. ArcGIS Mobile. ArcGIS Desktop. ArcGIS Explorer. ArcGIS Engine. Web Application. Services. Data (Geodatabases) Desktop Developer Kit.

Three hours UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE. Date: Friday 21 st May Time:

Mobile Technology Delivering GIS To

Using ArcGIS for Server. Javier Abadía, Esri España Peter McDaid, Esri UK

Building Powerful, Integrated Mobile Applications with ArcGIS Mobile

What s New for Developers in ArcGIS Maura Daffern October 16

Web AppBuilder Presented by

GEOSPATIAL ERDAS APOLLO. Your Geospatial Business System for Managing and Serving Information

ArcGIS Server Success Stories. Danny Krouk 2008 ESRI Regional User Group Sacramento, CA

ArcGIS Enterprise Extending Services. Bill Major

Author. Publish. Use

Java TM. JavaServer Faces. Jaroslav Porubän 2008

Creating Web Mapping Applications. Nikki Golding

Introduction to ArcGIS Server 10.1

Implementing ArcGIS Mobile Applications for the Enterprise

ESRI Technology Update. Joe Holubar Larry Young

Working with Feature Layers. Russell Brennan Gary MacDougall

ArcGIS for Developers: An Introduction. Moey Min Ken

Esri Developer Summit in Europe Building Applications with ArcGIS Runtime SDK for Java

Oracle Fusion Middleware 11g: Build Applications with ADF I

Building and Deploying Enterprise ArcGIS Server Solutions (Best Practices) Wittaker Mathot Developer Summit

Oracle Spatial Pure Web Editing for Telco Outside Plant Engineering Planning. Eamon Walsh espatial Solutions

Transcription:

Developing Web Applications with ArcGIS Server Kevin Deege Educational Services ESRI-Washington DC

Introductions Who am I? Who are you? ESRI Product Development Experience What development languages are you using What types of applications are you developing 2

Session Overview ArcGIS Server Overview ArcGIS Server Developer Resources Introduce the Web ADF Building Web ADF applications Manager, template, controls Extending Web ADF applications Custom Tools Custom Tasks

ArcGIS Server 9.2 Complete & Integrated server-based GIS Out-of of-the-box applications and services Tremendous developer opportunities Spatial Data Management ArcGIS Desktop Java Visualization (Mapping) ArcGIS Explorer.NET ArcGIS Server Spatial Analysis Web Mapping Applications ArcGIS Mobile

Out of the Box Web based GIS Allows GIS Analysts to easily configure Web Applications No programming required Includes out of the box Desktop Clients ArcGIS Explorer ArcGIS Desktop Allows analysts to publish rich GIS Services 2D and 3D Mapping services Geocoding, Geodata,, Network Analysis,Geoprocessing services SOAP, WMS, and KML based services

Development Platforms Support for multiple platforms.net Java Cross-platform development Available on Windows, Linux, and Solaris Comprehensive SDKs for Application Development Web ADF for Web Applications and Web Services Mobile ADF for Mobile Applications (.Net only) Enterprise ADF - for Enterprise JavaBeans (EJB) (Java only)

Product Platforms ArcGIS Server for the Microsoft.Net Framework Windows ArcGIS Server for the Java Platform Windows, Linux, Solaris Platform specific install, documentation SDK and IDE integration Both platforms have the same GIS functionality Rich GIS Services Management Applications Web Mapping Applications ArcGIS Explorer and Desktop clients

GIS on the Web in 3 steps 1 2 3 Author GIS content Create GIS resources ArcGIS Desktop applications Serve content Publish GIS resources as services ArcCatalog and ArcGIS Server Manager Use GIS services Web mapping applications ArcGIS Explorer ArcGIS Desktop Many others

ArcGIS Server Web Services Server Objects exposed as web services Types Map service Geocode service Globe service Geodata service Geoprocessing service More at 9.3 (Image Service) Capabilities Map/Data/Query Geocode/Reverse Geocode 3D Visualization Data Replication Geospatial Analysis Consumed by both Java and.net Federal

ESRI Developer Network (EDN) Access to the ArcGIS Development Platform The Developer Product ArcGIS Server (all Levels and Editions) ArcGIS Image Server ArcIMS ArcGIS Engine ArcGIS Desktop* Software Developers Kits.NET and JAVA Website for Developers http://edn.esri.com

Developer Resources ArcGIS Server Development Blog http://blogs.esri.com

Introducing the Web ADF Libraries used to build GIS Web applications Web controls (ASP.NET, JSF) AJAX enabled Map image blending Supports multiple data sources ArcGIS Server, ArcIMS, ArcWeb,, WMS Web ADF graphics Task Framework Extensible Architecture ArcGIS Server Manager Build Web Applications IDE integration

.NET Web ADF Architecture AJAX enabled GIS Web controls Extend, distribute custom functionality Multi-source support Web-tier graphics, geometry, rendering

Java Web ADF Architecture Java Web ADF Web Controls Tasks & Framew ork WebContext & Attributes Framework Common API AGS IMS WMS AWS GR Resource APIs

.NET Web ADF controls Resource manager controls Not visible at run time Manage resources Mapping controls Map Overview map Related controls Toolbar Table of contents

Java Web ADF controls Set of custom JavaServer Faces Web controls Expose server object functionality Context,, Map, Overview, Toc, and Toolbar Gives access to other APIs (common or resource specific) com.esri.adf.web.faces.component SDK JavaDoc Web control tag library Samples

Web Graphics Allow developers to add simple graphics to the map Supported symbols Line Marker Polygon True type marker Supported renderers Unique value Class break Simple Integrated into Web and Browser tiers

Graphics Layers Display geometry and text dynamically within a map Client-tier Map image Graphics layer Map data layers Web ADF resources Web ADF Graphics Create Image Web-tier ArcGIS Server ArcIMS Web ADF Server-tier Create Image Create Image ArcGIS Server ArcIMS

Web ADF Tasks Allow the end user to perform useful work Visual components Perform a set of related actions and generate a result Configurable from Manager Product ships with out of the box tasks Search by attributes Query Attributes Find Place Find Address Editing Geoprocessing Developers can extend the system with Custom tasks

Visual Studio 2005 integration Web controls Web Mapping Application template Context menus Developer Help

IDE integration - Eclipse Eclipse plug-in Template applications Reusable code available as snippets Integrated documentation Samples are integrated to run from within the IDE

Building Web Applications Use the Web ADF ArcGIS Server for.net - Web ADF ArcGIS Server for Java Web ADF Leverage AJAX Enabled ASP.Net or JSF Web Controls Work with GIS Web Services using the SOAP API Work with GIS Server Objects using either The SOAP API Finer Grained ArcObjects API

Web ADF Development Paths Increasing complexity and functionality Developer Paths I II III IV Web Controls Generic Common Data Source API Data Source Implementations Data Source (GIS Server) Specific APIs

Creating Web ADF applications 1. Use ArcGIS Server Manager Web site builder Modify in Visual Studio, Eclipse 2. Use template Same template used by ArcGIS Server Manager Visual Studio, Eclipse, Creator 3. Create using Web controls

Web Mapping Application template Web controls Themes Resources Custom tools Help system

Advantages of using the template Start with a complete GIS Web application The template provides: Measure user control Identify tool Layout DIVs resize, etc. Code for docking items, closing application Themes Help system

Core Web controls Web ADF controls Task Framework Web controls Task Web controls Toc ZoomLevel PageLayout Toolbar OverviewMap Magnifier Navigation ScaleBar FloatingPanel ContextMenu TreeViewPlus MapTips MapResourceManager Map EditorTask SearchAttributesTask QueryAttributesTask TaskResults TaskManager GeoprocessingResourceManager GeoprocessingTask ASP.NET Navigation Controls GeocodeResourceManager FindAddressTask FindPlaceTask

.NET Map control Associate with a Map resource manager control Works with multiple map resources Create dynamic map images Fetch pre-generated image tiles (cached services) Image blending Web tier or browser Game-style navigation Seamless pan and zoom Keyboard and mouse integration AJAX enabled!

.NET Toolbar control Work with Map control using callbacks Write server-side side code only Client-side code provided by the Web ADF Out-of of-the-box map actions: Zoom In Zoom Out Pan Full Extent Tools and Commands configurable in Visual Studio design-time dialog dialog

Java ADF - MVC architecture

The Context control Establishes a connection to the GIS Server (non-visual) Container of all attributes and resources Has attributes registered to it Notifies attributes about changes in application state WebContext.refresh() Context control WebContext Stored in session scope Data objects can be retrieved from context WebMap WebGraphics WebToc Works with a WebContext object

The Map control AJAX-enabled Works with multiple map resources Creates dynamic map images Supports image caching Map service blending Web tier or browser Required attributes com.esri.adf.web.data Class WebContext id value mapviewer.jsp <a:map id="map1" value="#{mapcontext.webmap}" />

Using the Web controls with JSP <%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@taglib uri="http://www.esri.com/adf/web" prefix="a"%> <f:view> <h:form id="f"> <a:context value="#{mapcontext}" /> <table> <tr> <td> <a:map id="map1" value="#{mapcontext.webmap}" width="600" height="600"/> </td><td> <a:toc mapid="map1" value="#{mapcontext.webtoc}" style="height:200" /> <a:overview mapid="map1" value="#{mapcontext.weboverview}" /> </td> </tr> </table> </h:form> </f:view>

.NET - Creating a custom tool To create a tool/command: 1. Write server-side side code to handle map action 2. Add a new toolbar item to toolbar. 3. Set server action 4. For tools, choose client action (point, rectangle, etc.) 5. Set images

Common Data Source API Resource Managers Web ADF Controls Web ADF Controls IGISDataSource IGISResource IGISFunctionality Generic IMapResouce IGeocodeResouce IGeocodeFunctionality IMapFunctionality IMapTocFunctionality IQueryFunctionality ITileFunctionality IScalebarFunctionality IGeoprocessingResouce IGeoprocessingFunctionality Implementations ArcGIS Server ArcIMS

Common Data Source API benefits Removes business and GIS logic from Web controls Support for multiple data sources using the same API Easy to program against different data sources Implement your own custom data sources

Data source-specific specific APIs Each data source a different set of capabilities ArcGIS Server SOAP, ArcObjects ArcIMS ArcXML ArcWeb Services SOAP What does this mean? Many data source-specific specific classes available More business/gis logic Different APIs may use different communication protocols Requires different programming patterns for each data source

ArcGIS Server APIs SOAP Available for services and server object extensions Designed for stateless interaction ArcObjects Available for Local ArcGIS Server services Designed for stateless and stateful interaction

Web ADF Tasks Visual components perform a set of related actions generate results Encapsulate a workflow UI for gathering input Perform some action based on inputs Generate results

Web ADF Tasks Configurable from Manager Out of the box tasks Navigation Geoprocessing Search by attributes Editing Find direction Predefined query Find place Print Task (9.3) Custom tasks

The Task Framework (.NET) Framework provides for: Configuring tasks in VS.NET and Manager Organization of tasks Feedback when a task is executing Management of results Display Visualization on Map Delete, Refresh, Re-run Distributable UI components Plugs into Manager Extensible VS 2005 Custom Task Manager

.NET Web Custom Tasks Basic task implements ITask Create a custom Web control Extend Task or FloatingPanelTask abstract base classes CustomTask ESRI.ArcGIS.ADF.Web.UI.WebControls FloatingPanelTask ICallbackEventHandler IBuddyControlSupport ITask ESRI.ArcGIS.ADF.Web.UI.WebControls FloatingPanel ASP.NET Web Controls

.NET Custom Task Classes ITask Task Required Optional TaskDesigner DevTask Designer Floating PanelTask IWebConfigurator DevTask WebConfigurator DevTask ITaskResultsContainer TaskResults Custom TaskResults

Java Custom Web Tasks Parameters Inputs needed by the task E.g. Layer name, zoom factor, etc Commands (Actions) Business logic Is executed without user interaction with the map E.g. Zoom to full extent Tools User interaction with the map is required Client-side action is required E.g. Identify, dynamic navigation

Java Custom Task Implementation 1. Create a standard Java Class Signature of the method will dictate command or tool 2. Register the Java class as a managed bean Faces.config Make it available in the ADF 3. Add the task tag to the jsp Reference the managed bean To visually display the UI to the user

Implement a custom task (1) Create a standard Java Class MyTask.java public class MyTask { } Register Java class as a managed bean <managed-bean> <managed-bean bean-name> name>mytask</managed-bean-name> <managed-bean bean-class> class>mypackage.mytask</managed-bean-class> <managed-bean bean-scope>session</managed-bean-scope> </managed-bean> faces-config.xml

Implement a custom task (2) Add the control to the jsp Value attribute = value of managed-bean bean-name name in faces-config config xxx.jsp <a:task value="#{mytask mytask}" mapid="map1" /> <managed-bean> <managed-bean bean-name> name>mytask</managed-bean-name> faces-config.xml

Questions?

Thank You