富互連網應用系統(RIA)一覽

來源:互聯網
上載者:User
當時我們把傳統的案頭軟體叫做富用戶端軟體,把基於瀏覽器的程式叫做瘦用戶端軟體,那麼需要澄清的是C/S的那種富用戶端程式並不是RIA程式,千萬不要把"Rich client"等同於"Rich experience",而RIA的核心則是"Rich experience",這個"Rich experience"不僅僅代表的是介面(UI)體驗

在過去的大約兩年中,人們的興趣一直是想構建一個"富用戶端":這是一個使用者介面,它比用HTML能實現的介面更加健壯、反應更加靈敏和更具有令人感興趣的可視化特性。RIA(Rich Internet Application,富互連網應用系統)技術允許我們在網際網路上以一種象使用Web一樣簡單的方式來部署富用戶端程式。無論將來RIA是否能夠如人們所猜測的那樣完全代替HTML應用系統,對於那些採用胖用戶端技術運行複雜應用系統的機構來說,RIA確實提供了一種廉價的選擇。

  在本專欄中,我將列舉一些當前的RIA產品和技術,並且提供一些如何開始應用這些產品和技術的啟示。在DevTrends網站和即將發行的近幾期Oracle Magazine雜誌上,我將詳細探討使用Oracle平台部署RIA的特定技術和策略。

  為什麼用RIA?

  基於HTML的應用程式之所以變得流行是由於應用系統的部署成本低、結構簡單,且HTML易於學習和使用。很多使用者和開發人員都樂於放棄由案頭電腦帶來的使用者介面改進,來實現對新資料和應用系統的快速存取。與喪失一些重要的UI功能相比,基於Web的方式所帶來的好處要更大得多。

  然而,某些應用系統並不完全適合採用HTML技術。複雜的應用系統可能要求多次提取網頁來完成一項交易處理,在某些領域中,如醫藥和財務領域,這往往導致互動速度低得無法接受。讓我考慮一個專案管理系統:我們可以將其實現為一個HTML應用系統,但是如果使用者可以看到並且操作圖表、進度表和各種階層,那麼顯然會工作得更好。

  此外,雖然HTML開始走向簡單,但是即使簡單的互動活動也仍然需要用很多的指令碼來完成。即使一個輸入表單經過仔細的布置和全面的指令碼設計,它從瀏覽器所能發送的也僅僅是簡單的"名字/值"對。如果一個HTML表單能夠以XML文檔形式發送和接收更複雜的資料結構,那就好多了。

  RIA利用相對健壯的用戶端描述引擎,這個引擎能夠提供內容密集、響應速度快和圖形豐富的使用者介面。除了提供一個具有各種控制項(滑標、日期選取器、視窗、選項卡、微調控制器和尺規等)的介面之外,RIA一般還允許使用SVG(Scalable Vector Graphics,可伸縮向量圖)或其他技術來隨時構建圖形。一些RIA技術甚至能夠提供全活動的動畫來對資料變化作出響應。

  RIA的另一個好處在於,資料能夠被緩衝在用戶端,從而可以實現一個比基於HTML的響應速度更快且資料往返於伺服器的次數更少的使用者介面。對於無線裝置和需要偶爾串連的裝置來說,將來的趨勢肯定是向富用戶端的方向發展,並且會逐漸遠離基於文本的Web用戶端。那些運行在膝上裝置上的應用系統,可以被設計成以離線方式工作,或者至少當串連丟失的時候能基本上以離線的方式工作。

  圖1給出了一個典型的RIA體繫結構。XML通常被用作資料轉送的格式,有時也被用來描述表單的布局。在很多的執行個體中,用戶端可以保持與資料來源的串連,這樣伺服器能夠即時地對用戶端資料進行更新。對一個Oracle資料的訪問可以通過Web服務調用來完成。

  用於富用戶端的技術

  下面是一些可用的RIA技術:

  Java:一些相當複雜的用戶端應用程式(Oracle的JDeveloper,Eclipse)都是用Java編寫的,這說明可以用Java來建立幾乎任何一個能夠想象得到的富用戶端應用程式。到目前為止,Java已經出現幾年了,並且完全支援建立基於表單的使用者介面。除了Java基礎類(JFC/Swing)中的使用者介面組件之外,開發人員還可以使用來自於Eclipse Project的SWT工具箱和許多第三方工具箱進行開發。對於圖形來說,可以採用Java 2D API--一個非常完整且非常複雜的圖形API。

  Java還具有對XML和Web服務無人匹敵的支援能力。你可以通過一個Web瀏覽器使用Java外掛程式軟體,或使用Java運行時環境中較新的Java Web Start技術來部署應用程式。使用Java建立富用戶端程式的主要缺陷是它的複雜性(即使對簡單的表單和圖形也要求編寫非常煩瑣的代碼)。它的優點在於Java對Web標準的全面支援,及該語言和類庫的深刻內涵。

  XUL:XUL(念作"zool")是一個基於XML的使用者介面語言,它來自於Mozilla的開放源碼項目。它可用於建立表單應用程式,這些應用程式不但可以在Mozilla瀏覽器上運行,而且也可以運行在其他描述引擎上,如Zulu(一個Flash MX組件)和Thinleys(一個Java實現)。XUL描述引擎都非常小(100K以下),它可以使用XML資料也可以產生XML資料。同Java的情況一樣,XUL也有一個非常大的使用者團體,這個團體有大量的開放源工具,如Theodore ThinletEditor(見“下一步”)——一個使你能夠以圖形化方式布局使用者介面,且可以產生相應XUL的Java應用程式。XUL的一個主要缺點在於它目前還沒有獲得一個主要商業實體的支援。XUL最大的優點在於它與Gecko引擎的整合(開啟了通向大量Web標準的大門),以及與大多數其他XML使用者介面描述語言相比它是一種非常具有表達力和簡潔的語言。

  Macromedia Flash和Flex:Flash是一個已經成熟的商業產品,它可以在Web網頁中引入互動圖形介面。最近經過升級後,新版本包含了建立表單風格的應用程式的功能。儘管Flash作為一個在Web上最廣泛部署的前端技術還有爭議(取決於所選用的Flash Player版本),但據稱已經有98%以上的案頭系統都支援Falsh。由於用來建立動畫式圖形的Flash工具其功能十分強大和是可視化的(與之相反其它技術要求進行低級的圖形編碼),所以圖形設計人員使用起來十分得心應手。Flah採用的指令碼語言是ActionScript--ECMAScript 1.5的一個變種,該指令碼語言又被稱為JavaScript。Flex產品對Flash增加了一個XML描述語言,使得可以編譯使用者介面,並且能夠用Flash Player來隨時進行描述。Flex使得傳統的開發機構能更好地瞭解和使用Flash。Flex和Flash的最大缺點在於對XML和Web服務等標準的支援很有限,而且作為應用開發工具的環境還不大成熟。Flex和Flash的優點在於它可以很容易的用來建立複雜的動畫式顯示,以及可以使用第三方附件。

  Oracle Forms:Oracle Forms是用來構建以資料庫為中心的互連網應用系統的一個成熟的商品化產品。通過Oracle Forms,你可以使用一個輸出表單模組檔案的視覺化設計工具建立表單。為了便於在該設計工具外部進一步進行處理,模組檔案要麼採用私人的FMT格式,要麼採用XML格式。這些模組檔案驅動一個描述表單的Java運行時環境。除了所有表單的標準視窗小組件之外,還可以通過整合附加的可插入的Java組件和一些定製的JavaBean來實現更多的功能性。Oracle Forms採用的指令碼語言為PL/SQL,Oracle資料庫也採用同樣的指令碼語言。Oracle Forms的一個非常有趣的特點就是,用來建立、編輯和編譯表單模組檔案的Java API--開發人員可以通過建立指令碼來產生眾多的表單應用程式,或者進行全域性的改動。Oracle Forms的主要缺點是,進行Web部署需要獲得Oracle應用伺服器的使用許可。它的優點是,它可以與Oracle資料庫和Oracle平台的其他部分(如Single Sign-On(單一登入)和Enterprise Manager(企業管理器))緊密整合,對國際化的廣泛支援,以及建立以資料為中心應用程式的極高效率。

  開始選擇和使用RIA技術

  這裡只討論了可用於建立RIA的技術中的一些有代表性的例子,還有很多其他的技術。當選擇一項RIA技術的時候,你需要權衡以下幾個因素:

  開放源產品與商品化產品進行對比;
  成熟的功能與最新的特性進行對比;
  輕量級的功能特性範圍與UI的豐富性進行對比;
  以媒體為中心的應用程式與以資料為中心的應用程式進行對比;

  無論你選用哪種技術,我都可以提供最好的建立RIA應用程式的實踐經驗:

  在後台線程擷取資料。對於一個富客戶應用程式所期望的效能是很高的,如果該應用程式在從一個Web服務收集資料的時候出現暫停,則將被看作是無反應的。

  保持用戶端與遠端資料的同步。由於不再經常重新整理頁面,所以如果有可能,將資料的變化以非同步方式推送到用戶端是非常重要的。

  僱傭一個圖形藝術家,或者至少一個好的UI設計人員。當然,伴隨著建立具有可視化的有趣功能的UI的能力,它也帶來了將事情搞混亂的機會。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.