[發(fā)明專(zhuān)利]一種面向云存儲(chǔ)數(shù)據(jù)加解密的流式處理系統(tǒng)及方法有效
| 申請(qǐng)?zhí)枺?/td> | 201611020970.3 | 申請(qǐng)日: | 2016-11-15 |
| 公開(kāi)(公告)號(hào): | CN108076106B | 公開(kāi)(公告)日: | 2019-11-19 |
| 發(fā)明(設(shè)計(jì))人: | 葉曉舟;任靜思 | 申請(qǐng)(專(zhuān)利權(quán))人: | 中國(guó)科學(xué)院聲學(xué)研究所;北京中科智網(wǎng)科技有限公司 |
| 主分類(lèi)號(hào): | H04L29/08 | 分類(lèi)號(hào): | H04L29/08;H04L29/06 |
| 代理公司: | 11472 北京方安思達(dá)知識(shí)產(chǎn)權(quán)代理有限公司 | 代理人: | 王宇楊;陳琳琳<國(guó)際申請(qǐng)>=<國(guó)際公布> |
| 地址: | 100190 *** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 客戶(hù)端 事件發(fā)生時(shí) 服務(wù)器 緩沖區(qū)讀取數(shù)據(jù) 服務(wù)器緩沖區(qū) 客戶(hù)端緩沖區(qū) 云存儲(chǔ)服務(wù)器 云存儲(chǔ)數(shù)據(jù) 緩沖區(qū) 流式處理 非阻塞 加解密 可讀 可寫(xiě) 填充 環(huán)形緩沖區(qū) 寫(xiě)入服務(wù)器 加密處理 解密處理 寫(xiě)入 | ||
1.一種面向云存儲(chǔ)數(shù)據(jù)加解密的流式處理系統(tǒng),分別與客戶(hù)端、云存儲(chǔ)服務(wù)器端建立TCP連接,所述系統(tǒng)包括兩個(gè)環(huán)形緩沖區(qū):客戶(hù)端到服務(wù)器緩沖區(qū)和服務(wù)器到客戶(hù)端緩沖區(qū),其特征在于,
所述客戶(hù)端到服務(wù)器緩沖區(qū)用于處理兩個(gè)非阻塞socket IO事件:客戶(hù)端socket可讀事件,此事件發(fā)生時(shí)需要從客戶(hù)端socket讀取數(shù)據(jù),經(jīng)過(guò)加密處理后填充到該緩沖區(qū);云存儲(chǔ)服務(wù)器端socket可寫(xiě)事件,此事件發(fā)生時(shí)需要從該緩沖區(qū)讀取數(shù)據(jù),并寫(xiě)入服務(wù)器端socket;
所述服務(wù)器到客戶(hù)端緩沖區(qū)用于處理兩個(gè)非阻塞socket IO事件:服務(wù)器socket可讀事件,此事件發(fā)生時(shí)需要從服務(wù)器socket讀取數(shù)據(jù),經(jīng)過(guò)解密處理后填充到該緩沖區(qū);客戶(hù)端socket可寫(xiě)事件,此事件發(fā)生時(shí)需要從該緩沖區(qū)讀取數(shù)據(jù),并寫(xiě)入到客戶(hù)端socket;
所述環(huán)形緩沖區(qū)是一段固定大小的連續(xù)內(nèi)存空間,數(shù)據(jù)的寫(xiě)入和數(shù)據(jù)的讀取能夠循環(huán)利用同一段內(nèi)存空間;當(dāng)寫(xiě)入數(shù)據(jù)時(shí),從環(huán)形緩沖區(qū)的Tail指針開(kāi)始連續(xù)向后寫(xiě)入,如果到達(dá)緩沖區(qū)結(jié)尾,則從首部開(kāi)始繼續(xù)寫(xiě)入,最后將Tail指針指向新寫(xiě)入數(shù)據(jù)的末尾;當(dāng)從環(huán)形緩沖區(qū)讀取數(shù)據(jù)時(shí),從Head指針開(kāi)始連續(xù)向后讀取,如果到達(dá)緩沖區(qū)結(jié)尾,則從首部開(kāi)始繼續(xù)讀取,最后將Head指針指向讀取數(shù)據(jù)的結(jié)尾;
對(duì)于客戶(hù)端到服務(wù)器緩沖區(qū)和服務(wù)器到客戶(hù)端緩沖區(qū),定義從環(huán)形緩沖區(qū)tail指針到環(huán)形緩沖區(qū)結(jié)尾部分為in_buf1,從環(huán)形緩沖區(qū)起始到head指針為in_buf2;當(dāng)接收到socket可讀事件時(shí),進(jìn)行如下步驟的操作:
步驟S1)獲取in_buf1大小為length_in_buf1,若不為0,則從可讀socket中讀取長(zhǎng)度為length_in_buf1的數(shù)據(jù)寫(xiě)入in_buf1;
步驟S2)若可讀socket為客戶(hù)端socket,則對(duì)in_buf1中的數(shù)據(jù)采用流式加密算法進(jìn)行加密處理,處理后的數(shù)據(jù)大小不變?nèi)钥梢苑湃雐n_buf1;若可讀socket云存儲(chǔ)服務(wù)器端socket,則對(duì)in_buf1中的數(shù)據(jù)采用流式加密算法進(jìn)行解密處理,處理后的數(shù)據(jù)大小不變放入in_buf1;
步驟S3)獲取in_buf2大小為length_in_buf2,
步驟S4)判斷l(xiāng)ength_in_buf2是否為0,如果判斷是否定的,則從可讀socket中讀取長(zhǎng)度為length_in_buf2的數(shù)據(jù)寫(xiě)入in_buf2;準(zhǔn)入步驟S5);否則,轉(zhuǎn)入步驟S6);
步驟S5)若可讀socket為客戶(hù)端socket,則對(duì)in_buf2中的數(shù)據(jù)采用流式加密算法進(jìn)行加密處理,處理后的數(shù)據(jù)大小不變?nèi)钥梢苑湃雐n_buf2;若可讀socket云存儲(chǔ)服務(wù)器端socket,則對(duì)in_buf2中的數(shù)據(jù)采用流式加密算法進(jìn)行解密處理,處理后的數(shù)據(jù)大小不變放入in_buf2;
步驟S6)重置監(jiān)聽(tīng)非阻塞socket IO事件。
2.根據(jù)權(quán)利要求1所述的面向云存儲(chǔ)數(shù)據(jù)加解密的流式處理系統(tǒng),其特征在于,若環(huán)形緩沖區(qū)已滿(mǎn),則只監(jiān)聽(tīng)socket可寫(xiě)事件;若環(huán)形緩沖區(qū)為空,則只監(jiān)聽(tīng)socket可讀事件;若環(huán)形緩沖區(qū)非滿(mǎn)也非空,則既監(jiān)聽(tīng)socket可寫(xiě)事件,又監(jiān)聽(tīng)socket可讀事件。
3.根據(jù)權(quán)利要求2所述的面向云存儲(chǔ)數(shù)據(jù)加解密的流式處理系統(tǒng),其特征在于,對(duì)于客戶(hù)端到服務(wù)器緩沖區(qū)和服務(wù)器到客戶(hù)端緩沖區(qū),定義從環(huán)形緩沖區(qū)head指針到環(huán)形緩沖區(qū)結(jié)尾部分為out_buf1,從環(huán)形緩沖區(qū)起始到tail指針為out_buf2;當(dāng)接收到socket可寫(xiě)事件時(shí),進(jìn)行操作步驟如下:
步驟T1)獲取out_buf1大小為length_out_buf1,若不為0,則向可寫(xiě)socket中寫(xiě)入長(zhǎng)度為length_out_buf1的out_buf1數(shù)據(jù);
步驟T2)調(diào)用socket接口的send函數(shù)發(fā)送數(shù)據(jù);
步驟T3)獲取out_buf2大小為length_out_buf2;
步驟T4)判斷l(xiāng)ength_out_buf2是否為0,如果判斷是否定的,則向可寫(xiě)socket中寫(xiě)入長(zhǎng)度為length_out_buf2的out_buf2數(shù)據(jù);轉(zhuǎn)入步驟T2);否則,轉(zhuǎn)入步驟T5);
步驟T5)重置監(jiān)聽(tīng)非阻塞socket IO事件。
4.一種面向云存儲(chǔ)數(shù)據(jù)加解密的流式處理方法,基于權(quán)利要求1-3之一所述的系統(tǒng)實(shí)現(xiàn),所述方法包括:
步驟1)對(duì)于客戶(hù)端到服務(wù)器緩沖區(qū)和服務(wù)器到客戶(hù)端緩沖區(qū),定義從環(huán)形緩沖區(qū)tail指針到環(huán)形緩沖區(qū)結(jié)尾部分為in_buf1,從環(huán)形緩沖區(qū)起始到head指針為in_buf2;定義從環(huán)形緩沖區(qū)head指針到環(huán)形緩沖區(qū)結(jié)尾部分為out_buf1,從環(huán)形緩沖區(qū)起始到tail指針為out_buf2;
步驟2)接收非阻塞socket IO事件,并判斷事件的類(lèi)型;所述事件為socket可讀事件或socket可寫(xiě)事件;
步驟3)如果所述事件的類(lèi)型為socket可讀事件,轉(zhuǎn)入步驟4),否則,轉(zhuǎn)為步驟9);
步驟4)獲取in_buf1大小為length_in_buf1,若不為0,則從可讀socket中讀取長(zhǎng)度為length_in_buf1的數(shù)據(jù)寫(xiě)入in_buf1;
步驟5)若可讀socket為客戶(hù)端socket,則對(duì)in_buf1中的數(shù)據(jù)采用流式加密算法進(jìn)行加密處理,處理后的數(shù)據(jù)大小不變?nèi)钥梢苑湃雐n_buf1;若可讀socket為云存儲(chǔ)服務(wù)器端socket,則對(duì)in_buf1中的數(shù)據(jù)采用流式加密算法進(jìn)行解密處理,處理后的數(shù)據(jù)大小不變放入in_buf1;
步驟6)獲取in_buf2大小為length_in_buf2,
步驟7)判斷l(xiāng)ength_in_buf2是否為0,如果判斷是否定的,則從可讀socket中讀取長(zhǎng)度為length_in_buf2的數(shù)據(jù)寫(xiě)入in_buf2;準(zhǔn)入步驟8);否則,轉(zhuǎn)入步驟13);
步驟8)若可讀socket為客戶(hù)端socket,則對(duì)in_buf2中的數(shù)據(jù)采用流式加密算法進(jìn)行加密處理,處理后的數(shù)據(jù)大小不變?nèi)钥梢苑湃雐n_buf2;若可讀socket為云存儲(chǔ)服務(wù)器端socket,則對(duì)in_buf2中的數(shù)據(jù)采用流式加密算法進(jìn)行解密處理,處理后的數(shù)據(jù)大小不變放入in_buf2;
步驟9)獲取out_buf1大小為length_out_buf1,若不為0,則向可寫(xiě)socket中寫(xiě)入長(zhǎng)度為length_out_buf1的out_buf1數(shù)據(jù);
步驟10)調(diào)用socket接口的send函數(shù)發(fā)送數(shù)據(jù);
步驟11)獲取out_buf2大小為length_out_buf2;
步驟12)判斷l(xiāng)ength_out_buf2是否為0,如果判斷是否定的,則向可寫(xiě)socket中寫(xiě)入長(zhǎng)度為length_out_buf2的out_buf2數(shù)據(jù);轉(zhuǎn)入步驟10);否則,轉(zhuǎn)入步驟13);
步驟13)重置監(jiān)聽(tīng)非阻塞socket IO事件。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于中國(guó)科學(xué)院聲學(xué)研究所;北京中科智網(wǎng)科技有限公司,未經(jīng)中國(guó)科學(xué)院聲學(xué)研究所;北京中科智網(wǎng)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611020970.3/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 一種基于UDP分布式小文件存儲(chǔ)系統(tǒng)及其數(shù)據(jù)處理方法
- 一種新型云計(jì)算管理系統(tǒng)
- 一種云計(jì)算管理裝置
- 一種節(jié)能數(shù)據(jù)服務(wù)器架構(gòu)系統(tǒng)
- 一種基于云計(jì)算的客戶(hù)信息管理裝置
- 一種基于即時(shí)通訊技術(shù)的通訊系統(tǒng)
- 服務(wù)器系統(tǒng)及分配服務(wù)器的方法
- 一種MMORPG游戲服務(wù)器端
- 一種訪(fǎng)問(wèn)請(qǐng)求的處理方法、服務(wù)器及存儲(chǔ)介質(zhì)
- 基于Spark技術(shù)的大數(shù)據(jù)脫敏管理系統(tǒng)
- 一種實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換無(wú)縫輸出的系統(tǒng)及方法
- 缺陷管理數(shù)據(jù)存取方法
- 播放數(shù)據(jù)的方法和終端
- 使用單個(gè)緩沖區(qū)同時(shí)讀取多個(gè)存儲(chǔ)器裝置的方法和設(shè)備
- 一種有限資源下數(shù)據(jù)緩沖方法和裝置
- 圖像數(shù)據(jù)處理方法
- 數(shù)據(jù)緩沖方法、裝置及存儲(chǔ)介質(zhì)
- 一種能夠保證接收數(shù)據(jù)完整性的數(shù)據(jù)緩沖系統(tǒng)及方法
- 一種多核并行計(jì)算的快速核間數(shù)據(jù)同步方法
- 一種并行的糾刪碼編解碼方法及系統(tǒng)





