999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于JSON的異構(gòu)數(shù)據(jù)庫整合模型

2020-12-09 05:43:08熊海東徐德
關(guān)鍵詞:整合數(shù)據(jù)庫

熊海東 徐德

摘要:目前很多軟件應(yīng)用的核心都是基于數(shù)據(jù)庫,早期的應(yīng)用模式都是一個(gè)應(yīng)用對(duì)應(yīng)一個(gè)數(shù)據(jù)庫,隨著應(yīng)用之間的聯(lián)系增多,經(jīng)常出現(xiàn)多個(gè)應(yīng)用之間需要互相訪問彼此的數(shù)據(jù)庫,而且這些數(shù)據(jù)庫可能是異構(gòu)的,也就是需要跨數(shù)據(jù)庫進(jìn)行異構(gòu)數(shù)據(jù)庫訪問。但是跨數(shù)據(jù)庫應(yīng)用存在開發(fā)工作量大、后期維護(hù)困難、數(shù)據(jù)庫有安全隱患等問題。通過使用以JSON作為數(shù)據(jù)交互格式的特殊應(yīng)用作為各應(yīng)用的中間件應(yīng)用,讓需要跨數(shù)據(jù)庫的應(yīng)用不再直接訪問異構(gòu)的數(shù)據(jù)庫,而是訪問該中間件應(yīng)用。通過使用這種模型,既屏蔽異構(gòu)數(shù)據(jù)庫差異,又降低了開發(fā)和后期維護(hù)工作量,還提高了應(yīng)用和數(shù)據(jù)庫的安全性,實(shí)踐證明該模型簡單有效。

關(guān)鍵詞:數(shù)據(jù)庫;JSON;異構(gòu);整合

中圖分類號(hào):TP311.52;TP311.13? ? ?文獻(xiàn)標(biāo)識(shí)碼:A? ? 文章編號(hào):1007-9416(2020)10-0000-00

0 引言

數(shù)據(jù)庫技術(shù)從誕生到現(xiàn)在,經(jīng)歷文件系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、關(guān)系型數(shù)據(jù)庫、NoSQL等階段,目前市場主流應(yīng)用都是基于關(guān)系型數(shù)據(jù)庫。數(shù)據(jù)庫不僅品牌多、同一品牌下版本也很多,而且不同品牌之間使用細(xì)節(jié)方式上存在不小差異,即不同品牌之間數(shù)據(jù)是異構(gòu)的。由于各個(gè)軟件應(yīng)用開發(fā)時(shí)都是采用當(dāng)時(shí)技術(shù)成熟的主流數(shù)據(jù)庫版本,所以就形成這樣的一個(gè)現(xiàn)象,即不同時(shí)期的應(yīng)用,其數(shù)據(jù)庫經(jīng)常各不相同,既有品牌的不同,又有版本的不同。

早期的應(yīng)用由于業(yè)務(wù)相對(duì)簡單、孤立,基本上都是一個(gè)應(yīng)用只使用自己的一個(gè)專屬數(shù)據(jù)庫。隨著時(shí)代的發(fā)展,應(yīng)用的業(yè)務(wù)變得復(fù)雜化,經(jīng)常出現(xiàn)一個(gè)應(yīng)用需要去訪問多個(gè)相關(guān)聯(lián)應(yīng)用的數(shù)據(jù)庫的情況,而這個(gè)應(yīng)用所訪問得數(shù)據(jù)庫彼此之間還可能是異構(gòu)的。也就是說一個(gè)應(yīng)用要去訪問幾種不同數(shù)據(jù)庫,與此同時(shí)一個(gè)數(shù)據(jù)庫會(huì)被多個(gè)應(yīng)用同時(shí)操作,應(yīng)用和數(shù)據(jù)庫的關(guān)系是多對(duì)多,如圖1所示。這種傳統(tǒng)多對(duì)多的訪問方法被稱為“硬連接”,“硬連接”會(huì)帶來很多問題,比如性能問題、業(yè)務(wù)上數(shù)據(jù)狀態(tài)協(xié)調(diào)一致問題等。

目前避免“硬連接”主流辦法是使用接口[1]。如果某個(gè)應(yīng)用A需要訪問另一個(gè)應(yīng)用B的數(shù)據(jù)庫,這時(shí)就由應(yīng)用B根據(jù)應(yīng)用A的需要,提供一個(gè)訪問接口,該接口專門為應(yīng)用A的需要量身定造,接口的數(shù)據(jù)交互協(xié)議由A、B應(yīng)用協(xié)商溝通。假如此時(shí)應(yīng)用A又需要訪問另外一個(gè)應(yīng)用C的數(shù)據(jù)庫,這時(shí)應(yīng)用A又需要和應(yīng)用C進(jìn)行協(xié)商溝通。顯然這種方法避免了應(yīng)用和數(shù)據(jù)庫之間的多對(duì)多關(guān)系,即應(yīng)用和數(shù)據(jù)庫依然是一對(duì)一的關(guān)系,但是應(yīng)用與應(yīng)用之間依然是多對(duì)多的關(guān)系,如圖2所示。同時(shí)由于接口通常是基于HTTP協(xié)議的Web服務(wù),也就是說該接口肯定是暴露在互聯(lián)網(wǎng)上的。所以使用接口的方式仍然存在兩個(gè)弊端,一是開發(fā)維護(hù)工作量大,二是安全性不高。那么有沒有一種簡單高效、安全性高的異構(gòu)數(shù)據(jù)庫訪問方式呢?

1 模型總體架構(gòu)

如圖3所示,應(yīng)用A的數(shù)據(jù)庫A只能被應(yīng)用A訪問,應(yīng)用B如果需要訪問應(yīng)用A的數(shù)據(jù)數(shù)據(jù)庫A的話,只能通過JSON中間件間接實(shí)現(xiàn)。首先,應(yīng)用B向JSON中間件發(fā)出操作數(shù)據(jù)庫A的請(qǐng)求,中間件解析驗(yàn)證以后,轉(zhuǎn)向應(yīng)用A發(fā)出數(shù)據(jù)庫操作請(qǐng)求,中間件獲得結(jié)果、解析該結(jié)果,最后將結(jié)果發(fā)送給應(yīng)用B。對(duì)于應(yīng)用A需要訪問應(yīng)用B的數(shù)據(jù)庫情況同理。如果再加入增加應(yīng)用C及其數(shù)據(jù)庫C的話,并且C需要訪問應(yīng)用A和應(yīng)用B的數(shù)據(jù)庫,此時(shí)也只需由應(yīng)用C向中間件發(fā)出請(qǐng)求即可。

通過這種中間件的方式我們屏蔽了各應(yīng)用數(shù)據(jù)庫的訪問差異,對(duì)于某個(gè)需要訪問其他異構(gòu)數(shù)據(jù)庫的應(yīng)用而言,其他應(yīng)用的異構(gòu)數(shù)據(jù)庫是透明的,不需要關(guān)心,而只是需要維護(hù)和JSON中間件的關(guān)系即可。

應(yīng)用越多,模型的規(guī)模效應(yīng)就凸顯出來了。我們假設(shè)有n個(gè)應(yīng)用需要互相訪問,使用“硬連接”的方式,應(yīng)用與其他數(shù)據(jù)庫連接數(shù)量是n!,使用“接口”的方式所有應(yīng)用之間的連接數(shù)量是n!,而如果使用中間件的模式的話,所有應(yīng)用與中間件的連接數(shù)量是n。無疑是n的值越來越大,n的值越大,使用JSON中間件模型的規(guī)模效應(yīng)就越明顯,優(yōu)勢(shì)也越明顯。

2 使用JSON作為應(yīng)用之間的數(shù)據(jù)交換格式

在明確總體結(jié)構(gòu)以后,就需要選定一個(gè)通用數(shù)據(jù)交換格式。目前主流數(shù)據(jù)交換格式有XML和JSON,其中XML可讀性高,結(jié)構(gòu)清晰嚴(yán)謹(jǐn),解析簡單,但是作為網(wǎng)絡(luò)數(shù)據(jù)交換格式的話就稍顯臃腫,JSON作為新興的輕量級(jí)數(shù)據(jù)交換格式,擁有簡潔的語法,可以嵌套表示復(fù)雜的對(duì)象,因其簡潔至極的語法,故其網(wǎng)絡(luò)傳輸流量特別小,非常適合在互聯(lián)網(wǎng)上傳輸。模型中的應(yīng)用和中間件都具備生成和解析JSON的能力。應(yīng)用對(duì)數(shù)據(jù)庫的操作主要是“增、刪、改、查”,在模型的中間件與數(shù)據(jù)庫交互過程中,其核心業(yè)務(wù)是數(shù)據(jù)庫記錄與JSON對(duì)象[2]的雙向相互轉(zhuǎn)化。

2.1 數(shù)據(jù)庫記錄轉(zhuǎn)換為JSON

應(yīng)用有時(shí)會(huì)跨數(shù)據(jù)庫讀取數(shù)據(jù),比如用戶需要查詢其他應(yīng)用數(shù)據(jù)。假如應(yīng)用A的用戶需要查詢應(yīng)用B的數(shù)據(jù),其核心工作是應(yīng)用A的用戶讀取異構(gòu)數(shù)據(jù)的JSON數(shù)據(jù)[3]。用戶想應(yīng)用A發(fā)起數(shù)據(jù)請(qǐng)求,應(yīng)用A解析后就向JSON中間件發(fā)出數(shù)據(jù)查詢請(qǐng)求,查詢應(yīng)用B的數(shù)據(jù)的時(shí)候,中間件解析該請(qǐng)求以后就會(huì)向應(yīng)用B發(fā)出數(shù)據(jù)請(qǐng)求,應(yīng)用B就會(huì)讀取其數(shù)據(jù)庫,并將相應(yīng)的結(jié)果集轉(zhuǎn)換為JSON,然后應(yīng)用B又將JSON結(jié)果發(fā)給中間件,中間件又將JSON結(jié)果發(fā)給應(yīng)用A,應(yīng)用A將結(jié)果返回給用戶。

2.2 JSON數(shù)據(jù)持久化到數(shù)據(jù)庫

應(yīng)用除了從異構(gòu)數(shù)據(jù)庫讀取數(shù)據(jù)外,還會(huì)將數(shù)據(jù)保存到數(shù)據(jù)庫,比如用戶提交表單的操作。假如應(yīng)用A的用戶在瀏覽器里輸入了表單的信息,然后點(diǎn)擊提交,最終的結(jié)果是該用戶輸入的表單信息保存應(yīng)用B的數(shù)據(jù)庫中。該過程工作原理如下,用戶提交數(shù)據(jù)以后,應(yīng)用A收到該表單數(shù)據(jù),應(yīng)用A將該數(shù)據(jù)經(jīng)過處理以后轉(zhuǎn)化成JSON并發(fā)送給中間件,中間件收到數(shù)據(jù)以后又將該數(shù)據(jù)發(fā)送給應(yīng)用B,應(yīng)用B收到數(shù)據(jù)以后將數(shù)據(jù)持久化到自己的數(shù)據(jù)庫中。

3 應(yīng)用與中間件交互協(xié)議

在確定數(shù)據(jù)交換格式以后就需要確定具體的數(shù)據(jù)交換協(xié)議了。根據(jù)模型的架構(gòu),協(xié)議分兩個(gè)方向。一個(gè)是中間件向應(yīng)用返回的數(shù)據(jù)都只是靜態(tài)的JSON,比較簡單,比如可能是請(qǐng)求的是否成功、錯(cuò)誤提示信息、結(jié)果集等。另一個(gè)是應(yīng)用向中間件的操作請(qǐng)求,該部分協(xié)議內(nèi)容是重點(diǎn)。首先該請(qǐng)求需要向中間件表明自己需要訪問什么數(shù)據(jù)庫,其次是要告知中間件自己將執(zhí)行什么類的數(shù)據(jù)操作,最后就是需要數(shù)據(jù)庫執(zhí)行的語句。如下面的JSON所示,是應(yīng)用向中間件請(qǐng)求的JSON數(shù)據(jù)[4],鍵database表示數(shù)據(jù)庫,鍵operate表示操作類型(增加用insert、刪除用delete、修改用update、查詢用select),鍵statement表示具體的執(zhí)行語句,這個(gè)語句并不是sql,而是類似Hiberante的hql,可以使用類似對(duì)象、屬性來簡化語句,這里查詢參數(shù)都需要以常量提前整合到語句里面。

{

databse : “b”,

operate : “select”

statement : “select * from Student s where s.xh=111111111”

}

4 安全工作

模型的安全工作從被動(dòng)和主動(dòng)兩方面進(jìn)行。被動(dòng)安全工作主要是靜態(tài)的安全驗(yàn)證,主要是IP驗(yàn)證和證書驗(yàn)證。主動(dòng)安全工作主要是中間件動(dòng)態(tài)的分析每個(gè)請(qǐng)求的意圖,然后對(duì)之前的請(qǐng)求進(jìn)行關(guān)聯(lián)判斷。

4.1 被動(dòng)安全工作

中間件被動(dòng)安全工作主要是靜態(tài)的安全驗(yàn)證,主要由HTTPS、IP校驗(yàn)、證書核驗(yàn)組成。從這三方面就基本阻斷了幾乎所有的直接攻擊。首先,中間件和應(yīng)用直接交流采用的網(wǎng)絡(luò)協(xié)議是HTTPS協(xié)議,由于使用了加密的HTTPS協(xié)議,中間件和應(yīng)用之間交流的信息也許能被攻擊者捕獲,但是卻不能被翻譯。其次,中間件只接受合法IP的數(shù)據(jù)請(qǐng)求,由于中間件只和應(yīng)用打交道,而不需要和終端用戶接觸,所以可以給中間件設(shè)置IP白名單,只有白名單內(nèi)的網(wǎng)絡(luò)請(qǐng)求才會(huì)被中間件接受和處理,白名單之外IP主機(jī)的網(wǎng)絡(luò)請(qǐng)求都視為非法請(qǐng)求,直接拒絕。這基本就確保了與中間件進(jìn)行互訪的只有合法已注冊(cè)的應(yīng)用主機(jī)。為更進(jìn)一步確保網(wǎng)絡(luò)安全,模型采用了證書加密機(jī)制,中間件給每個(gè)應(yīng)用頒發(fā)注冊(cè)了證書。每次應(yīng)用與中間件之間的會(huì)話失效以后,應(yīng)用就必須帶上證書來進(jìn)行安裝驗(yàn)證。通過以上一系列的安裝工作,模型可以確保攻擊者無法通過直接的攻擊來攻擊中間件[5]。

4.2 主動(dòng)安全工作

模型的主動(dòng)安全工作主要由兩部分完成。一部分是各應(yīng)用增強(qiáng)安全性,由于應(yīng)用是直接接觸終端用戶,需要將很多功能暴露出來,所以應(yīng)用需要防止SQL注入等危險(xiǎn)攻擊行為,這部分工作由應(yīng)用的具體開發(fā)完成。另一部分是中間件主動(dòng)防御工作,中間件對(duì)應(yīng)用的每個(gè)操作請(qǐng)求都會(huì)使用過濾器進(jìn)行安全檢查,一方面由于應(yīng)用和中間件之間的協(xié)議比較特殊,阻止了很多SQL注入,另一方面過濾器會(huì)對(duì)請(qǐng)求的語句進(jìn)行合理性分析,將不合理的請(qǐng)求進(jìn)行排除并報(bào)告給管理人員。

5 結(jié)語

基于JSON的異構(gòu)數(shù)據(jù)庫整合模型經(jīng)過小范圍應(yīng)用,證明該模型簡單有效,與傳統(tǒng)的使用“硬連接”或接口的方式相比,本模型簡化了異構(gòu)數(shù)據(jù)庫訪問開發(fā)的工作量,提高了各個(gè)相關(guān)應(yīng)用整體的安全性,符合現(xiàn)代各種應(yīng)用跨異構(gòu)數(shù)據(jù)庫的訪問需要。但是在應(yīng)用由于中間件的使用的主動(dòng)安全機(jī)制的過濾器嚴(yán)謹(jǐn)苛刻,中間件執(zhí)行效率偏低,帶來應(yīng)用在使用高峰時(shí)期速度偏慢、用戶體驗(yàn)不佳的問題,后面需要進(jìn)步對(duì)安全機(jī)制進(jìn)行優(yōu)化調(diào)整。

參考文獻(xiàn)

[1] 于鵬飛.基于異構(gòu)數(shù)據(jù)庫的智慧校園系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊(教育技術(shù)),2018,17(7):47-48.

[2] 高升.基于JSON的數(shù)據(jù)庫訪問層研究與應(yīng)用[D].北京:北方工業(yè)大學(xué),2019.

[3] 胡章兵,左良利.時(shí)態(tài)JSON數(shù)據(jù)模型及查詢語言處理[J].計(jì)算機(jī)技術(shù)與發(fā)展,2019(9):32-34.

[4] Hyunmin Cheong. Translating JSON Schema logics into OWL axioms for unified data validation on a digital manufacturing platform[J].Procedia Manufacturing, 2019(28):85-89.

[5] 葉丹娜.動(dòng)態(tài)異構(gòu)信息網(wǎng)絡(luò)的表示學(xué)習(xí)研究[D].北京:北京郵電大學(xué),2019.

收稿日期:2020-08-25

基金項(xiàng)目:四川幼兒師范高等??茖W(xué)??蒲许?xiàng)目《基于微信公眾平臺(tái)的學(xué)生管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》(SYB201805)

作者簡介:熊海東(1986—),男,湖北黃岡人,碩士研究生,講師,研究方向?yàn)椋篔ava Web、移動(dòng)應(yīng)用開發(fā)、少兒編程。

JSON Based Heterogeneous Database Integration Model

XIONG Hai-dong,XU De

(1.Sichuan Preschool Educators College, Mianyang Sichuan? 621709;

2.Urumqi sub branch of the people's Bank of China,Urumqi Xinjiang? 832000)

Abstract: Nowadays the core of many software cant live without the database, the model of early softwares were one software corresponds to one database, with the increase of relation between softwares, its common that multiple softwares needs to visit each others database, and these databases may be heterogeneous, so the visit of heterogeneous database are needed. However, there are many problems while one software visits another heterogeneous database, such as large development workload, difficulty in later maintenance, and security problems with database. By using a special software which uses JSON as the data interaction format as the middleware of each software, software that need visit the others database no longer directly access the database, but access the middleware. By using this model, it can not only shield the difference between the heterogeneous databases, but also reduce the development workload, make the later software maintenance easier, and upgrade the security of softwares and databases.Its proved that this model is simple and effective.

Keywords: database; JSON; heterogeneous; integration

猜你喜歡
整合數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
談高職院校計(jì)算機(jī)教學(xué)中學(xué)生創(chuàng)新能力培養(yǎng)
淺析信息技術(shù)與小學(xué)數(shù)學(xué)教學(xué)整合
人間(2016年26期)2016-11-03 19:03:18
記初中英語詞匯教學(xué)的一次歸類、整合改革及反思
考試周刊(2016年76期)2016-10-09 08:23:04
音樂與科學(xué)有效整合的研究
成才之路(2016年26期)2016-10-08 11:39:33
幼兒教育中美術(shù)與科學(xué)整合的研究
成才之路(2016年25期)2016-10-08 10:33:44
“1+1”微群閱讀
數(shù)據(jù)庫
數(shù)據(jù)庫
主站蜘蛛池模板: 日韩欧美中文字幕在线精品| 久久精品视频一| 朝桐光一区二区| 亚洲精品人成网线在线| 九九视频免费看| 中文字幕 欧美日韩| 国产真实乱人视频| 在线播放国产99re| 亚洲男人的天堂久久精品| 91福利国产成人精品导航| 国产精品午夜福利麻豆| 欧美自慰一级看片免费| 又黄又湿又爽的视频| 亚洲中文字幕无码mv| 亚洲无码不卡网| 黄色网在线免费观看| 国产剧情一区二区| 国产精品免费入口视频| 久久香蕉国产线看观看亚洲片| 亚洲国产精品久久久久秋霞影院 | 日韩人妻精品一区| 久久人搡人人玩人妻精品| 国产精品不卡片视频免费观看| 免费高清a毛片| 国产日产欧美精品| 另类专区亚洲| 欧美A级V片在线观看| 色综合热无码热国产| 中文字幕欧美成人免费| 就去吻亚洲精品国产欧美| 久久人人97超碰人人澡爱香蕉| 免费一级成人毛片| 精品福利国产| 免费国产黄线在线观看| 日本一区二区三区精品AⅤ| 国产精品一线天| 2021国产乱人伦在线播放| 色亚洲成人| 国产成人成人一区二区| 国产精品自拍合集| 亚洲精品无码日韩国产不卡| 久久综合色播五月男人的天堂| 白浆免费视频国产精品视频| 91高清在线视频| 2020国产免费久久精品99| 国产精品白浆在线播放| 午夜无码一区二区三区| 毛片视频网址| 国产真实二区一区在线亚洲| 日韩精品中文字幕一区三区| 日本不卡在线播放| 香蕉国产精品视频| 美女国产在线| 伊人久久婷婷| 亚洲男人天堂网址| 国产国拍精品视频免费看| 久久动漫精品| 欧美a级在线| 欧美精品啪啪| 青青操国产| 亚洲一级毛片在线观播放| 日韩大片免费观看视频播放| 自慰网址在线观看| 中文字幕人成乱码熟女免费| 天天摸天天操免费播放小视频| 欧美亚洲国产精品第一页| 国产激爽爽爽大片在线观看| 国产精品无码作爱| 好吊色国产欧美日韩免费观看| 性网站在线观看| 亚洲天堂网视频| 亚洲综合专区| 国产一级毛片网站| 香蕉视频在线精品| 91精品啪在线观看国产91九色| 国产精品嫩草影院av| 丁香婷婷综合激情| 东京热一区二区三区无码视频| 99久久精品国产麻豆婷婷| 国内精品视频| 日韩福利视频导航| 久久99国产乱子伦精品免|