用戶空氣設(shè)備數(shù)據(jù)處理云平臺_第1頁
用戶空氣設(shè)備數(shù)據(jù)處理云平臺_第2頁
用戶空氣設(shè)備數(shù)據(jù)處理云平臺_第3頁
用戶空氣設(shè)備數(shù)據(jù)處理云平臺_第4頁
用戶空氣設(shè)備數(shù)據(jù)處理云平臺_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論