版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
目錄
摘要I
AbstractII
1緒論1
1.1背景與意義1
1.2現(xiàn)狀和發(fā)展趨勢2
1.3研究方案2
2需求分析4
2.1經(jīng)濟(jì)可行性4
2.2技術(shù)可行性4
2.3社會可行性6
3系統(tǒng)需求分析7
3.1系統(tǒng)目標(biāo)7
3.2系統(tǒng)功能分析7
3.2.1用戶注冊和用戶信息管理7
3.2.2設(shè)備注冊7
3.2.3設(shè)備管理8
3.2.4接入數(shù)據(jù)查看8
3.3系統(tǒng)功能結(jié)構(gòu)8
3.4系統(tǒng)功能描述和用例分析9
3.4.1系統(tǒng)的總用例圖9
3.4.2用戶信息管理9
3.4.3設(shè)備管理10
4云平臺數(shù)據(jù)庫設(shè)計12
4.1關(guān)系數(shù)據(jù)庫的選擇12
4.2緩存數(shù)據(jù)庫Redis的使用12
4.3數(shù)據(jù)庫E-R聯(lián)系圖13
4.4數(shù)據(jù)庫表的設(shè)計14
4.4.1概要說明14
4.4.2用戶表t_users15
4.4.3設(shè)備類型表t_device_type15
4.4.4設(shè)備表t_device15
4.4.5消息記錄表t_message_info16
4.5數(shù)據(jù)庫實體類抽象17
5云平臺系統(tǒng)詳細(xì)設(shè)計18
5.1系統(tǒng)總體架構(gòu)的設(shè)計18
5.2系統(tǒng)開發(fā)工具22
5.3系爭項目結(jié)構(gòu)的搭建23
6項目展示26
6.1登錄界面展示26
6.2個人信息展示頁26
6.3設(shè)備管理模塊展示27
6.4數(shù)據(jù)中心模塊界面展示29
7系統(tǒng)測試31
7.1可靠性測試31
7.2兼容性測試32
7.3測試用例32
7.3.1測試框架JUnit32
7.3.2DeviceServer消息收發(fā)測試33
參考文獻(xiàn)37
致謝38
摘要
當(dāng)今,環(huán)境問題和居家安全越來越受到人們的關(guān)注。在工業(yè)或者民用建筑中
例如學(xué)校,酒店,小區(qū),工廠,甚至是每個家庭都會裝有空氣檢測的物聯(lián)網(wǎng)設(shè)備,
例如煙霧報警器,空氣凈化器,空氣質(zhì)量檢測儀等,讓人們能夠及時的對危急情
況作出處理,上述設(shè)備雖然能夠不間斷的檢測空氣中的狀況,但還是存在很多無
法忽視的缺點。
首先,這些設(shè)備一般都是單節(jié)點的,彼此之間相互獨立,因為設(shè)備可能會出
現(xiàn)各種故障,如果沒有一個好的系統(tǒng)能夠直接定位到出故障的設(shè)備,那么勢必會
帶來管理上的不便,嚴(yán)重的甚至可能影響到對災(zāi)情的及時警報。其次就是預(yù)警的
及時性,常規(guī)的煙霧報警器都是通過發(fā)出刺耳的響鈴聲來引起周圍人的注意。但
是對于家庭式的,很有可能出現(xiàn)當(dāng)警報響起時家中無人,這就使得煙霧報警器失
去了其本有的意義。最后只基于硬件設(shè)備本身功能而言,已經(jīng)遠(yuǎn)遠(yuǎn)不能夠滿足用
戶日常的生活需求,且有著許多使用上的不便。
針對以上傳統(tǒng)空氣硬件設(shè)備存在的問題,搭建一個用戶空氣設(shè)備數(shù)據(jù)處理云
平臺。該平臺擁有設(shè)備狀態(tài)監(jiān)測,設(shè)備數(shù)據(jù)可視化分析,消息及時預(yù)警等功能。
用戶可以直接通過云平臺系統(tǒng)查看其所有設(shè)備的運行狀態(tài),這樣就可以及時定位
故障設(shè)備??諝赓|(zhì)檢將檢測數(shù)據(jù)上傳至云平臺進(jìn)行存儲,云平臺對原始數(shù)據(jù)進(jìn)行
二次處理,并將分析結(jié)果以更加人性化的方式展現(xiàn)給用戶。云平臺擁有消息通知
模塊,用戶可以根據(jù)設(shè)備檢測到的不同危機(jī)情況等級,設(shè)置相應(yīng)的處理事件。例
如當(dāng)質(zhì)檢設(shè)備檢測到火災(zāi)發(fā)生時,云平臺接受到此類事件,將自動通過電話、短
信、郵件等方式對用戶進(jìn)行提醒。再例如當(dāng)空氣中PM2.5含量過高時,提醒用
戶出門記得帶口罩,對于裝配有智能家居系統(tǒng)的用戶,甚至可以聯(lián)動空氣凈化器
工作,維持空氣質(zhì)量的穩(wěn)定。
關(guān)鍵詞:空氣質(zhì)檢;云平臺;設(shè)備管理;及時預(yù)警
Abstract
Today,environmentalissuesandhomesecurityaregettingmoreandmore
attention.Inindustrialorcivilbuildingssuchas.schools,hotels,communities,
factories,andeveneveryfamily,air-testedInternetofThings(IoT)devices(e.g.smoke
alarms,airpurifiers,airqualitydetectors,etc.)areinstalledsothatpeoplecanbe
timelydealingwithcriticalsituations,althoughtheaboveequipmentcancontinuously
detecttheconditionsintheair,therearestillmanyshortcomingsthatcannotbe
ignored.
Firstofall,thesedevicesaregenerallysingle-nodeandindependentfromeach
other,becausethedevicemayhavevariousfailures.Ifthereisnotagoodsystemthat
candirectlylocatethefaileddevice,itwillinevitablybringaboutmanagement
inconvenience.Serious,itmayevenaffectthetimelywarningofthedisaster.The
secondisthetimelinessofearlywarning.Conventionalsmokealarmsarecausedby
harshringingsoundstoattractpeople'sattention.Butforfamily-style,itisverylikely
thatnooneisathomewhenthealarmsounds,whichmakesthesmokealarmloseits
originalmeaning.Intheend,basedonlyonthefunctionofthehardwaredeviceitself,
itisfarfrombeingabletomeetthedailylifeneedsoftheuser,andtherearemany
inconveniencesinuse.
Aimingattheproblemsexistingintheabovetraditionalairhardwaredevices,a
user-friendlyairqualityprocessingcloudplatformbasedontheInternetofThings
wasconstructed.Theplatformhasthefunctionsofequipmentstatusmonitoring,
equipmentdatavisualizationanalysis,Userscandirectlychecktherunningstatusof
alltheirdevicesthroughthecloudplatformsystem,sothatfaultydevicescanbe
locatedintime.Theairqualityinspectionuploadstheinspectiondatatothecloud
platformforstorage.Thecloudplatformperformssecondaiyprocessingonthe
originaldataandpresentstheanalysisresultstotheuserinamorehumanemanner.
Thecloudplatformhasamessagenotificationmodule.Whenthedevicedetectsa
criticalsituation,itautomaticallyinformstheuserthroughinstantmessaging.
Keywords:AirQualityInspection;CloudPlatfbrm;EquipmentManagement
用戶空氣設(shè)備數(shù)據(jù)處理云平臺
1緒論
1.1背景與意義
隨著社會經(jīng)濟(jì)的日趨發(fā)展和人們對生活品質(zhì)的不斷追求,環(huán)境問題和居家安
全越來越受到人們的關(guān)注?,F(xiàn)如今,在工業(yè)或者民用建筑中例如學(xué)校,酒店,小
區(qū),工廠,甚至是每個家庭都會裝有空氣檢測的物聯(lián)網(wǎng)設(shè)備,例如煙霧報警器,
空氣凈化器,空氣質(zhì)量檢測儀等,讓人們能夠及時的對危急情況作出處理,特別
是火災(zāi),煤氣泄漏,有毒氣體等嚴(yán)重威脅到人們健康安全的情況。上述設(shè)備雖然
能夠不間斷的檢測空氣中的狀況,但還是存在很多無法忽視的缺點。
首先,這些設(shè)備一般都是單節(jié)點的,彼此之間相互獨立,假設(shè)一個小區(qū)裝有
數(shù)百的煙霧報警器,就需要耗費大量的人力定期對這些設(shè)備進(jìn)行檢查,因為設(shè)備
可能會出現(xiàn)各種故障,如果沒有一個好的系統(tǒng)能夠直接定位到出故障的設(shè)備,那
么勢必會帶來管理上的不便,嚴(yán)重的甚至可能影響到及時對災(zāi)情進(jìn)行警報。
其次就是預(yù)警的及時性,常規(guī)的煙霧報警器都是通過發(fā)出刺耳的響鈴聲來引
起周圍人的注意。但是對于家庭式的,很有可能出現(xiàn)當(dāng)警報響起時家中無人,這
就使得煙霧報警器失去了其本有的意義。
最后只基于硬件設(shè)備本身功能而言,已經(jīng)遠(yuǎn)遠(yuǎn)不能夠滿足用戶日常的生活需
求,且有著許多使用上的不便。隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展以及處理器性能的不
斷強(qiáng)大,人們對產(chǎn)品的要求已經(jīng)不僅僅局限在其功能,而是深入到產(chǎn)品背后的服
務(wù)了。在以前處理器性能遠(yuǎn)不如現(xiàn)在強(qiáng)大,網(wǎng)絡(luò)帶寬資源昂貴且網(wǎng)絡(luò)延遲高的年
代,想要在設(shè)備本身的功能上進(jìn)行服務(wù)的擴(kuò)展顯得不太現(xiàn)實,并且將大大提高生
產(chǎn)成本,這是企業(yè)所不能夠承受的。
針對以上傳統(tǒng)空氣硬件設(shè)備存在的這些問題,提出搭建一個用戶空氣設(shè)備數(shù)
據(jù)處理云平臺。首先,該平臺支持海量空氣質(zhì)檢設(shè)備的的同時接入,云平臺系統(tǒng)
可以查看所有設(shè)備的運行狀態(tài),能夠及時定位故障設(shè)備,從此遠(yuǎn)離人工定時檢查
這種低效的方式。其次空氣質(zhì)檢可以將檢測數(shù)據(jù)上傳至云平臺進(jìn)行存儲,利用云
服務(wù)器強(qiáng)大的計算性能,對原始數(shù)據(jù)進(jìn)行二次處理,并將分析結(jié)果以更加人性化
的方式展現(xiàn)給用戶,給用戶帶來管理和使用上的方便。再者,云平臺擁有消息隊
列模塊,用戶可以根據(jù)設(shè)備檢測到的不同危機(jī)情況等級,設(shè)置相應(yīng)的處理事件。
例如當(dāng)質(zhì)檢設(shè)備檢測到火災(zāi)發(fā)生時,云平臺接受到此類事件,將自動通過電話、
用戶空氣設(shè)備數(shù)據(jù)處理云平臺
短信、郵件等方式對用戶進(jìn)行提醒。再例如當(dāng)空氣中PM2.5含量過高時,提醒
用戶出門記得帶口罩,對于裝配有智能家居系統(tǒng)的用戶,甚至可以聯(lián)動空氣凈化
器工作,維持空氣質(zhì)量的穩(wěn)定。
1.2現(xiàn)狀和發(fā)展趨勢
物聯(lián)網(wǎng)云平臺山已經(jīng)不是一個特別新奇的概念了。國內(nèi)幾大BAT對于物聯(lián)網(wǎng)
云平臺的建設(shè)早已經(jīng)有了戰(zhàn)略性的布局?;谠啤⒋髷?shù)據(jù)、硬件管理平臺等自身
傳統(tǒng)優(yōu)勢,百度、阿里、騰訊發(fā)揮數(shù)據(jù)采集后的價值,以及大數(shù)據(jù)分析下的各種
衍生價值,成立QQ物聯(lián)、微信硬件平臺、阿里云IoT、百度云一天工一智能物
聯(lián)網(wǎng)平臺。BAT搭建的云平臺不特別針對某一種特定類型的物聯(lián)網(wǎng)設(shè)備,而是
作為一種中介平臺,簡化了一些開發(fā)上的復(fù)雜度,比如制定了統(tǒng)一的數(shù)據(jù)傳輸協(xié)
議,屏蔽硬件設(shè)備和云應(yīng)用之間通信的復(fù)雜度等。但是企業(yè)依舊需要在開發(fā)了物
聯(lián)網(wǎng)設(shè)備的基礎(chǔ)上獨立開發(fā)云應(yīng)用來處理和管理自己的設(shè)備,只不過物聯(lián)網(wǎng)設(shè)備
和云應(yīng)用之間的通信通過統(tǒng)一的中介云平臺轉(zhuǎn)發(fā)而已。這樣也就導(dǎo)致了一個問
題,對于很多功能不是特別復(fù)雜的物聯(lián)網(wǎng)設(shè)備來說,也需要企業(yè)獨立開發(fā)云管理
平臺,增加了開發(fā)成本。本論文研究的物聯(lián)網(wǎng)云處理平臺只針對空氣質(zhì)檢領(lǐng)域,
對空氣質(zhì)量檢測儀、煙霧報警器等物聯(lián)網(wǎng)設(shè)備提供通用的云服務(wù),例如設(shè)備管理,
空氣檢測數(shù)據(jù)云端展示,全國天氣和空氣質(zhì)量數(shù)據(jù)的推送,消息訂閱等等。
1.3研究方案
空氣設(shè)備云平臺的系統(tǒng)總架構(gòu)圖如圖1-1所示。其中硬件設(shè)備指的是NB-IoT
Device,也就是空氣質(zhì)量檢測器,負(fù)責(zé)采集室內(nèi)煙霧、PM2.5、CO等數(shù)據(jù),并
通過NB-IoT⑶網(wǎng)絡(luò)將數(shù)據(jù)上傳到云平臺。同時接收云平臺下發(fā)的指令,并對其指
令進(jìn)行相應(yīng)的響應(yīng)。硬件設(shè)備和云平臺之間通過Internet進(jìn)行連接,硬件設(shè)備和
云平臺想要進(jìn)行數(shù)據(jù)的交換,必須要制定統(tǒng)一的通信方式和數(shù)據(jù)交換格式??紤]
到硬件設(shè)備要高響應(yīng)、低延遲、低功耗的特點。我們暫時選定TCP傳輸協(xié)議進(jìn)
行通信。自定義數(shù)據(jù)交換格式,通過DES對稱加密算法來對傳輸數(shù)據(jù)加密,保
證了傳輸?shù)陌踩?。最后是本論文的主要研究部分云系統(tǒng)的架構(gòu),也就是用戶空
氣質(zhì)量數(shù)據(jù)處理云平臺。
用戶空氣設(shè)備數(shù)據(jù)處理云平臺
硬件API接口WEB展示層
消
權(quán)Redisg爰存日
息
限志
隊
控記
列
錄
數(shù)
數(shù)
制設(shè)
據(jù)
據(jù)
備
其
處
爬
管
它
取
理
理
模
模
模
模
塊
塊
塊
塊
圖1-1云平臺架構(gòu)圖
用戶空氣設(shè)備數(shù)據(jù)處理云平臺
2需求分析
2.1經(jīng)濟(jì)可行性
在做任何一件事之前,我們都會考慮其投入產(chǎn)出比、效率、效力等,這個項
目消耗資源的成本以及其后期帶來的回報決定了項目意義。
開發(fā)一個空氣設(shè)備處理云平臺也以下簡稱空氣云??諝庠崎_發(fā)目的明確,
旨在為空氣質(zhì)檢相關(guān)物聯(lián)網(wǎng)設(shè)備開發(fā)一個具有通用性和可擴(kuò)展性的物聯(lián)網(wǎng)云平
臺??諝庠铺峁┮杂脩魹楹诵牡脑O(shè)備管理解決方案,該平臺為每個用戶都提供設(shè)
備注冊、設(shè)備管理、數(shù)據(jù)監(jiān)控、空氣數(shù)據(jù)爬取、消息預(yù)警等通用功能。其開發(fā)成
本主要體在幾臺高性能服務(wù)器的租賃,而項目相關(guān)的開發(fā)技術(shù)都是開源且成熟
的,不需要成本。在開發(fā)初期,只需要一臺服務(wù)器即可,可以隨著平臺并發(fā)量需
求的提高增加服務(wù)器數(shù)量,將數(shù)據(jù)庫、緩存、應(yīng)用部署在不同的服務(wù)器上,逐漸
升級系統(tǒng)架構(gòu)。所以其成本是宏觀可控的。
2.2技術(shù)可行性
從開發(fā)的角度來說,技術(shù)可行性可以理解為技術(shù)選型和系統(tǒng)架構(gòu)。我們目標(biāo)
是開發(fā)一個具有通用性和可擴(kuò)展性的空氣云,那么在做技術(shù)選型和系統(tǒng)架構(gòu)設(shè)計
時也應(yīng)該選擇一種主流的的編程語言,并且該編程語言的開源社區(qū)擁有許多成熟
的項目和技術(shù)能夠幫助我們更加高效的開發(fā)網(wǎng)站。云平臺使用Java作為開發(fā)語
言,其版本為1.8。在TIOBE編程語言排行榜中,Java長期位居榜首,Java生態(tài)
圈如圖2-1所示,在安卓開發(fā)和Web領(lǐng)域中,它都有著舉足輕重的地位。
4
用戶空氣設(shè)備數(shù)據(jù)處理云平臺
JavaLanciuaae
Tools&
ToolAPIs
PeDlOYment
UserInterface
Intearahon
Llbranes
OtherBase
Libraries
lanaandutil
BaseLibraries
JavaVirtualMachineJavaHotSpotClientandServerVM
圖2-1DescriptionofJavaConceptualDiagram
來源:ORACLEWEBSITEhttps://docs.oracle.eom/javase/8/docs/
云平臺采用的是當(dāng)前極為流行的MVC架構(gòu)設(shè)計⑷的,MVC將整個云平臺系
統(tǒng)分為三層,并加入了穿插于各層的權(quán)限控制、日志記錄、消息隊列功能。其中
硬件API接口和WEB展示層為控制層(Controller),Redis緩存和一些功能模塊
為服務(wù)層,最底層是系統(tǒng)的持久層,也就是數(shù)據(jù)的本地存儲。其中服務(wù)層和持久
層統(tǒng)稱為模型層(Model),層與層之間通過接口連接,保證了系統(tǒng)功能的高內(nèi)聚、
低耦合,方便以后進(jìn)行功能的擴(kuò)展。云平臺的技術(shù)棧如圖2-2所示。
系統(tǒng)技術(shù)棧
項目構(gòu)建MVC框架數(shù)據(jù)爬取框架數(shù)據(jù)庫曰志工具視圖層技術(shù)
GitSpringMVCGeccoMySQLLog4jHTML
MavenSpringRedisSlf4jCSS
MybatisJavaScript
Thymeleaf
圖2-2云平臺系統(tǒng)技術(shù)棧
其架構(gòu)的簡要技術(shù)選型如下:
1.項目構(gòu)建和版本控制工具:采用Maven做項目構(gòu)建和依賴管理工具,使
用Git做版本控制。
用戶空氣設(shè)備數(shù)據(jù)處理云平臺
2.MVC框架選擇:本平臺整體架構(gòu)采用SSM框架搭建,也就是JavaWeb
開發(fā)中常用的SpringMVC+Spring+Mybatis組合。為了加快云平臺的響應(yīng)速度和
支持更高的并發(fā)數(shù),本平臺加入了數(shù)據(jù)緩沖層,采用了基于內(nèi)存的鍵值型數(shù)據(jù)庫
RediSo
3.數(shù)據(jù)爬取框架:為了給空氣質(zhì)量檢測儀推送全國天氣和空氣數(shù)據(jù),需要
空氣云定時從其它天氣網(wǎng)站中實時爬取天氣和空氣數(shù)據(jù)存儲到本地數(shù)據(jù)庫,硬件
設(shè)備可以通過硬件API接口來獲取這些數(shù)據(jù)。本平臺采取的數(shù)據(jù)爬取框架為
WebMagic,它能夠簡化數(shù)據(jù)的爬取的過程。對于爬取一些簡單頁面來說,它擁
有體積小,爬取迅速的優(yōu)點。
2.3社會可行性
針對傳統(tǒng)空氣檢測設(shè)備管理不便、及時性差、功能單一等現(xiàn)象,結(jié)合物聯(lián)網(wǎng)
和互聯(lián)網(wǎng)技術(shù),基于一種NB-IoT的空氣質(zhì)量檢測儀開發(fā)的空氣設(shè)備數(shù)據(jù)處理云
平臺。能夠讓用戶方便的管理硬件設(shè)備,隨時隨地掌握消息動態(tài),將“被動”轉(zhuǎn)
化為“主動”。
對于一個沒有擁有自己云平臺的空氣質(zhì)檢設(shè)備制造商來說,在如今都講究
“萬物互聯(lián),服務(wù)為王”的時代,必然會逐漸喪失自己的核心競爭力,但是一個
中小型企業(yè)如果需要培養(yǎng)自己的技術(shù)團(tuán)隊和運營團(tuán)隊去開發(fā)和維護(hù)一個自己的
云平臺,那么必然需要投入巨大的人力物力財力以及時間,這是很多小企業(yè)都無
法承受的代價,如果擁有一個開源的云平臺,那么既可以大大減少預(yù)期投入,同
樣也能大大降低風(fēng)險。
用戶空氣設(shè)備數(shù)據(jù)處理云平臺
3系統(tǒng)需求分析
3.1系統(tǒng)目標(biāo)
用戶空氣設(shè)備數(shù)據(jù)處理云平臺,基于用戶來對各個空氣質(zhì)檢設(shè)備來進(jìn)行管
理,這里的用戶一般指質(zhì)檢設(shè)備的使用者,可能是個人、小區(qū)的管理者,因為平
臺的設(shè)計初衷就是為了滿足多用戶同時在線對多種不同的設(shè)備進(jìn)行管理。他們可
以通過云平臺進(jìn)行設(shè)備注冊、設(shè)備查看、設(shè)備數(shù)據(jù)上傳等操作,此外,云平臺還
提供全國各區(qū)域的空氣和天氣數(shù)據(jù)的ResultfulAPI查看接口,對于可以通過
Internet連接到的云平臺的物聯(lián)網(wǎng)設(shè)備,可以在不用添加硬件相關(guān)模塊的基礎(chǔ)上,
直接獲取到相關(guān)空氣質(zhì)量和天氣數(shù)據(jù),可以進(jìn)一步降低成本。我們期望能夠搭建
一個高并發(fā)低延遲的系統(tǒng),能同時支持大量用戶和硬件設(shè)備的連接。用戶可以通
過人性化的后臺管理界面,隨時隨地掌握設(shè)備動態(tài)。
3.2系統(tǒng)功能分析
3.2.1用戶注冊和用戶信息管理
幾乎任何后臺管理類系統(tǒng)都需要基于用戶來對于整個系統(tǒng)進(jìn)行操作,只有擁
有相應(yīng)角色的用戶才能夠?qū)ο鄳?yīng)功能菜單進(jìn)行操作。用戶注冊需要系統(tǒng)使用者提
供一些個人基本信息,云平臺將會根據(jù)這些信息為其生成一個僅供個人使用的賬
號,密碼可由賬號使用者指定。
用戶信息管理模塊提供用戶對之前注冊的信息進(jìn)行修改和賬號密碼更改等
功能,因為網(wǎng)站所有的功能都是基于用戶來進(jìn)行展示的,每個用戶只能查看和管
理個人注冊的設(shè)備相關(guān)信息。
3.2.2設(shè)備注冊
云平臺的功能核心就是設(shè)備管理。在進(jìn)行設(shè)備管理之前我們需要設(shè)計一個安
全驗證模塊,只有被云平臺授權(quán)的設(shè)備類型才能夠連接云平臺并被云平臺所管
理。設(shè)備注冊就是安全驗證模塊的一部分,設(shè)備類型注冊需要用戶通過系統(tǒng)手動
填寫設(shè)備相關(guān)的一些基礎(chǔ)信息,例如設(shè)備名稱、設(shè)備類型、數(shù)據(jù)push方式、數(shù)
據(jù)pull方式等等,系統(tǒng)最后會根據(jù)該注冊信息為該設(shè)備類型生成唯一的設(shè)備類型
ID以及設(shè)備驗證token,這樣當(dāng)該類型的設(shè)備連接云平臺時,只需要根據(jù)該驗證
7
用戶空氣設(shè)備數(shù)據(jù)處理云平臺
token就可以證明其身份。
3.2.3設(shè)備管理
設(shè)備管理是用來查看該用戶已經(jīng)注冊的設(shè)備類型列表,可以查看和修改設(shè)備
的基本類型信息,除此之外,還能查看已經(jīng)接入平臺的設(shè)備列表,可以直接查看
到設(shè)備的當(dāng)前狀態(tài),上次狀態(tài)更新時間,設(shè)備消息預(yù)警級別等等。
3.2.4接入數(shù)據(jù)查看
已經(jīng)接入平臺的設(shè)備可以隨時向云平臺上傳其設(shè)備檢測數(shù)據(jù),云平臺會將其
組織化的存入數(shù)據(jù)庫,設(shè)備上傳的數(shù)據(jù)需要符合平臺與設(shè)備通信約定的數(shù)據(jù)格
式,這樣云平臺才能對數(shù)據(jù)進(jìn)行正確的解析和最終展示。
3.3系統(tǒng)功能結(jié)構(gòu)
根據(jù)以上我們對云平臺主要功能的分析,我們可以得出系統(tǒng)的主要功能結(jié)
構(gòu),如圖3-1所示,云平臺主要包含了用戶管理、設(shè)備管理、數(shù)據(jù)爬取、數(shù)據(jù)接
設(shè)備消息直看
圖3-1系統(tǒng)功能結(jié)構(gòu)圖
用戶空氣設(shè)備數(shù)據(jù)處理云平臺
3.4系統(tǒng)功能描述和用例分析
用例描述用來說明一個功能的大概處理流程,可以較為準(zhǔn)確的去描述一個業(yè)
務(wù)功能。是客戶和開發(fā)者之間良好的溝通橋梁。
3.4.1系統(tǒng)的總用例圖
本系統(tǒng)開發(fā)初期會基于某一個用戶進(jìn)行開發(fā),該用戶擁有系統(tǒng)所有功能模塊
的訪問權(quán)限,其角色相當(dāng)于管理員,系統(tǒng)的總用例圖如圖3-2所示。
圖3-2云平臺系統(tǒng)總用例圖
3.4.2用戶信息管理
(1)功能描述
用戶信息查看:管理員或者用戶登錄云平臺進(jìn)入個人中心主頁可以看到個人
信息。
用戶信息修改:當(dāng)用戶注冊信息變化時,用戶可以通過此功能進(jìn)行修改個人
信息。
密碼修改:當(dāng)密碼泄露或者系統(tǒng)賬號安全預(yù)警時,用戶可以修改登錄密碼,
保障賬號的安全。
(2)用例描述
用戶信息管理用例的參與者是用戶或者管理員,其詳細(xì)用例描述如表3-1所
示
用戶空氣設(shè)備數(shù)據(jù)處理云平臺
表3-1用戶信息管理用例
內(nèi)容說明
用例編號UserinfoManagement
用例名稱云平臺用戶個人信息管理
用例說明對個人信息進(jìn)行查看、編輯、修改個人密碼
參與者用戶或者管理員
前置條件用戶登錄云平臺的個人中心頁面
基本事件流1.用戶點擊個人信息頁面,這時會顯示用戶個人信息。如果沒
有顯示,跳至al。
2.用戶點擊修改按鈕,這時會彈出消息模態(tài)框,用戶可以修改
自己的相關(guān)信息,點擊保存按鈕,模態(tài)框消失,彈框提示保
存成功,否則跳至a2。
3.用戶點擊修改密碼按鈕,這時會彈出修改密碼模態(tài)框,按照
流程進(jìn)行密碼更改。點擊確認(rèn),原密碼輸入正確密碼修改成
功,自動提示重登,否則跳至a3。
異常事故流al.提示框:功能異常,請刷新頁面重試。
a2.提示框:保存失敗,提示失敗原因。
a3.提示框:修改失敗,提示失敗原因。
后置條件用戶成功完成相關(guān)操作
3.4.3設(shè)備管理
(1)功能描述
設(shè)備類型注冊:用戶需要添加連接云平臺設(shè)備基本信息,云平臺會為此生成
唯一的驗證token,空氣質(zhì)檢設(shè)備可以根據(jù)此token通過驗證,連接云平臺。
設(shè)備列表:顯示曾連接過云平臺的空氣質(zhì)檢設(shè)備列表,會顯示設(shè)備的基本信
息,同時還可以修改預(yù)警級別,開啟下線預(yù)警,加入設(shè)備黑名單等等功能。
設(shè)備數(shù)據(jù)查看:空氣質(zhì)檢設(shè)備和云平臺機(jī)建立穩(wěn)定連接后,就可以向云平臺
上傳自己的設(shè)備數(shù)據(jù),用戶可以在云平臺上查看設(shè)備數(shù)據(jù)。
(2)用例描述
用例描述主要包含了參與者、前置條件、基本事件流的說明,設(shè)備類型注冊
的用例描述如表3-2所示,設(shè)備列表的用例描述如表3-3所示。
表3-2設(shè)備類型注冊用例
內(nèi)容說明
用例編號DeviceTypeRegister
用例名稱設(shè)備類型注冊
用例說明用戶添加被管理的設(shè)備的基本類型信息
參與者用戶或者管理員
前置條件進(jìn)入設(shè)備類型管理頁面
10
用戶空氣設(shè)備數(shù)據(jù)處理云平臺
基本事件流1.用戶點擊列表右上角的添加按鈕,彈出設(shè)備注冊模態(tài)框,用戶
填寫要注冊設(shè)備類型的基本信息。
2.用戶填寫設(shè)備基本信息完成后,點擊確認(rèn)添加按鈕,模態(tài)框消
失,彈框提醒,設(shè)備類型添加成功,然后刷新列表。否則跳至
3.1o
3.用戶點擊列表任何設(shè)備類型記錄中的修改按鈕,觸發(fā)設(shè)備類型
信息修改功能。彈出修改模態(tài)框,模塊框會加載之前設(shè)備注冊
的相關(guān)信息。否則調(diào)至a2。用戶修改相關(guān)信息,點擊保存完成
修改,模態(tài)框消失,提示保存成功,否則跳至a3。
異常事故流al.提示框:設(shè)備注冊失敗,提示失敗原因。
a2.提示框:加載信息失敗,請刷新頁面重試。
a3.提示框:修改失敗,提示失敗原因。
后置條件用戶成功完成相關(guān)操作
表3-3設(shè)備列表用例
內(nèi)容說明
用例編號DeviceList
用例名稱設(shè)備列表
用例說明用戶通過設(shè)備列表管理設(shè)備
參與者用戶或者管理員
前置條件進(jìn)入設(shè)備列表頁面
基本事件流1.用戶可以根據(jù)查詢條件篩選設(shè)備,點擊查詢按鈕,列表刷新,
顯示篩選結(jié)果。否則跳至al。
2.在線設(shè)備可以查看其實時數(shù)據(jù),對于在線設(shè)備,右側(cè)有查看按
鈕,點擊查看按鈕,進(jìn)入數(shù)據(jù)詳情頁。否則跳至a2。
3.點擊加入黑名單按鈕,云平臺將會禁止該設(shè)備連接云平臺,
設(shè)備狀態(tài)之前如果為在線狀態(tài),這時會變?yōu)橐严戮€。
異常事故流al.提示框:查詢失敗,請刷新頁面后重試。
a2.提示框:實時數(shù)據(jù)加載失敗,請檢查設(shè)備狀態(tài)。
后置條件用戶成功完成相關(guān)操作
用戶空氣設(shè)備數(shù)據(jù)處理云平臺
4云平臺數(shù)據(jù)庫設(shè)計
4.1關(guān)系數(shù)據(jù)庫的選擇
空氣云選用的是MySQL數(shù)據(jù)庫,MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系
統(tǒng)以其體積小,速度快,應(yīng)用成本較低,是開發(fā)中小型項目的首選。相比其它
類型的數(shù)據(jù)庫,它有以下幾個特點:
1.功能強(qiáng)大,能夠滿足幾乎所有的開發(fā)需求,并且開源免費。
2.支持多種存儲引擎,可根據(jù)開發(fā)場景的不同為表選用合適的存儲引擎,提
高數(shù)據(jù)庫的性能。
3.安裝簡單,擴(kuò)展容易,迎合了企業(yè)敏捷開發(fā)產(chǎn)品快速迭代的需求,可根據(jù)
業(yè)務(wù)量的逐漸提升逐漸改變數(shù)據(jù)庫的架構(gòu),從數(shù)據(jù)庫分區(qū)、分表到主從搭
建、讀寫分離,都可以用比較小的成本去實現(xiàn)。
在真正的企業(yè)級開發(fā)中一般都是搭建數(shù)據(jù)庫主從集群,開發(fā)階段使用兩臺云
數(shù)據(jù)庫,一主一從,讀寫分離,這樣能夠有效提高數(shù)據(jù)庫的讀寫性能,避免產(chǎn)生
10性能瓶頸。云平臺的數(shù)據(jù)庫架構(gòu)是單機(jī)架構(gòu),這也是根據(jù)目前系統(tǒng)大小和并
發(fā)量來決定的,如果對小系統(tǒng)使用數(shù)據(jù)庫集群,不僅不會提高網(wǎng)站的并發(fā)量,還
有可能增加網(wǎng)站的響應(yīng)時間。因為只有在網(wǎng)站并發(fā)量極大,數(shù)據(jù)庫成為瓶頸的情
況下升級數(shù)據(jù)庫架構(gòu)才會有意義,否則只會增加應(yīng)用服務(wù)器的壓力(數(shù)據(jù)庫架構(gòu)
越復(fù)雜,業(yè)務(wù)層所做的處理就越多),反而降低了網(wǎng)站的并發(fā)量。
4.2緩存數(shù)據(jù)庫Redis的使用
為了避免數(shù)據(jù)庫壓力過大,云平臺引入當(dāng)下十分流行的Key-Value緩存數(shù)據(jù)
庫⑹Redis,對于一些頁面可以極大降低訪問延遲。
用戶每瀏覽一個頁面,瀏覽器可能需要向應(yīng)用服務(wù)器發(fā)起幾十個請求。除去
一些靜態(tài)資源,如CSS、JS、圖片等,其它的請求每次都需要連接數(shù)據(jù)庫去讀寫
數(shù)據(jù)。網(wǎng)站并發(fā)量比較小的時候,應(yīng)用服務(wù)器和數(shù)據(jù)庫都夠很快的處理請求并將
響應(yīng)結(jié)果返回給用戶。但隨著用戶并發(fā)量的增大,數(shù)據(jù)庫表記錄的快速增長,數(shù)
據(jù)庫的查詢時間會逐漸變長,查詢性能越來越差,每個用戶請求的處理時間越來
越長,并發(fā)的請求數(shù)又在增加,在這種情況下,應(yīng)用服務(wù)器可能因為大量請求的
堆積而被壓垮宕機(jī)。
12
用戶空氣設(shè)備數(shù)據(jù)處理云平臺
[請求返回J
圖4-1緩存命中流程圖
如圖4-1所示,開發(fā)的最佳實踐是減少對數(shù)據(jù)庫的訪問,將短時間內(nèi)不會改
變的數(shù)據(jù)進(jìn)行緩存,用戶第一次請求該數(shù)據(jù)時訪問數(shù)據(jù)庫獲取,然后將該數(shù)據(jù)進(jìn)
行緩存。用戶下次獲取該數(shù)據(jù)時直接命中緩沖,避免了查詢數(shù)據(jù)庫。一次請求使
用緩沖和不使用緩存其性能可以相差十多倍。
4.3數(shù)據(jù)庫E-R聯(lián)系圖
數(shù)據(jù)庫E-R圖可以很好的用來表示現(xiàn)實世界的概念模型。可以讓開發(fā)人員
在不熟悉數(shù)據(jù)庫的情況下更快了解業(yè)務(wù)中的各實體對象的相關(guān)聯(lián)系,是軟件開發(fā)
數(shù)據(jù)庫設(shè)計中不可或缺的一個階段,開發(fā)者根據(jù)總體E-R聯(lián)系圖在代碼中建立
對應(yīng)的Entity對象,云平臺的主要實體-聯(lián)系圖如圖4-2所示。
圖4-2系統(tǒng)主要關(guān)系E-R圖
用戶空氣設(shè)備數(shù)據(jù)處理云平臺
4.4數(shù)據(jù)庫表的設(shè)計
4.4.1概要說明
合理的表結(jié)構(gòu)能夠減少冗余數(shù)據(jù)的產(chǎn)生,提高數(shù)據(jù)庫查詢速度。一般來說數(shù)
據(jù)庫表的設(shè)計需要滿足第三范式,這樣表數(shù)據(jù)的冗余會最少,但是在企業(yè)級開發(fā)
中很少會這樣設(shè)計。因為嚴(yán)格按照三范式來設(shè)計表的話,那么一個數(shù)據(jù)的查詢可
能要連接三張表以上,這樣會導(dǎo)致嚴(yán)重的性能問題。云平臺期望設(shè)計一個高可靠、
低延遲的后臺系統(tǒng),那么數(shù)據(jù)庫的設(shè)計就顯得十分重要,本平臺數(shù)據(jù)庫設(shè)計概要
規(guī)則如下:
1.每個表都設(shè)置ID字段用作主鍵,主鍵生成策略使用UUID,也就是全局
唯一ID,便于后期數(shù)據(jù)庫架構(gòu)進(jìn)行升級,分區(qū)分表等等不會遇到主鍵不唯一的
問題。
2.數(shù)據(jù)庫不設(shè)置外鍵,也不建立其它約束,如非空、唯一等。實體與實體
之間的關(guān)系通過業(yè)務(wù)層來保證。這樣在開發(fā)初期能夠避免因為數(shù)據(jù)約束問題導(dǎo)致
的各種數(shù)據(jù)庫異常發(fā)生,而最重要的一點是,表的約束越多,那么每次CRUD
操作數(shù)據(jù)庫都需要去檢查數(shù)據(jù)是否滿足約束條件,增加了數(shù)據(jù)庫資源消耗,降低
了數(shù)據(jù)庫性能。我們把約束性檢查交給業(yè)務(wù)層,也就將壓力給了應(yīng)用服務(wù)器,但
往往數(shù)據(jù)庫的性能瓶頸要比應(yīng)用服務(wù)器來的快。
3.對于經(jīng)常需要連表查詢的字段進(jìn)行適當(dāng)冗余,這樣可以只查詢單表便能
得到需要的數(shù)據(jù)。
4.幾乎每張表都需要設(shè)置表4-1中的通用數(shù)據(jù)庫字段,以方便業(yè)務(wù)后期擴(kuò)
展和權(quán)限控制,之后表詳細(xì)設(shè)計中將不會列出該表中的通用字段。
表4-1通用數(shù)據(jù)庫字段說明
字段名稱類型長度字段說明
create_timedatetime默認(rèn)創(chuàng)建時間
create_byvarchar36創(chuàng)建者ID
update_timedatetime默認(rèn)更新時間
update_byvarchar36更新者ID
del_flagbit1刪除標(biāo)志,0未刪除,1己刪除
用戶空氣設(shè)備數(shù)據(jù)處理云平臺
4.4.2用戶表t_users
用戶表可以說是系統(tǒng)最核心的一張表,任何業(yè)務(wù)和功能都需要基于用戶細(xì)粒
度去開發(fā)。詳細(xì)表結(jié)構(gòu)設(shè)計如下:
表4-2用戶表字段說明
字段名稱類型長度字段說明
user__idvarchar36用戶ID
user_namevarchar30用戶昵稱
sexbit1性別,0:男,1:女
organization_namevarchar50組織名稱,(公司、小區(qū))
4.4.3設(shè)備類型表t_device_type
設(shè)備類型表主要用于設(shè)備類型的注冊,每個和云平臺連接的設(shè)備都對應(yīng)唯一
的設(shè)備類型,通過該表可以知道設(shè)備的一些約定配置。云平臺憑借這些約定配置
來和設(shè)備進(jìn)行通信。
表4-3設(shè)備類型表字段說明
字段名稱類型長度字段說明
type_idvarchar36設(shè)備類型ID
設(shè)備驗證token,設(shè)備連接安全驗
access_tokenvarchar36
證
type_namevarchar10類型名稱
connect_typeint1連接類型,0:TCP,l:UDP,2:HTTP
默認(rèn)預(yù)警級別:0:無,1:下線預(yù)警,
warning_typeint1
2:數(shù)據(jù)異常預(yù)警
waming_keyvarchar30異常數(shù)據(jù)關(guān)鍵字
warning_wayint1預(yù)警方式:1:郵箱2:短信3:電話
4.4.4設(shè)備表t_device
設(shè)備表用作記錄連接云平臺設(shè)備的相關(guān)信息。通過這張表我們能夠知道設(shè)備
的一些基本狀態(tài)、連接記錄、統(tǒng)計信息。
用戶空氣設(shè)備數(shù)據(jù)處理云平臺
表格4-4設(shè)備表字段說明
字段名稱類型長度字段說明
device_idvarchar36設(shè)備ID
device_typevarchar36業(yè)務(wù)邏輯中設(shè)備類型ID
設(shè)備名稱,默認(rèn)為類型名
device_namevarchar36
稱+自動增長編號
connect_addressvarchar50記錄設(shè)備連接IP
custom_warn_gradeint1自定義預(yù)警類型
last_connect_timedatetime默認(rèn)最后一次連接時間
heartbeat_gapint1設(shè)備心跳間隔,單位秒
是否加入黑名單。0:false,1:
blacklistbit1
true
4.4.5消息記錄表t_message_info
消息記錄表用來存放設(shè)備的上傳數(shù)據(jù),數(shù)據(jù)異常消息記錄,設(shè)備下線記錄等
等。
表格4-5消息記錄表字段說明
字段名稱類型長度字段說明
msg_idvarchar36記錄ID
device_idvarchar36設(shè)備id,業(yè)務(wù)邏輯上的外鍵
消息類型:1.上線2.異常下線3.
msg_typeint1
設(shè)備數(shù)據(jù)。
msg_bodyvarchar10000消息體,以json格式去存儲。
用戶空氣設(shè)備數(shù)據(jù)處理云平臺
4.5數(shù)據(jù)庫實體類抽象
平臺實體類及關(guān)系圖如圖4-3所示。
消息記泉表
msg_id
devlce_narr?edevice_id
connect_addressrrtsg_type
customwarngarde
rr?SRbody
last_conr?ect_time
heartbeatgap
改笛炎型表
Id
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度土地征收補(bǔ)償及居民安置服務(wù)合同3篇
- 2025年度質(zhì)量工作計劃
- 年學(xué)困生輔導(dǎo)計劃和轉(zhuǎn)化計劃匯編
- 鄉(xiāng)村計劃生育工作總結(jié)報告范文
- 醫(yī)生個人計劃安排
- 2025年服裝銷售工作計劃例文
- 有關(guān)寫幼兒園中班教學(xué)計劃
- 出納2025年終總結(jié)和2025工作計劃
- 《機(jī)械制圖與CAD含習(xí)題集》課件-第6章2
- 《外匯與外匯市場》課件
- 崗位價值評估表
- 漢語教程(講課)-第二冊第01課
- 尋貓啟事標(biāo)準(zhǔn)范文
- 高中音樂-《錦雞出山》教學(xué)課件設(shè)計
- DB51T3062-2023四川省高標(biāo)準(zhǔn)農(nóng)田建設(shè)技術(shù)規(guī)范
- 輪轂產(chǎn)品設(shè)計參考手冊2007
- 中國姓氏名字文化
- 部編版八年級歷史上冊《第18課九一八事變與西安事變》教案及教學(xué)反思
- 2023年成都市生物畢業(yè)會考知識點含會考試題及答案
- 高速公路總監(jiān)辦年度平安總結(jié)
- 2023年小學(xué)德育處三年發(fā)展規(guī)劃
評論
0/150
提交評論