플래시 플레이어는 기본적으로 AMF데이터를 지원하고 있다. 이 AMF라는 것은 오브젝트 인코딩 데이터로서 액션스크립트에서 사용되는 데이터들을 바이트 형태로 저장 / 전송 할 수 있는 방식이다.
가령 액션스크립트의 NetConnection을 사용하여 리모트 콜을 하면 데이터는 자동으로 AMF 형태로 직렬화 하고 사용하는 객체나 클래스에서는 이를 다시 AMF 형태에서 역직렬화 하여 사용한다. 마찬가지로 Shared Object 에 저장을 할때는 자동으로 AMF로 저장되고 Shared Object에서 읽어올 때는 액션스크립트 객체로 역직렬화 한다.
<출처 : http://butterguy.tistory.com/tag/registerClassAlias>
====================================================================================================
- AMF
FLASH MX 시절에 Macromedia 에서 Flash 플레이어와 원격 서비스간에 객체 엑세스 및 데이터 교환용으로 만든
http 기반의 프로토콜 이고 이를 AMF(Action Message Format) 라고 부릅니다
- 특징
/ 우린 가장 흔하게 서버와 데이터 통신을 한다고 하면 xml 을 떠오릅니다 가장 흔한 방법이죠 그러나 이게 만약 대용량이라면?
물론 분할로 데이터를 get방식으로 조금씩 필요한 데이터만큼 받으면 그걸 사용하면 상관없겠지만 여기서 걸리는건 트래픽 입니다
그리고 걸리는 보안문제 ... 이걸 해결해주는 녀석이 AMF 입니다
/ 서버로부터 객체를 전달 받은후 인코딩과정을 거치게 되면 완전한 형식으로 데이터로 변환
/ XML 은 보안이 되지 않습니다 .그러나 AMF 방식은 프로토콜이 전용이므로 보이지 않음 또한 80 포트를 사용하기 때문에
왠만한 방화벽을 통과할수 있습니다 ( stratus 테스트 했을때 공유기 에서는 작동 안되었던 문제 이거로 해결가능한건가 ? )
/ 원격 프로시져 호출을 압축된 이진 표현으로 인코딩하여 플래시 미디어 서버에서 현재 사용되고 있는 프로토콜형식으로 변환하여
전송합니다. 이 형식은 액션스크립트와 데이터값을 이진형식으로 직렬화 시키기 때문에 텍스트인 xml 보다 엄청난 양을 압축할수
있습니다 ( 바로 여기서 서버 부하 / 대용량 트래픽 문제를 약간 해소 할수 있을듯 합니다 )
% 이진표현인코딩 파일 포멧 관련 사이트
http://www.ezfmx.com/info/amf/
- 요즘은 원격으로 플래시 관련 디버깅을 하고 있다 . 이거에 관한 자세한 블러그는
http://blog.naver.com/logon77 에서 참고하길 바랍니다
- Flash Player 8 버전에서는 AMF0 / Flash Player 9 는 AMF3 사용 가능합니다
AMF3 스펙 을 보니
Object traits can now be sent by reference
Strings can now be sent by reference
int/uint type support
flash.utils.ByteArray type support, can also be sent by reference
flash.utils.IExternalizable support
Variable length encoding scheme for integers to reduce data size
References are sent using variable length integer
String UTF-8 length uses variable length integer
Array count uses variable length integer
A single Array type marker covers both strict and ECMA Arrays
Dates no longer send timezone information
Dates can now be sent by reference
XMLDocument UTF-8 length uses variable length integer
XMLDocument can now be sent by reference
XML type support, can also be sent by reference
XML UTF-8 length uses variable length integer
ByteArray type length uses variable length integer
Boolean true and false are now sent as one byte type markers
Unsupported type marker has been removed
Reserved RecordSet and Movieclip type markers have been removed
<출처 : http://hazbola.tistory.com/116>
<읽어볼 것 :http://cafe.naver.com/amfphpsamo/175>
<pdf 자료 : http://opensource.adobe.com/wiki/download/attachments/1114283/amf3_spec_05_05_08.pdf>
가령 액션스크립트의 NetConnection을 사용하여 리모트 콜을 하면 데이터는 자동으로 AMF 형태로 직렬화 하고 사용하는 객체나 클래스에서는 이를 다시 AMF 형태에서 역직렬화 하여 사용한다. 마찬가지로 Shared Object 에 저장을 할때는 자동으로 AMF로 저장되고 Shared Object에서 읽어올 때는 액션스크립트 객체로 역직렬화 한다.
<출처 : http://butterguy.tistory.com/tag/registerClassAlias>
====================================================================================================
- AMF
FLASH MX 시절에 Macromedia 에서 Flash 플레이어와 원격 서비스간에 객체 엑세스 및 데이터 교환용으로 만든
http 기반의 프로토콜 이고 이를 AMF(Action Message Format) 라고 부릅니다
- 특징
/ 우린 가장 흔하게 서버와 데이터 통신을 한다고 하면 xml 을 떠오릅니다 가장 흔한 방법이죠 그러나 이게 만약 대용량이라면?
물론 분할로 데이터를 get방식으로 조금씩 필요한 데이터만큼 받으면 그걸 사용하면 상관없겠지만 여기서 걸리는건 트래픽 입니다
그리고 걸리는 보안문제 ... 이걸 해결해주는 녀석이 AMF 입니다
/ 서버로부터 객체를 전달 받은후 인코딩과정을 거치게 되면 완전한 형식으로 데이터로 변환
/ XML 은 보안이 되지 않습니다 .그러나 AMF 방식은 프로토콜이 전용이므로 보이지 않음 또한 80 포트를 사용하기 때문에
왠만한 방화벽을 통과할수 있습니다 ( stratus 테스트 했을때 공유기 에서는 작동 안되었던 문제 이거로 해결가능한건가 ? )
/ 원격 프로시져 호출을 압축된 이진 표현으로 인코딩하여 플래시 미디어 서버에서 현재 사용되고 있는 프로토콜형식으로 변환하여
전송합니다. 이 형식은 액션스크립트와 데이터값을 이진형식으로 직렬화 시키기 때문에 텍스트인 xml 보다 엄청난 양을 압축할수
있습니다 ( 바로 여기서 서버 부하 / 대용량 트래픽 문제를 약간 해소 할수 있을듯 합니다 )
% 이진표현인코딩 파일 포멧 관련 사이트
http://www.ezfmx.com/info/amf/
- 요즘은 원격으로 플래시 관련 디버깅을 하고 있다 . 이거에 관한 자세한 블러그는
http://blog.naver.com/logon77 에서 참고하길 바랍니다
- Flash Player 8 버전에서는 AMF0 / Flash Player 9 는 AMF3 사용 가능합니다
AMF3 스펙 을 보니
그냥 다 무시하고 대충 슝슝 보면
- Boolean타입의 true/false을 한 바이트 타입마커로 지정
- Array로 ECMA array와 strict array을 동시지원
- 레퍼런스값, 길이값등을 가 변정수로 대체
- reference에 의해서 상대측 FlashPlayer에 있는 객체라면 전부 새로보낼 필요없이 참조번호만을 보낼수있나봄. (bandwitdh절약/성능개선)
- flash.utils.IExternalizable, XML등을 추가지원. DATE에서 timezone정보를 제외
결국 더욱 액션스크립트화 (?) 시켰고 / 참조값을 도입하여 성능을 개선시켰고 / XML 지원을 강화 / 길이값 제한을 없애는 한편 전송 성능 항상 시켰다는 내용입니다 ..^^
- 현재는 RTMP 라는 새로운 기술이 공개 되었습니다 약간 혼돈할지도 모르시겠지만 딱히 비교하자면
AMF 는 통신 내용에 대한 것이고 RTMP 는 통신 방식에 대한것이니 너무 복잡하게 생각하지 마시길 바랍니다 ^^
<읽어볼 것 :http://cafe.naver.com/amfphpsamo/175>
<pdf 자료 : http://opensource.adobe.com/wiki/download/attachments/1114283/amf3_spec_05_05_08.pdf>