亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

指令處理方法及指令處理裝置與流程

文檔序號:11177368閱讀:1107來源:國知局
指令處理方法及指令處理裝置與流程

本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,特別是涉及一種指令處理方法及指令處理裝置。



背景技術(shù):

mongodb是一個基于分布式文件存儲的數(shù)據(jù)庫。由c++語言編寫,旨在為web應(yīng)用提供可擴展的高性能數(shù)據(jù)存儲解決方案。mongodb是一個介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。其支持的數(shù)據(jù)結(jié)構(gòu)非常松散,因此可以存儲比較復(fù)雜的數(shù)據(jù)類型。

dynamodb是亞馬遜的鍵/值模式的數(shù)據(jù)存儲平臺,由于其可用性和擴展性很好,讀寫訪問中99.9%的響應(yīng)時間都在300ms內(nèi),同樣受到廣大用戶的喜愛。

但是現(xiàn)有的mongodb并無法對dynamodb對應(yīng)的dynamodb協(xié)議的指令進行兼容,即mongodb接收到dynamodb協(xié)議的數(shù)據(jù)處理指令,并無法對該數(shù)據(jù)處理指令進行響應(yīng),這樣導致現(xiàn)有的mongodb數(shù)據(jù)庫對不同類型的數(shù)據(jù)處理指令的兼容性較差。如用戶需要向mongodb數(shù)據(jù)庫發(fā)送數(shù)據(jù)處理指令,需要自行將數(shù)據(jù)處理指令轉(zhuǎn)換為mongodb協(xié)議的數(shù)據(jù)處理指令,使得用戶的數(shù)據(jù)處理指令的生成流程較為復(fù)雜。



技術(shù)實現(xiàn)要素:

本發(fā)明實施例提供一種兼容性較高,且對應(yīng)的數(shù)據(jù)處理指令生成流程較為簡單的指令處理方法及指令處理裝置;以解決現(xiàn)有的指令處理方法及指令處理裝置對不同類型的數(shù)據(jù)處理指令的兼容性較差,以及對應(yīng)的數(shù)據(jù)處理指令的生成流程較為復(fù)雜的技術(shù)問題。

本發(fā)明實施例提供一種指令處理方法,其包括:

接收數(shù)據(jù)處理指令,并確定所述數(shù)據(jù)處理指令的指令接收端口;

根據(jù)所述指令接收端口,確定所述數(shù)據(jù)處理指令的協(xié)議類型;

如所述數(shù)據(jù)處理指令的協(xié)議類型為mongodb協(xié)議,則執(zhí)行所述數(shù)據(jù)處理指令;以及

如所述數(shù)據(jù)處理指令的協(xié)議類型不是mongodb協(xié)議,則使用預(yù)設(shè)規(guī)則將所述數(shù)據(jù)處理指令轉(zhuǎn)換為mongodb協(xié)議類型的數(shù)據(jù)處理指令,并執(zhí)行轉(zhuǎn)換后的數(shù)據(jù)處理指令。

本發(fā)明實施例還提供一種指令處理裝置,其包括:

指令接收模塊,用于接收數(shù)據(jù)處理指令,并確定所述數(shù)據(jù)處理指令的指令接收端口;

指令類型確定模塊,用于根據(jù)所述指令接收端口,確定所述數(shù)據(jù)處理指令的協(xié)議類型;

第一指令執(zhí)行模塊,用于如所述數(shù)據(jù)處理指令的協(xié)議類型為mongodb協(xié)議,則執(zhí)行所述數(shù)據(jù)處理指令;以及

第二指令執(zhí)行模塊,用于如所述數(shù)據(jù)處理指令的協(xié)議類型不是mongodb協(xié)議,則使用預(yù)設(shè)規(guī)則將所述數(shù)據(jù)處理指令轉(zhuǎn)換為mongodb協(xié)議類型的數(shù)據(jù)處理指令,并執(zhí)行轉(zhuǎn)換后的數(shù)據(jù)處理指令。

相較于現(xiàn)有技術(shù),本發(fā)明的指令處理方法及指令處理裝置通過對非mongodb協(xié)議的數(shù)據(jù)處理指令進行對應(yīng)的協(xié)議類型轉(zhuǎn)換,使得本發(fā)明的指令處理方法及指令處理裝置可兼容不同類型的數(shù)據(jù)處理指令;由于不需要用戶對數(shù)據(jù)處理指令進行協(xié)議類型轉(zhuǎn)換,因此也簡化了數(shù)據(jù)處理指令的生成流程;解決了現(xiàn)有的指令處理方法及指令處理裝置對不同類型的數(shù)據(jù)處理指令的兼容性較差,以及對應(yīng)的數(shù)據(jù)處理指令的生成流程較為復(fù)雜的技術(shù)問題。

附圖說明

圖1為本發(fā)明的指令處理方法的第一優(yōu)選實施例的流程圖;

圖2為本發(fā)明的指令處理方法的第二優(yōu)選實施例的流程圖;

圖3為本發(fā)明的指令處理方法的第二優(yōu)選實施例的步驟s207的流程圖;

圖4為本發(fā)明的指令處理方法的第二優(yōu)選實施例的數(shù)據(jù)處理指令對應(yīng)的抽象語法樹的結(jié)構(gòu)示意圖;

圖5為本發(fā)明的指令處理裝置的第一優(yōu)選實施例的結(jié)構(gòu)示意圖;

圖6為本發(fā)明的指令處理裝置的第二優(yōu)選實施例的結(jié)構(gòu)示意圖;

圖7為本發(fā)明的指令處理裝置的第二優(yōu)選實施例的第二指令執(zhí)行模塊的結(jié)構(gòu)示意圖;

圖8為本發(fā)明的指令處理方法及指令處理裝置的指令處理示意圖;

圖9為本發(fā)明的指令處理裝置所在的電子設(shè)備的工作環(huán)境結(jié)構(gòu)示意圖。

具體實施方式

請參照圖式,其中相同的組件符號代表相同的組件,本發(fā)明的原理是以實施在一適當?shù)倪\算環(huán)境中來舉例說明。以下的說明是基于所例示的本發(fā)明具體實施例,其不應(yīng)被視為限制本發(fā)明未在此詳述的其它具體實施例。

在以下的說明中,本發(fā)明的具體實施例將參考由一部或多部計算機所執(zhí)行之作業(yè)的步驟及符號來說明,除非另有述明。因此,其將可了解到這些步驟及操作,其中有數(shù)次提到為由計算機執(zhí)行,包括了由代表了以一結(jié)構(gòu)化型式中的數(shù)據(jù)之電子信號的計算機處理單元所操縱。此操縱轉(zhuǎn)換該數(shù)據(jù)或?qū)⑵渚S持在該計算機之內(nèi)存系統(tǒng)中的位置處,其可重新配置或另外以本領(lǐng)域技術(shù)人員所熟知的方式來改變該計算機之運作。該數(shù)據(jù)所維持的數(shù)據(jù)結(jié)構(gòu)為該內(nèi)存之實體位置,其具有由該數(shù)據(jù)格式所定義的特定特性。但是,本發(fā)明原理以上述文字來說明,其并不代表為一種限制,本領(lǐng)域技術(shù)人員將可了解到以下所述的多種步驟及操作亦可實施在硬件當中。

本發(fā)明的指令處理方法及指令處理裝置可設(shè)置存儲有云數(shù)據(jù),并可對各種外部數(shù)據(jù)處理指令進行處理的電子設(shè)備中。該電子設(shè)備包括但不限于可穿戴設(shè)備、頭戴設(shè)備、醫(yī)療健康平臺、個人計算機、服務(wù)器計算機、手持式或膝上型設(shè)備、移動設(shè)備(比如移動電話、個人數(shù)字助理(pda)、媒體播放器等等)、多處理器系統(tǒng)、消費型電子設(shè)備、小型計算機、大型計算機、包括上述任意系統(tǒng)或設(shè)備的分布式計算環(huán)境,等等。該電子設(shè)備優(yōu)選為基于分布式文件存儲的mongodb數(shù)據(jù)庫。本發(fā)明的指令處理方法以及指令處理裝置通過對非mongodb協(xié)議的數(shù)據(jù)處理指令進行對應(yīng)的協(xié)議類型轉(zhuǎn)換,使得該電子設(shè)備可兼容不同類型的數(shù)據(jù)處理指令,有效的解決了現(xiàn)有的指令處理方法及指令處理裝置對不同類型的數(shù)據(jù)處理指令的兼容性較差,以及對應(yīng)的數(shù)據(jù)處理指令的生成流程較為復(fù)雜的技術(shù)問題。

請參照圖1,圖1為本發(fā)明的指令處理方法的第一優(yōu)選實施例的流程圖。本優(yōu)選實施例的指令處理方法可使用上述的電子設(shè)備進行實施。本優(yōu)選實施例的指令處理方法包括:

步驟s101,接收數(shù)據(jù)處理指令,并確定數(shù)據(jù)處理指令的指令接收端口;

步驟s102,根據(jù)指令接收端口,確定數(shù)據(jù)處理指令的協(xié)議類型;

步驟s103,判斷數(shù)據(jù)處理指令的協(xié)議類型是否為mongodb協(xié)議,如為mongodb協(xié)議,則轉(zhuǎn)到步驟s104;如不是mongodb協(xié)議,則轉(zhuǎn)到步驟s105;

步驟s104,執(zhí)行數(shù)據(jù)處理指令;

步驟s105,使用預(yù)設(shè)規(guī)則將數(shù)據(jù)處理指令轉(zhuǎn)換為mongodb協(xié)議類型的數(shù)據(jù)處理指令,并執(zhí)行轉(zhuǎn)換后的數(shù)據(jù)處理指令。

下面詳細說明本優(yōu)選實施例的指令處理方法的各步驟的具體流程。

在步驟s101中,指令處理裝置接收用戶的數(shù)據(jù)處理指令,該數(shù)據(jù)處理指令為對指令處理裝置對應(yīng)的數(shù)據(jù)庫中的數(shù)據(jù)進行處理,如查找、排序等處理的指令。

由于數(shù)據(jù)處理指令可能具有不同協(xié)議類型,如mongodb協(xié)議類型以及dynamodb協(xié)議類型等。指令處理裝置會預(yù)先設(shè)定好不同的指令接收端口來接收對應(yīng)協(xié)議類型的數(shù)據(jù)處理指令。如使用6554端口接收mongodb協(xié)議類型的數(shù)據(jù)處理指令,使用6555端口接收dynamodb協(xié)議類型的數(shù)據(jù)處理指令等。

因此隨后指令處理裝置會根據(jù)預(yù)設(shè)設(shè)定確定接收到的數(shù)據(jù)處理指令的指令接收端口。隨后轉(zhuǎn)到步驟s102。

在步驟s102中,指令處理裝置根據(jù)步驟s101確定的指令接收端口以及預(yù)設(shè)規(guī)則,確定該指令接收端口對應(yīng)的數(shù)據(jù)處理指令的協(xié)議類型。隨后轉(zhuǎn)到步驟s103。

在步驟s103中,指令處理裝置判斷步驟s102確定的數(shù)據(jù)處理指令的協(xié)議類型是否為mongodb協(xié)議,如為mongodb協(xié)議,則轉(zhuǎn)到步驟s104;如不是mongodb協(xié)議,則轉(zhuǎn)到步驟s105。

在步驟s104中,如數(shù)據(jù)處理指令的協(xié)議類型為mongodb協(xié)議,由于本優(yōu)選實施例的指令處理裝置的數(shù)據(jù)庫對應(yīng)的是mongodb數(shù)據(jù)庫,因此指令處理裝置可直接執(zhí)行該數(shù)據(jù)處理指令。

在步驟s105中,如數(shù)據(jù)處理指令的協(xié)議類型不是mongodb協(xié)議,則指令處理裝置可使用預(yù)設(shè)規(guī)則將步驟s101接收到的數(shù)據(jù)處理指令轉(zhuǎn)換為mongodb協(xié)議類型的數(shù)據(jù)處理指令。這里的預(yù)設(shè)規(guī)則為根據(jù)用戶發(fā)送的數(shù)據(jù)處理指令的協(xié)議類型預(yù)先設(shè)置的轉(zhuǎn)換規(guī)則。最后指令處理裝置可直接執(zhí)行轉(zhuǎn)換后的數(shù)據(jù)處理指令。

這樣即完成了本優(yōu)選實施例的指令處理方法的數(shù)據(jù)處理指令執(zhí)行流程。

本優(yōu)選實施例的指令處理方法通過對非mongodb協(xié)議的數(shù)據(jù)處理指令進行對應(yīng)的協(xié)議類型轉(zhuǎn)換,使得對應(yīng)的指令處理裝置以及數(shù)據(jù)庫可兼容不同類型的數(shù)據(jù)處理指令;由于不需要用戶對數(shù)據(jù)處理指令進行協(xié)議類型轉(zhuǎn)換,因此也簡化了數(shù)據(jù)處理指令的生成流程。

請參照圖2,圖2為本發(fā)明的指令處理方法的第二優(yōu)選實施例的流程圖。本優(yōu)選實施例的指令處理方法可使用上述的電子設(shè)備進行實施。本優(yōu)選實施例的指令處理方法包括:

步驟s201,接收端口設(shè)置指令;

步驟s202,根據(jù)端口設(shè)置指令,設(shè)置不同協(xié)議類型的數(shù)據(jù)處理指令的指令接收端口;

步驟s203,接收數(shù)據(jù)處理指令,并確定數(shù)據(jù)處理指令的指令接收端口;

步驟s204,根據(jù)指令接收端口,確定數(shù)據(jù)處理指令的協(xié)議類型;

步驟s205,判斷數(shù)據(jù)處理指令的協(xié)議類型是否為mongodb協(xié)議,如為mongodb協(xié)議,則轉(zhuǎn)到步驟s206;如不是mongodb協(xié)議,則轉(zhuǎn)到步驟s207;

步驟s206,執(zhí)行數(shù)據(jù)處理指令;

步驟s207,使用預(yù)設(shè)規(guī)則將數(shù)據(jù)處理指令轉(zhuǎn)換為mongodb協(xié)議類型的數(shù)據(jù)處理指令,并執(zhí)行轉(zhuǎn)換后的數(shù)據(jù)處理指令。

下面詳細說明本優(yōu)選實施例的指令處理方法的各步驟的具體流程。

在步驟s201中,指令處理裝置接收用戶的端口設(shè)置指令。該端口設(shè)置指令為用戶對指令處理裝置接收不同協(xié)議類型的數(shù)據(jù)處理指令的指令接收端口進行設(shè)置的指令。隨后轉(zhuǎn)到步驟s202。

在步驟s202中,指令處理裝置根據(jù)步驟s201接收的端口設(shè)置指令,設(shè)置不同協(xié)議類型的數(shù)據(jù)處理指令的指令接收端口。這里可以設(shè)置指令接收端口和不同協(xié)議類型的數(shù)據(jù)處理指令一一對應(yīng)。如使用6554端口接收mongodb協(xié)議類型的數(shù)據(jù)處理指令,使用6555端口接收dynamodb協(xié)議類型的數(shù)據(jù)處理指令等。

這樣即完成了指令接收端口的設(shè)置過程。隨后轉(zhuǎn)到步驟s203。

在步驟s203中,指令處理裝置接收用戶的數(shù)據(jù)處理指令,該數(shù)據(jù)處理指令為對指令處理裝置對應(yīng)的數(shù)據(jù)庫中的數(shù)據(jù)進行處理,如查找、排序等處理的指令。隨后指令處理裝置會根據(jù)預(yù)設(shè)設(shè)定確定接收到的數(shù)據(jù)處理指令的指令接收端口。隨后轉(zhuǎn)到步驟s204。

在步驟s204中,指令處理裝置根據(jù)步驟s203確定的指令接收端口以及預(yù)設(shè)規(guī)則,確定該指令接收端口對應(yīng)的數(shù)據(jù)處理指令的協(xié)議類型。隨后轉(zhuǎn)到步驟s205。

在步驟s205中,指令處理裝置判斷步驟s204確定的數(shù)據(jù)處理指令的協(xié)議類型是否為mongodb協(xié)議,如為mongodb協(xié)議,則轉(zhuǎn)到步驟s206;如不是mongodb協(xié)議,則轉(zhuǎn)到步驟s207。

在步驟s206中,如數(shù)據(jù)處理指令的協(xié)議類型為mongodb協(xié)議,由于本優(yōu)選實施例的指令處理裝置的數(shù)據(jù)庫對應(yīng)的是mongodb數(shù)據(jù)庫,因此指令處理裝置可直接執(zhí)行該數(shù)據(jù)處理指令。

在步驟s207中,如數(shù)據(jù)處理指令的協(xié)議類型不是mongodb協(xié)議,則指令處理裝置可使用預(yù)設(shè)規(guī)則將步驟s203接收到的數(shù)據(jù)處理指令轉(zhuǎn)換為mongodb協(xié)議類型的數(shù)據(jù)處理指令。這里的預(yù)設(shè)規(guī)則為根據(jù)用戶發(fā)送的數(shù)據(jù)處理指令的協(xié)議類型預(yù)先設(shè)置的轉(zhuǎn)換規(guī)則。

具體的,請參照圖3,圖3為本發(fā)明的指令處理方法的第二優(yōu)選實施例的步驟s207的流程圖。該步驟s207包括:

步驟s301,基于正則表達式詞法,對dynamodb協(xié)議的數(shù)據(jù)處理指令進行詞法分析,獲取數(shù)據(jù)處理指令的指令參數(shù)和條件參數(shù);

這里的數(shù)據(jù)處理指令的指令參數(shù)是指數(shù)據(jù)處理指令中的操作數(shù)(operand),數(shù)據(jù)處理指令的條件參數(shù)是指數(shù)據(jù)處理指令中的操作條件(condition)。

步驟s302,基于dynamodb文法以及預(yù)讀左掃描右規(guī)約算法(lalr,lookaheadleftscanrightreduction算法),對數(shù)據(jù)處理指令的指令參數(shù)和條件參數(shù)進行文法分析,獲取數(shù)據(jù)處理指令對應(yīng)的抽象語法樹。

步驟s303,自下而上遍歷抽象語法樹,并根據(jù)抽象語法樹中的節(jié)點以及mongodb文法,生成mongodb協(xié)議類型的數(shù)據(jù)處理指令。

最后由于本優(yōu)選實施例的指令處理裝置的數(shù)據(jù)庫對應(yīng)的是mongodb數(shù)據(jù)庫,因此指令處理裝置可直接執(zhí)行轉(zhuǎn)換后的數(shù)據(jù)處理指令。

這樣即完成了本優(yōu)選實施例的指令處理方法的數(shù)據(jù)處理指令執(zhí)行流程。

下面通過一例子說明詳細說明步驟s207中數(shù)據(jù)處理指令的協(xié)議類型轉(zhuǎn)換過程。

dynamodb的巴克斯范式(bnf,backus-naurform)文法為:

使用lalr算法對上述dynamodb文法進行解析,得到dynamodb的執(zhí)行語句和mongodb的執(zhí)行語句的對應(yīng)關(guān)系如表1所示:

表1

如指令處理裝置對dynamodb協(xié)議的數(shù)據(jù)處理指令:

ainlist(b,c,d)andb>=cand(c<>dorcontains(arr,g))進行詞法分析,可以得到該數(shù)據(jù)處理指令的指令參數(shù)a、(b,c,d)、b、c、c、d、arr、g;以及該數(shù)據(jù)處理指令的條件參數(shù)in、list、and、>=、and(數(shù)據(jù)處理指令中的第二個and)、<>、or、contains。

隨后指令處理裝置基于lalr算法對上述數(shù)據(jù)處理指令的指令參數(shù)和條件參數(shù)進行文法分析,獲取數(shù)據(jù)處理指令對應(yīng)的抽象語法樹,如圖4所示。

最后指令處理裝置自下而上遍歷抽象語法樹,并根據(jù)上述抽象語法樹中的節(jié)點以及mongodb文法,生成抽象語法樹每個區(qū)域的數(shù)據(jù)處理指令,如

區(qū)域a的數(shù)據(jù)處理指令為:{a:{$in:[b,c,d]}};

區(qū)域b的數(shù)據(jù)處理指令為:{b:{$gte:c}};

區(qū)域c的數(shù)據(jù)處理指令為:{c:{$ne:d}};

區(qū)域d的數(shù)據(jù)處理指令為:{arr:{$regex:.*.g.*}};

隨后對區(qū)域a和區(qū)域b的數(shù)據(jù)處理指令進行合成,合成后的區(qū)域a的數(shù)據(jù)處理指令為:{$and:[{a:{$in:[b,c,d]}},{b:{$gte:c}}]};

對區(qū)域c和區(qū)域d的數(shù)據(jù)處理指令進行合成,合成后的區(qū)域b的數(shù)據(jù)處理指令為:{$or:[{c:{$ne:d}},{arr:{$regex:.*.g.*}}]};

最后對區(qū)域a和區(qū)域b的數(shù)據(jù)處理指令進行合成,最終生成的mongodb協(xié)議類型的數(shù)據(jù)處理指令為:{$and:[{$and:[{a:{$in:[b,c,d]}},{b:{$gte:c}}]},{$or:[{c:{$ne:d}},{arr:{$regex:.*.g.*}}]}]};

這樣即完成了將dynamodb協(xié)議的數(shù)據(jù)處理指令轉(zhuǎn)換為mongodb協(xié)議類型的數(shù)據(jù)處理指令的過程。

在第一優(yōu)選實施例的基礎(chǔ)上,本優(yōu)選實施例的指令處理方法可通過正則表達式詞法、dynamodb文法、mongodb文法以及l(fā)alr算法,實現(xiàn)了dynamodb協(xié)議的數(shù)據(jù)處理指令與mongodb協(xié)議類型的數(shù)據(jù)處理指令的相互轉(zhuǎn)換,使得對應(yīng)的指令處理裝置以及數(shù)據(jù)庫可兼容不同類型的數(shù)據(jù)處理指令,進一步提高了指令處理方法的指令處理效率。

本發(fā)明還提供一種指令處理裝置,請參照圖5,圖5為本發(fā)明的指令處理裝置的第一優(yōu)選實施例的結(jié)構(gòu)示意圖,本優(yōu)選實施例的指令處理裝置可使用上述的指令處理方法的第一優(yōu)選實施例進行實施,本優(yōu)選實施例的指令處理裝置50包括指令接收模塊51、指令類型確定模塊52、第一指令執(zhí)行模塊53以及第二指令執(zhí)行模塊54。

指令接收模塊51用于接收數(shù)據(jù)處理指令,并確定數(shù)據(jù)處理指令的指令接收端口;指令類型確定模塊52用于根據(jù)指令接收端口,確定數(shù)據(jù)處理指令的協(xié)議類型;第一指令執(zhí)行模塊53用于如數(shù)據(jù)處理指令的協(xié)議類型為mongodb協(xié)議,則執(zhí)行數(shù)據(jù)處理指令;第二指令執(zhí)行模塊54用于如數(shù)據(jù)處理指令的協(xié)議類型不是mongodb協(xié)議,則使用預(yù)設(shè)規(guī)則將數(shù)據(jù)處理指令轉(zhuǎn)換為mongodb協(xié)議類型的數(shù)據(jù)處理指令,并執(zhí)行轉(zhuǎn)換后的數(shù)據(jù)處理指令。

本優(yōu)選實施例的指令處理裝置50使用時,指令接收模塊51接收用戶的數(shù)據(jù)處理指令,該數(shù)據(jù)處理指令為對指令處理裝置對應(yīng)的數(shù)據(jù)庫中的數(shù)據(jù)進行處理,如查找、排序等處理的指令。

由于數(shù)據(jù)處理指令可能具有不同協(xié)議類型,如mongodb協(xié)議類型以及dynamodb協(xié)議類型等。指令處理裝置會預(yù)先設(shè)定好不同的指令接收端口來接收對應(yīng)協(xié)議類型的數(shù)據(jù)處理指令。如使用6554端口接收mongodb協(xié)議類型的數(shù)據(jù)處理指令,使用6555端口接收dynamodb協(xié)議類型的數(shù)據(jù)處理指令等。

因此隨后指令接收模塊51會根據(jù)預(yù)設(shè)設(shè)定確定接收到的數(shù)據(jù)處理指令的指令接收端口。

隨后指令類型確定模塊52根據(jù)指令接收模塊51確定的指令接收端口以及預(yù)設(shè)規(guī)則,確定該指令接收端口對應(yīng)的數(shù)據(jù)處理指令的協(xié)議類型。

然后指令處理裝置判斷數(shù)據(jù)處理指令的協(xié)議類型是否為mongodb協(xié)議。

如數(shù)據(jù)處理指令的協(xié)議類型為mongodb協(xié)議,由于本優(yōu)選實施例的指令處理裝置50的數(shù)據(jù)庫對應(yīng)的是mongodb數(shù)據(jù)庫,因此第一指令執(zhí)行模塊53可直接執(zhí)行該數(shù)據(jù)處理指令。

如數(shù)據(jù)處理指令的協(xié)議類型不是mongodb協(xié)議,則第二指令執(zhí)行模塊54可使用預(yù)設(shè)規(guī)則將指令接收模塊接收到的數(shù)據(jù)處理指令轉(zhuǎn)換為mongodb協(xié)議類型的數(shù)據(jù)處理指令。這里的預(yù)設(shè)規(guī)則為根據(jù)用戶發(fā)送的數(shù)據(jù)處理指令的協(xié)議類型預(yù)先設(shè)置的轉(zhuǎn)換規(guī)則。最后第二指令執(zhí)行模塊54可直接執(zhí)行轉(zhuǎn)換后的數(shù)據(jù)處理指令。

這樣即完成了本優(yōu)選實施例的指令處理裝置50的數(shù)據(jù)處理指令執(zhí)行流程。

本優(yōu)選實施例的指令處理裝置通過對非mongodb協(xié)議的數(shù)據(jù)處理指令進行對應(yīng)的協(xié)議類型轉(zhuǎn)換,使得對應(yīng)的指令處理裝置以及數(shù)據(jù)庫可兼容不同類型的數(shù)據(jù)處理指令;由于不需要用戶對數(shù)據(jù)處理指令進行協(xié)議類型轉(zhuǎn)換,因此也簡化了數(shù)據(jù)處理指令的生成流程。

請參照圖6,圖6為本發(fā)明的指令處理裝置的第二優(yōu)選實施例的結(jié)構(gòu)示意圖。本優(yōu)選實施例的指令處理裝置可使用上述的指令處理方法的第二優(yōu)選實施例進行實施,本優(yōu)選實施例的指令處理裝置60包括設(shè)置指令接收模塊61、端口設(shè)置模塊62、指令接收模塊63、指令類型確定模塊64、第一指令執(zhí)行模塊65以及第二指令執(zhí)行模塊66。

設(shè)置指令接收模塊61用于接收端口設(shè)置指令;端口設(shè)置模塊62用于根據(jù)端口設(shè)置指令,設(shè)置不同協(xié)議類型的數(shù)據(jù)處理指令的指令接收端口;指令接收模塊63用于接收數(shù)據(jù)處理指令,并確定數(shù)據(jù)處理指令的指令接收端口;指令類型確定模塊64用于根據(jù)指令接收端口,確定數(shù)據(jù)處理指令的協(xié)議類型;第一指令執(zhí)行模塊65用于如數(shù)據(jù)處理指令的協(xié)議類型為mongodb協(xié)議,則執(zhí)行數(shù)據(jù)處理指令;第二指令執(zhí)行模塊66用于如數(shù)據(jù)處理指令的協(xié)議類型不是mongodb協(xié)議,則使用預(yù)設(shè)規(guī)則將數(shù)據(jù)處理指令轉(zhuǎn)換為mongodb協(xié)議類型的數(shù)據(jù)處理指令,并執(zhí)行轉(zhuǎn)換后的數(shù)據(jù)處理指令。

請參照圖7,圖7為本發(fā)明的指令處理裝置的第二優(yōu)選實施例的第二指令執(zhí)行模塊的結(jié)構(gòu)示意圖。該第二指令執(zhí)行模塊66包括參數(shù)獲取單元71、語法樹獲取單元72以及轉(zhuǎn)換單元73。

參數(shù)獲取單元71用于對dynamodb協(xié)議的數(shù)據(jù)處理指令進行詞法分析,獲取數(shù)據(jù)處理指令的指令參數(shù)和條件參數(shù);具體的,基于正則表達式詞法,對dynamodb協(xié)議的數(shù)據(jù)處理指令進行詞法分析,獲取數(shù)據(jù)處理指令的指令參數(shù)和條件參數(shù)。

語法樹獲取單元72用于基于正則表達式詞法,對dynamodb協(xié)議的數(shù)據(jù)處理指令進行詞法分析,獲取數(shù)據(jù)處理指令的指令參數(shù)和條件參數(shù);具體的,基于dynamodb文法以及預(yù)讀左掃描右規(guī)約算法,對數(shù)據(jù)處理指令的指令參數(shù)和條件參數(shù)進行文法分析,獲取數(shù)據(jù)處理指令對應(yīng)的抽象語法樹。

轉(zhuǎn)換單元73用于根據(jù)抽象語法樹,將數(shù)據(jù)處理指令轉(zhuǎn)換為mongodb協(xié)議類型的數(shù)據(jù)處理指令;具體的,自下而上遍歷抽象語法樹,并根據(jù)抽象語法樹中的節(jié)點以及mongodb文法,生成mongodb協(xié)議類型的數(shù)據(jù)處理指令。

本優(yōu)選實施例的指令處理裝置60使用時,首先設(shè)置指令接收模塊61接收用戶的端口設(shè)置指令。該端口設(shè)置指令為用戶對指令處理裝置接收不同協(xié)議類型的數(shù)據(jù)處理指令的指令接收端口進行設(shè)置的指令。

隨后端口設(shè)置模塊62根據(jù)設(shè)置指令接收模塊接收的端口設(shè)置指令,設(shè)置不同協(xié)議類型的數(shù)據(jù)處理指令的指令接收端口。這里可以設(shè)置指令接收端口和不同協(xié)議類型的數(shù)據(jù)處理指令一一對應(yīng)。如使用6554端口接收mongodb協(xié)議類型的數(shù)據(jù)處理指令,使用6555端口接收dynamodb協(xié)議類型的數(shù)據(jù)處理指令等。這樣即完成了指令接收端口的設(shè)置過程。

然后指令接收模塊63接收用戶的數(shù)據(jù)處理指令,該數(shù)據(jù)處理指令為對指令處理裝置對應(yīng)的數(shù)據(jù)庫中的數(shù)據(jù)進行處理,如查找、排序等處理的指令。隨后指令接收模塊63會根據(jù)預(yù)設(shè)設(shè)定確定接收到的數(shù)據(jù)處理指令的指令接收端口。

隨后指令類型確定模塊64根據(jù)指令接收模塊63確定的指令接收端口以及預(yù)設(shè)規(guī)則,確定該指令接收端口對應(yīng)的數(shù)據(jù)處理指令的協(xié)議類型。

然后指令處理裝置60判斷指令類型確定模塊64確定的數(shù)據(jù)處理指令的協(xié)議類型是否為mongodb協(xié)議。

如數(shù)據(jù)處理指令的協(xié)議類型為mongodb協(xié)議,由于本優(yōu)選實施例的指令處理裝置60的數(shù)據(jù)庫對應(yīng)的是mongodb數(shù)據(jù)庫,因此第一指令執(zhí)行模塊65可直接執(zhí)行該數(shù)據(jù)處理指令。

如數(shù)據(jù)處理指令的協(xié)議類型不是mongodb協(xié)議,則第二指令執(zhí)行模塊66可使用預(yù)設(shè)規(guī)則將指令接收模塊63接收到的數(shù)據(jù)處理指令轉(zhuǎn)換為mongodb協(xié)議類型的數(shù)據(jù)處理指令。這里的預(yù)設(shè)規(guī)則為根據(jù)用戶發(fā)送的數(shù)據(jù)處理指令的協(xié)議類型預(yù)先設(shè)置的轉(zhuǎn)換規(guī)則。

具體轉(zhuǎn)換過程包括:

第二指令執(zhí)行模塊66的參數(shù)獲取單元71基于正則表達式詞法,對dynamodb協(xié)議的數(shù)據(jù)處理指令進行詞法分析,獲取數(shù)據(jù)處理指令的指令參數(shù)和條件參數(shù);

這里的數(shù)據(jù)處理指令的指令參數(shù)是指數(shù)據(jù)處理指令中的操作數(shù)(operand),數(shù)據(jù)處理指令的條件參數(shù)是指數(shù)據(jù)處理指令中的操作條件(condition)。

第二指令執(zhí)行模塊66的語法樹獲取單元72基于dynamodb文法以及預(yù)讀左掃描右規(guī)約算法(lalr,lookaheadleftscanrightreduction算法),對數(shù)據(jù)處理指令的指令參數(shù)和條件參數(shù)進行文法分析,獲取數(shù)據(jù)處理指令對應(yīng)的抽象語法樹。

第二指令執(zhí)行模塊66的轉(zhuǎn)換單元73自下而上遍歷抽象語法樹,并根據(jù)抽象語法樹中的節(jié)點以及mongodb文法,生成mongodb協(xié)議類型的數(shù)據(jù)處理指令。

最后由于本優(yōu)選實施例的指令處理裝置60的數(shù)據(jù)庫對應(yīng)的是mongodb數(shù)據(jù)庫,因此第二指令執(zhí)行模塊66可直接執(zhí)行轉(zhuǎn)換后的數(shù)據(jù)處理指令。

這樣即完成了本優(yōu)選實施例的指令處理裝置60的數(shù)據(jù)處理指令執(zhí)行流程。

在第一優(yōu)選實施例的基礎(chǔ)上,本優(yōu)選實施例的指令處理裝置可通過正則表達式詞法、dynamodb文法、mongodb文法以及l(fā)alr算法,實現(xiàn)了dynamodb協(xié)議的數(shù)據(jù)處理指令與mongodb協(xié)議類型的數(shù)據(jù)處理指令的相互轉(zhuǎn)換,使得對應(yīng)的指令處理裝置以及數(shù)據(jù)庫可兼容不同類型的數(shù)據(jù)處理指令,進一步提高了指令處理方法的指令處理效率。

下面通過一具體實施例說明本發(fā)明的指令處理方法及指令處理裝置的具體工作原理,請參照圖8,圖8為本發(fā)明的指令處理方法及指令處理裝置的指令處理示意圖。其中客戶端81向mongodb數(shù)據(jù)庫82發(fā)送數(shù)據(jù)處理指令。本具體實施例的指令處理裝置設(shè)置在mongodb數(shù)據(jù)庫82中。

其中mongodb數(shù)據(jù)庫82包括用于接收dynamodb協(xié)議的數(shù)據(jù)處理指令的指令接收端口821、用于接收mongodb協(xié)議的數(shù)據(jù)處理指令的指令接收端口822、用于將dynamodb協(xié)議的數(shù)據(jù)處理指令轉(zhuǎn)換為mongodb協(xié)議的數(shù)據(jù)處理指令的指令協(xié)議類型轉(zhuǎn)換插件823以及用于存儲數(shù)據(jù)的mongo數(shù)據(jù)集群824。

本具體實施例的指令處理方法及指令處理裝置使用時,mongodb數(shù)據(jù)庫82會監(jiān)聽指令接收端口821以及指令接收端口822。客戶端81也清楚指令接收端口821以及指令接收端口822的設(shè)置。

這樣當客戶端81要發(fā)送mongodb協(xié)議的數(shù)據(jù)處理指令至mongodb數(shù)據(jù)庫82時,客戶端81可以向mongodb數(shù)據(jù)庫82的指令接收端口822發(fā)送數(shù)據(jù)處理指令,如指令接收端口822接收到mongodb協(xié)議的數(shù)據(jù)處理指令,mongo數(shù)據(jù)集群824會直接根據(jù)mongodb語法進行解析,然后執(zhí)行該數(shù)據(jù)處理指令。

當客戶端81要發(fā)送dynamodb協(xié)議的數(shù)據(jù)處理指令至mongodb數(shù)據(jù)庫82時,客戶端81可以向mongodb數(shù)據(jù)庫82的指令接收端口821發(fā)送數(shù)據(jù)處理指令,如指令接收端口821接收到mongodb協(xié)議的數(shù)據(jù)處理指令,則會把mongodb協(xié)議的數(shù)據(jù)處理指令發(fā)送至指令協(xié)議類型轉(zhuǎn)換插件823,指令協(xié)議類型轉(zhuǎn)換插件823將dynamodb協(xié)議的數(shù)據(jù)處理指令轉(zhuǎn)換為mongodb協(xié)議的數(shù)據(jù)處理指令。隨后mongo數(shù)據(jù)集群824會根據(jù)mongodb語法對轉(zhuǎn)換后的數(shù)據(jù)處理指令進行解析,然后執(zhí)行該轉(zhuǎn)換后的數(shù)據(jù)處理指令。具體的數(shù)據(jù)處理指令轉(zhuǎn)換過程可參見上述指令處理方法的第二優(yōu)選實施例中的步驟s207的相關(guān)描述。

這樣即完成了本具體實施例的指令處理方法及指令處理裝置的數(shù)據(jù)處理指令執(zhí)行流程。

本發(fā)明的指令處理方法及指令處理裝置通過對非mongodb協(xié)議的數(shù)據(jù)處理指令進行對應(yīng)的協(xié)議類型轉(zhuǎn)換,使得本發(fā)明的指令處理方法及指令處理裝置可兼容不同類型的數(shù)據(jù)處理指令;由于不需要用戶對數(shù)據(jù)處理指令進行協(xié)議類型轉(zhuǎn)換,因此也簡化了數(shù)據(jù)處理指令的生成流程;解決了現(xiàn)有的指令處理方法及指令處理裝置對不同類型的數(shù)據(jù)處理指令的兼容性較差,以及對應(yīng)的數(shù)據(jù)處理指令的生成流程較為復(fù)雜的技術(shù)問題。

如本申請所使用的術(shù)語“組件”、“模塊”、“系統(tǒng)”、“接口”、“進程”等等一般地旨在指計算機相關(guān)實體:硬件、硬件和軟件的組合、軟件或執(zhí)行中的軟件。例如,組件可以是但不限于是運行在處理器上的進程、處理器、對象、可執(zhí)行應(yīng)用、執(zhí)行的線程、程序和/或計算機。通過圖示,運行在控制器上的應(yīng)用和該控制器二者都可以是組件。一個或多個組件可以有在于執(zhí)行的進程和/或線程內(nèi),并且組件可以位于一個計算機上和/或分布在兩個或更多計算機之間。

圖9和隨后的討論提供了對實現(xiàn)本發(fā)明所述的指令處理裝置所在的電子設(shè)備的工作環(huán)境的簡短、概括的描述。圖9的工作環(huán)境僅僅是適當?shù)墓ぷ鳝h(huán)境的一個實例并且不旨在建議關(guān)于工作環(huán)境的用途或功能的范圍的任何限制。實例電子設(shè)備912包括但不限于可穿戴設(shè)備、頭戴設(shè)備、醫(yī)療健康平臺、個人計算機、服務(wù)器計算機、手持式或膝上型設(shè)備、移動設(shè)備(比如移動電話、個人數(shù)字助理(pda)、媒體播放器等等)、多處理器系統(tǒng)、消費型電子設(shè)備、小型計算機、大型計算機、包括上述任意系統(tǒng)或設(shè)備的分布式計算環(huán)境,等等。

盡管沒有要求,但是在“計算機可讀指令”被一個或多個電子設(shè)備執(zhí)行的通用背景下描述實施例。計算機可讀指令可以經(jīng)由計算機可讀介質(zhì)來分布(下文討論)。計算機可讀指令可以實現(xiàn)為程序模塊,比如執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的功能、對象、應(yīng)用編程接口(api)、數(shù)據(jù)結(jié)構(gòu)等等。典型地,該計算機可讀指令的功能可以在各種環(huán)境中隨意組合或分布。

圖9圖示了包括本發(fā)明的指令處理裝置中的一個或多個實施例的電子設(shè)備912的實例。在一種配置中,電子設(shè)備912包括至少一個處理單元916和存儲器918。根據(jù)電子設(shè)備的確切配置和類型,存儲器918可以是易失性的(比如ram)、非易失性的(比如rom、閃存等)或二者的某種組合。該配置在圖9中由虛線914圖示。

在其他實施例中,電子設(shè)備912可以包括附加特征和/或功能。例如,設(shè)備912還可以包括附加的存儲裝置(例如可移除和/或不可移除的),其包括但不限于磁存儲裝置、光存儲裝置等等。這種附加存儲裝置在圖9中由存儲裝置920圖示。在一個實施例中,用于實現(xiàn)本文所提供的一個或多個實施例的計算機可讀指令可以在存儲裝置920中。存儲裝置920還可以存儲用于實現(xiàn)操作系統(tǒng)、應(yīng)用程序等的其他計算機可讀指令。計算機可讀指令可以載入存儲器918中由例如處理單元916執(zhí)行。

本文所使用的術(shù)語“計算機可讀介質(zhì)”包括計算機存儲介質(zhì)。計算機存儲介質(zhì)包括以用于存儲諸如計算機可讀指令或其他數(shù)據(jù)之類的信息的任何方法或技術(shù)實現(xiàn)的易失性和非易失性、可移除和不可移除介質(zhì)。存儲器918和存儲裝置920是計算機存儲介質(zhì)的實例。計算機存儲介質(zhì)包括但不限于ram、rom、eeprom、閃存或其他存儲器技術(shù)、cd-rom、數(shù)字通用盤(dvd)或其他光存儲裝置、盒式磁帶、磁帶、磁盤存儲裝置或其他磁存儲設(shè)備、或可以用于存儲期望信息并可以被電子設(shè)備912訪問的任何其他介質(zhì)。任意這樣的計算機存儲介質(zhì)可以是電子設(shè)備912的一部分。

電子設(shè)備912還可以包括允許電子設(shè)備912與其他設(shè)備通信的通信連接926。通信連接926可以包括但不限于調(diào)制解調(diào)器、網(wǎng)絡(luò)接口卡(nic)、集成網(wǎng)絡(luò)接口、射頻發(fā)射器/接收器、紅外端口、usb連接或用于將電子設(shè)備912連接到其他電子設(shè)備的其他接口。通信連接926可以包括有線連接或無線連接。通信連接926可以發(fā)射和/或接收通信媒體。

術(shù)語“計算機可讀介質(zhì)”可以包括通信介質(zhì)。通信介質(zhì)典型地包含計算機可讀指令或諸如載波或其他傳輸機構(gòu)之類的“己調(diào)制數(shù)據(jù)信號”中的其他數(shù)據(jù),并且包括任何信息遞送介質(zhì)。術(shù)語“己調(diào)制數(shù)據(jù)信號”可以包括這樣的信號:該信號特性中的一個或多個按照將信息編碼到信號中的方式來設(shè)置或改變。

電子設(shè)備912可以包括輸入設(shè)備924,比如鍵盤、鼠標、筆、語音輸入設(shè)備、觸摸輸入設(shè)備、紅外相機、視頻輸入設(shè)備和/或任何其他輸入設(shè)備。設(shè)備912中也可以包括輸出設(shè)備922,比如一個或多個顯示器、揚聲器、打印機和/或任意其他輸出設(shè)備。輸入設(shè)備924和輸出設(shè)備922可以經(jīng)由有線連接、無線連接或其任意組合連接到電子設(shè)備912。在一個實施例中,來自另一個電子設(shè)備的輸入設(shè)備或輸出設(shè)備可以被用作電子設(shè)備912的輸入設(shè)備924或輸出設(shè)備922。

電子設(shè)備912的組件可以通過各種互連(比如總線)連接。這樣的互連可以包括外圍組件互連(pci)(比如快速pci)、通用串行總線(usb)、火線(ieee1394)、光學總線結(jié)構(gòu)等等。在另一個實施例中,電子設(shè)備912的組件可以通過網(wǎng)絡(luò)互連。例如,存儲器918可以由位于不同物理位置中的、通過網(wǎng)絡(luò)互連的多個物理存儲器單元構(gòu)成。

本領(lǐng)域技術(shù)人員將認識到,用于存儲計算機可讀指令的存儲設(shè)備可以跨越網(wǎng)絡(luò)分布。例如,可經(jīng)由網(wǎng)絡(luò)928訪問的電子設(shè)備930可以存儲用于實現(xiàn)本發(fā)明所提供的一個或多個實施例的計算機可讀指令。電子設(shè)備912可以訪問電子設(shè)備930并且下載計算機可讀指令的一部分或所有以供執(zhí)行??商娲?,電子設(shè)備912可以按需要下載多條計算機可讀指令,或者一些指令可以在電子設(shè)備912處執(zhí)行并且一些指令可以在電子設(shè)備930處執(zhí)行。

本文提供了實施例的各種操作。在一個實施例中,所述的一個或多個操作可以構(gòu)成一個或多個計算機可讀介質(zhì)上存儲的計算機可讀指令,其在被電子設(shè)備執(zhí)行時將使得計算設(shè)備執(zhí)行所述操作。描述一些或所有操作的順序不應(yīng)當被解釋為暗示這些操作必需是順序相關(guān)的。本領(lǐng)域技術(shù)人員將理解具有本說明書的益處的可替代的排序。而且,應(yīng)當理解,不是所有操作必需在本文所提供的每個實施例中存在。

而且,盡管已經(jīng)相對于一個或多個實現(xiàn)方式示出并描述了本公開,但是本領(lǐng)域技術(shù)人員基于對本說明書和附圖的閱讀和理解將會想到等價變型和修改。本公開包括所有這樣的修改和變型,并且僅由所附權(quán)利要求的范圍限制。特別地關(guān)于由上述組件(例如元件、資源等)執(zhí)行的各種功能,用于描述這樣的組件的術(shù)語旨在對應(yīng)于執(zhí)行所述組件的指定功能(例如其在功能上是等價的)的任意組件(除非另外指示),即使在結(jié)構(gòu)上與執(zhí)行本文所示的本公開的示范性實現(xiàn)方式中的功能的公開結(jié)構(gòu)不等同。此外,盡管本公開的特定特征已經(jīng)相對于若干實現(xiàn)方式中的僅一個被公開,但是這種特征可以與如可以對給定或特定應(yīng)用而言是期望和有利的其他實現(xiàn)方式的一個或多個其他特征組合。而且,就術(shù)語“包括”、“具有”、“含有”或其變形被用在具體實施方式或權(quán)利要求中而言,這樣的術(shù)語旨在以與術(shù)語“包含”相似的方式包括。

本發(fā)明實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質(zhì)中。上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。上述的各裝置或系統(tǒng),可以執(zhí)行相應(yīng)方法實施例中的方法。

綜上所述,雖然本發(fā)明已以實施例揭露如上,實施例前的序號僅為描述方便而使用,對本發(fā)明各實施例的順序不造成限制。并且,上述實施例并非用以限制本發(fā)明,本領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動與潤飾,因此本發(fā)明的保護范圍以權(quán)利要求界定的范圍為準。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1