複製鏈接
請複製以下鏈接發送給好友

Rich Client

鎖定
富因特網應用程序(Rich Internet Applications,RIA)利用具有很強交互性的富客户端技術來為用户提供一個更高和更全方位的網絡體驗。
中文名
富因特網應用程序
外文名
Rich Client
性    質
計算機程序

Rich ClientRCP介紹

RCP (Rich Client Platform)提供了一個通用的 Eclipse 工作台,允許開發人員擴展和構造自己的應用程序。

Rich Client發佈

簡介
富因特網應用程序(Rich Internet Applications,RIA)利用具有很強交互性的富客户端技術來為用户提供一個更高和更全方位的網絡體驗。RIA集成了桌面應用的交互性和傳統Web應用的部署靈活性與成本分析,以創建單一而完整的用户體驗。富客户端技術使創建RIA成為可能,它提供一個運行時的環境以承載被編譯的客户端應用程序,該客户端應用程序是一個使用HTTP協議發佈的文件。客户端應用程序使用異步的C/S結構連接到現有的應用服務器,這是一種安全的、可升級的、具有良好適應性的面向服務模型,這種模型由當前所採用的Web服務驅動。
富客户端技術正在不斷地完善中,但並不意味着會取代HTML。相反它將進一步擴展瀏覽器功能,使之提供更加高效和友好的用户接口。許多RIA都在瀏覽器中運行,甚至它本身就是HTML的一部分,所以HTML將繼續保持其原有的角色。另外,由於富客户端技術可以支持運動的圖像、視頻、音頻、雙向的數據通信和創建複雜的窗體,它為創建應用程序用户接口提供了一個高效而完善的開發環境.
RIA開發必須具備三個要素:富客户端技術、服務器技術和開發工具。富客户端技術充分利用本地機器的處理能力來處理數據,而不需要把某些數據發送到服務器處理,充分利用了本地機器的資源。服務器技術提供了一種與富客户端的連接機制,作為RIA的服務器技術必須從現有的服務器技術繼承,可以提供一個快速的腳本環境,支持數據庫應用開發、雙向數據通信、實時數據通信,甚至採用一種新的服務器,例如:ColdFusion Server和Flash Communication Server等。RIA實現必須有一組簡單而高效的開發工具,如果沒有一組簡單而高效的開發工具,那麼富客户端技術與服務器技術是毫無意義的。正是由於RIA的C/S結構,它需要一組開發工具協同工作才可以完成。
儘管目前有許多富客户端技術,但是Macromedia Flash Player卻被廣泛採用,它已經逐漸成為富客户端技術的網絡標準。Flash Player 已經是一個無處不在的富媒體客户端,它可以在不同的瀏覽器和操作系統上運行,所以它是一個跨平台、跨操作系統的網絡客户端。
“富”的概念包含兩方面,分別是指它具備豐富的用户界面和豐富的數據模型。
典型的富客户端模型
富客户模型將界面分解成許多的既可以和用户直接交互又可以和服務器進行通信的小單元模塊。
這種將應用程序的設計從以一個個相對獨立的頁面為中心轉移到以組件為中心的轉變將會使客户層的設計提升到一個新的層次,並且會使客户層變得更加靈活。富客户層不再成為服務器響應的最終端,這同時也使程序的性能得以提高,用户使用的感覺就好像程序不需要和服務器進行通信或者只是偶爾才需要進行通信。
不像傳統的模型那樣,服務器收到請求後由上至下的創建客户端界面,你不用預測事件的順序。既然每個組件都是獨立的,就沒有必要因為一個請求而做出影響整個視圖的反應。要使每個組件都具有向服務器傳送信息的能力需要每個組件知道如何處理服務器傳遞回來的信息。在RIA中,客户端和服務器端交互數據是不同步的,這樣你就可以控制組件創建信息發送給服務器和處理服務器的響應,可以為更零散的控制去耦和分離程序功能並且組建面向服務的程序結構。
Rich Client是一個相對的概念,主要是針對時下廣泛的基於WEB的應用,因為這種客户端(也即現有的各種瀏覽器)的運行環境沒有提供一個很好的組件模型和交互模型致使這種應用的界面的同服務之間的交互變的很奇怪,每一次交互都需要重新組織出整個界面,而這個界面的組織基本在服務器端完成,也所以致使表現層的邏輯居於服務器端,所以稱這種為Thin Client,而相對的則是Rich Client,目前來説在技術上Rich Client還沒有一個甚或是兩個大一統而且又成熟的標準技術出來,所以Rich Client只能説是一種架構方式,其特點便是服務同表現完全的物理分離,表現邏輯完全由客户端來負責,這是最關鍵的一點。但我認為一定要同時兼顧原有WEB應用的零部署等特點。
C/S架構下,客户端程序發佈與維護一直比較困難和繁瑣。在版本更新以後,需要對客户的客户端程序進行逐個下載安裝及配置更新,這是一個體力活,而這也一直是使用户大量選擇WEB程序的因素之一。
在Rich Client時代,由於寬帶網絡的便利,在客户端僅僅需要從服務器端下載已經更新好的程序運行,而不必理會繁瑣的下載、安裝和配置的過程。這裏不得不提Java的是技WebStart術。
WebStart
WebStart(Java Web Start)是讓用户只需在網頁上點擊一個超級鏈接就能運行一個Java桌面應用的技術。對於一個擁有WebStart能力的Java應用來説,用户使用它就和使用WEB應用一樣的簡單,但它所具有的界面能力和本地處理能力卻是WEB應用無法望其項背的。

Rich Client通信機制

除了快捷方便的發佈外,Rich Client還需要與服務器端建立一種快速、可靠、強大、易用的通信交互機制。但我們開發WEB應用時,表現層和業務服務層常常只是同一個進程中的不同對象,它們之間的交互不過是Java的方法調用而已,當表現層邏輯被分發到世界各地的計算機上,客户端和服務器之間的交互就成了一個大問題——從前的B/S被淘汰,很大程度上歸咎於socket通信的複雜性。
現在,形形色色的RPC(遠程過程調用,Remote Procedure Call)技術以獨特的優勢扮演起了信使的角色。以下列舉幾種Rich Client可以採用的通信機制。
CORBA和RMI
CORBA(通用對象請求代理體系結構,Common Object Request Broker Architecture)曾經紅極一時,它能夠兼容各種操作系統平台的語言,強大的可擴展性所帶來的負面影響就是實現的複雜和繁瑣。如果服務器端和客户端都採用Java開發,那麼CORBA所需要的語言無關的IDL就完全變成了畫蛇添足。當然,對於需要集成大量企業內遺留的系統的EAI(企業應用集成)項目中,它一直是首選的技術。
RMI可以是做CORBA的Java版本,但相比較而言這是一個輕量級的版本了,對於服務器和客户端兩邊都用Java來實現的前提下,這是一個非常好的選擇。
CORBA和RMI有一個共同的缺陷:通常不會在系統80端口提供服務,所以這在具備網絡防火牆的情況下顯得非常被動。
XML-RPC
為了解決在系統的80端口提供RPC的服務,而又不影響正在執行的WEB服務,人們想出了用HTTP協議傳輸RPC包的辦法。對於幾乎是專門用於傳輸文本的HTTP協議,要在其上傳輸RPC封包,最方便的方法莫過於把RPC封包編碼成文本形式——例如XML文件。
XML-RPC是由美國UserLand公司指定的一個RPC協議。它將RPC信息封包編碼為XML,然後通過HTTP傳輸封包;它是一個簡單的RPC協議,只支持一些基本數據類型,不支持對象模型,這勢必掣肘在客户端和服務器端之間傳輸複雜的對象。
SOAP
SOAP即Simple Object Access Protocol(簡單對象訪問協議)是在分散或分佈式的環境中交換信息的簡單的協議,是一個基於XML的協議。它允許所有的操作在80端口上進行,從而也繞過了防火牆等問題。
SOAP規範中有三個基本組成部分:SOAP封裝,編碼規則,以及在請求和響應之間的交互方式。
目前已有的基於JAVA提供SOAP功能的產品有:Apache SOAP, IBM SOAP4J等
Hessian
Hessian是由Resin應用服務器的開發商Caucho公司制定的一個RPC協議,雖然它也是通過HTTP協議傳輸RPC封包,但是它的RPC封包卻是以二進制形式編碼的,而且能夠表現對象模型和異常體系,這就使得Hessian比XML-RPC具有更高的效率。

Rich Client開源開發平台

Rich Client開源開發平台Laszlo
Laszlo
是一個開源的Rich client開發環境。使用Laszlo平台時,開發者只需編寫名為LZX的描述語言(其中整合了XML和JavaScript),運行在J2EE應用服務器上的Laszlo平台會將其編譯成FLASH文件並傳輸給客户端展示。單從運行原理來説,Laszlo與XUL(XML用户接口語言, XML User interface Language)、XAML(“Longhorn”)標記語言很類似。但它的最大優勢在於:它把描述語言編譯成FLASH,而FLASH是任何瀏覽器都支持的展示形式,從而一舉解決了瀏覽器之間的移植問題。而且,在未來的計劃中,Laszlo還可以將LZX編譯成Java或.NET本地代碼,從而大大提高運行效率。
IBM AlphaWorks網站近日發佈了用於開發Laszlo應用程序的集成開發環境(實際上是一個Eclipse插件),使J2EE開發者能夠在他們熟悉的Eclipse環境中快速開發基於Laszlo的rich client應用程序。此外,AlphaWorks網站還提供了一個用Laszlo開發的示例應用,展示了在Eclispe環境下開發Laszlo應用的過程。
FLEX
Flex是Macromedia公司開發的,用於Rich client開發的環境,其原理是將MXML(the Macromedia Flex Markup Language)文件,編譯成SWF文件,然後顯示在瀏覽器中,並利用Web Service技術和服務器通信。從而利用Flash的強大功能,帶來更豐富的用户體驗。
Flex官方説法如下(摘自網絡上相關文章):
原代號為“Royale”的MacromediaFlex軟件將把服務器軟件、開發指南和其他工具組合在一起,使傳統的網絡應用開發人員能夠用Macromedia公司的Flash格式創作軟件單元。如從前報道的那樣,該產品的重點是讓那些使用Sun微系統公司的Java2企業版(J2EE)的開發人員能夠創作出更有吸引力、更容易導航的J2EE應用軟件接口。
Flex將使J2EE開發人員使用標準的文本式開發工具來製作Flash應用程序,而不必使用Macromedia公司以前出售的複雜的設計工具。Macromedia公司從今年年初開始,努力擴大Flash格式對於主流開發商的吸引力,其目標是擴大Flash的用途,使其成為提供互聯網應用和建立交互式網站的基礎。
Macromedia公司計劃在2004年上半年推出Flex服務器軟件,該軟件的價格目前還沒有確定。它的初級版本將運行於J2EE中,並計劃隨後推出支持微軟的.Net格式的版本。最初的支持者包括IBM公司,它將隨自己的WebSphere軟件一起推廣Flex的應用。