摘要:在物聯(lián)網(wǎng)的大背景下,基于互聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)對(duì)工程機(jī)械的遠(yuǎn)程管理系統(tǒng)是必然趨勢(shì),相比于傳統(tǒng)管理方式,遠(yuǎn)程管理更加高效、便捷。系統(tǒng)基于互聯(lián)網(wǎng)技術(shù),運(yùn)用Java語(yǔ)言開(kāi)發(fā),基于B/S系統(tǒng)設(shè)計(jì)結(jié)構(gòu),采用SpringBoot、MVC架構(gòu)模式、GPS定位技術(shù)、CSS、JavaScript、ORACLE等Web開(kāi)發(fā)技術(shù),并將工程機(jī)械的數(shù)據(jù)信息準(zhǔn)確、快速地從物聯(lián)網(wǎng)網(wǎng)絡(luò)中采集出來(lái),保存到系統(tǒng)數(shù)據(jù)庫(kù),再針對(duì)大型數(shù)據(jù)庫(kù)的設(shè)計(jì)進(jìn)行優(yōu)化,完成系統(tǒng)的設(shè)計(jì)。主要介紹了系統(tǒng)的架構(gòu)設(shè)計(jì)模式、系統(tǒng)的模塊設(shè)計(jì)以及關(guān)鍵技術(shù)的實(shí)現(xiàn)。該系統(tǒng)幫助企業(yè)了解如何管理工程機(jī)械設(shè)備,具有良好的社會(huì)和經(jīng)濟(jì)效益,并很好地響應(yīng)了“數(shù)字新經(jīng)濟(jì)物聯(lián)新時(shí)代”的主題。
關(guān)鍵詞:物聯(lián)網(wǎng);遠(yuǎn)程管理系統(tǒng);B/S架構(gòu);SpringBoot;數(shù)據(jù)庫(kù)設(shè)計(jì)
在企業(yè)的發(fā)展中,單純的實(shí)地測(cè)試、監(jiān)控、銷售已經(jīng)不再適應(yīng)時(shí)代的發(fā)展需求,隨著大量的買賣平臺(tái)、辦公系統(tǒng)、監(jiān)控系統(tǒng)的出現(xiàn),人們更加傾向于使用互聯(lián)網(wǎng)完成日常的工作需求,工程機(jī)械與互聯(lián)網(wǎng)技術(shù)的結(jié)合正是順應(yīng)新時(shí)代的發(fā)展而誕生出來(lái)的。本系統(tǒng)在企業(yè)的角度,順應(yīng)大眾的工作方式的基礎(chǔ)上進(jìn)行了相關(guān)的網(wǎng)站開(kāi)發(fā)。最近幾年,目標(biāo)公司擁有的車輛管理系統(tǒng),一方面在操作性能、車輛的監(jiān)控等方面已經(jīng)無(wú)法滿足用戶的需求,另一方面由于公司的不斷發(fā)展,擁有的裝備越來(lái)越多,原本的系統(tǒng)設(shè)計(jì)模式弊端日益明顯,對(duì)日常工作產(chǎn)生了極大的困擾。本系統(tǒng)基于MVC架構(gòu)設(shè)計(jì)模式以及三層架構(gòu)的軟件編程方式,并考慮到數(shù)據(jù)庫(kù)的可擴(kuò)展性、高并發(fā)訪問(wèn)、良好的人機(jī)交互,采用分庫(kù)分表的數(shù)據(jù)庫(kù)設(shè)計(jì)方式。使用Nginx負(fù)載均衡的調(diào)度管理以及HTML5、CSS、JavaScript等Web開(kāi)發(fā)技術(shù)進(jìn)行網(wǎng)頁(yè)設(shè)計(jì),最終完成系統(tǒng)的開(kāi)發(fā)。
1系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
工程機(jī)械綜合信息管理系統(tǒng)主要由車輛管理、設(shè)備管理、銷售管理、后市場(chǎng)管理以及系統(tǒng)管理組成。車輛管理負(fù)責(zé)管理所有庫(kù)存、樣機(jī)和銷售的裝備信息;設(shè)備管理負(fù)責(zé)管理設(shè)備的登記、測(cè)試、入庫(kù)、出庫(kù)等;銷售管理負(fù)責(zé)管理裝備的銷售、售后維保;后市場(chǎng)管理負(fù)責(zé)裝備的維保、數(shù)據(jù)統(tǒng)計(jì)、報(bào)警信息處理等;系統(tǒng)管理負(fù)責(zé)進(jìn)行組織結(jié)構(gòu)的建立、劃分權(quán)限角色、分配功能操作、進(jìn)行用戶信息的注冊(cè)與維護(hù)。
1.1系統(tǒng)整體框架設(shè)計(jì)
系統(tǒng)的基礎(chǔ)框架采用Java的開(kāi)源框架SpringBoot,架構(gòu)則采用較為流行的三層架構(gòu)模式。為了適應(yīng)現(xiàn)階段系統(tǒng)的大數(shù)據(jù)、高并發(fā)、高可用等特點(diǎn),Web服務(wù)器采用集群的搭建方式,通過(guò)Nginx反向代理服務(wù)器進(jìn)行負(fù)載均衡的調(diào)度管理。由于數(shù)據(jù)量大,而本系統(tǒng)中數(shù)據(jù)多需要讀取、計(jì)算、統(tǒng)計(jì),因此為了減輕數(shù)據(jù)庫(kù)壓力,提高系統(tǒng)的反應(yīng)速度,通過(guò)使用應(yīng)用服務(wù)器來(lái)分擔(dān)這部分的壓力,同時(shí)使用分庫(kù)分表的設(shè)計(jì)方式,對(duì)單庫(kù)進(jìn)行垂直劃分、單表進(jìn)行水平劃分,把大量的設(shè)備信息表平均的分配到對(duì)應(yīng)的數(shù)據(jù)庫(kù)中,以減輕單個(gè)數(shù)據(jù)庫(kù)的運(yùn)行壓力。
1.2系統(tǒng)功能模塊設(shè)計(jì)
針對(duì)目標(biāo)的現(xiàn)狀以及業(yè)務(wù)的需求,對(duì)系統(tǒng)的功能做了如下劃分,如圖2所示。系統(tǒng)主要分為五個(gè)模塊:車輛管理模塊、設(shè)備管理模塊、銷售管理模塊、后市場(chǎng)管理模塊以及系統(tǒng)管理模塊。1)車輛管理模塊:該模塊主要是對(duì)工程車輛的使用密碼的維護(hù)、車輛的實(shí)時(shí)定位、軌跡的追蹤、車輛的狀態(tài)信息的管理。2)設(shè)備管理模塊:該模塊主要是對(duì)設(shè)備終端的測(cè)試,包括指令下發(fā)、參數(shù)的配置;設(shè)備及終端信息的維護(hù);車輛的測(cè)試、質(zhì)檢。3)銷售管理模塊:該模塊主要包含經(jīng)銷商權(quán)限的管理,銷售信息的確認(rèn),客戶信息的登記,設(shè)備的維修,機(jī)器的注冊(cè)以及服務(wù)轉(zhuǎn)移。4)后市場(chǎng)管理模塊:該模塊主要針對(duì)已銷售車輛,包含車輛的保養(yǎng)信息、報(bào)警信息、通訊情況、工況信息、報(bào)表的統(tǒng)計(jì)以及維保售后。5)系統(tǒng)管理模塊:該模塊主要是負(fù)責(zé)組織結(jié)構(gòu)的建立、人員的注冊(cè)、信息的維護(hù)、角色權(quán)限的劃分、權(quán)限對(duì)應(yīng)資源的劃分。為了明確各個(gè)人員的管理職責(zé),高效地完成對(duì)應(yīng)的工作,上述第1、2、3、4模塊均需要對(duì)每一個(gè)用戶進(jìn)行相應(yīng)的授權(quán),提高系統(tǒng)運(yùn)行的安全性以及管理工作的高效性。
2關(guān)鍵技術(shù)的實(shí)現(xiàn)
2.1分庫(kù)分表技術(shù)的實(shí)現(xiàn)
隨著本系統(tǒng)的報(bào)警數(shù)據(jù),實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)不斷增長(zhǎng),數(shù)據(jù)量日益龐大起來(lái),顯然單個(gè)數(shù)據(jù)庫(kù)、單個(gè)表的容量已無(wú)法滿足需求。為了使本系統(tǒng)能夠運(yùn)行持久,并具有強(qiáng)大的可擴(kuò)展性,采用分庫(kù)分表的設(shè)計(jì)方式。將數(shù)據(jù)庫(kù)進(jìn)行垂直切分,將原有的庫(kù)劃分為基礎(chǔ)信息庫(kù)、實(shí)時(shí)信息庫(kù),緩解了單個(gè)數(shù)據(jù)庫(kù)的運(yùn)行壓力。但是表的壓力依然存在,采用水平切分的方式分擔(dān)表的壓力。在表水平劃分的基礎(chǔ)上,為了使得數(shù)據(jù)庫(kù)的劃分一勞永逸或者易于水平擴(kuò)展,同時(shí)也為了使壓力能夠平均地分配到各個(gè)數(shù)據(jù)庫(kù)中,我們采用mod2n這種一致性Hash的分庫(kù)方式。使用唯一的車輛編號(hào)進(jìn)行劃分,以4個(gè)數(shù)據(jù)庫(kù)為例,使用車輛編后4位號(hào)mod4分到4個(gè)數(shù)據(jù)庫(kù)中,同時(shí)再將車輛編號(hào)后4位Div4mod4將每個(gè)庫(kù)分為4張表,分別將數(shù)據(jù)放置表中,如圖3所示。
2.2緩存技術(shù)的實(shí)現(xiàn)
緩存即為內(nèi)存中存儲(chǔ)的數(shù)據(jù)備份,當(dāng)數(shù)據(jù)沒(méi)有發(fā)生變化時(shí),可以避免數(shù)據(jù)的查詢操作直接連接數(shù)據(jù)庫(kù),而是去內(nèi)容中讀取數(shù)據(jù),這樣就大大降低了數(shù)據(jù)庫(kù)的讀寫次數(shù),而且從內(nèi)存中讀取數(shù)據(jù)的速度要比數(shù)據(jù)庫(kù)查找快得多。為了在使用本系統(tǒng)的過(guò)程中,能夠擁有良好的用戶體驗(yàn),針對(duì)統(tǒng)計(jì)量大的數(shù)據(jù)以及需要大量計(jì)算的數(shù)據(jù)使用Redis數(shù)據(jù)庫(kù)來(lái)保存緩存。相對(duì)于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)來(lái)說(shuō),Redis不同的是會(huì)將緩存的數(shù)據(jù)加載至內(nèi)存中而不是硬盤,同時(shí)作為非關(guān)系型數(shù)據(jù)庫(kù)的代表,Redis的數(shù)據(jù)擁有Key-Value的表現(xiàn)形式,所以Redis提供了高速的訪問(wèn)數(shù)據(jù)的條件,同時(shí)Redis也提供了豐富的數(shù)據(jù)類型,以及對(duì)數(shù)據(jù)持久化的支持。核心代碼如下:
2.3基于ApachePOI的數(shù)據(jù)導(dǎo)入、導(dǎo)出技術(shù)的實(shí)現(xiàn)
基于業(yè)務(wù)的需求本系統(tǒng)需要將大量的數(shù)據(jù)導(dǎo)出成表格以周報(bào)、月報(bào)的方式呈現(xiàn)出來(lái),同時(shí)在更改服務(wù)期限、更改供應(yīng)商都需要提供數(shù)據(jù)的導(dǎo)入以實(shí)現(xiàn)批量的數(shù)據(jù)操作。在Java世界中,擁有兩套較為成熟的對(duì)Excel文件操作的開(kāi)源工具:一個(gè)是JavaExcelAPI,另一個(gè)則是本文使用的ApachePOI。導(dǎo)入、導(dǎo)出流程如圖4所示。數(shù)據(jù)導(dǎo)入、導(dǎo)出的關(guān)鍵在于如何獲取表格中的數(shù)據(jù)以及如何創(chuàng)建對(duì)應(yīng)的表格,核心代碼如下所示:數(shù)據(jù)導(dǎo)出核心代碼:
3結(jié)束語(yǔ)
本文介紹了工程機(jī)械綜合信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),此系統(tǒng)作為工程機(jī)械功能的一個(gè)延伸對(duì)于工程機(jī)械的維護(hù)、管理來(lái)說(shuō),影響是巨大的。在現(xiàn)階段互聯(lián)網(wǎng)蓬勃發(fā)展的時(shí)期本系統(tǒng)可以使得工程機(jī)械的管理更加高效、便捷,并且提供了一系列的數(shù)據(jù)統(tǒng)計(jì)展示、監(jiān)控等功能,為以后對(duì)工程機(jī)械市場(chǎng)的分析、裝備的數(shù)據(jù)的比較提供了保證。目前該系統(tǒng)已投入使用,并且運(yùn)行良好。
該內(nèi)容由行業(yè)企業(yè)、終端個(gè)體、第三方機(jī)構(gòu)提供,本網(wǎng)僅起到傳播該信息的目的,如有任何疑問(wèn)請(qǐng)與轉(zhuǎn)載來(lái)源機(jī)構(gòu)聯(lián)系解決,感謝支持。如發(fā)現(xiàn)侵權(quán),本網(wǎng)編輯部將協(xié)助進(jìn)行處理或撤稿。
歡迎轉(zhuǎn)載分享,轉(zhuǎn)載注明挖掘機(jī)加長(zhǎng)臂、拆樓機(jī)加長(zhǎng)臂、抓木器、快換接頭、松土器專業(yè)
官方網(wǎng)站地址http://hbcygy.com非常感謝!
微信二維碼 |
微博二維碼 |