• 
    

    
    

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

      ?

      基于SaaS模式的云農(nóng)平臺(tái)的設(shè)計(jì)與搭建

      2021-01-14 00:47:20龍濤諶愛文
      現(xiàn)代信息科技 2021年14期
      關(guān)鍵詞:農(nóng)業(yè)信息化農(nóng)業(yè)現(xiàn)代化

      龍濤 諶愛文

      摘 要:在鮮果類經(jīng)濟(jì)作物收獲季,一些地理位置相對偏僻的地區(qū)由于諸多原因?qū)е罗r(nóng)產(chǎn)品滯銷問題較為嚴(yán)重。因此,文章基于Django語言和SaaS模式開發(fā)設(shè)計(jì)一個(gè)由數(shù)據(jù)采集系統(tǒng)、數(shù)據(jù)處理系統(tǒng)、文件管理系統(tǒng)三部分組成的信息服務(wù)云農(nóng)平臺(tái),利用該平臺(tái)的數(shù)據(jù)整合查詢功能以及云盤文件管理功能解決地區(qū)農(nóng)業(yè)獲取市場信息不及時(shí)導(dǎo)致信息不對稱問題,從而有效地提升農(nóng)產(chǎn)品的銷量問題,也提升地區(qū)農(nóng)業(yè)的信息化水平,加快推動(dòng)現(xiàn)代信息農(nóng)業(yè)發(fā)展。

      關(guān)鍵詞:SaaS平臺(tái);農(nóng)業(yè)信息化;農(nóng)業(yè)現(xiàn)代化;滯銷

      中圖分類號:TP311 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A文章編號:2096-4706(2021)14-0001-04

      Abstract: In the harvest season of fresh fruit cash crops, the unsalable problem of agricultural products in some relatively remote areas is more serious due to many reasons. Therefore, based on Django language and SaaS mode, this paper develops and designs an information service cloud agriculture platform composed of data acquisition system, data processing system and file management system, and uses the data integration query function and cloud disk file management function of the platform to solve the problem of information asymmetry caused by the untimely acquisition of market information by regional agriculture, so as to effectively improve the sales of agricultural products, improve the informatization level of regional agriculture, and accelerate the development of modern information agriculture.

      Keywords: SaaS platform; agricultural informatization; agricultural modernization; unsalable

      0 ?引 ?言

      近年來,湘西州地區(qū)由于地處偏遠(yuǎn),交通不便,市場信息比較閉塞等原因?qū)е迈r果類產(chǎn)品滯銷問題頻發(fā)[1]。隨著我國信息技術(shù)產(chǎn)業(yè)蓬勃發(fā)展,農(nóng)業(yè)的發(fā)展與改革也搭上了信息快車,從傳統(tǒng)農(nóng)業(yè)向現(xiàn)代農(nóng)業(yè)轉(zhuǎn)變,邁向信息化、數(shù)字化。美國、法國、澳大利亞和日本等農(nóng)業(yè)發(fā)達(dá)國家根據(jù)自己農(nóng)業(yè)信息化情況并結(jié)合本地實(shí)際,形成了具有自身的特點(diǎn)農(nóng)業(yè)信息化建設(shè)的方法與實(shí)踐。目前,“農(nóng)業(yè)+云平臺(tái)”已成為現(xiàn)代農(nóng)業(yè)發(fā)展的主方向,大數(shù)據(jù)分析平臺(tái)的支撐已成為農(nóng)業(yè)信息化,農(nóng)業(yè)現(xiàn)代化的必要需求。因此,搭建一個(gè)農(nóng)業(yè)數(shù)據(jù)云平臺(tái)是極具意義的,能讓當(dāng)?shù)剞r(nóng)業(yè)產(chǎn)業(yè)體系更地享受信息紅利,與此同時(shí)帶動(dòng)生產(chǎn)力的積極性,同時(shí)也深化數(shù)字農(nóng)業(yè)改革,響應(yīng)《數(shù)字農(nóng)業(yè)農(nóng)村發(fā)展規(guī)劃(2019—2025年)》,將數(shù)字化賦能于傳統(tǒng)農(nóng)業(yè),加速湘西地區(qū)的數(shù)字農(nóng)業(yè)農(nóng)村發(fā)展[2]。

      1 ?系統(tǒng)總體設(shè)計(jì)

      湘西云農(nóng)平臺(tái)是一個(gè)使用Django開發(fā)的SaaS結(jié)構(gòu)平臺(tái),為企業(yè)或個(gè)人提供一種開箱即用的軟件服務(wù)方式。考慮到平臺(tái)的目標(biāo)用戶群體,該系統(tǒng)整體界面設(shè)計(jì)簡潔明了,使用操作簡便,對每個(gè)專業(yè)術(shù)語都標(biāo)有通俗的說明與簡要作用,極大方便了租戶,降低了其學(xué)習(xí)成本,讓租戶可以直接從數(shù)據(jù)圖中感受到市場變化。

      該平臺(tái)系統(tǒng)主要實(shí)現(xiàn)有兩個(gè)主要功能:數(shù)據(jù)整合查詢功能以及云盤文件管理功能。

      數(shù)據(jù)整合查詢功能為用戶提供數(shù)據(jù)來源。該平臺(tái)整合了互聯(lián)網(wǎng)上有關(guān)農(nóng)業(yè)作物的數(shù)據(jù)(價(jià)格、產(chǎn)地種植面積、產(chǎn)能等),其來源有果蔬、農(nóng)業(yè)垂直網(wǎng)站,金融資訊網(wǎng)站、交易所、地方統(tǒng)計(jì)局和國家統(tǒng)計(jì)局年鑒等,為租戶提供農(nóng)作物的數(shù)據(jù)查詢服務(wù)。該平臺(tái)的數(shù)據(jù)查詢種類主要有鮮果類,也包括其他種類,例如油料作物、蔬菜作物、糧食作物等,同時(shí)其布告欄上也整合了多家垂直網(wǎng)站的預(yù)警消息、供求帖、方便租戶及時(shí)獲取最新的消息以了解市場行情。農(nóng)戶不需要坐等商家上門,可直接通過供求帖獲取商家聯(lián)系方式進(jìn)行洽談,掌握云農(nóng)平臺(tái)上的數(shù)據(jù)提高議價(jià)能力[3]。

      云盤文件管理功能為用戶提供便捷的文件管理服務(wù)。每位租戶在該平臺(tái)上有自己的云盤空間,能夠?qū)⒆约旱臄?shù)據(jù)上傳到自己的云盤,然后在平臺(tái)上將上傳的數(shù)據(jù)與平臺(tái)數(shù)據(jù)整合在同一個(gè)表格中做比較,同時(shí)也會(huì)向租戶提供部分商品的短期價(jià)格預(yù)測。

      1.1 ?基于SaaS模式搭建平臺(tái)

      SaaS是Software-as-a-Service(軟件即服務(wù))的簡稱,是21世紀(jì)開始興起的一種軟件應(yīng)用模式,可以跨地域、跨平臺(tái)服務(wù)。該軟件模式有多種特性和優(yōu)勢。

      對于服務(wù)提供商而言,可以統(tǒng)一對軟件進(jìn)行版本管理,統(tǒng)一版本,統(tǒng)一更新,能夠進(jìn)行多端適配縮短產(chǎn)品上線時(shí)間,同時(shí)也能夠降低維護(hù)成本,減小運(yùn)維壓力[4]。

      對于用戶而言,SaaS方式能夠做到開箱即用,只需要在登錄網(wǎng)站后即可體驗(yàn)提供商提供的軟件服務(wù)。相比于傳統(tǒng)使用軟件的方式,租戶省去了研發(fā)、部署、運(yùn)維等一系列繁復(fù)的過程,且獲得軟件的時(shí)間和費(fèi)用成本都大幅度降低。而且租戶每次登錄到系統(tǒng)上時(shí),就已經(jīng)獲取了最新版本的軟件服務(wù),不需要再重新下載、安裝、配置,SaaS登錄即可體驗(yàn)[5]。

      1.2 ?系統(tǒng)組成

      湘西云農(nóng)平臺(tái)通過Django開發(fā)[6],用戶只需要在終端設(shè)備登錄網(wǎng)站,即可觀察到最新的行情變動(dòng)。具體而言主要由以下3個(gè)子系統(tǒng)構(gòu)成。

      1.2.1 ?數(shù)據(jù)采集系統(tǒng)

      采用Scrapy-Redis分布式爬蟲,在多個(gè)有關(guān)農(nóng)作物、果蔬信息的垂直網(wǎng)站上進(jìn)行爬取,再以不同的農(nóng)作物類型、水果類型建表,解析并存儲(chǔ)名稱、價(jià)格、時(shí)間、地名(轉(zhuǎn)換成中國城市編碼)、收購價(jià)格、批發(fā)價(jià)格等等,經(jīng)過清洗后保存在MongoDB中[7],如圖1所示。

      平臺(tái)使用Redis作為高速緩存,緩存一些頻繁被訪問的數(shù)據(jù)(例如柑橘類信息,全州鮮果類主要作物中,柑橘類占近70%[2]),租戶瀏覽的歷史記錄等。當(dāng)租戶請求數(shù)據(jù)時(shí),平臺(tái)會(huì)先從Redis取數(shù)據(jù),有則響應(yīng)返回?cái)?shù)據(jù),如果沒有的話,就向MongoDB取相應(yīng)的數(shù)據(jù),如圖2所示。

      1.2.2 ?數(shù)據(jù)處理系統(tǒng)

      展示數(shù)據(jù)圖表和一些垂直網(wǎng)站上的市場預(yù)警信息、求購信息等。將MongoDB中的數(shù)據(jù)分類,多級菜單,分頁展示,使用Echarts展示圖表,界面提供多種圖表樣式可隨時(shí)替換。租戶可以將一些圖表收藏(星標(biāo))在自己的空間里“我的圖表”。

      該系統(tǒng)還能為用戶提供一個(gè)圖表轉(zhuǎn)化的功能,主要是可以將選取的系統(tǒng)數(shù)據(jù)與租戶自己上傳的數(shù)據(jù)(Excel或CSV文件)結(jié)合在同一個(gè)圖表中顯示,這樣比較將能最直觀地感受到數(shù)據(jù)上的變化。同時(shí)系統(tǒng)也可以針對部分農(nóng)作物,根據(jù)近年的數(shù)據(jù)使用ARIMA模型進(jìn)行短期的價(jià)格預(yù)測。

      1.2.3 ?文件管理系統(tǒng)

      對象存儲(chǔ)(Cloud Object Storage, COS)是由騰訊云推出的無目錄層次結(jié)構(gòu)、無數(shù)據(jù)格式限制,可容納海量數(shù)據(jù)且支持 HTTP/HTTPS 協(xié)議訪問的分布式存儲(chǔ)服務(wù)。平臺(tái)通過COS對象存儲(chǔ)服務(wù),實(shí)現(xiàn)更快的上傳、查看、下載文件等操作,如圖3所示。COS存儲(chǔ)桶空間無容量上限,無須分區(qū)管理,適用于 CDN 數(shù)據(jù)分發(fā)、數(shù)據(jù)萬象處理或大數(shù)據(jù)計(jì)算與分析的數(shù)據(jù)湖等多種場景。文件管理系統(tǒng)實(shí)現(xiàn)多個(gè)功能,通過臨時(shí)密鑰上傳文件、下載文件、查看文件、刪除文件等。

      每個(gè)租戶初始都有一定的云盤空間,可以通過瀏覽器對自己的文件進(jìn)行更刪改查等操作。

      上傳文件時(shí),平臺(tái)會(huì)返回一個(gè)臨時(shí)Token作為租戶上傳文件的憑證,然后上傳至COS,上傳成功之后返回文件名給平臺(tái)存儲(chǔ)至數(shù)據(jù)庫。

      租戶也可以在系統(tǒng)上下載Excel文件,依據(jù)年份,或者農(nóng)作物種類/名稱,數(shù)據(jù)類型等選擇下載或星標(biāo)收藏文件。同樣先向平臺(tái)發(fā)送下載請求然后平臺(tái)從COS獲取對應(yīng)的文件內(nèi)容并返回給租戶。

      2 ?實(shí)現(xiàn)與部署

      開發(fā)環(huán)境與部署環(huán)境均為python3.7、Django1.11.28、docker19.03.5。兩臺(tái)主機(jī),分別為Windows10筆電和樹莓派4b Raspbian。

      2.1 ?數(shù)據(jù)采集部分

      使用docker布置多臺(tái)機(jī)器,Scrapy-Redis分布式爬取垂直類網(wǎng)站。為防止爬取速度過快而對網(wǎng)站服務(wù)器造成損害,在中間件middlewares.py里設(shè)置隨機(jī)延遲RANDOM_DELAY。

      同時(shí)為了避免IP被封,還需要?jiǎng)?chuàng)建代理池,如圖4所示。由于代理池中的IP有時(shí)效性,需要不斷被驗(yàn)證:校驗(yàn)器從頭部去取IP,一次性取多個(gè)IP并使用異步請求(協(xié)程處理)進(jìn)行二次校驗(yàn),成功的重新添加到List尾部,而使用代理時(shí)就直接從尾部取。調(diào)度器負(fù)責(zé)通過調(diào)用校驗(yàn)器和添加器對代理IP隊(duì)列進(jìn)行循環(huán)校驗(yàn)與循環(huán)檢測,

      部分頁面解析的回調(diào)函數(shù)為:

      def parse_infoPage(response):

      info_list=response.xpath(‘/html/body/div[3]/table//td’)

      for cnt,I in enumerate(info_list,1):

      rem=cnt%6

      if rem==1:

      date=i.xpath(‘./@title’).extract_first()

      if rem==2:

      addr=i.xpath(‘./a/text()’).extract_first()

      if rem==3:

      fruit=i.xpath(‘./a/text()’).extract_first()

      if rem==4:

      price=i.xpath(‘string(./p[1])’).extract_first().strip()

      if rem==5:

      user=i.xpath(‘./a/text()’).extract_first()

      if rem==0:

      phone = i.xpath(‘./p/text()’).extract_first()

      爬取的數(shù)據(jù)部分展示如圖5所示。

      2.2 ?短信驗(yàn)證碼的實(shí)現(xiàn)

      短信驗(yàn)證碼功能主要實(shí)現(xiàn)兩種方法一種是單條發(fā)送短信,另一種是批量發(fā)送短信。單條發(fā)送短信驗(yàn)證碼的方法用來實(shí)現(xiàn)用戶注冊、登錄、重置密碼,而批量發(fā)送短信驗(yàn)證碼的方法主要用作推廣或者廣告。該功能核心代碼及實(shí)現(xiàn)流程為:先注冊騰訊云并開通云短信在騰訊云上創(chuàng)建三個(gè)短信模板,分別用作“用戶注冊”“用戶登錄”“重置密碼“三個(gè)功能。然后安裝騰訊的SDK,pip install qcloudsms_py。

      2.3 ?用戶權(quán)限及用戶額度處理

      平臺(tái)大部分功能只對已注冊登錄的用戶開放,對于未登錄的訪問者不予以功能服務(wù)。設(shè)置登錄白名單(無須登錄就可訪問的頁面)以實(shí)現(xiàn)登錄用戶與游客的權(quán)限劃分。

      配置文件settings.py中設(shè)置url白名單:

      WHITE_REGEX_URL_LIST = [

      “/register/”,

      “/send/sms/”, ?#短信驗(yàn)證碼

      “/login/”,

      “/image/code”, #圖形驗(yàn)證碼

      “/index/”,

      ]

      在auth.py中創(chuàng)建中間件AuthMiddleware(),同時(shí)將用戶信息及其額度信息封裝到中間件Vip中:

      class Vip(object): # 將用戶信息與額度信息封裝在vip中

      self.user = None

      self.price_policy = None

      class AuthMiddleware(MiddlewareMixin):

      def process_request(self, request):

      . request.vip = Vip()

      user_id = request.session.get(‘user_id’, 0)

      user_object = models.UserInfo.object.filter(id=user_id).first()

      request.vip.user = user_object

      if request.path_info in settings.WHITE_REGEX_URL_LIST:

      return

      if not request.vip.user:

      return redirect(“l(fā)ogin”) ? ?# 否則重定向到登錄界面

      .

      # 免費(fèi)額度在交易記錄中存儲(chǔ)

      _object = models.Transaction.object.filter(user=user_object, status=2).order_by(‘-id’).first()

      current_datetime = datetime.datetime.now()

      if _object.end_datetime and _object.end_datetime<current_datetime:

      _object = models.Transaction.object.filter(user=user_object, status=2, price_policy_category=1).first()

      request.vip.price_policy = _object.price_policy

      2.4 ?文件上傳、刪除、下載功能的實(shí)現(xiàn)

      用戶上傳文件時(shí),會(huì)先向django發(fā)送請求,然后服務(wù)器返回臨時(shí)憑證,用戶才能攜帶臨時(shí)憑證上傳文件。需要有兩個(gè)路由,一個(gè)用于獲取臨時(shí)憑證,一個(gè)用于上傳文件,URL為:

      url(r’^uploadFile/$’, manage.upload, name=’upload_file’),

      url(r’^cos/credential/$’, manage.cos_credential, name=’cos_credential’)

      安裝一個(gè)用于生成臨時(shí)憑證的python模塊,pip install qcloud-python-sts -U.

      COS創(chuàng)建存儲(chǔ)桶并設(shè)置CORS跨域處理的核心代碼實(shí)現(xiàn):

      下載文件。用戶下載文件分為兩種,一種是從自己云盤空間下載,需要從COS端獲取,而下載云平臺(tái)上的公共文件,即從本地?cái)?shù)據(jù)庫獲取。下文為從COS端下載文件的核心代碼:

      def file_download(request, project_id, file_id):

      file_object = models.FileRepository.object.filter(id=file_id, project_id=project_id).first()

      res = request.get(file_object.file_path)

      data = res.content

      response = HttpResponse(data)

      # 設(shè)置響應(yīng)頭

      response[‘Content-Disposition’] = “attachment; filename={}”.format(file_object.name)

      return response

      3 ?結(jié) ?論

      本文基于Django語言和SaaS模式開發(fā)設(shè)計(jì)一個(gè)由數(shù)據(jù)采集系統(tǒng)、數(shù)據(jù)處理系統(tǒng)、文件管理系統(tǒng)三個(gè)子系統(tǒng)組成的信息服務(wù)云農(nóng)平臺(tái),利用該平臺(tái)的數(shù)據(jù)整合查詢功能以及云盤文件管理功能,為用戶提供了大量農(nóng)產(chǎn)品市場信息以及便捷的文件管理服務(wù),有效地解決了地區(qū)農(nóng)產(chǎn)品市場信息不對稱問題,從而有效地提升農(nóng)產(chǎn)品的銷量問題。但是本文算法運(yùn)行速度較慢,很難滿足實(shí)時(shí)性,未來可以在上述不足之處進(jìn)行優(yōu)化,進(jìn)一步提高本算法的性能。

      參考文獻(xiàn):

      [1] 湘西自治州統(tǒng)計(jì)局.湘西統(tǒng)計(jì)年鑒 [R/OL].(2019-11-27).http://www.xxz.gov.cn/zfsj/tjnj_47577/201911/t20191127_1289033.html

      [2] 劉鐘.現(xiàn)代農(nóng)業(yè)中的數(shù)字化信息系統(tǒng) [D].成都:電子科技大學(xué),2015.

      [3] 呂小剛.數(shù)字農(nóng)業(yè)推動(dòng)農(nóng)業(yè)高質(zhì)量發(fā)展的思路和對策 [J].農(nóng)業(yè)經(jīng)濟(jì),2020(9):15-16.

      [4] 昌中作,徐悅,戴鋼.基于SaaS模式公共服務(wù)平臺(tái)多用戶數(shù)據(jù)結(jié)構(gòu)的研究 [J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2008(2):7-11.

      [5] 國艷群,韓敏,孫林夫.開放SaaS產(chǎn)業(yè)服務(wù)平臺(tái)模型與體系結(jié)構(gòu) [J].西南交通大學(xué)學(xué)報(bào),2014,49(6):1068-1072.

      [6] 徐秀芳,夏旻,徐森,等.基于Django的校園疫情防控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) [J].軟件導(dǎo)刊,2021,20(2):24-30.

      [7] 趙宸,劉建華.基于Django的分布式爬蟲框架設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)與數(shù)字工程,2020,48(10):2495-2498.

      作者簡介:龍濤(2000—),男,漢族,湖南長沙人,本科在讀,主要研究方向:大數(shù)據(jù)分析處理;通訊作者:諶愛文(1970—),女,漢族,湖南安化人,副教授,碩士,主要研究方向:計(jì)算機(jī)應(yīng)用。

      猜你喜歡
      農(nóng)業(yè)信息化農(nóng)業(yè)現(xiàn)代化
      基于本體的農(nóng)業(yè)知識(shí)建模研究
      咸寧市農(nóng)業(yè)現(xiàn)代化現(xiàn)狀及發(fā)展對策
      宿遷市農(nóng)業(yè)信息化發(fā)展的現(xiàn)狀分析及對策研究
      基于網(wǎng)絡(luò)和多媒體的農(nóng)業(yè)信息化建設(shè)探討
      “互聯(lián)網(wǎng)+農(nóng)業(yè)”信息化發(fā)展路徑探討
      金融對農(nóng)業(yè)現(xiàn)代化發(fā)展的影響及對策實(shí)證分析
      人間(2016年24期)2016-11-23 15:40:08
      新型城鎮(zhèn)化背景下新型職業(yè)農(nóng)民培育機(jī)制研究
      貫徹新的發(fā)展理念 促進(jìn)農(nóng)業(yè)現(xiàn)代化
      新一代(2016年15期)2016-11-16 15:40:53
      農(nóng)業(yè)信息化對我國農(nóng)業(yè)經(jīng)濟(jì)增長影響分析
      農(nóng)業(yè)現(xiàn)代化及其金融支持的國際經(jīng)驗(yàn)
      独山县| 长汀县| 理塘县| 韶关市| 盘锦市| 陆川县| 永兴县| 得荣县| 临高县| 桦南县| 临颍县| 常宁市| 张家界市| 娄底市| 古田县| 邯郸县| 巢湖市| 关岭| 桐乡市| 岳阳市| 玉屏| 隆安县| 长子县| 高雄市| 禹州市| 青海省| 宜良县| 仙桃市| 明水县| 三门县| 仪征市| 武邑县| 房山区| 大厂| 永平县| 宣武区| 平顶山市| 牙克石市| 鸡泽县| 大渡口区| 山东|