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