[發(fā)明專利]一種兼容協(xié)議的方法及裝置有效
| 申請?zhí)枺?/td> | 201310522100.6 | 申請日: | 2013-10-29 |
| 公開(公告)號: | CN103607376B | 公開(公告)日: | 2017-01-11 |
| 發(fā)明(設(shè)計(jì))人: | 朱超;陳飛;王超 | 申請(專利權(quán))人: | 北京奇虎科技有限公司;奇智軟件(北京)有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06 |
| 代理公司: | 北京市中倫律師事務(wù)所11410 | 代理人: | 張思悅 |
| 地址: | 100088 北京市西城區(qū)新*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 兼容 協(xié)議 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種兼容協(xié)議的方法及裝置。
背景技術(shù)
網(wǎng)絡(luò)應(yīng)用程序都需要制定一套完整的通訊協(xié)議,以供網(wǎng)絡(luò)應(yīng)用程序的客戶端與服務(wù)器端之間的信息發(fā)送與接收使用。客戶端與服務(wù)器端只有在嚴(yán)格遵守通訊協(xié)議的條件下,才能正確組織發(fā)送出的數(shù)據(jù)包,并正確解析接收到的數(shù)據(jù)包。
MySQL服務(wù)器端也有自己的通訊協(xié)議,用來實(shí)現(xiàn)認(rèn)證、查詢、返回結(jié)果等功能。中間件因?yàn)槲挥诳蛻舳伺cMySQL服務(wù)器端之間,相對于客戶端,中間件扮演MySQL服務(wù)器端的角色;相對于MySQL服務(wù)器端,中間件扮演客戶端的角色,所以中間件就要同時實(shí)現(xiàn)MySQL的客戶端協(xié)議和服務(wù)器端協(xié)議。
當(dāng)MySQL協(xié)議推出新版本,即MySQL協(xié)議發(fā)生改變時,舊的中間件就不能再適應(yīng)新版本的MySQL協(xié)議。為了適應(yīng)新版本的MySQL協(xié)議,最直接的解決方案就是修改中間件的相關(guān)代碼,增加對新版本的MySQL協(xié)議的處理邏輯。同時添加一個對MySQL協(xié)議的版本號的判斷流程,當(dāng)判斷出客戶端和服務(wù)器端采用新版本MySQL的協(xié)議,就執(zhí)行新的協(xié)議組包與解析代碼,按照新協(xié)議的格式進(jìn)行組包發(fā)包和收包解包,否則仍然使用舊協(xié)議的格式。
MySQL協(xié)議經(jīng)常會在發(fā)布新版時增加一些新的特性,隨之帶來通訊協(xié)議的變化。由于在新版本發(fā)布之后,每次都需要修改中間件的程序,即在中間件中加入對新版通訊協(xié)議的組包與解析代碼,這種頻繁的修改會導(dǎo)致修改中間件代碼的工作量太大,開發(fā)成本也會很高。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的兼容協(xié)議的方法及裝置,解決中間件的通訊協(xié)議解析代碼要經(jīng)常隨通訊協(xié)議變化而改變的問題,以極低的成本實(shí)現(xiàn)中間件與采用新版本的通訊協(xié)議的客戶端和服務(wù)器端兼容。
依據(jù)本發(fā)明的一個方面,提供了一種兼容協(xié)議的方法,包括:中間件接收服務(wù)器向客戶端發(fā)送的握手消息,握手消息包括:服務(wù)器所采用通訊協(xié)議的版本信息;根據(jù)握手消息中的版本信息,中間件判斷服務(wù)器所采用的通訊協(xié)議的版本是否高于中間件所采用的通訊協(xié)議的版本;如果服務(wù)器采用的通訊協(xié)議的版本高于中間件采用的通訊協(xié)議的版本,則中間件對握手消息中服務(wù)器所采用通訊協(xié)議的版本信息進(jìn)行調(diào)整,使得服務(wù)器所采用通訊協(xié)議的版本與中間件所采用的通訊協(xié)議的版本相同;以及在握手消息中的版本信息調(diào)整之后,中間件將握手消息發(fā)送給客戶端,使得服務(wù)器可以采用版本調(diào)整后的通訊協(xié)議與客戶端通訊。
可選地,中間件對握手消息中的服務(wù)器所采用的通訊協(xié)議的版本信息進(jìn)行調(diào)整的步驟包括:中間件從服務(wù)器所采用通訊協(xié)議的版本信息中獲取服務(wù)器的能力標(biāo)志信息,服務(wù)器的能力標(biāo)志信息用于表示采用當(dāng)前版本的通訊協(xié)議的服務(wù)器所具有的工作特性;中間件對獲取的服務(wù)器的能力標(biāo)志信息進(jìn)行調(diào)整,使得服務(wù)器所采用通訊協(xié)議的版本與中間件所采用的通訊協(xié)議的版本相同。
可選地,其中服務(wù)器的能力標(biāo)志信息包括一個或多個字符位,其中每個字符位表示采用當(dāng)前版本的通訊協(xié)議的服務(wù)器所具有的一種工作特性。
可選地,方法還包括:如果服務(wù)器采用的通訊協(xié)議的版本低于或等于中間件采用的通訊協(xié)議的版本,則中間件直接將握手消息發(fā)送給客戶端。
可選地,在中間件將握手消息發(fā)送給客戶端的步驟之后,方法還包括:中間件接收客戶端向服務(wù)器發(fā)送的認(rèn)證消息,認(rèn)證消息包括:客戶端所采用通訊協(xié)議的版本信息;中間件判斷客戶端所采用的通訊協(xié)議的版本是否高于中間件所采用的通訊協(xié)議的版本;如果客戶端采用的通訊協(xié)議的版本高于中間件采用的通訊協(xié)議的版本,則中間件對認(rèn)證消息中客戶端所采用通訊協(xié)議的版本信息進(jìn)行調(diào)整,使得客戶端所采用通訊協(xié)議的版本與中間件所采用的通訊協(xié)議的版本相同;在認(rèn)證消息中的版本信息調(diào)整之后,中間件將認(rèn)證消息發(fā)送給服務(wù)器,使得客戶端可以采用版本調(diào)整后的通訊協(xié)議與服務(wù)器通訊。
可選地,中間件對認(rèn)證消息中的客戶端所采用的通訊協(xié)議的版本信息進(jìn)行調(diào)整的步驟包括:中間件從客戶端所采用通訊協(xié)議的版本信息中獲取客戶端的能力標(biāo)志信息,客戶端的能力標(biāo)志信息用于表示采用當(dāng)前版本的通訊協(xié)議的客戶端所具有的工作特性;中間件對獲取的客戶端的能力標(biāo)志信息進(jìn)行調(diào)整,使得客戶端所采用通訊協(xié)議的版本與中間件所采用的通訊協(xié)議的版本相同。
可選地,客戶端的能力標(biāo)志信息包括一個或多個字符位,其中每個字符位表示采用當(dāng)前版本的通訊協(xié)議的客戶端所具有的一種工作特性。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京奇虎科技有限公司;奇智軟件(北京)有限公司,未經(jīng)北京奇虎科技有限公司;奇智軟件(北京)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://m.szxzyx.cn/pat/books/201310522100.6/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:水性膠黏劑用自動投料裝置
- 下一篇:一種帶攝像頭的叉車的使用方法
- 圖像診斷裝置、醫(yī)用系統(tǒng)以及協(xié)議管理方法
- 一種自動協(xié)議識別方法及系統(tǒng)
- 客戶端中遞送協(xié)議數(shù)據(jù)單元的方法及相關(guān)裝置
- 遠(yuǎn)程通訊系統(tǒng)
- 一種基于可拼裝通信協(xié)議棧的通信方法及系統(tǒng)
- 一種實(shí)現(xiàn)國產(chǎn)平臺PXEBOOT的協(xié)議架構(gòu)
- CBTC通信系統(tǒng)協(xié)議解析方法、協(xié)議庫管理方法
- 一種協(xié)議轉(zhuǎn)換的方法、裝置、設(shè)備及存儲介質(zhì)
- 一種用于燈光控制的協(xié)議轉(zhuǎn)換系統(tǒng)及方法
- 一種通用工藝人工智能物聯(lián)網(wǎng)網(wǎng)關(guān)





