Adobe Flex 2 入門教程之RIA概述_Flash教程
推薦:基礎知識:情節設計中的敘事策略雖然找單田芳來播天氣預告只是一個小品中的橋段,但是,假如真的以說評書的方式,把“天氣預告”、“天下大事”都當作故事,講成“天方夜譚”。那枯燥的新聞和
近年來,構建富互聯網應用程序(Rich Internet Application,縮寫為RIA)逐漸成為技術熱點和發展方向。然而,由于諸多原因,國內很多讀者對于RIA及其主流開發技術Flex還不甚了解。為此,筆者圍繞Flex技術悉心撰寫多篇文章對這一主題展開講解。本文作為首篇文章,重點向讀者介紹RIA的基本概況,內容包括RIA基本概念,構建RIA的多項開發技術,RIA未來發展趨勢等。希望通過這些內容,能夠使得讀者對于RIA建立初步了解,從而為閱讀后續有關Flex技術的文章奠定理論基礎。
1. RIA基本概念
隨著互聯網的迅速發展,越來越多的用戶不滿足于僅僅是看看網頁,聽聽音樂等簡單應用,這些用戶要求通過瀏覽器完成復雜程度更高的交互。然而,由于目前多數應用程序限于技術發展的約束,只能在基于頁面的模型,同時缺少客戶端智能的情況下運行,這種情況注定應用程序無法完成復雜的事務處理和交互。
為了提高用戶體驗,實現更為復雜的交互,出現了一種新的互聯網應用程序,這就是富互聯網應用程序(Rich Internet Application,縮寫為RIA)。RIA是一種運行于傳統瀏覽器中的應用程序,它能夠充分結合桌面應用程序的反應快捷、交互性強的優點,以及Web應用程序的傳播范圍廣和易于傳播的特性。例如,RIA可在消息確認和編排方面提供交互用戶界面,在無刷新頁面中提供快捷的界面響應速度,以及提供通用的用戶界面特性如拖放式(drag and drop)及在線和離線操作能力,這些都是RIA具有的桌面應用程序的特點。又如,RIA具有用戶友好性、交互性、跨平臺兼容性、一次加載多次使用、客戶端數據緩存、高效的網絡數據信息傳輸等特點,這些特點是RIA傳承和發揚Web應用程序的重要體現。
到目前為止,可能部分讀者認為RIA不過是更為復雜和豐富的普通Web應用程序。對于這種理解雖然不能完全否定,但確實有失偏頗。下面通過圖1來進一步熟悉RIA的在互聯網發展過程中的地位。

圖1
如圖1所示,應用程序經過從本地向大范圍直至全球;從文字界面向豐富直至綜合媒體圖形用戶界面的方向發展著。當前,全球互聯網還處于充斥著網絡應用程序的環境之中。顯而易見的是,發展的總體方向是構建遍及全球的包括綜合媒體圖形用戶界面的RIA。相信隨著各大企業組織熟悉到RIA可產生顯著的商業利潤、提高生產率及降低成本的優勢后,RIA的發展勢頭會越來越猛烈,核心的原因是RIA能夠最大程度的提高廣泛性和豐富性。實際上,2002年3月,Macroedia公司(目前已被Adobe公司收購)已經首次引入了RIA。
為了加深理解,圖2展示了RIA的應用程序模型。

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