周俊豪 郭龍 蔡以東 張迪
摘 要:文中以校園食堂服務(wù)系統(tǒng)中的海量數(shù)據(jù)為研究對象,基于大數(shù)據(jù)背景下的食堂服務(wù)平臺的研究展開討論。該系統(tǒng)應(yīng)用HTML5,JavaScript,MySQL,Hadoop集群數(shù)據(jù)處理等技術(shù),實現(xiàn)了在線訂餐功能并生成數(shù)據(jù)分析。實驗結(jié)果表明:該平臺方便了師生訂餐的同時也減少了食堂管理成本,解決了學(xué)生就餐難,排隊久的難題;系統(tǒng)通過大數(shù)據(jù)分析來了解消費者的需求,從而更好地提高食堂服務(wù)水平。
關(guān)鍵詞:大數(shù)據(jù);線上訂餐;校園食堂;Hadoop集群;海量數(shù)據(jù);數(shù)據(jù)處理
中圖分類號:TP391.7文獻標(biāo)識碼:A文章編號:2095-1302(2020)09-00-04
0 引 言
如今,網(wǎng)絡(luò)數(shù)據(jù)量成指數(shù)型增長,現(xiàn)今社會已經(jīng)是大數(shù)據(jù)發(fā)展的時代。然而,快速增長的數(shù)據(jù)量已超越了普通數(shù)據(jù)庫的處理能力,導(dǎo)致數(shù)據(jù)庫無法對TB級以上的數(shù)據(jù)進行儲存并分析,因此,我們通過Hadoop集群對海量數(shù)據(jù)進行統(tǒng)計和分析處理,從中提取出有價值的數(shù)據(jù),用數(shù)據(jù)展開分析,為用戶呈現(xiàn)數(shù)據(jù)化的技術(shù),同時,也為以后的重要決策提供重要的依據(jù)。
食堂服務(wù)平臺主要采用大數(shù)據(jù)分析技術(shù),并結(jié)合云計算技術(shù)進行大量的數(shù)據(jù)分析和處理,專門針對校園食堂打飯難,排隊久,就餐環(huán)境差等問題進行研究。利用平臺收集信息,綜合處理,結(jié)合校園管理實際解決就餐問題。
1 項目背景
本項目以貴州師范學(xué)院為例來展開研究,主要目的解決學(xué)生日常生活中的就餐問題。由網(wǎng)絡(luò)數(shù)據(jù)可知,每年各大高校的招生人數(shù)都在不斷增加,特別是在大學(xué),貴州所有大學(xué)人數(shù)統(tǒng)計見表1所列。
下面以貴州師范學(xué)院為例進行闡述:
(1)貴州師范學(xué)院土地資源不算豐富,占地面積狹小,對于一個大學(xué)來講,如果沒有適合的就餐管理機制,本學(xué)校的三個食堂完全無法滿足要求。
(2)貴州師范學(xué)院的招生人數(shù)逐年增加,以至于近年來師生人數(shù)近2萬人,是一個龐大的集體,于此,使得師生就餐成為一大問題。
(3)由于學(xué)校人數(shù)問題,各個學(xué)院的課程安排時間相近,導(dǎo)致下課時間相同,以至于出現(xiàn)“搶位置”“搶飯”等現(xiàn)象,這也是最主要因素。
(4)食堂內(nèi)所有窗口并不集中,每個窗口為一個商家,從而導(dǎo)致食堂衛(wèi)生(指地面的保潔、桌面收拾,桌椅保潔等)難題,甚至許多學(xué)生對就餐產(chǎn)生恐懼。
2 系統(tǒng)設(shè)計思路與架構(gòu)
2.1 系統(tǒng)設(shè)計思路
本系統(tǒng)需要解決學(xué)生食堂就餐無法系統(tǒng)化等問題。系統(tǒng)中,學(xué)生通過平臺可以了解各校內(nèi)食堂各個商家的詳細信息,針對自己的喜好在不同商家下單點餐,方便商家進行線上線下的管理。
大量人員用餐服務(wù)平臺的最大問題是用戶數(shù)量和產(chǎn)生數(shù)據(jù)龐大,到目前為止,食堂用餐人數(shù)的數(shù)據(jù)已經(jīng)成千上萬條,采用人工處理方式很不科學(xué),不利于食堂服務(wù)的管理。然而隨著大數(shù)據(jù)時代的來臨,運用更高的數(shù)據(jù)化處理技術(shù)可更好地解決這個問題。利用現(xiàn)代網(wǎng)絡(luò)技術(shù)收集大量數(shù)據(jù),并通過Hadoop集群數(shù)據(jù)處理技術(shù)進行分析之后再傳回MySQL數(shù)據(jù)庫。大數(shù)據(jù)的核心技術(shù)就是可儲存和分析大量數(shù)據(jù),相較于傳統(tǒng)的數(shù)據(jù)倉庫處理技術(shù)而言,更加有利于數(shù)據(jù)信息的采集和處理。平臺機構(gòu)示意如圖1所示。
2.2 食堂服務(wù)系統(tǒng)管理
2.2.1 前臺分類模塊
前臺分類模塊功能是將所有菜品按分類展示,目的是讓用戶按照分類名快速定位到自己所需要的菜品。由商家管理人員添加所有菜品的信息,并將菜品分類,如按照早餐、晚餐、湘菜、粵菜等分類,且對每道菜品添加詳細信息,其中包括菜品名稱、實物圖片、菜品單價等。
前臺主要部分代碼如下:
這部分代碼主要顯示菜單主頁信息,各種菜品的分類,利用HTML5和JavaScript相結(jié)合,網(wǎng)頁前端呈現(xiàn),分類管理。
2.2.2 下單模塊
用戶選中菜品后,在訂單模塊的購物車中便會出現(xiàn)所選菜品的相關(guān)信息,并且學(xué)生還可填寫備注,例如,加辣、少鹽、原味等。生成訂單后,學(xué)生可以在訂單頁面查看自己訂單的詳細信息,包括下單時間、訂單號、金額、狀態(tài)、取餐時間等。并且在商家沒有接單前,還可以在該頁面對訂單進行取消。并可以支付相應(yīng)的費用要求商家進行配送,解決排隊難題。
2.2.3 訂單管理模塊
商家可以在后臺看到用戶的最新訂單信息。比如已確定過但還未完成的訂單、所有已完成的訂單以及用戶或后臺取消的訂單詳情,學(xué)生可以通過平臺聯(lián)系客服功能,進行線上溝通,修改相關(guān)訂餐信息包括重新選菜、預(yù)留時間、配送時間、配送地點或者取消打包等,修改時間限于訂餐后3 min。
2.2.4 意見管理模塊
學(xué)生取餐后或者吃完飯后,可以通過平臺對飯菜進行評價,比如:佐料量的多少,食物的多少,菜的烹飪熟度,菜品的味道等。后臺管理人員統(tǒng)一收取每一天顧客的意見,分類進行汲取并改良,盡量服務(wù)滿足于各個顧客的需求。
2.2.5 提問及回復(fù)模塊
本平臺設(shè)置有線上交流模塊,顧客可以通過平臺向商家咨詢問題,平臺上有專門的工作人員對顧客的提問進行解答,對于超出管理人員業(yè)務(wù)范圍的問題,其可以回避,后太管理人員會用最大程度讓學(xué)生了解商家的具體菜品、口味等是否符合自己,根據(jù)答疑,用戶可自行選擇。消息回復(fù)模式如圖2所示。
2.2.6 信息管理模塊
食堂服務(wù)管理平臺將會記錄所有用戶的信息,包括用戶名、電話號碼、所訂菜品、價錢、商家的注冊信息等,針對這些個人信息以及商家信息,平臺將會有專門的技術(shù)人員進行信息維護與信息保護,若被攻擊,平臺也會啟動備份功能,最大力度保護用戶及商家信息。商家也可以對店里所有的菜品、飲料等信息進行修改、增加、刪除等操作。系統(tǒng)將自動進行數(shù)據(jù)信息采集,統(tǒng)計每一天的就餐人數(shù)和每一道菜品的出售情況,存入MySQL數(shù)據(jù)庫進行數(shù)據(jù)分析,哪一道菜品出售最火爆,哪一道菜品出售情況不好,都會在平臺上進行顯示,商家可根據(jù)顯示信息對每天的菜品進行管理。
信息管理主要代碼如下:
<%
List
if(list != null){
int i=0;
for(TypeInfoBean typeInfo:list){
i++;
%>
<%}} %>
MySQL數(shù)據(jù)庫主要連接代碼如下:
privatestatic String Driver_Name=”com.mysql.jdbc.Driver”;
privatestatic String DB_Host=”jdbc:mysql:
//localhost:3307/webdb?characterEncoding=utf8”;
privatestatic String DB_User=”root”;
privatestatic String DB_Pwd=”123456”;
/**
* 連接數(shù)據(jù)庫
* @return
*/
publicstatic Connection getConnection() {
Connection conn=null;
try {
Class.forName(Driver_Name);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
conn=DriverManager.getConnection(DB_Host, DB_User,
DB_Pwd);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
returnconn;
利用信息服務(wù)模塊,在前端進行商家入住信息的入庫,學(xué)生用戶信息注冊入庫,以及商品的信息管理,并儲存在MySQL數(shù)據(jù)庫中,進行大量數(shù)據(jù)的儲存和管理;不符合要求的數(shù)據(jù)可以通過管理人員后臺修改或刪除。
2.2.7 剩菜剩飯管理模塊
對于就在食堂就餐的學(xué)生,每次使用平臺都會收到平臺的溫馨提示:“用完餐后,將餐具放回收羹處”。方便管理人員進行餐具的清理。沒有按照要求進行處理的客戶,平臺上的信譽積分將會降低,后期將承擔(dān)相應(yīng)的責(zé)任,同時食堂內(nèi)也會貼出相應(yīng)的標(biāo)語提示。食堂內(nèi)的剩飯剩菜將會全部集中到一處,管理人員會在平臺上進行社交信息發(fā)布,向外界尋找專門收取剩飯菜的人員到校園食堂收羹。收羹處理3天1次,有需要的人員將會從平臺上查看到相應(yīng)的信息。由此,食堂的就餐環(huán)境和就餐秩序會得到極大改善。
系統(tǒng)功能示意圖如圖3所示。
3 關(guān)鍵技術(shù)介紹
3.1 前端框架設(shè)計
本平臺前端采用JavaScript前端開發(fā)技術(shù)以網(wǎng)頁的形式向用戶展現(xiàn)各個服務(wù)板塊。系統(tǒng)采用HTML5進行編寫。HTML5是互聯(lián)網(wǎng)的下一代標(biāo)準(zhǔn),是構(gòu)建以及呈現(xiàn)互聯(lián)網(wǎng)內(nèi)容的一種語言方式,被認為是互聯(lián)網(wǎng)的核心技術(shù)之一,可以設(shè)計HTML5中各標(biāo)志的顯示屬性,也可以采用CSS,即層疊樣式表,使網(wǎng)頁頁面更加美觀。JavaScript是一種基于對象的客戶端腳本語言,常用于給網(wǎng)頁添加動態(tài)功能,以響應(yīng)用戶的各種操作。
3.2 服務(wù)器端
3.2.1 數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫用來存儲用戶信息、菜品詳細信息、消費信息等,本系統(tǒng)數(shù)據(jù)庫搭建采用MySQL。MySQL是一種關(guān)聯(lián)型數(shù)據(jù)庫管理系統(tǒng),在此主要用于存儲通過編寫MapReduce程序已經(jīng)處理好的管理員信息、用戶信息、菜品詳細信息、消費信息等。這個數(shù)據(jù)庫屬于外部數(shù)據(jù)倉庫,主要是為了提供這類完整信息傳輸?shù)骄W(wǎng)頁前端,進行信息的實時更新。內(nèi)部數(shù)據(jù)庫主要是將所有未處理的大量數(shù)據(jù)放在一個Hadoop大倉庫HBase中,后期通過編寫的程序上傳至Hadoop集群中,HBase數(shù)據(jù)庫更加方便Hadoop集群處理數(shù)據(jù)時提取數(shù)據(jù),提高數(shù)據(jù)運算速度與靈活性。其中內(nèi)外兩個數(shù)據(jù)庫具有關(guān)聯(lián)性,HBase倉庫將處理好的數(shù)據(jù)傳輸至電腦主機的MySQL數(shù)據(jù)庫中進行使用。
3.2.2 信息收集和處理
每天食堂訂餐產(chǎn)生的信息數(shù)據(jù)已有數(shù)萬條,用傳統(tǒng)人工的方法來處理這些數(shù)據(jù)是很不科學(xué)的。而大數(shù)據(jù)時代的到來,很好解決了這個問題。大數(shù)據(jù)相比傳統(tǒng)的數(shù)據(jù),具有數(shù)據(jù)量大、高效、多樣等特點,其核心在于對海量數(shù)據(jù)進行存儲和分析。
本平臺采用Hadoop信息處理技術(shù),主要用于海量數(shù)據(jù)(大于1 TB)高效的存儲、管理和分析。HDFS的高容錯性、高伸縮性等優(yōu)點讓用戶可以在價格低廉的硬件上部署Hadoop,形成分布式系統(tǒng),是選擇處理大數(shù)據(jù)集工具的不二選擇。MapReduce讓用戶可以在不了解分布式底層細節(jié)的情況下開發(fā)分布式程序,并可以充分利用集群的威力高速運算和存儲。這結(jié)構(gòu)實現(xiàn)了計算和存儲的高度耦合,十分有利于面向數(shù)據(jù)的系統(tǒng)架構(gòu),因此已成為大數(shù)據(jù)技術(shù)領(lǐng)域的事實標(biāo)準(zhǔn)。
Hadoop收集每個商家的就餐人數(shù)和每一道菜品的出售情況,并用Web日志寫入HDFS;之后利用Spark,Hive,MapReduce對數(shù)據(jù)進行清洗后再進行相應(yīng)的數(shù)據(jù)分析和統(tǒng)計,得出的結(jié)果存放在MySQL數(shù)據(jù)庫中再進行數(shù)據(jù)可視化。通過使用Hadoop算法中的Mahout模塊針對數(shù)據(jù)進行分析和匯總。這里主要應(yīng)用到的算法有用于關(guān)聯(lián)規(guī)則學(xué)習(xí)的Apriori Algorithm先驗算法,用于聚類的K-means聚類算法、用于分類的Na?veBayes算法等等。MapReduce計算框架如圖4所示。
核心公式:
式中:P(Y)為先驗概率(prior);P(X|Y)為樣本為Y的前提下,X的條件概率是(likelihood);P(X)是證據(jù)因子(evidence);P(X|Y)是后驗概率(posteiror)。
通過由上面多種算法構(gòu)成大數(shù)據(jù)分析機制,對每條數(shù)據(jù)進行高效處理,在大量數(shù)據(jù)的支撐下,分析出相互之間的關(guān)聯(lián)性,得出合適的統(tǒng)計結(jié)果,從而得知用戶最喜歡的菜品、用戶訂菜的高峰期、哪些菜品佐料需添加多少等等,通過數(shù)據(jù)的分析結(jié)果掌握用戶的日常飲食習(xí)慣。商家再通過數(shù)據(jù)處理分析的結(jié)果針對所需的原材料進行采購,提高效率,減少賣不完浪費的情況。其次,平臺收集每一名用戶的意見和評價評分,通過Hadoop進行分析總結(jié)之后反饋給商家,商家再根據(jù)用戶的意見和評價對商品進行改良,做出符合用戶口味的菜品。系統(tǒng)結(jié)構(gòu)框架如圖5所示。
4 結(jié) 語
食堂服務(wù)管理系統(tǒng)也是典型的管理信息系統(tǒng)(MIS),通過數(shù)據(jù)庫后臺的建立和維護,大數(shù)據(jù)分析以及前端應(yīng)用程序的開發(fā)管理等,應(yīng)用MySQL數(shù)據(jù)庫管理系統(tǒng)、MySQL語言原理、JSP數(shù)據(jù)庫技術(shù)、Hadoop集群數(shù)據(jù)處理、采用成熟的瀏覽器、服務(wù)器端結(jié)構(gòu),根據(jù)數(shù)據(jù)的分析和討論,實現(xiàn)從以往的復(fù)雜、低效的食堂服務(wù)過渡到高效式食堂服務(wù)。本系統(tǒng)操作簡單直觀、師生訂餐方便、食堂節(jié)約人力與物力,并方便管理和掌握客戶的喜好,從而為用戶提供更好的服務(wù),保證在校師生能夠更好地享受到食堂的服務(wù)。
參考文獻
[1]陽朝暉,梁捷芳.大數(shù)據(jù)下“互聯(lián)網(wǎng)+”C2C電子商務(wù)稅收系統(tǒng)設(shè)計[J].信息與電腦(理論版),2019(1):90-92.
[2]高峰.基于大數(shù)據(jù)分析的醫(yī)療檔案信息交互共享平臺構(gòu)建[J].中國數(shù)字醫(yī)學(xué),2019,14(2):46-48.
[3]王翔.基于大數(shù)據(jù)分析云計算技術(shù)的航運電商平臺[J].數(shù)字通信世界,2019(1):62-63.
[4]肖艷萍,郝志明.基于大數(shù)據(jù)校園食堂食品安全數(shù)據(jù)云服務(wù)試用平臺的建設(shè)研究[J].電聲技術(shù),2018,42(4):56-58.
[5]李淑娟,周偉強,宓詠.高校智慧點餐系統(tǒng)的探索與實踐[J].華中師范大學(xué)學(xué)報(自然科學(xué)版),2017(z1):59-62.
[6]陳久勝.淺析特小型食堂之管理[J].商訊,2020(21):140-141.
[7]丁文.高校食堂餐飲配送服務(wù)的典型模式與實踐經(jīng)驗[J].高校后勤研究,2020(5):27-29.
[8]何欣桐.新形勢下高校食堂管理工作中存在的問題及對策[J].中國管理信息化,2020,23(9):220-221.
[9]黃住保.基于移動IVR平臺的個性化定制菜單系統(tǒng)的設(shè)計與實現(xiàn)[D].武漢:武漢輕工大學(xué),2017.
[10]柳攀.基于Hadoop的物流系統(tǒng)的設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2017.