新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Android云計(jì)算之移動點(diǎn)餐系統(tǒng)分析與設(shè)計(jì)

Android云計(jì)算之移動點(diǎn)餐系統(tǒng)分析與設(shè)計(jì)

作者: 時間:2012-09-01 來源:網(wǎng)絡(luò) 收藏

網(wǎng)時代來臨,一個嶄新的時代開始了!

所謂網(wǎng)就是將移動通信和互聯(lián)網(wǎng)整合在一起,是移動設(shè)備(包括手機(jī)和上網(wǎng)本)可以隨時隨地訪問互聯(lián)網(wǎng)資源和應(yīng)用。

云是由許多水分子組成的,幾乎有幾億個。云沒有中央控制,基本上可以隨風(fēng)吹向各處。從這個角度來說,Internet 中無數(shù)個具有各種用途的客戶機(jī)和服務(wù)器以及驅(qū)動其發(fā)展的控制實(shí)體就像是云。將這一概念與移動設(shè)備帶給我們的無線數(shù)據(jù)革命結(jié)合后,我們似乎就處在一種無形的力量中了。

智能手機(jī)是網(wǎng)時代一個標(biāo)志性的客戶端工具,具有強(qiáng)大的移動和儲存能力,可以通過移動通信網(wǎng)絡(luò)來實(shí)現(xiàn)無線網(wǎng)絡(luò)接入,從而實(shí)現(xiàn)各種各樣的富有創(chuàng)造力和想象力云應(yīng)用。

將可移植設(shè)備與強(qiáng)大的服務(wù)器互為補(bǔ)充,它需要一個能夠讓服務(wù)器架構(gòu)師和程序員最大程度利用小型客戶機(jī)機(jī)器的操作系統(tǒng)。 就是這樣一種操作系統(tǒng)。

傳統(tǒng)的餐飲行業(yè),點(diǎn)餐過程都是有餐廳服務(wù)員人工完成的。通常過程是這樣的,客人進(jìn)入餐廳后,選好座位開始點(diǎn)餐,服務(wù)員等待客人點(diǎn)餐完成,將客人的點(diǎn)餐內(nèi)容送到廚房,有廚師下廚做菜。這一過程對一個小的餐館來說沒有問題,但如果餐館比較大、客人比較多或者客人要求某位不在餐廳現(xiàn)場的服務(wù)員或老板服務(wù),客人的等待時間就會比較長。為了解決這個問題,出現(xiàn)了無線點(diǎn)餐系統(tǒng),該系統(tǒng)有無線終端(一般是一個PDA)、無線路由器和后臺服務(wù)器組成。

但它的弊端很明顯,要么PDA 價格高、只能做點(diǎn)餐用、增加系統(tǒng)成本、造成資源浪費(fèi)等,要么基于傳統(tǒng)開發(fā)手段開發(fā)的B/S 系統(tǒng)架構(gòu)的點(diǎn)餐系統(tǒng),但往往在實(shí)際應(yīng)用中速度不盡人意。

1 系統(tǒng)設(shè)計(jì)


1.1 系統(tǒng)物理架構(gòu)

該系統(tǒng)主要包括后臺數(shù)據(jù)庫服務(wù)器、WEB 服務(wù)器、無線網(wǎng)絡(luò)、 前端等部分??蛻舳?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/Android">Android 系統(tǒng)智能手機(jī)具有前端處理與計(jì)算能力,而且通過無線網(wǎng)絡(luò)訪問WEB 服務(wù)器,如果需要數(shù)據(jù)訪問,則訪問后臺數(shù)據(jù)庫。

客戶端采用Android 操作系統(tǒng)(1.5 版本以上)。

服務(wù)器端采用Tomcat WEB 服務(wù)器(5.5 版本以上)(也可以是其他WEB 服務(wù)器)、MySQL 數(shù)據(jù)庫。如圖1.

圖1 Android 云計(jì)算之移動點(diǎn)餐系統(tǒng)物理架構(gòu)

本文引用地址:http://butianyuan.cn/article/257272.htm

1.2 系統(tǒng)技術(shù)選型

Android 客戶端應(yīng)用使用Java 技術(shù),網(wǎng)絡(luò)通信使用Apache HTTP協(xié)議客戶端,中間WEB服務(wù)器采用TomcatWEB 服務(wù)器技術(shù),采用Servlet 技術(shù)響應(yīng)客戶請求。

后臺數(shù)據(jù)庫采用JDBC 訪問遠(yuǎn)程MySQL 數(shù)據(jù)庫,Android 客戶端的一部分?jǐn)?shù)據(jù)同時存儲在Android 本地的SQLite 數(shù)據(jù)庫和后臺MySQL 數(shù)據(jù)庫中,實(shí)現(xiàn)Android 客戶端和后臺數(shù)據(jù)庫的數(shù)據(jù)同步技術(shù)。如圖2 所示。

圖2 Android 云計(jì)算之移動點(diǎn)餐系統(tǒng)技術(shù)選型。

1.3 系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)

后臺Mysql 數(shù)據(jù)庫名稱:wireless_db,共計(jì)包含以下6 個數(shù)據(jù)表。
數(shù)據(jù)表:menutbl(菜品數(shù)據(jù)表);主鍵:id(菜品編號);外鍵:typeID(菜品類型編號)。
數(shù)據(jù)表:menutypetbl(菜品類型數(shù)據(jù)表),主鍵:
id(菜品類型編號)。
數(shù)據(jù)表:ordertbl(訂單數(shù)據(jù)表),主鍵:id(訂單編號)。
數(shù)據(jù)表:orderdetailtbl(訂單詳細(xì)信息表);主鍵:
id(訂單菜品編號);外鍵:orderId(訂單編號)。
數(shù)據(jù)表:tabletbl(餐桌數(shù)據(jù)表),主鍵:id(餐桌編號)。
數(shù)據(jù)表:usertbl(系統(tǒng)用戶數(shù)據(jù)表),主鍵:id(系統(tǒng)用戶編號)。
數(shù)據(jù)模型設(shè)計(jì)如圖3:

圖3 Android 云計(jì)算之移動點(diǎn)餐系統(tǒng)數(shù)據(jù)模型。

2 系統(tǒng)實(shí)現(xiàn)

Android 云計(jì)算之移動點(diǎn)餐系統(tǒng)功能模塊實(shí)現(xiàn)每個功能模塊實(shí)現(xiàn)說明:

①系統(tǒng)的登錄功能:系統(tǒng)用戶輸入用戶名和密碼,實(shí)現(xiàn)登錄,進(jìn)入系統(tǒng)主菜單。登錄過程是通過無線網(wǎng)絡(luò),在后臺數(shù)據(jù)庫中通過用戶名和密碼進(jìn)行查詢。注冊用戶方可使用該系統(tǒng)。(圖4)。

圖4 系統(tǒng)功能實(shí)現(xiàn)框圖。

②系統(tǒng)主菜單:包括點(diǎn)菜、并臺、轉(zhuǎn)臺、查臺、更新、設(shè)置、注銷、結(jié)算等以圖形方式展現(xiàn)的系統(tǒng)功能菜單。
③點(diǎn)餐功能:操作員輸入客人的點(diǎn)餐信息,通過無線網(wǎng)絡(luò)及時的將點(diǎn)餐信息傳送到后臺服務(wù)器,進(jìn)而在廚房終端顯示,利于廚師盡快下廚做菜。該模塊包括了開桌、點(diǎn)菜、下單三個功能。(圖5)。

④結(jié)算功能:操作員根據(jù)訂單編號查詢點(diǎn)餐訂單信息和訂單信息詳細(xì)列表,顧客確認(rèn)后單擊結(jié)算按鈕進(jìn)行結(jié)算。

⑤查臺功能:當(dāng)有顧客進(jìn)入餐廳時,需要服務(wù)員查詢餐桌狀態(tài)(有人或空位),來安排顧客就餐。該過程應(yīng)是查詢數(shù)據(jù)庫中的餐桌數(shù)據(jù)得到當(dāng)前餐桌狀態(tài)列表,通過可視化的界面進(jìn)行顯示。

⑥更新(數(shù)據(jù)同步)功能:為了提高程序的運(yùn)行效率,將服務(wù)器中菜譜表和餐桌表的數(shù)據(jù)保存到Android 客戶端SQLite 數(shù)據(jù)庫中。因此,當(dāng)服務(wù)器中的數(shù)據(jù)改變時需要及時將服務(wù)器中的數(shù)據(jù)動態(tài)的更新到客戶端,更新功能就是為此而設(shè)計(jì)的[3].

⑦轉(zhuǎn)臺功能:顧客下單后,要求更換座位,這時需要更改已經(jīng)提交的數(shù)據(jù)。更改的過程是根據(jù)訂單號找到該訂單對應(yīng)的桌號,將該桌號更改為更換后的桌號。

⑧并臺功能:將已經(jīng)下單的兩組顧客合并到一張桌子的過程,該過程需要更改已經(jīng)提交到數(shù)據(jù)庫中的數(shù)據(jù)。更新內(nèi)容包括人數(shù)的合并、訂單的更新、訂單詳細(xì)的更新和桌位狀態(tài)的更新。

⑨注銷功能:退出移動云計(jì)算之Android 餐飲服務(wù)系統(tǒng).

下面列出更新(數(shù)據(jù)同步)功能實(shí)現(xiàn)的過程代碼,其他功能代碼從略:

創(chuàng)建一個名為UpdateActivity 的Activity,該類繼承ListActivity,通過ListView 展示界面。在該類中定義一個updateMenu()方法用于更新手機(jī)前臺界面信息,該方法調(diào)用服務(wù)器Servlet 獲得XML 格式的輸入流,通過JAVA DOM 解析該XML 獲得服務(wù)器數(shù)據(jù),將數(shù)據(jù)保存到本地SQLite 數(shù)據(jù)庫中。

服務(wù)端創(chuàng)建Servlet、拼成XML 格式數(shù)據(jù)輸出、響應(yīng)客戶端請求等代碼從略。
系統(tǒng)運(yùn)行部分界面如圖5、圖6.

圖5 系統(tǒng)登錄實(shí)現(xiàn) .

圖6 點(diǎn)餐功能實(shí)現(xiàn)。

3 結(jié)語

Android 云計(jì)算之移動點(diǎn)餐系統(tǒng)后臺數(shù)據(jù)庫采用JDBC 訪問遠(yuǎn)程MySQL 數(shù)據(jù)庫,Android 客戶端的一部分?jǐn)?shù)據(jù)同時存儲在Android 本地的SQLite 數(shù)據(jù)庫和后臺MySQL 數(shù)據(jù)庫中,實(shí)現(xiàn)Android 客戶端和后臺數(shù)據(jù)庫的數(shù)據(jù)同步技術(shù)是本系統(tǒng)在實(shí)現(xiàn)快速移動云計(jì)算中的創(chuàng)新之處。

具體實(shí)現(xiàn)中,為了提高程序的運(yùn)行效率,將后臺MySQL 服務(wù)器中菜品數(shù)據(jù)表和餐桌數(shù)據(jù)表的數(shù)據(jù)保存到Android 客戶端SQLite 數(shù)據(jù)庫中。因此,當(dāng)后臺MySQL 服務(wù)器中的數(shù)據(jù)改變時需要及時將服務(wù)器中的數(shù)據(jù)動態(tài)的更新到Android 客戶端,更新功能就是為此而設(shè)計(jì)的。

因此,Android 云計(jì)算之移動點(diǎn)餐系統(tǒng)完全具有了傳統(tǒng)的C/S 和B/S 的優(yōu)異功能,同時又結(jié)合了最先進(jìn)的移動云計(jì)算設(shè)計(jì)理念。

為了滿足具有一定規(guī)模、需要提高餐廳點(diǎn)餐效率、體現(xiàn)出現(xiàn)代化的氣氛、改進(jìn)客人就餐環(huán)境,并借此提高經(jīng)濟(jì)效益的餐廳和酒店的實(shí)際需求,移動云計(jì)算之Android 餐飲服務(wù)系統(tǒng)實(shí)現(xiàn)一套Android 客戶端軟件和完善的后臺服務(wù)功能來完成餐飲服務(wù)功能。系統(tǒng)不會占用太大的預(yù)算,并能盡量沿用原有的成熟技術(shù),與原有系統(tǒng)進(jìn)行良好的整合,那么該系統(tǒng)將具有很好的開發(fā)與應(yīng)用價值。

c++相關(guān)文章:c++教程




評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉