基于Windows CE的超市預(yù)收款系統(tǒng)的設(shè)計(jì)
1 概 述
為了緩解銷售旺季收款臺(tái)的壓力,節(jié)省顧客的時(shí)間,以吸引更多顧客,本文設(shè)計(jì)一種超市預(yù)收款系統(tǒng)。當(dāng)顧客排隊(duì)交款時(shí),在一定位置由兩到三人組成臨時(shí)收款臺(tái),掃描商品并裝袋,裝袋完畢后掃描包裝條碼并將包裝條碼貼到袋子上放進(jìn)特制的紅色袋子中。若顧客還有商品則繼續(xù)掃描并放入新袋子中,直至全部商品掃描完畢。確認(rèn)后顧客提著帶有防盜碼的紅色袋子到收款臺(tái)交款。收款臺(tái)解除防盜碼后,掃描包裝條碼進(jìn)行結(jié)賬。
Windows CE屬于嵌入式操作系統(tǒng),可以定制為很多設(shè)備的操作系統(tǒng),所以很適合于工業(yè)控制。隨著微軟對(duì)Windows CE的不斷升級(jí),產(chǎn)生了Pocket PC以及當(dāng)前非常流行的Mobile 5.0。如今Windows CE 5.0也已成熟,更令人驚喜的是使用微軟的Visual Studio.NET可以輕松地開(kāi)發(fā)智能設(shè)備應(yīng)用程序,而且它還集成了Pocket PC、Windows CE模擬開(kāi)發(fā)環(huán)境。.NET Compact Framework是.NET Framework的子集,設(shè)計(jì)為運(yùn)行在智能設(shè)備上,對(duì)受管代碼和XML Web服務(wù)提供支持。這為開(kāi)發(fā)者開(kāi)發(fā)智能設(shè)備應(yīng)用帶來(lái)很大方便。
Web Service是微軟提出的基于互聯(lián)網(wǎng)的開(kāi)發(fā)模型。所謂的Web Service是指由企業(yè)發(fā)布的實(shí)現(xiàn)其特別商務(wù)需求的在線應(yīng)用服務(wù),其他公司或應(yīng)用軟件能夠通過(guò)Internet來(lái)訪問(wèn)并使用這項(xiàng)在線服務(wù)。
2 系統(tǒng)架構(gòu)及工作原理
2.1 系統(tǒng)架構(gòu)
系統(tǒng)主要涉及的硬件設(shè)備有:Symbol手持終端、AP(Access Point)、交換機(jī)、數(shù)據(jù)庫(kù)、收款臺(tái)、Novell文件服務(wù)器以及程序服務(wù)器等。涉及的軟件主要有:Visual Studio.NET、運(yùn)行在手持終端上的前臺(tái)程序、WebSphere開(kāi)發(fā)的數(shù)據(jù)庫(kù)應(yīng)用、收款臺(tái)程序等。系統(tǒng)架構(gòu)如圖1所示。
2.2 工作原理
工作人員掃描顧客商品并裝入購(gòu)入袋中,每確認(rèn)一筆商品明細(xì)數(shù)據(jù)通過(guò)Web Service方式提交給后臺(tái)數(shù)據(jù)庫(kù)。數(shù)據(jù)依次經(jīng)過(guò)的設(shè)備為:手持終端→AP→交換機(jī)→路由器→交換機(jī)→數(shù)據(jù)庫(kù)。
當(dāng)購(gòu)物袋裝滿時(shí)需掃描事先打印好的條碼,并將條碼貼在購(gòu)物袋上并提交數(shù)據(jù),此時(shí)程序服務(wù)器從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)并發(fā)送到。Novell文件服務(wù)器上。當(dāng)顧客進(jìn)行完預(yù)收款到達(dá)收款臺(tái)后,收銀員只需掃描購(gòu)物袋上面的條碼就可讀出相應(yīng)購(gòu)物袋所有商品明細(xì)以及總金額,直接結(jié)賬即可。在此架構(gòu)中程序服務(wù)器和收款機(jī)都要先映射網(wǎng)絡(luò)驅(qū)動(dòng)器,以建立與Novell文件服務(wù)器的連接。
3 預(yù)收款系統(tǒng)的實(shí)現(xiàn)
本系統(tǒng)前臺(tái)通過(guò)Visual Studio.NET來(lái)開(kāi)發(fā)智能設(shè)備應(yīng)用,通過(guò)Web Service連接WebSphere開(kāi)發(fā)的后臺(tái)處理應(yīng)用,所有數(shù)據(jù)庫(kù)操作在后臺(tái)進(jìn)行。
3.1 應(yīng)用環(huán)境的搭建
集群具有高可用性、負(fù)載分發(fā)等特點(diǎn),是保證系統(tǒng)性能和可靠性的主要手段之一。通過(guò)組建WebSphere應(yīng)用服務(wù)器集群,能夠有效地提升應(yīng)用系統(tǒng)的可用性。由于預(yù)收款系統(tǒng)對(duì)系統(tǒng)即時(shí)性、可用性的要求都很高,搭建集群也就成為了必然。集群使預(yù)收款系統(tǒng)具有可擴(kuò)展性(服務(wù)更多客戶,提高吞吐量),負(fù)載均衡(平衡負(fù)載資源,使資源得以有效利用),高可用性(提供故障恢復(fù)和補(bǔ)償機(jī)制,在關(guān)鍵性業(yè)務(wù)中提供容錯(cuò)功能)等優(yōu)點(diǎn)。
WAS(WebSphere Application Service)集群由一組應(yīng)用服務(wù)器組成,每個(gè)服務(wù)器上部署了同樣的應(yīng)用程序。WAS ND提供水平集群和垂直集群兩種形式。垂直集群是指同一機(jī)器上部署多個(gè)服務(wù)器,充分利用硬件資源;而水平集群則是利用多臺(tái)機(jī)器資源,每臺(tái)機(jī)器部署相同的應(yīng)用。本例采用水平集群。
本案例采用WebSphere Application Server NetWorkDeployment 6.0.0.1版進(jìn)行集群的搭建,同時(shí)安裝IBMHTTP Server來(lái)提供Web服務(wù)?;贏pache的IBMHTTP Server是基于Apache Group開(kāi)發(fā)的Apache Web服務(wù)器的Web服務(wù)器。IBM HTTP Server包括一些Apache Web服務(wù)器沒(méi)有的功能,可運(yùn)行在多種操作系統(tǒng)(如Linux、Windows、AIX等)上。IBM HTTP Server擴(kuò)展了Apache的功能,使其能夠使用IBM快速響應(yīng)高速緩存加速器。拓?fù)浣Y(jié)構(gòu)如圖2所示。
3.2 Web Service的開(kāi)發(fā)
Web Service:所使用的是Internet上統(tǒng)一、開(kāi)放的標(biāo)準(zhǔn)(如HTTP、XML、SOAP、WSDL等),可以在任何支持這些標(biāo)準(zhǔn)的環(huán)境(如Windows、Linux)中使用。SOAP(Simple Object Access Protocol,簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議)是一個(gè)用于分散和分布式環(huán)境下網(wǎng)絡(luò)信息交換的基于XML的通信協(xié)議。在此協(xié)議下,軟件組件或應(yīng)用程序能夠通過(guò)標(biāo)準(zhǔn)的HTTP協(xié)議進(jìn)行通信。它的設(shè)計(jì)目標(biāo)就是簡(jiǎn)單性和擴(kuò)展性,這有助于大量異構(gòu)程序和平臺(tái)之間的互操作性,從而使存在的應(yīng)用程序能夠被廣泛地訪問(wèn)。用于開(kāi)發(fā)Web Service的工具很多,諸如Visual Studi-o.NET、Delphi高版本、WebSphere等等。本系統(tǒng)采用WebSphere開(kāi)發(fā),Java源代碼。
3.3 手持終端智能設(shè)備的應(yīng)用開(kāi)發(fā)
Visual Studio 2005為開(kāi)發(fā)可在基于Windows CE的智能設(shè)備(如Pocket PC和Smart Phone)上運(yùn)行的軟件提供了豐富的集成支持。用戶可以使用Visual C#或Visu-al Basic來(lái)編寫(xiě)在.NETCompact Framework上運(yùn)行的托管應(yīng)用程序,使用Visual C++來(lái)編寫(xiě)本機(jī)的應(yīng)用程序。無(wú)論選擇何種語(yǔ)言,用戶都將使用與開(kāi)發(fā)PC程序時(shí)相同的代碼編輯器、設(shè)計(jì)器和調(diào)試器界面,可以直接從智能設(shè)備項(xiàng)目中選擇一個(gè)模板,然后開(kāi)始編碼。手持終端與電腦連接時(shí)需要同步軟件——ActiveSyncsetupchs.exe,安裝該軟件后就可以和手持終端即時(shí)通信了。調(diào)試程序時(shí)可以選擇直接運(yùn)行在智能設(shè)備上,此時(shí)程序會(huì)自動(dòng)安裝在手持終端上,無(wú)需AP連接。開(kāi)發(fā)的程序可以生成cab包,cab包可以直接安裝在手持終端上,并生成可執(zhí)行文件。默認(rèn)情況下,手持終端如果沒(méi)有電,系統(tǒng)就會(huì)恢復(fù)出廠設(shè)置,許多程序需要重新安裝,給用戶帶來(lái)諸多不便。值得一提的是,Mobile公司推出了差異備份軟件,安裝軟件前對(duì)系統(tǒng)狀態(tài)進(jìn)行掃描記錄,安裝應(yīng)用軟件后再次掃描,軟件將兩次掃描的差異記錄下來(lái)并保存成文件,把文件放在手持終端Application目錄下。每次冷啟動(dòng)設(shè)備,應(yīng)用程序都會(huì)自動(dòng)安裝。
3.4 預(yù)收款系統(tǒng)的部署
首先,安裝WAS。安裝完畢后選擇“概要表創(chuàng)建”向?qū)?,在“概要表類型選擇”對(duì)話框中選擇“創(chuàng)建DeploymentManager概要表”。在“節(jié)點(diǎn)、主機(jī)和單元名”對(duì)話框中,主機(jī)名要輸入IP地址,一直單擊“下一步”即可完成安裝。在程序菜單中啟動(dòng)概要表。啟動(dòng)界面消失后在瀏覽器中輸入地址http://ip9060/ibm/console即可進(jìn)入管理控制臺(tái)。登錄管理控制臺(tái)后,點(diǎn)擊“服務(wù)器”,可以看到集群、集群拓?fù)涞刃畔ⅰ?/P>
其次,安裝各個(gè)節(jié)點(diǎn)。選擇“概要表創(chuàng)建”向?qū)?,在“概要表類型選擇”對(duì)話框中選擇“創(chuàng)建應(yīng)用程序服務(wù)器概要表”,一直單擊“下一步”即可完成安裝。在程序菜單中啟動(dòng)概要表。以同種方式在其他節(jié)點(diǎn)上安裝應(yīng)用程序服務(wù)器概要表并啟動(dòng)。
最后,為了提高靜態(tài)頁(yè)處理效率,需要安裝IBM HT-TP Server以及WAS插件。安裝后修改并運(yùn)行插件bin下的configurewebserverl.bat,Web服務(wù)器會(huì)添加到配置管理器中??蛇M(jìn)入管理控制臺(tái)點(diǎn)擊“服務(wù)器”,打開(kāi)Web服務(wù)器查看剛添加的服務(wù)。至此,安裝已結(jié)束。然后進(jìn)行集群的搭建。進(jìn)人管理控制臺(tái),點(diǎn)擊“系統(tǒng)管理”進(jìn)入節(jié)點(diǎn);添加節(jié)點(diǎn),選擇類型為受管制節(jié)點(diǎn),輸入節(jié)點(diǎn)IP地址和JMX端口號(hào)即可。此時(shí)控制臺(tái)會(huì)與節(jié)點(diǎn)建立映射關(guān)系。用此方法添加其他各節(jié)點(diǎn),添加完所有節(jié)點(diǎn)后,控制臺(tái)會(huì)把各節(jié)點(diǎn)的默認(rèn)服務(wù)serverl自動(dòng)添加到系統(tǒng)中,可以將其刪除。然后需要把剛添加的節(jié)點(diǎn)作為組管理起來(lái),就是群的概念。點(diǎn)擊“服務(wù)器”,進(jìn)入“集群配置”,單擊“添加”按鈕,輸人群的名稱,然后選擇剛添加過(guò)的節(jié)點(diǎn),保存也可建立多個(gè)群。搭起集群環(huán)境后無(wú)需進(jìn)入單個(gè)節(jié)點(diǎn)進(jìn)行管理,在管理控制臺(tái)可以進(jìn)行統(tǒng)一管理。例如要設(shè)置某個(gè)節(jié)點(diǎn)的環(huán)境變量,可以單擊“環(huán)境”,選擇WebSphere變量,選擇相應(yīng)的節(jié)點(diǎn)進(jìn)行配置。在整個(gè)集群環(huán)境中,若要發(fā)布應(yīng)用程序,只需要在部署管理控制臺(tái)發(fā)布應(yīng)用。應(yīng)用可以選擇需要使用的集群,選擇完畢后集群內(nèi)所有成員節(jié)點(diǎn)都會(huì)有份應(yīng)用;同時(shí),應(yīng)用也發(fā)布到IBM HTTP Server上,這樣該應(yīng)用所有動(dòng)態(tài)頁(yè)面提交給負(fù)載最低的可用節(jié)點(diǎn),靜態(tài)頁(yè)面或數(shù)據(jù)提交給IBM HTTP Server來(lái)處理。至此,一個(gè)簡(jiǎn)單的基于容器的集群已搭建完成。本系統(tǒng)還需要操作數(shù)據(jù)庫(kù),建立數(shù)據(jù)庫(kù)驅(qū)動(dòng)、配置數(shù)據(jù)源都會(huì)在所有成員節(jié)點(diǎn)上同步完成。集群維護(hù)起來(lái)也很方便,隨時(shí)可以添加、刪除節(jié)點(diǎn),靈活易擴(kuò)展。添加節(jié)點(diǎn)后只需要把節(jié)點(diǎn)加入到相應(yīng)的群中,保存后該節(jié)點(diǎn)就會(huì)享有該群上的所有應(yīng)用,包括數(shù)據(jù)源信息。
JSP(JaVa Server Pages)是一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。Servlet是Java技術(shù)對(duì)CGI編程的回答。支持JSP/Serv-let的Web服務(wù)器有很多,選擇合適的Web服務(wù)器對(duì)于構(gòu)建JSP網(wǎng)站是非常重要的。常用的web服務(wù)器有:Al-laire JRun、Apache Tomcat、BEA Web logic ApplicationServer、IBM WebSphere Application Server、iPlanet WebServet、JavaServer Web Development Kit(JSWDK)以及Java Web Server等。
4 預(yù)收款系統(tǒng)的使用
輸入相應(yīng)的會(huì)員信息和密碼進(jìn)入預(yù)收款界面。輸入時(shí),按回車鍵光標(biāo)會(huì)自動(dòng)跳轉(zhuǎn)到下一個(gè)輸入框,身份驗(yàn)證無(wú)誤后進(jìn)入主界面,如圖3(a)所示。其中一位顧客一個(gè)流水,系統(tǒng)會(huì)自動(dòng)生成。此時(shí)可以掃描商品,如圖3(b)所示。
掃描后會(huì)顯示商品詳細(xì)信息:名稱、單價(jià)/單位、數(shù)量、總金額。按Z鍵可以看到商品在列表框中,再次按Z鍵可以返回信息框。若顧客有不要的商品,可以選中相應(yīng)商品明細(xì)按X鍵刪除。最近掃描的商品總排在列表首行,按Z鍵時(shí)默認(rèn)顯示最近一次掃描的商品信息。若要查看先前掃描過(guò)的商品信息,可以選中列表中相應(yīng)記錄按Z鍵。數(shù)量默認(rèn)為1,若要輸入數(shù)量按A鍵。
輸入完數(shù)量按回車鍵,此時(shí)掃描商品條碼。裝袋完成后點(diǎn)擊B。掃描包裝條碼后,繼續(xù)裝袋。顧客的所有商品裝袋結(jié)束后按C鍵(預(yù)結(jié)),當(dāng)提示“提交成功”時(shí)該顧客的商品信息將發(fā)送到收款臺(tái)。此后可對(duì)下一名顧客中進(jìn)行預(yù)收款。若在提交前想查看當(dāng)前顧客所有的商品信息(前提是都已小結(jié)),可選擇操作菜單中的流水明細(xì),最方便的是按快捷鍵E。按F1退出該窗口返回到主界面。若要查看某一包裝袋的商品明細(xì),可選擇菜單中的小結(jié)明細(xì)。掃描包裝袋上的條碼就會(huì)出現(xiàn)該袋所盛商品的明細(xì)。按F1退出該窗口返回到主界面。若顧客有些商品(如大袋大米、衛(wèi)生紙等)不能包裝,則需到收款臺(tái)另行掃描收款。若顧客還有未包裝商品,但想知道所有商品(不論包裝還是未包裝)的明細(xì),可選擇菜單中的總金額或按快捷鍵G?!鞍b額”中顯示該顧客所有包裝商品應(yīng)收款,“其他”是不方便包裝商品應(yīng)收款,“總金額”為該顧客到款臺(tái)總付款。操作員掃描未包裝商品,結(jié)束后告知顧客該付多少錢(qián)。若操作員需修改密碼,可選擇操作菜單中的“修改密碼”。
結(jié) 語(yǔ)
本文詳細(xì)介紹了超市預(yù)收款系統(tǒng)的架構(gòu)及設(shè)計(jì),并闡明了該系統(tǒng)的使用方法。本系統(tǒng)可以靈活應(yīng)用于各超市以及大型賣場(chǎng)的促銷活動(dòng)時(shí)期。對(duì)消費(fèi)者來(lái)說(shuō),不僅擁有了更好的購(gòu)物環(huán)境,還大大節(jié)省了寶貴的時(shí)間(這正是本系統(tǒng)的創(chuàng)新性所在);對(duì)商場(chǎng)來(lái)說(shuō),收款速度的提高意味著商品銷售量的增長(zhǎng),將會(huì)帶來(lái)更多的利潤(rùn)。由此可見(jiàn),無(wú)論是商場(chǎng)還是消費(fèi)者,超市預(yù)收款系統(tǒng)都能夠合理、有效地為之服務(wù),具有良好的應(yīng)用前景。
評(píng)論