Flash Remoting

Utilisez Flash Remoting et AMF pour optimiser les échanges de données client-serveur.

Vous pouvez charger du contenu distant dans des fichiers SWF à l’aide de XML. Toutefois, XML est constitué de texte brut que le moteur d’exécution charge et analyse. Il est particulièrement adapté aux applications qui chargent un contenu de petite taille. Si vous développez une application chargeant un contenu volumineux, envisagez d’utiliser la technologie Flash Remoting et le format AMF (Action Message Format).

AMF est un format binaire par le biais duquel un serveur et le moteur d’exécution peuvent partager des données. Il réduit la taille des données et améliore la vitesse de transmission. AMF étant un format natif du moteur d’exécution, l’envoi de données AMF au moteur d’exécution permet d’éviter la sérialisation et la désérialisation, opérations gourmandes en mémoire côté client. La passerelle Flash Remoting se charge d’exécuter ces tâches. Lors de l’envoi d’un type de données ActionScript à un serveur, la passerelle gère la sérialisation du côté serveur. Elle vous envoie également le type de données correspondant. Ce type de données est une classe créée sur le serveur qui expose un ensemble de méthodes qu’il est possible d’appeler à partir du moteur d’exécution. Parmi les passerelles Flash Remoting, citons ZendAMF, FluorineFX, WebORB et BlazeDS, une passerelle Flash Remoting Java open source officielle proposée par Adobe.

La figure ci-après illustre le concept Flash Remoting :

Dans l’exemple suivant, la classe NetConnection établit une connexion à une passerelle Flash Remoting :

// Create the NetConnection object 
var connection:NetConnection = new NetConnection (); 
  
// Connect to a Flash Remoting gateway 
connection.connect ("http://www.yourserver.com/remotingservice/gateway.php"); 
  
// Asynchronous handlers for incoming data and errors 
function success ( incomingData:* ):void 
{ 
    trace( incomingData ); 
} 
  
function error ( error:* ):void 
{ 
    trace( "Error occured" ); 
} 
  
// Create an object that handles the mapping to success and error handlers 
var serverResult:Responder = new Responder (success, error); 
  
// Call the remote method 
connection.call ("org.yourserver.HelloWorld.sayHello", serverResult, "Hello there ?");

La connexion à une passerelle Flash Remoting est simple. Il est toutefois possible de simplifier l’utilisation de Flash Remoting en faisant appel à la classe RemoteObject, qui figure dans le kit de développement SDK d’Adobe® Flex®.

Remarque : vous pouvez utiliser des fichiers SWC externes, tels ceux issus de Flex framework, dans un projet Adobe® Flash® Professional. Grâce à ces fichiers, vous pouvez vous servir de la classe RemoteObject et de ses dépendances sans recourir au reste du kit SDK de Flex. Les développeurs expérimentés peuvent même communiquer directement avec une passerelle Flash Remoting par le biais de la classe Socket brute, le cas échéant.