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