互聯(lián)網時代下,“即時通訊”(簡稱IM)已經是系統(tǒng)平臺最簡單的社交功能,用戶更個性化的需求及大量通訊用戶的涌入催生出更復雜的IM技術架構體系,IM區(qū)域人工與智能的相結合,讓人與人之間的距離。企業(yè)互聯(lián)網下,只有將技術與業(yè)務結合在一起,才可以使“即時通訊”服務在企業(yè)中發(fā)揮的作用最大化。用友UAP平臺中提供的IM功能已經將企業(yè)業(yè)務中所出現的常用信息處理場景進行了人工與智能方式的窮舉,并提煉出適用于企業(yè)集成的技術解決方案。
主流IM設計按平臺可以劃分為桌面IM、移動IM和WEB IM。從協(xié)議和連接實現角度劃分可分為基于長連接的IM和基于短連接的IM。這兩種實現方式也衍生出很多適用于不同場景實現方案,例如:模擬長連接、特定協(xié)議連接等。桌面IM、移動IM實現方式相對固定,往往無法實現跨平臺通訊。WEB IM跨平臺能力強并具有發(fā)展前景,但性能相對一般。因此,無論是桌面IM,還是移動IM和WEB IM,都存在一定的短板需要解決。
桌面IM和移動IM:架構設計非常靈活,可以基于TCP 或 UDP之上編寫自己定義的應用層協(xié)議,傳輸與部署效率高,開發(fā)者如需構建網絡服務主要精力應放在線程控制、編解碼、鎖與資源、粘包丟包、壓縮與加密、內存管理等問題上,同時業(yè)務上需要支持可插拔機制,下表為設計通訊服務首要考慮內容。
瀏覽器處理能力和終端性能的提升使WEB IM 作為IM獨立的分支作用日趨重要,碎片化的WEB IM插件可以鍥入到任意WEB平臺中實現信息流通。目前主流WEB IM的設計包括四種模式:
RIA Socket、WEB Socket、Ajax輪詢、Long Polling & Comet。服務端常見開源框架包括Comet4J、Pushlet、Dwr。
以上IM實現都受限于特定場景,除了桌面IM、移動IM和WEB IM,特定協(xié)議在開發(fā)中也起到關鍵要素。拋開TCP、UDP和應用層的HTTP協(xié)議,目前主流用于IM協(xié)議的還包括XMPP和MQTT 兩種,基于這兩種協(xié)議實現的項目均已證明足以穩(wěn)定支撐大量用戶接入并進行通訊,下面是對這兩種協(xié)議流程實現的示意:
服務端 <--> XMPP協(xié)議 <--> 客戶端
客戶端 --> 服務端 --> RSMB隊列服務器 --> 客戶端
談了如此多IM的實現方式,不難發(fā)現各有千秋。目前企業(yè)系統(tǒng)都在向互聯(lián)網化轉型,希望將所有和企業(yè)業(yè)務相關的信息都收集起來,以發(fā)現更多商機。那么社交化是不可獲取的一個部分。
企業(yè)即時通訊不再是新技術,而我們今天要說的是,如何在互聯(lián)網趨勢下,使企業(yè)即時通訊與時俱進,和企業(yè)不斷變化的業(yè)務相聯(lián)系,和不斷發(fā)展的新技術相結合,讓它發(fā)揮出更大作用。用友UAP計算平臺,在十幾年時間中,一直以服務大型企業(yè)和組織為主,為他們構建企業(yè)信息化平臺。幫10000多家企業(yè)解決了系統(tǒng)集成、數據挖掘、移動開發(fā)、云服務等問題。在企業(yè)互聯(lián)網驅使下,用友UAP又不斷研究企業(yè)社交,為企業(yè)挖掘社交中的大數據。
那么,企業(yè)級“即時通訊”應具備什么能力?如何滿足企業(yè)通訊的訴求呢?用友UAP通過研究和實踐認為:首先,作為IM本身,需要融合桌面IM、移動IM和WEB IM各自特點,技術實現上可以認為通訊服務支持不同終端接入,同時智能適配不同終端的通訊接口;其次,企業(yè)級IM要具備企業(yè)應用的業(yè)務特性,提供業(yè)務接口,滿足企業(yè)業(yè)務流的快速接入;最后,企業(yè)IM要能滿足智能和自身云化,智能包括自然語言處理、語音識別和圖像分析,云化則要滿足自身可以包裹成SAAS應用或BAAS服務。同時,用友UAP提醒,在具體操作上給出以下幾點建議:
第一,在技術實現方案上,要具備一定的通用性,可以通過使用開源體系框架和技術進行快速實現,支持多端適配和自定義協(xié)議。這里可以從客戶端和服務端兩個技術角度去討論,關注的側重點也是不同。
第二,客戶端方面,需具備通訊模塊插件化,保障用戶可以通過不同終端和瀏覽器與其他用戶正常通訊,需要集成桌面IM、移動IM和WEB IM的端實現細節(jié),而其中協(xié)議可以不同,這個需要服務端提供網關進行轉義。
第三,在服務端,重點考慮接入網關的設計和處理高并發(fā)高TPS的場景。接入網關主要用于適配不同終端的連接方式,滿足數據正常傳輸,同時數據即可是字節(jié)流也可是字符流,數據格式和協(xié)議可自定義。在處理高并發(fā)高TPS場景時,行業(yè)內已經給出了非常多的技術解決方案,通過框架可以輕易實現進程與線程模型、資源復用、異步處理等核心問題,某些編程語言的出現如:Erlang、GoLang、NodeJS也是開發(fā)高性能通訊服務的一個備選方案。
第四,集群通訊場景的構建是企業(yè)級IM服務在規(guī)?;l(fā)展過程中所不可以避免的。傳統(tǒng)單服務器的IM需要進行較大的改造才可以適應集群環(huán)境下的高性能。比如,當用戶A連接服務器A,用戶B連接服務器B時,用戶A給用戶B發(fā)消息,服務器A需要知道用戶B在哪一臺服務器才可以進行通訊,當用戶B在服務器A時可以進行進程線程間通訊,若不在則需要訪問中心注冊服務、調度服務或者自行探測。滿足這樣一個簡單的場景,IM服務也是需要發(fā)生巨大的變化,同時從架構層面上還需增加中間數據管理節(jié)點。
用友UAP就以往的項目經驗發(fā)現,企業(yè)級“即時通訊”是否接地氣主要取決于業(yè)務集成的好壞。IM服務在客戶端需要實現自定義數據擴展機制和數據事件機制,UAP建議,開發(fā)者可以基于“信息流”中的關鍵字將數據封裝成功能,并為功能注冊處理機制。關鍵字的提供主要由服務端提供,模型可以從文字、視頻、音頻和圖片中挖掘抽取。舉一個恰當的場景,用戶之間進行聊天的過程中,用戶A想讓用戶B處理一張自己的單據,這時候用戶A的IM客戶端會自動關聯(lián)本地或遠程單據資源使用戶完成單據處理。通過數據擴展和數據事件機制,IM終端將成為了用戶日常主要辦公的平臺。
企業(yè)互聯(lián)網下,只有將技術與業(yè)務看似緊密又不緊密的放在一起,才可以使“即時通訊”服務在企業(yè)中發(fā)揮的作用最大化。用友UAP平臺中提供的IM功能已經將企業(yè)業(yè)務中所出現的常用信息處理場景進行了人工與智能方式的窮舉,并提煉出適用于企業(yè)集成的技術解決方案。
手機網站
微信咨詢