RPC in Flash, AMF

1. AMF (Action Message Format):

  1. Zend AMF
  2. Java Server BlazeDC
    • Java AMF Client (enable Java applications talk to AMF compliant servers such as BlazeDS, LCDS, or AMFPHP)

2. Benchmarks:

  1. Census: RIA Data loading Benchmarks
  2. Ajax and Flex Loading Benchmarks ( Read Comments as well !  or Google the name as you’ll need to make your investigation to make your opinion)
  3. WebService-HTTP Service – AMF (test from themidnightcoders)
  4. AMF vs. JSON vs. XML:
    • reply from Java Performance blog :  there are different costs for large amounts of data to be send
    • original post by R.Monsol Haefel ( blogged about the advantages and disadvantages of AMF versus JSON versus XML )
    • 5 1/2 blog post : “Now if you’re developing the back-end services yourself, then please, by all means, use AMF if you’re using Flash, and JSON if you’re using AJAX.”

3. Definitions:

  • AMF3  : a compact binary object serialization protocol.
  • AMF (from midnight coders site):
    is a binary protocol designed by Macromedia/Adobe enabling Flash/Flex clients to communicate with backend services. When a Flex/Flash client performs a remoting invocation, the data about the call is encoded in the AMF format and carried in HTTP request to the server. The message contains information about what method should be invoked, values for the arguments, etc. Since AMF is binary and includes a lot of optimizations to keep the size of the AMF messages small, it becomes very compact in comparison to SOAP/XML used by Web Services
  • WebORB and AMF:
    When a Flex/Flash client sends a Remoting/AMF invocation to the web server, it is an HTTP request with binary payload. Web servers do not have built-in knowledge of how to handle and parse AMF messages. As a result, there must be something plugged into web server to enable processing of the AMF messages. Conceptually that piece of software is commonly referred as ‘Remoting Gateway’. A gateway is responsible for parsing and AMF messages, understanding what method should be invoked, handling method invocation and serializing return value back to the client. WebORB is an example of a remoting gateway. However, the product has evolved to provide significantly more functionality to enable other forms of client-server integration.

4. Notes:

  • Add Gzip option on tests ( apply Gzip to JSON string to compact sending data)

Tags: ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: