李國曉
(連云港廣播電視大學(xué),江蘇 連云港 222006)
基于四層C/S結(jié)構(gòu)的移動餐飲管理系統(tǒng)構(gòu)架
李國曉
(連云港廣播電視大學(xué),江蘇 連云港 222006)
本文構(gòu)建了一個基于windows mobile的四層C/S結(jié)構(gòu)的移動餐飲管理系統(tǒng),設(shè)計(jì)了更加優(yōu)良的四層C/S結(jié)構(gòu),克服了傳統(tǒng)二層、三層C/S結(jié)構(gòu)的缺點(diǎn)和不足,不僅提高系統(tǒng)的運(yùn)行性能,而且使得系統(tǒng)層次更加清晰,提高了系統(tǒng)的可靠性、可維護(hù)性和可擴(kuò)展性,實(shí)現(xiàn)在移動狀態(tài)下即時的業(yè)務(wù)處理和操作,提高餐飲企業(yè)的工作效率和服務(wù)質(zhì)量,增加系統(tǒng)的靈活性和實(shí)用性.
移動;管理信息系統(tǒng);軟件構(gòu)架;四層C/S結(jié)構(gòu)
計(jì)算機(jī)管理信息系統(tǒng)已廣泛應(yīng)用于生產(chǎn)生活的各個領(lǐng)域,已經(jīng)成為各行業(yè)必不可少的工具.隨著時代的發(fā)展,有線網(wǎng)絡(luò)的管理信息系統(tǒng)越來越不能滿足一些特定行業(yè)的要求,在有些行業(yè),工作人員經(jīng)常需要在移動的狀態(tài)下及時進(jìn)行數(shù)據(jù)的采集和查詢,因此,基于移動平臺的開發(fā)的信息管理系統(tǒng),具有越來越多的市場需求.結(jié)合無線局域網(wǎng)技術(shù)和移動計(jì)算技術(shù),將其應(yīng)用于餐飲企業(yè),構(gòu)建基于移動平臺的無線餐飲管理系統(tǒng),實(shí)現(xiàn)餐飲企業(yè)的日常業(yè)務(wù)處理和管理,可以大大提高服務(wù)質(zhì)量和效率,節(jié)省人力資源,提升了餐飲企業(yè)的管理水平和競爭力.
Windowsmobile是功能強(qiáng)大而且應(yīng)用靈活的移動開發(fā)平臺,通過與移動數(shù)據(jù)庫技術(shù)的結(jié)合,構(gòu)建移動信息管理系統(tǒng),用戶可以隨時隨地方便快捷的上傳、下載和處理信息.本文的背景是針對餐飲行業(yè)的需求及其業(yè)務(wù)特點(diǎn),構(gòu)建了一個基于windowsmobile的移動餐飲管理系統(tǒng),實(shí)現(xiàn)在移動狀態(tài)下即時的業(yè)務(wù)處理和操作,并與SQLMobile移動數(shù)據(jù)庫相結(jié)合,通過合并復(fù)制方式完成數(shù)據(jù)同步.在系統(tǒng)軟件構(gòu)架設(shè)計(jì)過程中,結(jié)合系統(tǒng)的需求和移動管理信息系統(tǒng)的特殊性,確定采用C/S結(jié)構(gòu),并通過分析傳統(tǒng)二層、三層C/S構(gòu)架的缺點(diǎn)和不足,設(shè)計(jì)了更加優(yōu)良的四層C/S結(jié)構(gòu),不僅提高了系統(tǒng)的可維護(hù)性和可靠性,而且更提高了系統(tǒng)的運(yùn)行性能.
2.1 C/S結(jié)構(gòu)模式的確定
與B/S結(jié)構(gòu)相比,C/S結(jié)構(gòu)具有如下優(yōu)點(diǎn):(1)由于客戶端與服務(wù)器的直接相連,沒有中間環(huán)節(jié),因此響應(yīng)速度快.(2)操作界面形式多樣化、美觀漂亮,可以充分滿足客戶的個性化需求.(3)具有較強(qiáng)的事務(wù)處理能力,能實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)流程.
另外,對于移動餐飲系統(tǒng),網(wǎng)絡(luò)不穩(wěn)定是必須要考慮的因素,必須考慮有可能暫時處于無網(wǎng)絡(luò)連接的狀態(tài),這時,要求移動終端的應(yīng)用程序必須可以在脫機(jī)狀態(tài)下任然可以操作,并在網(wǎng)絡(luò)恢復(fù)后,及時進(jìn)行相關(guān)數(shù)據(jù)的更新.采用C/S結(jié)構(gòu),可以解決這一問題,當(dāng)網(wǎng)絡(luò)連接暫時不可用時,客戶端依然可以脫機(jī)操作,而若采用B/S結(jié)構(gòu),對網(wǎng)絡(luò)的依賴性很大,當(dāng)網(wǎng)絡(luò)連接不可用時,無法讀取相應(yīng)的w e b頁面,不支持脫機(jī)操作.
解決這一問題的關(guān)鍵之處是利用移動設(shè)備上的高速緩存,靈活的使用高速緩存,一方面將其嵌入到系統(tǒng)的物理架構(gòu)中,通過使用.NETCompactFramework編程語言將移動應(yīng)用的界面和功能集成在windowsForms窗口中,并保存在本地的高速緩存中,即使在無網(wǎng)絡(luò)連接的情況下,用戶仍然可以對相應(yīng)的移動應(yīng)用程序進(jìn)行操作和調(diào)用;另一方面,若應(yīng)用程序?qū)?shù)據(jù)處理的要求比較復(fù)雜,可以將數(shù)據(jù)庫存儲于本地的高速緩存上,并使用移動設(shè)備上的關(guān)系數(shù)據(jù)庫管理工具SQLServerMobile來完成對數(shù)據(jù)的管理和調(diào)用.SQLServerMobile具有數(shù)據(jù)同步功能,支持從遠(yuǎn)程SQLServer服務(wù)器中下載數(shù)據(jù)到設(shè)備端的SQLServerMobile數(shù)據(jù)庫中,在離線狀態(tài)下,應(yīng)用程序可以使用本地的SQLServerMobile對數(shù)據(jù)進(jìn)行處理,而當(dāng)網(wǎng)路連接可用時,將本地SQLServerMobile數(shù)據(jù)庫中被修改的部分與遠(yuǎn)程SQLServer數(shù)據(jù)庫中相應(yīng)的部分進(jìn)行數(shù)據(jù)同步,實(shí)現(xiàn)對數(shù)據(jù)的更新.
2.2 四層C/S結(jié)構(gòu)模式
常見的C/S結(jié)構(gòu)有二層C/S結(jié)構(gòu)和三層C/S結(jié)構(gòu).
二層C/S結(jié)構(gòu)將系統(tǒng)分為客戶端和服務(wù)器,數(shù)據(jù)服務(wù)主要在服務(wù)器完成,業(yè)務(wù)邏輯規(guī)則的處理主要在客戶端完成,其主要缺點(diǎn)是維護(hù)成本高,既要維護(hù)服務(wù)器又要維護(hù)客戶端,任務(wù)量大,難以管理大量客戶機(jī),而且系統(tǒng)可拓展性不好.
三層C/S結(jié)構(gòu)是將客戶端分離成表示層和應(yīng)用層兩個獨(dú)立的部分,形成了表示層、應(yīng)用層、數(shù)據(jù)服務(wù)層這樣的三層模式,三層明確分割,邏輯獨(dú)立.客戶端只實(shí)現(xiàn)表示層,表示層是應(yīng)用的用戶接口,負(fù)責(zé)與用戶交互和顯示執(zhí)行結(jié)果,若要變更用戶接口,只需修改本層的數(shù)據(jù)檢查和顯示控制程序,而不需改動其他兩層;應(yīng)用層負(fù)責(zé)處理具體的業(yè)務(wù)邏輯,將具體的應(yīng)用邏輯和業(yè)務(wù)邏輯編入該層程序中,處理所需的數(shù)據(jù)來自表示層和數(shù)據(jù)服務(wù)層,一般通過SQL語言向數(shù)據(jù)服務(wù)層提出數(shù)據(jù)請求;數(shù)據(jù)服務(wù)層就是數(shù)據(jù)庫管理系統(tǒng),負(fù)責(zé)管理數(shù)據(jù)庫的讀寫.與二層C/S結(jié)構(gòu)相比,系統(tǒng)的可維護(hù)性更好,但也存在不足:應(yīng)用層和數(shù)據(jù)服務(wù)層之間需要傳輸大量SQL語句,而且需經(jīng)常多次連接和斷開數(shù)據(jù)庫,系統(tǒng)性能容易變壞.
針對二層C/S結(jié)構(gòu)和三層C/S結(jié)構(gòu)的缺點(diǎn)和不足,為使移動平臺有較高的安全性,在本系統(tǒng)的開發(fā)中設(shè)計(jì)了四層C/S結(jié)構(gòu).將業(yè)務(wù)邏輯從應(yīng)用層中中分離出來,形成獨(dú)立的業(yè)務(wù)規(guī)則層,獨(dú)立出來后,業(yè)務(wù)規(guī)則層負(fù)責(zé)具體業(yè)務(wù),其具體的實(shí)現(xiàn)方式是通過數(shù)據(jù)庫的存儲過程來實(shí)現(xiàn),當(dāng)業(yè)務(wù)改變時,只需要修改相應(yīng)的存儲過程,而大量的SQL語句即封裝在這其中,有數(shù)據(jù)請求時,只需在網(wǎng)絡(luò)上傳輸存儲過程的名稱和參數(shù),而不需要直接傳輸大量的SQL語句,大大降低網(wǎng)絡(luò)傳輸量,減少了連接和斷開數(shù)據(jù)庫的次數(shù).
2.3 四層C/S結(jié)構(gòu)的優(yōu)點(diǎn)
采用這種四層的架構(gòu)體系,主要有以下四個優(yōu)點(diǎn):
(1)良好的可維護(hù)性:層與層結(jié)構(gòu)之間相互隔離,關(guān)系相對獨(dú)立,某一層的結(jié)構(gòu)和內(nèi)容的變化對其它層的結(jié)構(gòu)和功能影響很小,這樣保證了整個構(gòu)架的穩(wěn)定性,使系統(tǒng)具有良好的可維護(hù)性.
(2)良好的可擴(kuò)展性:采用四層結(jié)構(gòu),系統(tǒng)結(jié)構(gòu)層次更加清晰,減少了結(jié)構(gòu)上的混合和重疊,各個部分之間相對獨(dú)立,幾個相對獨(dú)立的部分被劃分在不同層中,這樣對其中分支部分就可以進(jìn)行靈活的擴(kuò)展,不會影響其中公共部分的穩(wěn)定,使系統(tǒng)具有良好的可擴(kuò)展性.
(3)功能和關(guān)系明確:每一層都有明確而獨(dú)立的基本功能,層與層之間的關(guān)系非常明確.
(4)隔離作用:業(yè)務(wù)規(guī)則層將表示層與各種數(shù)據(jù)訪問層隔離開來,起到隔離作用.未授權(quán)的用戶難以通過規(guī)則層的驗(yàn)證和非法地訪問數(shù)據(jù)層,系統(tǒng)更安全可靠.
3.1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
設(shè)計(jì)一個解決方案,命名為包SqlMolile_HotelMan.sln,解決方案的結(jié)構(gòu)分為四個邏輯層,包括數(shù)據(jù)訪問層、業(yè)務(wù)規(guī)則層、應(yīng)用系統(tǒng)層、表示層,以及上述四大層需要調(diào)用的標(biāo)準(zhǔn)通用類庫,即通用層.
3.1.1 應(yīng)用系統(tǒng)層
應(yīng)用系統(tǒng)層是應(yīng)用程序的界面接口,為移動設(shè)備用戶提供對應(yīng)用程序的訪問,包含若干窗體,用戶可以通過這些窗體與應(yīng)用程序進(jìn)行交互,應(yīng)用系統(tǒng)層一般包括P C應(yīng)用系統(tǒng)層和移動應(yīng)用系統(tǒng)層兩部分.在本移動系統(tǒng)中,移動應(yīng)用層是通過Sql-Molile_HotelMan.sln解決方案中windowsmobile移動設(shè)備上的應(yīng)用程序項(xiàng)目HotelManClient來實(shí)現(xiàn)的.
3.1.2 表示層
表示層為移動應(yīng)用系統(tǒng)層提供處理的界面,負(fù)責(zé)接收用戶的請求,然后通過調(diào)用業(yè)務(wù)規(guī)則層的接口來實(shí)現(xiàn)相應(yīng)的功能,并將業(yè)務(wù)規(guī)則層返回的結(jié)果返回到客戶端.在本系統(tǒng)中,表示層為用戶提供系統(tǒng)設(shè)置、餐臺預(yù)訂開臺、客人消費(fèi)數(shù)據(jù)錄入和信息查詢等業(yè)務(wù)處理的界面.表示層是通過SqlMolile_HotelMan.sln解決方案中的HotelManFacade項(xiàng)目來實(shí)現(xiàn).對SQLMobile數(shù)據(jù)庫的所有調(diào)用都是通過此程序集進(jìn)行的.
3.1.3 業(yè)務(wù)規(guī)則層
業(yè)務(wù)規(guī)則層主要包括業(yè)務(wù)規(guī)則和邏輯的實(shí)現(xiàn),為表示層提供調(diào)用的接口,調(diào)用時將表示層的參數(shù)傳遞到業(yè)務(wù)規(guī)則層,然后將處理的結(jié)果返回到表示層.通過調(diào)用相同的業(yè)務(wù)規(guī)則層,可以使PC應(yīng)用系統(tǒng)層和移動應(yīng)用系統(tǒng)層整合成統(tǒng)一的業(yè)務(wù)平臺.業(yè)務(wù)規(guī)則層將表示層與各種數(shù)據(jù)訪問層的實(shí)現(xiàn)隔離開來,起到隔離作用.在本系統(tǒng)中,業(yè)務(wù)規(guī)則層完成服務(wù)人員賬戶權(quán)限驗(yàn)證和消費(fèi)請求的驗(yàn)證等.業(yè)務(wù)規(guī)則層通過SqlMolile_HotelMan.sln解決方案中的HotelManRules項(xiàng)目來實(shí)現(xiàn).
3.1.4 數(shù)據(jù)訪問層
數(shù)據(jù)訪問層將本地數(shù)據(jù)庫中的數(shù)據(jù)表映射成對象的數(shù)據(jù)層,從而為業(yè)務(wù)規(guī)則層提供數(shù)據(jù)服務(wù),這一層主要實(shí)現(xiàn)和SQLMobile數(shù)據(jù)庫的交互.數(shù)據(jù)訪問層通過SqlMolile_HotelMan.sln解決方案中的DataAccess項(xiàng)目來實(shí)現(xiàn).
除以上四層之外,系統(tǒng)還包括一個通用層.通用層用于封裝各層中用到的共享函數(shù)和通用標(biāo)準(zhǔn)函數(shù)類,通用層還包含各層間用于傳遞數(shù)據(jù)的數(shù)據(jù)集.這一層是通過SqlMolile_HotelMan.sln解決方案中的Common項(xiàng)目來實(shí)現(xiàn).
移動餐飲管理系統(tǒng)結(jié)構(gòu)如圖1所示:
圖1 移動餐飲管理軟件系統(tǒng)結(jié)構(gòu)
3.2 預(yù)訂子系統(tǒng)的實(shí)現(xiàn)
下面,通過對預(yù)訂子系統(tǒng)(Reserve)中顯示預(yù)訂客戶資料Reservedata來說明各層是如何實(shí)現(xiàn)的.
首先,在通用層,有一個Data子目錄,其中包含了一系列數(shù)據(jù)集架構(gòu)(DatasetSchema),其文件格式為X S D,預(yù)訂管理的X S D文件名是Reserve-Data.xsd,這個文件用來描述預(yù)訂管理模塊中需要用到的數(shù)據(jù)表的Schema,包括描述數(shù)據(jù)項(xiàng)之間的關(guān)系,如表與表之間的外鍵、約束、數(shù)據(jù)類型等.當(dāng)需要將數(shù)據(jù)從數(shù)據(jù)庫填充到Dataset時,常用Dataset Schema來限制需要讀取的數(shù)據(jù)結(jié)構(gòu).
其次,在數(shù)據(jù)訪問層,可以對通用層中Data子目錄中的Dataset數(shù)據(jù)表實(shí)例進(jìn)行訪問,既可以使用F i l l方法將數(shù)據(jù)庫中的數(shù)據(jù)填充到Dataset中,也可以使用Update方法,將Dataset中修改的數(shù)據(jù)提交回SQLMobile數(shù)據(jù)庫.
數(shù)據(jù)訪問層直接對數(shù)據(jù)庫操作,進(jìn)行增加、刪除、修改、查詢等操作,在Reserve.cs文件中,通過定義類來描述在預(yù)訂管理模塊中如何訪問數(shù)據(jù)庫的物理表來填充Reservedata:Dataset.
第三,在應(yīng)用系統(tǒng)中還有許多業(yè)務(wù)規(guī)則,為數(shù)據(jù)庫與數(shù)據(jù)集之間數(shù)據(jù)的傳遞來規(guī)定一定的規(guī)則,比如判斷處理的數(shù)據(jù)是否有效、判斷數(shù)據(jù)的處理是否正確,是否符合用戶自定義的規(guī)則.這些都是在業(yè)務(wù)規(guī)則層完成的.
業(yè)務(wù)規(guī)則層是對數(shù)據(jù)進(jìn)行寫入前的驗(yàn)證處理以及確定提交過來的數(shù)據(jù)的處理規(guī)則,在Reserve.cs文件中,定義了針對預(yù)訂管理模塊業(yè)務(wù)邏輯的類.
第四,表示層是通過SqlMolile_HotelMan.sln解決方案中的Hotel Man Facade項(xiàng)目來實(shí)現(xiàn),該項(xiàng)目可理解為一個接口函數(shù),是用戶通過界面直接調(diào)用系統(tǒng)功能的入口.在該項(xiàng)目中通過生成一個預(yù)訂管理模塊,以便用戶進(jìn)一步調(diào)用其中的功能函數(shù)來完成預(yù)訂管理,在項(xiàng)目中的customersystem.cs文件中定義了就餐管理系統(tǒng)外觀類.
最后,在主程序中通過調(diào)用業(yè)務(wù)外觀層,就可以實(shí)現(xiàn)預(yù)訂管理模塊的功能了.系統(tǒng)中其它管理模塊功能的實(shí)現(xiàn),基本上也是采用這種分層結(jié)構(gòu)來處理的.從表示層到業(yè)務(wù)邏輯層到數(shù)據(jù)層,詳細(xì)的設(shè)計(jì)規(guī)范,如圖2所示:
圖2 系統(tǒng)分層結(jié)構(gòu)設(shè)計(jì)規(guī)范
通過構(gòu)架這樣的四層C S結(jié)構(gòu)體系,使得餐飲管理系統(tǒng)結(jié)構(gòu)層次更加清晰,層與層之間關(guān)系更加獨(dú)立,大大降低了在后期使用和維護(hù)過程中工作量,擴(kuò)展起來更方便,為系統(tǒng)未來功能的增強(qiáng)和升級打下了良好的基礎(chǔ),同時,數(shù)據(jù)管理功能更加強(qiáng)大,也更安全可靠,為分散在各地的全國連鎖式餐飲企業(yè)建立統(tǒng)一管理模式奠定了基礎(chǔ).
〔1〕牛保民,潘正運(yùn),賈洪永.基于四層C/S結(jié)構(gòu)的移動警務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2006(22):188-190.
〔2〕王景景.無線點(diǎn)菜系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].海南大學(xué)學(xué)報自然科學(xué)版,2009(01):65-68.
〔3〕江旭.基于C/S結(jié)構(gòu)的車輛管理信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué)碩士學(xué)位論文, 2011.
〔4〕茂德,紀(jì)志強(qiáng),吳青云,吳婷婷.基于C/S結(jié)構(gòu)的公安交警無線移動警務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī),2006(23):129-130
〔5〕馬爭,孟春雷.基于C/S體系結(jié)構(gòu)的移動通信綜合管理系統(tǒng) [J].電子科技大學(xué)學(xué)報,2000(12):569-571.
TP311
A
1673-260 X(2013)12-0024-03