李竹林 許童羽 王興陽 李瑞山
摘要:基于農(nóng)村科技信息服務(wù)的實際需求,設(shè)計一款智能移動交互APP,解決農(nóng)民與農(nóng)業(yè)專家之間的溝通問題,實現(xiàn)二者實時互動。詳細(xì)介紹系統(tǒng)的各個功能模塊,探討各功能模塊的開發(fā)技術(shù)和實現(xiàn)方式,旨在提高農(nóng)村科技信息服務(wù)的效率和質(zhì)量。
關(guān)鍵詞:交互APP;智能;設(shè)計;農(nóng)技推廣;科技信息
中圖分類號:T216 文獻(xiàn)標(biāo)識碼:A 文章編號:1674-1161(2018)01-0044-03
當(dāng)前,農(nóng)民渴望得到農(nóng)業(yè)專家的具體指導(dǎo),并及時掌握農(nóng)業(yè)知識和農(nóng)業(yè)政策解讀信息。然而,互聯(lián)網(wǎng)檢索到的相關(guān)內(nèi)容混雜、真假難辨,農(nóng)民亟需獲取準(zhǔn)確的信息和得到行業(yè)專家的具體指導(dǎo)。為此,研發(fā)方便農(nóng)民與農(nóng)業(yè)專家在線互動的系統(tǒng)具有重要的現(xiàn)實意義。雖然現(xiàn)有的一些社交類軟件(如微信)可以實現(xiàn)農(nóng)民與農(nóng)業(yè)專家互動,但這類社交類軟件大多注重娛樂性,沒有考慮農(nóng)業(yè)這個具體領(lǐng)域。在此情況下,從解決農(nóng)業(yè)生產(chǎn)中農(nóng)民的實際需求出發(fā),設(shè)計一款農(nóng)村科技信息服務(wù)智能移動交互APP(簡稱“交互系統(tǒng)”),實現(xiàn)農(nóng)民與農(nóng)業(yè)專家在線互動交流,提高農(nóng)村科技信息服務(wù)的效率和質(zhì)量。
1 交互系統(tǒng)的設(shè)計
1.1 總體設(shè)計
農(nóng)村科技信息服務(wù)智能移動交互APP是一款基于互聯(lián)網(wǎng)的應(yīng)用系統(tǒng),按用戶類型可分為農(nóng)民、農(nóng)業(yè)專家、管理員三類。其中,農(nóng)民與農(nóng)業(yè)專家交互是系統(tǒng)的主要功能,管理員負(fù)責(zé)管理系統(tǒng)。用戶及對應(yīng)的功能如圖1所示。
農(nóng)民用戶的主要功能是向?qū)<姨岢鰡栴}并查看專家回復(fù)。此功能需要系統(tǒng)支持實時數(shù)據(jù)傳輸,確保農(nóng)民提出的問題實時被專家看到,以及專家的回復(fù)實時到達(dá)農(nóng)民手機(jī)端。
為便于農(nóng)民與專家聯(lián)系,采用農(nóng)民對農(nóng)業(yè)專家關(guān)注的方式,類似于多數(shù)社交類軟件中的“加好友”功能。實時問答互動只能在農(nóng)民和農(nóng)業(yè)專家之間進(jìn)行,不能顯示在公屏上。農(nóng)民可以查看已關(guān)注專家的推文,掌握更多的農(nóng)業(yè)知識。同時,農(nóng)民還可以查看系統(tǒng)推文,了解國家的相關(guān)政策和法律法規(guī)等信息。
農(nóng)業(yè)專家是信息的主要提供者,可以實時看到農(nóng)民提出的問題并給出解答。一位農(nóng)業(yè)專家對應(yīng)多名農(nóng)民,為確保操作簡便性,其與不同農(nóng)民的會話在不同的窗口進(jìn)行,即窗口中的信息只包含專家與某一名農(nóng)民的互動內(nèi)容。農(nóng)業(yè)專家可以發(fā)布推文,用來表達(dá)自己的觀點和普及農(nóng)業(yè)知識。
系統(tǒng)管理員主要負(fù)責(zé)系統(tǒng)的后臺管理,包括管理農(nóng)民和農(nóng)業(yè)專家用戶、發(fā)布系統(tǒng)推文、監(jiān)管專家推文等。
1.2 主要模塊設(shè)計
1.2.1 農(nóng)民關(guān)注農(nóng)業(yè)專家 系統(tǒng)的用戶類型是農(nóng)民和農(nóng)業(yè)專家。在默認(rèn)情況下,農(nóng)民與農(nóng)業(yè)專家之間沒有直接的聯(lián)系,需要農(nóng)民關(guān)注感興趣的農(nóng)業(yè)專家。系統(tǒng)按研究方向?qū)r(nóng)業(yè)專家進(jìn)行分類,農(nóng)民根據(jù)農(nóng)業(yè)專家的個人簡介決定是否關(guān)注該專家。不同于其他社交類軟件,這款A(yù)PP單方關(guān)注即可進(jìn)行交流,保證構(gòu)建關(guān)系的簡單性。農(nóng)民一旦關(guān)注了某位專家,就可與其進(jìn)行實時的會話交流、查看專家發(fā)表的推文。農(nóng)民也可取消關(guān)注某位專家,無需專家同意。取消關(guān)注后,將不能與該專家進(jìn)行實時互動,也不能查看專家發(fā)表的推文。
1.2.2 農(nóng)民與農(nóng)業(yè)專家在線實時互動 農(nóng)民關(guān)注某位農(nóng)業(yè)專家后,可向?qū)<野l(fā)起詢問,內(nèi)容可為純文字,也可是圖片和語音。圖片可以現(xiàn)通過手機(jī)的攝像頭拍攝,也可從圖片庫中選取。語音采用手機(jī)的話筒拾取,由APP進(jìn)行處理和壓縮后傳輸,以保證低帶寬的情況下高速傳輸。農(nóng)業(yè)專家對農(nóng)民的回復(fù)內(nèi)容,可以是純文字、圖片和語音??紤]網(wǎng)絡(luò)傳輸?shù)膲毫头?wù)器存儲的空間問題,目前不支持視頻互動。
1.2.3 專家推文 專家的推文類似于微信的朋友圈功能,內(nèi)容為農(nóng)業(yè)知識或農(nóng)業(yè)政策解讀。需要傳授給農(nóng)民的內(nèi)容,可通過推文的形式發(fā)送出去。推文的表達(dá)形式為圖文混排模式,不限定圖片數(shù)量。
農(nóng)民查看專家的推文后,可以點贊,也可以發(fā)表評論,在專家與農(nóng)民之間構(gòu)建互動。點贊數(shù)量可作為評價專家推文質(zhì)量的重要指標(biāo)。
1.2.4 系統(tǒng)推文 系統(tǒng)推文是APP官方推送的信息,由系統(tǒng)管理員發(fā)布。推文內(nèi)容一般為農(nóng)業(yè)政策解讀、法規(guī)宣傳和具有普遍性問題的解決方案等。系統(tǒng)推文緊跟國家及地方的政策法規(guī),起到宣傳、解讀、普及的作用,同時關(guān)注突發(fā)性或普遍性的農(nóng)業(yè)問題,并給出解釋或解決方案。
系統(tǒng)推文的內(nèi)容需要征求專家團(tuán)隊的意見,預(yù)推送內(nèi)容經(jīng)審核后才能發(fā)布。系統(tǒng)推文具有科學(xué)性和準(zhǔn)確性,這一點與互聯(lián)網(wǎng)上繁多的文章有明顯區(qū)別。
1.2.5 用戶管理 系統(tǒng)中的用戶分為農(nóng)民、農(nóng)業(yè)專家及管理員三類。農(nóng)民可以自由注冊,身份審核采用實名制審核方式,需上傳手持身份證的清晰照片。審核采用系統(tǒng)自動初步審核和人工最終審核相結(jié)合的方式。農(nóng)業(yè)專家的招募采用組織推薦、自我推薦等多種方式,評審?fù)ㄟ^后由管理員通過后臺導(dǎo)入個人相關(guān)信息。
2 交互系統(tǒng)的設(shè)計及實現(xiàn)
2.1 開發(fā)技術(shù)選擇
目前,智能手機(jī)的操作系統(tǒng)主要有安卓和IOS兩類,這兩類操作系統(tǒng)下的APP不能通用。APP的種類主要有原生和混合式兩類。原生APP具有運(yùn)行速度快、功能強(qiáng)等特點,但開發(fā)難度大,需要分別開發(fā)安卓和IOS版本?;旌鲜紸PP開發(fā)速度快,能同時打包安卓和IOS系統(tǒng)2個版本APP。為提高開發(fā)效率,減小開發(fā)成本,系統(tǒng)采用混合式APP開發(fā)方式。
服務(wù)器端程序是該APP開發(fā)的難點。應(yīng)用軟件用戶數(shù)量大,需要考慮系統(tǒng)的安全性、穩(wěn)定性,同時支持高并發(fā)訪問。結(jié)合研發(fā)團(tuán)隊已有的開發(fā)經(jīng)驗和技術(shù)基礎(chǔ),服務(wù)器端程序選用JAVA語言開發(fā),采用SSM框架。
實時通訊功能采用WebSocket技術(shù),通過API實現(xiàn)手機(jī)APP和服務(wù)器之間的連接,在手機(jī)APP與和服務(wù)器之間構(gòu)建快速通道,實現(xiàn)數(shù)據(jù)雙向快速傳輸,完成實時通訊功能。
數(shù)據(jù)庫在微軟SQLServer,Oracle,MySQL之間選擇。綜合考慮安全性、穩(wěn)定性和成本,選用開源免費的MySQL數(shù)據(jù)庫。為解決數(shù)據(jù)庫在高并發(fā)情況下的訪問性能,使用MySQL數(shù)據(jù)庫讀寫分離式(MySQL-Proxy)技術(shù)提升數(shù)據(jù)庫的并發(fā)負(fù)載能力,同步數(shù)據(jù)采用主從復(fù)制(Master-Slave)的方式。為提升數(shù)據(jù)庫I/O的性能,數(shù)據(jù)庫服務(wù)器配置讀寫速度更快的固態(tài)硬盤。
在服務(wù)器操作系統(tǒng)方面,通過考察WindowsServer和Linux的性能,確定選用Linux操作系統(tǒng),具體為CentOS 7.3。該操作系統(tǒng)開源免費使用,具有公認(rèn)的穩(wěn)定性和安全性,且性能較優(yōu)。
2.2 功能實現(xiàn)方式
2.2.1 數(shù)據(jù)庫設(shè)計 MySQL是支持多引擎的數(shù)據(jù)庫系統(tǒng)。為確保數(shù)據(jù)庫事務(wù)遵循原子性、一致性、隔離性和持續(xù)性的原則,采用支持事務(wù)處理的InnoDB存儲引擎。為支持多國語言,設(shè)置MySQL數(shù)據(jù)庫編碼為UTF-8。
數(shù)據(jù)庫中的表包括用戶表、實時通訊信息表、推文數(shù)據(jù)表、農(nóng)民與專家關(guān)系數(shù)據(jù)表、訪問日志數(shù)據(jù)表等。用戶表存儲農(nóng)民、專家的賬號、密碼、個人信息等數(shù)據(jù)。實時通訊信息表存儲農(nóng)民的提問和專家的回復(fù)信息。推文數(shù)據(jù)表存儲專家推文和系統(tǒng)推文數(shù)據(jù)。農(nóng)民與專家關(guān)系數(shù)據(jù)表包含農(nóng)民關(guān)注專家的信息。訪問日志數(shù)據(jù)表存儲用戶訪問的時間、IP等信息。
2.2.2 服務(wù)器端程序編碼 服務(wù)器端程序編碼IDE選用免費的Eclipse。在代碼版本控制方面搭建Git服務(wù)器,通過Git實現(xiàn)分布式的代碼版本管理。考慮到Windows的易用性和普及性,代碼編寫在Windows下進(jìn)行,并完成單元測試和模塊測試。
在用JAVA語音編寫代碼中,選用流行的SSM框架,其中Spring是容器框架,控制反轉(zhuǎn)(IoC)和面向切面(AOP);SpringMVC完成中央前端控制器功能,實現(xiàn)模型-視圖-控制器(MVC)的Web框架;MyBatis支持普通SQL查詢,負(fù)責(zé)MySQL存儲過程和高級映射。
2.2.3 手機(jī)端程序編碼 目前,混合式APP的開發(fā)工具有很多,考察后選用國產(chǎn)的Hbuilder完成代碼的編寫和APP打包工作。開發(fā)手機(jī)端APP程序時,難點是js的編寫,包括實時通訊、圖片的壓縮、語音的壓縮等。
混合式APP開發(fā)中,可以使用js調(diào)用手機(jī)的相機(jī)和話筒。采集的圖片和語音不能直接用于網(wǎng)絡(luò)傳輸,一般壓縮后再使用。圖片和語音壓縮功能均由團(tuán)隊成員自主研發(fā),不僅數(shù)據(jù)傳輸量小,而且數(shù)據(jù)壓縮后質(zhì)量損失較小。實時通訊使用WebSocket技術(shù)。WebSocket通訊與HTTP通訊不同,依賴于TLS實現(xiàn)加密,可以使用同源策略避免不安全的訪問。
3 結(jié)論
以鄉(xiāng)村振興戰(zhàn)略為大背景,針對農(nóng)民對農(nóng)業(yè)技術(shù)迫切需求的實際情況,設(shè)計一款交互APP,在農(nóng)民和農(nóng)業(yè)專家之間構(gòu)建基于互聯(lián)網(wǎng)的橋梁,實現(xiàn)二者之間實時互動。通過分析農(nóng)技推廣工作的實際情況和農(nóng)民的具體需求,設(shè)計系統(tǒng)的各個功能模塊,通過軟件開發(fā)實現(xiàn)農(nóng)村科技信息服務(wù)。軟件功能除滿足農(nóng)業(yè)生產(chǎn)中的具體需求外,還兼顧農(nóng)民和農(nóng)業(yè)專家的使用習(xí)慣。同時,移動交互式APP的具體設(shè)計思路和實現(xiàn)方法,對農(nóng)業(yè)科技類軟件的研發(fā)起到示范作用,可為其它軟件的研發(fā)提供參考和借鑒。
參考文獻(xiàn)
[1] 蔡盈盈,袁社鋒.基于云計算的農(nóng)業(yè)信息化服務(wù)平臺的構(gòu)建[J].河南農(nóng)業(yè),2016(36):24-25.
[2] 趙鑫.基于數(shù)據(jù)庫技術(shù)的農(nóng)業(yè)信息管理系統(tǒng)的構(gòu)建研究[J].鄉(xiāng)村科技,2017(35):92-94.
[3] 羅蕓茜.農(nóng)業(yè)信息化“互聯(lián)網(wǎng)+”交流應(yīng)用平臺[J].農(nóng)村經(jīng)濟(jì)與科技,2017,28(S1):142.
[4] 賈軍營,張大成,高春.Hybrid App開發(fā)框架的實現(xiàn)及性能優(yōu)化[J].計算機(jī)系統(tǒng)應(yīng)用,2017,26(7):130-136.