• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      移動網(wǎng)絡(luò)下高可靠即時通信系統(tǒng)的研究與應(yīng)用

      2016-11-12 15:08莫足琴
      現(xiàn)代電子技術(shù) 2016年13期
      關(guān)鍵詞:消息客戶端服務(wù)器

      莫足琴

      (湖北工業(yè)職業(yè)技術(shù)學(xué)院 信息與智能工程系,湖北 十堰 442000)

      移動網(wǎng)絡(luò)下高可靠即時通信系統(tǒng)的研究與應(yīng)用

      莫足琴

      (湖北工業(yè)職業(yè)技術(shù)學(xué)院 信息與智能工程系,湖北 十堰442000)

      隨著移動互聯(lián)網(wǎng)時代的到來,出現(xiàn)了大量優(yōu)秀的即時通信軟件,其中成熟的即時通信技術(shù)都不公開,而開源的即時通信框架存在較多問題,容易出現(xiàn)丟包、消息延遲。針對上述問題,設(shè)計了移動網(wǎng)絡(luò)下高可靠即時通信系統(tǒng),彌補了開源通信框架設(shè)計中的不足,并提出對通用即時通信技術(shù)的改進(jìn)方法。首先提出了高性能通信長鏈接和時間片輪轉(zhuǎn)算法,采用了消息握手協(xié)議和消息加密的方法,同時改進(jìn)了通信鏈接狀態(tài)檢測算法,并提出雙服務(wù)權(quán)限認(rèn)證方法,保證了即時通信系統(tǒng)的安全性。實驗中測試系統(tǒng)包含了設(shè)計的即時通信框架,實驗結(jié)果證明了系統(tǒng)的即時性和高可靠性。

      即時通信;高性能長鏈接;文件傳輸;通信恢復(fù)機制

      隨著移動網(wǎng)絡(luò)的發(fā)展,網(wǎng)絡(luò)聊天、視頻和語音在網(wǎng)絡(luò)通信中越來越受重視,從網(wǎng)絡(luò)通信應(yīng)用軟件的用戶量可以看出,網(wǎng)絡(luò)即時聊天功能具有良好的用戶體驗[1]。在新開發(fā)的各類軟件尤其是手機應(yīng)用軟件中,基本都會附帶即時通信功能。這是一種發(fā)展趨勢,網(wǎng)絡(luò)通信已經(jīng)成為了用戶溝通的重要手段,漸漸地取代了傳統(tǒng)的書信、短信等通信方式,使用的用戶越來越多,同時用戶對即時通信技術(shù)的穩(wěn)定性要求也越來越高。但由于成熟的即時通信技術(shù)不開源,而開源的即時通信技術(shù)只實現(xiàn)了基本的建立鏈接,數(shù)據(jù)傳輸并沒有做任何優(yōu)化,使得在使用過程中經(jīng)常出現(xiàn)消息延遲、消息丟失等情況[2]。

      1 消息的即時傳輸

      良好的用戶體驗對即時通信系統(tǒng)的消息傳輸具有較高的要求,尤其是消息的即時性。但在某些情況下,服務(wù)器并不能即時地將信息推送給接收者,存在著兩種主要情況[3]。

      (1)客戶端與服務(wù)器之間的通信長鏈接不穩(wěn)定。服務(wù)器資源限制和網(wǎng)絡(luò)問題的影響是客觀存在的,從理論的角度沒有辦法避免。但可以從其他方面解決通信鏈接的穩(wěn)定性對消息即時傳輸產(chǎn)生的影響。提出的高性能長鏈接、通信鏈接的檢測和通信鏈接的恢復(fù)方法,有效地利用了服務(wù)器的資源,并保證鏈接斷開后能夠快速的恢復(fù),從而保證消息的即時傳輸。

      (2)同一時間服務(wù)器需要推送的消息量較多。服務(wù)器轉(zhuǎn)發(fā)消息也需要消耗時間,當(dāng)同一時間進(jìn)行即時通信的用戶較多時,服務(wù)器來不及轉(zhuǎn)發(fā)新接收的消息,導(dǎo)致了消息的阻塞,從而影響了消息的即時性。因此采用消息的并發(fā)推送方法解決消息阻塞的問題[4]。

      1.1高性能通信長鏈接

      用戶量的不斷增加,服務(wù)器需要存儲的通信鏈接越來越多,但一些通信鏈接在某些時候并不會被使用。通過分析得出客戶端與服務(wù)器之間建立的通信長鏈接并不會隨時都被利用,某些時間會處于空閑狀態(tài),為此提出了高性能通信長鏈接,盡量地減少客戶端空閑狀態(tài)下的鏈接時間,提高服務(wù)器的資源利用率,保證用戶量劇增時通信鏈接不會因為服務(wù)器的資源限制而斷開,從而保證消息的即時傳輸[5]。為了建立高性能通信鏈接,使用時間片輪轉(zhuǎn)的算法。把用戶開始登陸客戶端的時間或者用戶發(fā)送消息的時間記為開始時間,從開始時間起,把時間分為等長的時間片段N,假設(shè)得到的時間片段如圖1所示。其中黑色區(qū)間表示在這個時間片段內(nèi)用戶有消息需要接收。白色的區(qū)域表示用戶處于空閑狀態(tài)沒有消息需要接收。時間片輪轉(zhuǎn)算法的目的是保證用戶使用即時通信需要接收消息時,客戶端與服務(wù)器存在通信鏈接[6]。而用戶沒有使用即時通信時,客戶端與服務(wù)器之間不存在通信鏈接,從而釋放了服務(wù)器的資源。時間片輪轉(zhuǎn)算法的規(guī)則如下:

      (1)當(dāng)客戶端需要接收消息時,當(dāng)前時間片為忙碌狀態(tài)。相反如果沒有消息需要接收,則當(dāng)前時間片處于空閑狀態(tài)。當(dāng)用戶登錄軟件后,默認(rèn)第一個時間片為忙碌狀態(tài),并且客戶端向服務(wù)器發(fā)送建立通信鏈接的請求。

      (2)如果當(dāng)前時間片客戶端處于忙碌狀態(tài),那么接下來的m個時間片客戶端都將主動向服務(wù)器端發(fā)送建立鏈接的請求。

      (3)如果當(dāng)前時間片的前m個時間片處于空閑狀態(tài),那么當(dāng)前時間片的鏈接狀態(tài)與前一個時間片的鏈接狀態(tài)相反。例如前一個時間片客戶端與服務(wù)器有通信鏈接,那么當(dāng)前時間片客戶端將向服務(wù)器發(fā)送斷開鏈接的請求。

      (4)如果當(dāng)前時間片的前m個時間片中的任何一個時間片客戶端處于忙碌狀態(tài),那么當(dāng)前時間片客戶端將向服務(wù)器發(fā)送建立鏈接的請求。

      圖1 時間片輪轉(zhuǎn)

      1.2通信鏈接的檢測和恢復(fù)

      為了保證消息的即時傳輸,提高服務(wù)器長鏈接的效率,保證服務(wù)器與客戶端鏈接穩(wěn)定,避免意外中斷情況的出現(xiàn),采用有效的長鏈接檢測方法和消息恢復(fù)方法[7]。理論上稱客戶端發(fā)送詢問信息的過程為心跳過程,心跳時間指客戶端向服務(wù)器發(fā)送詢問信息的間隔時間。為了避免客戶端頻繁地發(fā)送心跳信息,消耗能量,或者避免心跳時間過長,導(dǎo)致消息傳輸?shù)难舆t。本文提出了心跳時間衰減函數(shù)如下:

      式中:Ti表示第i時刻的心跳時間;Ti-1表示第i-1時刻的心跳時間;n1和n2表示時間衰減系數(shù)都是常量;T0表示最短的心跳時間間隔,同樣也是一個常量;Tmax表示最長的心跳時間間隔,也是一個常量;new表示客戶端發(fā)送了新的消息或者是服務(wù)器向客戶端推送了新的消息。心跳機制和時間片輪轉(zhuǎn)結(jié)合后,客戶端只有處于忙碌狀態(tài)時才會發(fā)送心跳信息。這樣既保證了通信鏈接的穩(wěn)定,又節(jié)約了服務(wù)器的資源。

      1.3客戶端通信恢復(fù)機制

      當(dāng)客戶端啟動后,在客戶端的后臺會啟動兩個線程,在Android中使用Service服務(wù),Service相當(dāng)于Activity,只是沒有界面而是運行在后臺的服務(wù)。其中一個線程按照定時器的設(shè)定不停地向服務(wù)器發(fā)送心跳信息,確認(rèn)客戶端與服務(wù)器的通信鏈接是否正常[8]。另外一個線程用于監(jiān)聽服務(wù)器,接收服務(wù)器推送的消息。通過心跳機制,當(dāng)客戶端檢測到與服務(wù)器的通信長鏈接斷開時,需要向服務(wù)器請求再次建立鏈接以及獲取離線數(shù)據(jù)。

      為了進(jìn)一步降低服務(wù)器的數(shù)據(jù)處理壓力,提升用戶體驗。提出了一種獲取離線消息的方法,通過短鏈接的方式獲取離線消息[9]。短鏈接指的是客戶端向服務(wù)器發(fā)送請求會攜帶必要的參數(shù),而服務(wù)器做出響應(yīng)時也會把客戶端想獲取的數(shù)據(jù)返回,當(dāng)客戶端得到數(shù)據(jù)后鏈接就斷開,如圖2所示。

      圖2 離線消息獲取示意圖

      基于這種方式,當(dāng)客戶端與服務(wù)器的鏈接再次建立后,由客戶端主動發(fā)送獲取離線消息的請求,獲取離線消息可以使用HTTP協(xié)議??蛻舳瞬挥冒l(fā)送確認(rèn)信息,服務(wù)器在返回信息后可以直接清除數(shù)據(jù)庫中暫存的數(shù)據(jù),同時服務(wù)器也不用每次都對新建立的鏈接做查詢操作,這樣大大減少了服務(wù)器的壓力,同時使獲取離線消息的過程變得清晰,不會出現(xiàn)消息重復(fù)的情況。

      1.4消息并發(fā)推送

      如果某一時刻發(fā)送消息的用戶較多,而服務(wù)器來不及把消息推送給目標(biāo)客戶端,那么就會造成服務(wù)器需要推送的消息越來越多,最終導(dǎo)致服務(wù)器消息的阻塞。消息阻塞雖然不會導(dǎo)致消息的丟失,但是會嚴(yán)重影響消息的即時傳輸,會給用戶帶來特別不好的使用體驗。

      為了解決這個問題,在服務(wù)器端使用了消息的并發(fā)機制。當(dāng)服務(wù)器從客戶端接收到一條新的消息后,把消息存放在本地數(shù)據(jù)庫的同時也會把消息存放進(jìn)一個隊列。而在服務(wù)器的后臺,即時通信系統(tǒng)會根據(jù)服務(wù)器處理器的使用情況開啟若干個線程,每一個線程所做的操作都相同,從隊列中取出一個消息,然后根據(jù)消息中的目標(biāo)地址,查詢與其是否有通信鏈接,如果存在則把消息推送給客戶端,如果不存在則不做任何處理。這樣服務(wù)器可以在同一時間推送多條消息,有效地利用了服務(wù)器的資源,降低了消息阻塞的可能性。

      2 消息的可靠傳輸

      2.1消息握手協(xié)議

      為了確保消息在傳輸過程中不會出現(xiàn)丟失,提出了消息傳輸?shù)奈帐謪f(xié)議。握手協(xié)議分為客戶端給服務(wù)器發(fā)送消息的握手和服務(wù)器給客戶端推送消息的握手。握手協(xié)議的本質(zhì)是客戶端與服務(wù)器端約定的消息傳輸規(guī)則,握手的主要目的就是為了確保消息不會丟失。

      (1)正向握手協(xié)議

      正向握手協(xié)議是指客戶端向服務(wù)器端發(fā)送消息時消息的確認(rèn)協(xié)議??蛻舳诵枰l(fā)送消息時,會先把消息存放在本地數(shù)據(jù)庫中,然后再調(diào)用發(fā)送消息的接口,存入本地數(shù)據(jù)庫中的消息標(biāo)記為未發(fā)送。如果服務(wù)器成功接收到消息,會給客戶端返回一個包含了消息ID的反饋信息,表示自己已經(jīng)接收到消息,客戶端接收到反饋信息后,根據(jù)ID把本地數(shù)據(jù)庫中的消息標(biāo)記為已經(jīng)發(fā)送,這樣就完成了一次客戶端到服務(wù)器的握手。如果沒有接收到服務(wù)器的反饋信息,那么客戶端將繼續(xù)向服務(wù)器發(fā)送這條消息。

      (2)反向握手協(xié)議

      反向握手協(xié)議指的是服務(wù)器端向客戶端推送消息時消息的確認(rèn)協(xié)議。當(dāng)服務(wù)器接收到客戶端的消息后,首先會把消息存在數(shù)據(jù)庫中,然后從消息中解析出接收人的地址信息,然后根據(jù)地址信息查找目標(biāo)客戶端與自己是否有通信鏈接。

      2.2文件傳輸協(xié)議

      為了避免使用通信長鏈接傳輸文件,提出了文件和文件地址相分離的傳輸方法,文件存儲服務(wù)的提供商會提供文件上傳的相應(yīng)接口,客戶端通過調(diào)用接口,上傳文件后,會得到一個文件的網(wǎng)絡(luò)地址,通過該網(wǎng)絡(luò)地址用戶就可以直接下載文件。

      3 高復(fù)用架構(gòu)

      3.1服務(wù)器

      消息即時傳輸系統(tǒng)具有高復(fù)用性,就不能與應(yīng)用軟件的功能結(jié)合,本文提出了單系統(tǒng)雙服務(wù)的系統(tǒng)架構(gòu)。單系統(tǒng)指功能完全的應(yīng)用軟件系統(tǒng),而雙服務(wù)指為應(yīng)用軟件提供了后臺服務(wù)的兩套服務(wù)系統(tǒng):消息的即時通信系統(tǒng)和數(shù)據(jù)功能處理系統(tǒng)。這樣把消息和軟件功能分離后,就可以使消息的即時傳輸服務(wù)在任何應(yīng)用軟件中使用,其功能模塊如圖3所示。

      圖3 后臺服務(wù)功能

      為了保證消息后臺服務(wù)器的安全性,本節(jié)提出了雙服務(wù)權(quán)限認(rèn)證的方法。為了敘述簡便,把消息后臺服務(wù)器簡稱為消息系統(tǒng),而應(yīng)用軟件的數(shù)據(jù)處理服務(wù)器簡稱為功能系統(tǒng),如圖4所示。通過這種方式,不僅增加了通信系統(tǒng)的安全性,同時也做到了功能的分離,使即時通信系統(tǒng)的后臺通用性更高。

      圖4 權(quán)限認(rèn)證示意圖

      3.2客戶端

      客戶端和服務(wù)器的設(shè)計思想類似,單獨把即時通信的功能打包封裝,僅對外提供數(shù)據(jù)的操作接口,如圖5所示。客戶端的即時通信主要包含五個功能:發(fā)送建立鏈接的請求;發(fā)送消息;接收消息;發(fā)送心跳信息;斷開通信鏈接,用戶退出系統(tǒng)時會調(diào)用斷開通信鏈接的功能,用于釋放服務(wù)器的資源。應(yīng)用程序的客戶端添加即時通信的功能包后,只需要根據(jù)自己消息格式修改對本地數(shù)據(jù)庫的操作,對外提供的接口不變[10]。

      4 系統(tǒng)測試

      4.1測試系統(tǒng)介紹

      測試系統(tǒng)的主要功能是用于學(xué)校老師、學(xué)生家長和學(xué)生之間的溝通,為學(xué)校管理學(xué)生帶來便利。同時也包含了即時通信的功能模塊,用于用戶之間的交流溝通,發(fā)送團隊公告信息和發(fā)送申請加入團隊的申請信息。

      圖5 客戶端架構(gòu)

      應(yīng)用系統(tǒng)在添加即時通信功能時,采用了本文設(shè)計的即時通信框架。后臺使用了雙服務(wù)器設(shè)計,提供了一個獨立的消息系統(tǒng)和一個功能系統(tǒng),兩個系統(tǒng)之間使用同一個權(quán)限緩存。消息系統(tǒng)主要負(fù)責(zé)處理與客戶端的消息通信,功能系統(tǒng)使用的是短鏈接,為客戶端提供了獲取數(shù)據(jù)的接口??蛻舳思尤肓思磿r通信包,并按照自己的需求對數(shù)據(jù)存儲格式和數(shù)據(jù)讀取格式做了修改。

      服務(wù)器的配置是2 GB內(nèi)存、雙核、2.6 GB的主頻,2 MB的網(wǎng)絡(luò)帶寬,客戶端使用Android系統(tǒng)的手機。把一個客戶端叫A,另一個客戶端叫B。

      4.2實驗結(jié)果

      測試過程中通過改變客戶端的工作狀態(tài)來模擬用戶的各種使用情況。

      測試1:參數(shù)設(shè)置:客戶端A、客戶端B同時登陸系統(tǒng),客戶端A給客戶端B發(fā)送消息。測試結(jié)果:客戶端B能正常接收到客戶端A發(fā)送的消息。

      測試2:參數(shù)設(shè)置:客戶端A、客戶端B同時登陸系統(tǒng),客戶端A和客戶端B同時給對方發(fā)送消息。測試結(jié)果:客戶端A和客戶端B都能正常接收到對方發(fā)送的消息。

      測試3:參數(shù)設(shè)置:客戶端A登陸系統(tǒng),向客戶端B發(fā)送消息。客戶端B在客戶端A發(fā)送消息后,登陸系統(tǒng)。測試結(jié)果:客戶端A發(fā)送消息成功,客戶端B正常接收到客戶端A發(fā)送的消息。

      通過用例測試,應(yīng)用程序中的即時通信功能在很多情況下正常使用,滿足了本文對即時通信框架功能的要求。

      壓力測試中,設(shè)置3個測試參數(shù),并發(fā)人數(shù)、每個客戶端共發(fā)送消息的條數(shù)、每兩條消息發(fā)送的時間間隔(單位:ms)。對私人聊天、群聊天和發(fā)送通知進(jìn)行了壓力測試,消息發(fā)送和接收的成功率都在100%。但也有消息發(fā)送和接收不到100%,甚至有88%的成功率。通過分析可以發(fā)現(xiàn),當(dāng)消息發(fā)送成功率不高時,客戶端的在線人數(shù)和發(fā)送消息的量普遍偏高,發(fā)送消息的頻率也較快,而且發(fā)送成功率和這幾個參數(shù)之間還有反比的關(guān)系。

      因此可以得出結(jié)論,當(dāng)消息發(fā)送成功率過低時,可能是受到了服務(wù)器硬件資源的限制。因為在線人數(shù)過多時,客戶端需要和服務(wù)器建立的通信長鏈接較多,如果同時還有多人發(fā)送群信息或者公告,那么服務(wù)器的資源將被消耗殆盡。因而會有一些通信鏈接中斷或者消息被阻塞。

      5 結(jié) 論

      即時通信是網(wǎng)絡(luò)聊天的核心技術(shù),本文從消息即時傳輸、消息可靠傳輸和高復(fù)用框架三個方面對現(xiàn)在的即時通信提出了改進(jìn)方案。文中高性能通信長鏈接有效地解決了普通通信長鏈接消耗資源的問題,并且消息傳輸效果并不會比普通通信長鏈接差。同時,在通信鏈接的檢測方法中提出了一個更加節(jié)約資源的心跳算法。加入了更高效的文件傳輸,利用第三方文件服務(wù)使文件傳輸更加可靠。然后,基于高復(fù)用框架設(shè)計了即時通信框架,減少了應(yīng)用軟件開發(fā)的周期。最后通過對即時通信系統(tǒng)的功能和性能的測試,充分證明了本文設(shè)計的即時通信系統(tǒng)可靠性較高,完成了對即時通信系統(tǒng)的研究。

      [1]葛福鴻,劉曉瑩,張麗萍.基于Socket技術(shù)的即時通信軟件的設(shè)計與實現(xiàn)[J].電腦開發(fā)與應(yīng)用,2011(5):63-65.

      [2]劇忻,苗放.基于MINA開發(fā)高性能網(wǎng)絡(luò)應(yīng)用程序[J].重慶工學(xué)院學(xué)報(自然科學(xué)版),2008,22(10):121-125.

      [3]鄭志剛.Web服務(wù)組合執(zhí)行引擎WebJetFlow的改進(jìn)與優(yōu)化[D].長沙:湖南師范大學(xué),2008:19-25.

      [4]陳航,趙方.基于服務(wù)器推送技術(shù)和XMPP的Web IM系統(tǒng)實現(xiàn)[J].計算機工程與設(shè)計,2012(5):12-15.

      [5]ZHOU T,LU Y.Examining mobile instant messaging user loyalty from the perspectives of network externalities and flow experience[J].Computers in human behavior,2011,27(2):883-889.

      [6]ZAMAN M,ANANDARAJAN M,DAI Q.Experiencing flow with instant messaging and its facilitating role on creative behaviors[J].Computers in human behavior,2010,26(5):1009-1018.

      [7]潘鳳,王華軍,苗放,等.基于XMPP協(xié)議和Openfire的即時通信系統(tǒng)的開發(fā)[J].計算機時代,2011(3):15-19.

      [8]呂東,劉小河,王鴻飛,等.基于Android的實時視頻通信研究與實現(xiàn)[J].現(xiàn)代電子技術(shù),2014,37(1):25-26.

      [9]王志國,侯銀濤,石榮剛,等.Android智能手機系統(tǒng)的文件實時監(jiān)控技術(shù)[J].計算機安全,2009(12):55-56.

      [10]田源,潘晨光,丁杰.ProtocolBuffers在即時通信系統(tǒng)中的應(yīng)用研究[J].現(xiàn)代電子技術(shù),2014,37(5):32-34.

      Research and application of high-reliability instant messaging system in mobile network

      MO Zuqin
      (Department of Information and Intelligence,Hubei Industrial Polytechnic,Shiyan 442000,China

      With the advent of the mobile Internet era,a lot of excellent instant messaging softwares appear.Since the mature instant messaging technology is unopened,and the instant messaging framework with open source exists many problems,the communication system is prone to appear packet loss and message delay.In view of the above problems,a high-reliability instant communication system in mobile network was designed to make up the deficiency of open-source communication framework design.The improved method of general instant communication technology is put forward,in which the high-performance communication long link and time slice round algorithm are proposed,the message handshake protocol and message encryption method are adopted,and the communication link state detection algorithm is improved.The double service authentication method is proposed to ensure the safety of instant messaging system.The test system in the experiment includes the designed instant messaging framework.The experimental results can prove the instantaneity and high reliability of the systemy.

      instant messaging;high-performance long link;file transfer;communication recovery mechanism

      TN911-34;TM417

      A

      1004-373X(2016)13-0023-04

      10.16652/j.issn.1004-373x.2016.13.006

      2015-11-16

      莫足琴(1973—),女,湖北十堰人,工學(xué)碩士,副教授。主要從事計算機網(wǎng)絡(luò)技術(shù)、計算機應(yīng)用技術(shù)、高職教育改革方面的研究。

      猜你喜歡
      消息客戶端服務(wù)器
      一張圖看5G消息
      通信控制服務(wù)器(CCS)維護(hù)終端的設(shè)計與實現(xiàn)
      縣級臺在突發(fā)事件報道中如何應(yīng)用手機客戶端
      孵化垂直頻道:新聞客戶端新策略
      基于Vanconnect的智能家居瘦客戶端的設(shè)計與實現(xiàn)
      中國服務(wù)器市場份額出爐
      得形忘意的服務(wù)器標(biāo)準(zhǔn)
      計算機網(wǎng)絡(luò)安全服務(wù)器入侵與防御
      消息
      消息
      磐石市| 靖安县| 武胜县| 红原县| 安丘市| 合作市| 轮台县| 松溪县| 卓尼县| 施秉县| 明水县| 德江县| 新巴尔虎右旗| 田林县| 集贤县| 黔江区| 长阳| 蛟河市| 浪卡子县| 敖汉旗| 舒城县| 青岛市| 苍梧县| 芦山县| 安吉县| 驻马店市| 定安县| 兴文县| 阿坝县| 西吉县| 克什克腾旗| 恩平市| 济源市| 利津县| 嵊泗县| 高淳县| 长海县| 隆林| 楚雄市| 聊城市| 逊克县|