ArcGIS Server
Transcription
ArcGIS Server
Conférence SIG 2008 Ateliers Techniques 1er 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 Description Catalog MapServer GeocodeServer GeoDataServer GeometryServer GPServer GlobeServer ImageServer NAServer MobileServer 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 .NET Java PopFly Virtual Earth JavaScript Yahoo Pipes SAP Microsoft SharePoint SAS ArcGIS Google Maps Microsoft Silverlight Flex/Flash Google Earth Server ArcMap Yahoo! Maps Ruby PHP OGC Géoportail OpenLayers Python Mobile Les différentes API d'ArcGIS Server 9.3 Applications bureautiques API ArcObjects API SOAP API REST Applications Web Services Web Web ADF API JavaScript ArcGIS ArcGIS Server 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 WMS WCS WFS KML Serveur Web Web ADF .Net / Java Connexion Locale Connexion Internet Connexion Internet API SOAP/XML Connexion Internet API REST Connexion Locale Serveur SIG Client API ArcGIS JavaScript Ext. VE API Flex ArcGIS Mobile ArcGIS Desktop / Engine 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 Nombre de blocs de données dans le Map service MapName Nom de la carte situé à l'index indiqué GetServerInfo Récupération des informations sur la carte : couches, projection, … ExportMapImage Génère une carte conforme à la Map Description spécifiée GetLegendInfo Retourne la légende de la carte Identify Retourne les résultats d'une identification d'entités Find Retourne le résultats d'une recherche d'entités QueryFeatureData Retourne les entités en appliquant un filtre spatial et/ou attributaire FromMapPoints Conversion des coordonnées SIG en coordonnées image ToMapPoints 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 GET HTTP Réponse (Image, HTML, JavaScript, JSON,…) 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