Action Message Format

У этого термина существуют и другие значения, см. AMF.

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

История

Adobe Systems опубликовала спецификацию AMF протокола 13 декабря 2007 года и тогда же анонсировала дальнейшую поддержку и развитие формата[1]. Впервые AMF был представлен с Flash Player 6. Следующая версия, получившая название AMF3, появилась с выходом Flash Player 9 и [[AMF 3.0. спецификация http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/amf/pdf/amf-file-format-spec.pdf%7CActionScript (недоступная ссылка)]] 3.0[2].

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 Архивная копия от 14 октября 2007 на Wayback Machine, WebORB for Java
  • .NET — WebORB for .NET, FluorineFx (LGPL), AMF.NET (разработка прекращена)
  • PHP — AMFPHP Архивная копия от 15 октября 2011 на Wayback Machine, 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

Фреймворки:

Ссылки

  1. AMF 0 Specification  (неопр.). Дата обращения: 18 октября 2009. Архивировано 28 августа 2008 года.
  2. AMF 3 Specification  (неопр.). Дата обращения: 4 июля 2009. Архивировано из оригинала 20 марта 2012 года.