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

关键字: spring blazeds 整合 amf 协议

 来自于: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服务端支持

.NetJavaPHPRuby on RailPythonCurlColdFusion
BlazeDS.netBlazeDSAMFPHP PyAMFCurlCodeFusion
fluorineGranite data servicesZendRubyAMF   
WEBORBWebORBWebORB
WEBORB  WEBORB

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值