Flash Remoting

최적화된 클라이언트-서버 데이터 통신을 위해 Flash Remoting 및 AMF를 사용합니다.

XML을 사용하여 원격 내용을 SWF 파일로 로드할 수 있습니다. 하지만 XML은 런타임에서 로드하고 파싱하는 일반 텍스트이므로 제한된 크기의 내용을 로드하는 응용 프로그램에 가장 적합합니다. 대용량 내용을 로드하는 응용 프로그램을 개발하는 경우에는 Flash Remoting 기술과 AMF(Action Message Format)를 사용하는 것이 좋습니다.

AMF는 서버와 런타임 간에 데이터를 공유하는 데 사용되는 이진 형식입니다. AMF를 사용하면 데이터의 크기가 줄어들어 전송 속도가 향상됩니다. AMF는 런타임의 기본 형식이므로 런타임에 AMF 데이터를 전송하면 메모리를 많이 사용하는 클라이언트 측 직렬화 및 직렬화 해제를 방지할 수 있습니다. 원격 게이트웨이는 다음과 같은 작업을 처리합니다. ActionScript 데이터 유형을 서버에 보낼 때 원격 게이트웨이는 서버 쪽에서 직렬화를 처리합니다. 게이트웨이는 또한 해당 데이터 유형도 보냅니다. 이러한 데이터 유형은 런타임에서 호출할 수 있는 메서드 집합을 노출하는 서버에서 만들어진 클래스입니다. Flash Remoting 게이트웨이에는 ZendAMF, FluorineFX, WebORB 및 Adobe 공식 오픈 소스 Java Flash Remoting 게이트웨이인 BlazeDS 등이 포함됩니다.

다음 그림에서는 Flash Remoting의 개념을 보여 줍니다.

다음 예제에서는 NetConnection 클래스를 사용하여 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 ?");

원격 게이트웨이 연결은 간단합니다. 하지만 Adobe® Flex® SDK에 포함된 RemoteObject 클래스를 통해 Flash Remoting을 사용하는 것이 훨씬 간단할 수 있습니다.

참고: Flex 프레임워크의 파일 같은 외부 SWC 파일을 Adobe® Flash® Professional 프로젝트 내부에서 사용할 수 있습니다. SWC 파일을 사용하면 Flex SDK의 나머지 기능을 사용하지 않고도 RemoteObject 클래스와 이 클래스의 종속성을 사용할 수 있습니다. 고급 개발자는 필요한 경우 원시 Socket 클래스를 통해 직접 원격 게이트웨이와 통신할 수도 있습니다.