張正柱,劉林真
(1.福建工程學院軟件學院,福州 350003;2.福州大學陽光學院,福州 350015)
基于物聯網的煙花溯源系統從易燃易爆物體監管信息化的視角出發,將物聯網技術應用到煙花爆竹流通過程的監管中,以實現及時全面的數據采集、遠程數據通信、海量歷史數據的存儲以及產品流通數據分析的功能,幫助規范煙花爆竹安全監管工作。加強安全監管部門對煙花爆竹行業的安全監管程度,有助于各級安全監管部門更全面地掌握轄區內煙花爆竹產品生產及其流通變化情況,實現消費者煙花爆竹產品的可溯源性[1],從而確保市場銷售的煙花“來源清楚、去向明白和消費者放心”。
煙花溯源系統由生產信息管理子系統、流通領域業務子系統、數據查詢子系統組成。中心建立大型數據庫,每個子系統與中心網絡連接并實現數據共享。煙花爆竹產品在生產、流通和查詢環節均使用唯一的RFID標簽作為信息載體,在管理終端記錄產品的基本信息及流通各環節的基本信息,消費者可以在追溯查詢網站或手機查詢客戶端上進行產品信息查詢。
目前,不同平臺的終端均需對煙花產品的流通信息進行查詢。本文利用Web服務技術創建了煙花溯源查詢系統,在多種不同的查詢終端提供統一的數據查詢接口,并給出了數據查詢系統的具體設計與實現方法。
在創建功能豐富的項目時,可能遇到的挑戰之一是應用程序集成問題,經常需要把許多應用程序組合為單一、易用的解決方案。然而,要組合的應用程序可能運行在多種平臺上,而每個平臺運行不同的操作系統,這些應用程序可能是用幾種不同的編程語言創建的。
為了把Internet上的應用程序連接在一起,Web Service提供了一個簡單、靈活、基于標準的模型,它允許利用現有的Internet基礎結構來鏈接應用程序,而不考慮它們的實現平臺、編程語言和對象模塊。Web Service是一種能被描述并通過網絡發布、發現和調用的自包含、自描述、松散耦合的軟構件,可實現平臺的獨立性和語言的獨立性[2]。
通俗地講,Web Service是一種網絡服務,它的本質是通過網絡調用其他網站的資源。如果一個軟件的主要部分采用了Web Service,即它把存儲或計算環節“外包”給其他網站,那么這個軟件就屬于Web Service架構。
Web Service的體系結構是面向服務的體系結構[3],如圖1 所示。
從圖1可以看出:Web Service體系結構中共有3種角色:服務提供者、服務代理和服務請求者[4]。服務提供者通過服務代理發布自己的服務并提供服務描述,對使用自身服務的請求進行響應;服務代理注冊已發布的服務,并對其進行分類以方便服務請求者查找使用;服務請求者通過服務代理查找所需服務并將其綁定至服務提供者提供的地址。所有服務的發布和調用都遵循一定的技術規范和標準。

圖1 Web Service體系結構
Web Service能實現無數Web和Windows應用程序與在其他平臺上運行的應用程序之間共享程序邏輯和功能,可以把Web Service看作一個能通過Web公開自身方法的組件[5]。
Web Service具有以下方面的優勢[6]:
1)數據交換
Web Service使用標準SOAP協議,使得數據交換更加方便,實現跨防火墻的通信。Web Service基于XML、XSD等標準,以一種最簡單的方式實現異構系統之間的互通信和數據交換,實現了跨平臺互操作。
2)數據封裝
Web Service使用XML對數據進行封裝。對于使用者而言,能且僅能看到該對象提供的功能列表。
3)應用程序集成
企業中經常要把用不同語言寫成、在不同平臺上運行的各種程序集成起來,而這種集成將耗費很大的人力、物力。Web Service把應用程序的邏輯和數據通過Web“暴露”出來,其他使用不同語言、不同平臺的客戶均可重用這些應用程序。企業也可把關鍵的商務應用“暴露”給指定的供應商和客戶。
4)成本控制
Web Service的技術實現難度小,在實際項目開發中的成本是最低的,無論軟件開發人員的培訓或者Web service產品的購買都是低廉的。
煙花溯源查詢系統可以使用網頁、手機移動終端等多種查詢方式,方便用戶進行煙花產品流通信息查詢。系統通過數據查詢WEB服務提供針對不同平臺的統一數據查詢接口,以實現資源的跨平臺訪問。系統總體結構如圖2所示。

圖2 煙花溯源查詢系統總體結構
2.2.1 Web Service 創建
煙花溯源查詢系統創建的Web Service基于.NET平臺,使用C#語言編寫,后臺數據庫采用SQL Server 2008。在.NET中編寫Web服務時,為給外部應用程序提供互聯網調用函數,需要在聲明函數時添加Web Method特性,讓系統知道這個函數可以被其他的程序通過SOAP調用。所創建的查詢Web服務主要使用3個查詢方法提供煙花信息、商家信息以及煙花流通信息,查詢服務類定義如下:


2.2.2 Web Service 發布
為了發布Web服務以便其他用戶能使用它,在一個可查找的公共UDDI目錄上登記服務。UDDI是一種開放的、與供應商無關的標準,可以通過其找到現有的Web服務或發布Web服務[7]。UDDI是一個分布式的互聯網服務注冊機制,為了讓使用者方便地查找,服務提供者可以將Web Service注冊到UDDI商用注冊網站。實際上,Web服務并沒有拷貝到UDDI的服務器上,UDDI的作用是列出現有的服務,指引人們找到服務所在的服務器。從這個意義上說,它是一種真正的信息索引目錄而不是存儲具體信息的倉庫。
當然,Web Service并非必須在UDDI中注冊后才能使用。因為在Web Service的WSDL文件中已經定義了Web Service的URI地址,使用者可以直接使用Web Service的URI進行服務調用。當服務提供者不想提供Web Service給外部用戶使用時,可以不進行服務注冊。本系統所創建的Web Service目前暫未向其他應用公開,因此只將其發布在本地IIS服務器上以供本系統的網站查詢終端及手機客戶端調用。
2.2.3 Web Service 調用——客戶端實現
1)ASP.NET網頁查詢終端
基于 ASP.NET的 Web頁面調用 Web Service,需要在ASP.NET網站中添加對 Web Service的Web引用,.NET會下載服務說明到本地計算機并為Web Service生成代理類。Web Service代理類包含調用每一個WebMethod的指令,通過使用代理類的對象可通過SOAP協議與Web Service進行通信。
2)Android客戶端
在Android SDK中并沒有集成提供調用Web Service的庫,因此需要使用第三方的SDK來調用Web Service。Google為 Android平臺開發 Web Service客戶端提供了Ksoap2,可以下載相應的jar包后復制到Eclipse工程的lib目錄中,同時在E-clipse工程中引用這個 jar包。具體調用 Web Service步驟如下:
①創建Soap Object對象。創建該對象時需要傳入所調用Web Service的命名空間、Web Service的方法名,如果需要使用其addProperty方法,則要設置調用方法的參數值;
②創建Soap Serialization Envolope對象。該對象描述SOAP請求信息,設置body Out屬性;
③創建Http Transport SE對象,該對象用于調用Web Service操作,通過其call方法調用Web Service方法;
④使用Soap Object對象的getResponse方法獲得Web Service方法的返回結果。
基于Web Service的煙花溯源查詢系統能很好地解決跨平臺之間的數據訪問共享問題,為后續業務功能變更提供了較大的靈活性。Web Service技術的出現為數據組件共享提供了一種新的思路。隨著Web Service技術的不斷成熟與普及,Web Service在跨平臺應用中將有著廣闊的前景。
[1]劉曉青.基于物聯網的煙花爆竹流通安全監管系統的設計[J].電腦知識與技術,2012,29:6921-6923.
[2]俞文躍,張長勝.基于Web Service三層體系結構的庫存管理系統的開發[J].福建電腦,2008(12):108-109.
[3]劉劍濤.基于Web Service的數字圖書館跨平臺檢索研究[J].圖書館學研究,2008(6):33-35.
[4]安蓓.基于Web Services的跨平臺檢索系統的研究與開發[D].太原:太原理工大學,2007.
[5]楊志和,李業榮.基于Web Services的企業電子商務應用集成技術的設計與實現[J].廣西科學院學報,2006(3):161-163.
[6]李波.基于面向服務架構的企業電子商務平臺的設計與實現[D].上海:上海交通大學,2007.
[7]李勁.動態電子商務的Web服務[M].北京:清華大學出版社,2002.
[8]何尚憲.食品(酒類)安全溯源系統設計與實現[D].廣州:華南理工大學,2012.
[9]Liddell S,Bailey D.Market opportunities and threats to the U.S.pork industry posed by traceability systems[J].International Food and Agribusiness Management Review,2001(4):287-302.
[10]Rosenvold K,Andersen H J.Factors of significance for pork quality-areview[J].Meat Sci,2003,64:219-237.
[11]蔣武洲.RFID應用系統通過Web服務傳輸數據的研究與實現[J].計算機工程與設計,2007,13:3126-3129.
[12]曹靜琪.基于物聯網的農產品質量溯源系統解決方案[D].大連:東北財經大學,2011.
[13]屈崇博,蔡國永.基于SOA的Web Service組合研究及應用[J].微型機與應用,2013(10):7-10.
[14]余楷鑫,姚曉虹.Android客戶端訪問Web Service的實現[J].電子世界,2013(3):152-154.
[15]黃錦川,金煒東.基于Android平臺Web服務的應用研究[J].鐵路計算機應用,2010(11):24-27.