王倩男
(中科院深圳先進(jìn)技術(shù)研究院云服務(wù)實(shí)驗(yàn)室 深圳518000)
云計(jì)算是2007年冬天興起的一個(gè)新名詞,現(xiàn)已成為時(shí)下最具熱度的IT概念之一,它并不是一個(gè)新的技術(shù),而是許多技術(shù)的融合和發(fā)展。在云計(jì)算系統(tǒng)中,界面的作用被提高到十分重要的位置,作為重要的界面交互技術(shù)之一的RIA也逐漸成為人們關(guān)注的熱點(diǎn)。
RIA(rich internet application,富互聯(lián)網(wǎng)應(yīng)用程序)模式是界面交互技術(shù)從主機(jī)模式、C/S模式、B/S模式一路向前發(fā)展的結(jié)果。目前有 Flash、Flex、Silverlight、JavaFX 等許多RIA的解決方案。用戶采用RIA技術(shù),能在自己的客戶端上享受豐富和靈活的界面體驗(yàn),服務(wù)器的信息和計(jì)算能力將利用RIA技術(shù)和高速的網(wǎng)絡(luò)通信能力傳給終端用戶,從而成為云計(jì)算所需要的重要支撐技術(shù)之一。
云計(jì)算是融合了虛擬化、分布式計(jì)算、Web2.0等許多新技術(shù)的一種基于網(wǎng)絡(luò)的超級(jí)計(jì)算模式,即把存儲(chǔ)于個(gè)人計(jì)算機(jī)、移動(dòng)電話和其他設(shè)備上的大量信息和處理器資源集中在一起,將計(jì)算任務(wù)分布在大量計(jì)算機(jī)構(gòu)成的資源池上,協(xié)同工作,在極大規(guī)模上用可擴(kuò)展的信息技術(shù)能力使用戶或企業(yè)能夠根據(jù)需求獲取計(jì)算力、存儲(chǔ)空間和各種軟件服務(wù)。
云計(jì)算不是憑空出世的新技術(shù),它與SOA、SaaS和RIA這3種技術(shù)和服務(wù)模式有著密切的關(guān)系,有人形容它們?yōu)橐鲇H,有著相互提攜的默契關(guān)系。
SaaS(software as a service)是一種將軟件部署為托管服務(wù)并通過(guò)Internet進(jìn)行訪問(wèn)的軟件服務(wù)模式,有人將它列為云計(jì)算的幾大形式之一。SOA (service oriented architecture),即面向服務(wù)的架構(gòu),它與SaaS殊途同歸,都將重點(diǎn)放在服務(wù)上,通過(guò)SaaS的模式提供SOA的服務(wù),結(jié)合兩種技術(shù)的優(yōu)點(diǎn),走“軟件”+“服務(wù)”的路線,是業(yè)界人士對(duì)二者的最佳期待。對(duì)于中小企業(yè)來(lái)說(shuō),部署SOA工程需要太多的時(shí)間和專業(yè)技能,而且還需要后期的維護(hù),讓中小企業(yè)感覺(jué)負(fù)擔(dān)太重。所以,通過(guò)“云”提供的SOA服務(wù),可輕松地解決上述問(wèn)題。特別值得關(guān)注的是RIA技術(shù),云計(jì)算的發(fā)展會(huì)使得更多的軟、硬件資源從桌面轉(zhuǎn)向云端,云計(jì)算系統(tǒng)上與用戶進(jìn)行交互的界面,往往就會(huì)采用RIA技術(shù)。另外,云計(jì)算一般提供Web service的接口,包括存儲(chǔ)接口和數(shù)據(jù)庫(kù)接口,這就給瀏覽器中的RIA程序提供了訪問(wèn)云計(jì)算資源的機(jī)會(huì)。從而使得RIA具備了更多的能力成為用戶與云計(jì)算接觸的橋梁,它的發(fā)展必將對(duì)云計(jì)算的發(fā)展產(chǎn)生重大的影響。云計(jì)算與SOA、SaaS和RIA的關(guān)系如圖1所示。
界面交互技術(shù)伴隨著計(jì)算機(jī)的發(fā)展,經(jīng)過(guò)了以下幾個(gè)發(fā)展階段。
1946年,第一臺(tái)電子計(jì)算機(jī)誕生,那時(shí)還談不上界面,操作計(jì)算機(jī)的都是專業(yè)人員,他們通過(guò)卡片編寫計(jì)算機(jī)工作指令,實(shí)現(xiàn)與計(jì)算機(jī)的交互。直到DOS等操作系統(tǒng)的出現(xiàn),才實(shí)現(xiàn)了通過(guò)鍵盤、顯示器等設(shè)備與主機(jī)進(jìn)行交互。這種最早出現(xiàn)的人機(jī)交互方式——主機(jī)模式延續(xù)了幾十年。
20世紀(jì)60年代末,美國(guó)軍方出于軍事安全方面的考慮,研究開(kāi)發(fā)了計(jì)算機(jī)史上第一個(gè)網(wǎng)絡(luò),網(wǎng)絡(luò)技術(shù)出現(xiàn)并快速發(fā)展使得主機(jī)模式不再能滿足需要,促使了C/S(客戶端/服務(wù)器)這種新交互模式的產(chǎn)生,用戶通過(guò)客戶機(jī)實(shí)現(xiàn)對(duì)服務(wù)器資源的訪問(wèn)與操作,這種模式只適用于局域網(wǎng),而且要應(yīng)對(duì)不同的客戶端操作系統(tǒng)和平臺(tái)。
20世紀(jì)90年代中后期,Internet覆蓋了全球90多個(gè)國(guó)家,網(wǎng)絡(luò)技術(shù)達(dá)到了普及化,C/S模式的弱點(diǎn)更是被人們所認(rèn)識(shí),通過(guò)瀏覽器訪問(wèn)服務(wù)器這種被稱為B/S的交互模式漸漸被人們所接受和使用,逐漸取代了C/S的主導(dǎo)地位。
2001年,Macromedia率先提出RIA這個(gè)詞組。但由于網(wǎng)絡(luò)帶寬、開(kāi)發(fā)工具等原因,RIA的概念并未流行。2004年,Macromedia發(fā)布了 Flex 1.0,隨著Flex、Ajax等RIA技術(shù)方案和產(chǎn)品的不斷出現(xiàn),RIA技術(shù)得到迅速發(fā)展。特別是2007年年底,云計(jì)算這一新興的超級(jí)網(wǎng)絡(luò)計(jì)算模式產(chǎn)生后,RIA技術(shù)成為了云計(jì)算時(shí)代最為主流的界面交互模式。
RIA具體指有高度互動(dòng)性、豐富用戶體驗(yàn)以及功能強(qiáng)大的客戶端。采用RIA技術(shù),用戶可以在自己的客戶端上進(jìn)行如拖放式(drag and drop)以及在線和離線操作等多種自由操作,服務(wù)器的信息和計(jì)算力將利用RIA技術(shù)和高速的網(wǎng)絡(luò)通信能力傳遞給終端用戶,在不刷新頁(yè)面的情況下提供快捷的界面響應(yīng)時(shí)間。
(1)Flash/Flex
2004年 3月,Macromedia公司基于 Macromedia Flash平臺(tái)發(fā)布了Flex,F(xiàn)lex技術(shù)具有使用矢量圖形、豐富的組件庫(kù)、廣泛支持多媒體、延遲實(shí)例化等特點(diǎn)。它的整體框架是使用Flex編譯器將MXML編譯成SWF文件,然后由Flash Player執(zhí)行,實(shí)現(xiàn)用戶的交互和數(shù)據(jù)管理等功能,最新的版本是Flex builder 3.0。
Flash是Macromedia公司設(shè)計(jì)的一種二維矢量動(dòng)畫軟件,具有矢量圖、流媒體、傳輸快、高智能、容易制作等優(yōu)點(diǎn),特別是Flash 5及以后版本,引入了名為ActionScript的腳本編程語(yǔ)言。ActionScript在設(shè)計(jì)時(shí)借鑒了JavaScript的語(yǔ)法,可以很好地在Flash中創(chuàng)建動(dòng)態(tài)效果、用戶交互等內(nèi)容。目前,Adobe推出了真正完全面向?qū)ο蟮腁ctionScript 3。AS3遵守ECMAScript規(guī)范,引入了類似Java的面向?qū)ο笳Z(yǔ)法,和對(duì) ECMA for XML(E4X)的原生支持。Adobe推出了優(yōu)秀的Flash Player 9,在優(yōu)化了性能的同時(shí),還可以支持 AS3。Adobe推出了 AIR(adobe integrated runtime,Adobe集成運(yùn)行庫(kù)),提供了強(qiáng)大的離線應(yīng)用支持,允許Flash和Ajax應(yīng)用程序脫離瀏覽器在本地運(yùn)行,真正將互聯(lián)網(wǎng)應(yīng)用程序搬到了桌面上。Adobe的這些產(chǎn)品都可以與Flex技術(shù)無(wú)縫協(xié)作,必將促進(jìn)其得到更加長(zhǎng)足的發(fā)展。
(2)Silverlight
由微軟推出的Silverlight可以視為.NET的WPF(windows presentation foundation)技術(shù)的一個(gè)子集,同時(shí)也是XAML的一個(gè)子集,為用戶提供了豐富的應(yīng)用,能在多個(gè)平臺(tái)上提供高質(zhì)量、互動(dòng)性的視頻,瀏覽器可以使用其.NET框架,包括動(dòng)畫、矢量圖形和音頻視頻播放等功能。
Silverlight是一個(gè)跨瀏覽器、跨平臺(tái)的軟件,能進(jìn)行炫目的多媒體體驗(yàn),具有豐富交互功能的Web應(yīng)用,它基于矢量圖形,并且提供對(duì)Windows Media中流媒體的支持,集成了對(duì)DRM(數(shù)字版權(quán)管理)和WMV-HD的支持。
微軟于2010年7月發(fā)布了Silverlight 3正式版,相比Silverlight 2,其新增了50多種功能,且體積更小(Windows版本僅為4 MB),更利于安裝和更新。更重要的是,微軟的配套產(chǎn)品線也更為完整,與Silverlight 3配套的Expression Blend 3和Visual Studio 2010將向開(kāi)發(fā)者提供更先進(jìn)的工具去實(shí)現(xiàn)富網(wǎng)絡(luò)應(yīng)用。
(3)JavaFX
2008年12月05日,Sun公司 (已于2009年被 Oracle公司收購(gòu))發(fā)布了JavaFX 1.0。將用戶目標(biāo)鎖定為能夠拓展Java界面體驗(yàn)的網(wǎng)頁(yè)開(kāi)發(fā)人員。到2011年,JavaFX的主要用戶目標(biāo)是大量使用諸如Adobe系統(tǒng)等設(shè)計(jì)工具的設(shè)計(jì)人員。JavaFX是建立在Java編程語(yǔ)言基礎(chǔ)上的,采用一種聲明式、靜態(tài)類型編程語(yǔ)言的腳本語(yǔ)言,具有結(jié)構(gòu)化代碼、重用性和封裝性,如包、類、繼承和單獨(dú)編譯和發(fā)布單元等。JavaFX基于JavaSE和JavaME,這使其具有非常優(yōu)秀的可移植性。
(4)Ajax
Ajax技術(shù)基于Asynchronous JavaScript,是 XML技術(shù)的異步數(shù)據(jù)傳輸技術(shù),是由Jesse James Gaiiett創(chuàng)造的。Ajax技術(shù)包括用于標(biāo)準(zhǔn)的網(wǎng)頁(yè)表示的XHTML和CSS技術(shù)、與服務(wù)器進(jìn)行異步通信XMLHttpRequest方式、用于綁定數(shù)據(jù)和界面的JavaScript、進(jìn)行動(dòng)態(tài)顯示和交互的DOM(文檔對(duì)象模型)等。Ajax組合了這些技術(shù),并沒(méi)有增加新的技術(shù),符合現(xiàn)有的行業(yè)標(biāo)準(zhǔn)。這些技術(shù)組合在一起改變了Web頁(yè)面的外觀和更新數(shù)據(jù)方式,實(shí)現(xiàn)了頁(yè)面的無(wú)閃爍刷新,提供快捷的界面響應(yīng)時(shí)間。最早的RIA應(yīng)用就是基于Ajax的,其代表就是Gmail。在Gmail中,人們從收件箱點(diǎn)開(kāi)一封郵件,頁(yè)面不會(huì)被刷新,只有郵件的內(nèi)容被下載,這符合RIA的特性。
(1)提高了云平臺(tái)客戶端數(shù)據(jù)處理能力
RIA技術(shù)的最關(guān)鍵應(yīng)用就是利用中間層避免了傳統(tǒng)頁(yè)面刷新問(wèn)題,將大部分處理任務(wù)都移植到客戶端,客戶端可以進(jìn)行數(shù)據(jù)的處理,僅保留一些必要數(shù)據(jù)與服務(wù)器端進(jìn)行信息交互。提供了快捷的響應(yīng)時(shí)間,這一應(yīng)用可以明顯提高云計(jì)算客戶端的界面特性,使界面更加友好,同時(shí),減輕了帶寬的壓力。
(2)提供給用戶豐富的界面體驗(yàn)
利用RIA技術(shù)可以對(duì)云計(jì)算用戶客戶端界面進(jìn)行有效的布置,以更適應(yīng)用戶習(xí)慣、更方便快捷的方式展示信息,改善了傳統(tǒng)高性能計(jì)算界面不夠友好的交互性能。RIA比用HTML實(shí)現(xiàn)的接口更加健壯、反應(yīng)更加靈敏和更具有令人感興趣的可視化特性。
(3)應(yīng)用范圍廣泛
RIA技術(shù)具有跨平臺(tái)性,可以繼續(xù)使用現(xiàn)有的應(yīng)用程序模型(包括J2EE和.Net),無(wú)需大規(guī)模替換現(xiàn)有的Web應(yīng)用程序,這些都符合云計(jì)算多平臺(tái)、多領(lǐng)域的特點(diǎn)。例如,目前被廣泛使用的Flex技術(shù),它與平臺(tái)無(wú)關(guān),只要安裝了Flash Player播放器就可以運(yùn)行。
(4)自由操作行為
RIA技術(shù)支持離線操作,可以在連接丟失時(shí)以離線的方式工作。以離線存儲(chǔ)技術(shù)Google Gears為例,未連接到互聯(lián)網(wǎng)時(shí),網(wǎng)絡(luò)應(yīng)用程序使用JavaScript API在離線狀態(tài)下運(yùn)行,離線時(shí)所做的編輯會(huì)一直存儲(chǔ)在自己的計(jì)算機(jī)上。
(5)商業(yè)前景廣闊
RIA具有廣闊的商業(yè)應(yīng)用前景,它可以為企業(yè)提供多元化的重要業(yè)務(wù)效益,包括提高產(chǎn)銷量、延長(zhǎng)網(wǎng)站逗留時(shí)間、頻繁的重復(fù)訪問(wèn)、減少帶寬成本、減輕服務(wù)器端負(fù)載壓力等。從工業(yè)界的角度來(lái)講,云計(jì)算是一種商業(yè)模型,RIA技術(shù)必將助力于云計(jì)算的商業(yè)化進(jìn)程。
(6)多種技術(shù)相互合作
RIA包含許多解決方案,但一些技術(shù)還不夠成熟,各有優(yōu)勢(shì)及不足,而且處于“百家爭(zhēng)鳴”、“各自為政”的狀態(tài)。云計(jì)算的發(fā)展需要這些技術(shù)的支持,有理由相信,只有將幾種技術(shù)進(jìn)行融合,才能實(shí)現(xiàn)更好的RIA模式。
RIA技術(shù)可以為用戶打造一個(gè)高度互動(dòng)性、豐富用戶體驗(yàn)以及功能強(qiáng)大的客戶端,使用戶擁有更加靈活、豐富的界面體驗(yàn),必將成為云計(jì)算系統(tǒng)的重要支撐技術(shù)。
1 RIA:幻想之門,http://dante.im/introducing-ria
2 張金硯.云計(jì)算與RIA,http://blog.doxt.com/?p=230
3 王鵬.走進(jìn)云計(jì)算.北京:人民郵電出版社,2009
4 歐陽(yáng).云計(jì)算未來(lái)的趨勢(shì).程序員,2008(11)
5 云計(jì)算時(shí)代SOA與SaaS的協(xié)同,http://www.analysys.com.cn/web2007/yjxx_index.php/id_244031.html