Android云計算之移動(dòng)點(diǎn)餐系統分析與設計
移動(dòng)互聯(lián)網(wǎng)時(shí)代來(lái)臨,一個(gè)嶄新的時(shí)代開(kāi)始了!
所謂移動(dòng)互聯(lián)網(wǎng)就是將移動(dòng)通信和互聯(lián)網(wǎng)整合在一起,是移動(dòng)設備(包括手機和上網(wǎng)本)可以隨時(shí)隨地訪(fǎng)問(wèn)互聯(lián)網(wǎng)資源和應用。
云是由許多水分子組成的,幾乎有幾億個(gè)。云沒(méi)有中央控制,基本上可以隨風(fēng)吹向各處。從這個(gè)角度來(lái)說(shuō),Internet 中無(wú)數個(gè)具有各種用途的客戶(hù)機和服務(wù)器以及驅動(dòng)其發(fā)展的控制實(shí)體就像是云。將這一概念與移動(dòng)設備帶給我們的無(wú)線(xiàn)數據革命結合后,我們似乎就處在一種無(wú)形的云計算力量中了。
智能手機是移動(dòng)互聯(lián)網(wǎng)時(shí)代一個(gè)標志性的客戶(hù)端工具,具有強大的移動(dòng)云計算和儲存能力,可以通過(guò)移動(dòng)通信網(wǎng)絡(luò )來(lái)實(shí)現無(wú)線(xiàn)網(wǎng)絡(luò )接入,從而實(shí)現各種各樣的富有創(chuàng )造力和想象力云應用。
云計算將可移植設備與強大的服務(wù)器互為補充,它需要一個(gè)能夠讓服務(wù)器架構師和程序員最大程度利用小型客戶(hù)機機器的操作系統。Android 就是這樣一種操作系統。
傳統的餐飲行業(yè),點(diǎn)餐過(guò)程都是有餐廳服務(wù)員人工完成的。通常過(guò)程是這樣的,客人進(jìn)入餐廳后,選好座位開(kāi)始點(diǎn)餐,服務(wù)員等待客人點(diǎn)餐完成,將客人的點(diǎn)餐內容送到廚房,有廚師下廚做菜。這一過(guò)程對一個(gè)小的餐館來(lái)說(shuō)沒(méi)有問(wèn)題,但如果餐館比較大、客人比較多或者客人要求某位不在餐廳現場(chǎng)的服務(wù)員或老板服務(wù),客人的等待時(shí)間就會(huì )比較長(cháng)。為了解決這個(gè)問(wèn)題,出現了無(wú)線(xiàn)點(diǎn)餐系統,該系統有無(wú)線(xiàn)終端(一般是一個(gè)PDA)、無(wú)線(xiàn)路由器和后臺服務(wù)器組成。
但它的弊端很明顯,要么PDA 價(jià)格高、只能做點(diǎn)餐用、增加系統成本、造成資源浪費等,要么基于傳統開(kāi)發(fā)手段開(kāi)發(fā)的B/S 系統架構的點(diǎn)餐系統,但往往在實(shí)際應用中速度不盡人意。
1 系統設計
1.1 系統物理架構
該系統主要包括后臺數據庫服務(wù)器、WEB 服務(wù)器、無(wú)線(xiàn)網(wǎng)絡(luò )、Android 前端等部分??蛻?hù)端Android 系統智能手機具有前端處理與計算能力,而且通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò )訪(fǎng)問(wèn)WEB 服務(wù)器,如果需要數據訪(fǎng)問(wèn),則訪(fǎng)問(wèn)后臺數據庫。
客戶(hù)端采用Android 操作系統(1.5 版本以上)。
服務(wù)器端采用Tomcat WEB 服務(wù)器(5.5 版本以上)(也可以是其他WEB 服務(wù)器)、MySQL 數據庫。如圖1.
圖1 Android 云計算之移動(dòng)點(diǎn)餐系統物理架構
1.2 系統技術(shù)選型
Android 客戶(hù)端應用使用Java 技術(shù),網(wǎng)絡(luò )通信使用Apache HTTP協(xié)議客戶(hù)端,中間WEB服務(wù)器采用TomcatWEB 服務(wù)器技術(shù),采用Servlet 技術(shù)響應客戶(hù)請求。
后臺數據庫采用JDBC 訪(fǎng)問(wèn)遠程MySQL 數據庫,Android 客戶(hù)端的一部分數據同時(shí)存儲在A(yíng)ndroid 本地的SQLite 數據庫和后臺MySQL 數據庫中,實(shí)現Android 客戶(hù)端和后臺數據庫的數據同步技術(shù)。如圖2 所示。
圖2 Android 云計算之移動(dòng)點(diǎn)餐系統技術(shù)選型。
1.3 系統數據庫設計
后臺Mysql 數據庫名稱(chēng):wireless_db,共計包含以下6 個(gè)數據表。
數據表:menutbl(菜品數據表);主鍵:id(菜品編號);外鍵:typeID(菜品類(lèi)型編號)。
數據表:menutypetbl(菜品類(lèi)型數據表),主鍵:
id(菜品類(lèi)型編號)。
數據表:ordertbl(訂單數據表),主鍵:id(訂單編號)。
數據表:orderdetailtbl(訂單詳細信息表);主鍵:
id(訂單菜品編號);外鍵:orderId(訂單編號)。
數據表:tabletbl(餐桌數據表),主鍵:id(餐桌編號)。
數據表:usertbl(系統用戶(hù)數據表),主鍵:id(系統用戶(hù)編號)。
數據模型設計如圖3:
圖3 Android 云計算之移動(dòng)點(diǎn)餐系統數據模型。
2 系統實(shí)現
Android 云計算之移動(dòng)點(diǎn)餐系統功能模塊實(shí)現每個(gè)功能模塊實(shí)現說(shuō)明:
①系統的登錄功能:系統用戶(hù)輸入用戶(hù)名和密碼,實(shí)現登錄,進(jìn)入系統主菜單。登錄過(guò)程是通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò ),在后臺數據庫中通過(guò)用戶(hù)名和密碼進(jìn)行查詢(xún)。注冊用戶(hù)方可使用該系統。(圖4)。
圖4 系統功能實(shí)現框圖。
②系統主菜單:包括點(diǎn)菜、并臺、轉臺、查臺、更新、設置、注銷(xiāo)、結算等以圖形方式展現的系統功能菜單。
③點(diǎn)餐功能:操作員輸入客人的點(diǎn)餐信息,通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò )及時(shí)的將點(diǎn)餐信息傳送到后臺服務(wù)器,進(jìn)而在廚房終端顯示,利于廚師盡快下廚做菜。該模塊包括了開(kāi)桌、點(diǎn)菜、下單三個(gè)功能。(圖5)。
④結算功能:操作員根據訂單編號查詢(xún)點(diǎn)餐訂單信息和訂單信息詳細列表,顧客確認后單擊結算按鈕進(jìn)行結算。
⑤查臺功能:當有顧客進(jìn)入餐廳時(shí),需要服務(wù)員查詢(xún)餐桌狀態(tài)(有人或空位),來(lái)安排顧客就餐。該過(guò)程應是查詢(xún)數據庫中的餐桌數據得到當前餐桌狀態(tài)列表,通過(guò)可視化的界面進(jìn)行顯示。
⑥更新(數據同步)功能:為了提高程序的運行效率,將服務(wù)器中菜譜表和餐桌表的數據保存到Android 客戶(hù)端SQLite 數據庫中。因此,當服務(wù)器中的數據改變時(shí)需要及時(shí)將服務(wù)器中的數據動(dòng)態(tài)的更新到客戶(hù)端,更新功能就是為此而設計的[3].
⑦轉臺功能:顧客下單后,要求更換座位,這時(shí)需要更改已經(jīng)提交的數據。更改的過(guò)程是根據訂單號找到該訂單對應的桌號,將該桌號更改為更換后的桌號。
⑧并臺功能:將已經(jīng)下單的兩組顧客合并到一張桌子的過(guò)程,該過(guò)程需要更改已經(jīng)提交到數據庫中的數據。更新內容包括人數的合并、訂單的更新、訂單詳細的更新和桌位狀態(tài)的更新。
⑨注銷(xiāo)功能:退出移動(dòng)云計算之Android 餐飲服務(wù)系統.
下面列出更新(數據同步)功能實(shí)現的過(guò)程代碼,其他功能代碼從略:
創(chuàng )建一個(gè)名為UpdateActivity 的Activity,該類(lèi)繼承ListActivity,通過(guò)ListView 展示界面。在該類(lèi)中定義一個(gè)updateMenu()方法用于更新手機前臺界面信息,該方法調用服務(wù)器Servlet 獲得XML 格式的輸入流,通過(guò)JAVA DOM 解析該XML 獲得服務(wù)器數據,將數據保存到本地SQLite 數據庫中。
服務(wù)端創(chuàng )建Servlet、拼成XML 格式數據輸出、響應客戶(hù)端請求等代碼從略。
系統運行部分界面如圖5、圖6.
圖5 系統登錄實(shí)現 .
圖6 點(diǎn)餐功能實(shí)現。
3 結語(yǔ)
Android 云計算之移動(dòng)點(diǎn)餐系統后臺數據庫采用JDBC 訪(fǎng)問(wèn)遠程MySQL 數據庫,Android 客戶(hù)端的一部分數據同時(shí)存儲在A(yíng)ndroid 本地的SQLite 數據庫和后臺MySQL 數據庫中,實(shí)現Android 客戶(hù)端和后臺數據庫的數據同步技術(shù)是本系統在實(shí)現快速移動(dòng)云計算中的創(chuàng )新之處。
具體實(shí)現中,為了提高程序的運行效率,將后臺MySQL 服務(wù)器中菜品數據表和餐桌數據表的數據保存到Android 客戶(hù)端SQLite 數據庫中。因此,當后臺MySQL 服務(wù)器中的數據改變時(shí)需要及時(shí)將服務(wù)器中的數據動(dòng)態(tài)的更新到Android 客戶(hù)端,更新功能就是為此而設計的。
因此,Android 云計算之移動(dòng)點(diǎn)餐系統完全具有了傳統的C/S 和B/S 的優(yōu)異功能,同時(shí)又結合了最先進(jìn)的移動(dòng)云計算設計理念。
為了滿(mǎn)足具有一定規模、需要提高餐廳點(diǎn)餐效率、體現出現代化的氣氛、改進(jìn)客人就餐環(huán)境,并借此提高經(jīng)濟效益的餐廳和酒店的實(shí)際需求,移動(dòng)云計算之Android 餐飲服務(wù)系統實(shí)現一套Android 客戶(hù)端軟件和完善的后臺服務(wù)功能來(lái)完成餐飲服務(wù)功能。系統不會(huì )占用太大的預算,并能盡量沿用原有的成熟技術(shù),與原有系統進(jìn)行良好的整合,那么該系統將具有很好的開(kāi)發(fā)與應用價(jià)值。
c++相關(guān)文章:c++教程
評論