陳 旭,張向飛,葉有燦,戴 俊,王意生,邵 芳
(上海市農(nóng)業(yè)農(nóng)村委員會信息中心,上海 200335)
上海作為農(nóng)產(chǎn)品流通的大市場,擁有著2 400多萬常住人口,農(nóng)產(chǎn)品價格行情監(jiān)測與價格信息服務(wù)工作尤為重要。上海市農(nóng)業(yè)農(nóng)村委員會從2009年開始監(jiān)測農(nóng)產(chǎn)品價格信息,著力建設(shè)上海農(nóng)產(chǎn)品價格監(jiān)測與預(yù)警分析系統(tǒng)。該系統(tǒng)整合了全市主要批發(fā)市場及農(nóng)產(chǎn)品生產(chǎn)者價格等多源數(shù)據(jù)資源,形成涵蓋蔬菜、水產(chǎn)品、畜產(chǎn)品、水果、糧油等五大類農(nóng)產(chǎn)品價格監(jiān)測數(shù)據(jù)庫,建立了農(nóng)產(chǎn)品價格信息采集、統(tǒng)計、分析、趨勢預(yù)測、信息發(fā)布體系,為政府主管部門分析決策提供宏觀數(shù)據(jù),為農(nóng)業(yè)生產(chǎn)主體、交易主體及市民提供價格信息服務(wù)[1]。
基于B/S架構(gòu)的上海農(nóng)產(chǎn)品價格監(jiān)測與預(yù)警分析系統(tǒng),在多源農(nóng)產(chǎn)品價格信息采集與整合方面做了大量工作,但在農(nóng)產(chǎn)品價格信息服務(wù)方面仍然存在瓶頸和不足。一是便捷性不足。隨著智能手機(jī)日益普及,人們更易接受微信、移動App等新媒體隨時隨地獲取信息的方式。目前僅能通過電腦瀏覽器來查閱價格,無法滿足用戶需求,用戶反饋“不方便”。二是個性化服務(wù)不足?,F(xiàn)有系統(tǒng)在信息服務(wù)方面主要采用訂閱價格短信方式,根據(jù)訂閱的價格品種每日發(fā)送免費(fèi)價格短信,短信中包括訂閱品種的平均價格。農(nóng)產(chǎn)品為季節(jié)性產(chǎn)品,每次調(diào)整訂閱品種、退訂短信都需要登錄系統(tǒng)操作。這種信息服務(wù)方式,局限了系統(tǒng)的推廣應(yīng)用,用戶體驗“不友好”。三是精準(zhǔn)性不夠。農(nóng)產(chǎn)品市場存在地域性特征,用戶往往更需要“我”附近的價格信息,用戶反映價格信息“不解渴”。因此,需要構(gòu)建兼容主流移動終端的農(nóng)產(chǎn)品價格信息查詢服務(wù)App軟件,進(jìn)一步拓展提升原有系統(tǒng)的信息服務(wù)能力,更好地滿足用戶對便捷化、精準(zhǔn)化和個性化方面的信息服務(wù)需求。
目前主流的智能終端設(shè)備多采用安卓(Android)和蘋果(iOS)操作系統(tǒng),因此上海農(nóng)產(chǎn)品價格查詢App需要同時兼容主流的智能終端操作系統(tǒng)。移動App軟件開發(fā)主要采用原生(Native)App、Mobile Web App、HTML5+ App等方式,不同技術(shù)路線的特點(diǎn)如下。
(1)原生(Native)App方式:這種方法針對不同操作系統(tǒng)采用不同的開發(fā)工具和語言,如開發(fā)安卓的應(yīng)用軟件,需要在Android Studio平臺上進(jìn)行,而開發(fā)蘋果手機(jī)軟件需要在Xcode平臺上開發(fā)。采用這種開發(fā)方式,優(yōu)點(diǎn)是開發(fā)出的App軟件操作流暢,用戶體驗最好。缺點(diǎn)是相同的軟件功能需要在不同開發(fā)工具上編寫兩遍程序,后期更新維護(hù)需要維護(hù)兩套代碼。開發(fā)者付出精力、開發(fā)周期以及維護(hù)成本都是雙倍的。
(2)Mobile Web App方式:這種方式實際上是采用“HTML5網(wǎng)頁+App應(yīng)用客戶端”方式,程序運(yùn)行時客戶端App通過內(nèi)嵌的瀏覽器訪問Web頁面,從而實現(xiàn)信息瀏覽與交互。這種方式開發(fā)周期短,成本低,能夠支持多種操作系統(tǒng),易于更新與維護(hù)。但是,這種方式的缺點(diǎn)也很突出,在用戶實際操作體驗感上不如原生(Native)App方式,不連接網(wǎng)絡(luò)時無法訪問App,App無法調(diào)取手機(jī)終端的硬件設(shè)備(如:攝像頭、話筒、GPS、重力感應(yīng)傳感器等)進(jìn)行交互。
(3)HTML5+(HTML5 PLUS)方式:HTML5+是一種增強(qiáng)型HTML5標(biāo)準(zhǔn),隸屬于HTML5中國產(chǎn)業(yè)聯(lián)盟(為開發(fā)者服務(wù)的行業(yè)組織)。2013年萬維網(wǎng)聯(lián)盟(W3C)發(fā)布了HTML5.1 working draft版本,但通過HTML5開發(fā)移動App時,會發(fā)現(xiàn)HTML5很多能力不具備,不能滿足開發(fā)者需求,為彌補(bǔ)HTML5能力的不足,在W3C指導(dǎo)下,HTML5中國產(chǎn)業(yè)聯(lián)盟組織推出了HTML5+規(guī)范,旨在盡可能統(tǒng)一瀏覽器自定義擴(kuò)展,給開發(fā)者提供更強(qiáng)大的支持。HTML5+擴(kuò)展了JavaScript對象,可以調(diào)用各種瀏覽器無法實現(xiàn)或?qū)崿F(xiàn)不佳的系統(tǒng)能力、設(shè)備能力和業(yè)務(wù)能力,如攝像頭、陀螺儀、文件系統(tǒng)、二維碼、地圖、支付、語音輸入、消息推送等[2]。此外,HTML5+很重要的特點(diǎn)是提供了原生的渲染能力,開發(fā)跨平臺App的同時,也可獲得接近原生的功能和性能。因此,采用HTML5+App方式能夠?qū)崿F(xiàn)一次編寫代碼,同時生成安卓和蘋果操作系統(tǒng)的原生程序,達(dá)到接近原生開發(fā)程序的使用效果。
(4)其他跨平臺方案:除了HTML5+ App跨平臺方案外,目前流行的跨平臺方案還有谷歌移動UI框架Flutter、Facebook開源的跨平臺移動應(yīng)用開發(fā)框架React Native、阿里巴巴跨平臺開發(fā)框架Weex等等[3]。這些框架目前存在文檔資料不完善、學(xué)習(xí)成本高、開發(fā)調(diào)試工具不完善等問題。
上海農(nóng)產(chǎn)品價格查詢App主要涉及數(shù)據(jù)查詢、統(tǒng)計分析、圖表顯示等功能,經(jīng)技術(shù)選型分析,采用基于HTML5+ App跨平臺方案來構(gòu)建上海農(nóng)產(chǎn)品價格查詢App。既能通過編寫一套程序兼容主流移動端的應(yīng)用,又能獲得接近原生的使用體驗,且具有易用的軟件開發(fā)調(diào)試打包工具,能夠提高開發(fā)效率、降低后期維護(hù)成本。
上海農(nóng)產(chǎn)品價格查詢App按照分層架構(gòu)方法來構(gòu)建,總體分為數(shù)據(jù)層、服務(wù)層、網(wǎng)絡(luò)層和應(yīng)用層四個層次結(jié)構(gòu)(圖1)。
(1)數(shù)據(jù)層:上海農(nóng)產(chǎn)品價格查詢App數(shù)據(jù)來源于原有上海農(nóng)產(chǎn)品價格監(jiān)測與預(yù)警分析系統(tǒng)數(shù)據(jù)庫,主要包括上海主要批發(fā)市場及農(nóng)產(chǎn)品生產(chǎn)者價格等多源數(shù)據(jù)資源,涵蓋蔬菜、水產(chǎn)品、畜產(chǎn)品、水果、糧油等五類農(nóng)產(chǎn)品價格數(shù)據(jù)庫。
(2)服務(wù)層:一是農(nóng)產(chǎn)品價格數(shù)據(jù)服務(wù)。通過將五類農(nóng)產(chǎn)品價格數(shù)據(jù)庫相關(guān)數(shù)據(jù)封裝成WebService服務(wù),開發(fā)數(shù)據(jù)接口,為App查詢統(tǒng)計價格提供數(shù)據(jù)支撐。接口采用XML(可擴(kuò)展標(biāo)記語言)作為數(shù)據(jù)傳輸交換格式。二是用戶認(rèn)證、版本更新檢測等后臺功能服務(wù)。通過開發(fā)相應(yīng)等后臺接口服務(wù)來與前臺實現(xiàn)數(shù)據(jù)交互。
(3)網(wǎng)絡(luò)層:通過移動網(wǎng)絡(luò)或是Wi-Fi網(wǎng)絡(luò)實現(xiàn)客戶端與服務(wù)器端數(shù)據(jù)交互。
(4)應(yīng)用層:主要包括智能終端操作系統(tǒng)、HTML5+ Runtime運(yùn)行時、App客戶端部分。App部分利用HBuilder工具云打包或本地打包方式,發(fā)布到安卓應(yīng)用市場及蘋果商店,提供在線下載。
為滿足上海農(nóng)產(chǎn)品價格信息及時、準(zhǔn)確、快捷查詢的實際需求,上海農(nóng)產(chǎn)品價格查詢App分為用戶管理、批發(fā)市場價格查詢、田頭交易價格查詢、語音檢索、系統(tǒng)設(shè)置等五個主要功能模塊。
(1)用戶管理模塊:為確保農(nóng)產(chǎn)品價格監(jiān)測點(diǎn)數(shù)據(jù)安全性,設(shè)置了用戶注冊與登錄模塊,與原上海農(nóng)產(chǎn)品價格監(jiān)測與預(yù)警分析系統(tǒng)采用同一套用戶體系。新用戶在App中申請注冊后,管理員可在原有系統(tǒng)中為其分配權(quán)限。用戶憑賬號和密碼登陸后,即可查看、檢索當(dāng)日及歷史價格數(shù)據(jù)。
(2)批發(fā)市場價格查詢模塊:用戶可以查詢上海農(nóng)產(chǎn)品中心批發(fā)市場、上海江楊農(nóng)產(chǎn)品批發(fā)市場、上海江橋批發(fā)市場、上海西郊國際農(nóng)產(chǎn)品交易中心等6個農(nóng)產(chǎn)品批發(fā)市場每日價格數(shù)據(jù),以及全市蔬菜、水果、糧油、畜產(chǎn)品、水產(chǎn)品五類100多品種的每日均價、最高價、最低價數(shù)據(jù)。
(3)田頭交易價格查詢模塊:用戶可查詢上海市9個涉農(nóng)區(qū)田頭交易價格采集點(diǎn)的價格數(shù)據(jù),目前主要是蔬菜類當(dāng)季10多種品種價格數(shù)據(jù),包括平均價、最高價、最低價等信息。
(4)語音檢索模塊:為便于用戶查詢品種及采集點(diǎn)信息,設(shè)置了語音查詢模塊,用戶通過說出要查詢的品種或市場名稱,即可自動檢索出符合條件的價格信息,提高檢索效率。
(5)系統(tǒng)設(shè)置模塊:用戶可以自定義關(guān)注的品種,系統(tǒng)會根據(jù)用戶定義內(nèi)容進(jìn)行相關(guān)分析報告的推送服務(wù)。用戶還可設(shè)置軟件更新方式、字體大小、顏色主題等內(nèi)容。
(1)HTML5+ App跨平臺開發(fā)技術(shù):在App開發(fā)方面,采用了HTML5+ App跨平臺方案,采用DCloud公司提供的HBuilderX開發(fā)工具,其內(nèi)置HTML5+ App開發(fā)環(huán)境和HTML5+ API語法提示,選用了基于HTML5+的MUI框架,它不依賴任何第三方JS庫,同時擁有H5組件和原生組件,并且在每個平臺上,都能調(diào)用該平臺專有API達(dá)到原生體驗[4]。編寫一次代碼即可通過云打包或本地打包方式,將HTML5+ Runtime(運(yùn)行時)和程序頁面打包成原生App的安裝包,包括Android的apk和iOS的ipa,還可生成微信小程序、流應(yīng)用等6種客戶端應(yīng)用[5]。
(2)中文語音識別與搜索技術(shù):為方便用戶檢索,探索基于中文語音搜索技術(shù)在App中的應(yīng)用。用戶無需輸入文字,只需說出品種名稱即可實現(xiàn)價格信息的查詢。開發(fā)中,采用科大訊飛提供的中文語音轉(zhuǎn)換成文字的API接口[6-7],將用戶的語音內(nèi)容轉(zhuǎn)換成文字,轉(zhuǎn)換后文字與品種及市場名稱庫進(jìn)行匹配,由于用戶習(xí)慣說農(nóng)產(chǎn)品品種或農(nóng)產(chǎn)品市場的簡稱,為提供查詢準(zhǔn)確性,通過建立相應(yīng)的簡稱或易錯名稱表,反饋給用戶匹配率最高的查詢結(jié)果。
(3)基于位置的信息服務(wù)(LBS)技術(shù):在批發(fā)價和田頭價數(shù)據(jù)查詢時,涉及到市場和采集點(diǎn)排序推薦的問題,為便于用戶便捷查詢到離“我”最近的市場價格數(shù)據(jù),采用基于位置的信息服務(wù)技術(shù)(LBS)[8],通過用戶所在位置與價格監(jiān)測點(diǎn)的位置進(jìn)行距離分析,依據(jù)距離遠(yuǎn)近,優(yōu)先排列距離較近的,從而動態(tài)生成市場和采集點(diǎn)的順序,讓用戶有更好的體驗。
從應(yīng)用情況來看(圖2—5),上海農(nóng)產(chǎn)品價格查詢App(簡稱:滬農(nóng)價)的應(yīng)用,彌補(bǔ)了原有上海農(nóng)產(chǎn)品價格監(jiān)測與預(yù)警分析系統(tǒng)在價格信息服務(wù)便捷性、個性化和精準(zhǔn)性方面的不足,成為價格分析師、政府決策人員、農(nóng)業(yè)經(jīng)營主體及公眾實用的掌上工具,利用App可隨時隨地就獲取及時的農(nóng)產(chǎn)品價格信息及走勢情況,利用中文語音搜索價格的方式,也獲得了使用者的歡迎。
同時,這種跨平臺的HTML5+ App開發(fā)方法,開發(fā)效率高,一次編寫程序可以生成安卓和蘋果兩個操作系統(tǒng)的應(yīng)用程序,App操作體驗上較為流暢,幾乎達(dá)到了原生開發(fā)效果,是一種值得推廣的低成本、高效率、易維護(hù)的移動App開發(fā)模式。
基于移動終端的信息服務(wù)是當(dāng)前及未來信息服務(wù)的主要途徑,隨著移動終端應(yīng)用的不斷發(fā)展和進(jìn)化,涌現(xiàn)出了App、微信公眾號、小程序等多種形式,移動應(yīng)用經(jīng)歷著從“復(fù)雜向簡單”的趨勢發(fā)展,特別是近年來智能語音技術(shù)的成熟和發(fā)展,如蘋果公司的“Siri”,小米公司的“小愛同學(xué)”、百度公司的“小度語音助手”、華為公司的“小藝”等,基于人工智能方式等中文語義識別是未來移動應(yīng)用的發(fā)展目標(biāo)。目前,上海農(nóng)產(chǎn)品價格查詢App還僅實現(xiàn)了農(nóng)產(chǎn)品名稱及價格采集點(diǎn)名稱等中文詞語的語音查詢功能,下步將進(jìn)一步探索基于中文句子的語義識別研究,讓價格信息查詢更加智能化。同時,將進(jìn)一步開展基于用戶行為的分析,通過分析使用者的習(xí)慣和偏好,智能推送用戶感興趣的價格分析報告等內(nèi)容,更好地為用戶提供信息服務(wù)。