王德廣,石華,周志剛,王超
目前,大連船舶重工有限公司一工廠鋼板庫的倉庫管理員主要采取手工方式記錄并管理鋼板信息。為了避免人為操作誤差、保證鋼板及時順利的進行入庫、倒庫、盤點和出庫等操作,本文提出了一種在WLAN中利用掌上電腦(也有稱之為PDA-Personal Digital Assistant)對鋼板信息進行采集和管理的系統(tǒng),通過無線的方式實現(xiàn)了鋼板信息的錄入、移動存儲、實時交互。
本系統(tǒng)使用的PDA型號為MC3000,內(nèi)嵌了Windows Mobile系統(tǒng),同時配備了一維(1D)激光和二維(2D)成像掃描功能,實現(xiàn)了Web Service和PDA之間的互操作,同時成功的嵌入掃描條形碼的技術,實現(xiàn)無縫集成。
為了滿足生產(chǎn)過程的自動化和集成化的要求,達到使用PDA實時的監(jiān)控鋼板庫現(xiàn)場的目的,采用基于PDA與Web Service的鋼板信息管理系統(tǒng),主要包括3個部分:PDA、無線AP、Web Service。其架構如圖1所示。
圖1 系統(tǒng)架構
基于PDA與Web Service的鋼板信息管理系統(tǒng)的運行過程如下:用戶手持PDA掃描鋼板上的條形碼,PDA利用其的無線收發(fā)功能,通過 WLAN將鋼板信息實時傳到 Web Service端,對數(shù)據(jù)庫進行操作,并將操作結果實時顯示在PDA上。
權限高的用戶可以手工錄入到貨清單信息,所有用戶都可以實現(xiàn)對鋼板入庫、倒庫、盤點、出庫操作。
文獻[1,2]從面向應用的角度, 描述了Web 服務的基本架構。該架構由3 個參與者和3 個基本操作構成。3 個參與者分別是服務提供者、服務請求者和服務代理,而3 個基本操作分別為發(fā)布(publish)、查找(find)和綁定(bind)。Web 服務基本架構如圖2 所示。服務提供者將其服務發(fā)布到服務代理的一個目錄上;當服務請求者需要調(diào)用該服務時,他首先利用服務代理提供的目錄去搜索該服務,得到如何調(diào)用該服務的信息;然后根據(jù)這些信息去調(diào)用服務提供者發(fā)布的服務。當服務請求者從服務代理得到調(diào)用所需服務的信息之后,通信是在服務請求者和提供者之間直接進行,而無須經(jīng)過服務代理。Web 服務體系使用一系列標準和協(xié)議實現(xiàn)相關的功能[3]。
圖2 Web Service基本構架
Web Service的宗旨是創(chuàng)建不需要用戶界面就能與其他應用程序交互的Web應用程序。它是松耦合的,并與服務器端和客戶端所使用的操作系統(tǒng)、編程語言都無關,這樣就在一定的情況下大大提高了效率。但創(chuàng)建Web服務必須保證的是:服務器端和客戶端都要支持行業(yè)標準協(xié)議HTTP、SOAP(Simple Object Access Protocal 簡單對象訪問協(xié)議)和XML。
在本系統(tǒng)的軟件設計中,必須解決兩個關鍵技術問題,一是嵌入PDA的條碼掃描功能及在屏幕的指定區(qū)域顯示條碼;二是PDA(即客戶端)在WLAN中通過無線AP連接到Web Service端,實現(xiàn)客戶端與后臺數(shù)據(jù)庫服務器的連接,完成對鋼板信息的實時傳輸與操作。
2.1.1 條碼的獲取與顯示
PDA條碼掃描由3部分組成:初始化條碼,讀取條碼信息,顯示條碼。
具體工作流程如下:PDA通過Scan端口將掃描到的條碼做簡單的判斷后,初始化所采集到的條碼信息(即將不同類型的條碼規(guī)范化)。具有掃描功能的窗體繼承Symbol.Barcode.ReaderData類,設置其掃描功能可用后,讀取條碼。在窗體的指定控件設置條碼的輸入焦點后就可將條碼顯示出來。具體流程如圖3所示。
圖3 嵌入掃描功能的流程圖
2.1.2 鋼板信息的實時傳輸與操作
在本系統(tǒng)的軟件設計中,通過無線AP在WLAN中進行數(shù)據(jù)的傳輸,所以,提供服務的一方稱為Web Service端,消費服務的一端稱為客戶端(即PDA)。
客戶端的基本行為可以概括為初始化、消費服務等。在具體實現(xiàn)時,客戶端的功能主要是初始化窗體,記錄用戶通過掃描或手工錄入的鋼板信息,確定數(shù)據(jù)的類型符合數(shù)據(jù)庫的要求,顯示必要的人機交互時的友好提示,最后,將數(shù)據(jù)通過WLAN將數(shù)據(jù)傳送到Web Service端。
Web Service端的基本行為即設置Web服務操作,在方法開始處標記[WebMethod]屬性,WebMethod 基礎結構負責將傳入的 SOAP 請求發(fā)送到適當?shù)念惡头椒ǎɑ谡埱笤孛Q或 SOAPAction 頭,它們可通過SoapDocumentService.RoutingStyle 進行配置),同時它還負責將 XML 消息序列化/反序列化為公共語言運行庫 (CLR)對象,包括將 .NET 樣式的異常轉(zhuǎn)換為 SOAP Fault 元素[4]。
Web服務操作的具體內(nèi)容如下:第一步,建立與數(shù)據(jù)庫服務器的連接,利用SqlConnection方法,創(chuàng)建一個與數(shù)據(jù)庫連接的對象;第二步,根據(jù)具體的業(yè)務邏輯實現(xiàn)對數(shù)據(jù)庫的操作,如增加、刪除、修改、查詢;第三步,關閉數(shù)據(jù)庫的連接,返回操作結果[5]。
鋼板信息的實時傳輸與操作的設計流程圖如圖4所示。
圖4 鋼板信息實時傳輸與操作的設計流程圖
客戶端沒有加載數(shù)據(jù)庫減少了 PDA存儲空間小的壓力,盡量減少客戶端與Web Service端的數(shù)據(jù)交互次數(shù),縮短軟件的響應時間。
鋼板信息采集系統(tǒng)管理由5個功能模塊組成,即到貨清單的手工錄入,鋼板入庫操作,倒板定位操作,在庫鋼板盤點,鋼板出庫操作。具體功能模塊如圖5所示。
圖5 系統(tǒng)功能模塊圖
以鋼板入庫操作為例。具體步驟如下。
(1)用戶掃描條碼或手工錄入條碼并錄入鋼板的其他相關信息,PDA端檢查鋼板錄入信息的完整性。
(2)PDA端發(fā)出信號,在WLAN中通過無線AP建立與Web Service的連接,并將數(shù)據(jù)發(fā)送到Web Service端。
(3)Web Service端接收到數(shù)據(jù)后,匹配標記為[WebMethod]屬性的入庫方法,建立與SQL Service的連接,判斷輸入的鋼板是否已錄入到貨清單或已在庫,若滿足條件則提示用戶重新檢查后錄入鋼板信息,否則記錄要入庫的鋼板的個數(shù),建立鋼板與堆垛、層數(shù)和入庫日期的對應關系,調(diào)用存儲過程更新數(shù)據(jù)庫,完成入庫操作。
(4)Web Service端處理完數(shù)據(jù)后,將操作結果返回,由PDA顯示操作結果。
基于PDA與Web Service的鋼板信息管理系統(tǒng),已經(jīng)實際應用于大連船舶重工有限公司一工廠鋼板庫信息管理的項目中。運行此系統(tǒng)軟件時,用戶根據(jù)其權限的不同實現(xiàn)對鋼板信息的管理,權限高的用戶可以對到貨清單的手工錄入進行操作,所有用戶都可以進行鋼板信息的入庫、倒庫、盤點、出庫操作,系統(tǒng)也會提供良好的人機交互界面,便于用戶操作軟件。
當發(fā)送信息時出現(xiàn)網(wǎng)絡信號不好時,系統(tǒng)可自動提示網(wǎng)絡信號差的信息,并恢復到等待狀態(tài),當網(wǎng)絡信號好時重新傳送數(shù)據(jù)。
基于PDA與Web Service的無線條碼信息采集系統(tǒng)的使用,方便了用戶的操作,提高了錄入數(shù)據(jù)的可靠性及效率性,杜絕了用戶的玩忽職守現(xiàn)象,實現(xiàn)了鋼板數(shù)據(jù)的無紙化操作。設備缺陷顯示直觀,便于管理層進行決策處理。
[1]Feisi Science and Technique Center of Research and Development. Application and Development of Java Web Services. Beijing: Publishing House of Electronics.Industry, 2002.190-196 (in Chinese).
[2]Shmueli O.Architectures for internal Web services deployment. In: Apers P, ed. Proc.of the 27th Int’l Conf.on Very Large Data Bases.Roma:Morgan Kaufmann Publishers,2001.641-644.
[3]岳昆,王曉玲,周傲英.Web 服務核心支撐技術:研究綜述[J].軟件學報:2004,15(3):429-430.
[4](美)戴特爾(Deitel,H.M.)等著.C#大學教程[M].須德等譯.北京:電子工業(yè)出版社,2004.1:441-457.
[5]明日科技編著. ASP.NET 2.0開發(fā)技術大全[M].北京:人民郵電出版社,2008.2:347-361.