訾帥帥 俞家耀 嚴(yán)昌鈺 許紅梅 王石
摘? 要:為解決在校大學(xué)生對易變質(zhì)、保存條件苛刻物品的存儲問題,本項目基于云柜框架的構(gòu)想,采用主流的SSM(Spring SpringMVC MyBatis)框架結(jié)合MySQL(My Structured Query Language)數(shù)據(jù)庫和阿里云云服務(wù)器,設(shè)計了一個共享智能冰箱平臺,本平臺能夠精確地為用戶匹配閑置資源并動態(tài)分配存儲空間,從而滿足用戶的不同需求,有效地減少資源的浪費(fèi)并實現(xiàn)閑置資源的合理利用。
關(guān)鍵詞:共享;匹配閑置資源;SSM;阿里云云服務(wù)器
中圖分類號:TP311? ? ?文獻(xiàn)標(biāo)識碼:A
Abstract: To solve the problem of storage of perishable and harsh storage conditions for college students, this paper proposes a shared intelligent refrigerator space management platform based on the concept of cloud cabinet framework. Mainstream SSM (Spring SpringMVC MyBatis) framework is combined with MySQL (My Structured Query Language) database and Alibaba Cloud ECS (Elastic Compute Service) to design a shared intelligent refrigerator platform. This platform can accurately match idle resources for users and dynamically allocate storage space, so as to meet different needs of users, to effectively reduce the waste of resources and realize the rational use of idle resources.
Keywords: sharing; matching idle resources; SSM; Alibaba Cloud ECS
1? ?引言(Introduction)
近年來,食品的種類層出不窮,食物、藥物存儲條件愈發(fā)苛刻。冰箱應(yīng)時而生,作為當(dāng)下食物保鮮的主要方式,也成為人們?nèi)粘I畹牟豢苫蛉钡囊徊糠?。而在大學(xué)校園中,部分學(xué)校出于安全考慮,對宿舍用電存在一定限制,大學(xué)生在宿舍大規(guī)模使用冰箱難以實現(xiàn)。
隨著Uber[1]、Airbnb[2]等一系列實物共享平臺的出現(xiàn),共享經(jīng)濟(jì)[3]統(tǒng)一調(diào)配社會資源使其得到更加高效的利用,成為一種必然趨勢?;谶@一理念,搭建一個以云柜為框架的共享智能冰箱平臺。該平臺以共享冰箱作為客戶終端,以移動設(shè)備為媒介訪問后臺服務(wù)器獲取相關(guān)服務(wù)。共享冰箱由多個具備冷藏功能的獨(dú)立格子組成,將其投放在學(xué)生宿舍樓下或樓層等靠近生活區(qū),用戶通過掃碼的方式登錄后臺服務(wù)器選擇租用冰箱。共享冰箱可以滿足用戶不同時長不同溫度的存取需求,這樣既方便了大學(xué)生的校內(nèi)生活,也減少了資源的浪費(fèi)。
2? ?總體設(shè)計(Overall design)
2.1? ?需求分析
為進(jìn)一步確定共享冰箱平臺的實際需求,針對本地大學(xué)生以網(wǎng)上問卷調(diào)查的形式展開了關(guān)于共享冰箱的數(shù)據(jù)采集。此次調(diào)查歷時一周,共收集了76份數(shù)據(jù),其中有效數(shù)據(jù)74份,數(shù)據(jù)的克隆巴赫系數(shù)(Cronbach's alpha)為0.9228,可作為有效數(shù)據(jù)參考;主要統(tǒng)計了用戶需求、使用頻率、使用時長及存儲物品類型等方面的數(shù)據(jù),如圖1所示。
根據(jù)調(diào)研數(shù)據(jù)分析,了解到大部分大學(xué)生未曾聽說過共享冰箱但又存在對于藥物食品等物品冷藏的實際需求。共享冰箱應(yīng)運(yùn)而生,面向大學(xué)生群體提供定時定溫的臨時存儲功能。
2.2? ?框架設(shè)計
2.2.1? ?整體框架
云柜是一種聯(lián)網(wǎng)的智能儲物系統(tǒng),利用云計算、互聯(lián)網(wǎng)、物聯(lián)網(wǎng)等信息技術(shù),將傳統(tǒng)快遞投遞模式轉(zhuǎn)為信息系統(tǒng)管理。將快遞公司、收件人、管理方等相關(guān)各方無縫對接,實現(xiàn)集中、指定地點(diǎn)存取等功能,快遞信息得到保護(hù),存取快遞更加安全、便捷。本項目正是基于云柜框架搭建的實現(xiàn)過程,進(jìn)行分析與創(chuàng)新,研發(fā)制造新型智能共享冰箱平臺。
在平臺的開發(fā)過程中,主要使用Tomcat[4]實現(xiàn)后臺服務(wù)器的開發(fā)與調(diào)試,Mybatis[5]作為后臺數(shù)據(jù)庫存儲數(shù)據(jù)。本平臺主要采用B/S架構(gòu)模式,不僅減輕了系統(tǒng)維護(hù)與升級的成本和工作量,由于瀏覽器的交互特性使得用戶行為的可繼承性非常強(qiáng),用戶通過微信小程序[6]訪問服務(wù)器并獲取服務(wù)器的交互式服務(wù),使用起來會更加簡便。平臺系統(tǒng)結(jié)構(gòu)如圖2所示。
2.2.2? ?云服務(wù)器
由集群服務(wù)器虛擬出的阿里云服務(wù)器穩(wěn)定可靠,可滿足不同需求,性價比較高。使用云服務(wù)器可提供平臺程序運(yùn)行所需要的環(huán)境,極大程度地減少因網(wǎng)絡(luò)及硬件維護(hù)所帶來的問題,并且可存儲平臺的少量數(shù)據(jù),彈性較大,增加或減少資源的速度較快,可確保多用戶即時操作。
2.2.3? ?后臺服務(wù)器
使用應(yīng)用廣泛且簡單易理解的Java語言和高穩(wěn)定性的Linux系統(tǒng)[8]作為后臺服務(wù)的開發(fā)與調(diào)試環(huán)境,基于SSM[ ]框架選取性能穩(wěn)定、速度快、擴(kuò)展性好的Tomcat服務(wù)器作為后臺服務(wù)器的開發(fā)工具。最后通過相關(guān)接口連接后臺控制系統(tǒng)實現(xiàn)對冰柜的控制、管理、運(yùn)營,實現(xiàn)用戶與服務(wù)器的交互式服務(wù)。
2.2.4? ?數(shù)據(jù)庫設(shè)計
采用安全性高易維護(hù)的Mybatis數(shù)據(jù)庫作為數(shù)據(jù)的本地持久化工具,用來保存用戶信息、訂單內(nèi)容及柜體信息等數(shù)據(jù),即用戶信息、柜體信息、當(dāng)前訂單及歷史訂單數(shù)據(jù)庫四個數(shù)據(jù)庫實體,各實體數(shù)據(jù)庫關(guān)系如圖3所示。
2.3? ?系統(tǒng)設(shè)計
基于以上的框架,平臺的主要運(yùn)營流程如下:用戶通過微信小程序登錄服務(wù)器;查詢,選擇查詢空閑冰箱狀態(tài)、查詢當(dāng)前用戶訂單信息、查詢個人信息(信譽(yù)分、剩余押金等個人信息);租賃,選擇冰柜位置、時長、溫度,確認(rèn)訂單信息,付費(fèi)(一旦提交訂單,該冰箱存在開啟或關(guān)閉狀態(tài),用戶將獲取冰箱的狀態(tài)操作權(quán),可隨時進(jìn)行操作,當(dāng)用戶選擇功能后,門鎖模塊根據(jù)命令對冰箱門進(jìn)行操作,冰箱待選狀態(tài)也會發(fā)生改變);訂單完成時,小程序會通知用戶取件或續(xù)租,若用戶未選擇取件或續(xù)租,平臺將會按照原有付費(fèi)標(biāo)準(zhǔn)扣除用戶押金繼續(xù)存儲,若押金耗盡仍未取回,冰柜不再提供冷藏并扣除用戶一定的信譽(yù)積分;用戶也可以選擇提前結(jié)束訂單,平臺會按照未使用時間退還租金,如圖4所示。
3? ?模塊實現(xiàn)(Module implementation)
通過擁有大量用戶且提供便捷的支付接口的微信平臺為依托創(chuàng)建微信小程序作為流量入口,為用戶提供便利、安全的訪問服務(wù)器通道,同時也便于交易訂單的處理和前期平臺的宣傳推廣。
3.1? ?用戶登錄模塊的實現(xiàn)
通過微信小程序內(nèi)置的wx.login()(用戶微信小程序的一種接口)來獲取用戶此次登錄的臨時登錄憑證Code,然后通過該Code和小程序的Appid、Appsecret向https://api.weixin.qq.com/sns/jsCode2session?appid=APPID&secret=SECRET&js_Code=JSCode&grant_type=authorization_Code請求用戶的Openid(用戶唯一標(biāo)識),并將該結(jié)果返回到后臺,后臺驗證該用戶是否存在,若不存在則存儲該Openid并為其分配一個后臺標(biāo)識Userid,若已存在則讀取該用戶的信息。
3.2? ?冰箱租借模塊的實現(xiàn)
當(dāng)用戶進(jìn)入租借界面時,小程序首先會請求對用戶的定位,然后顯示用戶周圍最近冰柜租借點(diǎn)。當(dāng)用戶選定一臺冰箱時,小程序會向后臺請求該冰柜空余的冰箱Id集合,并返回到用戶的選擇菜單中。當(dāng)用戶選定冰柜、冰箱編號、使用時長和制冷溫度后,會向后臺發(fā)送該條訂單數(shù)據(jù),后臺會再次驗證該冰箱是否已被使用,若驗證通過,則將該訂單存入待支付訂單數(shù)據(jù)庫,待用戶完成支付后,將該訂單轉(zhuǎn)存入當(dāng)前訂單數(shù)據(jù)庫。
3.3? ?訂單查詢模塊
當(dāng)用戶進(jìn)入訂單頁面時,小程序會通過用戶的Userid向后臺發(fā)起請求,獲取該用戶的待支付訂單、當(dāng)前訂單、超時訂單和歷史訂單等數(shù)據(jù)。
3.4? ?用戶存取模塊
當(dāng)用戶完成租借后,可以在當(dāng)前訂單頁面選擇正在租用的冰箱進(jìn)入該冰箱的控制頁面,對該冰箱進(jìn)行開門控制。當(dāng)用戶進(jìn)行該冰箱的開門請求時,小程序會將該用戶的Userid和冰箱編號發(fā)送給后臺,后臺驗證通過后即對該冰箱進(jìn)行開門操作,當(dāng)用戶關(guān)閉冰箱時,后臺自動將冰箱的狀態(tài)改為關(guān)閉。
3.5? ?消息通知模塊
本模塊通過中國網(wǎng)建短信通和其相應(yīng)的Java api完成。主要完成即將到期的冰箱租借業(yè)務(wù)對用戶進(jìn)行提醒及超時業(yè)務(wù)對用戶進(jìn)行通知。
3.6? ?訂單結(jié)束模塊
(1)當(dāng)用戶在租用時間內(nèi)主動進(jìn)行冰箱退租操作時,用戶可以選擇根據(jù)剩余時間退款或者是將剩余時間保留到下一次繼續(xù)使用,并且平臺將該訂單會被轉(zhuǎn)存入歷史訂單數(shù)據(jù)庫。
(2)后臺會以秒為單位間隔對當(dāng)前訂單數(shù)據(jù)庫進(jìn)行查詢,若當(dāng)前時間離訂單預(yù)計結(jié)束時間小于三十分鐘時,后臺會通過調(diào)用消息模塊對用戶進(jìn)行提醒,若當(dāng)前時間大于訂單預(yù)計結(jié)束時間時該訂單會被轉(zhuǎn)入超時訂單數(shù)據(jù)庫,并對用戶進(jìn)行通知。當(dāng)用戶主動結(jié)束訂單并付清超時費(fèi)用時,會將該訂單轉(zhuǎn)入歷史訂單數(shù)據(jù)庫。
4? ?結(jié)論(Conclusion)
本平臺主要采用B/S服務(wù)架構(gòu),基于微信程序,實現(xiàn)用戶與阿里云Linux的交互式服務(wù)[9]。用戶和冰箱的狀態(tài)信息存儲于Mybatis數(shù)據(jù)庫中。微信小程序原生框架可以提供唯一用戶標(biāo)識,前端利用Web服務(wù)器連接數(shù)據(jù)庫,從而關(guān)聯(lián)用戶與冰箱信息。平臺的租費(fèi)支付主要是通過使用微信支付的API嵌入來完成模塊的設(shè)計,系統(tǒng)可對冰箱進(jìn)行控制與管理功能,利用SSM框架接口,實現(xiàn)選擇使用時長,調(diào)整溫度,用戶反饋等功能。模塊化設(shè)計可使后期的維護(hù)和擴(kuò)展更便捷高效。
參考文獻(xiàn)(References)
[1] 王超.UBRE是什么[M].北京:中國商業(yè)出版社,2015.
[2] 劉歆玥.從Airbnb淺析共享經(jīng)濟(jì)以及在中國的適應(yīng)性研究[J].現(xiàn)代商業(yè),2016,19(08):1.
[3] 羅賓·蔡斯.共享經(jīng)濟(jì):重構(gòu)未來商業(yè)新模式[M].浙江:浙江人民出版社,2015.
[4] 劉增輝.MyBatis從入門到精通[M].北京:電子商業(yè)出版社,2017.
[5] 孫衛(wèi)琴.Tomcat與Java We開發(fā)技術(shù)詳解[M].北京:電子商業(yè)出版社,2019.
[6] 熊普江,謝宇華.小程序,巧應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2017.
[7] 柳青.Linux應(yīng)用教程[M].北京:清華大學(xué)出版社,2008.
[8] Arief Ginanjar, Mokhamad Hendayun. Spring Framework Reliability Investigation Against Database Bridging Layer Using Java Platform[J]. Procedia Computer Science, 2019,1(101):4-8.
[9] 鄧勝利.基于用戶體驗的交互式信息服務(wù)[M].武漢:武漢大學(xué)出版社,2008.