Flash Remoting

Funkcje Flash Remoting i format AMF zapewniają zoptymalizowane przesyłanie danych między klientem i serwerem.

Treść zdalną można ładować zdalnie do plików SWF w formacie XML. Dane XML są jednak zwykłym tekstem, który środowisko wykonawcze wczytuje i analizuje. XML działa najlepiej w aplikacjach, które ładują ograniczoną ilość treści. W przypadku tworzenia aplikacji, która ładuje znaczną ilość treści, należy rozważyć zastosowanie technologii Flash Remoting i formatu AMF (Action Message Format).

AMF jest formatem binarnym używanym do udostępniania danych między serwerem i środowiskiem wykonawczym. Stosowanie formatu AMF zmniejsza ilość danych i przyspiesza przesyłanie. AMF jest macierzystym formatem środowiska wykonawczego, dlatego wysyłanie danych AMF do środowiska wykonawczego umożliwia uniknięcie operacji szeregowania i deszeregowania po stronie klienta, które wymagają dużej ilości pamięci. Te zadania realizuje brama dostępu zdalnego. W przypadku wysłania danych typu ActionScript na serwer brama dostępu zdalnego realizuje serializowanie po stronie serwera. Ponadto brama wysyła do użytkownika dane odpowiedniego typu. Ten typ danych to klasa tworzona na serwerze, która udostępnia zestaw metod, jakie można wywołać w środowisku wykonawczym. Do bram Flash Remoting należą: ZendAMF, FluorineFX, WebORB i BlazeDS — oficjalna brama Java Flash Remoting firmy Adobe należąca do kategorii Open Source.

Poniższy rysunek ilustruje koncepcję Flash Remoting:

Powiększ obraz
Flash Remoting

W poniższym przykładzie wykorzystano klasę NetConnection w celu nawiązania połączenia z bramą 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 ?");

Nawiązywanie połączenia z bramą dostępu zdalnego odbywa się w sposób bezpośredni. Jednak korzystanie z rozwiązania Flash Remoting można jeszcze bardziej ułatwić poprzez korzystanie z klasy RemoteObject zawartej w pakiecie Adobe® Flex® SDK.

Uwaga: Zewnętrzne pliki SWC, np. pochodzące ze środowiska Flex, mogą być używane w projektach Adobe® Flash® Professional. Używanie plików SWC umożliwia korzystanie z klasy RemoteObject oraz jej zależności bez korzystania z pozostałych części pakietu Flex SDK. W razie potrzeby zaawansowani programiści mogą nawet komunikować się za pomocą bramy zdalnego dostępu za pośrednictwem surowej klasy Socket.