一種基于服務(wù)的消息接入層框架及其實(shí)現(xiàn)方法
【專(zhuān)利摘要】本發(fā)明涉及軟件【技術(shù)領(lǐng)域】,特別是一種基于服務(wù)的消息接入層框架及其實(shí)現(xiàn)方法。本發(fā)明系統(tǒng)啟動(dòng)后,控制器解析配置文件、啟動(dòng)數(shù)據(jù)庫(kù)訪問(wèn)服務(wù)并初始化、啟動(dòng)各個(gè)組件;應(yīng)用前端發(fā)送請(qǐng)求以后,接收器負(fù)責(zé)接收前端的請(qǐng)求并轉(zhuǎn)換成一致格式的數(shù)據(jù)向后面的處理模塊輸送;賬號(hào)口令檢查器和會(huì)話處理器是框架主體的消息處理模塊,負(fù)責(zé)對(duì)客戶請(qǐng)求進(jìn)行各種處理,處理結(jié)束后交給轉(zhuǎn)發(fā)器。轉(zhuǎn)發(fā)器負(fù)責(zé)把處理后的具有一致格式的數(shù)據(jù)轉(zhuǎn)換為應(yīng)用后端接受的數(shù)據(jù)格式,然后發(fā)送給應(yīng)用后端,進(jìn)行云端的數(shù)據(jù)處理。本發(fā)明解決了云計(jì)算應(yīng)用前端到后端接入的安全、訪問(wèn)速度及技術(shù)開(kāi)發(fā)工作量大等問(wèn)題;可應(yīng)用于前端到后端的接入服務(wù)。
【專(zhuān)利說(shuō)明】—種基于服務(wù)的消息接入層框架及其實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件【技術(shù)領(lǐng)域】,特別是一種基于服務(wù)的消息接入層框架及其實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002]隨著云計(jì)算應(yīng)用規(guī)模的不斷擴(kuò)大,針對(duì)不同類(lèi)型的用戶,需要把不同類(lèi)型的前端接入到后端。前端根據(jù)不同的需要,會(huì)采用不同的協(xié)議進(jìn)行通信;常用的Http協(xié)議,針對(duì)移動(dòng)設(shè)備通信的經(jīng)過(guò)壓縮的Http協(xié)議,各種在線視頻通信協(xié)議,傳統(tǒng)的SOAP協(xié)議及RPC協(xié)議,甚至是專(zhuān)門(mén)定制的通信協(xié)議。所有的前端連接到后端時(shí)都需要進(jìn)行登錄管理、權(quán)限管理、行為審計(jì)的處理。可以把這些處理統(tǒng)稱(chēng)為接入層。目前,云計(jì)算應(yīng)用都需要獨(dú)立開(kāi)發(fā)自己的接入層,這種做法有如下的缺點(diǎn):
[0003]1、每個(gè)前端都獨(dú)立連接后端,無(wú)法平衡各個(gè)前端的訪問(wèn)頻度,某個(gè)前端的偶發(fā)性的高訪問(wèn)量會(huì)給后端帶來(lái)過(guò)大的壓力,影響其他前端的訪問(wèn)速度。
[0004]2、每個(gè)前端需要進(jìn)行獨(dú)立的賬號(hào)認(rèn)證,都連接到相同的認(rèn)證數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)造成較大的安全威脅。
[0005]3、每個(gè)前端都開(kāi)發(fā)接入層,大部分都是重復(fù)性的工作,加大開(kāi)發(fā)人員的工作量。
【發(fā)明內(nèi)容】
[0006]本發(fā)明解決的技術(shù)問(wèn)題之一在于提供一種基于服務(wù)的消息接入層框架解決目前應(yīng)用前端協(xié)議不同,安全性低,開(kāi)發(fā)工作量大的問(wèn)題。
[0007]本發(fā)明解決的技術(shù)問(wèn)題之二在于提供一種基于服務(wù)的消息接入層框架的實(shí)現(xiàn)方法,解決目前應(yīng)用前端協(xié)議不同,安全性低,開(kāi)發(fā)工作量大的問(wèn)題。
[0008]本發(fā)明解決上述技術(shù)問(wèn)題之一的技術(shù)方案是:
[0009]所述框架由控制器、接收器、賬號(hào)口令檢查器、回話處理器和轉(zhuǎn)發(fā)器五個(gè)組件構(gòu)成;其中,
[0010]所述的控制器,包括配置文件解析器和數(shù)據(jù)庫(kù)訪問(wèn)服務(wù);用于啟動(dòng)、初始化各個(gè)組件,協(xié)調(diào)各個(gè)組件的工作;
[0011]所述的接收器,用于以各種形式接收應(yīng)用前端的請(qǐng)求;接收到不同格式的數(shù)據(jù)后,將其轉(zhuǎn)換成一致格式的數(shù)據(jù)向后面的會(huì)話處理器輸送;
[0012]所述的賬號(hào)口令檢查器,用于對(duì)前端的請(qǐng)求進(jìn)行的訪問(wèn)控制驗(yàn)證。處理結(jié)束后交給轉(zhuǎn)發(fā)器;
[0013]所述的會(huì)話處理器,作為整個(gè)框架的主體處理模塊,用于對(duì)請(qǐng)求進(jìn)行登錄管理、權(quán)限管理、行為審計(jì)、日志、單點(diǎn)登錄、公開(kāi)接口等各種處理;
[0014]所述的轉(zhuǎn)發(fā)器,用于將處理后的具有一致格式的數(shù)據(jù)轉(zhuǎn)換為后端接受的數(shù)據(jù)格式,然后發(fā)送給后端,進(jìn)行云端的處理。
[0015]所述的應(yīng)用前端的請(qǐng)求來(lái)自web前端或自一個(gè)自定義應(yīng)用層協(xié)議的客戶端。
[0016]本發(fā)明解決上述技術(shù)問(wèn)題之二的技術(shù)方案是:
[0017]包括步驟:
[0018]步驟1:系統(tǒng)啟動(dòng)后,控制器解析配置文件、啟動(dòng)數(shù)據(jù)庫(kù)訪問(wèn)服務(wù)并初始化、啟動(dòng)框架的各個(gè)組件;
[0019]步驟2:應(yīng)用前端發(fā)送請(qǐng)求以后,接收器負(fù)責(zé)接收前端的請(qǐng)求并轉(zhuǎn)換成一致格式的數(shù)據(jù)向后面的會(huì)話處理器輸送;
[0020]步驟3:賬號(hào)口令檢查器和會(huì)話處理器作為框架主體的消息處理模塊,負(fù)責(zé)對(duì)客戶請(qǐng)求進(jìn)行各種處理,處理結(jié)束后交給轉(zhuǎn)發(fā)器;
[0021]步驟4:轉(zhuǎn)發(fā)器負(fù)責(zé)將處理后的具有一致格式的數(shù)據(jù)轉(zhuǎn)換為應(yīng)用后端接受的數(shù)據(jù)格式,然后發(fā)送給應(yīng)用后端,進(jìn)行云端的數(shù)據(jù)處理。
[0022]所述控制器的工作流程如下:
[0023]首先讀入配置文件并解析,根據(jù)配置文件啟動(dòng)接收器,不同的接收器和不同的應(yīng)用前端有關(guān),取決于前端使用的通信協(xié)議;
[0024]然后啟動(dòng)轉(zhuǎn)發(fā)器;不同的轉(zhuǎn)發(fā)器和不同的后端有關(guān),取決于后端用什么通信方式;
[0025]然后啟動(dòng)數(shù)據(jù)庫(kù)訪問(wèn)服務(wù),并使用其提供的連接啟動(dòng)賬號(hào)口令檢查器,從數(shù)據(jù)庫(kù)中獲取賬號(hào)的驗(yàn)證信息;
[0026]最后啟動(dòng)一個(gè)初始沒(méi)有會(huì)話的會(huì)話處理器;
[0027]所述控制器的處理邏輯如下:
[0028]由配置文件指定的策略決定請(qǐng)求經(jīng)過(guò)哪些模塊的處理,如何處理;如果處理出現(xiàn)問(wèn)題,處理鏈終止,提前返回給控制器;控制器根據(jù)返回的異常信息,提前通過(guò)接收器返回響應(yīng)給客戶請(qǐng)求,完成一次請(qǐng)求響應(yīng)。
[0029]所述接收器作為一個(gè)服務(wù)端不斷輪詢接受應(yīng)用前端的請(qǐng)求,接收后,給每個(gè)請(qǐng)求賦予一個(gè)唯一的ID。
[0030]所述會(huì)話處理器中包含來(lái)自不同應(yīng)用前端的連接信息,稱(chēng)之為會(huì)話;
[0031]每個(gè)會(huì)話以唯一的標(biāo)識(shí)sess1nld來(lái)區(qū)分,每個(gè)應(yīng)用前端首次連接到接入層框架并通過(guò)賬號(hào)口令檢查器的檢查后,都會(huì)被分配一個(gè)sess1nld,此前端后續(xù)所有的連接都必須將sess1nld包含在請(qǐng)求中。
[0032]請(qǐng)求處理的完整流程如下:
[0033]會(huì)話處理器在每個(gè)請(qǐng)求中提取會(huì)話ID,并檢查會(huì)話ID是否已經(jīng)存在;
[0034]如果存在說(shuō)明會(huì)話已經(jīng)存在,往轉(zhuǎn)發(fā)器傳送;
[0035]如果不存在說(shuō)明是個(gè)新會(huì)話,先交由賬號(hào)口令檢查器進(jìn)行認(rèn)證;
[0036]如果認(rèn)證不通過(guò),不往下傳送,直接返回錯(cuò)誤碼到應(yīng)用前端;
[0037]如果認(rèn)證通過(guò),進(jìn)行會(huì)話登記,向應(yīng)用前端返回成功認(rèn)證信息;
[0038]在發(fā)送響應(yīng)信息后,接收器會(huì)銷(xiāo)毀對(duì)應(yīng)的一些連接信息,接收器就只負(fù)責(zé)接收和返回請(qǐng)求,每個(gè)請(qǐng)求相互獨(dú)立,請(qǐng)求處理完畢即清除相關(guān)信息,繼續(xù)等待下一個(gè)請(qǐng)求。
[0039]本發(fā)明方案的有益效果如下:
[0040]1、能平衡不同應(yīng)用前端之間的負(fù)載,減輕后端的壓力;
[0041]2、作為各個(gè)應(yīng)用的一個(gè)惟一的訪問(wèn)入口,可以提高安全性,集中管理和接入相關(guān)的工作,隔離前臺(tái)和后臺(tái),同時(shí)使得前臺(tái)和后臺(tái)的程序的邏輯更簡(jiǎn)單純粹;
[0042]3、實(shí)現(xiàn)成框架可以實(shí)現(xiàn)代碼重用,減少開(kāi)發(fā)接入層的工作量。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0043]下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說(shuō)明:
[0044]圖1為本發(fā)明方法流程圖。
【具體實(shí)施方式】
[0045]系統(tǒng)啟動(dòng)后,控制器調(diào)用配置文件加載初始化信息,本發(fā)明使用xml文件描述初始化信息:
[0046]
【權(quán)利要求】
1.一種基于服務(wù)的消息接入層框架,其特征在于:所述框架由控制器、接收器、賬號(hào)口令檢查器、回話處理器和轉(zhuǎn)發(fā)器五個(gè)組件構(gòu)成;其中, 所述的控制器,包括配置文件解析器和數(shù)據(jù)庫(kù)訪問(wèn)服務(wù);用于啟動(dòng)、初始化各個(gè)組件,協(xié)調(diào)各個(gè)組件的工作; 所述的接收器,用于以各種形式接收應(yīng)用前端的請(qǐng)求;接收到不同格式的數(shù)據(jù)后,將其轉(zhuǎn)換成一致格式的數(shù)據(jù)向后面的會(huì)話處理器輸送; 所述的賬號(hào)口令檢查器,用于對(duì)前端的請(qǐng)求進(jìn)行的訪問(wèn)控制驗(yàn)證,處理結(jié)束后交給轉(zhuǎn)發(fā)器; 所述的會(huì)話處理器,作為整個(gè)框架的主體處理模塊,用于對(duì)請(qǐng)求進(jìn)行登錄管理、權(quán)限管理、行為審計(jì)、日志、單點(diǎn)登錄、公開(kāi)接口等各種處理; 所述的轉(zhuǎn)發(fā)器,用于將處理后的具有一致格式的數(shù)據(jù)轉(zhuǎn)換為后端接受的數(shù)據(jù)格式,然后發(fā)送給后端,進(jìn)行云端的處理。
2.根據(jù)權(quán)利要求1所述的消息接入層框架,其特征在于:所述的應(yīng)用前端的請(qǐng)求來(lái)自web前端或自一個(gè)自定義應(yīng)用層協(xié)議的客戶端。
3.一種基于服務(wù)的消息接入層框架實(shí)現(xiàn)方法,其特征在于:包括步驟: 步驟1:系統(tǒng)啟動(dòng)后,控制器解析配置文件、啟動(dòng)數(shù)據(jù)庫(kù)訪問(wèn)服務(wù)并初始化、啟動(dòng)框架的各個(gè)組件; 步驟2:應(yīng)用前端發(fā)送請(qǐng)求以后,接收器負(fù)責(zé)接收前端的請(qǐng)求并轉(zhuǎn)換成一致格式的數(shù)據(jù)向后面的會(huì)話處理器輸送; 步驟3:賬號(hào)口令檢查器和會(huì)話處理器作為框架主體的消息處理模塊,負(fù)責(zé)對(duì)客戶請(qǐng)求進(jìn)行各種處理,處理結(jié)束后交給轉(zhuǎn)發(fā)器; 步驟4:轉(zhuǎn)發(fā)器負(fù)責(zé)將處理后的具有一致格式的數(shù)據(jù)轉(zhuǎn)換為應(yīng)用后端接受的數(shù)據(jù)格式,然后發(fā)送給應(yīng)用后端,進(jìn)行云端的數(shù)據(jù)處理。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于:所述控制器的工作流程如下: 首先讀入配置文件并解析,根據(jù)配置文件啟動(dòng)接收器,不同的接收器和不同的應(yīng)用前端有關(guān),取決于前端使用的通信協(xié)議; 然后啟動(dòng)轉(zhuǎn)發(fā)器;不同的轉(zhuǎn)發(fā)器和不同的后端有關(guān),取決于后端用什么通信方式; 然后啟動(dòng)數(shù)據(jù)庫(kù)訪問(wèn)服務(wù),并使用其提供的連接啟動(dòng)賬號(hào)口令檢查器,從數(shù)據(jù)庫(kù)中獲取賬號(hào)的驗(yàn)證信息; 最后啟動(dòng)一個(gè)初始沒(méi)有會(huì)話的會(huì)話處理器; 所述控制器的處理邏輯如下: 由配置文件指定的策略決定請(qǐng)求經(jīng)過(guò)哪些模塊的處理,如何處理;如果處理出現(xiàn)問(wèn)題,處理鏈終止,提前返回給控制器;控制器根據(jù)返回的異常信息,提前通過(guò)接收器返回響應(yīng)給客戶請(qǐng)求,完成一次請(qǐng)求響應(yīng)。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于:所述接收器作為一個(gè)服務(wù)端不斷輪詢接受應(yīng)用前端的請(qǐng)求,接收后,給每個(gè)請(qǐng)求賦予一個(gè)唯一的ID。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于:所述接收器作為一個(gè)服務(wù)端不斷輪詢接受應(yīng)用前端的請(qǐng)求,接收后,給每個(gè)請(qǐng)求賦予一個(gè)唯一的ID。
7.根據(jù)權(quán)利要求3至6任一項(xiàng)所述的方法,其特征在于:所述會(huì)話處理器中包含來(lái)自不同應(yīng)用前端的連接信息,稱(chēng)之為會(huì)話; 每個(gè)會(huì)話以唯一的標(biāo)識(shí)sess1nld來(lái)區(qū)分,每個(gè)應(yīng)用前端首次連接到接入層框架并通過(guò)賬號(hào)口令檢查器的檢查后,都會(huì)被分配一個(gè)sess1nld,此前端后續(xù)所有的連接都必須將sess1nld包含在請(qǐng)求中。
8.根據(jù)權(quán)利要求3至6任一項(xiàng)所述的方法,其特征在于:請(qǐng)求處理的完整流程如下: 會(huì)話處理器在每個(gè)請(qǐng)求中提取會(huì)話ID,并檢查會(huì)話ID是否已經(jīng)存在; 如果存在說(shuō)明會(huì)話已經(jīng)存在,往轉(zhuǎn)發(fā)器傳送; 如果不存在說(shuō)明是個(gè)新會(huì)話,先交由賬號(hào)口令檢查器進(jìn)行認(rèn)證; 如果認(rèn)證不通過(guò),不往下傳送,直接返回錯(cuò)誤碼到應(yīng)用前端; 如果認(rèn)證通過(guò),進(jìn)行會(huì)話登記,向應(yīng)用前端返回成功認(rèn)證信息; 在發(fā)送響應(yīng)信息后,接收器會(huì)銷(xiāo)毀對(duì)應(yīng)的一些連接信息,接收器就只負(fù)責(zé)接收和返回請(qǐng)求,每個(gè)請(qǐng)求相互獨(dú)立,請(qǐng)求處理完畢即清除相關(guān)信息,繼續(xù)等待下一個(gè)請(qǐng)求。
9.根據(jù)權(quán)利要求7所述的方法,其特征在于:請(qǐng)求處理的完整流程如下: 會(huì)話處理器在每個(gè)請(qǐng)求中提取會(huì)話ID,并檢查會(huì)話ID是否已經(jīng)存在; 如果存在說(shuō)明會(huì)話已經(jīng)存在,往轉(zhuǎn)發(fā)器傳送; 如果不存在說(shuō)明是個(gè)新會(huì)話,先交由賬號(hào)口令檢查器進(jìn)行認(rèn)證; 如果認(rèn)證不通過(guò),不往下傳送,直接返回錯(cuò)誤碼到應(yīng)用前端; 如果認(rèn)證通過(guò),進(jìn)行會(huì)話登記,向應(yīng)用前端返回成功認(rèn)證信息; 在發(fā)送響應(yīng)信息后,接收器會(huì)銷(xiāo)毀對(duì)應(yīng)的一些連接信息,接收器就只負(fù)責(zé)接收和返回請(qǐng)求,每個(gè)請(qǐng)求相互獨(dú)立,請(qǐng)求處理完畢即清除相關(guān)信息,繼續(xù)等待下一個(gè)請(qǐng)求。
【文檔編號(hào)】H04L29/08GK104079624SQ201410195515
【公開(kāi)日】2014年10月1日 申請(qǐng)日期:2014年5月9日 優(yōu)先權(quán)日:2014年5月9日
【發(fā)明者】莫展鵬, 楊松, 季統(tǒng)凱 申請(qǐng)人:國(guó)云科技股份有限公司