王文华
(昭通学院 计科系,云南 昭通 657000)
从网络产生到现在,已经走过半个世纪,网络技术的发展也日新月异。就网络应用开发领域而言,从早期的C/S模式到后来的B/S模式,再到以Ajax为核心的Web2.0。可以说每一次技术的革新都是一次网络技术的革命。如今,新一代的富因特网应用(Rich Internet Application,RIA)技术逐渐在网络中占据一席之地,其中较有代表性的技术即Adobe公司的Flex技术。
传统网络程序的开发基本是基于页面的,网络程序的表现层建立于HTML页面之上。HTML语言在表现文本方面是非常适合的,对于多媒体表现的能力有限。而且,HTML应用
程序功能单一、人机交互性差。随着RIA技术的不断发展,Web开发有了新的发展分支,即包含丰富用户体验的RIA应用程序。
富因特网应用程序,是指利用具有强交互性的富客户端技术,为用户提供一个全方位的网络体验。RIA技术集成了桌面应用的交互性和传统Web应用的部署灵活性,以期创建一个完整的用户体验。RIA技术提供了比HTML所能提供的更为丰富的界面表现元素,密集、响应速度快和图形丰富的页面
元素与数据模型结合在一起,为用户提供更好的使用体验。RIA技术的出现,必将给网络带来新的技术革命。
Flex是Adobe公司推出的基于开源、免费、跨平台的新一代富客户端平台。用户无需在自己的机器上做任何部署,就可以享受和C/S一样出色的用户界面。
Macromedia公司最早是使用Flash Player作为因特网的矢量动画平台,主要是面向娱乐功能和多媒体应用。随后,推出了ActionScript语言做为补充,利用ActionScript可以对Flash Player中的动画和控件进行较为复杂的逻辑控制。2000年8月Macromedia发布Flash 5.0的同时推出了全新的ActionS-cript语言,这个版本的ActionScript已经定位成一种完整的面向对象的语言,并且遵循ECMAScript的标准。在Macromedia被Adobe公司收购后,ActionScript语言被不断的改进。2007年,ActionScript 3.0发布,这是一种公认的“正规的”、“完整的”、“清晰的”面向对象语言。包含上百个类库,这些类库函盖了图形、算法、矩阵、XML、网络传输等诸多范围,为开发者提供了一个丰富的开发环境基础。
Flex是一个基于组件的开源的开发框架。它的核心是MXML,这是一种基于XML的标记语言。客户端系统使用ActionScript脚本语言来处理业务逻辑,可以控制对用户界面的设计,还可以同其它后台语言,如PHP,ASP,Ruby On Rails进行集成交流。一个完整的Flex应用是由MXML和ActionScript组成的。
Flex是一种客户端技术,Flex的代码最终会被编译成SWF文件,运行在安装了Flash Player的用户终端。Adobe的RIA为终端用户提供了两种解决方案:Desktop应用和Web应用。使用Desktop应用,需安装Adobe的AIR作为其运行平台(Runtime),这种方式类似于Java的虚拟机运行环境(JRE);对于Web应用,Adobe的Flex程序可以运行在内嵌于浏览器的Flash Player上,用户只需在浏览器中安装一个Flash Player插件即可访问SWF文件,实现了其统一的、跨平台的承载平台。由于SWF文件很小,所以有很快的网络下载速度。一般情况下,SWF文件会被嵌入在HTML代码中,部署到Web服务器上,供终端用户下载。
2.2.1 Flex应用程序最终被编译成SWF文件,所以无论任何操作系统和浏览器,它都同样下载为像素,不需要进行浏览器的兼容测试。这比很多脚本语言如JS中需要用大段代码检测浏览器的类型和版本,显得更简洁有效。
2.2.2 Flex富客户端提供了更丰富、更友善的界面给用户,互动性更好,而开发效率却大为提高;特别是Flex内建对音频和视频的支持,给用户提供更好的操作体验。
2.2.3 Flex3.0中新增了 HTML 组件,该组件允许 Flex应用程序访问 HTML页面。这样,Flex就可以集成 HTML、Javascript和Ajax等Web开发技术,从而开发出更加丰富的网络应用技术。
2.2.4 传统的页面网络应用设计都是使用CSS进行布局,对于程序员来说,使用DIV标签的布局过程既繁杂又痛苦。而通过使用基于容器的Flex标记语言(MXML),把确定的(fixed)和流动的(liquid)布局设计转变成想要的布局结果,这种过程变得非常容易。除此之外,Flex对于CSS也是完全支持的。
2.2.5 对于传统的Web应用程序,绝大多数都是一些形式和动态内容有关联的模版,无法实现数据层和表现层的分离。而使用Flex,用XML来描述GUI的外观,GUI和逻辑相分离,前端界面使用XML来描述,界面的控制由ActionScript来负责,后端的应用逻辑则封装在后端中间件中,与Flex前端界面相分离。实现了真正的数据和表现的分离。
2.2.6 Flex有自己的类似于VB或是Delphi,所见即所得的开发环境。比起Javascript/Ajax,其开发的效率更高。而Flex所采用的ActionScript是一种面向对象的语言,类似Java、.NET,对于Java或.NET程序员来说,学习成本很低。
2.2.7 Flex内建了视频、音频等多媒体组件,提供了丰富的API,能够与视频、音频等多媒体完美的结合。
富客户端技术在未来是网络技术的一个发展方向,并有可能替代传统HTML应用系统。Flex作为其中一员,从诞生到现在,其版本不断改进,功能也不断增强。Flex目前技术发展较快,越来越多的产品都是基于Flex技术的,如3G视频会议系统、网络流媒体点播平台,SNS等。
尽管Flex在某些方面还有不足,但随着技术的不断完善,用户需求的不断发展,Flex?必将迎来更美好的未来。
[1]Tariq Ahmed等.Flex 4 实战.清华大学出版社,2012.1机械工业出版社,2012.2
[2]程光磊.Flex技术研究.软件导刊.2011.3