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

某物資管理調度系統的數據序列化技術

2020-06-10 07:40:56王玉龍寧蒙王衛濤
電子技術與軟件工程 2020年4期
關鍵詞:信息

王玉龍 寧蒙 王衛濤

(中國船舶集團公司第七一三研究所 河南省鄭州市 450015)

1 引言

在某型號物資管理調度系統中,既有基于國產平臺的中標麒麟操作系統[1],也有基于安卓平臺的嵌入式系統,在每個計算機節點中需將啟動信息、運行信息等進行本地化,并且部分節點之間通過網絡以XML形式傳輸給任務接收終端,任務接收后需要將數據本地化及存儲至人大金倉數據庫[2]。另外任務執行情況和物資盤點信息也要通過網絡以XML形式發送到管理調度計算機節點,最后這些信息存儲在人大金倉數據庫服務器中。不僅僅系統本身存在數據交換,與外系統之間也存在數據交換的需求,物資管理調度系統需要提供網絡接收外部系統的基礎數據信息,比如人員、單位、任務等數據信息。此外物資管理調度系統還需將一些數據信息發布出去,供其他系統使用,這些信息在各系統之間進行交換時,都是以XML協議作為數據交換的載體。

該物資管理調度系統所在的數字化平臺數據來源復雜,信息量巨大,包括外圍設備的實時采集數據、設備信息、調度過程數據、盤庫信息等,需要對其中的關鍵數據信息進行持久保存和在進程間進行傳輸。借鑒前期項目采用基于.net的自帶序列化反序列庫[3]可以解決此類問題。XML序列化就是將對象狀態轉換為XML文件,反序列化則是將XML文件轉換為對象實例,這兩個過程可以輕松實現存儲和傳輸數據[4]。

本文提出一種基于Qt跨平臺的XML序列化反序列化框架來解決國產操作系統平臺間的數據交換和共享問題,該框架擴展性強,成員變量可以為基礎數據類型(Int、QString、QBool、QDateTime等)、集合類型(QList、QMap等)以及自定義類型(指針)實現XML序列化反序列化功能,有效解決了信息存儲、傳輸和共享的問題。

2 算法實現

利用面向對象程序設計中的繼承以及虛函數概念[5],結合Qt中元對象機制,自研對業務軟件提供的XML序列化和反序列化功能。下面對XML序列化和反序列化算法設計分別進行詳細說明。

2.1 XML序列化算法

XML序列化就是通過對外接口將類對象轉化為可以網絡傳輸或者本地保存的XML文件,核心思想是將類的名稱映射成XML文件的根節點元素;不同類型的各成員變量名稱映射為XML文件的屬性名稱;成員變量的值映射為xml文件內的屬性值;對于成員變量為基礎數據類型的變量較容易映射,但是集合類型(QList、QMap等)以及自定義類型(指針)需要進行復雜的嵌套循環和基類指針調用;下面對XML序列化功能設計相關的自研函數進行詳細說明,見表1所示。

圖1:序列化功能內部函數之間調用圖

其中函數InstanceToXml()為序列化功能的唯一對外接口,實現將類實例轉換為XML文件,函數與函數之間的調用關系見圖1所示。

XML序列化功能內部主要函數接口instanceToXml的實現流程主要分以下步驟,詳細流程如圖2所示。

(1)首先獲取待序列化實例的元對象(MetaObj);

(2)通過元對象(MetaObj)得到序列化類的N個公有成員變量;

(3)依次遍歷N個公有成員變量,并且判斷當前成員變量是什么類型;

(4)若為list集合類型,調用listToXml函數進行增加相應節點;

(5)若為map集合類型,調用mapToXml函數進行增加相應節點;

(6)若為int、string、bool等基礎類型,直接增加相應xml節點即可;

(7)若為自定義類型,使用該函數迭代即可;

(8)遍歷完所有成員變量,函數退出。

2.2 XML反序列化算法

表1:序列化相關函數及說明

表2:反序列化相關函數及說明

表3:某調度臺位配置信息(ConsoleConfig)結構

XML反序列化是XML序列化的反過程,通過對外接口將網絡傳輸中XML文件流或者本地保存的XML文件轉化類對象,核心思想是將XML文件的根節點元素映射成類的名稱;XML文件的屬性名稱映射為不同類型的各成員變量名稱;XML文件內的屬性值映射為成員變量的值;對于XML文件或流存在嵌套或者重復結構映射比較復雜,即映射為類中集合類型(QList、QMap等)以及自定義類型(指針)的成員變量;接下來對XML反序列化功能設計相關的自研函數進行詳細說明,見表2所示。

圖2:序列化---虛函數instanceToXml()流程圖

圖3:反序列化功能內部函數之間調用圖

圖4:反序列化---虛函數xmlToInstanse()流程圖

圖5:XML序列化上層調用代碼

其中函數XmlToInstance()為反序列化功能的唯一對外接口,實現將XML文件轉換為類實例,函數與函數之間的調用關系見圖3所示。XML反序列化功能內部主要函數接口xmlToInstance()的實現流程主要分以下步驟,詳細流程如圖4所示:

(1)首先獲取待反序列化的XML文件的根節點或者自定義類型根節點;

圖6:生成“ConsoleConfig.xml”文件

圖7:XML反序列化上層調用代碼

圖8:反序列化程序運行結果

(2)獲取實例元對象,并通過元對象得到N個公有成員變量;

(3)依次遍歷N個公有成員變量,通過當前成員變量名,使用compareTagName()函數返回相對應結點,接下來判斷成員變量的類型,并且一一賦值;

(4)若為list集合類型,調用xmlToList函數對相同成員變量賦值;

(5)若為map集合類型,調用xmlToMap函數對相同成員變量賦值;

(6)若為int、string、bool等基礎類型,對當前成員變量賦值;

(7)若為自定義類型,使用該函數迭代并對當前指針變量字段進行賦值;

(8)遍歷完所有成員變量,函數退出。

3 仿真

在中標麒麟操作系統桌面版V6.0上,以某調度臺位配置信息為例進行仿真說明,該調度臺配置信息類(ConsoleConfig)包含了字符串、布爾、時間、集合及自定義類型等類型,具體類結構如表3所示。

3.1 XML序列化上層調用實例

首先定義ConsoleConfig類并且對其進行初始化,然后使用序列化功能接口,具體代碼如圖5所示,運行程序后生成“ConsoleConfig. xml”文件,如圖6所示。

3.2 XML反序列化上層調用實例

接下來將序列化程序生成的“ConsoleConfig. xml”文件進行反序列化,具體代碼如圖7所示,程序運行結果如圖8所示。

根據運行結果看出使用該序列化反序列化方法可以完成相應功能,滿足預期效果。

4 結論

本文利用面向對象程序設計中的繼承以及虛函數概念,結合Qt中元對象機制,在國產中標麒麟操作系統上設計開發出一套XML序列化反序列化框架,該框架可擴展性和維護性強并且支持的數據類型(基礎類型、集合類型以及自定義類型等)較豐富,可滿足大部分物資調度管理系統業務軟件的使用需求,提高了軟件開發效率和軟件產品質量。

猜你喜歡
信息
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
信息超市
大眾創業(2009年10期)2009-10-08 04:52:00
展會信息
展會信息
展會信息
展會信息
展會信息
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 伊人色婷婷| av天堂最新版在线| 亚洲Av综合日韩精品久久久| 国产在线第二页| 日本精品影院| 亚洲三级a| 在线免费a视频| 国产一区二区人大臿蕉香蕉| 精品一区二区无码av| 91麻豆国产视频| 美女无遮挡拍拍拍免费视频| 97无码免费人妻超级碰碰碰| 国产成人亚洲综合A∨在线播放| 亚洲天堂自拍| 青青草原国产| 日韩福利在线视频| 欧美一区二区精品久久久| 成年人久久黄色网站| 亚洲五月激情网| 国产尤物在线播放| 国产熟女一级毛片| 免费久久一级欧美特大黄| 色综合激情网| 国产又爽又黄无遮挡免费观看| 国产一区在线视频观看| 国产亚洲精| 中文字幕在线日本| 久草热视频在线| 国产剧情一区二区| 亚洲AV无码不卡无码| 午夜精品影院| 欧美不卡视频一区发布| 任我操在线视频| 久久精品人妻中文系列| 国产无吗一区二区三区在线欢| 97超级碰碰碰碰精品| 国产福利免费视频| 欧洲一区二区三区无码| 亚洲欧美国产五月天综合| 久久伊伊香蕉综合精品| 成人年鲁鲁在线观看视频| 在线免费亚洲无码视频| 成年女人a毛片免费视频| 狠狠操夜夜爽| 人人看人人鲁狠狠高清| 女人18毛片水真多国产| 亚洲香蕉久久| 国产成人精品免费av| 亚洲福利视频网址| 国产成人禁片在线观看| 免费看a毛片| av在线手机播放| 欧美亚洲激情| 无码人妻热线精品视频| 国内99精品激情视频精品| 国产视频资源在线观看| 国产精品亚洲五月天高清| 国产成人一区免费观看 | 中字无码精油按摩中出视频| 亚洲精品成人福利在线电影| 在线播放真实国产乱子伦| 中文国产成人精品久久| 在线观看国产小视频| 亚洲欧美h| 热99re99首页精品亚洲五月天| 亚洲最新网址| 精品国产一区91在线| 国产福利在线免费| 婷婷色丁香综合激情| a在线亚洲男人的天堂试看| 久草美女视频| 国产精品一线天| 久久网综合| 538精品在线观看| 波多野结衣爽到高潮漏水大喷| 狠狠色成人综合首页| 久久综合丝袜长腿丝袜| A级全黄试看30分钟小视频| 欧美福利在线| 波多野结衣一区二区三视频| 国产精品露脸视频| 欧美成人免费一区在线播放|