融合通信技術(shù)實(shí)戰(zhàn)案例,自媒體平臺也有一定的參考價(jià)值

概念

融合通信是指,把計(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的動態(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í)例只啟動一個(gè)Host,映射到物理主機(jī)(或虛擬主機(jī));Host的子元素是Server。

Server表示軟件維度上的一個(gè)子系統(tǒng),主要負(fù)責(zé)定義主處理流程,不管具體業(yè)務(wù)功能的實(shí)現(xiàn)。一個(gè)Host上可以啟動1~N個(gè)Server;在最嚴(yán)格的分布式部署要求下,一個(gè)Host上只啟動一個(gè)Server。每個(gè)Server都有自己獨(dú)立的配置信息庫;Server運(yùn)行時(shí)會根據(jù)配置文件信息主動申明自己需要裝配的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啟動后,Server中沒有內(nèi)容,但是它會發(fā)出通知,告訴框架它需要裝配哪些Component才能工作。

Repository,相當(dāng)于一個(gè)Plugin管理器,其中包含了各種功能的Plugin,并統(tǒng)一管理這些Plugin;在系統(tǒng)運(yùn)行時(shí),它會掃描其包含的全部Plugin信息,并啟動這些Plugin。從設(shè)計(jì)角度來看,(開發(fā)時(shí))我們又人為的把一個(gè)個(gè)大的功能拆分成若干個(gè)小的功能點(diǎn),這就是Component了,以便于開發(fā)和維護(hù)。Plugin會監(jiān)聽其包含的Component的一系列動作,并廣播其能提供的Component服務(wù)。

在核心框架的作用下,Server拿到了其需要的Component實(shí)例,于是就將這些Component實(shí)例動態(tài)地裝配到Server中,Server也就能提供相應(yīng)的服務(wù)了。當(dāng)Plugin停止時(shí),Server就相應(yīng)地卸載掉已經(jīng)裝配了的Component,也就停止了相應(yīng)的服務(wù)。整個(gè)過程都是動態(tài)發(fā)生了,只要相應(yīng)的配置文件正確,不需要人工干預(yù),核心框架會自動完成這些工作。


分布式實(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,并且支持動態(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ù)器來做,但這樣對移動客戶端來說,可能比較耗流量。

(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ù)通知朋友消息到朋友客戶端。

  • 朋友客戶端主動到文件服務(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ā)布動態(tài)流程

發(fā)布動態(tài)流程:

  • 客戶端如果動態(tài)內(nèi)容非文本即上傳文件服務(wù)器,返回上傳路徑。

  • 客戶端處理上傳路徑。

  • 客戶端向平臺接入服務(wù)發(fā)起發(fā)布動態(tài)請求。

  • 接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)。

  • 解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象。

  • 解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到群組管理服務(wù)。

  • 群組管理服務(wù)向數(shù)據(jù)存取服務(wù)發(fā)布動態(tài),返回存儲結(jié)果。

  • 群組管理服務(wù)存儲結(jié)果邏輯處理。

  • 群組管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)。

  • 路由服務(wù)處理消息路由,轉(zhuǎn)發(fā)消息,到接入服務(wù)。

  • 接入服務(wù)響應(yīng)發(fā)布動態(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ù)器。


動態(tài)互動流程

動態(tài)互動流程:

  • 客戶端如果動態(tài)內(nèi)容非文本即上傳文件服務(wù)器,返回上傳路徑。

  • 客戶端處理上傳路徑。

  • 客戶端向平臺接入服務(wù)發(fā)起動態(tài)互動請求。

  • 接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)。

  • 解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象。

  • 解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到群組管理服務(wù)。

  • 群組管理服務(wù)向數(shù)據(jù)存取服務(wù)動態(tài)互動,返回存儲結(jié)果。

  • 群組管理服務(wù)存儲結(jié)果邏輯處理。

  • 群組管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)。

  • 路由服務(wù)處理消息路由,轉(zhuǎn)發(fā)消息,到接入服務(wù)。

  • 接入服務(wù)響應(yīng)動態(tài)互動請求到客戶端。

  • 群組管理服務(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ù)通知退出圈子到圈友客戶端。


我的動態(tài)發(fā)布流程

我的動態(tài)發(fā)布流程:

  • 客戶端如果動態(tài)內(nèi)容非文本即上傳文件服務(wù)器,返回上傳路徑。

  • 客戶端處理上傳路徑。

  • 客戶端向平臺接入服務(wù)發(fā)起我的動態(tài)發(fā)布請求。

  • 接入服務(wù)將請求報(bào)文發(fā)給解析服務(wù)。

  • 解析服務(wù)將協(xié)議解析成業(yè)務(wù)對象。

  • 解析服務(wù)轉(zhuǎn)發(fā)業(yè)務(wù)對象到用戶管理服務(wù)。

  • 用戶管理服務(wù)向數(shù)據(jù)存取服務(wù)更新個(gè)人動態(tài)信息,返回更新結(jié)果。

  • 用戶管理服務(wù)個(gè)人動態(tài)處理。

  • 用戶管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)。

  • 路由服務(wù)處理消息路由,轉(zhuǎn)發(fā)消息,到接入服務(wù)。

  • 接入服務(wù)響應(yīng)我的動態(tài)發(fā)布請求到客戶端。

  • 用戶管理服務(wù)向數(shù)據(jù)存取服務(wù)查詢個(gè)人動態(tài)訂閱者,返回查詢結(jié)果。

  • 用戶管理服務(wù)個(gè)人動態(tài)訂閱者消息處理。

  • 用戶管理服務(wù)發(fā)送數(shù)據(jù)到路由服務(wù)。

  • 路由服務(wù)處理消息路由,轉(zhuǎn)發(fā)消息,到接入服務(wù)。

  • 接入服務(wù)通知訂閱好友動態(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è)人動態(tài)信息,返回更新結(jié)果。

  • 用戶管理服務(wù)個(gè)人動態(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)容。返回到客戶端。



?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,868評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,067評論 25 708
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 11,121評論 6 13
  • 過去的2016,這一年平淡無奇。 2月辦了健身卡、6月和同事一起去日本、8月開始學(xué)車。 沒有轟轟烈烈的大事,也沒有...
    不羈島主閱讀 202評論 0 0
  • 《誰動了我的奶酪》整個(gè)故事已經(jīng)閱讀完,感想:故事講述了四個(gè)主人公都有同一個(gè)目標(biāo)奶酪,但在迷宮里尋找的過程缺是截然不...
    好心眼怪脾氣閱讀 108評論 0 0