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