无论是采用Adobe AIR技术的桌面应用程序 ,还是结合Flash Player使用浏览器的应用,在需要加载或处理数据的时候往往都需要连接到服务器。在采用Adobe Flex或Flash CS3来开发应用程序的过程中,应用程序与服务器间交互的实现方式有很多选择。服务器本身除了可以运行Java、ColdFusion、.Net、 PHP、Ruby等某种服务器端技术之外,还必须具备网络通信的能力,这为Flash Player中运行的应用或Adobe AIR应用的客户端与服务器端间的交互奠定了基础。通常,两者间的通信采用的是HTTP协议-- 也就是web浏览器加载web页面和应用时所采用的协议。但是,HTTP协议下采用不同的数据传输方式会带来应用性能和开发效率的天壤之别。
很多在Abode AIR或Flash Player中运行的应用都采用XML-over-HTTP技术(比如SOAP、REST等)在客户端和服务器之间传输数据。这个方法很简单,也很容易搭建。无论是哪种服务器端技术都很容易应用XML,因为XML完全是一个基于文本的协议。在必须实现透明协议的时候,XML是完美的选择。比如,Flickr的web服务在HTTP传输之上采用的就是REST风格的XML。这样一来,无论是谁采用哪种技术都可以简单地通过向Flickr发送简单的基于文本的请求来与Flickr交互。Flickr的回复是简单的XML,开发者可以轻松地解析这个XML回复,使用其中的数据。像XML这样基于文本的协议的缺点是额外的数据抽象层的编写与维护工作相对很沉重。此外,如果数据需要序列化和反序列化,那么这个数据抽象层在客户端和服务器端都会占用很多资源。
Flash Player可以支持另外一种传输协议,这个协议能够缓解由基于文本的协议导致的传输瓶颈问题,能够帮助开发者以更简单的方式与服务器交互。这就是 AMF(Action Message Format)。它是一个二进制格式的协议,能够替代用于传输XML的基于文本的协议而在HTTP协议之上交换数据。采用AMF的应用中,数据抽象层完全可以省去,客户与服务器间的通讯效率比传统的应用基于文本的协议传输要高得多。Census RIA Benchmark应用程序可以证明AMF带来的性能优势。
过去几年里,大量旨在提供AMF实现的开源项目蜂拥而至,这些项目与Macromedia之前一个叫做Flash Remoting的产品很相似。由于这些开源项目,无论是PHP、Java还是其它技术的开发人员都得以能够在他们的应用中采用AMF。Flex 1.0版本发布的时候,就涵盖了AMF相关功能。Flex发布版本2的时候同时包含了XML和AMF的相关功能,但服务器端的AMF相关功能却特别转移到 Flex Data Services这个新产品中。Flex Data Services在集成到Live Cycle产品系列中的时候又被重新命名为LiveCycle Data Services。针对单个CPU服务器的LiveCycle Data Services ES Express是免费的,但针对拥有多个CPU服务器的产品则收费很高,这使得一些开发者在选择AMF的时候望而却步,其中一些人也因此干脆转而选择一些非标准的AMF实现。
2007年十二月,Adobe做出了两个巨大的决策,让所有人都能够使用AMF。第一个决定是公开AMF规范。规范公布以后,所有项目都能按照规范来实现 AMF,而不用再对协议做反向工程。无论back-end采用的是Java、ColdFusion、PHP、.Net、Ruby还是其它技术,AMF的实现都只需要遵守规范即可。另一个决策是以BlazeDS项目的方式开源LiveCycle Data Services ES中的部分技术。
BlazeDS中包含了AMF的Java实现,可以用来与服务器端的Java对象远程交互,也可以用来在客户端之间传递消息。开发人员可以借助 BlazeDS的远程技术简单地调用POJO、Spring服务或EJB方法。开发人员可以通过其消息系统从客户端向服务器端发送消息,当然也可应从服务器端向客户端发送消息。BlazeDS也可以与其他一些消息系统结合使用,比如JMS、ActiveMQ。由于其远程技术与消息系统采用的方式是在 HTTP协议上传输AMF数据,BlazeDS因此在性能上拥有很大优势,同时也避免了额外的数据抽象层的处理工作。BlazeDS在很多基于Java的应用服务器环境下都能正常工作,这些服务器包括Tomcat、WebSphere、WebLogic、JBoss以及ColdFusion。此外,无论是 web(在Flash Player中运行)还是桌面(在Adobe AIR下运行)的Flex应用程序中,BlazeDS的使用都很简单。
开发人员现在可以从Adobe Labs站点上下载预发布版本,将blazeds-samples.war文件部署到任何一个servlet容器中,就开始你使用BlazeDS开发的旅程了。这个web应用包中提供了很多预配置的示范应用,所有这些应用都可以通过http://localhost:8080/blazeds-samples/ (端口号由你所使用的应用服务器和服务器配置所决定)来访问。
你可以遵循下面的步骤向应用程序中引入BlazeDS远程服务:
创建一个新的POJO Java类,这个类中需要包含你想要从Flex应用访问的方法
在remoting-config.xml文件中配置BlazeDS的远程终端
创建一个使用RemoteObject类的Flex应用
若要使用BlazeDS消息服务,则需要下列步骤:
在messaging-config.xml文件中创建消息服务的终端
创建一个使用Producer和Consumer类来接收消息的Flex应用
通过注册Consumer的消息feed来监听消息。
这下就可以使用BlazeDS高效地向back-end的Java类发送远程请求了,也可以应用BlazeDS的消息系统了.
很多在Abode AIR或Flash Player中运行的应用都采用XML-over-HTTP技术(比如SOAP、REST等)在客户端和服务器之间传输数据。这个方法很简单,也很容易搭建。无论是哪种服务器端技术都很容易应用XML,因为XML完全是一个基于文本的协议。在必须实现透明协议的时候,XML是完美的选择。比如,Flickr的web服务在HTTP传输之上采用的就是REST风格的XML。这样一来,无论是谁采用哪种技术都可以简单地通过向Flickr发送简单的基于文本的请求来与Flickr交互。Flickr的回复是简单的XML,开发者可以轻松地解析这个XML回复,使用其中的数据。像XML这样基于文本的协议的缺点是额外的数据抽象层的编写与维护工作相对很沉重。此外,如果数据需要序列化和反序列化,那么这个数据抽象层在客户端和服务器端都会占用很多资源。
Flash Player可以支持另外一种传输协议,这个协议能够缓解由基于文本的协议导致的传输瓶颈问题,能够帮助开发者以更简单的方式与服务器交互。这就是 AMF(Action Message Format)。它是一个二进制格式的协议,能够替代用于传输XML的基于文本的协议而在HTTP协议之上交换数据。采用AMF的应用中,数据抽象层完全可以省去,客户与服务器间的通讯效率比传统的应用基于文本的协议传输要高得多。Census RIA Benchmark应用程序可以证明AMF带来的性能优势。
过去几年里,大量旨在提供AMF实现的开源项目蜂拥而至,这些项目与Macromedia之前一个叫做Flash Remoting的产品很相似。由于这些开源项目,无论是PHP、Java还是其它技术的开发人员都得以能够在他们的应用中采用AMF。Flex 1.0版本发布的时候,就涵盖了AMF相关功能。Flex发布版本2的时候同时包含了XML和AMF的相关功能,但服务器端的AMF相关功能却特别转移到 Flex Data Services这个新产品中。Flex Data Services在集成到Live Cycle产品系列中的时候又被重新命名为LiveCycle Data Services。针对单个CPU服务器的LiveCycle Data Services ES Express是免费的,但针对拥有多个CPU服务器的产品则收费很高,这使得一些开发者在选择AMF的时候望而却步,其中一些人也因此干脆转而选择一些非标准的AMF实现。
2007年十二月,Adobe做出了两个巨大的决策,让所有人都能够使用AMF。第一个决定是公开AMF规范。规范公布以后,所有项目都能按照规范来实现 AMF,而不用再对协议做反向工程。无论back-end采用的是Java、ColdFusion、PHP、.Net、Ruby还是其它技术,AMF的实现都只需要遵守规范即可。另一个决策是以BlazeDS项目的方式开源LiveCycle Data Services ES中的部分技术。
BlazeDS中包含了AMF的Java实现,可以用来与服务器端的Java对象远程交互,也可以用来在客户端之间传递消息。开发人员可以借助 BlazeDS的远程技术简单地调用POJO、Spring服务或EJB方法。开发人员可以通过其消息系统从客户端向服务器端发送消息,当然也可应从服务器端向客户端发送消息。BlazeDS也可以与其他一些消息系统结合使用,比如JMS、ActiveMQ。由于其远程技术与消息系统采用的方式是在 HTTP协议上传输AMF数据,BlazeDS因此在性能上拥有很大优势,同时也避免了额外的数据抽象层的处理工作。BlazeDS在很多基于Java的应用服务器环境下都能正常工作,这些服务器包括Tomcat、WebSphere、WebLogic、JBoss以及ColdFusion。此外,无论是 web(在Flash Player中运行)还是桌面(在Adobe AIR下运行)的Flex应用程序中,BlazeDS的使用都很简单。
开发人员现在可以从Adobe Labs站点上下载预发布版本,将blazeds-samples.war文件部署到任何一个servlet容器中,就开始你使用BlazeDS开发的旅程了。这个web应用包中提供了很多预配置的示范应用,所有这些应用都可以通过http://localhost:8080/blazeds-samples/ (端口号由你所使用的应用服务器和服务器配置所决定)来访问。
你可以遵循下面的步骤向应用程序中引入BlazeDS远程服务:
创建一个新的POJO Java类,这个类中需要包含你想要从Flex应用访问的方法
在remoting-config.xml文件中配置BlazeDS的远程终端
创建一个使用RemoteObject类的Flex应用
若要使用BlazeDS消息服务,则需要下列步骤:
在messaging-config.xml文件中创建消息服务的终端
创建一个使用Producer和Consumer类来接收消息的Flex应用
通过注册Consumer的消息feed来监听消息。
这下就可以使用BlazeDS高效地向back-end的Java类发送远程请求了,也可以应用BlazeDS的消息系统了.
发表评论
-
Flex组件的一些怪问题
2010-08-13 17:55 1022Flex组件的一些怪问题 ... -
tree 单击节点,打开
2010-07-27 13:36 1045var item:Object=Tree(event.c ... -
bitmap,bitmapdata截图
2010-07-09 11:33 1325<?xml version="1.0&q ... -
flex 画虚线
2010-06-30 11:25 1070转:http://dxm1986.iteye.com/blog ... -
flex 特效
2010-06-29 16:36 1138flex特效 [ 20 ... -
textinput restrict
2010-06-17 20:10 1077Flex TextInput 禁止输入特殊字符 < ... -
preloader 美化
2010-06-11 16:56 993loader 主体: package com.di ... -
flex 加载 bmp图片
2010-06-06 10:17 1899<?xml version="1.0& ... -
tooltip巧妙
2010-06-03 17:11 781<?xml version="1.0&qu ... -
flex httpservice 读缓存
2010-06-02 09:36 1046发现谷歌浏览器器也读缓存 没办法 req.url=&q ... -
datagrid显示tooltip方法
2010-05-28 17:19 1309在DataGrid上显示toolTip &l ... -
flex tabnavigator 事件
2010-05-20 09:16 1546最近用到TabNavigator,想在那个tabBar上点 ... -
改变Flex DataGrid 行的背景色
2010-05-18 21:04 1625首先写自定义类 继承自DataGrid package ... -
Adobe AIR应用案例128例
2010-05-18 21:01 680http://www.cnblogs.com/xxcainia ... -
flex 缓冲函数
2010-05-18 20:58 824http://fleksray.org/skins/treec ... -
includelayout 属性
2010-05-18 19:19 919一直被这个问题困扰,就是在设置UI的Visible的时候, ... -
destroyItemEditor
2010-05-17 16:37 816var dg:DataGrid=event.currentTa ... -
cairgorm 详解
2010-05-12 21:27 844转载: http://houwei.iteye.com/bl ... -
flex combobox datagrid
2010-05-06 20:18 909<?xml version="1.0" ... -
flex 自定义控件 用 checkbox
2010-05-06 20:16 1367Flex : 用 CheckBox 做 DataGrid ...
相关推荐
AMF分为两种版本:AMF0和AMF3,AMF3在效率和压缩率上优于AMF0,因此更常见于现代应用。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于...
同时,由于AMF的二进制特性,相比基于文本的协议(如HTTP或XML-RPC),AMF通常能提供更快的数据传输速度和更低的网络带宽消耗。 在实际应用中,AMF.NET可以被集成到ASP.NET、WCF或其他.NET服务框架中,创建高性能的...
AMF3(Action Message Format version 3)协议是Adobe公司为Flash Player和Flex应用程序之间通信设计的一种二进制数据交换格式。它旨在提高数据传输效率,同时保持足够的灵活性以适应不同类型的复杂数据结构。AMF3...
此外,由于AMF是二进制格式,如果需要在HTTP请求中传输,通常需要进行Base64编码,这会增加网络传输的开销。 在实际应用中,AMF常用于Flex和Flash中的远程方法调用(RPC),比如通过Flash remoting来调用服务器端的...
AMF3(Action Message Format version 3)是Adobe公司开发的一种二进制数据序列化格式,主要用于Flash Player和Flex应用程序与服务器之间的数据交换。在C++编程环境中,AMF3库可以帮助开发者高效地处理这种数据格式...
AMF3,全称为Action Message Format 3,是Adobe Flex和Flash Player之间进行数据序列化和通信的一种高效格式。在标题“amf3_spec_05_05_08.zip_AMF3_above flash player_player”中,我们可以理解这是关于AMF3规范的...
- Flex应用通常通过HTTP/HTTPS与服务器通信,使用AMF协议封装数据,通过Flash Player发送到服务器。这些请求可能包括服务调用、事件处理等。 3. **抓取AMF数据** - 抓取AMF数据需要特殊工具,如Charles、...
开源AMF协议解析封装主要涉及的是Action Message Format (AMF)技术在C#语言环境下的应用,特别是针对Flex客户端的服务端实现。AMF是一种高效的数据交换格式,常用于Adobe Flex和Adobe Flash Player与服务器之间的...
AMF(Action Message Format)是一种数据交换格式,主要用于Flash与服务器之间的通信,尤其在Adobe Flex应用中广泛应用。AMF数据分析器是一款专为处理和解析AMF数据而设计的专业工具,旨在提升开发人员对AMF数据的...
在Python中,处理AMF数据通常需要借助特定的库,这里提到的"amf.zip_AMF_amf_python"很可能是指一个针对Python 3.0及以上版本的AMF解析类库。 AMF数据格式有两种类型:AMF0(也称为AMF Lite)和AMF3,AMF3是AMF0的...
支持AMF格式的通信封包编码、解码、向AMF服务端发送请求、返回AMF数据解析。 支持RTMP封包编码、解码。 支持Flex外部化类的AMF编码、解码。 支持解压还原LZMA算法压缩过的SWF文件(文件头三字节为:ZWS的 *.SWF...
AMF3 协议中文版定义 AMF(Action Message Format,动作信息格式)是一种压缩的二进制格式,用于序列化 ActionScript 对象图。序列化后的 AMF 编码对象图可以用来持久化,并在不同的会话中获得应用的公共状态,或者...
AMF0,全称为Action Message Format 0,是Adobe Flex框架中的一个数据序列化协议,用于在客户端(如Flash Player)和服务器之间高效地传输数据。这个格式是AMF(Action Message Format)的第一个版本,主要设计用于...
AMF,全称为Action Message Format,是一种用于在网络应用程序之间传输数据的高效二进制格式。在Web服务和富互联网应用程序(RIA)中广泛使用,尤其是Adobe Flex和Flash平台。AMF能够提供比纯文本格式(如JSON或XML...
标题中的"AMF.rar_FluorineFx_FluorineFx amf_amf__flex_flex amf"表明这是一个关于AMF(Action Message Format)技术的压缩包,其中包含了FluorineFx的相关资料。FluorineFx是.NET平台上开源的Adobe Flash Remoting...
AMF(Action Message Format)是一种高效的数据序列化协议,常用于Adobe Flex和Flash与服务器之间的数据交换。这个“AMF编码解码演示版”显然是一个用易语言编写的类库,目的是帮助开发者理解和操作AMF编码和解码...
Lua-Amf 是一个专为 Lua 语言设计的AMF(Action Message Format)解析库,它使得在 Lua 环境中处理AMF3格式的数据变得简单高效。AMF是一种二进制序列化格式,常用于Flash与服务器之间的数据交换,如Adobe的Flex和...
这个“amf解析构造.rar”压缩包文件包含的是易语言编写的AMF解析构造的源码,这对于理解AMF格式的工作原理以及在易语言环境下处理AMF数据具有重要的学习价值。 易语言是一种中国本土开发的编程语言,以其独特的汉字...
AMF3,全称为Action Message Format 3,是Adobe公司为Flash Player和Flex应用程序之间进行数据交换设计的一种高效二进制序列化格式。这个“AMF3 C++ 源码(修改版)”提供了对AMF3协议的C++实现,支持序列化和对象化...
AMF3(Action Message Format version 3)是Adobe公司开发的一种二进制数据序列化格式,主要用于Flash Player与服务器之间的数据交换。它提高了数据传输效率,支持多种数据类型,包括基本类型、对象、数组、日期等。...