Android云计算之移动点餐系统分析与设计
移动互联网时代来临,一个崭新的时代开始了!
所谓移动互联网就是将移动通信和互联网整合在一起,是移动设备(包括手机和上网本)可以随时随地访问互联网资源和应用。
云是由许多水分子组成的,几乎有几亿个。云没有中央控制,基本上可以随风吹向各处。从这个角度来说,Internet 中无数个具有各种用途的客户机和服务器以及驱动其发展的控制实体就像是云。将这一概念与移动设备带给我们的无线数据革命结合后,我们似乎就处在一种无形的"云"计算力量中了。
智能手机是移动互联网时代一个标志性的客户端工具,具有强大的移动"云"计算和储存能力,可以通过移动通信网络来实现无线网络接入,从而实现各种各样的富有创造力和想象力"云"应用。
"云"计算将可移植设备与强大的服务器互为补充,它需要一个能够让服务器架构师和程序员最大程度利用小型客户机机器的操作系统。Android 就是这样一种操作系统。
传统的餐饮行业,点餐过程都是有餐厅服务员人工完成的。通常过程是这样的,客人进入餐厅后,选好座位开始点餐,服务员等待客人点餐完成,将客人的点餐内容送到厨房,有厨师下厨做菜。这一过程对一个小的餐馆来说没有问题,但如果餐馆比较大、客人比较多或者客人要求某位不在餐厅现场的服务员或老板服务,客人的等待时间就会比较长。为了解决这个问题,出现了无线点餐系统,该系统有无线终端(一般是一个PDA)、无线路由器和后台服务器组成。
但它的弊端很明显,要么PDA 价格高、只能做点餐用、增加系统成本、造成资源浪费等,要么基于传统开发手段开发的B/S 系统架构的点餐系统,但往往在实际应用中速度不尽人意。
1 系统设计
1.1 系统物理架构
该系统主要包括后台数据库服务器、WEB 服务器、无线网络、Android 前端等部分。客户端Android 系统智能手机具有前端处理与计算能力,而且通过无线网络访问WEB 服务器,如果需要数据访问,则访问后台数据库。
客户端采用Android 操作系统(1.5 版本以上)。
服务器端采用Tomcat WEB 服务器(5.5 版本以上)(也可以是其他WEB 服务器)、MySQL 数据库。如图1.
图1 Android 云计算之移动点餐系统物理架构
1.2 系统技术选型
Android 客户端应用使用Java 技术,网络通信使用Apache HTTP协议客户端,中间WEB服务器采用TomcatWEB 服务器技术,采用Servlet 技术响应客户请求。
后台数据库采用JDBC 访问远程MySQL 数据库,Android 客户端的一部分数据同时存储在Android 本地的SQLite 数据库和后台MySQL 数据库中,实现Android 客户端和后台数据库的数据同步技术。如图2 所示。
图2 Android 云计算之移动点餐系统技术选型。
1.3 系统数据库设计
后台Mysql 数据库名称:wireless_db,共计包含以下6 个数据表。
数据表:menutbl(菜品数据表);主键:id(菜品编号);外键:typeID(菜品类型编号)。
数据表:menutypetbl(菜品类型数据表),主键:
id(菜品类型编号)。
数据表:ordertbl(订单数据表),主键:id(订单编号)。
数据表:orderdetailtbl(订单详细信息表);主键:
id(订单菜品编号);外键:orderId(订单编号)。
数据表:tabletbl(餐桌数据表),主键:id(餐桌编号)。
数据表:usertbl(系统用户数据表),主键:id(系统用户编号)。
数据模型设计如图3:
图3 Android 云计算之移动点餐系统数据模型。
2 系统实现
"Android 云计算之移动点餐系统"功能模块实现每个功能模块实现说明:
①系统的登录功能:系统用户输入用户名和密码,实现登录,进入系统主菜单。登录过程是通过无线网络,在后台数据库中通过用户名和密码进行查询。注册用户方可使用该系统。(图4)。
图4 系统功能实现框图。
②系统主菜单:包括点菜、并台、转台、查台、更新、设置、注销、结算等以图形方式展现的系统功能菜单。
③点餐功能:操作员输入客人的点餐信息,通过无线网络及时的将点餐信息传送到后台服务器,进而在厨房终端显示,利于厨师尽快下厨做菜。该模块包括了开桌、点菜、下单三个功能。(图5)。
④结算功能:操作员根据订单编号查询点餐订单信息和订单信息详细列表,顾客确认后单击结算按钮进行结算。
⑤查台功能:当有顾客进入餐厅时,需要服务员查询餐桌状态(有人或空位),来安排顾客就餐。该过程应是查询数据库中的餐桌数据得到当前餐桌状态列表,通过可视化的界面进行显示。
⑥更新(数据同步)功能:为了提高程序的运行效率,将服务器中菜谱表和餐桌表的数据保存到Android 客户端SQLite 数据库中。因此,当服务器中的数据改变时需要及时将服务器中的数据动态的更新到客户端,更新功能就是为此而设计的[3].
⑦转台功能:顾客下单后,要求更换座位,这时需要更改已经提交的数据。更改的过程是根据订单号找到该订单对应的桌号,将该桌号更改为更换后的桌号。
⑧并台功能:将已经下单的两组顾客合并到一张桌子的过程,该过程需要更改已经提交到数据库中的数据。更新内容包括人数的合并、订单的更新、订单详细的更新和桌位状态的更新。
⑨注销功能:退出"移动云计算之Android 餐饮服务系统".
下面列出更新(数据同步)功能实现的过程代码,其他功能代码从略:
创建一个名为UpdateActivity 的Activity,该类继承ListActivity,通过ListView 展示界面。在该类中定义一个updateMenu()方法用于更新手机前台界面信息,该方法调用服务器Servlet 获得XML 格式的输入流,通过JAVA DOM 解析该XML 获得服务器数据,将数据保存到本地SQLite 数据库中。
服务端创建Servlet、拼成XML 格式数据输出、响应客户端请求等代码从略。
系统运行部分界面如图5、图6.
图5 系统登录实现 .
图6 点餐功能实现。
- 谈了这么久的“智慧城市”,到底应该是啥样(01-17)
- 从车型垂直换代看原车CAN总线的发展特点(12-20)
- 智能手机 移动互联网 手机操作系统(05-30)
- Linux和开源社区为云计算领域做出的贡献(01-17)
- 基于分布式处理技术的物联网数据库设计(05-21)
- 开源代码项目在云计算中的应用(06-12)