- Action Message Format
AMF is a binary format based loosely on the Simple Object Access Protocol (SOAP). It is used primarily to exchange data between an
Adobe Flash application and a database, using aRemote Procedure Call .Each AMF message contains a body which holds the error or response, which will be expressed as an
ActionScript Object.AMF was introduced with Flash Player 6, and this version is referred to as AMF 0. It was unchanged until the release of Flash Player 9 and
ActionScript 3.0, when new data types and language features prompted an update, called AMF 3. [ [http://download.macromedia.com/pub/labs/amf/amf0_spec_121207.pdf Adobe Systems Inc ] ]Adobe Systems published the AMF binary data protocol specification [ [http://download.macromedia.com/pub/labs/amf/amf3_spec_121207.pdf Adobe Systems Inc ] ] on December 13, 2007 and announced that it will support the developer community to make this protocol available for every major server platform.Data Types
AMF includes several core data types which are always present throughout the serialization of data:
* Byte - A simple 8-bit chunk of data. This is the simplest way to send AMF data.
* Int - A 16-bit number made of two consecutive bytes. The first byte is the most significant byte, and the second byte is the least significant byte.
* MediumInt - A 24-bit number, identical to the above except for the length.
* Long - A 32-bit number, same as above, but longer.
* Double - A 64-bit number made up of 8 consecutive bytes. It represents a floating point, signed number. The double is little-endian encoded.
* UTF8 - A UTF8 string shorter than 2^16 (65,536) bytes. It is made of an integer (two bytes) representing the string length, followed by the UTF8-encode string.
* LongUTF8 - A UTF8 string possible longer than 2^16 bytes. It consists of a long integer (four bytes) representing the string length, followed by the UTF8 encoded string.References
* http://osflash.org/documentation/amf
* http://livedocs.adobe.com/flex/201/langref/flash/net/ObjectEncoding.html
* http://pyamf.org/ (AMF for Python)
* http://www.themidnightcoders.com/weborb/php (AMF for PHP)
* http://www.amfphp.org (AMF for PHP)
* http://osflash.org/sabreamf (AMF for PHP5)
* http://labs.adobe.com/technologies/blazeds/ (AMF for Java)
* http://www.themidnightcoders.com/weborb/java (AMF for Java)
* http://www.osflash.org/red5 (AMF for Java)
* http://www.graniteds.org/ (AMF for Java)
* http://www.themidnightcoders.com/weborb/dotnet (AMF for .NET)
* http://fluorine.thesilentgroup.com/ (AMF for .Net)
* http://www.themidnightcoders.com/weborb/rubyonrails/ (AMF for Ruby on Rails)
* http://www.dpdk.nl/opensource/flash-remoting-and-resultsets-for-actionscript3 (communicating via amf with flash actionscript 3)
Wikimedia Foundation. 2010.