AMF
AMF (англ. Action Message Format, формат повідомлень про дії) — бінарний формат обміну даними, який використовується у додатках, створених за допомогою мови програмування Action Script. Побудований на основі протоколу Simple Object Access Protocol та використовується переважно для обміну інформацією між Adobe Flash та базами даних. Action Message Format більш економний за трафіком в порівнянні із XML та надає можливість передавати типізовані об'єкти.
Історія
Компанія Adobe Systems оприлюднила специфікацію AMF протоколу 13 грудня 2007 року і тоді ж анонсувала подальшу пiдтримку та розвиток формату[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
- 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
Посилання
- AMF 0 Specification
- AMF 3 Specification. Архів оригіналу за 20 березня 2012. Процитовано 18 травня 2014.