RIA技术在云计算时代的应用
2010-06-11王倩男
王倩男
(中科院深圳先进技术研究院云服务实验室 深圳518000)
1 引言
云计算是2007年冬天兴起的一个新名词,现已成为时下最具热度的IT概念之一,它并不是一个新的技术,而是许多技术的融合和发展。在云计算系统中,界面的作用被提高到十分重要的位置,作为重要的界面交互技术之一的RIA也逐渐成为人们关注的热点。
RIA(rich internet application,富互联网应用程序)模式是界面交互技术从主机模式、C/S模式、B/S模式一路向前发展的结果。目前有 Flash、Flex、Silverlight、JavaFX 等许多RIA的解决方案。用户采用RIA技术,能在自己的客户端上享受丰富和灵活的界面体验,服务器的信息和计算能力将利用RIA技术和高速的网络通信能力传给终端用户,从而成为云计算所需要的重要支撑技术之一。
2 云计算简介
2.1 云计算
云计算是融合了虚拟化、分布式计算、Web2.0等许多新技术的一种基于网络的超级计算模式,即把存储于个人计算机、移动电话和其他设备上的大量信息和处理器资源集中在一起,将计算任务分布在大量计算机构成的资源池上,协同工作,在极大规模上用可扩展的信息技术能力使用户或企业能够根据需求获取计算力、存储空间和各种软件服务。
2.2 云计算与 SaaS、SOA、RIA
云计算不是凭空出世的新技术,它与SOA、SaaS和RIA这3种技术和服务模式有着密切的关系,有人形容它们为姻亲,有着相互提携的默契关系。
SaaS(software as a service)是一种将软件部署为托管服务并通过Internet进行访问的软件服务模式,有人将它列为云计算的几大形式之一。SOA (service oriented architecture),即面向服务的架构,它与SaaS殊途同归,都将重点放在服务上,通过SaaS的模式提供SOA的服务,结合两种技术的优点,走“软件”+“服务”的路线,是业界人士对二者的最佳期待。对于中小企业来说,部署SOA工程需要太多的时间和专业技能,而且还需要后期的维护,让中小企业感觉负担太重。所以,通过“云”提供的SOA服务,可轻松地解决上述问题。特别值得关注的是RIA技术,云计算的发展会使得更多的软、硬件资源从桌面转向云端,云计算系统上与用户进行交互的界面,往往就会采用RIA技术。另外,云计算一般提供Web service的接口,包括存储接口和数据库接口,这就给浏览器中的RIA程序提供了访问云计算资源的机会。从而使得RIA具备了更多的能力成为用户与云计算接触的桥梁,它的发展必将对云计算的发展产生重大的影响。云计算与SOA、SaaS和RIA的关系如图1所示。
3 RIA技术
3.1 界面交互技术的发展
界面交互技术伴随着计算机的发展,经过了以下几个发展阶段。
1946年,第一台电子计算机诞生,那时还谈不上界面,操作计算机的都是专业人员,他们通过卡片编写计算机工作指令,实现与计算机的交互。直到DOS等操作系统的出现,才实现了通过键盘、显示器等设备与主机进行交互。这种最早出现的人机交互方式——主机模式延续了几十年。
20世纪60年代末,美国军方出于军事安全方面的考虑,研究开发了计算机史上第一个网络,网络技术出现并快速发展使得主机模式不再能满足需要,促使了C/S(客户端/服务器)这种新交互模式的产生,用户通过客户机实现对服务器资源的访问与操作,这种模式只适用于局域网,而且要应对不同的客户端操作系统和平台。
20世纪90年代中后期,Internet覆盖了全球90多个国家,网络技术达到了普及化,C/S模式的弱点更是被人们所认识,通过浏览器访问服务器这种被称为B/S的交互模式渐渐被人们所接受和使用,逐渐取代了C/S的主导地位。
2001年,Macromedia率先提出RIA这个词组。但由于网络带宽、开发工具等原因,RIA的概念并未流行。2004年,Macromedia发布了 Flex 1.0,随着Flex、Ajax等RIA技术方案和产品的不断出现,RIA技术得到迅速发展。特别是2007年年底,云计算这一新兴的超级网络计算模式产生后,RIA技术成为了云计算时代最为主流的界面交互模式。
3.2 RIA技术简介
RIA具体指有高度互动性、丰富用户体验以及功能强大的客户端。采用RIA技术,用户可以在自己的客户端上进行如拖放式(drag and drop)以及在线和离线操作等多种自由操作,服务器的信息和计算力将利用RIA技术和高速的网络通信能力传递给终端用户,在不刷新页面的情况下提供快捷的界面响应时间。
3.3 几种主流的RIA技术解决方案
(1)Flash/Flex
2004年 3月,Macromedia公司基于 Macromedia Flash平台发布了Flex,Flex技术具有使用矢量图形、丰富的组件库、广泛支持多媒体、延迟实例化等特点。它的整体框架是使用Flex编译器将MXML编译成SWF文件,然后由Flash Player执行,实现用户的交互和数据管理等功能,最新的版本是Flex builder 3.0。
Flash是Macromedia公司设计的一种二维矢量动画软件,具有矢量图、流媒体、传输快、高智能、容易制作等优点,特别是Flash 5及以后版本,引入了名为ActionScript的脚本编程语言。ActionScript在设计时借鉴了JavaScript的语法,可以很好地在Flash中创建动态效果、用户交互等内容。目前,Adobe推出了真正完全面向对象的ActionScript 3。AS3遵守ECMAScript规范,引入了类似Java的面向对象语法,和对 ECMA for XML(E4X)的原生支持。Adobe推出了优秀的Flash Player 9,在优化了性能的同时,还可以支持 AS3。Adobe推出了 AIR(adobe integrated runtime,Adobe集成运行库),提供了强大的离线应用支持,允许Flash和Ajax应用程序脱离浏览器在本地运行,真正将互联网应用程序搬到了桌面上。Adobe的这些产品都可以与Flex技术无缝协作,必将促进其得到更加长足的发展。
(2)Silverlight
由微软推出的Silverlight可以视为.NET的WPF(windows presentation foundation)技术的一个子集,同时也是XAML的一个子集,为用户提供了丰富的应用,能在多个平台上提供高质量、互动性的视频,浏览器可以使用其.NET框架,包括动画、矢量图形和音频视频播放等功能。
Silverlight是一个跨浏览器、跨平台的软件,能进行炫目的多媒体体验,具有丰富交互功能的Web应用,它基于矢量图形,并且提供对Windows Media中流媒体的支持,集成了对DRM(数字版权管理)和WMV-HD的支持。
微软于2010年7月发布了Silverlight 3正式版,相比Silverlight 2,其新增了50多种功能,且体积更小(Windows版本仅为4 MB),更利于安装和更新。更重要的是,微软的配套产品线也更为完整,与Silverlight 3配套的Expression Blend 3和Visual Studio 2010将向开发者提供更先进的工具去实现富网络应用。
(3)JavaFX
2008年12月05日,Sun公司 (已于2009年被 Oracle公司收购)发布了JavaFX 1.0。将用户目标锁定为能够拓展Java界面体验的网页开发人员。到2011年,JavaFX的主要用户目标是大量使用诸如Adobe系统等设计工具的设计人员。JavaFX是建立在Java编程语言基础上的,采用一种声明式、静态类型编程语言的脚本语言,具有结构化代码、重用性和封装性,如包、类、继承和单独编译和发布单元等。JavaFX基于JavaSE和JavaME,这使其具有非常优秀的可移植性。
(4)Ajax
Ajax技术基于Asynchronous JavaScript,是 XML技术的异步数据传输技术,是由Jesse James Gaiiett创造的。Ajax技术包括用于标准的网页表示的XHTML和CSS技术、与服务器进行异步通信XMLHttpRequest方式、用于绑定数据和界面的JavaScript、进行动态显示和交互的DOM(文档对象模型)等。Ajax组合了这些技术,并没有增加新的技术,符合现有的行业标准。这些技术组合在一起改变了Web页面的外观和更新数据方式,实现了页面的无闪烁刷新,提供快捷的界面响应时间。最早的RIA应用就是基于Ajax的,其代表就是Gmail。在Gmail中,人们从收件箱点开一封邮件,页面不会被刷新,只有邮件的内容被下载,这符合RIA的特性。
4 云计算时代RIA技术的应用
(1)提高了云平台客户端数据处理能力
RIA技术的最关键应用就是利用中间层避免了传统页面刷新问题,将大部分处理任务都移植到客户端,客户端可以进行数据的处理,仅保留一些必要数据与服务器端进行信息交互。提供了快捷的响应时间,这一应用可以明显提高云计算客户端的界面特性,使界面更加友好,同时,减轻了带宽的压力。
(2)提供给用户丰富的界面体验
利用RIA技术可以对云计算用户客户端界面进行有效的布置,以更适应用户习惯、更方便快捷的方式展示信息,改善了传统高性能计算界面不够友好的交互性能。RIA比用HTML实现的接口更加健壮、反应更加灵敏和更具有令人感兴趣的可视化特性。
(3)应用范围广泛
RIA技术具有跨平台性,可以继续使用现有的应用程序模型(包括J2EE和.Net),无需大规模替换现有的Web应用程序,这些都符合云计算多平台、多领域的特点。例如,目前被广泛使用的Flex技术,它与平台无关,只要安装了Flash Player播放器就可以运行。
(4)自由操作行为
RIA技术支持离线操作,可以在连接丢失时以离线的方式工作。以离线存储技术Google Gears为例,未连接到互联网时,网络应用程序使用JavaScript API在离线状态下运行,离线时所做的编辑会一直存储在自己的计算机上。
(5)商业前景广阔
RIA具有广阔的商业应用前景,它可以为企业提供多元化的重要业务效益,包括提高产销量、延长网站逗留时间、频繁的重复访问、减少带宽成本、减轻服务器端负载压力等。从工业界的角度来讲,云计算是一种商业模型,RIA技术必将助力于云计算的商业化进程。
(6)多种技术相互合作
RIA包含许多解决方案,但一些技术还不够成熟,各有优势及不足,而且处于“百家争鸣”、“各自为政”的状态。云计算的发展需要这些技术的支持,有理由相信,只有将几种技术进行融合,才能实现更好的RIA模式。
5 结束语
RIA技术可以为用户打造一个高度互动性、丰富用户体验以及功能强大的客户端,使用户拥有更加灵活、丰富的界面体验,必将成为云计算系统的重要支撑技术。
1 RIA:幻想之门,http://dante.im/introducing-ria
2 张金砚.云计算与RIA,http://blog.doxt.com/?p=230
3 王鹏.走进云计算.北京:人民邮电出版社,2009
4 欧阳.云计算未来的趋势.程序员,2008(11)
5 云计算时代SOA与SaaS的协同,http://www.analysys.com.cn/web2007/yjxx_index.php/id_244031.html