趙 晟
(武漢虹信技術(shù)服務(wù)有限責(zé)任公司 湖北 武漢 430070)
近年來(lái),互聯(lián)網(wǎng)技術(shù)快速發(fā)展,給人們?nèi)粘I顜?lái)不同程度的改變,從信息受眾群體向參與者方向轉(zhuǎn)換,對(duì)于產(chǎn)品用戶(hù)體驗(yàn)感的判斷,參與性成為一個(gè)重要因素。 而即時(shí)通信服務(wù)作為網(wǎng)絡(luò)技術(shù)中最重要的技術(shù),其具有集成豐富、信息多樣化、使用簡(jiǎn)單等特征,被廣泛應(yīng)用在互聯(lián)網(wǎng)行業(yè)中,受到各行業(yè)人員高度重視。 根據(jù)專(zhuān)業(yè)人員調(diào)查發(fā)現(xiàn),在2020 年底,即時(shí)通信產(chǎn)品用戶(hù)數(shù)量超過(guò)8 億,且這些數(shù)據(jù)呈上升趨勢(shì)。 即時(shí)通信是指利用互聯(lián)網(wǎng)為載體,通過(guò)無(wú)線(xiàn)智能終端,給多人提供在線(xiàn)溝通平臺(tái),其作為目前最新型的通信方法,國(guó)內(nèi)各平臺(tái)都有研究,但仍然無(wú)法解決不同平臺(tái)即時(shí)通信系統(tǒng)相互通信問(wèn)題。 因此要注重應(yīng)用可擴(kuò)展通信和表示協(xié)議(extensible messaging and presence protocol,XMPP),將其應(yīng)用到即時(shí)通信系統(tǒng)設(shè)計(jì)中,實(shí)現(xiàn)不同平臺(tái)即時(shí)通信系統(tǒng)相互溝通,解決系統(tǒng)運(yùn)行中存在的問(wèn)題[1]。
隨著社會(huì)經(jīng)濟(jì)不斷發(fā)展,人們對(duì)移動(dòng)終端功能需求量呈現(xiàn)逐年遞增的趨勢(shì),傳統(tǒng)即時(shí)通信軟件已不能滿(mǎn)足用戶(hù)實(shí)時(shí)聊天要求。 而基于Web 的即時(shí)通信軟件節(jié)省客戶(hù)端下載環(huán)節(jié),只要啟動(dòng)瀏覽器就能實(shí)現(xiàn)即時(shí)通信服務(wù)模式,其具有較強(qiáng)的便捷性,是未來(lái)互聯(lián)網(wǎng)技術(shù)發(fā)展的主要趨勢(shì)。 目前,即時(shí)通信軟件采用TCP/IP 協(xié)議進(jìn)行數(shù)據(jù)傳輸作業(yè),其根據(jù)TCP/IP 協(xié)議分為傳輸層、網(wǎng)絡(luò)層、網(wǎng)絡(luò)接口層、即時(shí)通信協(xié)議層等環(huán)節(jié),如圖1 所示。 其中即時(shí)通信協(xié)議層主要作用是處理即時(shí)通信細(xì)節(jié);傳送層提供了正確的邏輯溝通,使應(yīng)用層次得以應(yīng)用;網(wǎng)絡(luò)接口層是用于實(shí)現(xiàn)與傳送媒體的物理層面。 同時(shí),即時(shí)通信系統(tǒng)采用了客戶(hù)端服務(wù)器,該應(yīng)用程序設(shè)定在不同的主機(jī)上,通過(guò)這些程序協(xié)同工作,以達(dá)到即時(shí)通信的要求;而即時(shí)通信協(xié)議必須選用正確的網(wǎng)絡(luò)通信協(xié)議,用來(lái)規(guī)范應(yīng)用程序的數(shù)據(jù)交換和處理方法。
軟件開(kāi)發(fā)流程階段中要全面分析軟件實(shí)際功能,以軟件交付、系統(tǒng)方案設(shè)計(jì)、功能測(cè)試為主要依據(jù)。 工作人員全面掌握軟件需求,才能提高工作目的的準(zhǔn)確性,這是保證軟件開(kāi)發(fā)順利進(jìn)行的基礎(chǔ)。 目前,通過(guò)研究項(xiàng)目?jī)?nèi)容,將網(wǎng)站即時(shí)通信系統(tǒng)具體功能分為可視化配置管理、基本功能、擴(kuò)展功能等環(huán)節(jié),如圖2 所示。 其中基本功能涉及在線(xiàn)狀態(tài)、用戶(hù)登錄、用戶(hù)賬號(hào)注冊(cè)、群聊天等功能;擴(kuò)展功能有文件傳輸、廣播消息等功能;可視化配置管理要管理XMPP 服務(wù)器、用戶(hù)、群組等方面,科學(xué)管理服務(wù)器的安全機(jī)制、監(jiān)聽(tīng)端口、服務(wù)域名等[2]。
圖2 即時(shí)通信系統(tǒng)功能框架
在設(shè)計(jì)即時(shí)通信系統(tǒng)過(guò)程中,以B/S 架構(gòu)為核心,將即時(shí)通信系統(tǒng)分成Web 服務(wù)層、通信服務(wù)器、XMPP 客戶(hù)端等環(huán)節(jié)。 該方案利用超文本傳輸協(xié)議(hypertext transfer protocol,HTTP)傳送請(qǐng)求,Web 服務(wù)器為中間層,處理瀏覽器側(cè)請(qǐng)求,減輕相關(guān)信息數(shù)據(jù),有效地控制通信服務(wù)器工作壓力。 使用者進(jìn)行即時(shí)通信,網(wǎng)頁(yè)為使用者建立即時(shí)通信客戶(hù)接口,能夠準(zhǔn)確地掌握使用者網(wǎng)頁(yè)操作,并對(duì)使用者進(jìn)行詳細(xì)的獲取,并利用Web 服務(wù)器完成通信作業(yè)[3]。
利用客戶(hù)端-服務(wù)器架構(gòu)的XMPP 協(xié)議即時(shí)通信系統(tǒng),實(shí)時(shí)維護(hù)XMPP 服務(wù)器和其他服務(wù)器間的相互溝通,提供專(zhuān)業(yè)的XMPP 通信傳輸通道,不僅能給用戶(hù)提供即時(shí)通信服務(wù),還能加強(qiáng)系統(tǒng)的安全性,是目前即時(shí)通信系統(tǒng)運(yùn)行中的重要環(huán)節(jié)。 目前,XMPP 服務(wù)器根據(jù)功能分為數(shù)據(jù)庫(kù)模塊、會(huì)話(huà)管理模塊、連接器模塊、監(jiān)聽(tīng)器模塊等環(huán)節(jié)。 監(jiān)聽(tīng)器模塊主要負(fù)責(zé)監(jiān)聽(tīng)XMPP 的服務(wù)器端口,例如外部服務(wù)器連接端口、客戶(hù)端等,服務(wù)器通過(guò)對(duì)文件信息進(jìn)行分析,和端口進(jìn)行相互連接,接收到連接指令搭建連接套接字;路由器模塊作為整個(gè)XMPP 服務(wù)器中的重點(diǎn),路由器模塊可以對(duì)系統(tǒng)各方面的功能進(jìn)行合理的控制,XML 數(shù)據(jù)包也是基于路由模塊在XMPP 服務(wù)器組件中進(jìn)行傳播;連接器模塊是通過(guò)搭建連接套接字,將外部XMPP 服務(wù)器和XMPP 客戶(hù)端相互連接,使所有聊天用戶(hù)在相同服務(wù)器上采用C2S 實(shí)現(xiàn)消息發(fā)送和接收操作;會(huì)話(huà)管理模塊是由服務(wù)器對(duì)服務(wù)器、客戶(hù)端對(duì)服務(wù)器組成,對(duì)整個(gè)XMPP 服務(wù)器性能有重要作用,能實(shí)時(shí)跟蹤客戶(hù)端的會(huì)話(huà),建立Client Session 和Server Session,實(shí)現(xiàn)服務(wù)器和客戶(hù)端間的交互行為,充分發(fā)揮會(huì)話(huà)管理模塊作用[4]。
即時(shí)通信服務(wù)通過(guò)使用XMPP 客戶(hù)端實(shí)現(xiàn),其給用戶(hù)提供良好的使用接口,實(shí)現(xiàn)底層X(jué)MPP 協(xié)議通信作業(yè)。 目前,XMPP 客戶(hù)端功能趨于多樣化,如獲得好友列表、查詢(xún)好友信息、用戶(hù)注冊(cè)、用戶(hù)登錄、收發(fā)聊天信息等功能,且這些服務(wù)功能均要通過(guò)服務(wù)器優(yōu)化。 因此工作人員要合理應(yīng)用XMPP 客戶(hù)端,搭建不同XMPP 服務(wù)器間的會(huì)話(huà),將用戶(hù)消息轉(zhuǎn)變?yōu)閄ML 包,將會(huì)話(huà)傳輸?shù)椒?wù)器,同步收集服務(wù)器傳遞的XML 包,提取XML 中有用信息,在客戶(hù)端界面上呈現(xiàn)出來(lái)。
在客戶(hù)端應(yīng)用過(guò)程中,工作人員要建立TCP 連接渠道,為了收集到XMPP 服務(wù)器的IP 地址,客戶(hù)端自動(dòng)保存服務(wù)器列表,結(jié)合登錄內(nèi)容收集端口信息,在客戶(hù)端和服務(wù)器中間搭建TCP 連接渠道,進(jìn)行頻繁XML 交流,如圖3所示。
圖3 建立會(huì)話(huà)流程
(1)搭建XML 流。 通過(guò)TCP 連接客戶(hù)端和服務(wù)器,初始化MLX 流,等到了服務(wù)器自動(dòng)返回,從而實(shí)現(xiàn)各種XML 流功能,如身份認(rèn)證機(jī)制、傳輸層安全加密等。
(2)傳輸層安全認(rèn)證。 客戶(hù)端要對(duì)傳輸層TLS 信息進(jìn)行加密,收到服務(wù)器的要求后,服務(wù)器向客戶(hù)端傳輸安全證書(shū),客戶(hù)端自動(dòng)校驗(yàn)安全證書(shū),保證其滿(mǎn)足行業(yè)要求而不存在任何偽造現(xiàn)象。 在連接完成后,傳輸通道自動(dòng)優(yōu)化為加密通道,要重新建立XML 流,后期所有數(shù)據(jù)均通過(guò)加密渠道進(jìn)行傳輸[5]。
(3)壓縮XML 流。 通過(guò)壓縮XML 流能控制帶寬資源,但值得注意的是,要保證服務(wù)器和客戶(hù)端均支持壓縮操作,才能開(kāi)展XML 流壓縮處理。 在壓縮工序完成后,要建立新型XML 流,通過(guò)壓縮連接實(shí)現(xiàn)數(shù)據(jù)傳輸功能。
(4)SASL 簡(jiǎn)單身份認(rèn)證。 服務(wù)器在接收到客戶(hù)端選擇的認(rèn)證方式后,使用簡(jiǎn)單的安全認(rèn)證機(jī)制來(lái)識(shí)別用戶(hù)的身份信息,且利用預(yù)先制定的算法進(jìn)行加密處理,客戶(hù)端在接收到信息數(shù)據(jù)后,要及時(shí)解密信息內(nèi)容,挑戰(zhàn)信息數(shù)量和簡(jiǎn)單認(rèn)證安全層狀態(tài)有直接聯(lián)系。 在挑戰(zhàn)成功后,客戶(hù)端自動(dòng)接收服務(wù)器成功信息,搭建全新的XML 流[6]。
圖4為即時(shí)通信系統(tǒng)的后端基礎(chǔ)構(gòu)成。 通信服務(wù)器最常用Ejabberd,數(shù)據(jù)庫(kù)以PostgreSQL 為核心通過(guò)XMPP客戶(hù)端實(shí)現(xiàn)Exmpp 庫(kù)開(kāi)發(fā)作業(yè)[7-8]。
圖4 即時(shí)通信系統(tǒng)組成
4.2.1 通信服務(wù)搭建和配置
在Ubuntu 下可以直接用裝置包安裝的系統(tǒng)需要安裝后配置服務(wù)器[9-10]。 通過(guò)Ejabberd 給系統(tǒng)管理員提供配置文件,保障服務(wù)器管理效果達(dá)到預(yù)期要求,如圖5 所示。第一,Ejabberd 可配置服務(wù)器域名、監(jiān)聽(tīng)口、用戶(hù)權(quán)限等功能模塊,在修改文件后要及時(shí)重新啟動(dòng)服務(wù)器。 能精準(zhǔn)設(shè)置識(shí)別偏差標(biāo)準(zhǔn),計(jì)算出瞬時(shí)控制系數(shù),設(shè)置瞬間相位。而瞬間相位和初始瞬時(shí)相位間有明顯差異性,該差異性體現(xiàn)在階矩方面,但文章采用自動(dòng)識(shí)別技術(shù)進(jìn)行分析,識(shí)別范圍不會(huì)有明顯變化,能有效控制識(shí)別作業(yè)誤差值。 從目前識(shí)別瞬間相位情況來(lái)看,時(shí)常遇到如實(shí)際覆蓋面積不固定、信號(hào)特征提取準(zhǔn)確性不足等問(wèn)題。 針對(duì)該種情況,工作人員要設(shè)置階矩識(shí)別層級(jí),與傳統(tǒng)識(shí)別方法相比,其具有較強(qiáng)的靈活性和穩(wěn)定性,在面對(duì)復(fù)雜的網(wǎng)絡(luò)環(huán)境時(shí),能提取相關(guān)特征,為后期識(shí)別操作提供豐富的數(shù)據(jù)資源。 第二,WEB 后臺(tái)管理。 使用systemmanager 和code 登錄網(wǎng)址,自動(dòng)進(jìn)入后臺(tái)管理界面,可創(chuàng)建用戶(hù)資源,瀏覽服務(wù)器運(yùn)行狀態(tài)資料,刪除用戶(hù)信息。 第三,命令行管理工具主要是開(kāi)關(guān)機(jī),實(shí)時(shí)監(jiān)控Ejabberd 狀態(tài),Ejabberd 工具可以備份內(nèi)部數(shù)據(jù)庫(kù)和恢復(fù)數(shù)據(jù)[11]。
圖5 Web 后臺(tái)管理頁(yè)面
4.2.2 Ejabberd 通信框架與模塊
DataClass 負(fù)責(zé)資料儲(chǔ)存業(yè)務(wù),加強(qiáng)保證資料完整性,Mnesia 資料庫(kù)默認(rèn)采用,通過(guò)LDAP 目錄存儲(chǔ)各種模塊的業(yè)務(wù)資料。 接口層除了附帶流量控制功能外,還負(fù)責(zé)監(jiān)控服務(wù)端口、收發(fā)數(shù)據(jù)[12-13]。 隨著社會(huì)經(jīng)濟(jì)不斷發(fā)展,我國(guó)政府部門(mén)愈發(fā)提高對(duì)低壓電力線(xiàn)管理的重視程度,針對(duì)低壓電力線(xiàn)運(yùn)行制定各種相關(guān)政策,保證低壓電力線(xiàn)運(yùn)行安全性能達(dá)到預(yù)期標(biāo)準(zhǔn)。 要進(jìn)一步拓展通信范圍,研究各種動(dòng)態(tài)組網(wǎng)算法,如蟻群算法、非交疊分簇的路由算法、邏輯拓?fù)浣Y(jié)構(gòu)算法等,均能實(shí)現(xiàn)路由的自動(dòng)中繼工作。 而Mnesia 資料庫(kù)默認(rèn)被采用,利用外部資料庫(kù)或LDAP 目錄存儲(chǔ)可以配置大部分模塊的業(yè)務(wù)數(shù)據(jù)。 負(fù)責(zé)Ejabberd,核心通信業(yè)務(wù)的邏輯層是Ejabberd 的重中之重,如表1所示。
表1 Ejabberd,通信模塊和功能
綜上所述,本次研究主要做了以下四點(diǎn):(1)學(xué)習(xí)即時(shí)通信系統(tǒng)實(shí)現(xiàn)的相關(guān)技術(shù)方法、查閱與網(wǎng)站即時(shí)通信系統(tǒng)有關(guān)的資料和文件、了解當(dāng)前的最新研究狀況及發(fā)展動(dòng)態(tài)、對(duì)網(wǎng)站即時(shí)通信系統(tǒng)的功能需求進(jìn)行調(diào)查研究、制定初步的開(kāi)發(fā)計(jì)劃;(2)對(duì)《XMPP 協(xié)議》的相關(guān)內(nèi)容進(jìn)行了重點(diǎn)研究;(3)學(xué)習(xí)研究OTP 行為模式開(kāi)發(fā)技術(shù);(4)從全局出發(fā),設(shè)計(jì)網(wǎng)站即時(shí)通信系統(tǒng)的整體框架,將XMPP服務(wù)器的結(jié)構(gòu)在即時(shí)通信系統(tǒng)中進(jìn)行分析,提高系統(tǒng)的使用效果。