国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于JSON的數(shù)據(jù)交換技術(shù)應(yīng)用研究

2017-11-02 21:56:59徐寶磊羅江潘剛
軟件導(dǎo)刊 2017年10期
關(guān)鍵詞:數(shù)據(jù)交換系統(tǒng)集成數(shù)據(jù)模型

徐寶磊 羅江 潘剛

摘要:隨著信息技術(shù)在各領(lǐng)域的廣泛普及,尤其是移動(dòng)技術(shù)應(yīng)用的不斷深入,各業(yè)務(wù)部門(mén)間信息交換更加頻繁,各業(yè)務(wù)部門(mén)之間、移動(dòng)設(shè)備與Web服務(wù)端等異構(gòu)數(shù)據(jù)庫(kù)之間進(jìn)行數(shù)據(jù)共享或通信的問(wèn)題日益突出。研究了JSON數(shù)據(jù)對(duì)象在異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)間集成的應(yīng)用,利用JSON技術(shù)的特性及其相關(guān)優(yōu)勢(shì),構(gòu)建了一種基于JSON數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)交換模型,提高了異構(gòu)數(shù)據(jù)庫(kù)間數(shù)據(jù)通信的通用性和通信效率。

關(guān)鍵詞:JSON;數(shù)據(jù)交換;異構(gòu)數(shù)據(jù)庫(kù);系統(tǒng)集成;數(shù)據(jù)模型

DOIDOI:10.11907/rjdk.172299

中圖分類號(hào):TP391文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):16727800(2017)010017303

0引言

隨著信息化建設(shè)的不斷推進(jìn),各部門(mén)均建立了自己的MIS應(yīng)用系統(tǒng),這些系統(tǒng)或獨(dú)立開(kāi)發(fā)、維護(hù),或定制購(gòu)買(mǎi)整套系統(tǒng)等,在服務(wù)器平臺(tái)方面有Windows、Linux等不同系統(tǒng)的各種版本,數(shù)據(jù)庫(kù)有msSQL、MySQL、Oracle、Access,開(kāi)發(fā)語(yǔ)言有ASP、ASP.NET、JSP、PHP等。這些信息系統(tǒng)的建立在一定程度上提高了部門(mén)工作效率和信息化程度,但由于各個(gè)信息系統(tǒng)之間的相對(duì)獨(dú)立性和封閉性,數(shù)據(jù)結(jié)構(gòu)不一,有結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化等,給系統(tǒng)集成帶來(lái)了不少問(wèn)題。共享信息資源效率低下且安全性低,數(shù)據(jù)無(wú)法實(shí)現(xiàn)統(tǒng)一管理,無(wú)法進(jìn)行有效的數(shù)據(jù)分析和數(shù)據(jù)挖掘,無(wú)法給決策者提供全面、統(tǒng)一的決策信息[1],導(dǎo)致整個(gè)單位的工作效率不高。因此,迫切需要對(duì)各業(yè)務(wù)系統(tǒng)進(jìn)行整合和集成。數(shù)據(jù)交換是現(xiàn)代業(yè)務(wù)系統(tǒng)集成的關(guān)鍵,目前關(guān)于數(shù)據(jù)交換技術(shù)的研究涉及多個(gè)方面,如XML、JSON、YAML等。

1JSON簡(jiǎn)介

互聯(lián)網(wǎng)聯(lián)合組織(W3C)在1998年發(fā)布了XML可擴(kuò)展性標(biāo)記語(yǔ)言,它是一種跨平臺(tái)、跨網(wǎng)絡(luò)、跨編程語(yǔ)言的數(shù)據(jù)描述語(yǔ)言。XML廣泛應(yīng)用于傳統(tǒng)的數(shù)據(jù)交換領(lǐng)域,實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)間的數(shù)據(jù)同步。但XML由于具有文檔龐大、格式復(fù)雜、數(shù)據(jù)冗余、解析需消耗太多系統(tǒng)資源等固有缺陷,使其執(zhí)行效率低下[2]。

Clark Evans在2001年5月首次發(fā)表了YAML標(biāo)記語(yǔ)言。YAML支持對(duì)宿主語(yǔ)言的直接轉(zhuǎn)化,適合在腳本語(yǔ)言中使用,但由于存在兼容性問(wèn)題,其支持的開(kāi)發(fā)語(yǔ)言較少。

JSON(JavaScript Object Notation)屬于輕量級(jí)的數(shù)據(jù)交換格式,具有很好的易讀性和快速解析的特性。JSON文件就是普通的ASCII文本文件,使用常用的文字編輯器即可編輯。JSON可以直接用來(lái)編寫(xiě)Web頁(yè)面的某些部分,在瀏覽器中,JSON的解析速度比XML更快。與機(jī)器代碼不同,JSON不需要編譯和執(zhí)行,在大量復(fù)雜數(shù)據(jù)的存儲(chǔ)方面,JSON有希望成為傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的替代方法[3]。

2數(shù)據(jù)交換模型

整個(gè)數(shù)據(jù)交換模型包括:一個(gè)數(shù)據(jù)中心、若干部門(mén)子系統(tǒng),子系統(tǒng)分別與數(shù)據(jù)中心相連,形成一個(gè)星形拓?fù)浣Y(jié)構(gòu)。各子系統(tǒng)使用序列化的JSON對(duì)象通過(guò)數(shù)據(jù)中心與其它子系統(tǒng)通信。為提高數(shù)據(jù)檢索效率,數(shù)據(jù)中心使用具有層次性的樹(shù)形JSON數(shù)據(jù)對(duì)象存儲(chǔ)各子系統(tǒng)的數(shù)據(jù)庫(kù)、數(shù)據(jù)表及結(jié)構(gòu)信息。用戶發(fā)起查詢時(shí),模型首先進(jìn)行查詢處理,在數(shù)據(jù)中心查詢JSONtree,判斷需要檢索的子系統(tǒng)數(shù)據(jù)庫(kù)及子系統(tǒng)數(shù)據(jù)表,將查詢轉(zhuǎn)換為各個(gè)子系統(tǒng)的子查詢,并生成邏輯查詢計(jì)劃,最后將查詢結(jié)果轉(zhuǎn)換為JSON對(duì)象并顯示[4]。

節(jié)點(diǎn)的實(shí)體定義如下:

Class shujuku{

String id;

String department;

String DateName;

String Connstr;

String Tables;

……

}

JSON對(duì)象模型定義如下:

{

“id”:”1”;

“department”:”教務(wù)系統(tǒng)”;

“DateName”:”jwc”;

“Connstr”:”P(pán)rovider-SQLOLEDB.1;...”;

“Tables”:”Student...”;

……

}

2.1數(shù)據(jù)抽象并轉(zhuǎn)換為JSON對(duì)象

最常用的數(shù)據(jù)存儲(chǔ)方式為關(guān)系數(shù)據(jù)庫(kù),其遵守一定的規(guī)則范式,將來(lái)自關(guān)系數(shù)據(jù)庫(kù)DBMS的數(shù)據(jù)抽象并轉(zhuǎn)換為JSON對(duì)象。

JSON對(duì)象具有標(biāo)準(zhǔn)格式,其由3個(gè)主要元素組成:標(biāo)題、類型和屬性。屬性與關(guān)系數(shù)據(jù)庫(kù)中的屬性相似,可以是一個(gè)或多個(gè)。JSON協(xié)議中總共定義了6種數(shù)據(jù)類型[5]:string、number、boolean、空字符、array、Object。使用{}包含的一系列無(wú)序的key/value鍵值對(duì)表示:{ "TableName":"Students" }。

在創(chuàng)建JSON對(duì)象模式之后,查詢關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù),并轉(zhuǎn)換為JSON對(duì)象。將數(shù)據(jù)加載和轉(zhuǎn)換為JSON對(duì)象的算法如下:

輸入:用戶需要查詢的數(shù)據(jù);

輸出:該查詢所對(duì)應(yīng)的JSON對(duì)象;

Step1初始化:i=0,M=記錄數(shù);

Step2IF(i

Step3{讀取記錄對(duì)象;

Step4讀取該記錄對(duì)象的屬性;

Step5將該key/value鍵值對(duì)轉(zhuǎn)換為JSON對(duì)象;

Step6i=i++,跳轉(zhuǎn)到Step2};

Step7ELSE{跳轉(zhuǎn)到Step8};

Step8顯示該JSON對(duì)象。

2.2JSON查詢方法

與關(guān)系數(shù)據(jù)、XML標(biāo)記語(yǔ)言相比,JSON對(duì)象解析時(shí)不需要考慮子節(jié)點(diǎn)和父節(jié)點(diǎn)問(wèn)題,降低了數(shù)據(jù)冗余,JSON有更高的查詢檢索效率和更靈活的查詢方式[6]。

(1) N1QL:用于文件數(shù)據(jù)庫(kù)的下一代查詢語(yǔ)言,將SQL擴(kuò)展為可查詢的半結(jié)構(gòu)化數(shù)據(jù),其支持全部的JSON對(duì)象數(shù)據(jù)類型。JSON是不符合第一范式的數(shù)據(jù)模型,而N1QL則對(duì)這一數(shù)據(jù)模型進(jìn)行操作。

(2) JSONiq:構(gòu)建在XQuery之上的新型查詢語(yǔ)言,可以對(duì)各種類型的JSON對(duì)象進(jìn)行查詢,實(shí)現(xiàn)查詢分解和優(yōu)化。

(3) 針對(duì)不同的使用環(huán)境,JSON對(duì)象有多樣的數(shù)據(jù)查詢方式[7],例如JSONSQL、Jfunk、JSONPath、JSON:Select()等。從JSON對(duì)象讀取數(shù)據(jù)的算法如下:

輸入:JSON對(duì)象;

輸出:Data set (D)數(shù)據(jù)集;

Step1初始化:i=0,M=記錄數(shù);

Step2讀取JSON對(duì)象;

Step3讀取該記錄對(duì)象的屬性;

Step4IF(i

{D=D.value[i];

i++};

Step5跳轉(zhuǎn)到Step4;

Step6ELSE {跳轉(zhuǎn)到Step7};

Step7顯示該數(shù)據(jù)集。

3結(jié)語(yǔ)

與關(guān)系數(shù)據(jù)庫(kù)、XML標(biāo)記語(yǔ)言相比,基于文件的JSON對(duì)象具有更強(qiáng)的可擴(kuò)展性,是便攜式和獨(dú)立的平臺(tái),其它系統(tǒng)可以輕松地從JSON對(duì)象查詢數(shù)據(jù)[8]。幾乎所有關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)最新版本都實(shí)現(xiàn)了對(duì)JSON對(duì)象的支持。Oracle依據(jù)ANSI SQL/JSON標(biāo)準(zhǔn)實(shí)現(xiàn)了JSON對(duì)象的大部分功能,提供了JSON_VALUE()和JSON_QUERY()函數(shù)以及RETURNING子句;Microsoft數(shù)據(jù)庫(kù)系統(tǒng)在其SQL Server 2016版本中實(shí)現(xiàn)了對(duì)JSON對(duì)象的支持,提供了ISJSON)、JSON_VALUE()、OPENJSON()函數(shù),并實(shí)現(xiàn)了對(duì)查詢語(yǔ)句的支持[9]。通過(guò)使用JSON對(duì)象,業(yè)務(wù)部門(mén)子系統(tǒng)可以輕松地實(shí)現(xiàn)數(shù)據(jù)系統(tǒng)集成。

在關(guān)系數(shù)據(jù)庫(kù)方法中,數(shù)據(jù)建模受到數(shù)據(jù)庫(kù)管理系統(tǒng)的權(quán)限數(shù)量限制,當(dāng)數(shù)據(jù)量較大時(shí),系統(tǒng)檢索變得緩慢且易產(chǎn)生死鎖。在JSON中可以隨時(shí)添加具有復(fù)雜結(jié)構(gòu)的數(shù)據(jù),當(dāng)內(nèi)容更改時(shí),不需要重新設(shè)計(jì)模式,對(duì)于提取大型或巨型記錄而言,JSON對(duì)象顯得更為實(shí)用和高效[10]。在今后的工作中,將使用JSON對(duì)象替代關(guān)系數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)數(shù)據(jù)的研究。

參考文獻(xiàn)參考文獻(xiàn):

[1]劉嘉琦,孫嘉成.使用JSON完成異構(gòu)系統(tǒng)間通訊的應(yīng)用研究[J].黑龍江科技信息,2016(19):127.

[2]谷方舟,沈波.JSON數(shù)據(jù)交換格式在異構(gòu)系統(tǒng)集成中的應(yīng)用研究[J].鐵路計(jì)算機(jī)應(yīng)用,2012,21(2):14.

[3]MOHD KAMIR YUSOF, MUSTAFA MAN. Efficiency of JSON approach for data extraction and query retrieval[J]. Indonesian Journal of Electrical Engineering and Computer Science,2016,4(1):203213.

[4]張滬寅,屈乾松,胡瑞蕓.基于JSON的數(shù)據(jù)交換模型[J].計(jì)算機(jī)工程與設(shè)計(jì),2016, 36(12):33803383.

[5]朱建紅,陸保國(guó).基于對(duì)象序列化技術(shù)的數(shù)據(jù)分發(fā)系統(tǒng)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2014(1):4951.

[6]倪睿熙.一種基于JSON的異構(gòu)數(shù)據(jù)查詢方法[J].無(wú)線電通信技術(shù),2013,39(1):7376.

[7]仇小花,秦栓栓,邱果.基于Web開(kāi)發(fā)中的XML與JSON數(shù)據(jù)傳輸格式研究[J].信息技術(shù)與信息化,2017(4):123125.

[8]李金來(lái),吳濤.基于JSON數(shù)據(jù)交換的移動(dòng)終端與服務(wù)器端異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)交互[J].現(xiàn)代計(jì)算機(jī),2016(6):5557.

[9]DUSAN PETKOVIC. JSON integration in relational database systems[J]. International Journal of Computer Applications,2017,168(5):1419.

[10]高靜,段會(huì)川.JSON數(shù)據(jù)傳輸效率研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(7):22672270.

責(zé)任編輯(責(zé)任編輯:黃健)

猜你喜歡
數(shù)據(jù)交換系統(tǒng)集成數(shù)據(jù)模型
加氫站與調(diào)壓站能源供應(yīng)系統(tǒng)集成技術(shù)及應(yīng)用
煤氣與熱力(2021年6期)2021-07-28 07:21:32
面板數(shù)據(jù)模型截面相關(guān)檢驗(yàn)方法綜述
加熱爐爐內(nèi)跟蹤數(shù)據(jù)模型優(yōu)化
工業(yè)企業(yè)系統(tǒng)集成技術(shù) 系統(tǒng)集成技術(shù)與信息化集成系統(tǒng)(下)
XBRL在財(cái)務(wù)報(bào)表網(wǎng)絡(luò)數(shù)據(jù)交換中的應(yīng)用
中職學(xué)校教學(xué)資源管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
“系統(tǒng)集成”式的改革
車牌識(shí)別與視頻監(jiān)控系統(tǒng)集成探討
面向集成管理的出版原圖數(shù)據(jù)模型
一種顧及級(jí)聯(lián)時(shí)空變化描述的土地利用變更數(shù)據(jù)模型
盐池县| 云浮市| 和平县| 怀远县| 东港市| 桓仁| 铜鼓县| 威信县| 上林县| 台东县| 邹平县| 华坪县| 轮台县| 石柱| 健康| 张家川| 屏东县| 甘德县| 工布江达县| 阿拉善右旗| 乐安县| 旌德县| 舒城县| 平陆县| 潞西市| 石门县| 南汇区| 乐东| 耒阳市| 麻阳| 缙云县| 永寿县| 黑山县| 桃源县| 加查县| 民乐县| 准格尔旗| 巫山县| 凭祥市| 牟定县| 贺州市|