999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

跨平臺(tái)企業(yè)即時(shí)通訊系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)

2019-06-28 05:57:18楊繼鵬張廣建
關(guān)鍵詞:用戶系統(tǒng)企業(yè)

楊繼鵬,張廣建

?

跨平臺(tái)企業(yè)即時(shí)通訊系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)

楊繼鵬1,張廣建2

1. 山東服裝職業(yè)學(xué)院信息工程系, 山東 泰安 271000 2. 北京新桃科技有限公司, 北京 100000

即時(shí)通信軟件(IM)已經(jīng)成為人們生活中必不可少的交流與溝通工具。但是,個(gè)人IM用于企業(yè)中還有很多不足之處,需要加以補(bǔ)充、擴(kuò)展。針對(duì)企業(yè)的實(shí)際需求,從系統(tǒng)基本架構(gòu)、企業(yè)通訊錄、多系統(tǒng)協(xié)作、辦公自動(dòng)化等幾個(gè)方面,對(duì)即時(shí)通訊系統(tǒng)進(jìn)行了完善和加強(qiáng),形成了更適合企業(yè)使用的即時(shí)通訊系統(tǒng)。另外,個(gè)人在移動(dòng)設(shè)備上使用IM的時(shí)間越來(lái)越長(zhǎng),而很多企業(yè)用戶選擇在電腦上使用IM,本系統(tǒng)支持Windows、Android、iOS和Html5,是真正跨平臺(tái)的企業(yè)即時(shí)通訊系統(tǒng)。

即時(shí)通訊系統(tǒng); 企業(yè)通訊錄; 辦公自動(dòng)化; 設(shè)計(jì)

即時(shí)通訊(IM)不但擁有幾億級(jí)別的個(gè)人用戶,還有數(shù)量龐大的企業(yè)用戶。很多企業(yè)用戶只能使用個(gè)人即時(shí)通訊軟件(如微信),但是遇到了很多問(wèn)題。例如管理問(wèn)題,在微信群中,企業(yè)成員可以邀請(qǐng)企業(yè)外用戶,造成企業(yè)信息泄露,偽造身份攻擊等。再例如,和企業(yè)其它系統(tǒng)的協(xié)作,在微信里也無(wú)法實(shí)現(xiàn)。為了解決類似的一些問(wèn)題,需要為企業(yè)設(shè)計(jì)和實(shí)現(xiàn)專用的即時(shí)通訊系統(tǒng)。

1 即時(shí)通訊系統(tǒng)的基本架構(gòu)

即時(shí)通訊系統(tǒng)采用C/S和B/S模式并用的系統(tǒng)架構(gòu)。具體來(lái)說(shuō),Android和iOS手機(jī)客戶端,以及PC客戶端都采用C/S模式。但對(duì)于不愿下載客戶端的用戶,系統(tǒng)也提供了支持B/S模式的Html5客戶端。

客戶端之間的通訊支持C/S模式和P2P模式。客戶端之間一般無(wú)法直接連接,需要通過(guò)服務(wù)器轉(zhuǎn)發(fā)才能進(jìn)行通訊,即C/S模式。如果客戶端能夠直接連接,系統(tǒng)自動(dòng)采用P2P通訊直接連接、通訊。通訊形式的轉(zhuǎn)變對(duì)于用戶是透明的。

C/S模式能夠?qū)?shù)據(jù)交換進(jìn)行有效監(jiān)控,系統(tǒng)的安全性較高,并且可以完成信息認(rèn)證、處理、存儲(chǔ)以及對(duì)用戶資料的集中管理,另外還能夠?qū)崿F(xiàn)離線消息暫存等功能,但是隨著用戶數(shù)量不斷增加,服務(wù)器的壓力會(huì)增大,性能減弱。P2P模式可以最大程度地利用網(wǎng)絡(luò)帶寬,減輕服務(wù)器負(fù)擔(dān),提高用戶響應(yīng)速度,增強(qiáng)用戶的服務(wù)體驗(yàn),占用帶寬較多的視頻傳輸、音頻傳輸、文件傳輸?shù)葢?yīng)用程序使用該模式。但是P2P模式的開(kāi)發(fā)較C/S應(yīng)用程序更為復(fù)雜。綜合考慮,系統(tǒng)使用C/S和P2P的混合模式,充分利用這兩種模式各自的優(yōu)勢(shì),提升系統(tǒng)性能。

1.1 客戶端和客戶端通訊的基本模型

客戶端Client A和客戶端Client B實(shí)現(xiàn)通訊,這是即時(shí)通訊最簡(jiǎn)單的模型,如圖1所示。

圖 1 客戶端和客戶端單服務(wù)器通訊模型

在這個(gè)模型中,客戶端Client A和客戶端Client B都連接到服務(wù)器Server。客戶端Client A把數(shù)據(jù)發(fā)送到服務(wù)器Server,服務(wù)器Server再把數(shù)據(jù)轉(zhuǎn)發(fā)到客戶端Client B,從而完成一次數(shù)據(jù)通訊。同樣客戶端Client B也可以通過(guò)這種方式向客戶端Client A發(fā)送數(shù)據(jù)。

客戶端Client A和客戶端Client B之間也可以創(chuàng)建一條數(shù)據(jù)傳輸通道。當(dāng)客戶端Client A和客戶端Client B能夠互相連接時(shí),可以在兩者之間直接傳輸數(shù)據(jù),而不需要服務(wù)器Server進(jìn)行轉(zhuǎn)發(fā)。這樣可以減輕服務(wù)器Server的負(fù)擔(dān),降低整個(gè)系統(tǒng)成本。所以早期的IM都努力實(shí)現(xiàn)客戶端Client A和客戶端Client B的直接通訊,甚至由服務(wù)器Server協(xié)助建立連接。但隨著硬件價(jià)格和帶寬價(jià)格的下降,以及服務(wù)器數(shù)據(jù)價(jià)值的上升,IM系統(tǒng)逐漸減少了客戶端的直接連接,越來(lái)越傾向于由服務(wù)器轉(zhuǎn)發(fā)數(shù)據(jù)了。

除了轉(zhuǎn)發(fā)數(shù)據(jù),服務(wù)器還需要實(shí)現(xiàn)很多輔助功能,例如賬號(hào)的注冊(cè)和驗(yàn)證,好友關(guān)系的存儲(chǔ)和下發(fā),用戶信息、狀態(tài)的修改和查詢等。

根據(jù)基本的通訊模型, 我們來(lái)分析用戶交互過(guò)程中需要經(jīng)歷的步驟,以下是Client進(jìn)行點(diǎn)對(duì)點(diǎn)通訊的詳細(xì)過(guò)程:

(1)ClientA通過(guò)即時(shí)通信客戶端輸入自己的賬號(hào)和密碼登錄服務(wù)器Server,服務(wù)器讀取Client A注冊(cè)過(guò)的數(shù)據(jù)庫(kù)來(lái)驗(yàn)證其身份。如果用戶身份驗(yàn)證通過(guò),就登記Client A的相關(guān)信息(如用戶IP地址及使用的TCP/UDP端口號(hào)等),并返回Client A登錄成功的標(biāo)志,且將Client A在系統(tǒng)中的狀態(tài)改為在線狀態(tài)。

(2)根據(jù)Client A存儲(chǔ)在服務(wù)器Server上的好友列表,服務(wù)器將Client A的在線信息(包括Client A的IP 地址及使用的TCP/UDP端口號(hào)、在線狀態(tài)等)發(fā)送給同時(shí)在線的好友Client B,Client B客戶端收到此信息后顯示給用戶。Client A的在線信息同樣還發(fā)送給同時(shí)在線的好友Client D等。

(3)服務(wù)器Server把Client A存儲(chǔ)在服務(wù)器上的好友列表及其相關(guān)信息回送到Client A。這些信息也包括好友的IP 地址、端口號(hào)以及其在線狀態(tài)等。這時(shí)Client A就獲得了其好友列表及其在線狀態(tài)等相關(guān)情況。

(4)如果Client A想與其在線好友Client B進(jìn)行聊天,他可以嘗試直接向Client B發(fā)出聊天信息,Client B接收到Client A的消息后,自動(dòng)回復(fù)數(shù)據(jù)已經(jīng)收到。

(5)有些情況下Client A和Client B無(wú)法直接通訊,Client A只能把聊天數(shù)據(jù)發(fā)送到服務(wù)器Server,由服務(wù)器轉(zhuǎn)發(fā)給Client B。

1.2 海量客戶端和多服務(wù)器需要的可擴(kuò)充性架構(gòu)

單服務(wù)器支持的客戶端是有限的,我們假設(shè)能支持2000人同時(shí)在線、通訊。當(dāng)客戶端數(shù)量超過(guò)單服務(wù)器支持能力以后,就必須把客戶端分到多個(gè)服務(wù)器上,例如Server A、Server B。

但是多服務(wù)器帶來(lái)了另一個(gè)問(wèn)題。當(dāng)客戶端Client A和客戶端Client B通訊的時(shí)候,客戶端Client A把數(shù)據(jù)發(fā)送給Server A,希望Server A轉(zhuǎn)發(fā)給客戶端Client B。但客戶端Client B是連接到Server B的,并沒(méi)有連接Server A,所以Server A無(wú)法找到客戶端Client B。

為了解決這個(gè)問(wèn)題,需要增加另一類服務(wù)器,讓服務(wù)器Server A能夠發(fā)現(xiàn)服務(wù)器Server B。我們把原來(lái)的服務(wù)器Server A和服務(wù)器Server B稱為在線服務(wù)器Online Server,把用于聯(lián)系Online Server的服務(wù)器稱為Information Server。Information Server也包括多個(gè)服務(wù)器,采用分布式部署,實(shí)現(xiàn)服務(wù)器的彈性配置。最后為了實(shí)現(xiàn)Information Server之間的互相通訊,我們又添加了服務(wù)器Root Information Server。Root Information Server需要處理的通訊量比較小,只有一臺(tái)服務(wù)器,類似于DNS系統(tǒng)的根服務(wù)器。

所以服務(wù)器Server的轉(zhuǎn)發(fā)功能由若干Online Server和若干Information Server分布式實(shí)現(xiàn)。我們把服務(wù)器Server的賬號(hào)功能獨(dú)立出來(lái),由賬號(hào)服務(wù)器Account Server實(shí)現(xiàn)。把好友關(guān)系獨(dú)立出來(lái),放到Information Server實(shí)現(xiàn)。而添加好友和好友確認(rèn)的功能,像數(shù)據(jù)通訊一樣,通過(guò)Online Server和若干Information Server轉(zhuǎn)發(fā)。

此時(shí)的網(wǎng)絡(luò)通訊模型如圖2所示,圖中用ISA-ISZ代指若干Information Server,OSA-OSX代指若干Online Server。

圖2 海量客戶端和多服務(wù)器的網(wǎng)絡(luò)通訊模型

圖2僅做示意。實(shí)際應(yīng)用中,客戶端、Online Server、Information Server的數(shù)量都是彈性配置的,是根據(jù)客戶端規(guī)模確定的。Online Server和客戶端是一對(duì)多的關(guān)系,Information Server和Online Server也是一對(duì)多的關(guān)系。

Account Server和Root Information Server目前都只有一臺(tái)服務(wù)器。

需要特別說(shuō)明的是,以上服務(wù)器都是邏輯概念,是軟件概念。理論上,若干不同的邏輯服務(wù)器在硬件上可能運(yùn)行在同一臺(tái)機(jī)器上。

1.3 滿足用戶復(fù)雜通訊需求的專用服務(wù)器

即時(shí)通訊系統(tǒng)是在不斷發(fā)展的。最初的即時(shí)通訊比較原始,甚至不會(huì)保存好友列表。但是隨著即時(shí)通訊系統(tǒng)的進(jìn)步,用戶的需求也越來(lái)越復(fù)雜。

例如,用戶在添加好友的時(shí)候,除了按照賬號(hào)查找好友,還需要能按照性別、年齡、地域、愛(ài)好等條件進(jìn)行查找。這些信息分布于若干Information Server中,如果一一查詢,時(shí)間太長(zhǎng)無(wú)法接受。我們?cè)谙到y(tǒng)中添加搜索服務(wù)器Search Server,把存放在Information Server的用戶信息集中起來(lái),供用戶搜索使用。搜索服務(wù)器Search Server在個(gè)人IM系統(tǒng)中,可以用來(lái)搜索、添加好友。而在企業(yè)IM系統(tǒng)中,功能相對(duì)簡(jiǎn)單,主要用于搜索用戶信息。因?yàn)楫?dāng)用戶規(guī)模比較大的時(shí)候,如果把所有用戶信息存儲(chǔ)在客戶端并實(shí)時(shí)維護(hù),會(huì)大大加重系統(tǒng)的負(fù)擔(dān)。企業(yè)IM的Search Server可以更加方便地找到相應(yīng)的用戶。

例如,用戶不但需要一對(duì)一通訊,還需要多對(duì)多通訊,即群聊。而群聊的基礎(chǔ)功能就需要實(shí)現(xiàn)創(chuàng)建、解散、添加成員、刪除成員、退出等,用戶可能還需要權(quán)限管理、聊天內(nèi)容管理等復(fù)雜功能。為此我們?cè)谙到y(tǒng)中添加群聊服務(wù)器Team Server,把所有的群聊功能在Team Server中實(shí)現(xiàn)。

例如,用戶收發(fā)文字內(nèi)容的時(shí)候,如果兩名用戶沒(méi)有同時(shí)在線,可以把文字消息存在Information Server中,等目標(biāo)用戶上線以后,再?gòu)腎nformation Server接收。但是,用戶還需要發(fā)送圖片、音頻、文件等,Information Server負(fù)擔(dān)加重,會(huì)造成阻塞,降低用戶體驗(yàn)。另外,某個(gè)文件的多次轉(zhuǎn)發(fā),會(huì)在不同的Information Server上存儲(chǔ)多份,造成浪費(fèi)。為了解決這些問(wèn)題,在系統(tǒng)中添加File Server,專門處理文件的上傳、存儲(chǔ)和下載,同一份文件不管轉(zhuǎn)發(fā)多少次,只需在服務(wù)器存儲(chǔ)一份即可。

例如,附近的人功能,需要獲取用戶的地理位置,并按照用戶的地理位置排序、查找、分類。這個(gè)需求在Information Server上和Search Server上實(shí)現(xiàn)都存在一定困難。我們?cè)谙到y(tǒng)中添加Location Server,專門對(duì)用戶按照地理位置進(jìn)行處理。

類似種種需求,都需要在原有基礎(chǔ)上添加專用服務(wù)器,針對(duì)性解決用戶的復(fù)雜需求。

2 企業(yè)即時(shí)通訊系統(tǒng)的完善和加強(qiáng)

我們把常見(jiàn)的面向個(gè)人使用的即時(shí)通訊系統(tǒng)稱為個(gè)人IM。現(xiàn)實(shí)中有很多個(gè)人IM用于企業(yè)通訊的案例。如本文前面所述,個(gè)人IM用在企業(yè)中,出現(xiàn)了很多問(wèn)題。為了解決這些問(wèn)題,我們?cè)谙到y(tǒng)中添加了若干服務(wù)器,統(tǒng)稱為企業(yè)服務(wù)器。企業(yè)服務(wù)器主要包括以下幾個(gè)常見(jiàn)功能。

2.1 企業(yè)通訊錄

企業(yè)通訊錄支持服務(wù)器設(shè)置所有用戶賬號(hào)、用戶部門、用戶的好友列表等功能。我們把處理企業(yè)通訊錄的服務(wù)器稱為Contact Server,如圖3所示。

圖3 處理企業(yè)通訊錄的服務(wù)器

企業(yè)通訊錄主要針對(duì)用戶身份認(rèn)證、用戶分組和好友查找問(wèn)題。由于用戶身份都是由服務(wù)端設(shè)置的,自然解決了用戶的身份認(rèn)證問(wèn)題,把用戶嚴(yán)格限制在企業(yè)內(nèi)部。

企業(yè)用戶屬于不同部門,用戶可以按照部門分組,在部門內(nèi)部開(kāi)展群聊,把線下的部門討論搬到線上,不受時(shí)間、空間的約束。

企業(yè)通訊錄可以為用戶設(shè)置好友列表,這個(gè)列表取決于具體情況。例如,開(kāi)發(fā)部成員的好友列表是本部門成員,銷售部成員的好友是銷售部和市場(chǎng)部成員,總裁辦公室的好友列表包括辦公室成員和各部門管理人員。如圖4為系統(tǒng)的企業(yè)用戶信息管理界面。

圖4 企業(yè)用戶信息管理

企業(yè)通訊錄的最大優(yōu)勢(shì),在于企業(yè)成員和系統(tǒng)用戶的嚴(yán)格同步。當(dāng)企業(yè)成員入職時(shí),同步加入系統(tǒng)用戶,加入好友列表,加入部門分組。當(dāng)企業(yè)成員離職時(shí),同步在用戶集合、好友列表和部門分組中刪除。當(dāng)企業(yè)成員跨部門調(diào)動(dòng)時(shí),也能同步修改用戶分組等數(shù)據(jù)。

如果沒(méi)有企業(yè)通訊錄,個(gè)人IM往往無(wú)法及時(shí)處理企業(yè)成員的變化。企業(yè)成員加入時(shí),要求每個(gè)成員在IM中添加一個(gè)好友需要一定的管理成本。而當(dāng)企業(yè)成員離職時(shí),原同事通常仍然把他留在好友系統(tǒng)中,群聊也經(jīng)常礙于情面不方便刪除。甚至有些成員存在于多個(gè)群聊中,忘刪、漏刪的情況司空見(jiàn)慣。

2.2 企業(yè)子系統(tǒng)互通

企業(yè)即時(shí)通訊系統(tǒng)只是企業(yè)若干子系統(tǒng)的一個(gè)。企業(yè)子系統(tǒng)的互相協(xié)作、互相調(diào)用非常重要,企業(yè)即時(shí)通訊系統(tǒng)也不例外。

子系統(tǒng)互通最常見(jiàn)的用戶需求是用戶賬號(hào)互通。例如,企業(yè)已經(jīng)部署人力資源子系統(tǒng),當(dāng)實(shí)現(xiàn)企業(yè)即時(shí)通訊系統(tǒng)的時(shí)候,希望使用人力資源子系統(tǒng)(HR)的用戶賬號(hào)。IM客戶端首先輸入HR內(nèi)的用戶賬號(hào)HR Account,然后到HR Server驗(yàn)證賬號(hào)是否正確,如果正確則返回該用戶在IM內(nèi)的用戶賬號(hào)。客戶端再用IM系統(tǒng)內(nèi)的賬號(hào)登錄Account Server,進(jìn)入IM子系統(tǒng)。圖5為以人力資源子系統(tǒng)為主的企業(yè)子系統(tǒng)互通示意圖。

上述系統(tǒng)架構(gòu)是以人力資源子系統(tǒng)為主。我們也支持以企業(yè)即時(shí)通訊系統(tǒng)為主,采取如下系統(tǒng)架構(gòu)。企業(yè)即時(shí)通訊系統(tǒng)的客戶端和服務(wù)器保持不變,HR客戶端Client登錄的時(shí)候,先到企業(yè)即時(shí)通訊系統(tǒng)的服務(wù)器端根據(jù)用戶賬號(hào)獲取一個(gè)Token,然后使用此Token登錄HR服務(wù)端Server。HR服務(wù)端Server接收到Token以后,需要去Account Server驗(yàn)證Token的合法性。微信登錄采用的OAuth2協(xié)議,也是類似架構(gòu)。圖6為以企業(yè)即時(shí)通訊系統(tǒng)為主的企業(yè)子系統(tǒng)互通示意圖。

圖5 以人力資源子系統(tǒng)為主的企業(yè)子系統(tǒng)互通示意圖

圖6 以企業(yè)即時(shí)通訊系統(tǒng)為主的企業(yè)子系統(tǒng)互通示意圖

在賬號(hào)統(tǒng)一的前提下,企業(yè)即時(shí)通訊系統(tǒng)和其它子系統(tǒng)之間可以互相協(xié)作、互相調(diào)用。例如,人力資源子系統(tǒng)原來(lái)需要發(fā)送郵件通知,可以改為發(fā)送即時(shí)消息,更加靈活、方便。

2.3 在企業(yè)即時(shí)通訊系統(tǒng)上創(chuàng)建應(yīng)用

企業(yè)即時(shí)通訊系統(tǒng)的發(fā)展趨勢(shì)是在系統(tǒng)基礎(chǔ)上創(chuàng)建更多的應(yīng)用,例如考勤、公告、審批等,從而成為辦公自動(dòng)化的基礎(chǔ)平臺(tái)。由于企業(yè)即時(shí)通訊系統(tǒng)已經(jīng)具備用戶管理、網(wǎng)絡(luò)通訊、分組權(quán)限等基礎(chǔ)功能,在其基礎(chǔ)上創(chuàng)建應(yīng)用,可以說(shuō)是事半功倍。

具體方法是,企業(yè)即時(shí)通訊系統(tǒng)發(fā)送、接收的每條數(shù)據(jù),都可以添加應(yīng)用屬性,標(biāo)識(shí)這條數(shù)據(jù)對(duì)應(yīng)的應(yīng)用模塊。

當(dāng)用戶A使用審批應(yīng)用時(shí),輸入審批內(nèi)容,形成審批數(shù)據(jù)。這條審批數(shù)據(jù)就像普通的文字?jǐn)?shù)據(jù)一樣,從用戶A發(fā)向用戶B。用戶B收到審批數(shù)據(jù)以后,根據(jù)數(shù)據(jù)中包含的應(yīng)用屬性,判斷該數(shù)據(jù)對(duì)應(yīng)的應(yīng)用模塊,再把該數(shù)據(jù)分發(fā)到審批應(yīng)用,如圖7所示。

圖7 企業(yè)即時(shí)通訊系統(tǒng)上創(chuàng)建應(yīng)用示意圖

這種架構(gòu)有效地保證了應(yīng)用的擴(kuò)展性。底層的數(shù)據(jù)傳送功能只負(fù)責(zé)應(yīng)用數(shù)據(jù)的發(fā)送和接收,不參與應(yīng)用數(shù)據(jù)的創(chuàng)建和解析,從而保證了底層數(shù)據(jù)傳送功能的抽象性。

3 跨平臺(tái)實(shí)現(xiàn)及其遇到的問(wèn)題

即時(shí)通訊系統(tǒng)最初運(yùn)行在PC機(jī)上,隨著智能手機(jī)的迅速發(fā)展,即時(shí)通訊系統(tǒng)逐漸普及了手機(jī)客戶端。我們的企業(yè)即時(shí)通訊系統(tǒng)是真正跨平臺(tái)的即時(shí)通訊系統(tǒng),也就是說(shuō),在多個(gè)平臺(tái)上都實(shí)現(xiàn)了最佳的客戶端形式。系統(tǒng)使用同一后臺(tái)服務(wù)端,客戶端在PC機(jī)和Android、iOS手機(jī)上都做了獨(dú)立、完整的設(shè)計(jì)和實(shí)現(xiàn),用戶可以自由選擇使用PC客戶端、手機(jī)客戶端,或者使用網(wǎng)頁(yè)形式訪問(wèn)。相對(duì)其它一些企業(yè)即時(shí)通訊系統(tǒng),只實(shí)現(xiàn)了部分平臺(tái)的客戶端,或者在某些平臺(tái)上只實(shí)現(xiàn)了部分功能,該系統(tǒng)更加完善,更加方便。

3.1 服務(wù)端及數(shù)據(jù)庫(kù)的設(shè)計(jì)和實(shí)現(xiàn)

服務(wù)器采用MySQL數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù),使用Java編程實(shí)現(xiàn),可以在Windows平臺(tái)和Linux平臺(tái)。如上文所述,服務(wù)端包括Account Server、Online Server、Information Server和Contact Server等等,這些服務(wù)器基本使用Java實(shí)現(xiàn),沒(méi)有運(yùn)行界面。為了進(jìn)行企業(yè)信息的管理,例如企業(yè)人員的增加、刪除、修改和查詢,Contact Server提供了Html5界面,原因是Contact Server的主要用戶是企業(yè)管理人員,主要應(yīng)用場(chǎng)景是在企業(yè)內(nèi)部辦公時(shí)使用。

服務(wù)端數(shù)據(jù)庫(kù)主要采用My SQL數(shù)據(jù)庫(kù)。系統(tǒng)設(shè)計(jì)的主要數(shù)據(jù)庫(kù)表有權(quán)限信息表(Privilege Info)、部門信息表(Department Info)、職務(wù)信息表(Job Info)、用戶信息表(User Info)、個(gè)人聊天記錄表(Chat Record Info)、群組信息表(Group Info)、群聊天記錄表(Group Chat Record Info)等。

數(shù)據(jù)庫(kù)包括以下核心實(shí)體和屬性:

用戶資料(用戶ID、名稱、ICON、性別、年齡、在線狀態(tài)、IP、Email)、朋友關(guān)系表(用戶ID、朋友ID、添加好友日期)、聊天群資料(群ID、群用戶ID、群主ID、群創(chuàng)建日期、用戶權(quán)限)、文件信息(發(fā)送者ID、接受者ID、發(fā)送日期、文件類型)。

服務(wù)端和客戶端之間的通訊數(shù)據(jù)采用json格式。早期IM在大多數(shù)采用xml格式,但近期json格式用的比較多,對(duì)手機(jī)客戶端支持得也更好。

3.2 Windows PC客戶端

雖然手機(jī)端即時(shí)通訊發(fā)展迅速,使用方便,但還有大量場(chǎng)景是在PC機(jī)上使用即時(shí)通訊,企業(yè)用戶尤其如此。我們的企業(yè)即時(shí)通訊系統(tǒng)支持Windows客戶端,采用VC實(shí)現(xiàn)。Windows客戶端的功能類似QQ,能夠?qū)崿F(xiàn)一對(duì)一或多對(duì)多的文字、圖片、文件傳輸。Windows客戶端的優(yōu)勢(shì)是硬件性能強(qiáng)大,網(wǎng)絡(luò)連接穩(wěn)定。缺點(diǎn)是由于PC機(jī)硬件的限制,Windows客戶端的語(yǔ)音功能相對(duì)短板。

圖8 手機(jī)客戶端界面示意

3.3 Android、iOS手機(jī)客戶端

用戶已經(jīng)養(yǎng)成了在智能手機(jī)上隨時(shí)隨地使用即時(shí)通訊系統(tǒng)的習(xí)慣。企業(yè)即時(shí)通訊系統(tǒng)支持Android和iOS手機(jī)客戶端。Android客戶端采用Java語(yǔ)言實(shí)現(xiàn),iOS客戶端采用Objective C實(shí)現(xiàn)。

智能手機(jī)目前都有完善的攝像頭和話筒,所以圖片和語(yǔ)音功能比PC客戶端強(qiáng)大。此外,手機(jī)客戶端還擁有GPS定位功能,可以實(shí)現(xiàn)打卡、簽到等基于位置的服務(wù)(LBS)。手機(jī)客戶端界面設(shè)計(jì)與微信等已有移動(dòng)IM類似,如圖8所示。

手機(jī)客戶端的缺點(diǎn)是網(wǎng)絡(luò)連接不夠穩(wěn)定。一方面,有時(shí)手機(jī)無(wú)法連接WiFi,而移動(dòng)網(wǎng)絡(luò)既要花費(fèi)資金,又有盲區(qū)。另一方面,即使手機(jī)連接網(wǎng)絡(luò)良好,當(dāng)用戶從即時(shí)通訊系統(tǒng)切換到別的軟件,或者長(zhǎng)時(shí)間閑置,手機(jī)都會(huì)切斷即時(shí)通訊系統(tǒng)的網(wǎng)絡(luò)連接,所以手機(jī)客戶端經(jīng)常處于離線狀態(tài),用戶在線狀態(tài)失去了意義,因此,在手機(jī)客戶端中,不再標(biāo)注用戶在線狀態(tài)。

相比直接打電話,移動(dòng)端即時(shí)通訊系統(tǒng)有很多優(yōu)點(diǎn),可以和電話形成良好的互補(bǔ)。第一是異步進(jìn)行,減少了對(duì)接收方的干擾。例如接收方正在開(kāi)會(huì),無(wú)法接打電話,但可以接收IM信息。第二是IM可以發(fā)送圖片、視頻、文件等,而且可以永久回聽(tīng)語(yǔ)音,這些都是電話無(wú)法做到的。對(duì)于移動(dòng)端經(jīng)常離線造成的問(wèn)題,系統(tǒng)通過(guò)消息推送機(jī)制來(lái)解決。

消息推送機(jī)制是為了保證數(shù)據(jù)通訊的實(shí)時(shí)性。當(dāng)用戶A給用戶B發(fā)送實(shí)時(shí)消息時(shí),首先把消息發(fā)送到服務(wù)端。然后服務(wù)端會(huì)檢查用戶B的手機(jī)客戶端是否在線。如果該用戶手機(jī)客戶端在線,服務(wù)器會(huì)把消息直接發(fā)到該用戶客戶端,用戶B就可以實(shí)時(shí)接收到消息。如果該用戶手機(jī)客戶端處于離線狀態(tài)(例如App切換到后臺(tái)),服務(wù)端會(huì)調(diào)用推送功能,把消息推送到用戶B的手機(jī)上。用戶B能夠在手機(jī)上看到服務(wù)端實(shí)時(shí)推送過(guò)來(lái)的消息,如果是自己關(guān)心的消息,可以選擇打開(kāi)App進(jìn)一步查看詳細(xì)內(nèi)容。

在iOS手機(jī)上,推送系統(tǒng)由Apple公司實(shí)現(xiàn)。在Android手機(jī)上,推送系統(tǒng)的實(shí)現(xiàn)有很多種,一般手機(jī)廠商如華為、小米、OPPO都有自己的推送系統(tǒng)。我們的Android客戶端兼容常見(jiàn)的手機(jī)品牌和機(jī)型。

由于iOS系統(tǒng)的安全限制,iOS客戶端發(fā)送文件的選擇范圍比較窄,只能發(fā)送以前接收過(guò)的文件,或其它App允許打開(kāi)的文件。

3.4 Html5網(wǎng)頁(yè)

Html5網(wǎng)頁(yè)又稱H5網(wǎng)頁(yè),通常運(yùn)行在手機(jī)瀏覽器中,也可以運(yùn)行在Windows的一些瀏覽器中。Html5網(wǎng)頁(yè)的優(yōu)勢(shì)是無(wú)需下載、安裝,即開(kāi)即用,自動(dòng)升級(jí)。但Html5網(wǎng)頁(yè)也有很多缺點(diǎn),例如保持網(wǎng)絡(luò)連接、調(diào)用硬件設(shè)備能力比較差,界面反應(yīng)速度不如原生App(見(jiàn)3.2所述)等。H5網(wǎng)頁(yè)端的應(yīng)用場(chǎng)景,一般是習(xí)慣使用PC客戶端的用戶,臨時(shí)在手機(jī)上使用,或者在陌生PC上短暫使用系統(tǒng)、不方便安裝客戶端的情況。

我們的企業(yè)即時(shí)通訊系統(tǒng)支持以上所有客戶端形式,用戶可以自由選擇,也方便跟其它企業(yè)子系統(tǒng)靈活適配。

4 本系統(tǒng)的特點(diǎn)和創(chuàng)新

本系統(tǒng)在設(shè)計(jì)和實(shí)踐過(guò)程中,參考了多款同類型軟件系統(tǒng),吸收了很多用戶的經(jīng)驗(yàn)和意見(jiàn),保證了本系統(tǒng)的各方面優(yōu)勢(shì)。例如參考文獻(xiàn)[3]中的企業(yè)即時(shí)通訊系統(tǒng)甚至沒(méi)有移動(dòng)端,參考文獻(xiàn)[4]中,大螞蟻Big Ant在移動(dòng)端舍棄了企業(yè)通訊錄功能。

4.1 可擴(kuò)充性

系統(tǒng)在用戶規(guī)模方面提供了可擴(kuò)充性。如果用戶數(shù)量增加,只需要增加服務(wù)器的數(shù)量,不需要修改服務(wù)器的架構(gòu)。這種可擴(kuò)充性的架構(gòu),有效保證了系統(tǒng)的穩(wěn)定性。

系統(tǒng)在應(yīng)用種類方面提供了可擴(kuò)充性。如果應(yīng)用類型增加,只需相應(yīng)增加某個(gè)應(yīng)用,不需要修改整體的架構(gòu)。從技術(shù)角度上講,企業(yè)即時(shí)通訊系統(tǒng)可以成為企業(yè)信息系統(tǒng)、企業(yè)信息化的新平臺(tái)。

4.2 跨平臺(tái)

系統(tǒng)支持Windows客戶端、Android和iOS手機(jī)客戶端、H5網(wǎng)頁(yè)等多種操作形式。它們互有優(yōu)缺點(diǎn),互相補(bǔ)充,既能讓用戶隨時(shí)隨地方便使用,又能給用戶提供反應(yīng)迅速、形式多樣的用戶體驗(yàn)。

4.3 加強(qiáng)系統(tǒng)協(xié)作

系統(tǒng)支持兩種協(xié)作方式。

一種是在原有企業(yè)子系統(tǒng)(以HR系統(tǒng)為例)的基礎(chǔ)上,增加企業(yè)即時(shí)通訊子系統(tǒng)。系統(tǒng)既支持在原HR系統(tǒng)上增加企業(yè)即時(shí)通訊系統(tǒng)屬性,也支持把原HR系統(tǒng)的賬號(hào)體系導(dǎo)入企業(yè)即時(shí)通訊系統(tǒng)。

第二種協(xié)作方式是把企業(yè)即時(shí)通訊系統(tǒng)作為用戶認(rèn)證中心,采用OAuth2協(xié)議等方式為其它子系統(tǒng)提供用戶賬號(hào)認(rèn)證、用戶信息維護(hù)等。

4.4 定制系統(tǒng)應(yīng)用

系統(tǒng)可以作為企業(yè)信息化的基礎(chǔ)系統(tǒng),提供用戶體系和通訊功能。在此基礎(chǔ)上可以創(chuàng)建各類應(yīng)用,如考勤打卡、公文審批、人事管理等等,從而搭建整個(gè)辦公自動(dòng)化系統(tǒng)。這些應(yīng)用的數(shù)據(jù)發(fā)送和接收只需要遵守一定的格式,就可以直接添加到系統(tǒng)中,使用原來(lái)的系統(tǒng)傳輸通道,從而大大節(jié)省開(kāi)發(fā)時(shí)間和成本。

5 展望

企業(yè)即時(shí)通訊系統(tǒng)近年來(lái)逐漸普及,目前正向增強(qiáng)功能、改善體驗(yàn)、加強(qiáng)協(xié)作方向發(fā)展。我們這個(gè)系統(tǒng)的發(fā)展方向主要是加強(qiáng)系統(tǒng)協(xié)作和定制應(yīng)用,尤其是加強(qiáng)系統(tǒng)協(xié)作。對(duì)于企業(yè)應(yīng)用中的軟件,制定相應(yīng)接口,實(shí)現(xiàn)互相調(diào)用,是今后的工作重點(diǎn)。

[1] 劉琰.Windows網(wǎng)絡(luò)編程[M].北京:機(jī)械工業(yè)出版社,2014

[2] 劉云.企業(yè)IM 架構(gòu)的自由擴(kuò)展性研究[J].計(jì)算機(jī)應(yīng)用與軟件,2014,36(6):75-78

[3] 陸偉,林培榕,林姿瓊.企業(yè)即時(shí)通訊系統(tǒng)設(shè)計(jì)[J].軟件導(dǎo)刊,2015,14(10):94-96

[4] 萬(wàn)曉鴿.企業(yè)即時(shí)通訊系統(tǒng)在企業(yè)中的集成應(yīng)用[J].有色金屬加工,2017,46(6):62-64

Design and Implementation of the Instant Messaging System in Cross-platform Enterprise

YANG Ji-peng1, ZHANG Guang-jian2

1.271000,2.100000,

Instant messaging software(IM) has become an indispensable communication and communication tool in people's lives. However, there are many shortcomings in the use of personal IM in enterprises and it needs to be supplemented and expanded. In view of the actual needs of enterprises, we have improved and strengthened the instant messaging system from basic structure of system,the enterprise address book, multi-system collaboration, office automation and other aspects, and formed an instant messaging system that is more suitable for enterprises to use. In addition, individuals use IM on mobile devices for longer and longer, and many corporate users choose to use IM on computers. This system supports Windows, Android, iOS, and Html5. It is a truly cross-platform enterprise instant messaging system.

Instant messaging system; business address book; office automation; design

TP319

A

1000-2324(2019)03-0495-07

10.3969/j.issn.1000-2324.2019.03.031

2019-02-23

2019-06-03

楊繼鵬(1970-),男,碩士,教授,主要從事計(jì)算機(jī)應(yīng)用教學(xué)和研究工作. E-mail:yjp70@126.com

猜你喜歡
用戶系統(tǒng)企業(yè)
Smartflower POP 一體式光伏系統(tǒng)
企業(yè)
企業(yè)
企業(yè)
WJ-700無(wú)人機(jī)系統(tǒng)
ZC系列無(wú)人機(jī)遙感系統(tǒng)
敢為人先的企業(yè)——超惠投不動(dòng)產(chǎn)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
主站蜘蛛池模板: 亚洲色图在线观看| 日韩色图区| 久久国语对白| 99草精品视频| 高清无码手机在线观看| 日本人妻丰满熟妇区| 欧美自慰一级看片免费| 国内精品手机在线观看视频| 在线观看免费黄色网址| 久久久久免费看成人影片| 1级黄色毛片| 亚洲三级色| 麻豆国产精品| 日本欧美在线观看| 国产中文一区二区苍井空| 无码中文字幕加勒比高清| 男女性午夜福利网站| 狠狠色噜噜狠狠狠狠色综合久| 制服无码网站| 无码福利视频| 99激情网| 波多野结衣亚洲一区| 国产欧美日韩va另类在线播放| 亚洲成人网在线观看| 亚洲精品在线影院| 69综合网| 国产激爽大片在线播放| 亚洲永久色| 日韩麻豆小视频| 色哟哟国产精品| 中文字幕伦视频| 91色国产在线| 亚洲婷婷在线视频| 国产制服丝袜91在线| 亚洲色大成网站www国产| 青青青视频91在线 | 国产精品香蕉在线观看不卡| 日韩在线欧美在线| 国产成人高清精品免费5388| 国产精品hd在线播放| 三上悠亚精品二区在线观看| 精品伊人久久大香线蕉网站| 精品人妻无码中字系列| 91 九色视频丝袜| 97狠狠操| 在线一级毛片| 免费一级α片在线观看| 一本久道热中字伊人| 午夜无码一区二区三区| 毛片视频网址| 亚洲精品手机在线| 欧美在线免费| 国模私拍一区二区| 香蕉国产精品视频| av一区二区三区高清久久| 无码精品国产VA在线观看DVD| 色哟哟国产精品一区二区| 日韩欧美高清视频| 亚洲中字无码AV电影在线观看| 亚洲精品自产拍在线观看APP| 亚洲美女视频一区| 国产精品一区二区不卡的视频| 精品国产乱码久久久久久一区二区| 亚洲Va中文字幕久久一区| 高清不卡毛片| 99久久国产综合精品女同| 99在线观看精品视频| 国产免费看久久久| 亚洲日韩日本中文在线| 日韩大乳视频中文字幕| 日韩欧美国产综合| 中文字幕第4页| 国产后式a一视频| 色婷婷成人| 国产成人一区二区| 国产精品亚洲欧美日韩久久| 国产成人禁片在线观看| 久综合日韩| 美女扒开下面流白浆在线试听| 狠狠干综合| 毛片在线看网站| 女人18毛片一级毛片在线|