论坛首页 编程语言技术论坛

flex ria应用的系统结构

浏览 3296 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-03-07  
近日看到一则新闻说 Chet Haase 从sun 跳槽到了adobe.chet原来sun公司在客户端技术的架构师(http://weblogs.java.net/blog/chet/). 看来现在adobe的吸引力不小.chet写了一篇文章解释flash和flex 的关系:
(http://graphics-geek.blogspot.com/2008/02/moment-of-reflexion.html)

近期一直在搞这方面的东西,于是有感而发,整理了下面这个结构图,希望是正确的,呵呵.



最底层的基础是as3虚拟机和flash player api. 象基本的数据类型,xml处理,正则表达式这些都可以认为是as3虚拟机的一部分,其它的 以flash.*开头的包里基本上都是属于flash player api的范围,包括显示对象,网络等.这些类构成了flash 平台可编程的基础.这些类在flash和flex的应用程序中都可以使用.
在这之上,包括了两种组件框架,flash组件框架(一般以fl.*命名),flex组件框架(以mx.*)命名.flash的组件框架结构相比较flex组件框架要简单得多,flex的组件框架是相当的庞大而复杂.
在组件框架之上就是我们自己的应用程序了.一般在flash里面开发的应用程序,只能使用flash组件; flex的情况有点特殊,基于flex的应用程序一般是用mxml开发界面,直接继承Application作为顶级显示对象,但flex 的编译器mxmlc确实可以编译直接继承Sprite的类,并将它作为顶级显示对象,这种情况下,在程序中是可以使用flash 组件框架的,前提是将这些类打包成为swc文件后放到mxmlc可以识别的路径上.(无论是flash开发环境还是flex sdk都没有这个swc文件,需要自己动手).
无论是flash的应用程序和flex 的应用程序在和服务器交互时,主要可以两种方式:
*  通过http之上的amf协议(也就是flash remoting),连接到支持amf协议的应用服务器上,现在主流的服务器端技术,java,php,.net都有开源的flash remoting实现,而java平台上除了第三方的开源组件外,更有正宗的系出adobe的blazeds(这个也是开源的).
*  通过rtmp或者rtmpt协议连接到flash media server或者open red5. Flash media server是adobe的商业产品,主要是用来做视频点播,视频会议,视频广播等应用的,fms的开发主要是使用javascript(非客户端的as3,而是老式的javascript). Open red5是基于java平台,spring,apache mina,jetty的一个开源产品,实现了rtmp,rtmpt,amf协议,最新的版本是0.7. open red5提供以下功能: 服务器->客户端的流媒体发布,包括flv格式和mp3格式. 客户端->服务器的流媒体录制(仅限于录制flv格式);shared object, 这是fms和red5上重要的用于同步连接客户端的技术;实时的流广播;flash remoting,可以将red5上的对象方法通过remoting暴露给flash 客户端调用,也可以让red5作为客户端,调用其它支持flash remoting 的服务器.
除了以上两种方式外,当然还有webservice,loader等等.当个人认为这些选项都没有什么优势,如果没什么限制的话,就是flash remoting和rtmp这两种是最好的选择.
在上面的所有层次中: as3 vm已经作为一个开源项目捐赠给mozilla基金会,flex组件和flash组件都是开源,应用服务器开源的选项大把,流媒体服务器也有了open red5这么一个优秀的开源选择(否则就得接受fms 高昂的价格).
可以看出,除了flash 播放器外,都是开源的了,flex这套框架,经过了三个主要版本的发展,已经很成熟,有不少基于flex的应用(http://flex.org/showcase/)
相比较而言,javafx现在连个正式版的编译器都没有发布, Silverlight没有一个像样的应用.所以,flex是目前构造ria应用的不二选择.

 

  • 大小: 28 KB
   发表时间:2008-03-09  
Flash Media Server 和 Open Red5 本身包括 AMF Flash Remoting 功能吧?
0 请登录后投票
   发表时间:2008-03-09  
gz818:
据我的了解,open red5 的amf功能包含两部分: 作为服务器,将对象方法暴露给客户端,或者作为amf客户端,调用其它支持amf 协议的服务器.
而flash media server 仅仅支持作为amf 客户端.
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics