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

        ?

        基于對(duì)象序列化技術(shù)的數(shù)據(jù)分發(fā)系統(tǒng)

        2014-07-23 01:37:34朱建紅陸保國(guó)
        關(guān)鍵詞:數(shù)據(jù)格式序列化數(shù)據(jù)源

        朱建紅 陸保國(guó)

        (中國(guó)電子科技集團(tuán)公司第二十八研究所 江蘇 210007)

        0 引 言

        當(dāng)前C4I系統(tǒng)的體系結(jié)構(gòu)正處在向構(gòu)件化、服務(wù)化的方向發(fā)展,隨著我軍新一代裝備的陸續(xù)加入、新型的網(wǎng)絡(luò)設(shè)施以及嶄新的軟件開(kāi)發(fā)模式的應(yīng)用都對(duì)分布式實(shí)時(shí)環(huán)境下的數(shù)據(jù)分發(fā)服務(wù)(Data Distribution Service,DDS)提出了更高的需求。隨著各種類型數(shù)據(jù)源的大量出現(xiàn),信息處理系統(tǒng)需要將不同地點(diǎn)和不同時(shí)間的數(shù)據(jù)進(jìn)行整合,數(shù)據(jù)分發(fā)過(guò)程隨著數(shù)據(jù)需求的多樣性而變得更加復(fù)雜,數(shù)據(jù)分發(fā)不僅需要建立兩者間的數(shù)據(jù)傳遞關(guān)系,還需要提供數(shù)據(jù)在時(shí)間、空間和功能上的擴(kuò)展能力。目前,國(guó)外已經(jīng)有比較成熟的DDS產(chǎn)品,像美國(guó)RTI(Real -Time Innovations,Inc.)公司的 NDDS(Network Data Distribution Service)已經(jīng)廣泛應(yīng)用到了美國(guó)海、陸、空、航天各個(gè)領(lǐng)域。而我國(guó)對(duì)分布式實(shí)時(shí)通信環(huán)境下數(shù)據(jù)分發(fā)服務(wù)的研究尚處于起步階段。

        本文針對(duì)當(dāng)前指揮控制系統(tǒng)中對(duì)分布式情況下結(jié)構(gòu)化數(shù)據(jù)的實(shí)時(shí)傳輸和共享需求,提出了一個(gè)以數(shù)據(jù)為中心的網(wǎng)絡(luò)中間件,采用發(fā)布/訂閱通信模式,結(jié)合輕量級(jí)的數(shù)據(jù)交換格式JSON(JavaScript Object Notation),提供了統(tǒng)一、一致的應(yīng)用程序編程接口AP I,為實(shí)時(shí)環(huán)境下以數(shù)據(jù)為中心的分布式應(yīng)用提供高效、有用的通信服務(wù)。

        1 基于JSON的對(duì)象序列化算法

        1.1 JSON 文法簡(jiǎn)介

        JSON是一種用于標(biāo)記JavaScript對(duì)象的數(shù)據(jù)交換格式。不僅易于人類閱讀和編程,同時(shí)易于機(jī)器解析和生成。JSON是采用完全獨(dú)立于語(yǔ)言的文本格式,但是也使用了類似于各種語(yǔ)言的習(xí)慣(C,C++,Object-C,C#,JAVA,JavaScript,Python,Ruby等),這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言。

        JSON是一個(gè)輕量級(jí)的數(shù)據(jù)交換格式,和XML一樣是基于純文本的,但是JSON的數(shù)據(jù)格式非常簡(jiǎn)單靈活,用之進(jìn)行數(shù)據(jù)交換是一個(gè)很好的選擇。JSON和XML最大的不同在于XML是一個(gè)完整的標(biāo)記語(yǔ)言,而JSON不是。XML在數(shù)據(jù)存儲(chǔ),擴(kuò)展性和高級(jí)檢索方面具備對(duì)JSON的優(yōu)勢(shì),而JSON則比XML更加小巧,靈活,更容易解析,有著更好的序列化性能,更適合于網(wǎng)絡(luò)數(shù)據(jù)傳輸。

        JSON協(xié)議中總共定義了6種數(shù)據(jù)格式:

        ①string,其格式為:“abc”;

        ②number,其格式為:12345(int),12.356(float);

        ③boolean,其格式為:true或false(沒(méi)有雙引號(hào),否則被視為一個(gè)string);

        ④空字符,null(小寫)。

        ⑤array,使用[]包含所有元素,每個(gè)元素用逗號(hào)隔開(kāi),元素可以是任意的 value,其格式為:[“abc”,1234,false,null];

        ⑥Object,使用{}包含的一系列無(wú)序的key-value鍵值對(duì)表示的,和JAVA中的Map類似。(key只能用string表示,而且不能包含特殊的字符),其格式為:{”city”:”BeiJing”,”street”:”ChaoYangRoad”,”postcode”:100025}。

        1.2 基于JSON 的對(duì)象序列化算法的設(shè)計(jì)

        本文需要將結(jié)構(gòu)化的數(shù)據(jù)抽象成JSON的對(duì)象,這就需要在JSON的對(duì)象中包含數(shù)據(jù)對(duì)象名稱,數(shù)據(jù)條數(shù),數(shù)據(jù)結(jié)構(gòu)描述,數(shù)據(jù)內(nèi)容等四個(gè)方面,結(jié)合JSON提供的6種數(shù)據(jù)格式我們采用array和object兩種數(shù)據(jù)格式和表達(dá)結(jié)構(gòu)化數(shù)據(jù)的內(nèi)容。

        首先用一個(gè)名稱為”root”的object表示整個(gè)結(jié)構(gòu)化數(shù)據(jù);

        再分別用名稱為"objname"和"rowcnt"的 object表示數(shù)據(jù)對(duì)象名稱和數(shù)據(jù)條數(shù);

        再用一個(gè)名稱為”struct”的 array表示數(shù)據(jù)的結(jié)構(gòu),其中包含字段名稱,字段類型和字段大小,在該array中每個(gè)字段都用相應(yīng)的item表示,以便和下面描述的數(shù)據(jù)內(nèi)容映射;

        最后用一個(gè)名稱為”content”的array來(lái)表示數(shù)據(jù)內(nèi)容,每行數(shù)據(jù)分別用一個(gè) object作為該 array的元素,而在每個(gè) object中用一個(gè)object來(lái)描述該數(shù)據(jù)行的行號(hào),并用相應(yīng)的item來(lái)表示關(guān)聯(lián)字段的值。

        至此我們就可以將一個(gè)結(jié)構(gòu)化的數(shù)據(jù)抽象為JSON對(duì)象的數(shù)據(jù)格式,然后可以通用JSON協(xié)議提供的序列化函數(shù)將JSON對(duì)象序列化為二進(jìn)制數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)傳輸。以下是抽象的 JSON對(duì)象:

        “root”

        {

        "objname":"機(jī)場(chǎng)數(shù)據(jù)",

        "rowcnt":"3",

        "struct"

        [

        "item1":"機(jī)場(chǎng),varchar,200",

        "item2":"地區(qū),varchar,50",

        "item3":"經(jīng)度,number,(5,2)",

        "item4":"緯度,number,(5,2)",

        ]

        "content"

        [

        {

        "contentno":"1",

        "item1":"楊村",

        "item2":"北京",

        "item3":"117.05",

        "item4":"39.22"

        },

        {

        "contentno":"2",

        "item1":"濰坊",

        "item2":"山東",

        "item3":"119.07",

        "item4":"36.38"

        }

        ]

        }

        2 數(shù)據(jù)分發(fā)架構(gòu)

        數(shù)據(jù)分發(fā)實(shí)現(xiàn)結(jié)構(gòu)化數(shù)據(jù)的實(shí)時(shí)共享,通過(guò)分布式的共享關(guān)系管理確定特定數(shù)據(jù)對(duì)象的分發(fā)方向,當(dāng)數(shù)據(jù)源產(chǎn)生數(shù)據(jù)時(shí)觸發(fā)分發(fā)事件,將帶結(jié)構(gòu)元信息的數(shù)據(jù)包發(fā)到數(shù)據(jù)用戶,數(shù)據(jù)用戶根據(jù)接收到數(shù)據(jù)包的內(nèi)容觸發(fā)相應(yīng)的處理流程。數(shù)據(jù)用戶可按需執(zhí)行數(shù)據(jù)分析、數(shù)據(jù)入庫(kù)等操作。

        3 數(shù)據(jù)分發(fā)方案設(shè)計(jì)

        信息流程包含注冊(cè)階段和分發(fā)階段。注冊(cè)階段為數(shù)據(jù)源系統(tǒng)發(fā)布數(shù)據(jù)、數(shù)據(jù)用戶系統(tǒng)訂閱數(shù)據(jù),形成數(shù)據(jù)共享關(guān)系;分發(fā)階段為數(shù)據(jù)源系統(tǒng)提交數(shù)據(jù)、觸發(fā)數(shù)據(jù)分發(fā),數(shù)據(jù)用戶系統(tǒng)獲取并使用數(shù)據(jù),完成數(shù)據(jù)共享過(guò)程。詳細(xì)流程如下:

        3.1 數(shù)據(jù)發(fā)布(數(shù)據(jù)源系統(tǒng))

        (1)數(shù)據(jù)發(fā)布:作戰(zhàn)應(yīng)用通過(guò)數(shù)據(jù)分發(fā)接口提交數(shù)據(jù)發(fā)布請(qǐng)求。

        (2)數(shù)據(jù)源注冊(cè):數(shù)據(jù)分發(fā)服務(wù)接到請(qǐng)求后,驗(yàn)證合法性,并向數(shù)據(jù)中心注冊(cè)該數(shù)據(jù)源,數(shù)據(jù)中心將數(shù)據(jù)格式、數(shù)據(jù)源系統(tǒng)信息存入數(shù)據(jù)目錄。

        3.2 數(shù)據(jù)訂閱(數(shù)據(jù)用戶系統(tǒng))

        (1)數(shù)據(jù)訂閱:數(shù)據(jù)用戶系統(tǒng)的應(yīng)用通過(guò)數(shù)據(jù)分發(fā)接口提交數(shù)據(jù)訂閱請(qǐng)求。

        (2)數(shù)據(jù)用戶注冊(cè):數(shù)據(jù)分發(fā)服務(wù)接到請(qǐng)求后,驗(yàn)證合法性,并向數(shù)據(jù)中心注冊(cè)該數(shù)據(jù)用戶,數(shù)據(jù)中心將數(shù)據(jù)訂閱信息存入數(shù)據(jù)目錄,并向數(shù)據(jù)源系統(tǒng)的分發(fā)服務(wù)部署訂閱信息;注冊(cè)成功后,數(shù)據(jù)用戶系統(tǒng)的數(shù)據(jù)分發(fā)服務(wù)在本系統(tǒng)部署數(shù)據(jù)訂閱信息,將訂閱進(jìn)程和數(shù)據(jù)類型進(jìn)行綁定。

        數(shù)據(jù)的發(fā)布和訂閱除了上述的由應(yīng)用調(diào)用API的方式外,還應(yīng)支持管理員注冊(cè)模式。通過(guò)數(shù)據(jù)中心的管理系統(tǒng),進(jìn)行數(shù)據(jù)、數(shù)據(jù)源、數(shù)據(jù)用戶的添加,進(jìn)行數(shù)據(jù)發(fā)布的集中管理。

        3.3 數(shù)據(jù)推送(數(shù)據(jù)源系統(tǒng))

        (1)數(shù)據(jù)提交:業(yè)務(wù)應(yīng)用通過(guò)數(shù)據(jù)分發(fā)接口,向方法服務(wù)提交數(shù)據(jù)。

        (2)數(shù)據(jù)傳輸:根據(jù)數(shù)據(jù)分發(fā)的配置信息,處理接收到的數(shù)據(jù)提交請(qǐng)求,按照(元數(shù)據(jù),數(shù)據(jù)內(nèi)容)的格式進(jìn)行數(shù)據(jù)包組織,并發(fā)送到對(duì)應(yīng)的數(shù)據(jù)分發(fā)目的端。

        3.4 數(shù)據(jù)使用(數(shù)據(jù)用戶系統(tǒng))

        (1)數(shù)據(jù)通知:目的端的數(shù)據(jù)分發(fā)服務(wù)接收到結(jié)構(gòu)化的數(shù)據(jù)包后,根據(jù)數(shù)據(jù)分發(fā)配置信息確定接收和使用數(shù)據(jù)的業(yè)務(wù)應(yīng)用,通知到業(yè)務(wù)應(yīng)用,由業(yè)務(wù)應(yīng)用通過(guò)封裝號(hào)的數(shù)據(jù)查詢接口進(jìn)行數(shù)據(jù)查詢。通知的方式包括網(wǎng)絡(luò)消息和回調(diào)函數(shù)兩種。

        (2)數(shù)據(jù)入庫(kù):業(yè)務(wù)應(yīng)用可按實(shí)際需求通過(guò)數(shù)據(jù)庫(kù)的訪問(wèn)接口進(jìn)行數(shù)據(jù)的本地入庫(kù)。也可有分發(fā)服務(wù)自動(dòng)入庫(kù),但目的端的數(shù)據(jù)庫(kù)結(jié)構(gòu)定義必須與發(fā)布的數(shù)據(jù)對(duì)象的結(jié)構(gòu)定義一致。

        下圖是數(shù)據(jù)分發(fā)工作流程圖:

        圖2 數(shù)據(jù)分發(fā)流程圖

        4 結(jié)論

        本文以我軍指控系統(tǒng)為研究背景,以數(shù)據(jù)的實(shí)時(shí)共享為目標(biāo),以對(duì)象序列化技術(shù)為基礎(chǔ),基于核心支撐平臺(tái)實(shí)現(xiàn)了數(shù)據(jù)源和數(shù)據(jù)用戶的有機(jī)融合,提供系統(tǒng)間基于數(shù)據(jù)的聯(lián)動(dòng)機(jī)制。主要有以下特點(diǎn):

        ①實(shí)時(shí)的數(shù)據(jù)傳送?;诰W(wǎng)絡(luò)底層傳輸機(jī)制、消息隊(duì)列等,實(shí)時(shí)地傳送需要共享的數(shù)據(jù),提高數(shù)據(jù)共享的時(shí)效性,實(shí)現(xiàn)數(shù)據(jù)保鮮。

        ②服務(wù)化的共享關(guān)系管理?;跀?shù)據(jù)發(fā)布、訂閱、通知等服務(wù)化機(jī)制,實(shí)現(xiàn)數(shù)據(jù)源和數(shù)據(jù)用戶的解耦。

        ③結(jié)構(gòu)化數(shù)據(jù)的深層共享。遵循數(shù)據(jù)分類和數(shù)據(jù)標(biāo)準(zhǔn),以帶自解析能力的格式在網(wǎng)絡(luò)上發(fā)布和傳輸,使用者可根據(jù)共享數(shù)據(jù)本身理解數(shù)據(jù)的結(jié)構(gòu)。

        [1]李軍,“數(shù)據(jù)分發(fā)服務(wù)中的全局?jǐn)?shù)據(jù)空間(GDS)的研究與設(shè)計(jì)”,船舶電子工程,Vol.30,No.4,2010.

        [2]張濤,黃強(qiáng),毛雅磊,“一個(gè)基于JSON的對(duì)象序列化算法”,計(jì)算機(jī)工程與應(yīng)用,Vol.43,No.15,1970.

        [3]馬衛(wèi)東,李幼平,“數(shù)據(jù)分發(fā)軟件設(shè)計(jì)分發(fā)”計(jì)算機(jī)應(yīng)用,vol.55,no.4,pp.913–918,2005.

        [4]李策,金建中,“陸軍作戰(zhàn)戰(zhàn)術(shù)數(shù)據(jù)分發(fā)研究”指揮控制和仿真,vol.32,no.2,pp.29–34,2010.

        [5]魯杰,王永斌,劉宏波,“基于XML 的報(bào)務(wù)系統(tǒng)數(shù)據(jù)分發(fā)機(jī)制研究”計(jì)算機(jī)工程與設(shè)計(jì),vol.31,no.12,pp.2707–2709,2010.

        [6]溫水生,周琪云,江接寶,張任龍,胡斌“面向服務(wù)的數(shù)據(jù)分發(fā)機(jī)制的研究與實(shí)現(xiàn)”計(jì)算機(jī)與現(xiàn)代化,pp.128–135,2012.

        猜你喜歡
        數(shù)據(jù)格式序列化數(shù)據(jù)源
        如何建構(gòu)序列化閱讀教學(xué)
        甘肅教育(2020年14期)2020-09-11 07:58:36
        在智能交通系統(tǒng)中PLC數(shù)據(jù)格式轉(zhuǎn)換方法的研究
        Web 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)源選擇*
        基于不同網(wǎng)絡(luò)數(shù)據(jù)源的期刊評(píng)價(jià)研究
        Java 反序列化漏洞研究
        基于真值發(fā)現(xiàn)的沖突數(shù)據(jù)源質(zhì)量評(píng)價(jià)算法
        論子函數(shù)在C語(yǔ)言數(shù)據(jù)格式輸出中的應(yīng)用
        作文訓(xùn)練微格化、序列化初探
        DWG與SHP數(shù)據(jù)格式互轉(zhuǎn)換方法研究——以龍巖規(guī)劃測(cè)繪數(shù)據(jù)為例
        分布式異構(gòu)數(shù)據(jù)源標(biāo)準(zhǔn)化查詢?cè)O(shè)計(jì)與實(shí)現(xiàn)
        日本中文字幕一区二区在线观看| 97se亚洲国产综合自在线| 日韩AV不卡一区二区三区无码| 婷婷激情五月综合在线观看| 伊人婷婷综合缴情亚洲五月 | 国产成人小视频| 丝袜美腿av在线观看| 亚洲va中文字幕无码毛片| 国产AV无码专区久久精品网站| 久草视频华人在线观看| 少妇激情一区二区三区| 久久精品国产av一级二级三级| 中文无码久久精品| 久久人妻AV无码一区二区| 亚洲一区有码在线观看| 亚洲av无码成人精品国产| 亚洲国产美女精品久久久 | 亚洲人成精品久久久久| 亚洲国内精品一区二区在线 | 久久精品国产亚洲av沈先生 | 一本色道久久88—综合亚洲精品 | 麻豆精品传媒一二三区| 国内成人精品亚洲日本语音| 国产偷国产偷亚洲高清| 国产一区二区三区小说| 婷婷五月综合缴情在线视频 | 亚洲永久精品ww47| 亚洲图片第二页| 亚洲av成熟国产一区二区| 久久久久亚洲av无码专区首jn| 激情五月天伊人久久| 男女视频在线观看一区二区 | 欧美video性欧美熟妇| 无码专区中文字幕DVD| 狠狠丁香激情久久综合| 一本色道久久88加勒比—综合| 三年片免费观看影视大全视频| 久久97精品久久久久久久不卡| 国内精品久久久久久久亚洲| 亚洲精品一区二区三区在线观| 中文字幕无码av波多野吉衣|