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