电竞比分网-中国电竞赛事及体育赛事平台

分享

Rich Client技術(shù)簡介

 nbtymm 2007-01-04

承前

正如前文所介紹的,傳統(tǒng)的基于C/SWindows應(yīng)用程序總是讓客戶面臨著一些感覺很是不爽的問題,如:部署問題、升級困難、維護困難、安全問題,但是完全的WEB開發(fā)由于HTTP協(xié)議的無狀態(tài)特性——瀏覽器和服務(wù)器總是在不停地執(zhí)行RequestResponse來營造一種有狀態(tài)、持續(xù)會話的假象,致使人們又開始懷戀具有更強運算能力、本地存儲能力和更穩(wěn)定的通訊能力的客戶端程序了。

不得不說的是,寬帶網(wǎng)絡(luò)的出現(xiàn)在某種意義促成了Rich Client的誕生。通過快捷的發(fā)布,特定的通訊協(xié)議標(biāo)準(zhǔn),Rich Client正以不可阻擋的氣勢向人們重現(xiàn)著C/S模式下客戶端程序的優(yōu)勢。

Rich Client的發(fā)布

C/S架構(gòu)下,客戶端程序發(fā)布與維護一直比較困難和繁瑣。在版本更新以后,需要對客戶的客戶端程序進行逐個下載安裝及配置更新,這是一個體力活,而這也一直是使用戶大量選擇WEB程序的因素之一。

在Rich Client時代,由于寬帶網(wǎng)絡(luò)的便利,在客戶端盡盡需要從服務(wù)器端下載已經(jīng)更新好的程序運行,而不必理會繁瑣的下載、安裝和配置的過程。

這里不得不提Java的是WebStart技術(shù)。

WebStart是讓用戶只需在網(wǎng)頁上點擊一個超級鏈接就能運行一個Java桌面應(yīng)用的技術(shù)。對于一個擁有WebStart能力的Java應(yīng)用來說,用戶使用它就和使用WEB應(yīng)用一樣的簡單,但它所具有的界面能力和本地處理能力卻是WEB應(yīng)用無法望其項背的。

具體的應(yīng)用的技術(shù)知識可以從http://java.中尋找相關(guān)文檔,這里不一一贅述。

Rich Client的通信機制

除了快捷方便的發(fā)布外,Rich Client還需要與服務(wù)器端建立一種快速、可靠、強大、易用的通信交互機制。但我們開發(fā)WEB應(yīng)用時,表現(xiàn)層和業(yè)務(wù)服務(wù)層常常只是同一個進程中的不同對象,它們之間的交互不過是Java的方法調(diào)用而已,當(dāng)表現(xiàn)層邏輯被分發(fā)到世界各地的計算機上,客戶端和服務(wù)器之間的交互就成了一個大問題——從前的C/S被淘汰,很大程度上歸咎于socket通信的復(fù)雜性。

現(xiàn)在,形形色色的RPC(遠(yuǎn)程過程調(diào)用,Remote Procedure Call)技術(shù)以獨特的優(yōu)勢扮演起了信使的角色。以下列舉幾種Rich Client可以采用的通信機制。

CORBARMI

CORBA(通用對象請求代理體系結(jié)構(gòu),Common Object Request Broker Architecture)曾經(jīng)紅極一時,它能夠兼容各種操作系統(tǒng)平臺的語言,強大的的可擴展性所帶來的負(fù)面影響就是實現(xiàn)的復(fù)雜和繁瑣。如果服務(wù)器端和客戶端都采用Java開發(fā),那么CORBA所需要的語言無關(guān)的IDL就完全變成了畫蛇添足。當(dāng)然,對于需要集成大量企業(yè)內(nèi)遺留的系統(tǒng)的EAI(企業(yè)應(yīng)用集成)項目中,它一直是首選的技術(shù)。

RMI可以是做CORBA的Java版本,但相比較而言這是一個輕量級的版本了,對于服務(wù)器和客戶端兩邊都用Java來實現(xiàn)的前提下,這是一個非常好的選擇。

CORBA和RMI有一個共同的缺陷:通常不會在系統(tǒng)80端口提供服務(wù),所以這在具備網(wǎng)羅防火墻的情況下顯得非常被動。

XML-RPC

為了解決在系統(tǒng)的80端口提供RPC的服務(wù),而又不影響正在執(zhí)行的WEB服務(wù),人們想出了用HTTP協(xié)議傳輸RPC包的辦法。對于幾乎是專門用于傳輸文本的HTTP協(xié)議,要在其上傳輸RPC封包,最方便的方法莫過于把RPC封包編碼成文本形式——例如XML文件。

XML-RPC(http://www.)是由美國UserLand公司指定的一個RPC協(xié)議。它將RPC信息封包編碼為XML,然后通過HTTP傳輸封包;它是一個簡單的RPC協(xié)議,只支持一些基本數(shù)據(jù)類型,不支持對象模型,這勢必掣肘在客戶端和服務(wù)器端之間傳輸復(fù)雜的對象。

SOAP

      SOAP即Simple Object Access Protocol(簡單對象訪問協(xié)議)是在分散或分布式的環(huán)境中交換信息的簡單的協(xié)議,是一個基于XML的協(xié)議。它允許所有的操作在80端口上進行,從而也繞過了防火墻等問題。

  SOAP規(guī)范中有三個基本組成部分:SOAP封裝,編碼規(guī)則,以及在請求和響應(yīng)之間的交互方式。

  目前已有的基于JAVA提供SOAP功能的產(chǎn)品有:Apache SOAP, IBM SOAP4J等

    要了解更多關(guān)于SOAP的信息,可以訪問 http://www./TR/SOAP

Hessian

Hessian(http://www.)是由Resin應(yīng)用服務(wù)器的開發(fā)商Caucho公司制定的一個RPC協(xié)議,雖然它也是通過HTTP協(xié)議傳輸RPC封包,但是它的RPC封包卻是以二進制形式編碼的,而且能夠表現(xiàn)對象模型和異常體系,這就使得Hessian比XML-RPC具有更高的效率。

具體通信機制資料請讀者參考網(wǎng)上內(nèi)容和透明于2004年5期《程序員》雜志中《王朝復(fù)辟還是浴火重生》一文。

Rich Client開源開發(fā)平臺Laszlo

Laszlo是一個開源的Rich client開發(fā)環(huán)境。使用Laszlo平臺時,開發(fā)者只需編寫名為LZX的描述語言(其中整合了XML和JavaScript),運行在J2EE應(yīng)用服務(wù)器上的Laszlo平臺會將其編譯成FLASH文件并傳輸給客戶端展示。單從運行原理來說,Laszlo與XUL(XML用戶接口語言,    XML User interface Language)、XAML(Longhorn)標(biāo)記語言很類似。但它的最大優(yōu)勢在于:它把描述語言編譯成FLASH,而FLASH是任何瀏覽器都支持的展示形式,從而一舉解決了瀏覽器之間的移植問題。而且,在未來的計劃中,Laszlo還可以將LZX編譯成Java或.NET本地代碼,從而大大提高運行效率。

具體請參考http://www.。

IBM AlphaWorks網(wǎng)站近日發(fā)布了用于開發(fā)Laszlo應(yīng)用程序的集成開發(fā)環(huán)境(實際上是一個Eclipse插件),使J2EE開發(fā)者能夠在他們熟悉的Eclipse環(huán)境中快速開發(fā)基于Laszlo的rich client應(yīng)用程序。可以在下列地址下載該插件:

http://alphaworks.ibm.com/tech/ide4laszlo

此外,AlphaWorks網(wǎng)站還提供了一個用Laszlo開發(fā)的示例應(yīng)用,展示了在Eclispe環(huán)境下開發(fā)Laszlo應(yīng)用的過程。demo的地址如下:

http://dl.alphaworks.ibm.com/technologies/rcb/demo.html

FLEX

    Flex是Macromedia公司開發(fā)的,用于Rich client開發(fā)的環(huán)境,其原理是將MXML(the Macromedia Flex Markup Language)文件,編譯成SWF文件,然后顯示在瀏覽器中,并利用Web Service技術(shù)和服務(wù)器通信。從而利用Flash的強大功能,帶來更豐富的用戶體驗。

    Flex官方說法如下(摘自網(wǎng)絡(luò)上相關(guān)文章):

    原代號為Royale的MacromediaFlex軟件將把服務(wù)器軟件、開發(fā)指南和其他工具組合在一起,使傳統(tǒng)的網(wǎng)絡(luò)應(yīng)用開發(fā)人員能夠用Macromedia公司的Flash格式創(chuàng)作軟件單元。如從前報道的那樣,該產(chǎn)品的重點是讓那些使用Sun微系統(tǒng)公司的Java2企業(yè)版(J2EE)的開發(fā)人員能夠創(chuàng)作出更有吸引力、更容易導(dǎo)航的J2EE應(yīng)用軟件接口。

    Flex將使J2EE開發(fā)人員使用標(biāo)準(zhǔn)的文本式開發(fā)工具來制作Flash應(yīng)用程序,而不必使用Macromedia公司以前出售的復(fù)雜的設(shè)計工具。Macromedia公司從今年年初開始,努力擴大Flash格式對于主流開發(fā)商的吸引力,其目標(biāo)是擴大Flash的用途,使其成為提供互聯(lián)網(wǎng)應(yīng)用和建立交互式網(wǎng)站的基礎(chǔ)。

    Macromedia公司計劃在2004年上半年推出Flex服務(wù)器軟件,該軟件的價格目前還沒有確定。它的初級版本將運行于J2EE中,并計劃隨后推出支持微軟的.Net格式的版本。最初的支持者包括IBM公司,它將隨自己的WebSphere軟件一起推廣Flex的應(yīng)用。

    需要了解更多Flex技術(shù)的朋友可以訪問Flex的主頁:

    http://www.macromedia.com/software/flex/ 

Thinlet

    Thinlet是一個采用Applet解析XUL并提供相應(yīng)界面的解析器,在事件發(fā)生時,調(diào)用用戶自己的事件處理程序(java 程序),需要客戶端瀏覽器支持Applet。更多信息可以參考 http://www./

作者:大阿福,現(xiàn)就職于國內(nèi)一大型軟件公司

郵箱:toafu2002@yahoo.com.cn

QQ:1836566

Msn:toafu@msn.com

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多