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