概念
融合通信是指,把計(jì)算機(jī)技術(shù)與傳統(tǒng)通信技術(shù)融合一體的新通信模式补胚,融合計(jì)算機(jī)網(wǎng)絡(luò)與傳統(tǒng)通信網(wǎng)絡(luò)在一個(gè)網(wǎng)絡(luò)平臺上码耐,實(shí)現(xiàn)電話、傳真糖儡、數(shù)據(jù)傳輸伐坏、音視頻會議、呼叫中心握联、即時(shí)通信等眾多應(yīng)用服務(wù)桦沉。
業(yè)務(wù)平臺功能架構(gòu)
核心開發(fā)框架模型
框架模型概念說明
核心基礎(chǔ)框架模型主要描述下述幾個(gè)概念及概念之間的關(guān)系,自下至上分別為:
■ OSGI:一個(gè)基于Java語言的服務(wù)(業(yè)務(wù))規(guī)范金闽,是一個(gè)面向Java的動(dòng)態(tài)模型系統(tǒng)纯露,為模塊化應(yīng)用的開發(fā)定義了一個(gè)基礎(chǔ)框架。簡單的說代芜,通過OSGI可以在后臺在線對應(yīng)用系統(tǒng)組件進(jìn)行安裝埠褪、升級或卸載,而無需打斷設(shè)備(服務(wù)器)的正常運(yùn)行挤庇。
■ Infrastructure Framework:實(shí)現(xiàn)了與OSGI的高度解耦钞速。從開發(fā)者層面來看,它完全屏蔽了OSGI層面的技術(shù)實(shí)現(xiàn)嫡秕,即開發(fā)人員在不需要關(guān)注復(fù)雜的OSGI技術(shù)的情況下渴语,仍可做高層設(shè)計(jì)。同時(shí)昆咽,“Infrastructure Framework”又具備OSGI的功能驾凶,如服務(wù)的管理、注冊等掷酗。另外调违,基于“Infrastructure Framework”之上的其他業(yè)務(wù)Bundle在開發(fā)過程中也不需要依賴OSGI依賴了,框架更加簡潔泻轰。
■ Host:一個(gè)JVM實(shí)例只啟動(dòng)一個(gè)Host技肩,映射到物理主機(jī)(或虛擬主機(jī));Host的子元素是Server浮声。
■ Server:表示軟件維度上的一個(gè)子系統(tǒng)亩鬼,主要負(fù)責(zé)定義主處理流程殖告,不管具體業(yè)務(wù)功能的實(shí)現(xiàn)。一個(gè)Host上可以啟動(dòng)1~N個(gè)Server雳锋;在最嚴(yán)格的分布式部署要求下,一個(gè)Host上只啟動(dòng)一個(gè)Server羡洁。每個(gè)Server都有自己獨(dú)立的配置信息庫玷过;Server運(yùn)行時(shí)會根據(jù)配置文件信息主動(dòng)申明自己需要裝配的Components,因此其運(yùn)行時(shí)的子元素是Component筑煮。
■ Component:從職責(zé)分配的角度上來看辛蚊,上面已經(jīng)講到Server主要負(fù)責(zé)定義主處理流程,那么在此真仲,Component則負(fù)責(zé)流程中的具體(業(yè)務(wù)功能)實(shí)現(xiàn)袋马。同一個(gè)Component可以為多個(gè)不同的Server服務(wù)。每個(gè)被裝載到Server中的Component實(shí)例秸应,都擁有自己獨(dú)立的配置(來自Server的配置信息庫)虑凛,實(shí)現(xiàn)了同一Component在不同Server中的嚴(yán)格相互隔離。
■ Plugin:從意義上看软啼,Plugin類似于OSGI的bundle概念桑谍,為系統(tǒng)的模塊化設(shè)計(jì)提供支撐。一個(gè)Plugin可以提供至多1個(gè)Server和至少0個(gè)Component的實(shí)現(xiàn)祸挪,可以理解為Plugin是裝盛Server實(shí)現(xiàn)和Component實(shí)現(xiàn)的容器锣披。從設(shè)計(jì)角度來看,目前主要有以下幾種類型的Plugin:
(1) Server Plugin:提供Server功能實(shí)現(xiàn)的Plugin贿条。
(2) Infrastructure Plugin:提供系統(tǒng)基礎(chǔ)功能的Plugin雹仿,如IM系統(tǒng)中的Connector、File整以、Cache等基礎(chǔ)功能的Plugin胧辽。
(3) Protocol Plugin:提供協(xié)議解析器(Parser)和協(xié)議處理類(Protocol Processor)的Plugin,如Message協(xié)議解析悄蕾、Presence協(xié)議解析票顾、Jingle協(xié)議解析等。
■ Repository:可以理解為Plugin管理器帆调,管理著全部的Plugin奠骄,并讀取Plugin中的Components含鳞,然后依據(jù)Server中的配置信息芹务,將單個(gè)的Component注入到對應(yīng)的Server中鸭廷。
特別說明:核心基礎(chǔ)框架模型中的Server不會與Repository中的Plugin直接打交道辆床,而是通過靈活的配置信息讼载,將合適的Component注入到對應(yīng)的Server中中跌。
■ MessageChannel:基于架構(gòu)設(shè)計(jì)的一致性和對稱性,在Server與Server之間傳遞的信息一喘,將被統(tǒng)一封裝到Message對象中嗜暴。MessageChannel則是連接各個(gè)Server之間的通道,接收灼伤、傳遞和處理封裝好的Message對象触徐。MessageChannel可以有多種不同的實(shí)現(xiàn),以適應(yīng)苛刻的通訊要求狐赡。
核心開發(fā)框架的插件機(jī)制
框架插件機(jī)制的說明:
核心框架采用了插件注入機(jī)制撞鹉,即按需裝配插件。從核心框架的設(shè)計(jì)來看颖侄,Server是負(fù)責(zé)系統(tǒng)的主處理流程鸟雏,本身不具備業(yè)務(wù)處理的功能。換言之览祖,Server啟動(dòng)后孝鹊,Server中沒有內(nèi)容,但是它會發(fā)出通知展蒂,告訴框架它需要裝配哪些Component才能工作又活。
Repository,相當(dāng)于一個(gè)Plugin管理器锰悼,其中包含了各種功能的Plugin柳骄,并統(tǒng)一管理這些Plugin;在系統(tǒng)運(yùn)行時(shí)箕般,它會掃描其包含的全部Plugin信息耐薯,并啟動(dòng)這些Plugin。從設(shè)計(jì)角度來看体谒,(開發(fā)時(shí))我們又人為的把一個(gè)個(gè)大的功能拆分成若干個(gè)小的功能點(diǎn)抒痒,這就是Component了,以便于開發(fā)和維護(hù)。Plugin會監(jiān)聽其包含的Component的一系列動(dòng)作奖唯,并廣播其能提供的Component服務(wù)丰捷。
在核心框架的作用下,Server拿到了其需要的Component實(shí)例停巷,于是就將這些Component實(shí)例動(dòng)態(tài)地裝配到Server中畔勤,Server也就能提供相應(yīng)的服務(wù)了。當(dāng)Plugin停止時(shí)缸榛,Server就相應(yīng)地卸載掉已經(jīng)裝配了的Component内颗,也就停止了相應(yīng)的服務(wù)。整個(gè)過程都是動(dòng)態(tài)發(fā)生了负懦,只要相應(yīng)的配置文件正確系吭,不需要人工干預(yù)肯尺,核心框架會自動(dòng)完成這些工作。
分布式實(shí)現(xiàn)框架
介紹分布式實(shí)現(xiàn)之前氓仲,有必要說明一下本系統(tǒng)的消息處理流程敬扛。系統(tǒng)收到一條消息后,對其的處理步驟是固定的急侥,依次是:stream(接入)缆巧、parse(解析)陕悬、process(處理)、route(路由)拼岳,每個(gè)步驟都對應(yīng)一個(gè)server:steamer、parser耐版、processor古瓤、router落君。每個(gè)server有兩個(gè)固定組件:DataReceiver(數(shù)據(jù)接收器)、MessageChannel(數(shù)據(jù)發(fā)送通道)朝氓。每個(gè)server從DataReceiver中接收數(shù)據(jù),處理完成后君丁,通過其MessageChannel發(fā)送給下級server的DataReceiver。消息處理的流程如下圖所示:
本系統(tǒng)分布式實(shí)現(xiàn)的基本思想為:將負(fù)責(zé)消息處理不同階段的server部署到分布式的各個(gè)獨(dú)立節(jié)點(diǎn)上印蔗,每個(gè)獨(dú)立節(jié)點(diǎn)間使用高速通道互聯(lián)华嘹,且負(fù)責(zé)每個(gè)消息處理的節(jié)點(diǎn)會有多個(gè)。以此來提高系統(tǒng)對消息的并行處理能力薛躬。
系統(tǒng)中與分布式實(shí)現(xiàn)有關(guān)的bundle為:com.cmcc.olive.server.integration.distribution艰管、
com.cmcc.olive.server.management。com.cmcc.olive.server.integration.distribution實(shí)現(xiàn)分布式版本的DataReceiver和MessageChannel骡澈。com.cmcc.olive.server.management實(shí)現(xiàn)了分布式節(jié)點(diǎn)的功能慎璧。
負(fù)責(zé)消息處理不同階段的server(如pipe.streamer厌处、pipe.parser)可以根據(jù)不同的server配置加載不同版本的DataReceiver阔涉、MessageChannel。當(dāng)對server配置了deployment.type=distributed 時(shí)椭住,server將加載分布式版本的組件實(shí)現(xiàn)(包括DataReceiver京郑、MessageChannel);當(dāng)對server配置了deployment.type=local或沒有設(shè)置deployment.type屬性時(shí)户魏,server將加載本地版本的組件實(shí)現(xiàn)。
業(yè)務(wù)平臺邏輯架構(gòu)
系統(tǒng)邏輯架構(gòu)說明:
核心基礎(chǔ)框架從功能層面將整個(gè)系統(tǒng)劃分為三大功能塊幢码,分別是Host功能塊症副、Server功能塊和Repository功能塊闹啦。Host功能塊上可以運(yùn)行1~N個(gè)邏輯Server窍奋,在最嚴(yán)格的分布式部署要求下纺酸,一個(gè)Host上只運(yùn)行一個(gè)Server碎紊,并且支持動(dòng)態(tài)的啟停Server。Repository功能塊則包含若干個(gè)功能Plugin痴鳄,Plugin由若干個(gè)Component組合而成,其中Component是主要的功能邏輯載體虽惭,以組件的形式對外提供服務(wù)。
業(yè)務(wù)平臺主處理流程
系統(tǒng)整體功能與交換流程說明:
整體功能與流程架構(gòu)圖描述了系統(tǒng)整體的邏輯功能與流程控制匆笤,側(cè)重展現(xiàn)了各個(gè)模塊之間的劃分以及模塊間的交互關(guān)系。
從水平角度看(也可以理解為系統(tǒng)的運(yùn)行視圖)咆课,Server定義了系統(tǒng)的主處理流程喇澡;從垂直角度看(也可以理解為開發(fā)視圖)晴玖,Plugin定義了與功能或流程相關(guān)的插件。這樣從水平和垂直兩個(gè)不同的維度對系統(tǒng)進(jìn)行定義和劃分榨惰,便于開發(fā)人員在開發(fā)時(shí)對系統(tǒng)功能和流程的理解琅催,也便于開發(fā)時(shí)的維護(hù)。
那么缠黍,系統(tǒng)各模塊劃分、功能及關(guān)系說明如下:
Stream Server
請求連接服務(wù)器贸典,接收用戶請求并與之協(xié)商加密策略、壓縮方式建立安全通信通道妒挎,可接受TCP酝掩、HTTP等各種連接請求积蜻。
Auth Server
認(rèn)證服務(wù)器竿拆,連接的用戶與服務(wù)器協(xié)商加密機(jī)制,并通過Auth Server驗(yàn)證御板,驗(yàn)證通過后用戶Session信息保存在Connection Session服務(wù)器。后續(xù)的XML流將在此可靠通道下傳遞笙各。
Parsing Server
XML解析服務(wù)器杈抢,業(yè)務(wù)通信過程中的XML數(shù)據(jù)流經(jīng)由Parsing Server解析,分為Presence歼捐、Message豹储、IQ慨灭、Jingle等幾種類型氧骤,解析成Java能夠識別的業(yè)務(wù)對象刽锤,然后交給協(xié)議處理服務(wù)器處理并思。
Protocol Processing Server
XMPP核心業(yè)務(wù)處理模塊以及擴(kuò)展服務(wù)模塊,最終的業(yè)務(wù)處理服務(wù)都在這里输涕,還包括與外部服務(wù)器(例如流媒體服務(wù)器)的對接通信,包含的功能有:
Presence status:在線狀態(tài)檐什,用戶在線狀態(tài)存取
Subscription:訂閱,好友在線狀態(tài)查找
Realtime message:實(shí)時(shí)消息
Offline message:離線消息
Register:用戶注冊
Roster:花名冊烫葬,用戶好友相關(guān)信息
Search:用戶搜索
MUC:群組搭综、群組聊天相關(guān)
File Transfer:對文件傳輸?shù)闹С?/p>
Service Discovery:服務(wù)發(fā)現(xiàn),基于OSGI服務(wù)注冊與查找相關(guān)支持
Persistent:數(shù)據(jù)持久化支持
Jingle:XMPP的擴(kuò)展協(xié)議蒋歌,通過Jingle可以實(shí)現(xiàn)點(diǎn)對點(diǎn)的多媒體控制
Jingle Audio via RTP:音頻支持
Jingle Video via RTP:視頻支持
Jingle ICE:Jingle交互式連接建立
Jingle STUN:Jingle地址映射相關(guān)支持
Message:消息
vCard:名片
Router Server
消息路由服務(wù)器,負(fù)責(zé)消息的路由查找及流轉(zhuǎn)府框。
Session Server
會話管理院峡,管理用戶Session照激、網(wǎng)絡(luò)連接Session服務(wù)器Session实抡。當(dāng)用戶發(fā)起請求建立連接通道后,會將連接信息保存在Session Server啄清,后續(xù)的XMPP通訊均基于該Session辣卒。XMPP核心及擴(kuò)展服務(wù)模塊的會話也由該服務(wù)器管理。
Management Server
管理服務(wù)器啡莉,系統(tǒng)中的所有模塊都是基于OSGI組件化的服務(wù)咧欣,OSGI組件將注冊到組件管理服務(wù)器,業(yè)務(wù)模塊需要用到某個(gè)組件時(shí)從組件管理服務(wù)器查找哮兰,并負(fù)責(zé)全局的配置信息管理及相關(guān)的業(yè)務(wù)監(jiān)控。
Streaming Media Server
流媒體服務(wù)器囤躁,實(shí)時(shí)語音和視頻通話狸演,處理VOIP相關(guān)。相對獨(dú)立的模塊满哪,系統(tǒng)擴(kuò)展協(xié)議Jingle與流媒體服務(wù)器交互。
Data Access Server
數(shù)據(jù)訪問娇妓,對系統(tǒng)業(yè)務(wù)的數(shù)據(jù)支撐只估,負(fù)責(zé)數(shù)據(jù)的持久化和訪問。支持關(guān)系數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫(NoSQL)兩種類型的數(shù)據(jù)庫的數(shù)據(jù)存取吁脱。
Cache Server
提供Key-Value型的高速緩存服務(wù)豫喧,支持任意對象的存儲。
File Server
統(tǒng)一的文件存儲接口缕棵,存儲用戶上傳的各式各樣的文件篙程,并提供HTTP方式的文件訪問服務(wù)。
Gateway Server
外圍系統(tǒng)接入的統(tǒng)一入口渴肉,方便外圍系統(tǒng)與本多維通訊系統(tǒng)進(jìn)行數(shù)據(jù)交互仇祭。
VOIP子系統(tǒng)架構(gòu)(整體)
融合通信系統(tǒng)要求支持實(shí)時(shí)的語音、視頻通話(即VOIP),對此寂屏,我們提出兩種架構(gòu)解決方案以實(shí)現(xiàn)對VOIP功能的支持,分別是“通過流媒體服務(wù)器中轉(zhuǎn)”和“點(diǎn)對點(diǎn)”這兩種架構(gòu)方案考廉。
通過流媒體服務(wù)器中轉(zhuǎn)
通過流媒體服務(wù)器中轉(zhuǎn)的VOIP方案的流程如下:
(1) 主叫方發(fā)起通話請求:手機(jī)客戶端1(以下稱“主叫方”)準(zhǔn)備發(fā)起與手機(jī)客戶端2(以下稱“被叫方”)之間的VOIP通話請求;
(2) XMPP處理請求:實(shí)時(shí)通訊服務(wù)器收到主叫方的VOIP通話請求涮坐,查詢被叫方是否滿足進(jìn)行實(shí)時(shí)VOIP通話的要求(至少要求在線)。被叫方不在線捷雕,返回結(jié)果給主叫方,可以結(jié)束本次通話請求了浦译;被叫方在線淆衷,則進(jìn)入下一步流程處理甚带。
(3) 被叫方響應(yīng)通話請求:實(shí)時(shí)通訊服務(wù)器將主叫方的通話請求推送到被叫方晴氨,被叫方手機(jī)響鈴。被叫方在一段時(shí)間內(nèi)未作任何操作或直接掛接本次通話請求枝哄,則服務(wù)器通知主叫方可以結(jié)束本次通話請求了侨赡;被叫方接受主叫方的通話請求羊壹,則進(jìn)入下一步流程處理。
(4)XMPP+Jingle協(xié)商VOIP會話的建立:
與主叫方的協(xié)商(RTP協(xié)議):通知主叫方可以開始錄制語音或視頻了主慰,并采用指定的編碼格式對實(shí)時(shí)錄制的音頻或視頻進(jìn)行編碼鲫售,然后將編碼后的數(shù)據(jù)發(fā)送到流媒體服務(wù)器的指定端口A上共螺。
與被叫方的協(xié)商(RTP協(xié)議):通知被叫方可以去流媒體服務(wù)器的指定端口B上取回?cái)?shù)據(jù),并采用指定的編碼格式對實(shí)時(shí)取回的數(shù)據(jù)進(jìn)行解碼情竹。
當(dāng)然藐不,對媒體的編解碼工作可以交由流媒體服務(wù)器來做,但這樣對移動(dòng)客戶端來說,可能比較耗流量涎嚼。
(5) 主叫方建立VOIP會話:開始錄制音頻或視頻,并按照規(guī)定上傳到流媒體服務(wù)器上。
(6) 被叫方建立VOIP會話:按照規(guī)定從流媒體服務(wù)器上下載數(shù)據(jù)曾沈,在本地播放音頻或視頻卧土。
(7)VOIP通話過程控制:在主叫方和被叫方進(jìn)行VOIP通話的期間,實(shí)時(shí)通訊服務(wù)器仍不斷地與主叫方和被叫方進(jìn)行數(shù)據(jù)的交換,如權(quán)限的控制或详、如何計(jì)費(fèi)等澎迎,直到本次VOIP通話完全結(jié)束各吨。
點(diǎn)對點(diǎn)
數(shù)據(jù)存取架構(gòu)
數(shù)據(jù)庫模型采用關(guān)系型數(shù)據(jù)庫+NoSQL徙融,頻繁訪問的數(shù)據(jù)采用NoSQL數(shù)據(jù)庫進(jìn)行數(shù)據(jù)快速存取渤早,重要數(shù)據(jù)积瞒、非頻繁訪問數(shù)據(jù)采用關(guān)系型數(shù)據(jù)庫存儲嘲更。
數(shù)據(jù)緩存架構(gòu)
緩存技術(shù)嗤攻,根據(jù)系統(tǒng)需要頻繁訪問的數(shù)據(jù)采用緩存提高訪問速度房交,可支持對象級的緩存透揣,如任意的Java Object楔脯、圖片等類型的數(shù)據(jù)皆串。共享緩存也提供各服務(wù)器節(jié)點(diǎn)之間的數(shù)據(jù)共享。
網(wǎng)絡(luò)拓?fù)浼軜?gòu)
網(wǎng)絡(luò)拓?fù)浼軜?gòu)說明:
外層是互聯(lián)網(wǎng)漱凝,終端設(shè)備比肄、第三方系統(tǒng)撮竿、其他外部網(wǎng)關(guān)通過GPRS/3G/4G等網(wǎng)絡(luò)與本系統(tǒng)通訊
互聯(lián)網(wǎng)和內(nèi)部網(wǎng)絡(luò)之間設(shè)主備兩套防火墻枯跑,防火墻內(nèi)架設(shè)主備兩套三層/四層交換機(jī)
內(nèi)網(wǎng)架設(shè)F5負(fù)載,各服務(wù)器節(jié)點(diǎn)與F5設(shè)備相連
系統(tǒng)邊界
服務(wù)端關(guān)鍵流程
異步聊天流程
異步聊天流程:
客戶端如果消息內(nèi)容非文本即上傳文件服務(wù)器,返回上傳路徑。
客戶端處理上傳路徑。
客戶端向平臺接入服務(wù)發(fā)起異步聊天請求震庭。
接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)醋界。
解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象秽澳。
解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到消息服務(wù)浇垦。
消息服務(wù)向數(shù)據(jù)存取服務(wù)查找用戶韭寸,返回用戶信息憨颠。
消息服務(wù)查找結(jié)果邏輯處理聂儒。
消息服務(wù)向數(shù)據(jù)存取服務(wù)存儲消息,返回存儲結(jié)果腹尖。
消息服務(wù)存儲結(jié)果邏輯處理。
消息服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)帝牡。
路由服務(wù)處理消息路由娘香,轉(zhuǎn)發(fā)消息豺憔,到接入服務(wù)憎兽。
接入服務(wù)響應(yīng)異步聊天請求到客戶端。
消息服務(wù)通知朋友消息邏輯處理嚼摩。
消息服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)躏精。
路由服務(wù)處理消息路由导俘,轉(zhuǎn)發(fā)消息泣崩,到接入服務(wù)少梁。
接入服務(wù)通知朋友消息到朋友客戶端。
朋友客戶端如果查看非文本消息矫付,請求到文件服務(wù)器下載文件凯沪。
文件服務(wù)器讀取下載內(nèi)容。返回到朋友客戶端买优。
實(shí)時(shí)通話流程
實(shí)時(shí)通話流程:
客戶端向平臺接入服務(wù)發(fā)起實(shí)時(shí)通話請求妨马。
接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)。
解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象杀赢。
解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到VOIP業(yè)務(wù)處理服務(wù)烘跺。
VOIP業(yè)務(wù)處理服務(wù)向VOIP服務(wù)器發(fā)起VOIP請求。
VOIP服務(wù)器業(yè)務(wù)處理脂崔。返回VOIP處理結(jié)果滤淳。
VOIP業(yè)務(wù)處理服務(wù)邏輯處理VOIP處理結(jié)果。
VOIP業(yè)務(wù)處理服務(wù)向數(shù)據(jù)存取服務(wù)發(fā)起實(shí)時(shí)通話存儲砌左,返回存儲結(jié)果脖咐。
消息服務(wù)存儲結(jié)果邏輯處理。
消息服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)汇歹。
路由服務(wù)處理消息路由文搂,轉(zhuǎn)發(fā)消息,到接入服務(wù)秤朗。
接入服務(wù)響應(yīng)異步聊天請求到客戶端煤蹭。
客戶端處理響應(yīng)。
客戶端連接VOIP服務(wù)器取视。
VOIP業(yè)務(wù)處理服務(wù)通知朋友消息邏輯處理硝皂。
VOIP業(yè)務(wù)處理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)。
路由服務(wù)處理消息路由作谭,轉(zhuǎn)發(fā)消息稽物,到接入服務(wù)。
接入服務(wù)通知朋友消息到朋友客戶端折欠。
朋友客戶端處理響應(yīng)贝或。
朋友客戶端連接VOIP服務(wù)器吼过。
語音信箱流程
語音信箱流程:
客戶端如果添加語音錄音上傳文件服務(wù)器,返回上傳路徑咪奖。
客戶端處理上傳路徑盗忱。
客戶端向平臺接入服務(wù)發(fā)起語音信箱請求。
接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)羊赵。
解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象趟佃。
解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到用戶管理服務(wù)。
用戶管理服務(wù)向數(shù)據(jù)存取服務(wù)操作語音信箱昧捷,返回用戶信息闲昭。
用戶管理服務(wù)操作結(jié)果邏輯處理。
用戶管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)靡挥。
路由服務(wù)處理消息路由序矩,轉(zhuǎn)發(fā)消息,到接入服務(wù)跋破。
接入服務(wù)響應(yīng)語音信箱請求到客戶端簸淀。
用戶管理服務(wù)通知朋友消息邏輯處理。
用戶管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)幔烛。
路由服務(wù)處理消息路由啃擦,轉(zhuǎn)發(fā)消息,到接入服務(wù)饿悬。
接入服務(wù)通知朋友消息到朋友客戶端令蛉。
朋友客戶端主動(dòng)到文件服務(wù)器下載語音。
文件服務(wù)器讀取下載內(nèi)容狡恬。返回到朋友客戶端珠叔。
匹配朋友到朋友列表流程
匹配朋友到朋友列表流程:
客戶端向平臺接入服務(wù)發(fā)起匹配朋友請求。
接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)弟劲。
解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象祷安。
解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到用戶管理服務(wù)。
用戶管理服務(wù)向數(shù)據(jù)存取服務(wù)查找朋友列表兔乞,返回朋友數(shù)據(jù)汇鞭。
用戶管理服務(wù)查找結(jié)果邏輯處理。
用戶管理服務(wù)向數(shù)據(jù)存取服務(wù)匹配聯(lián)系人庸追,返回匹配結(jié)果霍骄。
用戶管理服務(wù)匹配結(jié)果邏輯處理。
用戶管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)淡溯。
路由服務(wù)處理消息路由读整,轉(zhuǎn)發(fā)消息,到接入服務(wù)咱娶。
接入服務(wù)響應(yīng)匹配朋友請求到客戶端米间。
推送朋友到朋友列表流程
推送朋友到朋友列表流程:
用戶管理服務(wù)推送朋友處理强品。
用戶管理服務(wù)向數(shù)據(jù)存取服務(wù)匹配聯(lián)系人,返回朋友數(shù)據(jù)屈糊。
用戶管理服務(wù)查找結(jié)果邏輯處理的榛。
用戶管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)。
路由服務(wù)處理消息路由另玖,轉(zhuǎn)發(fā)消息困曙,到接入服務(wù)表伦。
接入服務(wù)推送朋友到客戶端谦去。
客戶端處理推送的朋友。
查找新朋友流程
查找新朋友流程:
客戶端向平臺接入服務(wù)發(fā)起查找新朋友請求蹦哼。
接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)鳄哭。
解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象。
解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到用戶管理服務(wù)纲熏。
用戶管理服務(wù)向數(shù)據(jù)存取服務(wù)匹配聯(lián)系人妆丘,返回匹配結(jié)果。
用戶管理服務(wù)匹配結(jié)果邏輯處理局劲。
用戶管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)勺拣。
路由服務(wù)處理消息路由,轉(zhuǎn)發(fā)消息鱼填,到接入服務(wù)药有。
接入服務(wù)響應(yīng)查找新朋友請求到客戶端。
推送新朋友流程
推送新朋友流程:
用戶管理服務(wù)推送圈子新朋友處理苹丸。
用戶管理服務(wù)向數(shù)據(jù)存取服務(wù)查找圈友愤惰,返回圈友數(shù)據(jù)。
用戶管理服務(wù)查找結(jié)果邏輯處理赘理。
用戶管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)宦言。
路由服務(wù)處理消息路由,轉(zhuǎn)發(fā)消息商模,到接入服務(wù)奠旺。
接入服務(wù)推送新朋友到客戶端。
客戶端處理新朋友施流。
邀請朋友流程
邀請朋友流程:
客戶端向平臺接入服務(wù)發(fā)起邀請朋友請求响疚。
接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)。
解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象嫂沉。
解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到用戶管理服務(wù)稽寒。
用戶管理服務(wù)向數(shù)據(jù)存取服務(wù)查找用戶,返回用戶信息趟章。
用戶管理服務(wù)查找結(jié)果邏輯處理杏糙。
用戶管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)慎王。
路由服務(wù)處理消息路由,轉(zhuǎn)發(fā)消息宏侍,到接入服務(wù)赖淤。
接入服務(wù)響應(yīng)邀請朋友請求到客戶端。
用戶管理服務(wù)向短信服務(wù)器發(fā)起邀請朋友短信谅河。
短信服務(wù)器發(fā)送邀請短信咱旱,到被邀者。
個(gè)性卡片流程
查看個(gè)性卡片流程:
客戶端向平臺接入服務(wù)發(fā)起查看個(gè)性卡片請求绷耍。
接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)吐限。
解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象。
解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到用戶管理服務(wù)褂始。
用戶管理服務(wù)向數(shù)據(jù)存取服務(wù)查找用戶個(gè)性卡片诸典,返回用戶個(gè)性卡片。
用戶管理服務(wù)查找結(jié)果邏輯處理崎苗。
用戶管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)狐粱。
路由服務(wù)處理消息路由,轉(zhuǎn)發(fā)消息胆数,到接入服務(wù)肌蜻。
接入服務(wù)響應(yīng)異步聊天請求到客戶端。
客戶端如果查看非文本消息必尼,請求到文件服務(wù)器下載文件蒋搜。
文件服務(wù)器讀取下載內(nèi)容。返回到客戶端胰伍。
創(chuàng)建圈子流程
創(chuàng)建圈子流程:
客戶端向平臺接入服務(wù)發(fā)起創(chuàng)建圈子請求齿诞。
接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)。
解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象骂租。
解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到群組管理服務(wù)祷杈。
群組管理服務(wù)向數(shù)據(jù)存取服務(wù)創(chuàng)建圈子,返回存儲結(jié)果渗饮。
群組管理服務(wù)存儲結(jié)果邏輯處理但汞。
群組管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)。
路由服務(wù)處理消息路由互站,轉(zhuǎn)發(fā)消息私蕾,到接入服務(wù)。
接入服務(wù)響應(yīng)異步聊天請求到客戶端胡桃。
群組管理服務(wù)通知朋友消息邏輯處理踩叭。
群組管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)。
路由服務(wù)處理消息路由,轉(zhuǎn)發(fā)消息容贝,到接入服務(wù)自脯。
接入服務(wù)通知已加入圈子到被邀者客戶端。
發(fā)布動(dòng)態(tài)流程
發(fā)布動(dòng)態(tài)流程:
客戶端如果動(dòng)態(tài)內(nèi)容非文本即上傳文件服務(wù)器斤富,返回上傳路徑膏潮。
客戶端處理上傳路徑。
客戶端向平臺接入服務(wù)發(fā)起發(fā)布動(dòng)態(tài)請求满力。
接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)焕参。
解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象。
解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到群組管理服務(wù)油额。
群組管理服務(wù)向數(shù)據(jù)存取服務(wù)發(fā)布動(dòng)態(tài)叠纷,返回存儲結(jié)果。
群組管理服務(wù)存儲結(jié)果邏輯處理悔耘。
群組管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)讲岁。
路由服務(wù)處理消息路由我擂,轉(zhuǎn)發(fā)消息衬以,到接入服務(wù)。
接入服務(wù)響應(yīng)發(fā)布動(dòng)態(tài)請求到客戶端校摩。
群組管理服務(wù)通知朋友消息邏輯處理看峻。
群組管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)。
路由服務(wù)處理消息路由衙吩,轉(zhuǎn)發(fā)消息互妓,到接入服務(wù)。
接入服務(wù)通知圈友消息到圈友客戶端坤塞。
圈友客戶端如果查看非文本消息冯勉,請求到文件服務(wù)器下載文件。
文件服務(wù)器讀取下載內(nèi)容摹芙。返回到圈友客戶端灼狰。
圈友會話流程
圈友會話流程:
客戶端如果圈友會話內(nèi)容非文本即上傳文件服務(wù)器,返回上傳路徑浮禾。
客戶端處理上傳路徑交胚。
客戶端向平臺接入服務(wù)發(fā)起圈友會話請求。
接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)盈电。
解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象蝴簇。
解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到群組管理服務(wù)。
群組管理服務(wù)向數(shù)據(jù)存取服務(wù)圈友會話匆帚,返回存儲結(jié)果熬词。
群組管理服務(wù)存儲結(jié)果邏輯處理。
群組管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)。
路由服務(wù)處理消息路由互拾,轉(zhuǎn)發(fā)消息均践,到接入服務(wù)。
接入服務(wù)響應(yīng)圈友會話請求到客戶端摩幔。
群組管理服務(wù)通知朋友消息邏輯處理彤委。
群組管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)。
路由服務(wù)處理消息路由或衡,轉(zhuǎn)發(fā)消息焦影,到接入服務(wù)。
接入服務(wù)通知圈友消息到圈友客戶端封断。
圈友客戶端如果查看非文本消息斯辰,請求到文件服務(wù)器下載文件。
文件服務(wù)器讀取下載內(nèi)容坡疼。返回到圈友客戶端彬呻。
多人通話流程
實(shí)時(shí)通話流程:
客戶端向平臺接入服務(wù)發(fā)起實(shí)時(shí)通話請求。
接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)柄瑰。
解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象闸氮。
解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到VOIP業(yè)務(wù)處理服務(wù)。
VOIP業(yè)務(wù)處理服務(wù)向VOIP服務(wù)器發(fā)起VOIP請求教沾。
VOIP服務(wù)器業(yè)務(wù)處理蒲跨。返回VOIP處理結(jié)果。
VOIP業(yè)務(wù)處理服務(wù)邏輯處理VOIP處理結(jié)果授翻。
VOIP業(yè)務(wù)處理服務(wù)向數(shù)據(jù)存取服務(wù)發(fā)起實(shí)時(shí)通話存儲或悲,返回存儲結(jié)果。
消息服務(wù)存儲結(jié)果邏輯處理堪唐。
消息服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)巡语。
路由服務(wù)處理消息路由,轉(zhuǎn)發(fā)消息淮菠,到接入服務(wù)男公。
接入服務(wù)響應(yīng)異步聊天請求到客戶端。
客戶端處理響應(yīng)兜材。
客戶端連接VOIP服務(wù)器理澎。
VOIP業(yè)務(wù)處理服務(wù)通知圈友消息邏輯處理。
VOIP業(yè)務(wù)處理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)曙寡。
路由服務(wù)處理消息路由糠爬,轉(zhuǎn)發(fā)消息,到接入服務(wù)举庶。
接入服務(wù)通知朋友消息到圈友客戶端执隧。
圈友客戶端處理響應(yīng)。
圈友客戶端連接VOIP服務(wù)器。
動(dòng)態(tài)互動(dòng)流程
動(dòng)態(tài)互動(dòng)流程:
客戶端如果動(dòng)態(tài)內(nèi)容非文本即上傳文件服務(wù)器镀琉,返回上傳路徑峦嗤。
客戶端處理上傳路徑。
客戶端向平臺接入服務(wù)發(fā)起動(dòng)態(tài)互動(dòng)請求屋摔。
接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)烁设。
解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象。
解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到群組管理服務(wù)钓试。
群組管理服務(wù)向數(shù)據(jù)存取服務(wù)動(dòng)態(tài)互動(dòng)装黑,返回存儲結(jié)果。
群組管理服務(wù)存儲結(jié)果邏輯處理弓熏。
群組管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)恋谭。
路由服務(wù)處理消息路由,轉(zhuǎn)發(fā)消息挽鞠,到接入服務(wù)疚颊。
接入服務(wù)響應(yīng)動(dòng)態(tài)互動(dòng)請求到客戶端。
群組管理服務(wù)通知圈友消息邏輯處理信认。
群組管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)材义。
路由服務(wù)處理消息路由,轉(zhuǎn)發(fā)消息狮杨,到接入服務(wù)母截。
接入服務(wù)通知圈友消息到圈友客戶端。
朋友客戶端如果查看非文本消息,請求到文件服務(wù)器下載文件翩迈。
文件服務(wù)器讀取下載內(nèi)容返十。返回到圈友客戶端。
圈子管理流程
圈子管理流程:
客戶端向平臺接入服務(wù)發(fā)起圈子管理請求。
接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)鉴象。
解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象淆游。
解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到群組管理服務(wù)。
群組管理服務(wù)向數(shù)據(jù)存取服務(wù)圈子管理鳄炉,返回操作結(jié)果谈竿。
群組管理服務(wù)操作結(jié)果邏輯處理劫恒。
群組管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)仿荆。
路由服務(wù)處理消息路由坏平,轉(zhuǎn)發(fā)消息拢操,到接入服務(wù)。
接入服務(wù)響應(yīng)圈子管理請求到客戶端舶替。
群組管理服務(wù)通知圈友消息邏輯處理令境。
群組管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)。
路由服務(wù)處理消息路由顾瞪,轉(zhuǎn)發(fā)消息滓技,到接入服務(wù)讼稚。
接入服務(wù)通知圈友消息到圈友客戶端谈秫。
交換號碼流程
交換號碼流程:
客戶端向平臺接入服務(wù)發(fā)起交換號碼請求雇庙。
接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)。
解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象钉跷。
解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到群組管理服務(wù)弥鹦。
群組管理服務(wù)向數(shù)據(jù)存取服務(wù)查詢用戶信息交換號碼,返回操作結(jié)果爷辙。
群組管理服務(wù)查找結(jié)果交換號碼處理彬坏。
群組管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)。
路由服務(wù)處理消息路由犬钢,轉(zhuǎn)發(fā)消息苍鲜,到接入服務(wù)。
接入服務(wù)響應(yīng)交換號碼請求到客戶端玷犹。
群組管理服務(wù)通知圈友消息邏輯處理。
群組管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)洒疚。
路由服務(wù)處理消息路由歹颓,轉(zhuǎn)發(fā)消息,到接入服務(wù)油湖。
接入服務(wù)通知圈友消息到圈友客戶端巍扛。
圈友客戶端處理交換號碼確認(rèn)。
圈友客戶端向平臺接入服務(wù)發(fā)起交換號碼確認(rèn)請求乏德。
接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)撤奸。
解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象吠昭。
解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到群組管理服務(wù)。
群組管理服務(wù)向數(shù)據(jù)存取服務(wù)存儲好友關(guān)系胧瓜,返回存儲結(jié)果矢棚。
群組管理服務(wù)存儲結(jié)果交換號碼確認(rèn)處理。
群組管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)府喳。
路由服務(wù)處理消息路由蒲肋,轉(zhuǎn)發(fā)消息,到接入服務(wù)钝满。
接入服務(wù)發(fā)送交換號碼確認(rèn)到客戶端兜粘。
客戶端處理交換號碼確認(rèn)。
退出圈子流程
退出圈子流程:
客戶端向平臺接入服務(wù)發(fā)起退出圈子請求弯蚜。
接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)孔轴。
解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象。
解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到群組管理服務(wù)碎捺。
群組管理服務(wù)向數(shù)據(jù)存取服務(wù)退出圈子路鹰,返回刪除結(jié)果。
群組管理服務(wù)刪除結(jié)果邏輯處理牵寺。
群組管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)悍引。
路由服務(wù)處理消息路由,轉(zhuǎn)發(fā)消息帽氓,到接入服務(wù)趣斤。
接入服務(wù)響應(yīng)退出圈子請求到客戶端。
群組管理服務(wù)通知圈友消息邏輯處理黎休。
群組管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)浓领。
路由服務(wù)處理消息路由,轉(zhuǎn)發(fā)消息势腮,到接入服務(wù)联贩。
接入服務(wù)通知退出圈子到圈友客戶端。
我的動(dòng)態(tài)發(fā)布流程
我的動(dòng)態(tài)發(fā)布流程:
客戶端如果動(dòng)態(tài)內(nèi)容非文本即上傳文件服務(wù)器捎拯,返回上傳路徑泪幌。
客戶端處理上傳路徑。
客戶端向平臺接入服務(wù)發(fā)起我的動(dòng)態(tài)發(fā)布請求署照。
接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)祸泪。
解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象。
解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到用戶管理服務(wù)建芙。
用戶管理服務(wù)向數(shù)據(jù)存取服務(wù)更新個(gè)人動(dòng)態(tài)信息没隘,返回更新結(jié)果。
用戶管理服務(wù)個(gè)人動(dòng)態(tài)處理禁荸。
用戶管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)右蒲。
路由服務(wù)處理消息路由阀湿,轉(zhuǎn)發(fā)消息,到接入服務(wù)瑰妄。
接入服務(wù)響應(yīng)我的動(dòng)態(tài)發(fā)布請求到客戶端陷嘴。
用戶管理服務(wù)向數(shù)據(jù)存取服務(wù)查詢個(gè)人動(dòng)態(tài)訂閱者,返回查詢結(jié)果翰撑。
用戶管理服務(wù)個(gè)人動(dòng)態(tài)訂閱者消息處理罩旋。
用戶管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)。
路由服務(wù)處理消息路由眶诈,轉(zhuǎn)發(fā)消息涨醋,到接入服務(wù)。
接入服務(wù)通知訂閱好友動(dòng)態(tài)更新到訂閱者客戶端逝撬。
我的私密發(fā)布流程
我的私密發(fā)布流程:
客戶端如果私密內(nèi)容非文本即上傳文件服務(wù)器浴骂,返回上傳路徑。
客戶端處理上傳路徑宪潮。
客戶端向平臺接入服務(wù)發(fā)起我的私密發(fā)布請求溯警。
接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)。
解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象狡相。
解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到用戶管理服務(wù)梯轻。
用戶管理服務(wù)向數(shù)據(jù)存取服務(wù)更新個(gè)人動(dòng)態(tài)信息,返回更新結(jié)果尽棕。
用戶管理服務(wù)個(gè)人動(dòng)態(tài)處理喳挑。
用戶管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)。
路由服務(wù)處理消息路由滔悉,轉(zhuǎn)發(fā)消息伊诵,到接入服務(wù)。
接入服務(wù)響應(yīng)我的私密發(fā)布請求到客戶端回官。
我的相冊查看流程
我的相冊查看流程:
客戶端向平臺接入服務(wù)發(fā)起查看我的相冊請求曹宴。
接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)。
解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象歉提。
解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到用戶管理服務(wù)笛坦。
用戶管理服務(wù)向數(shù)據(jù)存取服務(wù)查詢圖片信息,返回查詢結(jié)果苔巨。
用戶管理服務(wù)查詢結(jié)果處理弯屈。
用戶管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)。
路由服務(wù)處理消息路由恋拷,轉(zhuǎn)發(fā)消息,到接入服務(wù)厅缺。
接入服務(wù)響應(yīng)查看我的相冊請求到客戶端蔬顾。
客戶端如果查看非文本消息宴偿,請求到文件服務(wù)器下載文件。
文件服務(wù)器讀取下載內(nèi)容诀豁。返回到客戶端窄刘。