devmae
개발자 향기
devmae
전체 방문자
오늘
어제
  • 전부 감상 (280)
    • Unity (52)
      • memo (37)
      • R&D (15)
    • 모바일 (32)
      • iOS (6)
      • Android (25)
    • 개발자 모드 (41)
      • 개발자처럼 파고들기 (28)
      • 한가해서 책읽는거 아님 (10)
      • 영상 요약 (3)
    • Languages (40)
      • C++ (23)
      • MFC (8)
      • Java (4)
      • javascript (5)
    • Flash (108)
      • tip (29)
      • tech (4)
      • as2.0 (1)
      • as3isolib (3)
      • flartoolkit (2)
      • 이미지 편집기 (2)
      • papervision3d (12)
      • scale form (2)
      • Flash Builder (12)
      • air (5)
      • as3.0 (20)
      • flash player (9)
      • 개념잡기 (6)
      • source (1)
    • +,-,×,÷ (3)
      • 수학 뽀개기 (3)

블로그 메뉴

  • 홈
  • 방명록

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.
devmae

개발자 향기

Flash/개념잡기

AMF란?

2010. 8. 11. 16:53
플래시 플레이어는 기본적으로 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
  • 그냥 다 무시하고 대충 슝슝 보면

    - Boolean타입의 true/false을 한 바이트 타입마커로 지정
    - Array로 ECMA array와 strict array을 동시지원
    - 레퍼런스값, 길이값등을 가 변정수로 대체
    - reference에 의해서 상대측 FlashPlayer에 있는 객체라면 전부 새로보낼 필요없이 참조번호만을 보낼수있나봄. (bandwitdh절약/성능개선)
    - flash.utils.IExternalizable, XML등을 추가지원. DATE에서 timezone정보를 제외


    결국 더욱 액션스크립트화 (?) 시켰고 / 참조값을 도입하여 성능을 개선시켰고 / XML 지원을 강화 / 길이값 제한을 없애는 한편 전송 성능 항상 시켰다는 내용입니다 ..^^

    -  현재는 RTMP 라는 새로운 기술이 공개 되었습니다 약간 혼돈할지도 모르시겠지만 딱히 비교하자면

    AMF 는 통신 내용에 대한 것이고 RTMP 는 통신 방식에 대한것이니 너무 복잡하게 생각하지 마시길 바랍니다 ^^

    <출처 : 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>
      'Flash/개념잡기' 카테고리의 다른 글
      • 타임라인에 사운드 배치시 Sync설정
      • SOA와 미들웨어, EAI하고 차이
      • wmode
      • Ajax 기술 및 RIA 플랫폼 분야 시장 조사
      devmae
      devmae
      enjoy with me?

      티스토리툴바