Le blog francophone consacré
aux technologies Esri

UC 2011, Esri dévoile ArcGIS Runtime

J'ai évoqué pour la première fois la technologie ArcGIS Runtime lors du Developer Summit Esri au printemps dernier. Cette nouvelle solution de développement d'application bureautique qui sera disponible en version 10.1 d'ArcGIS a été largement montrée la semaine dernière durant la conférence.

Depuis plusieurs années, la solution ArcGIS Engine est la solution proposée par Esri pour le développement d'applications bureautiques personnalisées. Aujourd'hui, de nouveaux besoins émergent pour le développement d'applications SIG avec des fonctionnalités plutôt simples et généralement embarquées sur des périphériques plus légers (Lightweight GIS). 
 
Pour cela, Esri proposera début 2012 la solution ArcGIS Runtime pour permettre aux développeurs de construire des applications bureautiques ArcGIS légères. ArcGIS Runtime n'est pas un ArcGIS Engine "Light", il est basé sur une architecture totalement nouvelle dont les principales caractéristiques peuvent se résumer de la manière suivante:
  • Complètement intégré au système ArcGIS
  • (exploite les données, les services, les APIs d'ArcGIS)
  • Empreinte faible sur le système et déploiement aisé
  • Simplicité, agilité et performance de l'architecture
  • Nativement 32 bits et 64 bits
  • Cross-Platform (Windows / Linux)
  • Side-by-Side (pouvoir faire cohabiter différentes versions sur la même machine)
  • Supportant des contextes connectés et déconnectés
  • Propose différentes APIs de développement

Le principe d'ArcGIS Runtime est de fournir un noyau d'exécution (le Runtime) et différentes APIs (.Net/WPF, Java SE, QT C++) pour développer son application au-dessus de ce noyau. Le Runtime sera disponible sous Windows et sous Linux, en 32 bits et 64 bits. Indépendant de tout objet COM, aucun setup ne sera nécessaire pour déployer une application ArcGIS Runtime. Le déploiement d'une application ArcGIS Runtime consistera simplement à copier les fichiers du Runtime (uniquement ceux nécessaires pour l'application en question), les exécutables de votre application compilée ainsi les données de l'application. Le cycle de version d'ArcGIS Runtime sera plus court que celui du ArcGIS for Desktop ou ArcGIS for Server, il sera proche de celui des APIs Web ou Mobiles. Différentes versions du Runtime pourront cohabiter sur la même machine ce qui facilitera la gestion de multiples applications.
Sans rentrer trop dans les détails, l'architecture d'ArcGIS Runtime est assez innovante dans le sens où elle expose les fonctionnalités du Runtime au travers de services Rest dont les spécifications sont les mêmes que celles d'ArcGIS Server. Cette architecture interne basée sur des services permet l'exécution asynchrone des plusieurs tâches simultanément. Ceci apporte une performance et une robustesse très appréciable sur ces types d'application.


Les APIs Java, .Net et C++ d'ArcGIS Runtime sont donc très proches des APIs Web d'ArcGIS Server ce qui constitue un avantage certain pour les développeurs. D'une part les modèles objets étant quasiment identiques, un développeur d'applications web peut démarrer très rapidement sur des applications bureautiques ArcGIS Runtime. D'autre part, les APIs d'ArcGIS Runtime étant conçue pour communiquer avec des services Rest exposés par le Runtime, elles sont aussi capables de travailler directement avec des services ArcGIS Online ou ArcGIS Server, ce qui permet d'imaginer des architectures d'application mixtes (connectées, déconnectées, semi-connectées).

En termes de fonctionnalités, ArcGIS Runtime proposera capacités suivantes:
  • Cartographie 2D (implémentant tout le modèle de représentation d'ArcGIS)
  • Affichage d'objet dynamique haute-performance
  • Accès aux Géodatabases Fichiers et Enterprise
  • Mise à jour de donnes (géométries et attributs sur les Simple Features)
  • Scripting Python
  • Services ArcGIS Server (Map Services, Feature Services, Tiled Map Services, Image Services, …)
  • Géotraitements
  • Géocodage
  • Format de données supplémentaires (Rasters, Shapefiles, …)
  • Support supplémentaire des projections
Enfin, ArcGIS Runtime permet de rentabiliser les investissements réalisés sur les autres composants du système ArcGIS. En effet, le déploiement des données et des géotraitements dans une application ArcGIS Runtime se fait via des services web ou par des paquetages (paquetage de cartes, paquetage de couches, paquetage de tuiles, paquetage de géocodeurs, paquetage de géotraitements, …).

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article:

4 commentaires :

Alexandre Gacon a dit…

Quelles sont les principales différences fonctionnelles par rapport à ArcGis Engine ?

Pour les utilisateurs possédant ArcGis for Desktop ou ArcGis Engine, est-ce qu'une licence supplémentaire devra être acquise ?

Gaëtan Lavenu a dit…

Les fonctionnalités d'ArcGIS Runtime se concentrent sur la consultation de données SIG (connecté, semi-connecté ou déconnecté), la mise à jour de données (simple feature), les performances d'affichage sur des données très dynamiques et l'accès aux fonctions SIG de base (requêtes attributaires et spatiales, géocodage, calcul d'itinéraires, ...). ArcGIS Engine propose un panel de fonctionnalités beaucoup plus large pluisqu"il offre toutes les fonctions d'ArcGIS Desktop (mais en pièces détachées). Cela se traduit par des fonctions d'analyse spatiale plus étendues, plus de formats de données lus en natif, des capacités d'extension plus importantes, ...
Différents niveaux de licences seront proposés pour le déploiement d'applications ArcGIS Runtime avec des nivequx de fonctionnalités différents. Les clients disposant d'un EDN auront automatiquement accès à ArcGIS Runtime et les Runtime ArcGIS Engine pourront, sous certaines conditions, être convertis en licences de déploiement ArcGIS Runtime.

Jérôme Seigneuret a dit…

Bonjour, en l'état, si je comprends bien, les utilisateurs d'ArcGIS Desktop et d'ArcGIS Engine doivent prendre une licence supplémentaire pour développer des applications utilisant le SDK ArcGIS Runtime. Sauf que les fonctionnalité de base vont se retrouver éclater sous des niveaux de licences différents...

Faudra-t'il disposer d'ArcGIS Engine pour développer des fonctionnalités avancer (probablement sous forme d'extension)ou ajouter de simple librairie tierce (python) qui permettrent d'ajouter des possibilités qui ne sont pas offertes par ArcGIS Runtine.

Gaëtan Lavenu a dit…

Bonjour,

ArcGIS Desktop, ArcGIS Engine et les SDK ArCGIs Runtime sont des technologies de la plateforme ArcGIS mais elles sont totalement indépendantes l'unes de l'autres. Une application développée avec un des SDK ArcGIS Runtime (iOS, Android, .Net, Java, Cocoa, Qt) ne nécessite que la partie Runtime du SDK pour être déployée, et rien d'autres. En termes de licences, le développement se fait en téléchargeant (gratuitement) le SDK correspondant à la plateforme qui vous intéresse. Ensuite, pour le déploiement, il y a 2 niveaux "Basic" (gratuit) et "Standard" (payant) qui dépendent des fonctionnalités que vous utilisez dans votre application:

Basic: Toutes les fonctionnalités permettant la consommation de services en ligne et de données locales.
Standard = Basic +
- Local locators (geocoding)
- Local routing
- Local geodatabase editing
- Local geodatabase sync operations with an upload
- Local Server
- Geoprocessing
(par exemple, pour java, la liste est ici: https://developers.arcgis.com/java/guide/supported-geoprocessing-tools.htm)

Dans le futur, d'autres geoprocessing seront ajoutés dans un niveau de licence "Advanced".

Dernière chose, il est possible que votre application ArcGIS Runtime nécessite la consommation de services ArcGIS Online payant (géocodage, calcul d'itinéraire, calcul de profils, calcul d'isochrone,...) il faudra alors disposer d'un compte nommé sur la plateforme ArcGIS Online et de crédits. Pour info, votre compte développeur ArcGIS vous fournit cet accès à la plateforme de Cloud d'Esri et les crédits permet de tester votre application.