Le blog francophone consacré
aux technologies Esri

Flex vs. Silverlight – Communications avec le serveur


Toute application Web d'entreprise, cartographique ou non, a besoin d'échanger des informations avec un ou plusieurs serveurs (base de données, résultat d'un traitement, communication, messagerie, flux temps réel, …). Dans le cadre d'une application Web développée avec les API Flex ou Silverlight ArcGIS, la communication avec le serveur SIG est basée sur des mécanismes Rest implémentés par API Rest d'ArcGIS Server. Les classes des API Flex et Silverlight permettent au développeur d'accéder très simplement aux fonctionnalités Rest du serveur SIG. Ceci étant dit, toutes les fonctionnalités de votre application Web ne sont pas fournies par ArcGIS Server. Quelles sont donc les solutions natives de Flex et de Silverlight pour communiquer efficacement avec des composants serveur ?

Flex

Les applications Flex supportent plusieurs techniques de communication distante, basées sur des standards. Voici les trois grandes catégories de communication avec des données distantes:

Communication par Requête/Réponse HTTP

En utilisant le composant HTTPService, le composant WebService du framework Flex ou la classe API URLLoader de FlashPlayer, vous pouvez envoyer ou charger de la donnée non-compressée comme des blocs de texte, de la data encodée dans une URL ou des paquets XML, ou encore des paquets SOAP en utilisant le composant WebService du framework Flex. En utilisant Flash Remoting, pour envoyer et recevoir des paquets AMF, qui utilise un protocole binaire similaire à SOAP (mais beaucoup plus léger). Quelle que soit la technique utilisée, elle pourra s'appuyer sur de l'HTTP ou de l'HTTPS. C'est ce type de communication qui est utilisée par l'API Flex ArcGIS qui proposera en version 2.0 d'utiliser AMF (plutôt que JSON) comme format des paquets échangés.

Communication temps réel

Flex propose également des solutions de connexion de type socket, c'est-à-dire un canal de communication dédié entre le client et le serveur. Pour cela, fin 2007, Adobe a mis en Open Source une partie de sa solution Live Cycle Data Services en nommant cette solution BlazeDS. Basée sur un serveur Java gérant le Remoting et le Messaging, BlazeDS permet de faire du "push" de données en temps réel dans l'application cliente ce qui est impossible en utilisant les techniques standard de requête/réponse HTTP.

Communication par téléchargement de fichiers

L'API FileReference du Flash Player permet l'upload (ou le download) de fichiers directement à partir d'une application Flex vers (ou depuis) un serveur. Pour l'utilisation de l'upload, une configuration spécifique est à mettre en place sur le serveur (script + type de contenu).


Silverlight

Une fois de plus, l'héritage du framework .Net permet aux applications Silverlight de supporter différentes solutions de communication pour l'échange de données avec des serveurs distants:

ADO .Net Data Services

ADO .Net Data Services est le mécanisme de fourniture de données distantes proposée par Microsoft pour les applications Silverlight. Ce mécanisme permet l'accès et la mise à jour de bases de données distantes exposées sous la forme de ressources REST que l'application cliente manipule via des requêtes HTTP. Les classes DataServiceContext et DataServiceQuery des librairies Silverlight encapsulent les opérations sur les ADO .Net Data Services. L'usage de Linq dans ce contexte se révèle particulièrement efficace.

Services Web

Une application Silverlight peut accéder à des données distantes en accédant à des services web SOAP. Qu'il soit exposé via WCF (Windows Communication Fundation) ou par une autre couche serveur (Java, ASP .Net, …), l'application silverlight construira un proxy généré à partie des métadonnées du service SOAP. Silverlight peut également se connecter des services REST utilisant différents formats de données : XML, JSON, RSS et Atom. Ces différents formats peuvent être facilement manipulés par les composants de sérialisation Linq to XML, Link to JSON ou les composants Syndication.

WCF RIA Services

Technologie très récente (Visual Studio 2008 SP1), les WCF RIA Services permettent de ressoudre des problèmes classiques rencontrés lors du développement d'applications n-tiers comme les RIA. En particulier, les WCF RIA Services permettent de coordonner les logiques d'application entre le middle-tier et le presentation-tier. Ainsi, dès que les règles métiers sont modifiées au niveau du middle-tier, la logique d'application du presentation-tier est automatiquement mise jour (au moment de la compilation).

Communication temps réel

Silverlight propose des solutions de connexion de type socket pour établir un canal de communication dédié entre le client et le serveur. L'espace de nom System.Net.Sockets de Silverlight 3 fournit une implémentation managée basée sur l'interface Windows Socket s (Winsock) et sur UNIX BSD sur Mac OS X.

Communication par téléchargement de fichiers

Silverlight 3 dispose de fonctionnalités pour le téléchargement (upload et download) de ressources comme par exemple des fichiers de contenu XAML, des assemblies .Net, des fichiers multi-médias (images, vidéos, sons, …) ou encore des fichiers de données.

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article: