刁海亭,鄭成良,鄭曉梅
1.山東農業大學信息科學與工程學院,山東泰安271018
2.山東省五蓮縣國土資源局,山東五蓮262300
云計算在蔬菜安全預警和追溯平臺中的應用
刁海亭1,鄭成良1,鄭曉梅2
1.山東農業大學信息科學與工程學院,山東泰安271018
2.山東省五蓮縣國土資源局,山東五蓮262300
蔬菜作為中國出口創匯的重要作物和廣大人民群眾日常生活的必需品,其質量安全非常重要。傳統方式建立的蔬菜質量安全監管系統比較龐大,網絡終端用戶訪問的速度較慢。本文討論了云計算的概念、服務模型及國內外應用,介紹了反向代理服務器Nginx的背景及應用。利用Nginx,結合C#開發語言,借助3臺電腦,探討了蔬菜安全預警和追溯平臺中圖片數據的分布式動態存儲和管理。云計算技術的應用減少了溯源數據庫本地服務器的存儲數據,提升了用戶訪問網站的速度,降低了平臺維護成本。
云計算;蔬菜;安全預警
蔬菜從農田到餐桌要經過生產、加工、儲存、運輸、銷售等環節,整個產業鏈工藝、流程錯綜復雜,存在數據多源、異構。基于這些海量數據建立相關系統往往比較龐大,不僅占用大量存儲空間,還降低了系統的效率。因此,需要采取措施應對日益龐大的蔬菜管理系統。目前涌現的云計算(Cloud Computing)技術正是解決這一問題的有力武器。云計算被視為信息技術的第三次浪潮,已從新興技術發展成為當今的熱點技術,它的分布式存儲管理理念在國際上和國內都引起了研究的熱潮。它將各種資源集中、結合起來提供各種服務,利用虛擬化技術向用戶提供高效、可靠和穩定的計算和存儲服務,解決海量數據的存儲與處理問題。
1.1云計算概念
云計算真正概念的提出是2006年8月9日的谷歌(Google)搜索引擎大會(SES San Jose 2006)上,當時的谷歌首席執行官埃里克·施密特(Eric Schmidt)第一次提出了“云計算”的概念。此后這一思想引起了全世界的重視,關于云計算的概念也眾說紛紜,至少有幾十種。倪光南院士指出“人們感受到的豐富多樣的云服務屬于商業模式的范疇,而可以按需提供強大計算資源的云計算平臺則屬于技術的范疇”[1]。
簡要來講,云計算是一種利用互聯網實現隨時隨地、按需、便捷地訪問共享資源池(如計算資源、存儲設備、應用程序等)的計算模式(來自美國國家標準與技術研究院的定義)。這個概念明確了云計算的實質就是在互聯網上將IT資源當作服務來提供。在云計算的環境之下,一切都是服務。
1.2云計算的服務模型
云計算有三種主要的服務模型,圖1是三種服務模型的層次關系[2]。
(1)SaaS:Soft-ware as a Service,軟件即服務。將應用程序作為服務提供給用戶,面對的是普通用戶;
(2)PaaS:Platform as a Service,平臺即服務。將服務器平臺或者開發環境作為服務提供給用戶,面對的是開發人員;
(3)IaaS:Infrastructure as a Service,基礎設施即服務。將服務器、存儲和網絡硬件以及相關軟件等資源作為服務提供給用戶,面對的是系統管理員[3]。

圖1 云服務模型層次關系Fig.1 The hierarchy relationship of cloud service models
1.3云計算的國內外研究
自從云計算的概念被提出以來,國外許多國家如美國、日本、德國、韓國等都進行了大量的研究;一些公司如:Google、IBM、Amazon、微軟、雅虎等都是云計算的先行者,在云計算上做了大量的實踐工作。Google的技術核心就是云計算,其早期發布的一系列關于分布式文件系統、并行計算、數據和分布式資源管理方面的文章,為全球云計算的發展奠定了技術基礎,可以說Google是云計算的先驅。IBM于2007年8月推出“藍云(Blue Cloud)”計劃,為企業客戶搭建分布式、可通過互聯網訪問的云計算體系。Amazon于2008年8月推出彈性計算云(Elastic Compute Cloud,EC2)和簡單存儲服務(Simple Storage Service,S3),在云計算的發展中也起到了重要的作用。微軟于2008年10月推出基于云計算的操作系統—Windows Azure,為開發者提供一個平臺,幫助他們在PC、Web、云服務器、數據中心上運行應用程序[6]。我國在云計算上起步較晚,在北京、上海、深圳、杭州和無錫等5個城市先行開展云計算創新發展試點示范工作,隨后向全國各城市推開。
隨著云技術的廣泛應用,云技術和GIS的結合也開始日益得到重視,如美國環境系統研究所公司(Environmental Systems Research Institute,ESR)ArcGIS 10.1推出的私有云GIS服務在美國密蘇里州西普蘭市的招商引資、印尼國家測繪局的NSDI項目中都有典型應用;中地數碼公司推出的MapGIS K9 SP3采用了面向服務的懸浮式體系架構,在數字郴州共享服務平臺、數字宜賓共享服務平臺等項目得到了應用;中國超圖公司研發的SuperMap GIS 6R(2012)支持虛擬化、64位CPU、支持二三維一體化、跨平臺等,在福建省地理信息云服務平臺、全球建筑機械管理GIS云平臺等得到了很好的研究。
2.1Nginx介紹
隨著網絡技術的提高和應用的普及,各種網站也越來越復雜。而一個網站同時為成百上千甚至是幾百萬用戶同時服務的情況也并不少見,這就導致客戶端瀏覽網站的速度變慢。因此,為了能夠持續性處理隨著日益增加的用戶量而導致的不斷增加的負載以及獲得更高的并發性,一個網站必須基于一系列非常高性能的模塊來構建。Web服務器需要能夠通過非線性擴展來滿足每秒鐘不斷增長的并發連接和請求數。Nginx正是能滿足這種需求的Web服務器。
Nginx是2004年俄羅斯人Igor Sysoev(塞索耶夫)為俄羅斯訪問量第二的Rambler.ru站點開發的一款高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP代理服務器。Nginx本身就可以托管網站,進行HTTP服務處理,也可以作為反向代理服務器使用[7,8]。
隨著Nginx的功能越來越強大,其在國內外的普及率也越來越高。在俄羅斯,大約超過20%的虛擬主機平臺采用Nginx作為反向代理服務器。在國內,已經有淘寶、新浪、網易、豆瓣、迅雷在線、六間房等多家網站使用Nginx作為Web服務器或反向代理服務器。本文利用Nginx探討平臺中圖片數據分布式動態存儲,提升用戶訪問網站的速度。
2.2Nginx+IIS服務器搭建服務器集群
利用Nginx+IIS服務器搭建服務器集群,架構圖如圖2所示。

圖2 Nginx+IIS服務器搭建服務器集群Fig.2 The servers cluster from Nginx+IIS server
本文前期開發的蔬菜安全預警與追溯平臺基于網絡設計,數據量較大,終端用戶訪問的速度受到影響。平臺中保存有大量蔬菜產地圖片,本文實驗借助3臺電腦,探討蔬菜安全預警和追溯平臺中圖片數據的分布式動態存儲和管理。
3.1環境設計
電腦的環境設計如下:
(1)Nginx服務器:
硬件:華碩筆記本、內存4G
軟件:Nginx1.4.7
局域網IP:192.168.191.1:8080
(2)Image服務器:
硬件:聯想臺式、內存4G
軟件:IIS+imgServerX2
局域網:192.168.191.2:80;192.168.191.2:90
說明:可彈性添加Image服務器節點個數
(3)主站服務器:
硬件:聯想筆記本(ThinkPad Edge)、內存4G
軟件:IIS+主站點
局域網IP:192.168.191.3:80
說明:可彈性添加主站節點個數
3.2分布式存儲圖片服務器狀態設計
Web服務器需要及時掌握所有圖片服務器的狀態和信息,才能動態決定把圖片保存到哪一臺圖片服務器。因此,需要把所有的圖片服務器的狀態信息全部記錄到數據庫服務器中,記錄圖片服務器信息和狀態的表格如1所示。

表1 圖片服務器狀態信息表Table 1 Image server state information table
狀態信息表中的ServerId字段為主鍵自增列,唯一代表一條圖片服務器紀錄。ServerName字段記錄服務器的名稱,方便管理員識別該記錄代表哪臺服務器。ServerUrl字段標識了圖片服務器上圖片主目錄的URL根路徑。PicRootPath字段標識了保存圖片的物理主目錄。MaxPicAmount字段表示圖片服務器能保存的最大圖片數,該數可以根據圖片服務器的硬件配置和性能以及用戶實際需要而進行動態調整。CurPicAmount字段表示當前已保存的圖片數,當CurPicAmount≥MaxPicAmount時系統將不再把圖片上傳到該服務器。FlgUsable字段表示圖片服務器是否可用。
表2為平臺中涉及到的圖片相關信息。

表2 圖片信息表Table 2 Image information
3.3平臺分布式架構實現
由于圖片保存在物理硬盤上,訪問圖片需要頻繁進行I/O操作,因此隨著并發用戶的數量越來越多,I/O操作就會影響整個系統的性能,最終影響用戶訪問速度。本文探討采用圖片數據分布式動態存儲及負載均衡的方案,以解決用戶訪問平臺中蔬菜產地圖片信息時的速度問題。該方案只需增加很少的硬件成本,即可提升網站的訪問速度,并且可以根據需要動態調整圖片服務器的數量及圖片的存儲目錄,確保系統具有可擴展性和伸縮性。

圖4 分布式平臺存儲設計圖Fig.4 The design for the storage of distributed platform
結合Nginx與文件分布式存儲方案,本平臺的分布式存儲設計如圖4所示,其中方框中的服務器代表可擴展的節點。平臺實施過程中,通過Nginx,將用戶的請求分發給IIS服務器。本文在設計時,根據實際情況選擇了一臺Nginx服務器,兩臺IIS服務器,在實際應用中可以建立Nginx服務器集群。
3.3.1圖片文件上傳當生產用戶上傳產地圖片時,Web服務器需要及時掌握所有圖片服務器的狀態和信息才能動態決定把圖片保存到哪一臺圖片服務器。因此,需要把所有的圖片服務器的狀態信息全部記錄到數據庫服務器中,記錄圖片服務器信息和狀態如表1所示。但由于B/S架構本身技術限制,圖片無法通過Web服務器直接上傳到不同的圖片服務器,因此需要在所有圖片服務器上部署一個Web Service以便Web服務器可通過調用不同圖片服務器上的Web Service執行保存。
從狀態表篩選出可用的圖片服務器集合記作A,獲取集合的總記錄數N。然后用隨機函數產生一個隨機數R1,并用R1與N進行取余運算,記作I=R1%N。則A[I]即為要保存圖片的圖片服務器。3.3.2圖片瀏覽客戶端用戶通過瀏覽器向Web服務器發出瀏覽某頁面的請求,Web服務器從數據庫服務器中獲取該頁面的所有圖片URL信息,并根據URL信息去搜索圖片服務器的狀態信息表,判斷該URL所指向的圖片服務器的狀態字段FlgUsable,若FlgUsable=false表示該圖片服務器當前因某種原因處于不可用狀態,則把該圖片的URL替換成Web服務器上保存的一個默認圖片的URL,否則把該URL直接返回給客戶端。客戶端再根據圖片的URL路徑自動從不同的圖片服務器上下載并顯示相應的圖片。由于圖片URL路徑直接指向具體的圖片服務器,因此需要在每個圖片服務器的保存圖片的主目錄上建立一個Web站點。由于客戶端瀏覽器所需要的圖片是從多個圖片服務器上直接下載,因此瀏覽器可以并發地從多臺服務器上同時下載圖片,這樣就縮短了圖片下載時間,同時也減輕了Web服務器的I/O請求及性能壓力,提高了網站的訪問速度。實現效果如圖5所示,向192.168.191.1:8080地址發送請求,Nginx接到請求后分發給192.168.191.3(主站點),然后主站點向兩臺圖片服務器發送請求,由192.168.191.2:80和192.168.191.2:90做出響應。

圖5 分布式平臺實現效果圖Fig.5 The implementation effect of the distributed platform
本文結合云計算技術利用Nginx探討了蔬菜安全預警和追溯平臺中圖片數據的分布式動態存儲,提升用戶網站的訪問速度。對于Web服務器而言,用戶對圖片信息的訪問是很消耗服務器資源的。頁面中圖片越多Web服務器受到的壓力也就越大。平臺設立單獨的圖片服務器來專門存放圖片,可以根據需要動態調整圖片服務器的數量及圖片數據存儲目錄,提高用戶的訪問速度,確保所建平臺具有可擴展性和伸縮性。但蔬菜管理系統中的數據多源異構,本文僅僅探討了圖片數據的分布式動態存儲,下一步將對其它數據格式的云存儲展開研究。
[1]姚宏宇,田溯寧.云計算:大數據時代的系統工程[M].北京:電子工業出版社,2013
[2]林利,石文昌.構建云計算平臺的開源軟件綜述[J].計算機科學,2012,39(11):1-7,28
[3]孫香花.云計算研究現狀與發展趨勢[J].計算機測量與控制,2011,19(5):998-1001
[4]修長虹,梁建坤,董鴻曄.云計算技術綜述[J].網絡安全技術與應用,2012(3):9-11
[5]姚有真.云計算及其發展趨勢[J].通信管理與技術,2011(4):13-15
[6]劉越.云計算綜述與移動云計算的應用研究[J].信息通信技術,2010(2):14-20
[7]田純青.利用Nginx實現基于URI的Web負載分配[J].現代計算機:專業版,2009(7):187-191
[8]聶鵬.基于Nginx的云計算訪問控制網關的設計與實現[D].北京:北京交通大學,2011
The Application of the Cloud Computing in Vegetable Safety Early Warning and Traceability Platform
DIAO Hai-ting1,ZHENG Cheng-liang1,ZHENG Xiao-mei2
1.College of Information Science and Engineering/Shandong Agricultural University,Tai'an 271018,China
2.Wulian Land and Resources Bureau of Shandong,Wulian 262300,China
Vegetables,as China's important export crops and the people's necessities in daily life,their quality and safety are very important.The supervision system for traditional vegetable quality and safety is relatively large,so the access speed of the network terminal users is slow.The concept of cloud computing,service model and application in domestic and abroad were discussed in this paper and also introduced the background and the application of the reverse proxy server Nginx.Using Nginx and C#development language with 3 computers,the distributed dynamic storage and management of the picture data in vegetable safety early warning and traceability platform were explored in this paper.The use of cloud computing technology reduced data quantity of the local database,enhanced access speed of the user and reduced maintenance cost of the platform.
Cloud computing;vegetable;safety early warning
TS207.7;TP315
A
1000-2324(2016)05-0768-05
2015-03-14
2015-04-15
國家科技支撐計劃課題資助(2012BAK17B05)
刁海亭(1978-),女,講師,博士,主要從事地理信息系統及國土資源信息化的研究.E-mail:htdiao@sdau.edu.cn