本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種基于中間件的數(shù)據(jù)處理方法及系統(tǒng)。
背景技術(shù):
數(shù)據(jù)庫是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫,是信息系統(tǒng)經(jīng)常使用的部分。數(shù)據(jù)庫保存的數(shù)據(jù)可以供給其他的信息系統(tǒng)使用,如業(yè)務(wù)系統(tǒng)?,F(xiàn)有技術(shù)中,業(yè)務(wù)系統(tǒng)通常直接連接或訪問一個或多個數(shù)據(jù)庫,這需要開發(fā)人員預(yù)先編寫連接或制定相關(guān)模塊進行管理,如果對獲取的數(shù)據(jù)有性能要求時,還需要各自進行優(yōu)化工作,造成大量重復(fù)工作。另外,業(yè)務(wù)系統(tǒng)直接連接數(shù)據(jù)庫,數(shù)據(jù)庫龐大的數(shù)據(jù)會造成數(shù)據(jù)讀寫速度慢,而且也存在一定的安全隱患。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提出一種基于中間件的數(shù)據(jù)處理方法及系統(tǒng),能提高數(shù)據(jù)讀寫速度和安全性。
本發(fā)明實施例提供一種基于中間件的數(shù)據(jù)處理方法,包括:
根據(jù)業(yè)務(wù)系統(tǒng)預(yù)設(shè)的數(shù)據(jù)源配置,以key-value結(jié)構(gòu)加載若干個數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù),并緩存所述數(shù)據(jù)源配置所對應(yīng)的N個數(shù)據(jù)集;N≥1;
接收所述業(yè)務(wù)系統(tǒng)發(fā)送的http請求;其中,所述http請求包括數(shù)據(jù)操作和消息體;
根據(jù)所述數(shù)據(jù)操作和所述消息體,對所述N個數(shù)據(jù)集進行數(shù)據(jù)處理。
進一步的,所述接收所述業(yè)務(wù)系統(tǒng)發(fā)送的http請求,具體為:
接收所述業(yè)務(wù)系統(tǒng)按照restful架構(gòu)發(fā)送的http請求。
進一步的,所述根據(jù)所述數(shù)據(jù)操作和所述消息體,對所述N個數(shù)據(jù)集進行數(shù)據(jù)處理,具體為:
如果所述數(shù)據(jù)操作為數(shù)據(jù)讀操作,則根據(jù)所述消息體,查詢所述N個數(shù)據(jù)集中是否存在需讀取的數(shù)據(jù)集;
若是,則向所述業(yè)務(wù)系統(tǒng)發(fā)送所述需讀取的數(shù)據(jù)集;
否則,根據(jù)所述消息體,從所述N個數(shù)據(jù)庫中的一個數(shù)據(jù)庫加載并緩存所述需讀取的數(shù)據(jù)集,再向所述業(yè)務(wù)系統(tǒng)發(fā)送所述需讀取的數(shù)據(jù)集。
進一步的,所述根據(jù)所述數(shù)據(jù)操作和所述消息體,對所述N個數(shù)據(jù)集進行數(shù)據(jù)處理,具體為:
如果所述數(shù)據(jù)操作為數(shù)據(jù)寫操作,則根據(jù)所述消息體,創(chuàng)建新的數(shù)據(jù)集,并將所述新的數(shù)據(jù)集存儲在緩存中。
進一步的,所述基于中間件的數(shù)據(jù)處理方法還包括:
根據(jù)預(yù)設(shè)的時間間隔,將緩存中的數(shù)據(jù)集按所述數(shù)據(jù)源配置更新到所述若干個數(shù)據(jù)庫中。
相應(yīng)地,本發(fā)明實施例還提供一種基于中間件的數(shù)據(jù)處理系統(tǒng),包括:加載緩存單元、接收單元和操作單元;
其中,所述加載緩存單元用于根據(jù)業(yè)務(wù)系統(tǒng)預(yù)設(shè)的數(shù)據(jù)源配置,以key-value結(jié)構(gòu)加載若干個數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù),并緩存所述數(shù)據(jù)源配置所對應(yīng)的N個數(shù)據(jù)集;N≥1;
所述接收單元用于接收所述業(yè)務(wù)系統(tǒng)發(fā)送的http請求;其中,所述http請求包括數(shù)據(jù)操作和消息體;
所述操作單元用于根據(jù)所述數(shù)據(jù)操作和所述消息體,對所述N個數(shù)據(jù)集進行數(shù)據(jù)處理。
進一步的,所述接收單元用于接收所述業(yè)務(wù)系統(tǒng)發(fā)送的http請求,具體為:
接收所述業(yè)務(wù)系統(tǒng)按照restful架構(gòu)發(fā)送的http請求。
進一步的,所述操作單元包括:查詢模塊和操作模塊;
所述查詢模塊用于如果所述數(shù)據(jù)操作為數(shù)據(jù)讀操作,則根據(jù)所述消息體,查詢所述N個數(shù)據(jù)集中是否存在需讀取的數(shù)據(jù)集;
所述操作模塊用于在所述查詢單元確定所述N個數(shù)據(jù)集中存在需讀取的數(shù)據(jù)集時,向所述業(yè)務(wù)系統(tǒng)發(fā)送所述需讀取的數(shù)據(jù)集;以及用于在所述查詢單元確定所述N個數(shù)據(jù)集中不存在需讀取的數(shù)據(jù)集時,根據(jù)所述消息體,從所述N個數(shù)據(jù)庫中的一個數(shù)據(jù)庫加載并緩存所述需讀取的數(shù)據(jù)集,再向所述業(yè)務(wù)系統(tǒng)發(fā)送所述需讀取的數(shù)據(jù)集。
進一步的,所述操作單元包括:創(chuàng)建模塊;
所述創(chuàng)建模塊用于如果所述數(shù)據(jù)操作為數(shù)據(jù)寫操作,則根據(jù)所述消息體,創(chuàng)建新的數(shù)據(jù)集,并將所述新的數(shù)據(jù)集存儲在緩存中。
進一步的,所述基于中間件的數(shù)據(jù)處理系統(tǒng)更新單元;
所述更新單元用于根據(jù)預(yù)設(shè)的時間間隔,將緩存中的數(shù)據(jù)集按所述數(shù)據(jù)源配置更新到所述若干個數(shù)據(jù)庫中。
實施本發(fā)明實施例,具有如下有益效果:
本發(fā)明實施例提供的基于中間件的數(shù)據(jù)處理方法及系統(tǒng),在業(yè)務(wù)系統(tǒng)和數(shù)據(jù)庫之間設(shè)置中間件將其隔離,并提供數(shù)據(jù)交換和緩存功能,減少業(yè)務(wù)系統(tǒng)對數(shù)據(jù)庫的依賴,提高了安全性,而且數(shù)據(jù)庫的數(shù)據(jù)集以key-value結(jié)構(gòu)緩存到中間件中,大幅度減少了業(yè)務(wù)系統(tǒng)的數(shù)據(jù)交互及檢索時間,提高數(shù)據(jù)讀寫速度。
附圖說明
圖1是本發(fā)明提供的基于中間件的數(shù)據(jù)處理方法的一種實施例的流程示意圖;
圖2是本發(fā)明提供的基于中間件的數(shù)據(jù)處理方法的另一種實施例的流程示意圖;
圖3是本發(fā)明提供的基于中間件的數(shù)據(jù)處理系統(tǒng)的一種實施例的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
參見圖1,是本發(fā)明提供的基于中間件的數(shù)據(jù)處理方法的一種實施例的流程示意圖,該方法包括步驟101至步驟103,各步驟具體如下:
步驟101:根據(jù)業(yè)務(wù)系統(tǒng)預(yù)設(shè)的數(shù)據(jù)源配置,以key-value結(jié)構(gòu)加載若干個數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù),并緩存該數(shù)據(jù)源配置所對應(yīng)的N個數(shù)據(jù)集;N≥1。
在本實施例中,業(yè)務(wù)系統(tǒng)和若干個數(shù)據(jù)庫之間需預(yù)先設(shè)置若干個數(shù)據(jù)源配置,使得本發(fā)明的數(shù)據(jù)處理系統(tǒng)(中間件系統(tǒng))能根據(jù)該配置以key-value結(jié)構(gòu)加載相應(yīng)的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù),并以key-value結(jié)構(gòu)緩存該配置所對應(yīng)的N個數(shù)據(jù)集;N≥1。
步驟102:接收業(yè)務(wù)系統(tǒng)發(fā)送的http請求;其中,http請求包括數(shù)據(jù)操作和消息體。
在本實施例中,http請求方式是最為常用的交互方式,便于其他業(yè)務(wù)系統(tǒng)的調(diào)用。
在本實施例中,當(dāng)業(yè)務(wù)系統(tǒng)需要訪問某個數(shù)據(jù)庫以進行數(shù)據(jù)操作時,業(yè)務(wù)系統(tǒng)可按照restful架構(gòu)向本發(fā)明的數(shù)據(jù)處理系統(tǒng)發(fā)送http請求,該http請求包括數(shù)據(jù)操作和消息體。其中,restful架構(gòu)是一種軟件架構(gòu)風(fēng)格,設(shè)計風(fēng)格而不是標(biāo)準(zhǔn),只是提供了一組設(shè)計原則和約束條件。數(shù)據(jù)操作使用http的get、post、delete、等,分別代表數(shù)據(jù)讀操作、數(shù)據(jù)寫操作、數(shù)據(jù)刪除操作及其他相關(guān)操作。消息體為該數(shù)據(jù)操作所對應(yīng)的內(nèi)容,內(nèi)容根據(jù)http請求的特性以json方式組織或URL參數(shù)的方式進行傳遞。
步驟103:根據(jù)數(shù)據(jù)操作和消息體,對N個數(shù)據(jù)集進行數(shù)據(jù)處理。
在本實施例中,步驟103具體為:如果數(shù)據(jù)操作為數(shù)據(jù)讀操作,消息體為URL參數(shù),則根據(jù)該消息體中的URL參數(shù),查詢配置的N個數(shù)據(jù)集中是否存在需讀取的數(shù)據(jù)集;若是,則向業(yè)務(wù)系統(tǒng)發(fā)送讀取結(jié)果;否則,根據(jù)數(shù)據(jù)配置,從數(shù)據(jù)庫加載并緩存需讀取的數(shù)據(jù)集,再向業(yè)務(wù)系統(tǒng)發(fā)送讀取的數(shù)據(jù)集。
在本實施例中,步驟103具體為:如果數(shù)據(jù)操作為數(shù)據(jù)寫操作,消息體為json結(jié)構(gòu),則根據(jù)消息體中的json結(jié)構(gòu),按配置創(chuàng)建新的數(shù)據(jù)集,并將新的數(shù)據(jù)集存儲在緩存中。
作為本實施例的一種舉例,參見圖2,圖2是本發(fā)明提供的基于中間件的數(shù)據(jù)處理方法的另一種實施例的流程示意圖。圖2與圖1的區(qū)別在于,在步驟103之后還包括步驟104。步驟104根據(jù)預(yù)設(shè)的時間間隔,將緩存中的數(shù)據(jù)集按預(yù)設(shè)的數(shù)據(jù)源配置更新到若干個數(shù)據(jù)庫中。本舉例能保證數(shù)據(jù)的持久性。此外,步驟104不限于在步驟103之后,也只需要達到預(yù)設(shè)時間間隔,即可進行同步更新
參見圖3,圖3是本發(fā)明提供的基于中間件的數(shù)據(jù)處理系統(tǒng)的一種實施例的結(jié)構(gòu)示意圖。如圖3所述,該數(shù)據(jù)處理系統(tǒng)包括:加載緩存單元301、接收單元302和操作單元303。
其中,加載緩存單元301用于根據(jù)業(yè)務(wù)系統(tǒng)預(yù)設(shè)的數(shù)據(jù)源配置,以key-value結(jié)構(gòu)加載若干個數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù),并緩存數(shù)據(jù)源配置所對應(yīng)的N個數(shù)據(jù)集;N≥1。
接收單元302用于接收業(yè)務(wù)系統(tǒng)發(fā)送的http請求;其中,http請求包括數(shù)據(jù)操作和消息體。
操作單元303用于根據(jù)數(shù)據(jù)操作和消息體,對N個數(shù)據(jù)集進行數(shù)據(jù)處理。
在本實施例中,接收單元302用于接收業(yè)務(wù)系統(tǒng)發(fā)送的http請求,具體為:接收業(yè)務(wù)系統(tǒng)按照restful架構(gòu)發(fā)送的http請求。
在本實施例中,操作單元303包括:查詢模塊、操作模塊和創(chuàng)建模塊。
查詢模塊用于如果數(shù)據(jù)操作為數(shù)據(jù)讀操作,則根據(jù)消息體,查詢N個數(shù)據(jù)集中是否存在需讀取的數(shù)據(jù)集;
操作模塊用于在查詢單元確定所述N個數(shù)據(jù)集中存在需讀取的數(shù)據(jù)集時,向業(yè)務(wù)系統(tǒng)發(fā)送需讀取的數(shù)據(jù)集;以及用于在查詢單元確定N個數(shù)據(jù)集中不存在需讀取的數(shù)據(jù)集時,根據(jù)消息體,從N個數(shù)據(jù)庫中的一個數(shù)據(jù)庫加載并緩存需讀取的數(shù)據(jù)集,再向業(yè)務(wù)系統(tǒng)發(fā)送需讀取的數(shù)據(jù)集。
創(chuàng)建模塊用于如果數(shù)據(jù)操作為數(shù)據(jù)寫操作,則根據(jù)消息體,創(chuàng)建新的數(shù)據(jù)集,并將新的數(shù)據(jù)集存儲在緩存中。
作為本實施例的一種舉例,該數(shù)據(jù)處理系統(tǒng)還包括更新單元。更新單元用于根據(jù)預(yù)設(shè)的時間間隔,將緩存中的數(shù)據(jù)集按預(yù)設(shè)的數(shù)據(jù)源配置更新到若干個數(shù)據(jù)庫中。
由上可見,本發(fā)明實施例提供的基于中間件的數(shù)據(jù)處理方法及系統(tǒng),在業(yè)務(wù)系統(tǒng)和數(shù)據(jù)庫之間設(shè)置中間件將其隔離,并提供數(shù)據(jù)交換和緩存功能,減少業(yè)務(wù)系統(tǒng)對數(shù)據(jù)庫的依賴,提高了安全性,而且數(shù)據(jù)庫的數(shù)據(jù)集以key-value結(jié)構(gòu)緩存到中間件中,大幅度減少了業(yè)務(wù)系統(tǒng)的數(shù)據(jù)交互及檢索時間,提高數(shù)據(jù)讀寫速度。
以上所述是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍。