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, …).