隨筆 - 8  文章 - 55  trackbacks - 0
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          朋友的Blog

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          前 言 看了幾篇關(guān)于“回歸C/S”的文章,作為一名多年開發(fā)B/S的程序員,不免熱血沸騰,深受鼓舞!曾經(jīng),我是B/S結(jié)構(gòu)的忠實(shí)擁護(hù)者,同時(shí)也為了所謂的“零部署”陷入過技術(shù)泥潭。正當(dāng)為B/S煩愁的時(shí)候,RIA走進(jìn)了我的視線… … 什么是RIA Internet已經(jīng)日益成為應(yīng)用程序開發(fā)的默認(rèn)平臺(tái)。用戶對(duì)應(yīng)用程序復(fù)雜性要求日增,但現(xiàn)在的Web應(yīng)用程序?qū)ν瓿蓮?fù)雜應(yīng)用方面卻始終跟不上步伐。用戶與今天中等復(fù)雜程度的Web應(yīng)用程序交互時(shí),其體驗(yàn)并不能令人滿意。Web模型是基于頁(yè)面的模型,缺少客戶端智能機(jī)制。而且,它幾乎無法完成復(fù)雜的用戶交互(如傳統(tǒng)的C/S應(yīng)用程序和桌面應(yīng)用程序中的用戶交互)。這樣的技術(shù)使得Web應(yīng)用程序難以使用,支持成本高,并且在很多方面無法發(fā)揮效應(yīng)。 為了提高用戶體驗(yàn),出現(xiàn)了一種新類型的Internet應(yīng)用程序。那就是Rich Internet Applications(RIA)。這些應(yīng)用程序結(jié)合了桌面應(yīng)用程序的反應(yīng)快、交互性強(qiáng)的優(yōu)點(diǎn)與Web應(yīng)用程序的傳播范圍廣及容易傳播的特性。RIA簡(jiǎn)化并改進(jìn)了Web應(yīng)用程序的用戶交互。這樣,用戶開發(fā)的應(yīng)用程序可以提供更豐富、更具有交互性和響應(yīng)性的用戶體驗(yàn)。 基于主機(jī)模式→C/S模式→B/S模式→RIA模式 我們的行業(yè)經(jīng)歷了幾次系統(tǒng)架構(gòu)方面的重要轉(zhuǎn)變,在此過程中,客戶端的表現(xiàn)功能有起有落。上圖介紹了每個(gè)階段的計(jì)算功能所帶來的應(yīng)用程序體驗(yàn)方面的變化,這一過程從大型機(jī)開始,到RIA的出現(xiàn)為止。 隨著各企業(yè)組織認(rèn)識(shí)到RIA模型可產(chǎn)生顯著的商業(yè)利潤(rùn)、提高生產(chǎn)率及降低成本的優(yōu)勢(shì)后,這種模型的發(fā)展勢(shì)頭越來越猛烈。這些應(yīng)用程序結(jié)合了桌面應(yīng)用程序的反應(yīng)快、交互性強(qiáng)的優(yōu)點(diǎn)與Web應(yīng)用程序的傳播范圍廣及容易傳播的特性。系統(tǒng)架構(gòu)發(fā)展的下一步是RIA,它最大程度地提高了廣泛性和豐富性。 論傳統(tǒng)B/S之不足 過程復(fù)雜性 過程復(fù)雜性是由于需要表達(dá)一個(gè)多步驟或多選項(xiàng)任務(wù)或互動(dòng)作用所引起的。在HTML里,一個(gè)多步驟的任務(wù)可以在單頁(yè)內(nèi)表達(dá)出來。但是由于HTML的互動(dòng)性有限,便可能產(chǎn)生一份很長(zhǎng)的頁(yè)面,使用戶感到混亂、笨拙而難以使用。為了避免這種難以忍受的用戶體驗(yàn),便需將任務(wù)在表面上看來“自然”的部分處區(qū)分成多個(gè)步驟,甚至需多個(gè)網(wǎng)頁(yè)共同完成。這種以網(wǎng)頁(yè)為主的用戶界面通常需要反復(fù)翻轉(zhuǎn)網(wǎng)頁(yè),以解決在順序步驟中有牽連性的改變。其結(jié)果是緩慢、不自然、混亂而且令人感到懊惱的用戶體驗(yàn)。 配置復(fù)雜性 許多Web應(yīng)用程序允許用戶配置自己所要的定制產(chǎn)品——可以是皮包或是計(jì)算機(jī),甚至是汽車等產(chǎn)品。但是配置產(chǎn)品是一項(xiàng)很困難的過程,因?yàn)樵谙蛴脩粽故舅杏行У漠a(chǎn)品選項(xiàng)組合時(shí),應(yīng)用程序必須能夠表達(dá)出有關(guān)的復(fù)雜性,尤其是當(dāng)用戶可以從數(shù)十、數(shù)百或數(shù)千選項(xiàng)中定制出一個(gè)產(chǎn)品時(shí)。表達(dá)這些復(fù)雜性包括指出所需條件、有效和無效組合、一些導(dǎo)致問題的元素以及它們的適當(dāng)解決方法;為每一項(xiàng)個(gè)人選擇提供費(fèi)用信息以及費(fèi)用總計(jì)(一旦有所更改);還有最重要的是容許用戶觀看最后結(jié)果。這些是傳統(tǒng)Web應(yīng)用程序相當(dāng)難以表現(xiàn)的。 規(guī)模復(fù)雜性 今天,網(wǎng)站內(nèi)的搜索工具大多是文本性質(zhì),間中夾著一些錦上添花的圖像。當(dāng)用戶輸入他或她的數(shù)碼照相機(jī)準(zhǔn)則,有可能是價(jià)格、以像素等,網(wǎng)站便接著回復(fù)數(shù)頁(yè)符合準(zhǔn)則的產(chǎn)品,而大部分都是說明文本。反之,另一種方法則是使用視覺化來簡(jiǎn)化搜索空間(也就是提供立即和動(dòng)態(tài)的視覺反饋)。在一個(gè)視覺化選擇照相機(jī)的網(wǎng)站,其搜索過程可能如下:網(wǎng)站從一個(gè)包含所有照相機(jī)種類圖像的單屏幕開始。當(dāng)用戶通過復(fù)選框、游標(biāo)或數(shù)據(jù)輸入域來選擇篩選準(zhǔn)則時(shí),所有不符合準(zhǔn)則的照相機(jī)圖像將被刪除,只余下符合準(zhǔn)則的照相機(jī)可在屏幕上看到。因此,在把選擇聚焦至符合準(zhǔn)則的數(shù)部照相機(jī)的過程中,用戶可經(jīng)歷一個(gè)截然不同,而且和現(xiàn)實(shí)生活中的購(gòu)物經(jīng)驗(yàn)更相似的體驗(yàn)。 反饋復(fù)雜性 高度互動(dòng)性的應(yīng)用程序如游戲,能使反饋?zhàn)兊脧?fù)雜,也即是指用戶行動(dòng)和快速移動(dòng)或情節(jié)不斷改變的屏幕元素之間的反饋環(huán)路。傳統(tǒng)的HTML頁(yè)面一向來都可以說是無法表達(dá)這類復(fù)雜性。它所需要的是擁有高度互動(dòng)性和局部智能型的客戶端應(yīng)用程序,以便可以在無需刷新全頁(yè)或干擾與服務(wù)器之間的通信的情況下,響應(yīng)用戶的輸入和改變它們的狀態(tài)或界面。放棄如今依賴服務(wù)器的客戶機(jī)將使用戶體驗(yàn)更吸引,同時(shí)也解決了反饋復(fù)雜性的問題。Web應(yīng)用程序必須擁有表達(dá)復(fù)雜性的能力,以容許用戶視看復(fù)雜的數(shù)據(jù)、配置多選項(xiàng)的產(chǎn)品、搜索大型數(shù)據(jù)集以及容許用戶與數(shù)據(jù)之間的互動(dòng)交換。 真正的RIA 為了解決如今的問題,理想中的Web應(yīng)用程序應(yīng)該能夠: 1、 利用無處不在的客戶機(jī) 2、 在多種硬件平臺(tái)上毫無更改的操作互聯(lián)網(wǎng) 3、 無論低或高帶寬的連接都可毫無妨礙的執(zhí)行 4、 將處理能力復(fù)原給客戶(而不僅是提供能力而已) 5、 提供吸引人的高度互動(dòng)的用戶界面 6、 表達(dá)過程、數(shù)據(jù)配置、規(guī)模和反饋復(fù)雜性 7、 無縫的利用聲音、視像、圖像和文本 8、 容許用戶在線和離線工作以支持移動(dòng)工作流程 9、 容許客戶自行決定要在何時(shí)存取何種內(nèi)容和數(shù)據(jù)(異步內(nèi)容檢索) 10、 存取多種中間層服務(wù)(.NET或Java)和后端數(shù)據(jù)存儲(chǔ) 11、 采用新崛起的標(biāo)準(zhǔn)如XML和SOAP,為演進(jìn)中的Web Service為主的網(wǎng)絡(luò)提供動(dòng)態(tài)高效的前端應(yīng)用 12、 與遺舊的應(yīng)用程序和系統(tǒng)集成 13、 容許在現(xiàn)有Web應(yīng)用程序和環(huán)境內(nèi)逐步添加新功能以充分利用現(xiàn)有網(wǎng)絡(luò)應(yīng)用投資 結(jié) 構(gòu) RIA本身有能力提供這類Web應(yīng)用解決方案。如上圖,RIA將桌面型計(jì)算機(jī)軟件應(yīng)用的最佳用戶界面功能性與Web應(yīng)用程序的普遍采納和低成本部署以及互動(dòng)多媒體通信的長(zhǎng)處集于一體,終于成就了一種可以提供更直觀、響應(yīng)性和有效的用戶體驗(yàn)應(yīng)用程序。它所具備的桌面型計(jì)算機(jī)長(zhǎng)處包括了在確認(rèn)和格式編排方面提供互動(dòng)用戶界面;在無刷新頁(yè)面之下提供快捷的界面響應(yīng)時(shí)間;提供通用的用戶界面特性如拖放式(drag and drop)以及在線和離線操作能力。Web網(wǎng)的長(zhǎng)處如立即部署、跨越平臺(tái)可用性、采用逐步下載來檢索內(nèi)容和數(shù)據(jù)、擁有雜志式布局的網(wǎng)頁(yè)以及充分利用被廣泛采納的互聯(lián)網(wǎng)標(biāo)準(zhǔn)。通信的長(zhǎng)處則包括雙向互動(dòng)聲音和圖像。 客戶機(jī)在RIA內(nèi)的作用不僅是展示頁(yè)面,它可以在幕后與用戶請(qǐng)求異步地進(jìn)行計(jì)算、遞送和檢索數(shù)據(jù)、重新畫出屏幕的一部分和密切綜合使用聲音和圖像,這一切都可以在不依靠客戶機(jī)連接的服務(wù)器或后端的情況下進(jìn)行。 RIA提供一個(gè)強(qiáng)勁的技術(shù)平臺(tái),使客戶機(jī)的能力復(fù)原到差不多與桌面型計(jì)算機(jī)軟件應(yīng)用或傳統(tǒng)的C/S系統(tǒng)中的客戶機(jī)能力相似。它適合傳統(tǒng)的N層開發(fā)過程,同時(shí)也能夠和遺舊的環(huán)境集成以延展現(xiàn)有的應(yīng)用程序而無需進(jìn)行修改。它也可以作為基礎(chǔ)網(wǎng)絡(luò)服務(wù)的互動(dòng)表現(xiàn)層,允許用戶在線和離線工作。RIA有能力解決各種復(fù)雜性,使需要復(fù)雜性的應(yīng)用得以開發(fā)并且減少開發(fā)成本,同時(shí)在很多時(shí)候這類應(yīng)用之所以能夠成形主要是拜RIA所賜。 RIA方案—基于Flash的Flex Flex簡(jiǎn)介 Macromedia公司被公認(rèn)為新興的RIA市場(chǎng)的領(lǐng)導(dǎo)者。今天98%的瀏覽器上都使用Macromedia Flash客戶端軟件,因此幾乎每個(gè)人都可以使用基于Flash的RIA。Macromedia Flex是Macromedia的新服務(wù)器產(chǎn)品,它使企業(yè)應(yīng)用程序開發(fā)人員能夠全面訪問RIA的功能。Flex具有基于標(biāo)準(zhǔn)的架構(gòu),與當(dāng)前企業(yè)開發(fā)人員的工具、方法和設(shè)計(jì)模式互補(bǔ)。 Flex應(yīng)用程序與傳統(tǒng)的HTML應(yīng)用程序的主要區(qū)別在于Flex應(yīng)用程序處理最適合在客戶端運(yùn)行,如字段校驗(yàn)、數(shù)據(jù)格式、分類、過濾、工具提示、合成視頻、行為及效果等。Flex 可使開發(fā)人員更好地交付應(yīng)用程序,這種應(yīng)用程序使用戶可以迅速反應(yīng)、在不同狀態(tài)與顯示間流暢過渡,并提供毫無中斷的連續(xù)的工作流。 Flex 應(yīng)用程序框架 如上圖所示,F(xiàn)lex應(yīng)用程序框架由MXML、ActionScript 2.0及Flex類庫(kù)構(gòu)成。開發(fā)人員利用 MXML及ActionScript 2.0編寫Flex應(yīng)用程序。利用MXML定義應(yīng)用程序用戶界面元素,利用ActionScript 2.0定義客戶邏輯與程序控制。Flex類庫(kù)中包括Flex組件、管理器及行為等。利用基于Flex 組件的開發(fā)模型,開發(fā)人員可在程序中加入預(yù)建的組件、創(chuàng)建新組件或是將預(yù)建的組件加入復(fù)合組件中。 這里重點(diǎn)介紹一下MXML。與HTML一樣,都是標(biāo)記語(yǔ)言,它描述了反映內(nèi)容與功能的用戶界面。與HTML不同的是,MXML 可對(duì)表示層邏輯與用戶界面和服務(wù)器端數(shù)據(jù)綁定提供聲明抽象。MXML可將表示與業(yè)務(wù)邏輯的問題徹底分開,以實(shí)現(xiàn)最大程度地提高開發(fā)人員的生產(chǎn)率及應(yīng)用程序的重復(fù)使用率。 Flex的不足 目前Macromedia最新推出了Flex 1.0 Updater,但它代號(hào)為“Brady”的IDE還沒有正式推出,目前還在進(jìn)行Beta 3測(cè)試。拋開IDE不說,筆者認(rèn)為Flex目前還很不成熟,還不利于在實(shí)際項(xiàng)目中使用。 例如,F(xiàn)lex自帶的ZipCodeValidator,里面只提供了美國(guó)和加拿大的郵編規(guī)則,沒有其他選擇,也無法個(gè)性化它。看來只有自己來定義Validator了,但這樣一來,和在JS中寫正則表達(dá)式有什么區(qū)別(代碼量和JS差不多)?用戶需要的是國(guó)際化的ZipCodeValidator,這樣才能提高工作效率。 一句話概括 現(xiàn)在的Flex才是1.0版本,很多地方都不完善,只好自定義才能完成特定的要求。期待著Brady以及Flex后續(xù)版本的推出! RIA方案—基于JS的Bindows Bindows簡(jiǎn)介 “Bindows把javascript發(fā)揮到了第九層!”——網(wǎng)友這樣評(píng)價(jià)Bindows。 運(yùn)行中的Bindows 的確如此,Erik等編寫這個(gè)框架已經(jīng)將javascript的OOP和基于IE6的DHTML發(fā)揮到極點(diǎn)!Bindows 0.93發(fā)布的時(shí)候已經(jīng)將IE內(nèi)置的功能開發(fā)得淋漓盡致了,包括Filter、XMLHTTP、Web Service、VML。javascript用于客戶端界面的顯示和處理,XMLHTTP用于客戶端與服務(wù)器的信息傳輸。javascript在客戶端的表現(xiàn)力不容置疑,看看www.bindows.net所表示出來的能力,利用javascript幾乎可以實(shí)現(xiàn)Windows應(yīng)用程序所能干的大部分事情,XMLHTTP一直以來常被用于實(shí)現(xiàn)“無刷新”的Web頁(yè)面,它和javascript配合,可以完成數(shù)據(jù)從服務(wù)器和客戶端的傳輸。 Bindows的不足 Erik喜歡那種一次全部載入的方式來實(shí)現(xiàn)腳本庫(kù),使用過Bindows會(huì)發(fā)現(xiàn),在窗口的加載期,需要一個(gè)漫長(zhǎng)的等待過程,甚至瀏覽器的進(jìn)程會(huì)產(chǎn)生無響應(yīng)的情況。按照V0.93,腳本文件的大小是600多K,在一個(gè)普通的Web應(yīng)用中,我們更多時(shí)候不會(huì)用到Bindows的全部功能,這點(diǎn)Bindows根本沒有遵循“用多少去多少”的準(zhǔn)則。另外,過多的JS會(huì)使CPU占用率陡然增加,產(chǎn)生潛在問題。 內(nèi)部大量利用了IE6的技術(shù),沒有考慮到非微軟平臺(tái)的瀏覽器,限制了Bindows的流行。在圖表方面,大量采用了VML技術(shù),在IE5,IE5.5這兩個(gè)版本,VML引擎不是那么的成熟,很多地方的顯示不夠流暢,會(huì)受到帶寬和硬件的限制,過分絢麗的圖形最終會(huì)給用戶帶來崩潰。“圖形方面我是采用VML的,當(dāng)初太偏執(zhí),如果使用SVG來實(shí)現(xiàn)可能好許多的,也就是那段日子,我花了非常多的時(shí)間去折騰web方面開發(fā)。”——有網(wǎng)友這樣說。 一句話概括 在技術(shù)的角度上,從Bindows是可以學(xué)到不少東西的,但好像它的學(xué)術(shù)價(jià)值大于它的商業(yè)價(jià)值。 后 記 興奮歸興奮,冷靜下來仔細(xì)想想,運(yùn)用RIA改造現(xiàn)有B/S模式還為時(shí)尚早。制約我們的首先是網(wǎng)絡(luò)環(huán)境和硬件環(huán)境的不完善性,我想沒有哪個(gè)用戶愿意花大量的時(shí)間來等待想要看見的“花哨”頁(yè)面,更不愿意等來的東西使自己的機(jī)器不堪重負(fù),而換來的只是一些良好體驗(yàn)吧?市場(chǎng)決定一切,而不是任何的新技術(shù)!其次,目前RIA的解決方案也不成熟,筆者看好Flex,可惜還需要長(zhǎng)時(shí)間的等待才有結(jié)果。當(dāng)然,還有很多RIA的方案,感覺MS的Smart Client + Web Service來頭不小。 本文叫“迎接RIA時(shí)代的來臨”,筆者充滿了對(duì)RIA的美好憧憬,期待著有一天能夠在RIA的環(huán)境中進(jìn)行虛擬現(xiàn)實(shí)的交互式體驗(yàn)! Are you ready? Let’s go! 鳴 謝:RIA中國(guó) 沒有他們,我想今天也不會(huì)對(duì)RIA有如此的認(rèn)識(shí)!!! 參考文獻(xiàn) Flex 白皮書 IDC--RIA白皮書 回歸C/S?解釋Bindows 迎接Client/Server模式的回歸 Flex: RIA 的先驅(qū),無堅(jiān)不摧的銀彈? Return of Rich Client
          posted on 2006-04-28 16:19 blog搬家了--[www.ialway.com/blog] 閱讀(296) 評(píng)論(0)  編輯  收藏 所屬分類: Flex
          主站蜘蛛池模板: 酒泉市| 满城县| 广元市| 平武县| 疏附县| 达孜县| 密山市| 闸北区| 保山市| 五指山市| 宁波市| 郸城县| 天峻县| 汉沽区| 友谊县| 临江市| 广德县| 武强县| 丽江市| 湘潭市| 库伦旗| 普安县| 辰溪县| 云和县| 山东| 乐陵市| 江陵县| 滦南县| 遵义县| 东阳市| 遂溪县| 荃湾区| 铜山县| 洱源县| 安达市| 云霄县| 赣州市| 南安市| 东乡县| 南召县| 夏津县|