浏览 3297 次
锁定老帖子 主题:flex ria应用的系统结构
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-03-07
(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应用的不二选择.
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-03-09
Flash Media Server 和 Open Red5 本身包括 AMF Flash Remoting 功能吧?
|
|
返回顶楼 | |
发表时间:2008-03-09
gz818:
据我的了解,open red5 的amf功能包含两部分: 作为服务器,将对象方法暴露给客户端,或者作为amf客户端,调用其它支持amf 协议的服务器. 而flash media server 仅仅支持作为amf 客户端. |
|
返回顶楼 | |