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 та Action Script 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 [Архівовано 11 серпня 2011 у Wayback Machine.]
  • haXe — haXe Remoting hxformat [Архівовано 18 травня 2014 у Wayback Machine.]
  • Java — Adobe BlazeDS, Adobe LiveCycle Data Services [Архівовано 6 лютого 2013 у Wayback Machine.], Exadel Flamingo [Архівовано 4 травня 2011 у Wayback Machine.], RED 5 [Архівовано 23 жовтня 2019 у Wayback Machine.], Cinnamon [Архівовано 13 грудня 2013 у Wayback Machine.], OpenAMF, Pimento [Архівовано 31 травня 2014 у Wayback Machine.], Granite [Архівовано 14 жовтня 2007 у Wayback Machine.], WebORB for Java
  • .NET — WebORB for .NET, FluorineFx (LGPL), AMF.NET (розробка припинена)
  • PHP — AMFPHP [Архівовано 15 жовтня 2011 у Wayback Machine.], SabreAMF [Архівовано 18 травня 2014 у Wayback Machine.], WebORB for PHP, Zend_Amf, php-amf3 [Архівовано 1 квітня 2012 у Wayback Machine.]
  • Python — PyAMF [Архівовано 20 листопада 2014 у Wayback Machine.], Flashticle, amfast [Архівовано 18 травня 2014 у Wayback Machine.], Plasma
  • Perl — AMF::Perl [Архівовано 5 листопада 2013 у Wayback Machine.], Storable::AMF [Архівовано 5 листопада 2013 у Wayback Machine.], AMF::Connection [Архівовано 5 листопада 2013 у Wayback Machine.]
  • cURL — Curl Data Services
  • Ruby — RubyAMF [Архівовано 18 травня 2014 у Wayback Machine.], WebORB for Rails, Rocket AMF [Архівовано 10 червня 2018 у Wayback Machine.]
  • Erlang — Erlang-AMF [Архівовано 7 січня 2014 у Wayback Machine.]
  • JavaScript — JSAMF [Архівовано 10 червня 2018 у Wayback Machine.]
  • ABAP — ABAP AMF
  • Delphi — kbmMW [Архівовано 25 грудня 2021 у Wayback Machine.]
  • iOS — CocoaAMF [Архівовано 29 грудня 2013 у Wayback Machine.]
  • Powershell — Powershell AMF

Фреймворки:

Посилання

  1. AMF 0 Specification (PDF). Архів оригіналу (PDF) за 28 серпня 2008. Процитовано 18 травня 2014.
  2. AMF 3 Specification (PDF). Архів оригіналу (PDF) за 20 березня 2012. Процитовано 18 травня 2014.