AMF协议扫盲篇

网络 网络管理
今天我们来认识一下AMF协议。这个协议时Adobe开发的一种消息交换协议,它具有多种特点包括:输出传输量的减小,更安全,有好的数据接口和更高的稳定性。

在以往的学习中,我们大多数来针对网络的构架中的协议来进行学习和讨论。那么今天,我们就来介绍一种比较特别的协议给大家认识,就是AMF协议。对一些开源性系统或者知识了解的朋友应该有听说过这个协议。

在日常的RIA开发中,Flex或者基于纯Actionscript3的RIA应用非常普遍。 在客户端与服务端的交互中,大家用的比较多的几种方式是:纯文本内容,XML,JSON等。 不过,随着Adobe将AMF协议开源,越来越多的人开始使用基于AMF协议的实现来与服务器交互数据。 而BlazeDS是Adobe发布的一个开源AMF协议服务器端Java实现. 通过BlazeDS,你可以开发基于Flex,Actionscript3的客户端应用程序,并且使用AMF(Advanced Message Format)与服务器交互数据。本文是这个系列教程中的***篇,目的是介绍AMF协议。

AMF协议是Adobe开发的一种消息交换协议,其优点包括:

更小的数据传输量

由于AMF协议采用了二进制的编码方式,省去了很多控制符。比如在XML中,我们传输一段数据,需要把许多XML标签都传输过去,类似于<item></item>此类的控制符没有太大的实际意义,但是很大程度上增加了数据传输量。

AMF协议则省去了大部分的可见控制符,采用二进制编排方式,效率极高。另外,由于同时也对数据进行了压缩,因此同样的数据,可以极大节省带宽。如果你的服务器每天的流量在1百万以上的访问,这些节省的流量则是想等客观的。

更安全的数据传输

在基于二进制编码的前提下,数据被编码传输。虽然不能满足加密数据的需要,但是,可以避免其他人直接查看数据内容。

对程序员更友好的数据接口

AMF本质上也是一种远程方法调用的支持协议,其可以将服务器端或者客户端的对象序列化,当数据被传输到目的端时,重新反序列化成目的端的内存中的对象。

大家在进行XML操作的时候,会花费很多精力处理XML的编码与读取。比如在服务器,大家需要将数据从数据库或者内存中的某处取出,对其进行一定的数据编码,生产一个XML文档。发送到客户端,在客户端,则需要将XML解析,将其中的数据还原到内存中。 这个过程在使用AMF协议的时候,就被省略了。AMF协议可以很好的支持J2ee开发中的VO模式。

数据的传输稳健性更高

这也许不是AMF协议自身的功能,而是要归功于Flash Player.由于我们使用AMF协议的时候,一般都是使用基于Flash客户端。我们在开发过程中测试传送100万条数据。如果使用浏览器的Javascript引擎接受,不管使用任何编码协议,I.E浏览器几乎是要崩溃的,Firefox则是运行极为缓慢。而在使用AMF协议传输到Flash播放器中传输这些数据,对于客户端的影响则是要小很多的。最起码程序还能正常响应。

在开发Flex应用程序的时候,根据后端服务器使用的不同情况,目前可以支持AMF的编程语言有.Net,Java,PHP,Ruby on Rail,python,curl, ColdFusion 等 。

责任编辑:佟健 来源: 互联网
相关推荐

2010-06-21 14:37:36

AMF协议

2010-06-21 15:06:45

AMF协议

2010-06-24 16:57:30

AMF协议

2010-06-21 13:59:33

AMF协议

2010-06-28 09:43:14

AMF协议

2010-06-28 10:03:34

AMF协议

2010-06-28 09:50:42

AMF协议

2010-06-21 13:14:09

AMF协议

2010-06-19 13:47:39

AMF协议

2010-06-18 14:06:03

AMF协议

2010-06-18 15:20:31

AMF协议

2010-06-18 14:31:41

AMF协议

2011-03-08 15:47:32

函数式编程

2009-07-15 16:17:59

无线网络协议

2023-06-08 16:20:27

2022-12-08 15:51:19

2023-10-18 08:05:52

2020-03-18 12:47:59

设计模式ERP

2010-03-19 09:24:14

无线网络

2020-06-03 11:06:26

DNS域名缓存
点赞
收藏

51CTO技术栈公众号