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

        ?

        基于新型軟件架構(gòu)的NFC管理系統(tǒng)的設計實現(xiàn)

        2018-03-05 02:36:54李范鳴
        計算機技術(shù)與發(fā)展 2018年2期
        關鍵詞:跨平臺用戶模型

        周 楊,李 燕,李范鳴

        (1.中國科學院 上海技術(shù)物理研究所,上海 200083;2.中國科學院大學,北京 100049;3.中國科學院 紅外探測器與成像技術(shù)重點實驗室,上海 200083)

        0 引 言

        目前,隨著NFC系統(tǒng)的應用越來越廣泛,相應的讀寫器的部署規(guī)模也越來越大,相應地對這些讀寫器的管理問題也日益嚴重。目前管理NFC讀寫器的方法主要有兩種:一種是人工手動管理,例如食堂收費系統(tǒng)等。這種管理方式人力成本過高,當系統(tǒng)的規(guī)模擴大時,這種弊端隨之加重。另一種是通過局域網(wǎng)或者廣域網(wǎng)進行分布式集中管理,由客戶端對分布式的NFC讀寫器進行參數(shù)的配置和數(shù)據(jù)的采集。這種方式使得用戶可以隨時隨地登錄服務器的網(wǎng)址,同時對大量NFC讀寫器進行監(jiān)控,這是將來對NFC讀寫系統(tǒng)進行管理的主流趨勢。

        傳統(tǒng)的軟件架構(gòu)技術(shù)的實現(xiàn)方式主要分為MFC/C++.SQL SERVER.MYSQL,HTML+CSS+JS/php.java.net和Qt/Qt.C++三種[1]。MFC/C++.SQL SERVER.MYSQL實現(xiàn)的架構(gòu)方案前后端的耦合度過高且語法復雜,沒有跨平臺特性;HTML+CSS+JS/php.java.net實現(xiàn)的架構(gòu)方案雖然降低了前后端的耦合度,但是前端設計語法過于復雜,且后端沒有跨平臺特性;Qt/Qt.C++實現(xiàn)的架構(gòu)方案雖然具有跨平臺特性,但是前端設計語法復雜且前后端耦合度過高[2]。

        針對上述問題,文中采用基于QML/Qt.C++的軟件架構(gòu)和MVC設計模式。其中,QML(Qt元語言)的引入,降低了前端設計技術(shù)的復雜度;前后端分離的MVC設計模式,提高了系統(tǒng)的可擴展性和可維護性[3]。

        1 技術(shù)架構(gòu)

        1.1 MVC設計模式

        MVC即模型(model)-視圖(view)-控制器(controller),是軟件架構(gòu)技術(shù)中常用的設計模式,這種設計模式將前端顯示和后端數(shù)據(jù)處理分離,從而使得軟件架構(gòu)邏輯清晰,增強了軟件產(chǎn)品的可維護性和可擴展性[4]。其中,模型是“數(shù)據(jù)模型”的簡稱,是用戶在磁盤上或內(nèi)存中存儲的數(shù)據(jù),這些數(shù)據(jù)按照一定的結(jié)構(gòu)存放,從而便于用戶在需要的時候進行存取[5];視圖是“用戶視圖”的簡稱,是顯示模型中數(shù)據(jù)的用戶界面,它由特定的語言繪制完成,從而使得模型中的數(shù)據(jù)按照用戶的意愿進行組織、呈現(xiàn)[6];控制器是“模型-視圖顯示控制器”的簡稱,更加精細化地控制著模型中的數(shù)據(jù)在視圖中的顯示方式,當模型中的數(shù)據(jù)發(fā)生變化時,控制器會主動向視圖反饋變化的模型數(shù)據(jù),從而保證了視圖中顯示的數(shù)據(jù)和模型中的數(shù)據(jù)保持同步[7-8]。

        本系統(tǒng)應用程序基于MVC模式實現(xiàn):模型由Qt/C++語言實現(xiàn),保證了底層數(shù)據(jù)模型的跨平臺特性;視圖由QML(Qt元語言)實現(xiàn),保證了前端設計的簡潔性、跨平臺性及與后臺Qt/C++銜接的緊密性;控制器由QML實現(xiàn),保證了與模型、視圖銜接的緊密性,進而使得整個應用程序的邏輯架構(gòu)清晰、完整、嚴謹。當用戶向底層數(shù)據(jù)模型發(fā)送提取數(shù)據(jù)請求時,QML實現(xiàn)的視圖將該請求轉(zhuǎn)換為信號,并且由QML實現(xiàn)的控制器發(fā)送到Qt/C++實現(xiàn)的底層數(shù)據(jù)模型,底層數(shù)據(jù)模型向控制器反饋數(shù)據(jù),并且通過槽機制將數(shù)據(jù)發(fā)送到視圖,由控制器完成在視圖上的細節(jié)顯示工作。

        1.2 QML/Qt.C++軟件架構(gòu)方案

        計算機軟件架構(gòu)方面采用全新的QML/Qt.C++架構(gòu)方案。

        QML即Qt meta language(Qt元語言),是一種全新的界面設計技術(shù),于2011年由Digia公司提出。它將常見的圖元(部件,圖片,窗口,動畫等)做了簡易的封裝,使得用戶可以靈活地組合這些圖元,從而達到想要的界面效果[9]。

        Qt是一種跨平臺的類庫,封裝了諸如數(shù)據(jù)庫等數(shù)據(jù)處理和前端顯示的函數(shù),QML相比于Qt前端的進步之處在于它的語法設計更加簡潔直觀,使得跨平臺的界面設計可以更加靈活,并且和Qt/C++后端技術(shù)銜接緊密[10]。

        C++是一種跨平臺語言,可用于后臺的數(shù)據(jù)處理工作,并且可用于基于C++語言實現(xiàn)的Qt庫的混合程序設計工作,而QML又是在Qt的基礎上發(fā)展出來的前端技術(shù),所以基于QML/Qt.C++技術(shù)的前后端架構(gòu)方案有實現(xiàn)的可行性。

        QML/Qt.C++架構(gòu)相較于傳統(tǒng)的軟件架構(gòu)方案的技術(shù)對比見圖1。

        圖1 軟件架構(gòu)方案技術(shù)對比

        前端(QML)優(yōu)勢:

        QML的語法實現(xiàn)可以理解為HTML+CSS+JS的精簡版,相比于傳統(tǒng)的HTML+CSS+JS的前端技術(shù):

        (1)QML去除了繁瑣的CSS樣式表操作,將HTML和JS的語法濃縮,使前端設計的語法更清晰,使用更簡潔。

        (2)QML在桌面端的界面設計效果要明顯優(yōu)于HTML+CSS+JS。

        相比于Qt的前端的進步之處在于:QML是專業(yè)的前端描述語言,語法更加簡潔直觀,使得跨平臺的界面設計更加靈活、高效[11]。

        相比于MFC前端的進步之處在于:當用戶使用QML時,不用像使用MFC一樣,記憶繁瑣的標識符,語法更加簡潔、高效,并且跨平臺特性良好[12]。

        后臺(Qt/C++/MYSQL)優(yōu)勢:

        在php/java/.net/SQL SERVER/MYSQL的后臺架構(gòu)技術(shù)實現(xiàn)中,java跨平臺需要虛擬機的支撐,系統(tǒng)的開銷會增大,而.net是微軟公司開發(fā)的程序設計語言,只能在Windows平臺下運行。Qt/C++/MYSQL設計的后臺方案可以運行在Windows,Linux,Android,OS X平臺上,應用領域更加廣泛。

        前端與后臺(信號/槽的變種)連接的優(yōu)勢:

        QML是在Qt之上發(fā)展出來的一門前端描述語言,它繼承了Qt中的信號/槽通信機制的原理,語法實現(xiàn)上要異于信號/槽,所以稱這種通信機制為信號/槽的變種。

        相比于通用的軟件架構(gòu)技術(shù)1和3的通信機制(消息),文中的通信機制(信號/槽的變種)更加簡潔高效。

        相比于通用的軟件架構(gòu)技術(shù)2,文中的前端(QML實現(xiàn))和后臺(Qt/C++/SQL SERVER/MYSQL實現(xiàn))實現(xiàn)了完全的代碼層面的分離,降低了前后端的耦合度,使得軟件體系架構(gòu)邏輯更加清晰,可維護性和可擴展性更強的同時,延續(xù)了軟件架構(gòu)技術(shù)2的跨平臺優(yōu)勢和便利的信號/槽通信機制。

        2 設計實現(xiàn)

        2.1 總體架構(gòu)

        系統(tǒng)由客戶端主機、數(shù)據(jù)庫服務器、網(wǎng)絡連接線部分組成,分別負責用戶界面的呈現(xiàn)工作、數(shù)據(jù)的存儲工作、物品柜中物品狀態(tài)的顯示工作、數(shù)據(jù)的傳輸工作。架構(gòu)方案拓撲見圖2。

        圖2 系統(tǒng)模型結(jié)構(gòu)

        系統(tǒng)主要由NFC硬件讀卡器部分和上位機管理軟件兩部分組成。NFC讀寫器通過以太網(wǎng)將數(shù)據(jù)信息匯總到數(shù)據(jù)庫服務器,客戶端從數(shù)據(jù)庫服務器提取信息向上位機顯示。上位機軟件基于QML/Qt.C++架構(gòu)方案和MVC設計模式設計和實現(xiàn),系統(tǒng)軟件架構(gòu)見圖3。

        圖3 系統(tǒng)軟件架構(gòu)

        圖中,用戶發(fā)送請求(如點擊鼠標等輸入操作),該請求在視圖層被接收,之后由QML轉(zhuǎn)換為對應的信號,該信號通知控制層,指引控制層從Qt或C++語言實現(xiàn)的數(shù)據(jù)模型中提取數(shù)據(jù)(該數(shù)據(jù)由上位機軟件的網(wǎng)絡端口使用TCP協(xié)議,從NFC讀寫器硬件采集),該數(shù)據(jù)依托控制器,通過槽機制,被發(fā)送到視圖層,從而完成用戶所請求的數(shù)據(jù)的顯示工作。其中,視圖層的架構(gòu)方案見圖4。

        圖4 視圖層架構(gòu)

        圖中,QML主窗口在應用程序啟動時被加載,主窗口的實現(xiàn)代碼中定義了N個子窗口加載器,分別映射到子窗口的啟動圖標上。當用戶點擊某子窗口的啟動圖標時,子窗口加載器加載對應的子窗口描述代碼,啟動子窗口運行。其中,每個子窗口分別屬于幾個獨立的線程,子窗口之間通過信號/槽機制的變種進行數(shù)據(jù)交互。這種窗體加載方式使得前端界面設計的模塊性和可擴展性更強。

        類的對象需要在進入應用程序大循環(huán)之前注冊為QML前端環(huán)境的上下文屬性,以便該對象在QML環(huán)境中被發(fā)現(xiàn)和使用。

        2.2 軟件部分具體實現(xiàn)

        (1)模型層設計。

        模型層由Qt/C++語言設計完成,模型層分為數(shù)據(jù)庫模型、樹模型、網(wǎng)格模型、線性模型和用戶自定義模型五種。

        (2)控制層設計。

        控制層由QML設計完成,負責模型層數(shù)據(jù)向視圖層的顯示控制工作。用于控制前端報表中的小方格的顯示方式的控制層示例代碼如下:

        //設置物件代理(表格中的每個小方格)

        itemDelegate: Item{

        focus: true;

        id:itemDelegate;

        Text {

        id:text;

        anchors.centerIn:parent;

        color: "#6b6868"

        //使用默認的文本省略方式

        elide:styleData.elideMode;

        text:styleData.value;

        font.family: "微軟雅黑";

        }

        }

        (3)視圖層設計。

        視圖層由QML設計完成,分為報表前端、樹前端、網(wǎng)格前端、線性前端、用戶自定義前端五種,這五種顯示方式和模型層的五種模型相對應,形成了特定的五種顯示方式。其中,模型和視圖匹配的關鍵因素是role即角色屬性的對應。例如,用戶想要提取數(shù)據(jù)庫中姓名和性別兩個字段的值并顯示到前端。在QML實現(xiàn)的視圖報表中,需要指明角色值,即想要提取的字段名稱,并且該字段名稱必須和數(shù)據(jù)庫中的字段名稱完全吻合。視圖報表的示例代碼如下:

        //視圖報表從數(shù)據(jù)庫中提取“姓名”,“性別”數(shù)據(jù)項

        TableViewColumn {

        id: name;

        role: "姓名";

        title: "姓名";

        }

        TableViewColumn {

        id: sex;

        role: "性別";

        title: "性別";

        }

        2.3 NFC部分具體實現(xiàn)

        NFC方面,數(shù)據(jù)交換格式采用NDEF規(guī)范:NDEF定義了NFC設備之間以及設備與標簽之間傳輸數(shù)據(jù)的一種消息封裝格式。設備之間傳輸?shù)男畔⒖梢苑庋b成一個NDEF消息,每個消息可以由多個NDEF記錄構(gòu)成[13-14]。

        NFC采用主動和被動兩種讀取模式,發(fā)展了三種功能模式[15]:讀卡器模式(被動模式)、卡片模擬模式(被動模式)、點對點通信模式(主動模式)。文中采用的是被動模式的讀卡器功能模式。

        3 系統(tǒng)測試

        系統(tǒng)的軟件界面可以達到藝術(shù)級的效果,監(jiān)控界面分為主界面、物品位界面、物品信息數(shù)據(jù)庫顯示界面等。應用程序的界面整體運行效果見圖5。

        圖5 應用程序的運行界面

        NFC數(shù)據(jù)速率見表1。

        表1 NFC數(shù)據(jù)傳輸速率

        表1中,使用ISO 15693協(xié)議的最高傳輸速率可以達到52.97 kb/s,使用ISO 14443協(xié)議的最高傳輸速率可以達到848 kb/s,滿足對于少量字符串數(shù)據(jù)的實時傳輸需求。

        4 結(jié)束語

        針對高效管理大規(guī)模NFC讀寫器的需求,設計實現(xiàn)了基于MVC設計模式和QML/Qt.C++軟件架構(gòu)方案的NFC讀寫器管理系統(tǒng)。其中,MVC設計模式降低了應用程序中各模塊的耦合度,使得應用程序的架構(gòu)邏輯清晰。QML/Qt.C++軟件架構(gòu)方案使得應用程

        序前端設計更加簡潔高效,模塊性更強。

        [1] ZULKERNINE M,SEVIORA R.Towards automatic monitoring of component-based software systems[J].Journal of Systems and Software,2005,74(1):15-24.

        [2] 李衛(wèi)華,傅曉東.可拓創(chuàng)新軟件體系結(jié)構(gòu)研究[J].廣東工業(yè)大學學報,2016,33(2):1-4.

        [3] 劉 暢,伍 星,遲毅林,等.設備在線監(jiān)測系統(tǒng)的軟件架構(gòu)研究[J].計算機工程,2010,36(23):69-71.

        [4] PESSEMIER N,SEINTURIER L,DUCHIEN L.A component-based and aspect-oriented model for software evolution[J].International Journal of Computer Applications in Technology,2008,31(1/2):94-105.

        [5] 梁 弼.基于MVC的高??蒲谐晒芾硐到y(tǒng)的設計與實現(xiàn)[J].計算機技術(shù)與發(fā)展,2011,21(10):161-163.

        [6] LI J M,MA G S,F(xiàn)ENG G,et al.Research on web application of struts framework based on MVC pattern[C]//Proceedings of the 2006 international conference on advanced web and network technologies,and applications.[s.l.]:[s.n.],2006:1029-1032.

        [7] 趙 琳,楊輝之,郝 勇,等.基于MVC的敏捷衛(wèi)星工作模式仿真技術(shù)研究[J].系統(tǒng)仿真學報,2017,29(3):537-545.

        [8] 于湛麟,李仲秋,任永昌.SSH框架實現(xiàn)MVC架構(gòu)的電子商務軟件平臺[J].計算機技術(shù)與發(fā)展,2012,22(10):169-172.

        [9] 安曉輝.Qt quick核心編程[M].北京:電子工業(yè)出版社,2015.

        [10] 陸文周.Qt5開發(fā)及實例[M].第2版.北京:電子工業(yè)出版社,2015.

        [11] 安曉輝.Qt on Android核心編程[M].北京:電子工業(yè)出版社,2015.

        [12] 尼俊紅,張 麗,張 淼,等.基于Ajax和MVC的電力通信告警系統(tǒng)的設計實現(xiàn)[J].計算機應用與軟件,2013,30(8):226-227.

        [13] 蘇 婕,王 忠.基于NFC技術(shù)的巡更巡檢管理系統(tǒng)的設計與實現(xiàn)[J].計算機工程與設計,2015,36(4):1068-1072.

        [14] 蔣 華,孫 強.近距離無線通信技術(shù)標準解析[J].信息技術(shù)與標準化,2006(5):26-30.

        [15] 徐 磊,周 喜,馬玉鵬,等.一種基于NFC手機的RFID中間件的設計與實現(xiàn)[J].計算機與現(xiàn)代化,2014(9):90-94.

        猜你喜歡
        跨平臺用戶模型
        一半模型
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
        跨平臺APEX接口組件的設計與實現(xiàn)
        關注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        3D打印中的模型分割與打包
        關注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        基于QT的跨平臺輸電鐵塔監(jiān)控終端軟件設計與實現(xiàn)
        基于OPC跨平臺通信的電機監(jiān)測與診斷系統(tǒng)
        玩弄放荡人妻少妇系列| 中文字幕乱码亚洲在线| 国产亚洲欧洲aⅴ综合一区| 欧洲精品免费一区二区三区| 99热这里有免费国产精品| 能看的网站中文字幕不卡av| 91久久综合精品久久久综合| 免费成人在线电影| 免费人成毛片乱码| 日韩精品视频免费福利在线观看| 蜜桃视频在线免费视频| av综合网男人的天堂| 无码中文字幕加勒比一本二本| 国产精品无套粉嫩白浆在线| 女同三级伦理在线观看| 国产一精品一av一免费 | 欧美激情αv一区二区三区| 午夜视频福利一区二区三区| 久久精品国产亚洲av不卡国产| 97精品超碰一区二区三区| 亚洲午夜精品a区| 国产精品成人有码在线观看| 91九色老熟女免费资源| 中文字幕无码日韩专区免费 | 中文字幕日本一区二区在线观看| 国产女同va一区二区三区| 日韩丰满少妇无码内射| 欧美成人中文字幕| 亚洲一级天堂作爱av| 久久久久亚洲av成人人电影| 亚洲美女又黄又爽在线观看| 999久久久免费精品国产牛牛| 亚洲精品大全中文字幕| 久久精品女人天堂av免费观看| 国产精品视频一区国模私拍| 国产区高清在线一区二区三区| 2020国产在视频线自在拍| 无套内射无矿码免费看黄| 一区二区久久不射av| 精品国产亚洲一区二区三区四区| 久久久久久亚洲av成人无码国产 |