29 novembre 2009

"Tiles on the Cloud" (3/3)

Dans ce troisième et dernier article je souhaitais illustrer l'externalisation de caches au travers d'un exemple simple et concret. L'objectif est de déployer une application (ici en Flex) superposant un fond de carte (service caché) et des équipements liés à l'activité touristique (service dynamique).



Dans cet exemple, on a décidé d'externaliser le stockage du cache en dehors de l'infrastructure du serveur d'arcOrama. Pour cela on a choisi de stocker les fichiers de ce cache sur la plateforme Amazon S3 mais la démarche serait exactement la même pour n'importe quel autre serveur.



Je décris donc ci-dessous la démarche permettant de réaliser cette application:

1. Publication du service de carte dynamique contenant les équipements touristiques
  • Créer un premier document ArcMap
  • Ajouter les couches contenant les équipements touristiques
  • Toujours dans ArcMap, utiliser la barre d'outils de publication de service afin de créer un service de carte optimisé (depuis la version 9.3.1 d'ArcGIS)

2. Création du cache du fond de carte

  • Créer un deuxième document ArcMap
  • Ajouter les couches constituant le fond de carte
  • Toujours dans ArcMap, utiliser la barre d'outils de publication de service afin de créer un service de carte optimisé (depuis la version 9.3.1 d'ArcGIS)
  • A partir d'ArcCatalog, spécifier les paramètres du cache (échelles, taille et format des tuiles, …) dans les propriétés du service de carte
  • Lancer la création du cache

3. Copier le cache sur la plateforme Amazon S3

  • Créer votre compte sur Amazon S3
  • Installer un outil de gestion de fichiers pour Amazon S3, par exemple Bucket Explorer ou S3Fox Organizer
  • A l'aide de cet outil, copier l'ensemble de l'arborescence de votre cache
  • Vous penserez ensuite à bien spécifier les autorisations (ACL) sur l'ensemble des fichiers pour s'assurer que les tuiles seront accessibles à tous les utilisateurs
  • Vous penserez également à copier les fichiers crossdomain.xml ou clientaccesspolicy.xml à la racine de votre Bucket si vous utilisez des applications clientes Flex ou Silverlight
  • Vous pouvez vérifier que vos tuiles sont accessibles en saisissant l'URL d'une tuile comme celle-ci.


4. Développer l'application cliente

  • Créer le projet Flex puis ajouter le contrôle Map
  • Développer le connecteur permettant d'accéder au cache.
  • Dans cet exemple, nous avons choisi de créer une application Flex. Pour pouvoir accéder directement aux tuiles du cache sans utiliser le mécanisme standard de l'API Flex ArcGIS, un développement spécifique est nécessaire. En particulier, vous devez développer une classe étendant la classe ArcGISTiledMapServiceLayer qui prendra en charge l'accès aux tuiles copiées sur Amazon S3. Pour plus d'informations, reportez-vous au fichier S3ArcGISTiledMapServiceLayer.as du code source de l'application.
  • Dans la fonction clé de cette classe est la fonction getTileURL puisqu'elle prend en charge la récupération de l'URL des tuiles. Vous penserez à bien spécifier la structure de base des URL en fonction de votre arborescence de fichier dans Amazon S3.
    - Ajouter ensuite les références au service dynamique (ArcGISDynamicMapServiceLayer) et au nouveau type de service (S3ArcGISTiledMapServiceLayer) dans le fichier MXML de votre application.
  • L'application peut maintenant est exécutée.

Conclusion

Au travers de ces trois articles j'ai montré qu'une application web ArcGIS Server peut facilement tirer profit d'une architecture de type "Cloud". Dans mon modeste exemple, l'objectif était simplement d'optimiser la gestion et la performance d'affichage des caches en l'externalisant sur une plateforme de Cloud Computing. Bien entendu, on peut aller plus loin dans l'intégration de ce type de plateforme avec les technologies ArcGIS. C'est une tendance lourde qui s'affirme et qui sera un des axes de développement de la plateforme ArcGIS dans les prochaines années. Nous aurons l'occasion d'en reparler…

27 novembre 2009

"Tiles on the Cloud" (2/3)


Comme nous l'avons évoqué dans l'article précédent, l'externalisation des caches ArcGIS Server est une solution qui peut conduire à une réduction des coûts d'hébergement (espaces de stockage et de sauvegarde) et de mise à disposition (bande passante). Au-delà de ces considérations économiques, l'externalisation de ses caches peut également présenter un intérêt technique.

Si l'on considère une application web SIG dans laquelle on utilise à la fois des services cachés (pour le fond de carte) et des services dynamiques (pour les couches métiers), il y aura un gain de performance à séparer les serveurs. Même si la diffusion de services cachés est peu consommateur de mémoire et de CPU, c'est la gestion de la file d'attente des requêtes coté client (navigateur) qui peut être source de latence dans l'affichage complet de la carte. En effet, par défaut, un navigateur ne sait pas envoyer plus de 2 requêtes simultanées (en HTTP 1.1) à un même serveur. Ainsi l'utilisation d'un serveur différent pour les caches permet de mieux paralléliser ces requêtes et ainsi gagner du temps sur l'affichage global de la carte. Ceux qui utilisent des services ArcGIS Online ou Cartosphère constatent ce gain de temps.

Spécialiser ses serveurs ArcGIS Server

La première solution consiste, tout simplement, à mettre en ligne plusieurs serveurs ArcGIS Server afin de pouvoir en dédier certains au calcul, à l'hébergement et à la diffusion des services cachés. Pour mieux répartir l'usage des ressources de chaque serveur, une alternative intéressante peut consister à faire un mixte entre services cachés et services dynamiques sur chaque serveur. Dans ce dernier cas, le risque est de se retrouver, pour certaines applications, avec l'ensemble des servies nécessaires situés sur le même serveur.



Déporter ses caches sur un simple serveur web

La deuxième solution consiste à entreposer ses caches sur un serveur dédié à l'intérieur ou à l'extérieur de votre organisation. Le serveur, qui ne dispose pas d'ArcGIS Server, publie alors une arborescence de fichiers (les tuiles du cache) qui auront été préalablement calculés à partir d'un serveur ArcGIS Server de votre organisation. L'application cliente consomme alors directement les fichiers du cache via ce serveur web.


Cette solution offre l'avantage de ne pas utiliser une licence ArcGIS Server pour la diffusion du caches mais en revanche elle nécessite de pouvoir s'affranchir de certaines contraintes. Tout d'abord, les caches qui sont mis en ligne doivent être calculés puis par la suite mis à jour à partir d'un service ArcGIS Server. Même si ces opérations sont ponctuelles, il faut prévoir cette ressource ArcGIS Server dans l'architecture de votre organisation. Ensuite, le fait de travailler avec un cache "mort" (sans service de carte associé) ne vous permettra pas de disposer de fonctions d'interrogation ou de sélection sur les entités de votre fond de carte. Enfin, même pour les services de cache, les API web d'ArcGIS Server (Flex, JavaScript et Silverlight) ont besoin de communiquer avec le service ArcGIS Server correspondant. En câblant votre application sur un cache "mort", vous devrez réaliser un développement spécifique (mais relativement simple) dans l'application cliente, afin de modifier à la volée les requêtes sur les tuiles.


Techniquement cette externalisation des caches est donc possible et opérationnelle aujourd'hui. Un exemple intéressant est probablement celui de la société américaine Roktech partenaire d'ESRI Inc. Cette société propose un système d'hébergement de caches basé sur ces principes en utilisant la plateforme Amazon S3 pour le stockage des fichiers. Si le sujet vous intéresse, je vous recommande la lecture de cet article issu du dernier numéro d'ArcUser qui relate un cas d'application et explique l'architecture proposée.

Pour que tout cela soit plus concret, je détaillerai dans un dernier article, un exemple simple d'application Flex exploitant des caches stockés sur Amazon S3.

26 novembre 2009

Ouverture du code source du Template Flex Cadastre

Depuis plusieurs semaines, la plateforme arcOpole propose un modèle d'application Flex permettant la consultation des informations cadastrales issues du modèle de données MAJIC et Edigeo-PCI. D'une ergonomie remarquable, cette application Flex a fait parlé d'elle bien au-delà des utilisateurs de données cadastrales.

Comme évoqué lors de la conférence SIG 2009, arcOpole libère aujourd'hui le code source de ce modèle d'application. Vous pouvez désormais télécharger l'ensemble du code source Flex de la partie cliente ainsi que le code source de la partie serveur (sur demande). Pour plus d'informations, vous pouvez vous reporter à la page suivante.

A vous de jouer désormais pour prendre en la documentation et personnaliser ce modèle d'application. La palteforme arcOpole étant un espace d'échanges, vous pourrez y reverser à votre tour le fruit de vos développements.

25 novembre 2009

"Tiles on the Cloud" (1/3)

Plus rapides, plus légères et plus ergonomiques, depuis quelques années maintenant, les applications SIG sont entrées, elles aussi, dans l'ère du Web 2.0. Plusieurs améliorations technologiques ont permis cette évolution : l'augmentation des bandes passantes, la maturité des mécanismes Ajax, l'émergence d'interfaces plus accessibles sur les services web favorisant la construction de mashups (approche Restful par exemple) ou encore la démocratisation des technologies RIA (framework JavaScripts, Flex/Flash, Silverlight, …).


Un autre point technique qui a contribué à l'amélioration de l'expérience utilisateur dans les applications web SIG, c'est l'utilisation de plus en plus systématique de caches de cartes. J'en ai souvent parlé sur ce blog, depuis plusieurs années, on peut facilement gérer ce type de caches avec ArcGIS Server. Le principe est simple, les différents niveaux d'échelles de la carte sont précalculées et découpées en tuiles pour être ensuite stockées sur le serveur et délivrées à différentes applications clientes via le Web. Ceci permet de s'affranchir du calcul dynamique de la carte et des requêtes vers la base de données à chaque demande de carte de l'application cliente. Ceci réduit alors de manière significative le temps d'affichage de la carte mais également la consommation de ressources de votre serveur (CPU, mémoire, bande passante, …).


Aujourd'hui les techniques liées à la création et à la gestion des caches sont largement mises en œuvre et maîtrisées par la plupart des concepteurs d'applications ArcGIS Server. Les interrogations se portent désormais sur l'architecture et l'infrastructure à mettre en place pour optimiser ses coûts de déploiement et de montée en charge. En particulier lorsque l'on parle d'applications web s'adressant à un large public, la question de la disponibilité des serveurs, de la bande passante ou encore des espaces de stockage se transforme en véritables enjeux financiers. La question de l'externalisation complète ou partielle de ses caches est plus que jamais d'actualité.

Au travers de deux articles complémentaires, je reviendrai dans les prochains jours sur cette question en essayant (comme souvent dans arcOrama) d'être pragmatique et d'illustrer mes propos à l'aide d'un exemple concret d'application.

22 novembre 2009

Des Web Parts ArcGIS Server pour SharePoint


ESRI vient de mettre en ligne la version 1.1 des composants (gratuits) ArcGIS Server pour Microsoft SharePoint. Packagés sous la forme de Web Parts SharePoint, ces composants permettent d'utiliser les capacités de personnalisation de SharePoint pour ajouter des interfaces cartographiques interactives et configurables et offrir ainsi une visualisation géographique des données de l'entreprise. En ajoutant des capacités de représentation géographique à la célèbre technologie de portail d'entreprise de Microsoft, ESRI confirme sa stratégie de dissémination du SIG dans les systèmes d'information des entreprises.

D'un point de vue technique, c'est trois composants qui sont proposés aux administrateurs SharePoint :
  • ESRI Map Web Part - web part permettant l'affichage évolué de listes SharePoint, de services de données spatiales MapIt et de services ArcGIS Server Services sur une carte interactive


  • ESRI Geolist Web Part - web part fournissant l'affichage et l'interaction de données tabulaires avec la Web Part de carte associée


  • ESRI Location Map Field – permet d'ajouter une colonne aux listes SharePoint qui permet de saissir la localisation géographique de chaque élément en cliquant sur la carte

Pour plus de détails sur ces composants SharePoint, ESRI a ouvert un centre de ressource dédié à cette technologie.

18 novembre 2009

Nouvelle version pour l'API Silverlight/WPF ArcGIS

ESRI vient de mettre en ligne une première mise à jour de l'API Silverlight/WPF pour ArcGIS. Cette nouvelle version 1.1 propose des nouvelles fonctionnalités et quelques améliorations concernant l'intégration aux IDE de Microsoft. Désormais, les librairies de l'API s'installent à l'aide d'un setup exécutable qui va placer et configurer les assemblies, les composants et les templates Visual Studio et Blend sur le poste du développeur.



Ci-dessous quelques unes des évolutions notables:
  • Silverlight 3 est désormais nécessaire pour exploiter la version 1.1 de l'API. Silverlight 2 n'est plus supporté.
  • En phase de design, dans Expression Blend 3, vous visualisez maintenant directement et dynamiquement l'aspect des différents contrôles de l'application.

  • Silverlight 3 supporte la notion de binding sur des éléments XAML, ce qui veut dire que vous pouvez désormais renseigner la propriété "Map" de l'objet "Navigation" directement en XAML (sans code behind).

  • Une série de modèle de modèles d'application (templates) ont été ajoutés dans Visual Studio 2008 et Expression Blend. Ces derniers fournissent une base (pré-configuration des contrôles, styles par défaut, …) personnalisable pour construire rapidement et facilement des applications.



  • Expression Blend 3 a introduit la notion de comportements entre éléments XAML (behaviors). Morceaux de codes packagés, ils sont facilement réutilisables dans différentes application. Cette nouvelle version de l'API Silverlight/WPF intègre une nouvelle assembly (ESRI.ArcGIS.Client.Behaviors.dll) qui propose une série de comportements et d'actions applicables aux interactions entre l'utilisateur et le contrôle de la carte et son contenu.

  • L'assembly ESRI.ArcGIS.Client.Toolkit.dll propose deux nouveaux contrôles. FeatureDataGrid pour faciliter l'affichage des attributs des entités de la carte. MapProgressBar pour afficher facilement la progression dans la récupération des données de la carte.

  • Pour faciliter la création de symboles évolués, une application interactive en ligne est accessible sur le Resources Center



Pour consulter la liste détaillée des nouveautés, vous pouvez vous reporter à la page suivante.

17 novembre 2009

SIG et services en ligne (2/2)

Deuxième partie de mon article concernant les SIG et les services en ligne pour parler plus particulièrement d'ArcGIS Online.

ArcGIS Online est la solution proposée par ESRI pour prolonger et étendre les outils SIG bureautiques et serveur de la plateforme ArcGIS. Depuis la version 9.3.1, ArcGIS Online est beaucoup plus que la plateforme de diffusion de services web qu'elle était ces dernières années.

ArcGIS Online, plateforme de services en lignes

ArcGIS Online est tout d'abord une plateforme offrant des services de cartes et des services de tâches. Nous avons déjà évoqué dans arcOrama cet aspect de la plateforme qui est complétée en France par les services web ESRI France (Cartosphère). Certains de ces services sont gratuits (Standard) et d'autres nécessitent un abonnement payant (Premium).



ArcGIS Online, plateforme de développement d'applications web

ArcGIS Online est également la plateforme hébergeant les APIs de Web Mapping ArcGIS (JavaScript, Flex et Silverlight) ainsi que l'ensemble de la documentation, des exemples de code et des services web exemple associés à ces SDK. Accessibles en ligne, ces APIs peuvent être gratuites ou payantes selon le type d'usage (commercial ou non) et les services consommés (ceux d'ArcGIS Online ou vos propres services ArcGIS Server).



ArcGIS Online, plateforme de partage

Dernier point important, ArcGIS Online est désormais une plateforme collaborative via laquelle n'importe quel utilisateur ArcGIS peut, gratuitement, partager ses données et ses cartes avec tout le monde ou avec simplement avec un groupe d'utilisateurs déterminé.



La plateforme offre également la possibilité d'associer des métadonnées à chaque contenu mis en partage afin de faciliter la recherche sur ces contenus.



Pour illustrer cette notion de partage de contenus SIG sur ArcGIS Online, nous avions réalisé cette démonstration lors de la conférence SIG 2009.




Enfin, la plateforme permet de déclarer des services de carte ArcGIS Server qui pourront être visualisés sur la plateforme voir même être combinés à d'autres services disponibles sur ArcGIS Online pour construire un mashup. Cette composition de carte peut même s'enregistrer, se documenter et se partager avec d'autres utilisateurs.



ArcGIS Online demain

Le développement d'ArcGIS Online va continuer d'évoluer selon ces différents axes. L'offre de services web de données et de tâches va rapidement s'enrichir. Les services web existant vont également évoluer notamment en ce qui concerne les schémas et la projection des caches qui seront dans les prochains mois callés avec ceux de Google Maps et de Bing Maps. Dans quelques mois également, les utilisateurs pourront, grâce à ArcGIS 9.4, packager plus facilement les documents ArcMap et les modèles de Géotraitement afin de les partager encore plus facilement sur ArcGIS Online directement à partir de leur outil bureautique.

A moyen termes, d'autres évolutions majeures arriveront sur la plateforme ArcGIS Online pour permettre aux utilisateurs d'aller plus loin que le partage de fichiers et la composition de cartes en ligne. L'idée est de pouvoir proposer aux utilisateurs de diffuser à la volée, à partir d'ArcGIS online, des services web basés sur leurs Layer Packages, leurs Map Packages ou leurs Geoprocessing Packages. On parlera alors véritablement de Cloud Computing au service des applications SIG …

15 novembre 2009

SIG et services en ligne (1/2)


Signe de maturité du secteur de la géomatique ou simplement tendance de l'informatique en générale, la question de l'externalisation complète ou partielle de son infrastructure SIG nous est soumis de plus en plus souvent par nos clients. Aujourd'hui, plusieurs modèles d'externalisation plus ou moins avancés sont utilisés et démontrent leur efficacité dans l'industrie des technologies de l'information.

Tout d'abord le modèle SaaS (Software as a Service) dans lequel la totalité des fonctionnalités de l'application sont hébergées à l'extérieur de l'organisation et sont entièrement accédées en ligne. Ce modèle un véritable succès dans les domaines des ERP, des CRM, … (par exemple : Salesforce.com).

Plus générique et plus ouvert, le modèle IaaS (Infrastructure as a Service) aussi appelé HaaS (Hardware as a Service) donne accès à des capacités de stockage ou de calcul hébergées à l'extérieure de l'organisation et accessibles en ligne. Facilement extensibles (scalable) selon les besoins des applications, ces plateformes permettent de déporter une partie parfois conséquente de l'infrastructure de l'entreprise (réseau, stockage, mémoire et CPU). Les exemples les plus aboutis de type sont probablement les plateformes Amazon S3 et EC2.

Enfin, plus récemment le modèle PaaS (Platform as a Service) a fait son apparition en proposant un ensemble de fonctionnalités et de services ainsi que les capacités de développement d'applications associées hébergées à l'extérieure de l'organisation et accessible en ligne. On pourra citer l'exemple de la plateforme Microsoft Azure Services.


La technologie ArcGIS dans tout ça

Même si l'usage de ces modèles dans le monde de la géomatique est encore timide, dans l'écosystème ArcGIS, des solutions existent depuis quelques années. Qu'elles viennent d'ESRI, de ses distributeurs ou de certains de ses partenaires, elles offrent déjà un premier niveau de solution pour commencer à déporter une partie de son SIG et surtout elles préfigurent de ce qui sera possible dans les années à venir.

Le socle technologique ArcGIS (ArcObjects) permet de se caler dans certains des modèles évoqués ci-dessus. Par exemple, une partenaire ESRI pourra apporter des savoir-faire métiers en fournissant des services web à valeur ajoutée (avec ArcGIS Server) et les proposer dans le cadre d'un modèle SaaS ou PaaS. Sur le même principe l'ouverture de la plateforme ArcGIS permettra de s'intégrer assez facilement dans un modèle IaaS en déportant par exemple le stockage des données ou des cartes du SIG ou en virtualisant des serveurs SIG sur des plateformes extérieures à l'entreprise. Nous reviendrons très bientôt sur ce sujet dans arcOrama au travers d'un exemple concret lié à la virtualisation des caches.

Le meilleur exemple de la capacité des technologies ArcGIS à s'intégrer dans un modèle de type "Cloud Computing" c'est la plateforme ArcGIS Online basée en grande partie sur ArcGIS Server.
Depuis les premières offres de services en ligne ArcWeb, c'est presque 10 ans d'expérience qu'ESRI a accumulé dans le "Cloud GIS" ou plus explicitement dans la fourniture de données et de fonctionnalités SIG en ligne.

Avec la version 9.3.1 et les évolutions récentes d'ArcGIS Online, ESRI confirme aujourd'hui une orientation "Software + Service". Il s'agit à la fois d'enrichir la plateforme ArcGIS (bureautique ou serveur) avec des services web de cartes ou de tâches mais également d'étendre cette plateforme pour offrir un espace privilégié de partage et de recherche de contenus SIG.

Le sujet ArcGIS Online étant assez vaste, je détaillerai un peu ce qu'est ArcGIS Online aujourd'hui et les tendances pour demain dans la deuxième partie de cet article.

09 novembre 2009

GeoTwitter ...

Si Facebook a été le phénomène 2008 dans le domaine des réseaux sociaux, l'année 2009 marquera l'explosion de la plateforme Twitter. On peut bien entendu épiloguer sur le positionnement ou l'intérêt de cette plateforme de micro-blogging et essayer de la comparer à d'autres plateformes comme Facebook. Le sujet est passionnant et la toile regorge d'articles sur le sujet. Comme pour toute plateforme de ce type, c'est tout simplement le temps qui démontrera son utilité et les différentes capacités de networking dont certaines restent encore à découvrir. En attendant, arcOrama se met à l'heure de Twitter en y proposant, dans un premier temps, les titres des articles publiés. J'en profite également pour mentionner l'existence d'un Twitter ESRI France pour ceux qui veulent être connectés au plus près de l'actualité des produits ESRI.

Pour ceux qui souhaiteraient aller plus loin avec Twitter et l'aborder sous l'angle géographique, un exemple d'application réalisée avec l'API Silverlight ArcGIS et l'API Twitter. Exemple intéressant d'intégration de services WCF, cet exemple montre comment localiser sur une carte vos "friends" et consulter ainsi leurs Tweets.



Enfin, pour ceux qui ne connaissent pas encore Twitter et qui veulent rapidement comprendre comment cela fonctionne, cette vidéo explique assez bien les concepts.

07 novembre 2009

Une nouvelle version 1.3 pour l'API Flex


Depuis hier, une nouvelle version de l'API Flex ArcGIS est disponible. Ci-dessous une liste des évolutions les plus notables:
  • Support du SDK Flex 3.4 (les versions 3.0 à 3.3 sont toujours supportées)
  • Plus de propriétés de style pour les objets InfoContainer (utilisés pour les InfoWindows les InfoSymbols)
  • La projection WGS_1984_Web_Mercator_Auxiliary_Sphere est désormais reconnuer avec le Well-known ID 102100 pour travailler plus simplement avec des fonds de cartes Bing Maps et avec la classe WebMercatorUtil
  • Des nouvelles propriétés et méthodes pour manipuler les géométries des polylignes et des polygones (insertPoint, setPoint, getPoint, removePoint, …)
  • Gestion de facteur d'échelle sur les images des objets PictureFillSymbol

De nouveaux exemples de code ont également été ajoutés:

D'autres évolutions plus mineures ont été réalisées sur les classes existantes ainsi que la correction de quelques bugs. Vous retrouverez la liste exhaustive de ces nouveautés à la page suivante.