AMF (, формат повідомлень про дії) — бінарний формат обміну даними, який використовується у додатках, створених за допомогою мови програмування Action Script. Побудований на основі протоколу Simple Object Access Protocol та використовується переважно для обміну інформацією між Adobe Flash та базами даних. Action Message Format більш економний за трафіком в порівнянні із XML та надає можливість передавати типізовані об'єкти.

Історія Компанія Adobe Systems оприлюднила специфікацію AMF протоколу 13 грудня 2007 року і тоді ж анонсувала подальшу підтримку та розвиток формату. Уперше AMF був представлений із Flash Player 6. Наступна версія, що отримала назву AMF3, з'явилася із виходом Flash Player 9 та Action Script 3.0 .

AMF3

Нова версія протоколу містить деякі зміни у типах даних. Повідомлення, що містять закодовану AMF3 інформацію, має байт, що визначає тип повідомлення, встановлений у 0х11 замість 0х14, а також містить додатковий 0x00 байт у кінці заголовку. При цьому, AMF3 зворотньо сумісна з попередніми версіями, і може не мати даної інформації. Маркери типів даних в AMF3:

Undefined — 0x00 Null — 0x01 False — 0x02 True — 0x03 Integer — 0x04 Double — 0x05 String — 0x06 XML — 0x07 Date — 0x08 Array — 0x09 Object — 0x0A XML End — 0x0B ByteArray — 0x0C

Підтримка AMF На даний момент, формат AMF підтримується більшістю відомих серверних мов та платформ у вигляді окремих бібліотек або фреймворків.

Платформи: ColdFusion — Adobe ColdFusion 10 Standard haXe — haXe Remoting hxformat Java — Adobe BlazeDS, Adobe LiveCycle Data Services , Exadel Flamingo , RED 5 , Cinnamon , OpenAMF, Pimento , Granite , WebORB for Java .NET — WebORB for .NET, FluorineFx (LGPL), AMF.NET (розробка припинена) PHP — AMFPHP , SabreAMF , WebORB for PHP, Zend_Amf, php-amf3 Python — PyAMF , Flashticle, amfast , Plasma Perl — AMF::Perl , Storable::AMF , AMF::Connection cURL — Curl Data Services Ruby — RubyAMF , WebORB for Rails, Rocket AMF Erlang — Erlang-AMF JavaScript — JSAMF ABAP — ABAP AMF Delphi — kbmMW iOS — CocoaAMF Powershell — Powershell AMF

Фреймворки: Ruby on Rails — RubyAMF Zend Framework — Zend_AMF OSGi Framework — AMF3 for OSGi Django — Django AMF CakePHP — CakeAMFPHP Grails — BlazeDS Trac — TracRpcProtocolsPlugin . (Потребує XmlRpcPlugin версії 1.1.0 або вищу). Web2py — PyAMF kbmMW

Посилання