Conférence SIG 2008 Ateliers Techniques 1 er et 2 Octobre 2008 S'il vous plait! Merci d'éteindre vos appareils portables ArcGIS Server 9.3 Partie 2 Les API d'accès à ArcGIS Server Thomas DAVID Gaëtan LAVENU
Plan de la présentation Rappels d'architecture d'arcgis Server Les API's coté serveur SOAP REST OGC Les API's coté client Web ADF, API JavaScript ArcGIS, Virtual Earth et Google Maps, API Flex
Rappels d'architecture d'arcgis Server Conférence SIG 2008 Ateliers Techniques 3
Les services d'arcgis Server en 9.3 Type de service Catalog MapServer GeocodeServer GeoDataServer GeometryServer GPServer GlobeServer ImageServer NAServer MobileServer Description Utilisé pour accéder à la liste des services d'une instance ArcGIS Server et accéder à leurs propriétés Utilisé pour générer des cartes, accéder à l'organisation des couches, requêter les attributs et la géométrie des entités Utiliser pour localiser des informations d'adresse en coordonnées X,Y et inversement Utilisé pour créer des copies locales de données distantes, exécuter des requête sur les Géodatabases, synchroniser les mises à jours entre Géodatabase distantes. Conçu pour travailler directement avec la Géodatabase. Permet d'accéder à des fonctions de base pour traiter une ou plusieurs géométries (buffer, projection, généralisation, surface, longueur ) Utilisé pour mettre en ligne des fonctionnalités SIG, en publiant des modèles de géotraitements permettant des analyses, des traitements, ou des conversion de données,. Utilisé pour accéder aux couches de globe pour les afficher, les requêter dans un environnement 3D. Réservé aux application clientes ArcGIS Desktop, Engine et Explorer. Utilisé pour publier des données raster Utilisé pour générer des solutions de calculs de trajets comme l'optimisation d'itinéraires, les isochrones, les calculs de proximités ou l'optimisation de tournées. Utiliser pour fournir des cartes et des données à des applications SIG nomades développées sur la technologie ArcGIS Mobile SDK Sessions Technique ESRI France 4
Ces services SIG peuvent être consommés par tout type de clients PopFly.NET Java Virtual Earth Yahoo Pipes JavaScript Microsoft SharePoint Google Maps SAP ArcGIS SAS Flex/Flash Microsoft Silverlight Yahoo! Maps Server Google Earth ArcMap Ruby PHP OGC Géoportail OpenLayers Python Mobile
Les différentes API d'arcgis Server 9.3 Applications bureautiques API ArcObjects API SOAP Applications Web Services Web API REST Web ADF ArcGIS Server API JavaScript ArcGIS API JavaScript ArcGIS pour Virtual Earth API JavaScript ArcGIS pour Google Maps API Flex Applications HTML Applications Mobiles ArcGIS Mobile ArcGIS Desktop / Engine Applications.Net / Java
Les types d'accès au serveur SIG en 9.3 SOM/SOC API ArcObjects Serveur SIG API REST Connexion Internet API SOAP/XML Connexion Internet Connexion Locale Web ADF.Net / Java WMS WCS WFS KML Connexion Internet Connexion Locale Serveur Web Client API ArcGIS JavaScript API Flex ArcGIS Mobile ArcGIS Desktop / Engine Ext. VE Ext. GM Sessions Technique ESRI France 7
L'API ArcObjects
L'API ArcObjects Manipuler les ArcObjects des SOC à distance Accès le plus direct Accès le plus riche aux fonctions du serveur SIG Technologie DCOM / RPC Accès aux contextes des objets server (SOC) Possibilité de modifier les propriétés des objets (symbologie, couches, sources de données, projections,.) Possibilité de créer intégralement tous les objets du SOC donc d'implémenter son propre type de service! C'est l'api utilisée lors de l'accès aux services via une connexion locale (avec le Web ADF, ArcGIS Desktop ou ArcGIS Engine) Sessions Technique ESRI France 9
L'API SOAP/XML
L'API SOAP/XML Permet d'accéder, via le Web, aux fonctionnalités des différents services web (Geocode Server, Map Server, Image Server, Geoprocessing Server, ) Basé sur l'échange de flux XML normalisés (W3C) Pas d'accès direct aux ArcObjects Permet le développement : Applications Web Services Web Applications Desktop (sans aucun run-time ou techno ESRI) Sessions Technique ESRI France 11
ArcGIS Server : URL des services web SOAP Une dénomination standardisée: http://<hostname>/<arcgis_instance>/services/<folder>/ <servicename>/<servicetype> Pour obtenir la description wsdl : http://195.6.75.151/arcgis/services?wsdl http://195.6.75.151/arcgis/services/sig2008/cartoversail les/mapserver?wsdl 12
Utiliser un service SOAP On travaille avec des objects "Proxy" et "Value" Générés à partir de la description WSDL et du toolkit SOAP de votre environnement de développement XML 13
Exemples de méthodes sur l'objet MapServer MapCount MapName GetServerInfo Nombre de blocs de données dans le Map service Nom de la carte situé à l'index indiqué Récupération des informations sur la carte : couches, projection, ExportMapImage GetLegendInfo Génère une carte conforme à la Map Description spécifiée Retourne la légende de la carte Identify Find QueryFeatureData Retourne les résultats d'une identification d'entités Retourne le résultats d'une recherche d'entités Retourne les entités en appliquant un filtre spatial et/ou attributaire FromMapPoints ToMapPoints Conversion des coordonnées SIG en coordonnées image Conversion des coordonnées image en coordonnées SIG 14
Extrait du modèle objet SOAP: Affichage des cartes MapServer MapServerInfo MapLayerInfo MapDescription LayerDescription ImageDisplay ImageDescription ImageType 15
Extrait du modèle objet SOAP: Interrogation des entités MapServer Recordset Record IdentifyResults IdentifyResult FindResults FindResult 16
SOAP - Les avantages Se prête complètement aux standards de programmation OO Très facilement accessible dans les environnement sde développement.net, Java, C++ Les interfaces définissent précisément les contrats entre le client et le serveur : wsdl Permet un typage stricte au moment de la compilation Très bien intégré dans les IDE Documentation des classes, Intellisense, 17
Le WebADF (Web Map Application).Net ou Java Le moyen le plus simple de déployer des contenus et des outils Une application SIG Web complète et configurable "Out of the box" pour les environnements Windows et LINUX Sait travailler avec différentes sources de services carto: ArcIMS WMS ArcGIS Server Plusieurs outils livrés en standard: Print Search by attributes, identify, geocode Geoprocessing Web Editing Copyright control Overview, magnifier Scale bar, measure tool. Recommandé pour des applications Intranet 18
Le WebADF Java et.net, cas d'utilisation Applications très métier Visualisation Mise à jour Analyse Géo-Collaboration Intégration avec d'autres systèmes Sharepoint, SAP, Base de données Développement.Net et Java 19
Et déjà beaucoup de références en version 9.2
Le Web ADF en résumé Le Framework de développement le plus complet du marché Complétement intégré aux IDEs Java: NetBeans, Eclipse.Net: VS 2005 et 2008 Une richesse de Web contrôle "out of box": Map, Geoprocessing Task, Overview, Copyright control Maptip (points, polylines, polygons), Task Results Extensible: Custom data sources Task framework Accède à toute les fonctionnalités des ArcObjects ESRI fournit le code source de nombreuses tâches personnalisées (Code Galleries) Amélioration très importante de la qualité en 9.3 et Version Française 21
L'API REST
Qu'est ce que REST? REpresentational State Transfer Principe d'architecture réseau permettant l'exposer des ressources au travers d'url selon une organisation hiérarchique et Très interopérable PHP, Ruby, Python, Perl, Java,.NET, JavaScript, VB Script Les requêtes vers une API REST se font par des GETs HTTP Evite les problèmes de requêtes POST HTTP "cross-domain" Le navigateur web devient une console de commande en ligne URL Réponse (Image, HTML, JavaScript, JSON, ) GET HTTP API REST Serveur
Démo Accéder à des services REST à partir d'un navigateur http://chart.apis.google.com/chart?chtt=mon+exemple+de+graphiqu e&cht=p&chs=400x200&chd=s:kueoy&chl=fraises Citrons Poires P ommes Bananes http://local.yahooapis.com/mapsservice/v1/geocode?appid=monid& street=21+rue+des+capucins&city=meudon&country=france http://map.ngdc.noaa.gov/servlet/com.esri.wms.esrimap?servicena me=glacier&wmtver=1.0&request=getmap&srs=epsg:4326&bbo X=-100,- 90,100,80&WIDTH=400&HEIGHT=400&LAYERS=Continents,Rivers,Gl aciers%20(all%20sizes)&styles=&format=jpeg
L'API REST d'arcgis Server 9.3 Un accès très simple aux services web d'arcgis Server Toutes les ressources des services SIG sont exposés en tant que ressources REST Chaque ressource supporte des opérations Map Service (export, find, identify) Map Service \ Layers (query) Image Services (export) Geocode Service (findaddresscandidates, Reverse Geocode) Geoprocessing (execute, submit job) Geometry Service (project, simplify, buffer )
L'API REST d'arcgis Server 9.3 Les résultats des ressources et des opérations peuvent être retournés dans différents formats : HTML (Services Explorer, par défaut).&f=html IMAGE (récupération directe d'une image).&f=image KML/KMZ (Google Earth, Google Maps, Virtual Earth).&f=kmz JSON (développeurs).&f=json JavaScript Object Notation
Les clients de l'api REST Les APIs JavaScript fournies par ESRI (voir suite de la présentation) Les applications Web (en dehors des APIs JavaScript) Les développeurs Web autour de KML Les plateformes d'intégration et de mashup (Yahoo! Pipes, Microsoft Popfly, ) Autres langages de programmation (Ruby, Python,.NET, Java, PHP, ASP 3, ColdFusion, Flash/Flex, )
L'explorateur de services (Services Explorer) Installé automatiquement la machine SOM Permet de découvrir les services proposés par un serveur ArcGIS Server URL d'accès à la ressource Liste des services
L'explorateur de services (Services Explorer) Permet également d'accéder en direct aux ressources et de tester les opérations Syntaxe URL Paramètres Résultats URL d'exécution de l'opération Paramètres de l'opération Résultats de l'opération
Démo 1. Découvrir les services et l'api REST d'un serveur SIG avec le "Service Directory" 2. Exécuter des opérations sur des services avec le " Service Directory "
Les API JavaScript
L'API JavaScript ArcGIS
Pourquoi des APIs JavaScript? JavaScript est l'un des langages les plus utilisés au monde. Développement purement coté client (navigateur web) Un framework simple faisant l'abstraction de la complexité d'un navigateur web Stabilité Aucun changement dans le ECMAScript depuis1999 Un niveau de développement accessible aux concepteurs de page HTML
L'API JavaScript ArcGIS Permet d'intégrer dans votre site web des cartes et des tâches de n'importe quel ArcGIS Server (9.3 et plus) Possibilité d'utiliser les contenus d'arcgis Online comme fonds de cartes Les cartes peuvent être dans n'importe quel système de coordonnées Avantage sur VE et GM Construit au dessus du Toolkit JavaScript Dojo Gestion des Graphics, Dijits (framework de widgets) et grande communauté de développeurs
L'API JavaScript ArcGIS Maps Supporte les services cachés (Tiled) Supporte les services non-cachés (Dynamic) Graphics geometry + attributes + symbol + InfoWindow Tasks QueryTask Locator FindTask IdentifyTask GeometryTask Geoprocessor (synchronous et asynchronous) Résultats: Data ou Map Image
Documentation de l'api JavaScript ArcGIS Documentation en ligne de l'api http://resources.esri.com/arcgisserver/apis/javascript/arcgis Références du SDK Nombreux exemples en ligne basés sur des serveurs ArcGIS Server http://sampleserver1.arcgisonline.com/arcgis/rest/services http://sampleserver2.arcgisonline.com/arcgis/rest/services Les librairies JavaScript sont hébergées par ESRI http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1 Cycle de releases décorréler de celles d'ags Hébergé sur les serveurs ArcGIS Online Akamai 24/7
Démo 1. Explorer la documentation de l'api JavaScript 2. Exemple d'application JavaScript simple 3. Exemple d'application JavaScript plus évoluée
Extension JavaScript ArcGIS pour Virtual Earth
Extension JavaScript ArcGIS pour Virtual Earth Permet de combiner les contenus SIG (données et traitements) publiés avec ArcGIS Server avec les fonds de cartes de Virtual Earth Ces contenus (VE Shapes, Tiles) peuvent être visualisés en 2D ou en 3D Fonctionne avec des Map Services cachés uniquement Les Map Services doivent être dans la projection : WGS 1984 Web Mercator WKID: 102113 La même est requise pour Google Maps
Extension JavaScript ArcGIS pour Virtual Earth Maps Supporte les services cachés (Tiled) VEShape geometry + symbol + InfoBox Toutes les résultats de tâches peuvent être convertis en objet VEShape VEShapeLayer Tasks QueryTask Locator FindTask IdentifyTask GeometryTask Geoprocessor (synchronous ou asynchronous) Résultats: Data mais pas Map Image
Démo 1. Explorer la documentation de l'api JavaScript ArcGIS pour Virtual Earth http://resources.esri.com 2. Exemple d'application http://demo.esrifrance.fr/ve/demologistique/index.html
Extension JavaScript ArcGIS pour Google Maps
Extension JavaScript ArcGIS pour Google Permet de combiner les contenus SIG (données et traitements) publiés avec ArcGIS Server avec les fonds de cartes de Google Maps Fonctionne avec des Map Services cachés uniquement Possibilité d'utiliser 2 API coté serveur REST API KML Applications de mashup traditionnel ou en tant que Google Mapplets Les Map Services doivent être dans la projection : WGS 1984 Web Mercator WKID: 102113 La même est requise pour Virtual Earth
Extension JavaScript ArcGIS pour Google Maps Cachés (Tiled) Dynamiques (en utilisant la notion de GGroundOverlay) GOverlay (geometrie + symbole) Tous les résultats des tâches peuvent être ajoutés à la carte via l'objet ESRI.ArcGIS.GMaps.MapExtension Tasks QueryTask Locator FindTask IdentifyTask Geoprocessor (synchronous et asynchronous) Résultats affichés en tant que données ou cartes
Extension JavaScript ArcGIS pour Google Mapplets Les Mapplets sont des mini-applications qui s'exécutent dans la plateforme Google Maps Les développeurs ArcGIS Server peuvent choisir de publier des Mapplets Google qui expose des fonctions SIG aux utilisateurs Mapplets sont accessibles à partir du site : http://maps.google.com
Démo 1. Explorer la documentation de l'api JavaScript ArcGIS pour Google Maps 2. Exemple d'application
API ArcGIS pour Flex / Flash 47
API ArcGIS pour Flex API gratuite cliente de l'api REST Librairie SWC téléchargeable sur le centre de ressources ESRI Version 1.0 beta (version finale le 27 octobre) IDE: Flex Builder ou Plug-In Eclipse Permet de développer des applications Flash ou AIR exploitant la richesse d'ihm proposée par Adobe Flex
Que peut-on faire avec l'api Flex? Développer des applications Flash qui permettent : De créer des cartes dynamiques à partir de services ArcGIS Server dynamiques ou en cachés ainsi que des services ArcIMS Exécuter des modèles de Géotraitement sur le serveur Consommer des fonds de cartes ArcGIS Online standard/premium Réaliser des requêtes spatiales et attributaire sur vos données SIG Localiser des adresses par géocodage Visualiser des résultats d'analyse de manière très créative Réaliser des mashups avec différents type de services En résumé: Tirer profit de la totalité de l'api REST (comme avec l'api JavaScript)
Démo 1. Explorer la documentation de l'api Flex 2. Exemple d'application simple 3. Exemple d'application plus évoluée
Conclusion ArcGIS Server est un serveur SIG très riche Différentes API sont à votre disposition pour adresser différents besoins fonctionnels différentes plateformes de développement et d'exécution différents types d'architectures (2Tiers / 3Tiers) différents profils et niveaux de développeurs Web ADF.Net ou Java pour des applications métiers à fonctionnalités riches (MAJ, ) à destination de spécialistes métier / SIG plutôt déployé en Intranet API JavaScript, Flex et Silverlight des applications plus légères, analyse, consultation, mashups à destination de non spécialistes SIG plutôt déployé en Internet Conférence SIG 2008 Ateliers Techniques 51
Merci de votre attention Pensez à remplir le questionnaire d'appréciation Questions / Réponses Conférence SIG 2008 Ateliers Techniques 52