百科解釋
目錄·發(fā)展歷史·優(yōu)點(diǎn)·缺點(diǎn)·開(kāi)發(fā)現(xiàn)狀·List of RIA Platforms / Approaches·RIA Related Topics·References 富互聯(lián)網(wǎng)應(yīng)用系統(tǒng)(Rich Internet applications,簡(jiǎn)稱RIA)是一種具有近似于傳統(tǒng)桌面應(yīng)用系統(tǒng)功能和特性的網(wǎng)絡(luò)應(yīng)用系統(tǒng)。RIA系統(tǒng)最大的特點(diǎn)是將大部分處理任務(wù)都從用戶界面端移植到客戶端,僅保留一些必要數(shù)據(jù)與服務(wù)器端進(jìn)行信息交互。 RIA系統(tǒng)的特性: 運(yùn)行于瀏覽器中,不需要額外安裝支持軟件 在本地運(yùn)行時(shí),受安全沙箱全程保護(hù)。 發(fā)展歷史 “富互聯(lián)網(wǎng)應(yīng)用系統(tǒng)”一詞源于Macromedia公司在2002年3月發(fā)表的一份白皮書(shū),盡管如此,該詞在更早的年代中就已包含以下含義: 遠(yuǎn)程腳本(由微軟于1998年左右提出) X Internet(由Forrester Research于2000年10月提出) 富(網(wǎng)頁(yè))客戶端 富網(wǎng)絡(luò)應(yīng)用 傳統(tǒng)的網(wǎng)絡(luò)應(yīng)用程序?qū)⑺薪换?yīng)用都集中在基于“瘦”客戶端的C/S架構(gòu)上。在這樣的系統(tǒng)中,所有處理操作均在服務(wù)器端執(zhí)行,客戶端僅僅是用于顯示靜態(tài)的信息內(nèi)容(如HTML)。這種系統(tǒng)最大的缺陷是所有的交互操作都必須經(jīng)由服務(wù)器端進(jìn)行,首先客戶端要將請(qǐng)求數(shù)據(jù)上傳至服務(wù)器端,然后服務(wù)器端作出響應(yīng)并傳回結(jié)果,最后客戶端在重載響應(yīng)信息。而通過(guò)使用在客戶端執(zhí)行指令的客戶端技術(shù),RIA可以有效的避免延時(shí),實(shí)現(xiàn)程序與用戶操作的同步。這種差異有點(diǎn)類似于“終端與主機(jī)”或C/S結(jié)構(gòu)與“胖”應(yīng)用系統(tǒng)的差異。 隨著時(shí)間的遷移,互聯(lián)網(wǎng)標(biāo)準(zhǔn)正在逐漸地改變著,從而以適應(yīng)這種新技術(shù),所以也就很難為富互聯(lián)網(wǎng)應(yīng)用劃定出一個(gè)明確的概念范圍。但是,所有的富互聯(lián)網(wǎng)應(yīng)用都有一個(gè)相同的特征:它們?cè)诳蛻舳伺c服務(wù)器端之間引入了通常被叫做“客戶端引擎”的中間代碼層。這種客戶端引擎通常作為應(yīng)用初始化的一部分被下載,也可能隨著應(yīng)用的運(yùn)行在后續(xù)代碼中作為補(bǔ)丁被下載并補(bǔ)充進(jìn)來(lái)?蛻舳艘娉洚(dāng)瀏覽器的一個(gè)擴(kuò)展,而且通常還會(huì)接管呈現(xiàn)用戶界面和與服務(wù)器端進(jìn)行通信的職責(zé)。 富互聯(lián)網(wǎng)應(yīng)用的功能可能會(huì)受客戶端操作系統(tǒng)性能的限制。但是,在大多數(shù)情況下,客戶端引擎會(huì)按設(shè)計(jì)者的意愿執(zhí)行某些編輯好的功能,從而提升用戶界面某些方面或在一定程度上改進(jìn)用戶界面的運(yùn)算速率。而且增加一個(gè)客戶端引擎也不會(huì)導(dǎo)致任何應(yīng)用脫離原有瀏覽器與服務(wù)器端之間的同步交互模式,其實(shí)大多數(shù)富互聯(lián)網(wǎng)應(yīng)用中,客戶端引擎在原基礎(chǔ)上與服務(wù)器端進(jìn)行的是異步通信。 優(yōu)點(diǎn) 盡管與開(kāi)發(fā)運(yùn)行在桌面的程序相比,開(kāi)發(fā)運(yùn)行在瀏覽器中的應(yīng)用程序要更受限、更復(fù)雜、更困難,但是這種努力還是值得的,因?yàn)樗哂幸韵聝?yōu)點(diǎn): 安裝簡(jiǎn)便——更新與使用費(fèi)用與桌面程序和操作系統(tǒng)相比要經(jīng)濟(jì)的多。 終端用戶可以自動(dòng)或簡(jiǎn)單手動(dòng)的更新到最新版本 用戶可以在任何連接到互聯(lián)網(wǎng)上的電腦中使用程序 有很多工具支持離線使用,例如Adobe AIR,Google Gears等等。 多數(shù)富互聯(lián)網(wǎng)應(yīng)用程序可以跨平臺(tái)使用 與可執(zhí)行文件相比,基于網(wǎng)絡(luò)的應(yīng)用程序可以有效的避免病毒的侵襲 由于富互聯(lián)網(wǎng)應(yīng)用采用客戶端引擎,所以它具有以下特點(diǎn): 表現(xiàn)力豐富。富互聯(lián)網(wǎng)應(yīng)用能在基于標(biāo)準(zhǔn)瀏覽器的網(wǎng)頁(yè)應(yīng)用實(shí)現(xiàn)HTML標(biāo)簽根本無(wú)法實(shí)現(xiàn)的用戶界面效果。這種內(nèi)涵更豐富的交互涵蓋所有在客戶端所能實(shí)現(xiàn)的功能,例如拖拽功能、滑塊功能,而且這些功能無(wú)需與服務(wù)器端交互數(shù)據(jù),完全是在客戶端進(jìn)行運(yùn)算,如抵押計(jì)算。 反應(yīng)更加迅速。與那些總須與遠(yuǎn)程服務(wù)器進(jìn)行交互的標(biāo)準(zhǔn)網(wǎng)頁(yè)瀏覽器相比,富互聯(lián)網(wǎng)應(yīng)用界面功能的反應(yīng)要迅速的多,這也是富互聯(lián)網(wǎng)應(yīng)用特點(diǎn)之一。 最成熟的富互聯(lián)網(wǎng)應(yīng)用會(huì)給人近似于桌面程序的外觀感覺(jué)。而且,使用客戶端引擎還有以下好處: C/S結(jié)構(gòu)的負(fù)擔(dān)平衡。富互聯(lián)網(wǎng)應(yīng)用可以使客戶端和服務(wù)器端對(duì)資源的需求更加平衡,從而使服務(wù)器不必再像傳統(tǒng)網(wǎng)頁(yè)應(yīng)用中那樣一直高負(fù)荷的運(yùn)轉(zhuǎn)。由此服務(wù)器端的資源得到了解放,從而提升了同一服務(wù)器端硬件設(shè)施所能并行服務(wù)的客戶端會(huì)話數(shù)量。 異步通信。無(wú)須等待用戶執(zhí)行諸如在按鈕或鏈接上點(diǎn)擊的交互操作,客戶端引擎便可與服務(wù)器端進(jìn)行交互。如此,用戶便可在客戶端引擎跟服務(wù)器端通信的同時(shí),異步地進(jìn)行頁(yè)面瀏覽或交互。從而,富互聯(lián)網(wǎng)應(yīng)用的設(shè)計(jì)者便可在免予讓用戶等待的情況下,在客戶端與服務(wù)器端之間傳輸數(shù)據(jù)。程序會(huì)預(yù)先從服務(wù)器端預(yù)取數(shù)據(jù),即程序預(yù)見(jiàn)到未來(lái)可能需要某些數(shù)據(jù)的時(shí)候,會(huì)預(yù)先于用戶請(qǐng)求將其下載,借此來(lái)提升響應(yīng)后續(xù)請(qǐng)求的速度。Google Maps便是利用了這種技術(shù),先于用戶將屏幕滾動(dòng)到臨近的地區(qū),預(yù)取到上邊的地圖片斷。 網(wǎng)絡(luò)效率高。富互聯(lián)網(wǎng)應(yīng)用的網(wǎng)絡(luò)通信量也會(huì)明顯減少,這是由于在決定需要與服務(wù)器端交換什么數(shù)據(jù)時(shí),為應(yīng)用程序?qū)iT(mén)設(shè)計(jì)的客戶端引擎會(huì)比標(biāo)準(zhǔn)的網(wǎng)頁(yè)瀏覽器更智能。由于每次交互所需傳輸?shù)臄?shù)據(jù)量變少了,從而總負(fù)載也減輕了,所以每個(gè)請(qǐng)求和響應(yīng)的速度也就提升。但是,濫用異步請(qǐng)求和預(yù)取技術(shù)有可能會(huì)抵消這種優(yōu)勢(shì)帶來(lái)的好處,有時(shí)甚至還會(huì)起到反作用。因?yàn)槌绦驘o(wú)法準(zhǔn)確地預(yù)期每個(gè)用戶下一步操作所需的數(shù)據(jù),所以采用這種技術(shù)時(shí),時(shí)常會(huì)下載多余的數(shù)據(jù),而對(duì)大多數(shù)客戶端而言,這些數(shù)據(jù)其實(shí)并不是用戶真實(shí)需要的。 缺點(diǎn) 富互聯(lián)網(wǎng)應(yīng)用存在以下缺陷: 受限于安全沙箱。由于富互聯(lián)網(wǎng)應(yīng)用程序運(yùn)行在安全沙箱中,所以其對(duì)系統(tǒng)資源的訪問(wèn)會(huì)受到限制。一旦對(duì)系統(tǒng)資源的訪問(wèn)出現(xiàn)錯(cuò)誤,那么富互聯(lián)網(wǎng)應(yīng)用程序就將無(wú)法正常運(yùn)行。 依賴于腳本支持。富互聯(lián)網(wǎng)應(yīng)用程序常常需要Javas cript或其它腳本語(yǔ)言的支持。一旦用戶瀏覽器對(duì)這些腳本進(jìn)行屏蔽,富互聯(lián)網(wǎng)應(yīng)用將無(wú)法正常運(yùn)作。 客戶端運(yùn)行速度受限。為實(shí)現(xiàn)平臺(tái)無(wú)關(guān)性,一些富互聯(lián)網(wǎng)應(yīng)用選用諸如Javas cript這類腳本語(yǔ)言來(lái)編寫(xiě)其客戶端腳本,從而導(dǎo)致了性能上的損失(在移動(dòng)設(shè)備中,此類問(wèn)題尤為顯著)。而對(duì)于如Java這類的客戶端語(yǔ)言是不存在這類問(wèn)題的,因?yàn)樗男阅芤芽杀葦M傳統(tǒng)的編譯型語(yǔ)言了,而對(duì)于Flash,Curl或Silverlight,因?yàn)樵谄洳寮兴\(yùn)行的代碼也是經(jīng)過(guò)編譯的,所以同樣也不存在這類問(wèn)題。 下載腳本的延時(shí)。雖然無(wú)需安裝軟件,但是富互聯(lián)網(wǎng)應(yīng)用的客戶端引擎還是要從服務(wù)器端傳送信息到客戶端。雖然絕大多數(shù)傳輸信息會(huì)被緩存,但這種傳輸也至少要執(zhí)行一次。根據(jù)下載的類型和大小,腳本的下載可能會(huì)是一件令人苦惱的事情。對(duì)此,富互聯(lián)網(wǎng)應(yīng)用的開(kāi)發(fā)者可采取壓縮、分段等技術(shù)在一定程度上減少這種延遲帶來(lái)的影響。 集成困難。如果基于X/HTML開(kāi)發(fā)應(yīng)用,那么應(yīng)用程序的目的(向往控制一切表現(xiàn)效果和行為)和X/HTML的目的(向往解除一切控制)之間的沖突會(huì)進(jìn)一步加劇。X/HTML的DOM接口為創(chuàng)建富互聯(lián)網(wǎng)應(yīng)用提供了一個(gè)可能,但是該方案又會(huì)導(dǎo)致富互聯(lián)網(wǎng)應(yīng)用中的一些功能癱瘓。因?yàn)樵谠摲桨钢,富互?lián)網(wǎng)應(yīng)用的客戶端可以修改應(yīng)用程序的基本結(jié)構(gòu)并覆蓋其的表現(xiàn)效果和行為,這可能將導(dǎo)致應(yīng)用程序在客戶端的執(zhí)行錯(cuò)誤。最終,該問(wèn)題通過(guò)采用新式的客戶端機(jī)制來(lái)解決,在該機(jī)制中,富互聯(lián)網(wǎng)應(yīng)用將受限于只能對(duì)其自身范圍的資源進(jìn)行修改。(標(biāo)準(zhǔn)的運(yùn)行在本地軟件之所以不存在該類問(wèn)題是因?yàn)槠渥裱粋(gè)自動(dòng)程序的定義,只能處理它自行分配的資源)。 搜索引擎優(yōu)化困難。搜索引擎可能無(wú)法搜索應(yīng)用程序文本內(nèi)容中的索引。 依賴于互聯(lián)網(wǎng)連接。最理想的替代桌面程序的互聯(lián)網(wǎng)應(yīng)用程序要允許用戶間斷性的上網(wǎng),這樣用戶就可以游走在各個(gè)熱點(diǎn)與辦公地之間。鑒于此,一些特殊的平臺(tái)(如Adobe AIR,Google Gears)就需要允許離線操作的富互聯(lián)網(wǎng)應(yīng)用程序。 可訪問(wèn)性存在困難。在富互聯(lián)網(wǎng)應(yīng)用中存在很多訪問(wèn)性的困難,其中多數(shù)明顯地表現(xiàn)為屏幕閱讀器在探測(cè)由Javas cript引起的HTML內(nèi)容更變上遇到了極大的困難。 無(wú)法部署。除了Adobe的AIR技術(shù)以外,其它的富互聯(lián)網(wǎng)應(yīng)用不能像傳統(tǒng)的桌面應(yīng)用那樣進(jìn)行部署。 軟件開(kāi)發(fā)復(fù)雜性 富互聯(lián)網(wǎng)應(yīng)用技術(shù)的出現(xiàn)給網(wǎng)頁(yè)應(yīng)用的開(kāi)發(fā)引入了可觀的復(fù)雜度。僅使用標(biāo)準(zhǔn)HTML構(gòu)建的傳統(tǒng)的網(wǎng)頁(yè)應(yīng)用,其軟件架構(gòu)相對(duì)來(lái)說(shuō)要簡(jiǎn)單,同時(shí)也只有有限的開(kāi)發(fā)方案選擇,所以相對(duì)來(lái)說(shuō)要易于設(shè)計(jì)和管理。對(duì)使用富互聯(lián)網(wǎng)應(yīng)用技術(shù)的個(gè)人或組織而言,他們所面臨的額外的復(fù)雜度是他們更難于進(jìn)行設(shè)計(jì)、測(cè)試、評(píng)估和支持。 富互聯(lián)網(wǎng)應(yīng)用技術(shù)的使用引起了若干個(gè)在服務(wù)級(jí)管理(service level management,簡(jiǎn)稱 SLM)上的新挑戰(zhàn)。而這些挑戰(zhàn)至今也仍未得到徹底解決。服務(wù)級(jí)管理所關(guān)心的并不總是應(yīng)用開(kāi)發(fā)者的焦點(diǎn)所在,也甚少為應(yīng)用使用者所察覺(jué),但它們對(duì)一個(gè)在線應(yīng)用的成功交付卻起著至關(guān)重要的作用。富互聯(lián)網(wǎng)應(yīng)用架構(gòu)中使管理過(guò)程變得復(fù)雜的方面包括: 更大的復(fù)雜度然開(kāi)發(fā)變得更加困難。將代碼移至客戶端的能力,給了應(yīng)用設(shè)計(jì)者和開(kāi)發(fā)者更多的創(chuàng)造空間。但是這反過(guò)來(lái)也讓開(kāi)發(fā)變得更加困難,增加了發(fā)生過(guò)失(bugs)的可能性,也加大了軟件測(cè)試的復(fù)雜度。無(wú)倫引入何種方法學(xué)或過(guò)程,這些復(fù)雜化都將延長(zhǎng)軟件開(kāi)發(fā)過(guò)程。這些問(wèn)題中有些可通過(guò)使用網(wǎng)頁(yè)應(yīng)用框架對(duì)富互聯(lián)網(wǎng)應(yīng)用的設(shè)計(jì)和開(kāi)發(fā)進(jìn)行標(biāo)準(zhǔn)化來(lái)減輕。但是,無(wú)論如何,在軟件的解決方案中增加復(fù)雜度,如果增加了用例的數(shù)量,將導(dǎo)致測(cè)試過(guò)程復(fù)雜化和延長(zhǎng)。而不完整的測(cè)試有會(huì)降低應(yīng)用的質(zhì)量和使用時(shí)的可靠性。有人可能要說(shuō),上邊討論的問(wèn)題并非只是富互聯(lián)網(wǎng)應(yīng)用技術(shù)特有的,而是關(guān)于復(fù)雜性的廣泛?jiǎn)栴}。例如,同樣的爭(zhēng)論就發(fā)生于蘋(píng)果跟微軟分別在1980年代發(fā)布其GUI時(shí),甚至可能還發(fā)生于Ford發(fā)布其Model T時(shí)。無(wú)倫如何,人類已經(jīng)展示出了在數(shù)十年間吸收新技術(shù)的優(yōu)勢(shì)的能力。 富互聯(lián)網(wǎng)應(yīng)用架構(gòu)違反了網(wǎng)頁(yè)范式。傳統(tǒng)的網(wǎng)頁(yè)應(yīng)用可以看成一系列網(wǎng)頁(yè),這些網(wǎng)頁(yè)每頁(yè)都需單獨(dú)經(jīng)歷由HTTP GET請(qǐng)求發(fā)起下載過(guò)程。這種模型被稱為網(wǎng)頁(yè)范式。富互聯(lián)網(wǎng)應(yīng)用廢掉了這種模型,同時(shí)額外引入了異步的服務(wù)器端通信方式來(lái)支持反應(yīng)更迅速的用戶界面。在富互聯(lián)網(wǎng)應(yīng)用總,完整加載一個(gè)頁(yè)面所需的時(shí)間可能不再是用戶所能察覺(jué)到的重要指標(biāo),因?yàn)椋ù騻(gè)比方說(shuō))客戶端引擎可能為未來(lái)預(yù)取了一些內(nèi)容。為對(duì)富互聯(lián)網(wǎng)應(yīng)用作有效的評(píng)估,來(lái)反映用戶體驗(yàn)的指標(biāo),肯定會(huì)有新的技術(shù)被設(shè)計(jì)出來(lái)。在這種評(píng)估技術(shù)出現(xiàn)之前,富互聯(lián)網(wǎng)應(yīng)用的開(kāi)發(fā)者應(yīng)該指示他們的應(yīng)用代碼來(lái)為SLM產(chǎn)生測(cè)量數(shù)據(jù)。 異步通信導(dǎo)致難以隔離性能問(wèn)題?此泼艿,用以增強(qiáng)應(yīng)用的響應(yīng)能力的措施同時(shí)也使其難于衡量、理解、報(bào)告以及管理響應(yīng)能力。一些富互聯(lián)網(wǎng)應(yīng)用在加載第一個(gè)頁(yè)面后便不再?gòu)臑g覽器發(fā)送任何HTTP GET請(qǐng)求,而是通過(guò)其客戶端引擎使用異步請(qǐng)求來(lái)初始化后續(xù)下載。 The RIA client engine may be programmed to continually download new content and refresh the display, or (in applications using the Comet approach) a server-side engine can keep pushing new content to the browser over a connection that never closes. In these cases, the concept of a "page download" is no longer applicable. These applications are commonly known as refreshless. These complications make it harder to measure and subdivide application response times, a fundamental requirement for problem isolation and service level management. Tools designed to measure traditional Web applications may -- depending on the details of the application and the tool -- report such applications either as a single Web page per HTTP request, or as an unrelated collection of server activities. Neither des cription reflects what is really happening at the application level. The client engine makes it harder to measure response time. For traditional Web applications, measurement software can reside either on the client machine or on a machine that is close to the server, provided that it can observe the flow of network traffic at the TCP and HTTP levels. Because these protocols are synchronous and predictable, a packet sniffer can read and interpret packet-level data, and infer the user’s experience of response time by tracking HTTP messages and the times of underlying TCP packets and acknowledgments. But the RIA architecture reduces the power of the packet sniffing approach, because the client engine breaks the communication between user and server into two separate cycles operating asynchronously -- a foreground (user-to-engine) cycle, and a background (engine-to-server) cycle. Both cycles are important, because neither stands alone; it is their relationship that defines application behavior. But that relationship depends only on the application design, which cannot (in general) be inferred by a measurement tool, especially one that can observe only one of the two cycles. Therefore the most complete RIA measurements can only be obtained using tools that reside on the client and observe both cycles. 開(kāi)發(fā)現(xiàn)狀 RIAs are still in the early stages of development and user adoption. There are a number of restrictions and requirements that remain: Browser adoption: Many RIAs require modern web browsers in order to run. Advanced Javas cript engines must be present in the browser as RIAs use techniques such as XMLHTTPRequest for client-server communication, and DOM s cripting and advanced CSS techniques to enable the rich user interface. Web standards: Differences between web browsers can make it difficult to write an RIA that will run across all major browsers. The consistency of the Java platform, particularly after Java 1.1, makes this task much simpler for RIAs written as Java applets. Development tools: Some Ajax Frameworks and products such as Curl, Adobe Flex and Microsoft Silverlight provide an integrated environment in which to build RIAs. Accessibility concerns: Additional interactivity may require technical approaches that limit applications'''' accessibility. User adoption: Users expecting standard web applications may find that some accepted browser functionality (such as the "Back" button) may have somewhat different or even undesired behaviour. List of RIA Platforms / Approaches Adobe Flash, Adobe Flex and Adobe AIR Adobe Flash is another way to build Rich Internet Applications. This technology is cross-platform and quite powerful to create an application UI. Adobe Flex is a framework that provides the option for a developer to build user interfaces by compiling MXML, an XML based interface des cription language. This Adobe Flex framework is compiled and turned into a SWF file to be run in the Adobe Flash player. Adobe has also released Adobe AIR (Adobe Integrated Runtime), which is a runtime platform that is independent to the hosting operating system. Adobe AIR allows for Flash Player and Ajax applications to be deployed/installed onto a user''''s desktop as you would a desktop application. Backbase Backbase is an ajax-based RIA framework for standards based RIA development. The client framework runs in all common browsers and can be used in combination with existing presentation tier technologies using Java, PHP, .NET, Perl and XML/XSLT. Backbase Visual Ajax Builder is a WYSIWYG visual RIA editor and is available as an Eclipse plug-in. Backbase offers a JSF Edition that enables standards based RIA development for Java Server Faces (JSF). Curl Curl began as a research project at MIT in the late 1990s. It was commercialized by Curl, Inc., which made a first release in 2000. The current release is version 6.0, available for Windows, Linux, and Mac clients. There is no required server side component; any web server can be used. Curl provides a wealth of features, but in an easily accessible form that allows users with a variety of backgrounds to work at different levels of complexity, from simple HTML-like formatting to sophisticated object-oriented programming. The free Curl plugin is on the order of 10 MB in size, but can be installed quickly by broadband users. One advantage of the plugin architecture is that Curl applets work the same on every platform, with any browser, with the exception of a few platform specific APIs. Curl applets are compiled to machine code for fast execution, and various caching mechanisms speed up the loading of applets. Curl is free to use for non-commercial and some commercial uses (see licensing). A Pro version is available which provides additional enterprise class capabilities. Curl supports the software engineering of large complex applications, and may be more efficient in terms of the amount of code needed to write applications. A comparative study by Sonata found that Curl applications required about a third less code than Adobe Flex and Ajax. Curl has had a feature of "detached applets" for several years, which is a web deployed applet which can run independently of a browser window, similarly to Adobe AIR. Curl applets can also be written so that they will run when disconnected from the network. In fact, the Curl IDE is an application written in Curl. Google''''s GWT framework Google released the ''''Google Web Toolkit'''' or GWT in 2006 which allows the development and testing of Javas cript based AJAX RIA''''s using the Java language. The GWT programming paradigm centers around coding user interface logic in Java (similar to the Swing/AWT model), and then executing the GWT compiler to translate this logic into cross-browser-compatible Javas cript. Designed specifically for Java developers, GWT enables Java programming, refactoring, debugging and unit testing of RIAs using existing tools (e.g. Eclipse), without requiring knowledge of Javas cript or specific browser DOM irregularities (although hand-written Javas cript can still be used with GWT if desired). Java applets Java applets run in standard HTML pages and generally start automatically when their web page is opened with a modern web browser. Java applets have access to the screen (inside an area designated in its page''''s HTML), as well as the speakers, keyboard and mouse of any computer their web page is opened on, as well as access to the Internet, and provide a sophisticated environment capable of real time applications. Java applications Java based RIAs can be launched from within the browser or as free standing applications via Java Web Start which integrate with the desktop. Java RIAs can take advantage of the full power of the Java platform to deliver rich functionality, 2D & 3D graphics, and off-line capabilities. Java is widely adopted and there is a vast range of both commercial and open source libraries available for the platform, making it possible to include support for virtually any system, including native applications via JNI or JNA. When it comes to RIAs, Java''''s main weakness is its multimedia support. Java 6 Update N improves some features that have hindered the use of Java for RIAs including startup time and download size, and Sun may even include new multimedia support in this release (due Q2,2008). Numerous frameworks for Java RIAs exist, including XML-based frameworks such as XUI, Swixml, or Canoo''''s, UltraLightClient. JavaFX Sun Microsystems has announced JavaFX, a family of products based on Java technology designed to provide a consistent experience across a wide variety of devices including desktops, (as applets and stand-alone clients) set-top boxes, mobile devices, and Blu-Ray players. The JavaFX platform will initially comprise JavaFX s cript and JavaFX Mobile. Invented by Sun Software Engineer Chris Oliver as a skunk works project, JavaFX s cript enables rapid development of rich 2D interfaces using a declarative syntax similar to SVG. Sun plans to release JavaFX s cript as an open source project, but JavaFX Mobile will be a commercial product available through an OEM license to carriers and handset manufacturers. Javas cript / Ajax The first major client side language and technology available with the ability to run code and installed on a majority of web clients was Javas cript. Although its uses were relatively limited at first, combined with layers and other developments in DHTML it has become possible to piece together an RIA system without the use of a unified client-side solution. Ajax is a new term coined to refer to this combination of techniques and has recently been used most prominently by Google for projects such as Gmail and Google Maps. However, creating a large application in this framework is very difficult, as many different technologies must interact to make it work, and browser compatibility requires a lot of effort. In order to make the process easier, several open source Ajax Frameworks have been developed, as well as commercial frameworks. Microsoft ActiveX controls Embedding ActiveX controls into HTML is a very powerful way to develop rich Internet applications. However they are only guaranteed to run properly in Internet Explorer, since no other web browser at this time supports ActiveX controls. In addition, ActiveX controls are not executed in sandbox. Therefore, they are potential targets for computer viruses and malware making them high security risks. At the time of this writing, the Adobe Flash Player for Internet Explorer is implemented as an ActiveX control for Microsoft environments, as well as in multi-platform Netscape Plugin wrappers for the wider world. Only if corporations have standardized on using Internet Explorer as the primary web browser, is ActiveX per se a good choice for building corporate applications. Microsoft Silverlight Microsoft Silverlight, which can be considered a subset of Windows Presentation Foundation (WPF) allows developers to develop RIA. Like Windows Presentation Foundation, Silverlight uses XAML. Therefore, developers with previous development experiences in the field of .NET Framework 3.0 and XAML will find Silverlight familiar, appealing and easy to use. Client machines need to install a small (about 2MB) plug-in (Silverlight Runtime) in order to be able to play Silverlight contents. At this time, Silverlight client for Windows and Mac OS X is available from Microsoft. A third-party open-source plug-in called Moonlight is also available for Linux. Microsoft has also promised to broaden the range of supported clients. During the opening keynote at MIX08 conference in Las Vegas, the first beta of Silverlight 2 was shown running on a Nokia S60 platform as well as Microsoft Windows Mobile 6 devices. Mozilla Prism Mozilla Prism is a product in development which integrates web applications with the desktop, allowing web applications to be launched from the desktop and configured independently of the default web browser OpenLaszlo OpenLaszlo is an open source rich Internet application framework developed by Laszlo Systems Inc.. The OpenLaszlo server compiles programs written in the LZX language (a mixture of XML tags and Javas cript) into either DHTML (commonly known as AJAX now) or Adobe Flash bytecode, currently supporting Flash7 and Flash8. The server - which originally was a proprietary software - was open sourced in October 2004 under the Common Public License. OpenLaszlo is the only rich Internet application platform which is capable of compiling into two different runtimes from the same code base (although GWT will compile into browser-specific java s cript from Java). REBOL 2.6 and Seaside for Smalltalk Available alternatives to Java for RIA include abstract machines for REBOL and Smalltalk programming languages. REBOL does not require a browser and Seaside for Smalltalk uses a minor extension to Smalltalk to provide a much richer web experience. Both are far more mature than more familiar options and as old or older than Java and the JVM. RIA Related Topics RIA with real-time push Traditionally, web pages have been delivered to the client only when the client requested for it. For every client request, the browser initiates an HTTP connection to the web server, which then returns the data and the connection is closed. The drawback of this approach was that the page displayed was updated only when the user explicitly refreshes the page or moves to a new page. Since transferring entire pages can take a long time, refreshing pages can introduce a long latency. Demand for localised usage of RIA With the increasing adoption and improvement in broadband technologies, fewer users experience poor performance caused by remote latency. Furthermore one of the critical reasons for using an RIA is that many developers are looking for a language to serve up desktop applications that is not only desktop OS neutral but also installation and system issue free. RIA running in the ubiquitous web browser is a potential candidate even when used standalone or over a LAN, with the required webserver functionalities hosted locally. Client-side functionalities and development tools for RIA needed With client-side functionalities like Javas cript and DHTML, RIA can operate on top of a range of OS and webserver functionalities. User interface languages Instead of HTML/XHTML, new user interface markup languages can be used in RIAs. For instance, the Mozilla Foundation''''s XML-based user interface markup language XUL - this could be used in RIAs though it would be restricted to Mozilla-based browsers, since it is not a de facto or de jure standard. The W3C''''s Rich Web Clients Activity[1] has initiated a Web Application Formats Working Group whose mission includes the development of such standards [2]. The original DARPA project at MIT which resulted in the W3C also resulted in the web content language Curl which is now in version 5.0. RIA''''s user interfaces can also become richer through the use of s criptable scalable vector graphics (though not all browsers can render those natively yet) as well as Synchronized Multimedia Integration Language (SMIL). Other techniques RIAs could use XForms to enhance their functionality. Using XML and XSLT along with some XHTML, CSS and Javas cript can also be used to generate richer client side UI components like data tables that can be resorted locally on the client without going back to the server. Mozilla and Internet Explorer browsers both support this. The Omnis Web Client is an ActiveX control or Netscape plug-in which can be embedded into an HTML page providing a rich application interface in the end-user''''s web browser. Appcelerator is an open source platform for developing rich Internet applications using a service-oriented architecture and standards such as HTML, CSS and Javas cript. Appcelerator applications can integrate automatically with several different integration points on the service tier using Java, PHP, Python, .NET, Perl and Ruby on Rails. Appcelerator applications can use pre-built widgets to assemble high quality RIAs. Appcelerator is licensed under the GNU GPL version 2 License. References ^ W3C(2008年3月15日).W3C Rich Web Clients.w3c.org. ^ W3C(2008年3月15日).Web Application Formats Working Group.w3c.org.
移動(dòng)通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團(tuán)隊(duì)博客 | 免責(zé)聲明 | 關(guān)于詞典 | 幫助