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 и ActionScript 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
Ссылки
Категория:Форматы данных