久久九九国产无码高清_人人做人人澡人人人爽_日本一区二区三区中文字幕_日韩无码性爱免费

淺談基于Pushlet推技術(shù)的網(wǎng)絡(luò)應(yīng)用程序開(kāi)發(fā)的研究

  • 相關(guān)推薦

淺談基于Pushlet推技術(shù)的網(wǎng)絡(luò)應(yīng)用程序開(kāi)發(fā)的研究

  【論文關(guān)鍵詞】:服務(wù)器推技術(shù) 瀏覽器 重載

    【論文摘要】:服務(wù)器推技術(shù)(pushlet)可將變化的數(shù)據(jù)主動(dòng)地推送到客戶端的瀏覽器中,客戶端利用網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)將服務(wù)器傳送過(guò)來(lái)的數(shù)據(jù)直接更新到瀏覽器的網(wǎng)頁(yè)中,實(shí)現(xiàn)了網(wǎng)頁(yè)的局部更新,而不再需要重載頁(yè)面或重新別新Java小應(yīng)用程序的全部?jī)?nèi)容,達(dá)到了減少服務(wù)器的數(shù)據(jù)傳送負(fù)載,減少網(wǎng)絡(luò)資源消耗的目的。

  1、引言

    ”服務(wù)器推”( Pushlet)技術(shù)產(chǎn)生之前,人們通常采用”拉取”(Pull)的方式搜尋信息,比如利用網(wǎng)絡(luò)搜索引擎搜索信息。但是,這種方式經(jīng)常會(huì)使用戶陷人信息查詢結(jié)果的低效益和面對(duì)”信息垃圾”的尷尬局面。因此,人們迫切希望信息服務(wù)者能夠通過(guò)某種通知機(jī)制主動(dòng)地提供信息,同樣信息服務(wù)者也非常迫切地希望能夠?qū)⑿畔⒓皶r(shí)、主動(dòng)地發(fā)送到感興趣的用戶那里,而不需要用戶自己努力的尋找。

    Pushlet技術(shù)實(shí)質(zhì)上定義了一種信息服務(wù)框架,用戶根據(jù)這個(gè)框架可以開(kāi)發(fā)自己的應(yīng)用程序軟件。這種軟件的特點(diǎn)是可以根據(jù)用戶定義準(zhǔn)則,自動(dòng)搜集用戶最可能發(fā)生興趣的信息,然后適時(shí)地傳遞到訂閱的客戶端。

  2,”服務(wù)器推”( Pushlet)技術(shù)基本原理

    Pushlet采用JSP/Semlet技術(shù),把數(shù)據(jù)直接從服務(wù)器的Java對(duì)象推到客戶端瀏覽器的動(dòng)態(tài)HTML (HyperTextM ark2up Lan-guage)頁(yè)中,而不使用Applet或Active!插件。利用pushlet推技術(shù),服務(wù)器可主動(dòng)地更新客戶端的內(nèi)容。Pushlet技術(shù)框架如圖1一1所示。

    Pushlet是基于HTTP流實(shí)現(xiàn)的,與下載頁(yè)面之后關(guān)閉HTTP連接的做法不同,Pushlet將一直保持HTTP流連接,并通過(guò)此連接將新數(shù)據(jù)源源不斷地推送到客戶端o Pushlet的基本思想是:在客戶端網(wǎng)頁(yè)主框架中包含了控制層框架和表現(xiàn)層框架,利用HTTP技術(shù),使控制層框架Framel與pushlet服務(wù)器保持一個(gè)HTTP流連接,接收來(lái)自服務(wù)器端的JavaScript代碼和數(shù)據(jù),利用JavaSc印t中包含的變化數(shù)據(jù)刷新表現(xiàn)層框架Frame2的內(nèi)容,這樣服務(wù)器即可將變化數(shù)據(jù)動(dòng)態(tài)更新到客戶端網(wǎng)頁(yè)中。

  3. Pushlet推技術(shù)的優(yōu)勢(shì)

    在Java網(wǎng)絡(luò)應(yīng)用程序中,采用pushlet技術(shù)實(shí)現(xiàn)服務(wù)器通知客戶端的策略,與采用輪詢、服務(wù)器調(diào)用和消息機(jī)制這三種策略相比具有以下優(yōu)勢(shì):

    (1)采用Pushlet技術(shù)的網(wǎng)絡(luò)應(yīng)用程序具有很強(qiáng)的通用性。

    (2)服務(wù)器與客戶端可以很好的實(shí)現(xiàn)同步,只要服務(wù)器發(fā)生變化,服務(wù)器都會(huì)將變化通知到客戶端。

    (3)服務(wù)器與客戶端的網(wǎng)絡(luò)冗余數(shù)據(jù)很少,服務(wù)器只將變化的數(shù)據(jù)’·推’。到客戶端,客戶端不需要重載整個(gè)網(wǎng)頁(yè),降低了網(wǎng)絡(luò)資源的消耗。

    (4 ) Pushlet技術(shù)可以將服務(wù)器產(chǎn)生的數(shù)據(jù)直接集成到瀏覽器的動(dòng)態(tài)網(wǎng)頁(yè)中,HTML和CSS(Cascading Style Sheet,層疊樣式表)都可以直接應(yīng)用。

    ( 5 ) Pushlet的客戶端負(fù)擔(dān)小。

    (6)運(yùn)用Pushlet技術(shù)的服務(wù)器是一種輕量級(jí)的服務(wù)器,不需要額外的服務(wù)器開(kāi)發(fā)和維護(hù)。

    ( 7 ) Pushlet使用的協(xié)議簡(jiǎn)單。

[1]    

淺談基于Pushlet推技術(shù)的網(wǎng)絡(luò)應(yīng)用程序開(kāi)發(fā)的研究

  4、應(yīng)用程序的開(kāi)發(fā)

    Pushlet框架實(shí)質(zhì)上是實(shí)現(xiàn)了一個(gè)信息交換的過(guò)程。因此基于此框架開(kāi)發(fā)的應(yīng)用程序一部分是用于生成信息和向框架發(fā)送信息,而另一部分則是用于接收信息,通常用瀏覽器來(lái)接收信息。因?yàn)榘l(fā)送者和接受者之間的使用的網(wǎng)絡(luò)協(xié)議是HTTP,可以用支持HTTP的任何一種編程或腳本語(yǔ)言開(kāi)發(fā)。Pushlet的信息結(jié)構(gòu)由服務(wù)器端的事件類定義,事件是一個(gè)帶有主題標(biāo)識(shí)符的信息,根據(jù)不同的客戶端,事件在發(fā)送時(shí)需要采用不同的編碼技術(shù),主要用到的編碼技術(shù)有JavaScript和XML}

  4.1開(kāi)發(fā)發(fā)送者

    向Pushlet框架發(fā)送事件可以通過(guò)三種方式:直接使用發(fā)報(bào)機(jī)發(fā)送;遠(yuǎn)程或本地使用Pushlet協(xié)議發(fā)送;使用事件源發(fā)送。

    1.直接使用發(fā)報(bào)機(jī)發(fā)送

    應(yīng)用程序通過(guò)發(fā)報(bào)機(jī)的getInstance}方法得到發(fā)報(bào)機(jī)對(duì)象,然后采用多播、單播、廣播三種方法中的一種來(lái)播送事件,三種播送方法的調(diào)用代碼如下:

    Dispatcher.getInstance0.multicast0;//多播

    Dispatcher.getInstance0.unicasl0;//單播

    Dispatcher.getInstance0.broadcast0;//廣播

    而向Pushlet框架發(fā)送事件的其他兩個(gè)方法,實(shí)質(zhì)上最終使用的還是發(fā)報(bào)機(jī)的播送方法。但是要使用發(fā)報(bào)機(jī),則要求調(diào)用發(fā)報(bào)機(jī)的類需要和發(fā)報(bào)機(jī)在同一個(gè)類加載器中。如果發(fā)送者在另一個(gè)網(wǎng)絡(luò)應(yīng)用程序中,那么可以使用Pushlet協(xié)議或者將Pushlet框架中的所有Java文件打包成JAR文件放在系統(tǒng)類路徑中,而且這個(gè)JAR文件還可以當(dāng)做Tomcat服務(wù)器中的一個(gè)共享類庫(kù)。

    2.使用事件源發(fā)送

    開(kāi)發(fā)事件源需要?jiǎng)?chuàng)建一個(gè)事件源類,這個(gè)事件源類必須實(shí)現(xiàn)EventSource接口或擴(kuò)展EventPullSource類。如果事件源類實(shí)現(xiàn)了EventSourc。接口,那么它需要實(shí)現(xiàn)把事件”推”到pushlet框架的方法;如果事件源類擴(kuò)展了EventPullSource類,那么Pushlet框架會(huì)每隔一段時(shí)間自動(dòng)地拉取事件源產(chǎn)生的事件。然后,把事件源類捆綁到TestEventPullSources類中,最后將這個(gè)事件源的類名存放到類路徑下的資源文件sources.properties中。將事件源捆綁到TestEventPullSources類中,并存放于資源文件中,目的是便于對(duì)事件源的創(chuàng)建和。當(dāng)Pushlet.服務(wù)器被載人時(shí),事件源管理器就會(huì)在類路徑中尋找資源文件,并將文件中的事件源載人激活。

    3.遠(yuǎn)程或本地使用Pushlet協(xié)議發(fā)送

    Pushlet框架提供了一個(gè)發(fā)布事件的接口,即p_publish}方法,應(yīng)用程序可以通過(guò)此方法發(fā)送事件。此外,Java客戶還可以通過(guò)pushletClient類發(fā)送。

  4.2開(kāi)發(fā)接收者

    開(kāi)發(fā)接收者需要明確接收者發(fā)出的pushlet請(qǐng)求以及接收者與服務(wù)器之間的交互方式,下面分別加以說(shuō)明:

    l.Pushlet請(qǐng)求

    客戶要訂閱之前,首先必須向Pushlet服務(wù)器發(fā)送一個(gè)HTTP訂閱請(qǐng)求,這個(gè)請(qǐng)求至少包含兩個(gè)參數(shù):傳送事件采用的編碼技術(shù)和客戶訂閱的主題。

    (1)傳送事件采用的編碼技術(shù)有四種

    JavaScript的編碼技術(shù)用字符串’'js',表示;XML的編碼技術(shù)用字符串”xml',表示,這種編碼技術(shù)將事件組織成<<event>元素流;還有一種更嚴(yán)格的XML編碼技術(shù)用’'xml-strict"表示,它要求事件元素必須包含在完整的文檔中,這種編碼技術(shù)將事件組織成<event>元素包含在<pushlet>元素中;Java序列化對(duì)象的編碼技術(shù)用字符串’'ser"表示。

   [2]   

    (2)客戶訂閱的主題

    主題標(biāo)識(shí)符是按照結(jié)構(gòu)化的”主題樹(shù)”組織的。當(dāng)客戶訂閱了某一層次的主題,那么就訂閱了屬于此主題之下的全部主題事件,例如定義了主題,那么將會(huì)收到所有主題事件。

    2.客戶端與服務(wù)器的交互方式

    客戶端與服務(wù)器的交互方式包括三種:”推”模式,”拉取”模式,”輪詢’‘模式。”推”模式是指在不需要訂閱客戶發(fā)出請(qǐng)求的情況下,服務(wù)器可以將變化的事件信息主動(dòng)的’‘推”到訂閱客戶端。一般情況下,動(dòng)態(tài)網(wǎng)頁(yè)客戶采用的是這種模式,但是在某些情況下,采用這種傳輸模式也許不能正常工作,比如說(shuō)由于代理服務(wù)器、Servlet引擎或客戶端瀏覽器的原因,那么就需要采用”拉取”模式!袄 蹦J绞侵缚蛻舳藭(huì)每隔一段時(shí)間會(huì)請(qǐng)求”拉取”服務(wù)器端產(chǎn)生的事件信息。盡管這種模式下,客戶端的請(qǐng)求比較多,但還是比輪詢模式的效率高。因此,為了更好的完成客戶端宇服務(wù)器端的信息傳遞,在采用以’‘推’‘模式為主要信息傳遞方式的同時(shí).還應(yīng)根據(jù)實(shí)際網(wǎng)絡(luò)情況.輔以”拉取“模式和”輪詢”模式。

  4.3在網(wǎng)絡(luò)應(yīng)用程序中集成Pushlet

      1.集成Pushlet需要的文件

    (1) Pushlet的jar文件:WEB-INF/lib/pushlet.jar,包含T

Pushlet框架中所有的Java文件。

    (2) Pushlet的配置文件和資源文件:WEB -INF/classes/pushlet.properties和WEB-INF/classes/sources.propertieso pushlet.properties是用來(lái)對(duì)Pushlet進(jìn)行設(shè)置的,sources.pibperties是用來(lái)存放事件源的。

    (3) Pushlet的客戶端類庫(kù):lib/js-pushlet-client.js和lib/js-pushlet-net.html是為動(dòng)態(tài)網(wǎng)頁(yè)客戶設(shè)計(jì)的;lib/ajax-pushlet-client.js是為Ajax客戶設(shè)計(jì)的。如果要使用Java小應(yīng)用程序或網(wǎng)絡(luò)應(yīng)用方面的Java客戶,還需要lib/pushletclient.jar文件。

    (4) Pushlet的網(wǎng)絡(luò)配置文件:WEB-INF/web.xml能使Push-let服務(wù)器集成到網(wǎng)絡(luò)應(yīng)用中。

    2.部署Pushlet文件

    首先,把上面的文件放在網(wǎng)絡(luò)應(yīng)用程序相同的路徑下。然后,檢查一下網(wǎng)絡(luò)應(yīng)用程序中有沒(méi)有網(wǎng)絡(luò)配置文件,如果有的話,就必須把Pushlet網(wǎng)絡(luò)配置文件中的<servlet>和<servlet-mapping>這兩個(gè)元素復(fù)制到網(wǎng)絡(luò)應(yīng)用程序中的網(wǎng)絡(luò)配置文件中,因?yàn)榫W(wǎng)絡(luò)應(yīng)用程序中能有一個(gè)網(wǎng)絡(luò)配置文件。

    最后要對(duì)事件源進(jìn)行修改。如果不需要Pushlet框架中提供的事件源,那么就在pushlei的配置文件中將事件源失效,即將sources.activate=tme改為sources.activate=falseo

  5.結(jié)束語(yǔ)

    綜上所述,服務(wù)器推技術(shù)的應(yīng)用無(wú)論是對(duì)網(wǎng)絡(luò)用戶、網(wǎng)站員還是對(duì)Internet網(wǎng)自身的健康發(fā)展均有著積極的意義。運(yùn)用服務(wù)器推技術(shù)進(jìn)行的應(yīng)用程序開(kāi)發(fā),一方面可降低重復(fù)無(wú)關(guān)的網(wǎng)絡(luò)信息傳遞,另一方面瀏覽器可以定期檢查更新信息,自動(dòng)下載緩存新內(nèi)容.使用戶可以離線瀏覽。

    [3] 

【淺談基于Pushlet推技術(shù)的網(wǎng)絡(luò)應(yīng)用程序開(kāi)發(fā)的研究】相關(guān)文章:

基于XML的智能應(yīng)用程序的研究03-07

淺談基于知識(shí)的網(wǎng)格技術(shù)應(yīng)用研究03-02

基于Linux的信息發(fā)布終端網(wǎng)絡(luò)通信技術(shù)的研究03-07

淺談基于網(wǎng)絡(luò)視頻點(diǎn)播的多校區(qū)錄像教學(xué)模式的研究03-08

基于網(wǎng)絡(luò)的遠(yuǎn)程測(cè)控系統(tǒng)的研究03-07

基于探針與NetFlow的高速網(wǎng)絡(luò)流量監(jiān)測(cè)技術(shù)的研究與實(shí)現(xiàn)03-07

網(wǎng)絡(luò)安全技術(shù)淺談11-20

基于PROFIBUS開(kāi)發(fā)的FTU及同步采樣方法的研究03-19

基于體驗(yàn)經(jīng)濟(jì)的森林旅游產(chǎn)品開(kāi)發(fā)研究03-21