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