Adobe Flex 2 入門教程之RIA概述_Flash教程
推薦:基礎(chǔ)知識:情節(jié)設(shè)計中的敘事策略雖然找單田芳來播天氣預(yù)告只是一個小品中的橋段,但是,假如真的以說評書的方式,把“天氣預(yù)告”、“天下大事”都當(dāng)作故事,講成“天方夜譚”。那枯燥的新聞和
近年來,構(gòu)建富互聯(lián)網(wǎng)應(yīng)用程序(Rich Internet Application,縮寫為RIA)逐漸成為技術(shù)熱點和發(fā)展方向。然而,由于諸多原因,國內(nèi)很多讀者對于RIA及其主流開發(fā)技術(shù)Flex還不甚了解。為此,筆者圍繞Flex技術(shù)悉心撰寫多篇文章對這一主題展開講解。本文作為首篇文章,重點向讀者介紹RIA的基本概況,內(nèi)容包括RIA基本概念,構(gòu)建RIA的多項開發(fā)技術(shù),RIA未來發(fā)展趨勢等。希望通過這些內(nèi)容,能夠使得讀者對于RIA建立初步了解,從而為閱讀后續(xù)有關(guān)Flex技術(shù)的文章奠定理論基礎(chǔ)。
1. RIA基本概念
隨著互聯(lián)網(wǎng)的迅速發(fā)展,越來越多的用戶不滿足于僅僅是看看網(wǎng)頁,聽聽音樂等簡單應(yīng)用,這些用戶要求通過瀏覽器完成復(fù)雜程度更高的交互。然而,由于目前多數(shù)應(yīng)用程序限于技術(shù)發(fā)展的約束,只能在基于頁面的模型,同時缺少客戶端智能的情況下運(yùn)行,這種情況注定應(yīng)用程序無法完成復(fù)雜的事務(wù)處理和交互。
為了提高用戶體驗,實現(xiàn)更為復(fù)雜的交互,出現(xiàn)了一種新的互聯(lián)網(wǎng)應(yīng)用程序,這就是富互聯(lián)網(wǎng)應(yīng)用程序(Rich Internet Application,縮寫為RIA)。RIA是一種運(yùn)行于傳統(tǒng)瀏覽器中的應(yīng)用程序,它能夠充分結(jié)合桌面應(yīng)用程序的反應(yīng)快捷、交互性強(qiáng)的優(yōu)點,以及Web應(yīng)用程序的傳播范圍廣和易于傳播的特性。例如,RIA可在消息確認(rèn)和編排方面提供交互用戶界面,在無刷新頁面中提供快捷的界面響應(yīng)速度,以及提供通用的用戶界面特性如拖放式(drag and drop)及在線和離線操作能力,這些都是RIA具有的桌面應(yīng)用程序的特點。又如,RIA具有用戶友好性、交互性、跨平臺兼容性、一次加載多次使用、客戶端數(shù)據(jù)緩存、高效的網(wǎng)絡(luò)數(shù)據(jù)信息傳輸?shù)忍攸c,這些特點是RIA傳承和發(fā)揚(yáng)Web應(yīng)用程序的重要體現(xiàn)。
到目前為止,可能部分讀者認(rèn)為RIA不過是更為復(fù)雜和豐富的普通Web應(yīng)用程序。對于這種理解雖然不能完全否定,但確實有失偏頗。下面通過圖1來進(jìn)一步熟悉RIA的在互聯(lián)網(wǎng)發(fā)展過程中的地位。
圖1
如圖1所示,應(yīng)用程序經(jīng)過從本地向大范圍直至全球;從文字界面向豐富直至綜合媒體圖形用戶界面的方向發(fā)展著。當(dāng)前,全球互聯(lián)網(wǎng)還處于充斥著網(wǎng)絡(luò)應(yīng)用程序的環(huán)境之中。顯而易見的是,發(fā)展的總體方向是構(gòu)建遍及全球的包括綜合媒體圖形用戶界面的RIA。相信隨著各大企業(yè)組織熟悉到RIA可產(chǎn)生顯著的商業(yè)利潤、提高生產(chǎn)率及降低成本的優(yōu)勢后,RIA的發(fā)展勢頭會越來越猛烈,核心的原因是RIA能夠最大程度的提高廣泛性和豐富性。實際上,2002年3月,Macroedia公司(目前已被Adobe公司收購)已經(jīng)首次引入了RIA。
為了加深理解,圖2展示了RIA的應(yīng)用程序模型。
圖2
如圖2所示,RIA應(yīng)用程序模型由5個層組成,由底至上包括:資源層、集成層、業(yè)務(wù)層、表示層和客戶層。資源層中包含數(shù)據(jù)庫,外部系統(tǒng)和傳統(tǒng)資源。集成層實現(xiàn)連接到數(shù)據(jù)和傳統(tǒng)系統(tǒng)。業(yè)務(wù)層實現(xiàn)和連接業(yè)務(wù)對象。表示層包括ASP、JSP、Servlets、Flex和其他UI元素。以上4層比較常見,且都很輕易理解,在此不做羸述。此處,重點說明一下客戶層。RIA中的客戶層主體是一個富客戶端,它能夠提供可承載已編譯客戶端應(yīng)用程序(以文件形式,用HTTP傳遞)的運(yùn)行環(huán)境?蛻舳藨(yīng)用程序使用異步客戶/服務(wù)器架構(gòu)連接現(xiàn)有的后端應(yīng)用服務(wù)器,這是一種安全、可升級、具有良好適應(yīng)性的新的面向服務(wù)模型,這種模型由所使用的Web服務(wù)所驅(qū)動。
RIA具有很多優(yōu)點:(1)RIA具有更加豐富的界面,其在不重載頁面的情況下可提供更多迷人的用戶體驗。(2)RIA可向用戶提供由用戶事件觸發(fā)的實時反饋和驗證。(3)RIA可實現(xiàn)與傳統(tǒng)桌面應(yīng)用程序一致的觀感。(4)RIA還能夠包括完整的多媒體體驗,如音頻和視頻。(5)RIA具有很多功能,例如實時聊天和協(xié)作,這些功能使用傳統(tǒng)的Web應(yīng)用程序是難以或者不可能實現(xiàn)的。
雖然RIA具有很多優(yōu)點,但是目前距離大規(guī)模開發(fā)應(yīng)用RIA還尚需時日。近年來,RIA在企業(yè)中的得到了一些應(yīng)用,例如,構(gòu)建企業(yè)資源計劃ERP,客戶關(guān)系治理系統(tǒng)CRM等等。對于企業(yè)而言,部署RIA的好處在于:(1)RIA可以繼續(xù)使用現(xiàn)有的應(yīng)用程序模型(包括J2EE和.NET),因而無需大規(guī)模替換現(xiàn)有的Web應(yīng)用程序。通過富客戶端(Rich Client)技術(shù),可以輕松構(gòu)建更為直觀、易于使用、反應(yīng)更迅速,并且可以脫機(jī)使用的應(yīng)用程序。(2)RIA可以幫助企業(yè)提供多元化的重要業(yè)務(wù)效益,包括產(chǎn)提高銷量、提高品牌忠誠度、延長網(wǎng)站逗留時間、較頻繁的重復(fù)訪問、減少帶寬成本、減少支持求助以及增強(qiáng)客戶關(guān)系等。
既然RIA具有這樣刺眼的光線,可能讀者們已經(jīng)要躍躍欲試了。在下面的一節(jié)中,筆者將探討構(gòu)建RIA的多種主流技術(shù)。
2. 構(gòu)建RIA的主流技術(shù)
在閱讀了上節(jié)內(nèi)容之后,可能部分讀者會大膽猜測:在不久的將來,RIA可能會完全替代HTML應(yīng)用。對此猜測,筆者只能說“仁者見仁,智者見智”,站在不同的角度可能會產(chǎn)生不同的觀點。然而,值得肯定的是,無論上面的猜測是否成立,對于那些采用C/S架構(gòu)的胖客戶端技術(shù),運(yùn)行復(fù)雜應(yīng)用系統(tǒng)的組織,以及采用基于B/S架構(gòu)的瘦客戶端技術(shù),部署Web應(yīng)用系統(tǒng)的組織而言,RIA確實提供了一種廉價的選擇。
構(gòu)建RIA的要害之一是利用中間層避免傳統(tǒng)的頁面刷新。最常見的可從中間層獲取數(shù)據(jù)的工具包括Ajax應(yīng)用程序中使用的JavaScript(常用于Ajax技術(shù)),以及Flash Player中使用的Flash(由Flex技術(shù)構(gòu)建)。其他RIA解決方案包括Laszlo,XUL和Windows Presentation Foundation等。下面將簡要介紹這幾種創(chuàng)建RIA的主流技術(shù)。
Ajax
Ajax由HTML或者可擴(kuò)展HTML(Entensible HTML,縮寫為XHTML),樣式表(Cascading Style Sheets,縮寫為CSS)和JavaScript組合而成,其目的是根據(jù)標(biāo)準(zhǔn)的Web頁面請求,給予用戶一種應(yīng)用程序式的體驗。CSS和JavaScript可用于觸發(fā)頁面可視化方面的更新。XMLHttpRequests可用于在頁面后臺傳遞數(shù)據(jù)。這些技術(shù)的組合改變了單個Web頁面外觀和更新數(shù)據(jù)的方式,其不需要針對服務(wù)器的額外頁面請求。這種類型的RIA面臨很多限制,例如,瀏覽器兼容性問題,為如期待那樣執(zhí)行RIA所必需的JavaScript的不同支持(或者不支持)。
Flex
Flex是最早用于開發(fā)RIA的技術(shù)。隨著Macromedia和Adobe的不斷努力,F(xiàn)lex已經(jīng)在RIA開發(fā)市場中占據(jù)了較大市場份額,成為了目前構(gòu)建RIA的主力。Flex是為滿足希望開發(fā)RIA的企業(yè)級程序員的需求而推出的表示服務(wù)器和應(yīng)用程序框架,它可以運(yùn)行于J2EE和.NET平臺(雖然對于.NET支持還不是很成熟,但是Adobe正在努力當(dāng)中)。Flex表示服務(wù)器提供基于標(biāo)準(zhǔn)的、聲明性的編程方法和流程,并提供運(yùn)行時服務(wù),用于開發(fā)和部署豐富客戶端應(yīng)用程序的表示層。Flex開發(fā)人員使用直觀的基于XML的MXML語言來定義豐富的用戶界面。MXML語言由Flex服務(wù)器翻譯成SWF格式的客戶端應(yīng)用程序,在Flash Player中運(yùn)行。同時,還可以使用ActionScript語言構(gòu)建部分業(yè)務(wù)和交互邏輯。
目前Flex技術(shù)的最新版本是2.0。據(jù)相關(guān)報道稱,F(xiàn)lex 3.0也會很快發(fā)布。在隨后的系列文章中將重點介紹Flex 2技術(shù),其內(nèi)容涉及技術(shù)概述、開發(fā)工具、構(gòu)建用戶界面、事件、數(shù)據(jù)訪問、控件組件應(yīng)用、生成和部署方法等等。
Laszlo
Laszlo是一個開源的RIA開發(fā)技術(shù),其類似于Flex。同時,由于它是開源的,所以可免費(fèi)為開發(fā)人員使用。開發(fā)人員可使用JavaScript和基于可擴(kuò)展標(biāo)記語言XML的編程語言LZX來構(gòu)建Laszlo應(yīng)用程序,接著運(yùn)行在J2EE應(yīng)用服務(wù)器上的Laszlo平臺會將源代碼編譯成SWF格式的文件,最后傳輸給客戶端展示。從這點上來說,Laszlo的本質(zhì)和Flex是一樣的。由于Laszlo編譯結(jié)果為SWF文件,所以它具有與使用Flex技術(shù)構(gòu)建的Flash應(yīng)用程序相同的,一次編寫到處運(yùn)行的特點,從而解決了瀏覽器之間的移植問題。另外,在未來的計劃中,Laszlo還可以將LZX編譯成Java或.NET本地代碼,從而大大提高運(yùn)行效率。Laszlo超越Flex的優(yōu)點之一是,下一個版本的OpenLaszlo(命名代碼為legals)將答應(yīng)編寫一次代碼,可編譯生成SWF,或者動態(tài)HTML(DHTML)或者Ajax應(yīng)用程序。當(dāng)然,Laszlo也面臨著支持組件不足,市場開拓有限,以及Flash Player的約束等問題。
XUL
XML用戶界面語言XUL(XML User Interface Language)是一種基于XML的用戶界面語言,它來自于Mozilla的開放源碼項目。XUL中包括很多預(yù)定義的小部件(按鈕,單選按鈕等)。僅有兼容Mozilla的瀏覽器(例如Firefox)才能顯示這些小部件。雖然開發(fā)人員可以在RIA的創(chuàng)建過程中使用XUL,但是XUL主要用于Mozilla應(yīng)用程序和擴(kuò)展應(yīng)用的創(chuàng)建過程當(dāng)中。XUL最大的優(yōu)點在于,它與大多數(shù)其它XML用戶界面描述語言相比,XUL是一種非常具有表達(dá)力和簡潔的語言。XUL的主要缺點是,目前XUL還沒有獲得一個主要商業(yè)實體的支持。
WPF
WPF(Windows Presentation Foundation)是Microsoft公司發(fā)布的.NET 3.0的重要組成部分。在Windows Vista操作系統(tǒng)中,已經(jīng)預(yù)先安裝了WPF的支持引擎和框架,另外,Microsoft還引入了一種新的標(biāo)記語言XAML(Extensible Application Markup Language)。XAML與MXML非常相似,二者都是基于標(biāo)記的XML語言,每個標(biāo)記代表的元素都可創(chuàng)建一個對象模型類。XAML標(biāo)記是完全可擴(kuò)展的,其答應(yīng)開發(fā)人員創(chuàng)建自定義類。XAML和C#(一種編程語言)對應(yīng)于Adobe Flex中的MXML和ActionScript 3。WPF可用于開發(fā)傳統(tǒng)桌面應(yīng)用程序和基于瀏覽器的RIA。在Microsoft的支持下,WPF和XAML將對Web 2.0和RIA做出突出貢獻(xiàn)。另外,Microsoft已經(jīng)發(fā)布了Silverlight(過去的代號是Windows Presentation server Everywhere,縮寫為WPF/E,),它可對其他多種瀏覽器,桌面操作系統(tǒng)和設(shè)備平臺提供支持。WPF的優(yōu)點之一是支持即可即用的三維應(yīng)用,這是Flash Player缺乏的特性。
除了以上介紹的主流技術(shù)之外,還有一些其他的技術(shù)也可以用于開發(fā)RIA。例如,JavaSWT,Bindows等。然而,由于這些技術(shù)自身以及市場等多方面因素的影響,它們在RIA開發(fā)市場中占有率很低,在此就不做羸述了。
3. RIA的未來發(fā)展趨勢
在07年之前,開發(fā)RIA主要使用的是Flex技術(shù)。雖然Flex的技術(shù)文檔,開發(fā)工具都是英文(對于國內(nèi)學(xué)習(xí)者可能會造成一定障礙),雖然Flex的技術(shù)推廣工作還不是很到位,但是這些不足都無法掩蓋Flex的魅力光線。另外,隨著近來Microsoft發(fā)布.NET 3.0,尤其是WPF的面世,這種Flex獨(dú)攬大局的情況可能會發(fā)生變化。相信今后幾年時間之內(nèi),將是傳統(tǒng)Web應(yīng)用程序與RIA并存,F(xiàn)lex與WPF傾力角逐,相互廝殺的情況。
4. 小結(jié)
本文目的在于使讀者了解一些有關(guān)RIA的基本情況,內(nèi)容包括RIA定義,發(fā)展定位,應(yīng)用程序模型,多種開發(fā)技術(shù)和未來發(fā)展趨勢等等。在下面一篇文章中,筆者將與讀者一起領(lǐng)略Flex技術(shù)的無限風(fēng)光。
分享:Flash輕松制作2008北京奧運(yùn)郵票第一步:新建文件,畫布大小改為寬200像素、高276像素;新建圖形元件,繪制北京奧運(yùn)圖(可以導(dǎo)入相關(guān)的圖片進(jìn)行臨摹)。效果如下:不愿繪制的,可下載下面的文
- 相關(guān)鏈接:
- 教程說明:
Flash教程-Adobe Flex 2 入門教程之RIA概述。