基于云柜框架的智能共享冰箱平台
2020-12-07訾帅帅俞家耀严昌钰许红梅王石
訾帅帅 俞家耀 严昌钰 许红梅 王石
摘 要:为解决在校大学生对易变质、保存条件苛刻物品的存储问题,本项目基于云柜框架的构想,采用主流的SSM(Spring SpringMVC MyBatis)框架结合MySQL(My Structured Query Language)数据库和阿里云云服务器,设计了一个共享智能冰箱平台,本平台能够精确地为用户匹配闲置资源并动态分配存储空间,从而满足用户的不同需求,有效地减少资源的浪费并实现闲置资源的合理利用。
关键词:共享;匹配闲置资源;SSM;阿里云云服务器
中图分类号:TP311 文献标识码: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)
近年来,食品的种类层出不穷,食物、药物存储条件愈发苛刻。冰箱应时而生,作为当下食物保鲜的主要方式,也成为人们日常生活的不可或缺的一部分。而在大学校园中,部分学校出于安全考虑,对宿舍用电存在一定限制,大学生在宿舍大规模使用冰箱难以实现。
随着Uber[1]、Airbnb[2]等一系列实物共享平台的出现,共享经济[3]统一调配社会资源使其得到更加高效的利用,成为一种必然趋势。基于这一理念,搭建一个以云柜为框架的共享智能冰箱平台。该平台以共享冰箱作为客户终端,以移动设备为媒介访问后台服务器获取相关服务。共享冰箱由多个具备冷藏功能的独立格子组成,将其投放在学生宿舍楼下或楼层等靠近生活区,用户通过扫码的方式登录后台服务器选择租用冰箱。共享冰箱可以满足用户不同时长不同温度的存取需求,这样既方便了大学生的校内生活,也减少了资源的浪费。
2 总体设计(Overall design)
2.1 需求分析
为进一步确定共享冰箱平台的实际需求,针对本地大学生以网上问卷调查的形式展开了关于共享冰箱的数据采集。此次调查历时一周,共收集了76份数据,其中有效数据74份,数据的克隆巴赫系数(Cronbach's alpha)为0.9228,可作为有效数据参考;主要统计了用户需求、使用频率、使用时长及存储物品类型等方面的数据,如图1所示。
根据调研数据分析,了解到大部分大学生未曾听说过共享冰箱但又存在对于药物食品等物品冷藏的实际需求。共享冰箱应运而生,面向大学生群体提供定时定温的临时存储功能。
2.2 框架设计
2.2.1 整体框架
云柜是一种联网的智能储物系统,利用云计算、互联网、物联网等信息技术,将传统快递投递模式转为信息系统管理。将快递公司、收件人、管理方等相关各方无缝对接,实现集中、指定地点存取等功能,快递信息得到保护,存取快递更加安全、便捷。本项目正是基于云柜框架搭建的实现过程,进行分析与创新,研发制造新型智能共享冰箱平台。
在平台的开发过程中,主要使用Tomcat[4]实现后台服务器的开发与调试,Mybatis[5]作为后台数据库存储数据。本平台主要采用B/S架构模式,不仅减轻了系统维护与升级的成本和工作量,由于浏览器的交互特性使得用户行为的可继承性非常强,用户通过微信小程序[6]访问服务器并获取服务器的交互式服务,使用起来会更加简便。平台系统结构如图2所示。
2.2.2 云服务器
由集群服务器虚拟出的阿里云服务器稳定可靠,可满足不同需求,性价比较高。使用云服务器可提供平台程序运行所需要的环境,极大程度地减少因网络及硬件维护所带来的问题,并且可存储平台的少量数据,弹性较大,增加或减少资源的速度较快,可确保多用户即时操作。
2.2.3 后台服务器
使用应用广泛且简单易理解的Java语言和高穩定性的Linux系统[8]作为后台服务的开发与调试环境,基于SSM[ ]框架选取性能稳定、速度快、扩展性好的Tomcat服务器作为后台服务器的开发工具。最后通过相关接口连接后台控制系统实现对冰柜的控制、管理、运营,实现用户与服务器的交互式服务。
2.2.4 数据库设计
采用安全性高易维护的Mybatis数据库作为数据的本地持久化工具,用来保存用户信息、订单内容及柜体信息等数据,即用户信息、柜体信息、当前订单及历史订单数据库四个数据库实体,各实体数据库关系如图3所示。
2.3 系统设计
基于以上的框架,平台的主要运营流程如下:用户通过微信小程序登录服务器;查询,选择查询空闲冰箱状态、查询当前用户订单信息、查询个人信息(信誉分、剩余押金等个人信息);租赁,选择冰柜位置、时长、温度,确认订单信息,付费(一旦提交订单,该冰箱存在开启或关闭状态,用户将获取冰箱的状态操作权,可随时进行操作,当用户选择功能后,门锁模块根据命令对冰箱门进行操作,冰箱待选状态也会发生改变);订单完成时,小程序会通知用户取件或续租,若用户未选择取件或续租,平台将会按照原有付费标准扣除用户押金继续存储,若押金耗尽仍未取回,冰柜不再提供冷藏并扣除用户一定的信誉积分;用户也可以选择提前结束订单,平台会按照未使用时间退还租金,如图4所示。
3 模块实现(Module implementation)
通过拥有大量用户且提供便捷的支付接口的微信平台为依托创建微信小程序作为流量入口,为用户提供便利、安全的访问服务器通道,同时也便于交易订单的处理和前期平台的宣传推广。
3.1 用户登录模块的实现
通过微信小程序内置的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(用户唯一标识),并将该结果返回到后台,后台验证该用户是否存在,若不存在则存储该Openid并为其分配一个后台标识Userid,若已存在则读取该用户的信息。
3.2 冰箱租借模块的实现
当用户进入租借界面时,小程序首先会请求对用户的定位,然后显示用户周围最近冰柜租借点。当用户选定一台冰箱时,小程序会向后台请求该冰柜空余的冰箱Id集合,并返回到用户的选择菜单中。当用户选定冰柜、冰箱编号、使用时长和制冷温度后,会向后台发送该条订单数据,后台会再次验证该冰箱是否已被使用,若验证通过,则将该订单存入待支付订单数据库,待用户完成支付后,将该订单转存入当前订单数据库。
3.3 订单查询模块
当用户进入订单页面时,小程序会通过用户的Userid向后台发起请求,获取该用户的待支付订单、当前订单、超时订单和历史订单等数据。
3.4 用户存取模块
当用户完成租借后,可以在当前订单页面选择正在租用的冰箱进入该冰箱的控制页面,对该冰箱进行开门控制。当用户进行该冰箱的开门请求时,小程序会将该用户的Userid和冰箱编号发送给后台,后台验证通过后即对该冰箱进行开门操作,当用户关闭冰箱时,后台自动将冰箱的状态改为关闭。
3.5 消息通知模块
本模块通过中国网建短信通和其相应的Java api完成。主要完成即将到期的冰箱租借业务对用户进行提醒及超时业务对用户进行通知。
3.6 订单结束模块
(1)當用户在租用时间内主动进行冰箱退租操作时,用户可以选择根据剩余时间退款或者是将剩余时间保留到下一次继续使用,并且平台将该订单会被转存入历史订单数据库。
(2)后台会以秒为单位间隔对当前订单数据库进行查询,若当前时间离订单预计结束时间小于三十分钟时,后台会通过调用消息模块对用户进行提醒,若当前时间大于订单预计结束时间时该订单会被转入超时订单数据库,并对用户进行通知。当用户主动结束订单并付清超时费用时,会将该订单转入历史订单数据库。
4 结论(Conclusion)
本平台主要采用B/S服务架构,基于微信程序,实现用户与阿里云Linux的交互式服务[9]。用户和冰箱的状态信息存储于Mybatis数据库中。微信小程序原生框架可以提供唯一用户标识,前端利用Web服务器连接数据库,从而关联用户与冰箱信息。平台的租费支付主要是通过使用微信支付的API嵌入来完成模块的设计,系统可对冰箱进行控制与管理功能,利用SSM框架接口,实现选择使用时长,调整温度,用户反馈等功能。模块化设计可使后期的维护和扩展更便捷高效。
参考文献(References)
[1] 王超.UBRE是什么[M].北京:中国商业出版社,2015.
[2] 刘歆玥.从Airbnb浅析共享经济以及在中国的适应性研究[J].现代商业,2016,19(08):1.
[3] 罗宾·蔡斯.共享经济:重构未来商业新模式[M].浙江:浙江人民出版社,2015.
[4] 刘增辉.MyBatis从入门到精通[M].北京:电子商业出版社,2017.
[5] 孙卫琴.Tomcat与Java We开发技术详解[M].北京:电子商业出版社,2019.
[6] 熊普江,谢宇华.小程序,巧应用[M].北京:机械工业出版社,2017.
[7] 柳青.Linux应用教程[M].北京:清华大学出版社,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] 邓胜利.基于用户体验的交互式信息服务[M].武汉:武汉大学出版社,2008.