亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于JSON的網(wǎng)絡(luò)傳輸優(yōu)化策略研究

        2016-01-27 08:08:50徐小良
        關(guān)鍵詞:扁平化

        潘 翔,徐小良

        (杭州電子科技大學(xué)計(jì)算機(jī)軟件與智能技術(shù)研究所,浙江 杭州 310018)

        ?

        基于JSON的網(wǎng)絡(luò)傳輸優(yōu)化策略研究

        潘翔,徐小良

        (杭州電子科技大學(xué)計(jì)算機(jī)軟件與智能技術(shù)研究所,浙江 杭州 310018)

        摘要:JSON是以key/value對(duì)的形式封裝數(shù)據(jù),針對(duì)JSON數(shù)據(jù)對(duì)象存在相同的key值而重復(fù)傳輸?shù)膯栴},提出一種優(yōu)化的JSON傳輸策略。該優(yōu)化策略將原本層次結(jié)構(gòu)的JSON數(shù)據(jù)進(jìn)行扁平化處理,提取出所有對(duì)象共有的key值作為模板,實(shí)現(xiàn)內(nèi)容數(shù)據(jù)value與key值相分離,只傳輸一次key值。實(shí)驗(yàn)結(jié)果表明,該JSON優(yōu)化策略有效可行,尤其是在key值相對(duì)于JSON數(shù)據(jù)比重較大,傳輸數(shù)據(jù)量較大的情況下,優(yōu)化效果更顯著。

        關(guān)鍵詞:網(wǎng)絡(luò)傳輸優(yōu)化;JSON;扁平化

        0引言

        當(dāng)前傳統(tǒng)網(wǎng)絡(luò)和移動(dòng)互聯(lián)發(fā)展迅速,數(shù)據(jù)量級(jí)也在不斷擴(kuò)大,選擇數(shù)據(jù)開銷較小的數(shù)據(jù)結(jié)構(gòu)對(duì)于降低網(wǎng)絡(luò)傳輸量具有重要作用。可擴(kuò)展標(biāo)記語言(eXtensible Markup Language,XML)不僅可以用來標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,同時(shí)也可以作為數(shù)據(jù)傳輸格式[1]。采用XML形式傳輸數(shù)據(jù),具有簡單易讀、結(jié)構(gòu)統(tǒng)一等優(yōu)點(diǎn),但其傳輸數(shù)據(jù)內(nèi)容較多,格式相對(duì)復(fù)雜,造成不必要的數(shù)據(jù)冗余。JSON作為一種更輕量級(jí)的數(shù)據(jù)交換格式,數(shù)據(jù)以key/value對(duì)的形式在網(wǎng)絡(luò)中交互,有效壓縮了數(shù)據(jù)內(nèi)容,簡化數(shù)據(jù)格式,在網(wǎng)絡(luò)數(shù)據(jù)傳輸領(lǐng)域得到了廣泛應(yīng)用[2-4]。然而,JSON由于其key/value成對(duì)出現(xiàn)的特性,仍然存在key數(shù)據(jù)重復(fù)傳輸?shù)膯栴}。因此,在移動(dòng)互聯(lián)應(yīng)用迅速普及的年代,進(jìn)一步優(yōu)化JSON格式以減少或避免key數(shù)據(jù)重復(fù)傳輸問題的研究,對(duì)節(jié)省數(shù)據(jù)傳輸開銷和改善傳輸性能具有非常重要的意義。針對(duì)上述問題,本文提出了一種基于扁平化思想的JSON優(yōu)化策略,以減少重復(fù)key數(shù)據(jù)的傳輸開銷,有效地提升了網(wǎng)絡(luò)數(shù)據(jù)傳輸效率。

        1JSON及問題提出

        JSON是基于JavaScript的一個(gè)子集,采用完全獨(dú)立于語言的文本格式。這些特性使JSON成為理想的數(shù)據(jù)交換語言,易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成[5]。JSON對(duì)象數(shù)組的一個(gè)簡單示例如圖1所示。

        {"programmers":[{"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"},

        {"firstName":"Jason","lastName":"Hunter","email":"bbbb"},

        {"firstName":"Elliotte","lastName":"Harold","email":"cccc"}...]}

        圖1JSON對(duì)象數(shù)組示例圖

        由圖1可知,每個(gè)“{}”對(duì)表示一個(gè)JSON對(duì)象,“[]”所包含的是若干個(gè)JSON對(duì)象,形成一個(gè)對(duì)象數(shù)組。圖1中可以看出,每個(gè)JSON對(duì)象都存在相同的key值,如“firstName,lastName,email”,在網(wǎng)絡(luò)中造成重復(fù)傳輸這些key。如果能夠優(yōu)化JSON格式,把相同的key值提取出來,作為單獨(dú)的key/value對(duì)存放在JSON中,使得一次網(wǎng)絡(luò)傳輸只傳輸一次key值,即可有效減少數(shù)據(jù)量。因此,減少或避免JSON數(shù)據(jù)中key值的重復(fù)傳輸對(duì)于減少網(wǎng)絡(luò)傳輸開銷是顯然的,尤其是key相對(duì)于JSON數(shù)據(jù)比重較大時(shí)。

        2JSON優(yōu)化策略

        為了解決上節(jié)所提到的問題,本文提出的JSON優(yōu)化算法的基本思想是將原本層次結(jié)構(gòu)的JSON對(duì)象扁平化處理:提取出所有數(shù)據(jù)對(duì)象共有的key值作為模板放入一個(gè)根據(jù)特定規(guī)則、預(yù)先設(shè)定的鍵值對(duì)中;而數(shù)據(jù)對(duì)象中內(nèi)容數(shù)據(jù)value則由原本鍵值對(duì)形式扁平化為普通數(shù)據(jù)數(shù)組。特別的,如果key值對(duì)應(yīng)的value值仍然是一個(gè)對(duì)象,即內(nèi)嵌對(duì)象,將會(huì)遞歸地分離內(nèi)容數(shù)據(jù)與key值模板。

        為了更好地闡述JSON優(yōu)化策略及實(shí)現(xiàn),本文基于JAVA編程語言進(jìn)行說明。

        優(yōu)化策略的優(yōu)化過程可由狀態(tài)機(jī)M(JSON)=(Q,S,T,f,g)表示,如圖2所示。

        圖2 優(yōu)化算法狀態(tài)機(jī)

        其中Q是有限狀態(tài)集;T是觸發(fā)事件集;S是輸入JSON序列集;f是狀態(tài)轉(zhuǎn)換函數(shù)集;Q*S->Q,(其中*表示狀態(tài)集Q根據(jù)輸入序列S的不同所發(fā)生的狀態(tài)變化);g為輸出集;N∈Q,是狀態(tài)集的初態(tài),即JSON未開始解析前的狀態(tài)。

        狀態(tài)集Q包括:{N:初態(tài);A:數(shù)組型節(jié)點(diǎn);A(i):數(shù)組型節(jié)點(diǎn)的元素,i∈{1,2,3,…,n};O:JavaBean型對(duì)象節(jié)點(diǎn);O(i):JavaBean型對(duì)象的屬性,i∈{1,2,3,…,n};T:中間節(jié)點(diǎn),臨時(shí)狀態(tài)集;C:最終節(jié)點(diǎn),完成狀態(tài),即帶有模板的JSON序列;}

        觸發(fā)事件集T包括:{FO:JavaBean型對(duì)象節(jié)點(diǎn)解析完成;FA:數(shù)組型節(jié)點(diǎn)解析完成;TO:當(dāng)前節(jié)點(diǎn)是JavaBean型對(duì)象;TA:當(dāng)前節(jié)點(diǎn)是數(shù)組型;FC:所有節(jié)點(diǎn)處理完成;}

        輸入序列集S包括:{JsonArray:JSON數(shù)組型序列;JavaBean:JSON中JavaBean對(duì)象序列;Other:JSON中基礎(chǔ)數(shù)據(jù)類型,如int,float,double等;End:JSON中一個(gè)key/value結(jié)束標(biāo)示符;Complete:JSON中所有key/value結(jié)束標(biāo)示符;}

        狀態(tài)轉(zhuǎn)換函數(shù)f包括:{f(N,JsonArray)=A,f(A(i),JavaBean)=O,f(O(i),Other)=A,f(A(i),End)=T,f(T,JsonArray)=A,f(T,Complete)=C},其中當(dāng)f(A(i),JavaBean)時(shí)提取相應(yīng)模板數(shù)據(jù),存入一個(gè)按一定規(guī)則命名的key值中。

        3理論分析

        原始JSON數(shù)據(jù)傳輸?shù)拈_銷計(jì)算公式如下:

        (1)

        式中,Ai表示JSON數(shù)組元素對(duì)象的第i個(gè)屬性(Attribute)的長度,i∈{1,2,3,…,m};Dij表示第j個(gè)數(shù)組元素對(duì)象的第i個(gè)屬性對(duì)應(yīng)的數(shù)據(jù)(Data)長度,j∈{1,2,3,…,n};KL表示該JSON數(shù)組對(duì)象的key的字符長度(KeyLength)。原始JSON的數(shù)據(jù)開銷主要在Ai的迭代相加上,因?yàn)镴SON語法的原因,Ai被重復(fù)相加,明顯導(dǎo)致數(shù)據(jù)傳輸開銷增大。

        經(jīng)過優(yōu)化后的JSON的開銷計(jì)算公式為:

        (2)

        式中,tKL表示提取出來的公共模板長度。

        特別地,當(dāng)JSON對(duì)象數(shù)組中的元素包含內(nèi)嵌對(duì)象的情況對(duì)其進(jìn)一步優(yōu)化,下面對(duì)這種情況下的開銷計(jì)算進(jìn)行分析。

        原始JSON對(duì)象數(shù)組當(dāng)存在對(duì)象內(nèi)嵌時(shí),其數(shù)據(jù)傳輸開銷計(jì)算公式為:

        (3)

        式中,JAlj表示第j個(gè)JSON數(shù)組元素對(duì)象的第個(gè)屬性對(duì)應(yīng)的內(nèi)嵌對(duì)象的各個(gè)屬性長度之和:

        (4)

        式中,jai表示該內(nèi)嵌對(duì)象的第i個(gè)屬性長度,i∈{1,2,3,…,m}。JDlj表示第l個(gè)JSON數(shù)組對(duì)象的第j個(gè)屬性對(duì)應(yīng)的內(nèi)嵌對(duì)象的各個(gè)屬性對(duì)應(yīng)的實(shí)際數(shù)據(jù)長度之和:

        (5)

        式中,jdk表示該內(nèi)嵌對(duì)象的第k個(gè)屬性長度,k∈{1,2,3,…,m}。

        對(duì)象內(nèi)嵌情況下經(jīng)過優(yōu)化后的JSON的數(shù)據(jù)開銷計(jì)算公式如下:

        (6)

        式中,tKLp表示由優(yōu)化提取出的各個(gè)模板的長度,p∈{1,2,3,…,q}。

        在大數(shù)量級(jí)情況下,∑tKL+KL長度將遠(yuǎn)小于公式前半部分,故而優(yōu)化效果如下:

        (7)

        當(dāng)JSON對(duì)象數(shù)組元素個(gè)數(shù)越多,即n越大,上式差值越大,優(yōu)化效果也更加明顯。

        經(jīng)過進(jìn)一步研究分析,JSON的優(yōu)化效果還和對(duì)象屬性長度與該屬性對(duì)應(yīng)數(shù)據(jù)長度的比值有關(guān),即Ai/Dij的值。這里把Ai/Dij的算術(shù)平均值記作χ,由比較兩個(gè)公式可以得出, χ的值越大,經(jīng)過優(yōu)化后JSON減少的開銷越多,優(yōu)化效果越明顯。

        4實(shí)驗(yàn)驗(yàn)證

        根據(jù)理論分析可知,在不同的χ情況下,JSON優(yōu)化效果是不同的。實(shí)驗(yàn)選定χ值為0.5的一系列不同個(gè)數(shù)的JSON數(shù)組進(jìn)行實(shí)驗(yàn),結(jié)果如表1所示。

        表1 JSON優(yōu)化前后文本大小及傳輸時(shí)間比較

        由表1可得出,本文的JSON優(yōu)化效果是明顯的,特別是在JSON數(shù)據(jù)量較大的情況下。

        針對(duì)不同的χ值進(jìn)行實(shí)驗(yàn),結(jié)果如圖3。曲線1表示優(yōu)化后的JSON相對(duì)原始JSON的優(yōu)化率,曲線2表示JSON優(yōu)化前后傳輸時(shí)間的比值。

        圖3 各χ值下JSON優(yōu)化情況

        圖3數(shù)據(jù)顯示,隨著χ值的增大,JSON優(yōu)化效果更明顯,網(wǎng)絡(luò)傳輸時(shí)間更少。實(shí)驗(yàn)結(jié)果符合預(yù)期理論分析。

        5結(jié)束語

        本文提出的JSON優(yōu)化策略在基于扁平化思想的基礎(chǔ)上,提取重復(fù)的key值數(shù)據(jù),大大降低了數(shù)據(jù)的重復(fù)傳輸量,實(shí)驗(yàn)結(jié)果證明該策略優(yōu)化效果明顯。研究成果對(duì)于減少網(wǎng)絡(luò)流量消耗,提高信息傳輸效率具有一定理論的價(jià)值,而且優(yōu)化策略易于實(shí)現(xiàn),代碼開發(fā)便捷,因此在工程上具有一定的應(yīng)用價(jià)值。在以后的工作中,可以針對(duì)更多、更復(fù)雜的JSON對(duì)象類型的優(yōu)化開展更深入的理論分析和相關(guān)研究。

        參考文獻(xiàn)

        [1]方躍堅(jiān),余枝強(qiáng),翟磊,等.一種混合并行XML解析方法[J].軟件學(xué)報(bào),2013,24(6):1196-1206.

        [2]Maeda K.Performance evaluation of object serialization libraries in XML,JSON and binary formats[C]//Digital Information and Communication Technology and Its Applications,Second International Conference on.IEEE,2012:177-182.

        [3]Phan B V,Pardede E.Active XML(AXML)research:Survey on the representation,system architecture,data exchange mechanism and query evaluation[J].Journal of Network and Computer Applications,2014,37:348-364.

        [4]Cavalieri F,Guerrini G,Mesiti M.XSPath:Navigation on XML Schema-s Made Easy[J].IEEE Transactions on Knowledge and Data Engineering,2014,26(2):485-499.

        [5]崔璨,倪宏.使用JSON對(duì)AJAX技術(shù)中的XML性能的優(yōu)化仿真[J].通信技術(shù),2009,42(8):108-110.

        Research on the Optimization Strategy Based on

        JSON Network Transmission

        Pan Xiang,Xu Xiaoliang

        (InstituteofComputerSoftwareandIntelligentTechnology,HangzhouDianziUniversity,HangzhouZhejiang310018,China)

        Abstract:JSON encapsulates data in the form of key/value.This paper aims to introduce an optimization strategy to solve the repetition transmission caused by the key of JSON.This optimization strategy flattens the original JSON data which was hierarchy,extracts the common key value as a template,thus separating the content data of value from the template.As is verified in the experiment,JSON format adopting this optimization strategy is feasible and effective the optimization effect is more obvious especially in the key value as a larger proportion of JSON data and the condition of large the amount of data transmission.

        Key words:optimization of network transmission;JSON;flattening

        中圖分類號(hào):TP393.2

        文獻(xiàn)標(biāo)識(shí)碼:A

        文章編號(hào):1001-9146(2015)05-0027-04

        作者簡介:潘翔(1990-),男,浙江東陽人,在讀研究生,移動(dòng)互聯(lián)網(wǎng).徐小良教授,E-mail:xxl@hdu.edu.cn.

        基金項(xiàng)目:浙江省公益技術(shù)研究計(jì)劃資助項(xiàng)目(2014C33066)

        收稿日期:2015-01-14

        DOI:10.13954/j.cnki.hdu.2015.05.006

        猜你喜歡
        扁平化
        扁平化設(shè)計(jì)在手機(jī)界面中的發(fā)展趨勢(shì)
        流行色(2019年7期)2019-09-27 09:33:20
        管理學(xué)的新挑戰(zhàn):硅谷的“扁平化”學(xué)得來嗎?
        能源(2017年7期)2018-01-19 05:05:14
        扁平化設(shè)計(jì)的發(fā)展趨勢(shì)、優(yōu)勢(shì)與成因
        電子制作(2017年2期)2017-05-17 03:55:24
        扁平化的球星Ⅱ
        重看圖形界面“扁平化”與“擬物化”之爭——關(guān)于設(shè)計(jì)思維的探討
        扁平化視覺設(shè)計(jì)風(fēng)格研究
        扁平化的球星
        扁平化的球星
        扁平化的球星
        扁平化的球星
        人妻熟妇乱又伦精品hd| 亚洲女同系列高清在线观看| 国产av在线观看91| 97精品一区二区三区| 国产亚洲2021成人乱码| 福利在线国产| av网页在线免费观看| 久久久中文字幕日韩精品| 久久久久久久97| 久久99精品久久久久久久清纯| 大白屁股流白浆一区二区三区| 亚洲国产综合人成综合网站| 成午夜精品一区二区三区| 国产激情视频白浆免费| 黄色三级视频中文字幕| 99人中文字幕亚洲区三| 久久久久人妻精品一区蜜桃| 无码精品一区二区三区超碰| 中文字幕亚洲视频三区| 亚洲成熟女人毛毛耸耸多| 久久精品国产www456c0m| 欧美色资源| 国产女人乱码一区二区三区| 亚洲一区av在线观看| 久久ri精品高清一区二区三区| 免费高清视频在线观看视频| 精品少妇一区二区三区免费| 日韩欧美人妻一区二区三区| 亚洲欧洲精品成人久久曰影片| 亚洲中文字幕乱码在线视频| 国产人妻高清国产拍精品| 国产又色又爽无遮挡免费| 色优网久久国产精品| 日韩一级黄色片一区二区三区| 免费a级作爱片免费观看美国| 极品美女高潮喷白浆视频| 亚洲五月天中文字幕第一页| 国产又猛又黄又爽| 五十路熟久久网| 美国又粗又长久久性黄大片| 国产精品免费观看调教网|