您现在的位置: 365建站网 > 365学习 > Spring与BlazeDS的整合之AMF协议介绍(1)

Spring与BlazeDS的整合之AMF协议介绍(1)

文章来源:365jz.com     点击数:283    更新时间:2009-09-12 16:51   参与评论

 来自于:http://www.riameeting.com

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

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

  1. 更小的数据传输量
    由于AMF协议采用了二进制的编码方式,省去了很多控制符。比如在XML中,我们传输一段数据,需要把许多XML标签都传输过去,类似于<item></item>此类的控制符没有太大的实际意义,但是很大程度上增加了数据传输量。
    AMF协议则省去了大部分的可见控制符,采用二进制编排方式,效率极高。另外,由于同时也对数据进行了压缩,因此同样的数据,可以极大节省带宽。如果你的服务器每天的流量在1百万以上的访问,这些节省的流量则是想等客观的
  2. 更安全的数据传输
    在基于二进制编码的前提下,数据被编码传输。虽然不能满足加密数据的需要,但是,可以避免其他人直接查看数据内容。
  3. 对程序员更友好的数据接口
    AMF本质上也是一种远程方法调用的支持协议,其可以将服务器端或者客户端的对象序列化,当数据被传输到目的端时,重新反序列化成目的端的内存中的对象。
    大家在进行XML操作的时候,会花费很多精力处理XML的编码与读取。比如在服务器,大家需要将数据从数据库或者内存中的某处取出,对其进行一定的数据编码,生产一个XML文档。发送到客户端,在客户端,则需要将XML解析,将其中的数据还原到内存中。 这个过程在使用AMF协议的时候,就被省略了。AMF协议可以很好的支持J2ee开发中的VO模式。
  4. 数据的传输稳健性更高
    这也许不是AMF协议自身的功能,而是要归功于Flash Player.由于我们使用AMF协议的时候,一般都是使用基于Flash客户端。我们在开发过程中测试传送100万条数据。如果使用浏览器的JavaScript引擎接受,不管使用任何编码协议,I.E浏览器几乎是要崩溃的,Firefox则是运行极为缓慢。而在使用AMF协议传输到Flash播放器中传输这些数据,对于客户端的影响则是要小很多的。最起码程序还能正常响应。

在开发Flex应用程序的时候,根据后端服务器使用的不同情况,目前可以支持AMF的编程语言有

.Net,Java,PHP,Ruby on Rail,python,curl, ColdFusion 等

AMF服务端支持

.Net Java PHP Ruby on Rail Python Curl ColdFusion
BlazeDS.net BlazeDS AMFPHP   PyAMF Curl CodeFusion
fluorine Granite data services Zend RubyAMF      
WEBORB WebORB WebORB
WEBORB     WEBORB

 对于.net的Adobe官方实现,目前我们暂时叫他BlazeDS.net,这个产品是我们从内线获得的消息,目前在研发,但是不知道什么时候放出来,应该不远了。

在下一篇教程中,我将向大家介绍BlazeDS中的一些基本概念,这有助于大家理解并且正确是用BlazeDS.

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛


发表评论 (283人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片
最新评论
------分隔线----------------------------