• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于NoSQL的農(nóng)業(yè)數(shù)據(jù)采集任務(wù)分發(fā)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      2022-01-11 09:42:40方黨豫高賢強(qiáng)
      現(xiàn)代計(jì)算機(jī) 2021年32期
      關(guān)鍵詞:負(fù)責(zé)人頁(yè)面流程

      方黨豫,高賢強(qiáng)

      (塔里木大學(xué)信息工程學(xué)院,阿拉爾 843300)

      0 引言

      農(nóng)業(yè)數(shù)據(jù)采集是農(nóng)業(yè)研究工作開(kāi)展的載體,雖然目前在智慧農(nóng)業(yè)生產(chǎn)中,已經(jīng)大量應(yīng)用了溫濕度傳感器、pH值傳感器、光照強(qiáng)度傳感器和二氧化碳濃度傳感器等傳感器,并構(gòu)建了感知層、網(wǎng)絡(luò)層與應(yīng)用層,實(shí)現(xiàn)了以上數(shù)據(jù)的精確采集與自動(dòng)上傳云端[1],但是農(nóng)業(yè)數(shù)據(jù)采集往往具有數(shù)據(jù)繁雜、數(shù)據(jù)量大、采集地點(diǎn)分散等特點(diǎn),傳感器采集數(shù)據(jù)主要適用于精細(xì)化生產(chǎn)過(guò)程,具有數(shù)據(jù)輻射范圍小、數(shù)據(jù)類(lèi)型固定、鋪設(shè)成本高等特點(diǎn),對(duì)于林業(yè)資源、農(nóng)業(yè)人文資源與生物資源等并不適用[2-3]。

      隨著智能手機(jī)的普及,為農(nóng)業(yè)科研人員的數(shù)據(jù)采集方式提供了新思路。本系統(tǒng)基于NoSQL 數(shù)據(jù)庫(kù)MongoDB,依托其特性,旨在輔助農(nóng)業(yè)科研人員根據(jù)自身所需的數(shù)據(jù)庫(kù)結(jié)構(gòu),在系統(tǒng)PC端快速構(gòu)建數(shù)據(jù)采集任務(wù),通過(guò)手機(jī)共同協(xié)作錄入數(shù)據(jù),大大降低了科研人員的工作量和勞動(dòng)強(qiáng)度,提高了科研人員共同協(xié)作的效率。并提供了數(shù)據(jù)管理的基礎(chǔ)功能,可導(dǎo)出數(shù)據(jù)為后續(xù)的科研工作做準(zhǔn)備。

      1 系統(tǒng)概述

      1.1 系統(tǒng)環(huán)境

      本系統(tǒng)使用前后端分離的開(kāi)發(fā)模式,開(kāi)發(fā)架構(gòu)由傳統(tǒng)的MVC 模式(Model-View-Controller)變成了MVVM(View-ViewModel-Model)模式。前后端分離的開(kāi)發(fā)模式與傳統(tǒng)模式相比,可以提升開(kāi)發(fā)效率、增強(qiáng)代碼可維護(hù)性與提升系統(tǒng)整體穩(wěn)定性等[4]。系統(tǒng)前端使用Vue.js 框架快速構(gòu)建用戶(hù)界面,使用Element-UI 美化PC 端頁(yè)面,使用Vant 美化移動(dòng)端頁(yè)面;數(shù)據(jù)庫(kù)使用MongoDB 存儲(chǔ)采集的農(nóng)業(yè)數(shù)據(jù),使用MySQL 存儲(chǔ)用戶(hù)信息與MongoDB 數(shù)據(jù)庫(kù)的文檔結(jié)構(gòu),以輔助對(duì)MongoDB的存儲(chǔ)開(kāi)發(fā);系統(tǒng)后端使用Spring Boot 框架簡(jiǎn)化環(huán)境搭建與開(kāi)發(fā)流程,使用MyBatis 作為對(duì)MySQL 操作的ORM 框架;使用消息隊(duì)列RocketMQ 作為中間件,實(shí)現(xiàn)異步發(fā)送手機(jī)短信功能;使用docker 容器打包部署前后端系統(tǒng),部署服務(wù)器選用阿里云服務(wù)器ECS。系統(tǒng)環(huán)境如表1所示。

      表1 系統(tǒng)環(huán)境

      1.2 主要開(kāi)發(fā)技術(shù)介紹

      1.2.1 MongoDB

      MongoDB 是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的文檔數(shù)據(jù)庫(kù)產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的,其具有操作起來(lái)比較簡(jiǎn)單和容易、支持豐富的查詢(xún)表達(dá)式與數(shù)據(jù)存儲(chǔ)豐富多樣化等優(yōu)點(diǎn)[5]。本系統(tǒng)之所以選用MongoDB 作為存儲(chǔ)數(shù)據(jù)庫(kù),是因其支持疏松的數(shù)據(jù)結(jié)構(gòu),將關(guān)系型數(shù)據(jù)庫(kù)中“行”的概念轉(zhuǎn)換為“文檔”,并使用Json 格式存儲(chǔ),無(wú)固定模式限定,可以為不同的農(nóng)業(yè)數(shù)據(jù)采集任務(wù)提供個(gè)性化的字段定義,使得數(shù)據(jù)模型具備靈活多變的能力[6]。如圖1 所示,直觀展示了MongoDB 與傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)區(qū)別[7]。

      圖1 關(guān)系型數(shù)據(jù)庫(kù)與文檔數(shù)據(jù)庫(kù)MongoDB存儲(chǔ)區(qū)別

      1.2.2 Vue

      Vue 是時(shí)下較為流行的漸進(jìn)式JavaScript 框架,其只關(guān)注視圖層,采用自底向上增量開(kāi)發(fā)的設(shè)計(jì),目標(biāo)是通過(guò)盡可能簡(jiǎn)單的API 實(shí)現(xiàn)響應(yīng)的數(shù)據(jù)綁定和組合的視圖組件[8]。Vue 還有豐富的UI 組件庫(kù),支持獨(dú)立開(kāi)發(fā),解決當(dāng)前前端應(yīng)用開(kāi)發(fā)組件不豐富的問(wèn)題,幫助快速構(gòu)建前端頁(yè)面[9]。

      1.2.3 Spring Boot

      Spring Boot 通過(guò)簡(jiǎn)化配置來(lái)進(jìn)一步簡(jiǎn)化了Spring 應(yīng)用的整個(gè)搭建和開(kāi)發(fā)過(guò)程,讓構(gòu)建Java Web 應(yīng)用不再配置繁瑣的xml 文件,并且其本身集成了大量的依賴(lài),例如其集成了tomcat,可打包成jar包,開(kāi)箱即用[10]。

      2 系統(tǒng)設(shè)計(jì)

      2.1 需求分析

      根據(jù)使用用戶(hù)類(lèi)型劃分,本系統(tǒng)將用戶(hù)使用需求劃分為數(shù)據(jù)采集負(fù)責(zé)人使用需求與數(shù)據(jù)采集人使用需求。總體流程為負(fù)責(zé)人根據(jù)采集的數(shù)據(jù)字段構(gòu)建數(shù)據(jù)采集任務(wù),下發(fā)給數(shù)據(jù)采集員,其根據(jù)任務(wù)需求錄入采集的數(shù)據(jù),項(xiàng)目負(fù)責(zé)人管理采集到的數(shù)據(jù),并且可以導(dǎo)出數(shù)據(jù)進(jìn)行進(jìn)一步的分析。如圖2 所示,展示了根據(jù)功能需求構(gòu)建的系統(tǒng)使用流程。

      圖2 系統(tǒng)使用流程

      農(nóng)業(yè)數(shù)據(jù)采集任務(wù)負(fù)責(zé)人端的需求主要包括以下內(nèi)容:

      (1)采集任務(wù)構(gòu)建。采集任務(wù)構(gòu)建是整個(gè)任務(wù)采集的基礎(chǔ),負(fù)責(zé)人根據(jù)對(duì)采集的數(shù)據(jù)需求來(lái)自定義數(shù)據(jù)結(jié)構(gòu)的字段,并可設(shè)置字段的類(lèi)型與校驗(yàn)規(guī)則來(lái)保證數(shù)據(jù)的可靠性。

      (2)數(shù)據(jù)采集人員管理。負(fù)責(zé)人可以生產(chǎn)數(shù)據(jù)采集人員的賬戶(hù)ID 與密碼,錄入其個(gè)人信息,并分發(fā)給數(shù)據(jù)采集人員,還可以對(duì)數(shù)據(jù)采集人員進(jìn)行分組,以方便不同采集任務(wù)的下發(fā)。

      (3)采集任務(wù)下發(fā)。采集任務(wù)構(gòu)建完成后,負(fù)責(zé)人可以通過(guò)短信、釘釘提醒等功能,下發(fā)給數(shù)據(jù)采集人員。

      (4)農(nóng)業(yè)數(shù)據(jù)管理與導(dǎo)出。負(fù)責(zé)人可以對(duì)采集的數(shù)據(jù)進(jìn)行增加、修改、刪除與查詢(xún)操作,并可導(dǎo)出xlsx、csv 等格式的文件,使用MATLAB 等專(zhuān)業(yè)軟件進(jìn)行數(shù)據(jù)分析。

      農(nóng)業(yè)數(shù)據(jù)采集員端的需求主要包括以下內(nèi)容:

      (1)數(shù)據(jù)錄入。數(shù)據(jù)采集人員根據(jù)接收到的任務(wù)需求,錄入自己采集到的數(shù)據(jù),并可連續(xù)錄入,并上傳云端,傳入MongoDB數(shù)據(jù)庫(kù)。

      (2)數(shù)據(jù)共享。數(shù)據(jù)采集人員可以看到其他采集人員上傳的數(shù)據(jù)與采集情況,以便進(jìn)行溝通交流。

      2.2 總體結(jié)構(gòu)設(shè)計(jì)

      2.2.1 模塊設(shè)計(jì)

      根據(jù)對(duì)系統(tǒng)的需求分析,系統(tǒng)的總體模塊設(shè)計(jì)主要包含數(shù)據(jù)采集任務(wù)負(fù)責(zé)人模塊與數(shù)據(jù)采集員模塊。系統(tǒng)模塊設(shè)計(jì)如圖3所示。

      圖3 系統(tǒng)模塊

      負(fù)責(zé)人任務(wù)構(gòu)建與下發(fā)模塊和數(shù)據(jù)采集員數(shù)據(jù)錄入模塊是整個(gè)系統(tǒng)的核心,這兩個(gè)模塊是相互聯(lián)系的。負(fù)責(zé)人根據(jù)自身所需,依據(jù)采集數(shù)據(jù)字段、任務(wù)時(shí)間、采集地點(diǎn)等生成數(shù)據(jù)采集任務(wù),根據(jù)事先對(duì)數(shù)據(jù)采集員的分組,選擇對(duì)應(yīng)的分組下發(fā)數(shù)據(jù)采集任務(wù),并可通過(guò)任務(wù)通知功能提醒數(shù)據(jù)采集員;數(shù)據(jù)采集員接收任務(wù)后,打開(kāi)手機(jī)端頁(yè)面錄入數(shù)據(jù)完成數(shù)據(jù)采集任務(wù)。具體流程如圖4所示。

      圖4 采集任務(wù)構(gòu)建與錄入流程

      2.2.2 架構(gòu)設(shè)計(jì)

      系統(tǒng)使用前后端分離開(kāi)發(fā),使用前后端分離開(kāi)之后,前端通過(guò)Ajax 請(qǐng)求獲取后端數(shù)據(jù)進(jìn)行頁(yè)面的渲染。采用分層開(kāi)發(fā),實(shí)現(xiàn)了高內(nèi)聚低耦合的系統(tǒng)架構(gòu)[11]。便于二次開(kāi)發(fā)與提高系統(tǒng)的穩(wěn)定性。系統(tǒng)架構(gòu)如圖5所示。

      圖5 系統(tǒng)架構(gòu)

      2.2.3 數(shù)據(jù)庫(kù)設(shè)計(jì)

      本系統(tǒng)選用NoSQL 數(shù)據(jù)庫(kù)MongoDB 作為存儲(chǔ)的數(shù)據(jù)庫(kù)。但是NoSQL 不能完全替代傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)[12],因此本系統(tǒng)仍然使用MySQL 以輔助MongoDB的存儲(chǔ)。

      根據(jù)對(duì)系統(tǒng)的模塊設(shè)計(jì),在MySQL 中建立四張表,各表的詳細(xì)信息如表2 所示。使用InnoDB為存儲(chǔ)引擎。在sys_user 表中建立user_id 字段,將四張表關(guān)聯(lián)起來(lái)。

      表2 MySQL表設(shè)計(jì)

      對(duì)于存儲(chǔ)采集數(shù)據(jù)的MongoDB 數(shù)據(jù)庫(kù),其并沒(méi)有預(yù)定義的數(shù)據(jù)結(jié)構(gòu),在系統(tǒng)使用過(guò)程中,用戶(hù)根據(jù)需求動(dòng)態(tài)生成數(shù)據(jù)模式,一個(gè)調(diào)查任務(wù)創(chuàng)建一個(gè)集合,集合中的文檔信息使用JSON 格式存儲(chǔ)。例如需要進(jìn)行蘋(píng)果品種的調(diào)查,則可以構(gòu)建如下JSON 格式數(shù)據(jù):{"_id":"","品種名":"","品種拉丁名":"","樣本類(lèi)型":"","所屬樹(shù)種":"","地理數(shù)據(jù)":{"海拔":"","緯度":"","經(jīng)度":""},"生境信息":"","植物學(xué)信息":{"植株情況":"","植物學(xué)特征":"","果實(shí)性狀":"","生物學(xué)習(xí)性":""},"品種評(píng)價(jià)":""}。

      3 系統(tǒng)主要功能實(shí)現(xiàn)

      完成系統(tǒng)模塊、系統(tǒng)架構(gòu)與數(shù)據(jù)庫(kù)的設(shè)計(jì)之后,使用Vue 與Spring Boot 對(duì)系統(tǒng)的前后端功能進(jìn)行實(shí)現(xiàn)。

      3.1 采集任務(wù)構(gòu)建與下發(fā)功能實(shí)現(xiàn)

      農(nóng)業(yè)數(shù)據(jù)采集負(fù)責(zé)人通過(guò)瀏覽器注冊(cè)登錄農(nóng)業(yè)數(shù)據(jù)采集系統(tǒng),打開(kāi)數(shù)據(jù)采集員管理頁(yè)面,添加數(shù)據(jù)采集員信息,使用AJAX 向后端API 發(fā)送post 請(qǐng)求,向數(shù)據(jù)庫(kù)中添加數(shù)據(jù)并向使用信息服務(wù)發(fā)送給。打開(kāi)任務(wù)構(gòu)建頁(yè)面,根據(jù)數(shù)據(jù)采集任務(wù)需求構(gòu)建采集字段,將數(shù)據(jù)采集字段結(jié)構(gòu)存入MySQL 中,根據(jù)需求選擇下發(fā)任務(wù)的分組,通過(guò)信息服務(wù)提醒數(shù)據(jù)采集員。如圖6,為該過(guò)程的時(shí)序圖。

      圖6 任務(wù)構(gòu)建下發(fā)時(shí)序圖

      3.2 數(shù)據(jù)錄入功能實(shí)現(xiàn)

      數(shù)據(jù)采集員通過(guò)信息服務(wù)接收到數(shù)據(jù)采集任務(wù)后,即可通過(guò)手機(jī)登錄采集系統(tǒng)查看任務(wù)的具體內(nèi)容。登錄系統(tǒng)后,進(jìn)入數(shù)據(jù)錄入頁(yè)時(shí),頁(yè)面將會(huì)按照存儲(chǔ)在MySQL 中任務(wù)數(shù)據(jù)字段結(jié)構(gòu)來(lái)進(jìn)行渲染,錄入數(shù)據(jù)后,提交到服務(wù)端,存入MongoDB 數(shù)據(jù)庫(kù)中,數(shù)據(jù)采集負(fù)責(zé)人通過(guò)PC 端則可看到實(shí)時(shí)采集的數(shù)據(jù)并進(jìn)行管理。圖7 顯示了實(shí)際的流程。

      圖7 數(shù)據(jù)流通流程

      4 結(jié)語(yǔ)

      本文基于NoSQL 數(shù)據(jù)庫(kù),使用Vue 與Spring Boot 構(gòu)建前后端系統(tǒng),對(duì)業(yè)務(wù)需求進(jìn)行了充分調(diào)查與分析,對(duì)系統(tǒng)模塊、系統(tǒng)架構(gòu)與數(shù)據(jù)庫(kù)結(jié)構(gòu)、采集任務(wù)構(gòu)建與下發(fā)、任務(wù)提醒,數(shù)據(jù)錄入與檢驗(yàn)等關(guān)鍵技術(shù)進(jìn)行設(shè)計(jì)與實(shí)現(xiàn),研發(fā)了農(nóng)業(yè)數(shù)據(jù)采集任務(wù)分發(fā)系統(tǒng)。

      考慮農(nóng)業(yè)數(shù)據(jù)采集的實(shí)際應(yīng)用場(chǎng)景,利用MongoDB 的特性,使用戶(hù)可以根據(jù)自身需求自定義數(shù)據(jù)模型,實(shí)現(xiàn)對(duì)農(nóng)業(yè)數(shù)據(jù)采集任務(wù)的構(gòu)建、下發(fā)、錄入、管理與導(dǎo)出。

      經(jīng)過(guò)實(shí)踐表明,通過(guò)該系統(tǒng)的使用,簡(jiǎn)化了農(nóng)業(yè)數(shù)據(jù)采集與數(shù)據(jù)管理的流程,極大方便了農(nóng)業(yè)從業(yè)人員的工作,讓農(nóng)業(yè)從業(yè)人員更專(zhuān)注于對(duì)數(shù)據(jù)的分析與處理。本文設(shè)計(jì)的系統(tǒng)雖然達(dá)到了預(yù)期的目標(biāo),但是在對(duì)農(nóng)業(yè)數(shù)據(jù)的管理與分析上仍有待提高。下一步準(zhǔn)備在前端引入數(shù)據(jù)可視化組件,并支持已有數(shù)據(jù)導(dǎo)入合并,豐富系統(tǒng)功能。

      猜你喜歡
      負(fù)責(zé)人頁(yè)面流程
      大狗熊在睡覺(jué)
      刷新生活的頁(yè)面
      吃水果有套“清洗流程”
      國(guó)家會(huì)計(jì)學(xué)院負(fù)責(zé)人名錄
      違反流程 致命誤判
      江南集團(tuán)開(kāi)展基層紀(jì)檢組織負(fù)責(zé)人業(yè)務(wù)培訓(xùn)
      本刊審稿流程
      析OGSA-DAI工作流程
      金屬加工~(熱加工)原名《機(jī)械工人》讀者服務(wù)卡
      導(dǎo)師負(fù)責(zé)人制的建立及作用機(jī)制研究
      连南| 潜江市| 彰武县| 科技| 德格县| 武定县| 厦门市| 三都| 东乡县| 黔西县| 武穴市| 天祝| 敖汉旗| 通城县| 龙江县| 新绛县| 罗源县| 迁安市| 郯城县| 左贡县| 馆陶县| 柳林县| 如东县| 岢岚县| 商丘市| 怀化市| 望谟县| 德昌县| 大新县| 资兴市| 青海省| 格尔木市| 门源| 霍城县| 临夏县| 永寿县| 蕉岭县| 高淳县| 峨眉山市| 云安县| 金寨县|