• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

      2017-11-02 21:56徐寶磊羅江潘剛
      軟件導(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)買整套系統(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)用
      面板數(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)用
      “系統(tǒng)集成”式的改革
      車牌識(shí)別與視頻監(jiān)控系統(tǒng)集成探討
      面向集成管理的出版原圖數(shù)據(jù)模型
      一種顧及級(jí)聯(lián)時(shí)空變化描述的土地利用變更數(shù)據(jù)模型
      临武县| 宁强县| 临潭县| 虞城县| 南宫市| 岑巩县| 怀化市| 昌江| 孙吴县| 商都县| 进贤县| 兴仁县| 北海市| 习水县| 行唐县| 阜新| 剑阁县| 禄劝| 贵德县| 南华县| 连南| 玉门市| 习水县| 抚远县| 莲花县| 错那县| 门源| 治多县| 洱源县| 康定县| 大埔县| 饶河县| 大城县| 小金县| 博罗县| 贵南县| 呼玛县| 莱阳市| 和龙市| 锡林浩特市| 兰西县|