IBM Websphere Premises Server V6.1入門介紹和API實踐

CloudSpace發表於2009-04-15

RFID技術介紹

RFID(Radio Frequency Identification)是一種非接觸的自動識別技術,其基本原理是利用射頻訊號和空間耦合(電感或電磁耦合)傳輸特性,實現對被識別物品的自動識別。

無線射頻識別技術是一項易於操控、簡單實用且特別適合用於自動化控制的技術,其所具備的獨特優越性是其它識別技術無法企及的。它既支援只讀工作模式也支援讀寫工作模式,且無需接觸或瞄準;可自由工作在各種惡劣環境下;可進行高度的資料整合。另外,由於該技術很難被仿冒、侵入,使RFID具備了極高的安全防護能力。

RFID標籤中載有關於目標物的各類相關資訊,如:該目標物的名稱,目標物運輸起始終止地點、中轉地點及目標物經過某一地的具體時間等,還可以載入諸如溫度等指標。RFID可靈活附著於從車輛到載貨底盤的各類物品。

RFID系統一般由三個部分組成:

1. RFID標籤(Tag or Transponder):按照標籤獲取電能的方式不同可以分為主動式標籤和被動式標籤。

  • 主動式標籤內部自帶電池進行供電,。主動式標籤的缺點主要是標籤的使用壽命受到電池供電限制,隨著電子標籤內電池電力的消耗,資料傳輸的距離會越來越小。
  • 被動式標籤內部不帶電池,要靠外界提供能量才能正常工作。被動式標籤典型的產生電能的裝置是天線與線圈,當電子標籤進入系統的工作區域,天線接收到特定的電磁波,線圈就會產生感應電流,再經過整流電路給標籤供電。被動式標籤的缺點主要是資料傳輸的距離要比主動式標籤短。

2. 閱讀器(Reader):閱讀器一般包含一個產生射頻訊號的射頻收發器(rf transceiver) 和一個在閱讀器及RFID標籤間傳輸射頻訊號的天線。

3. 印表機(Printer):印表機的功能主要是向RFID標籤中寫入資訊。

RFID技術的主要應用領域包括

  • 物流:物流過程中的貨物追蹤,資訊自動採集,倉儲應用,港口應用,郵政,快遞
  • 零售:商品的銷售資料實時統計,補貨,防盜
  • 製造業:生產資料的實時監控,質量追蹤,自動化生產
  • 服裝業:自動化生產,倉儲管理,品牌管理,單品管理,渠道管理
  • 醫療:醫療器械管理,病人身份識別,嬰兒防盜
  • 身份識別:電子護照,身份證,學生證等各種電子證件
  • 防偽:貴重物品(煙,酒,藥品)的防偽,票證的防偽等
  • 資產管理:各類資產(貴重的或數量大相似性高的或危險品等)
  • 交通:高速不停車,計程車管理,公交車樞紐管理,鐵路機車識別等
  • 食品:水果,蔬菜,生鮮,食品等保鮮度管理
  • 動物識別:訓養動物,畜牧牲口,寵物等識別管理
  • 圖書館:書店,圖書館,出版社等應用
  • 汽車:製造,防盜,定位,車鑰匙
  • 航空:製造,旅客機票,行李包裹追蹤
  • 軍事:彈藥,槍支,物資,人員,卡車等識別與追蹤

    IBM Premises Server V6.1的主要功能和應用場景

    IBM Premises Server V6.1 簡介

    • RFID技術是感測器技術的一種,IBM® WebSphere® Premises Server為以RFID技術為核心的感測器解決方案提供了中介軟體支援。Premises Server可以確保從RFID閱讀器到後臺業務邏輯的可靠傳輸,可以被應用於適合使用RFID技術的所有領域。
    • 它主要包含以下幾方面的功能:擴充套件了IBM SOA的過程整合平臺,整合感測器的資料和事件與企業業務流程和SOA商業應用使客戶能夠快速部署安全,可靠的解決方案。
    • 提供了一個完善而智慧的業務規則引擎來處理來自不同型別的感測器的資料,可以加快部署速度,增加流程的靈活性和控制。
    • 支援實時定位跟蹤服務,包括裝置介面,主動式RFID裝置,核心定位程式和一個用於實現視覺化場景的繪圖程式。
    • 增強的裝置服務允許在單一平臺上支援多種感測器型別,包括被動式RFID裝置,主動式RFID裝置和環境感測器。
    • 為感測器的資料採集和事件傳輸提供了一個靈活的架構,支援集中和分散式的部署。
    • 為感測器資料和業務流程的整合提供了工作流工具,支援對業務流程的建立,定製和監控。
    • 與WebSphere RFID Information Center相結合的解決方案,可以實現企業應用對RFID資訊的管理和整合,通過基於EPCglobal標準的資料庫可以實現企業和業務夥伴的資源共享。

    應用場景介紹

    下面我們將以示例應用程式Dock Door Receiving為例,介紹Premises Server是如何與感測器以及RFID閱讀器協同工作的。

    Dock Door Receiving可以被應用於零售業的商店或者配送中心,用於對倉庫中貨物的進出進行跟蹤和統計。在這個應用場景中,首先需要在商店或者配送中心的倉庫門口安裝一個檢測門(在Premises Server中稱為Portal),包含如下裝置:

    • RFID閱讀器
    • 天線
    • 檢測門開關
    • 感測器(通常是一個運動感測器(motion sensor),當有物體通過時,感測器的輸出電壓會進行一次翻轉)
    • 反饋裝置(例如指示燈)

    其中,天線,開關,感測器,反饋裝置都連線到RFID閱讀器上。

    如下圖 1 所示:


    圖 1. Dock Door Receiving系統結構圖

    Premises server通過I/O Agent、Reader Agent和Portal Controller Agent控制以上物理裝置,完成整個業務邏輯:

    1. 管理員按開關,開啟檢測門,開關通過RFID閱讀器把訊息傳送到I/O Agent。
    2. 當貼有RFID標籤的貨物通過檢測門時,觸發運動感測器,該訊息通過RFID閱讀器傳送到I/O Agent。
    3. I/O Agent接收到感測器觸發事件以後,將該事件傳送到Portal Controller Agent。
    4. Portal Controller Agent根據事先定義的業務邏輯向Reader Agent傳送開始讀取命令。
    5. Reader Agent向RFID閱讀器傳送命令開始讀取RFID標籤,並接收RFID閱讀器讀到的RFID標籤資訊。同時I/O Agent向RFID閱讀器傳送開啟黃色指示燈的命令,提示管理員RFID閱讀器開始工作。
    6. 經過一段很多的時間以後,運動感測器復位,Portal Controller Agent接收到該訊息以後,向Reader Agent傳送停止讀取命令。
    7. Reader Agent向RFID閱讀器傳送停止讀取命令,並把接收到的RFID標籤資訊傳送給Premises Server。同時I/O Agent向RFID閱讀器傳送熄滅黃色指示燈的命令,提示管理員RFID閱讀器停止工作。
    8. Premises Server把RFID標籤資訊傳送給企業應用程式。
    9. 企業應用程式根據RFID標籤資訊判斷是否是期望的貨物,並返回“接受”或“拒絕”訊息。
    10. Premises Server將“接受”或“拒絕訊息傳送給Portal Controller Agent。如果是“接受”訊息,Portal Controller Agent將通過I/O Agent向RFID閱讀器傳送開啟綠色指示燈的命令,否則傳送開啟紅色指示燈的命令。

    Dock Door Receiving是Premises Server提供的一個簡單的示例應用程式,客戶還可以通過Premises Server API編寫自己的應用程式,達到實現複雜業務邏輯的目的。

    IBM Premises Server V6.1 API概述

    Premises API為讀取Premises Server資訊和控制Premises Server提供了廣泛的介面,可以應用於各種各樣的使用者場景。比如,

    通過Premises Server API可以查詢Premises Server的以下資訊:

    1. RFID閱讀器的詳細資訊
    2. RFID閱讀器的狀態
    3. RFID閱讀器的型別(廠商,型號等)
    4. RFID標籤的型別
    5. 供應鏈屬性
    6. RFID標籤列印任務的詳細資訊
    7. 場所(Location)資訊(通常一個Location對應Dock Door Receiving場景中的一個檢測門)
    8. 控制器(Controller)資訊

    通過Premises Server API提供了以下基本的控制命令

    1. 開始和停止RFID閱讀器命令
    2. 發出拒絕或者接受RFID標籤命令
    3. 提交列印RFID標籤命令

    使用者可以通過本地(和Premises Server安裝在一臺機器上)或者遠端(和Premises server安裝在不同的機器上)(通過Web Services)的介面方式來呼叫Premises Server API。為了讀者對API有個更清晰的瞭解,下面介紹一下Premises Server API中常用的核心類和其它類。

    IBM Websphere Premises Server API 中常用的核心類

    以下是IBM Websphere Premises Server API庫的核心類的列表:

    1. PremisesAccess

    用來對API庫進行初始化。這是我們使用這個 API 中的第一個類。

    2. PremisesAccessLocal

    從PremisesAccess繼承而來,表示API連線到一個本地的Premises server。

    3. PremisesAccessRemote

    從PremisesAccess繼承而來,表示API連線到一個遠端的Premises server。

    4. Premises Context

    這個類有個靜態函式GetPremisesAccess用來返回一個PremisesAccess物件。

    5. Printer

    Printer類用來處理印表機的資訊。比如讀取印表機的IP地址,埠號,同時也可以通過該類的submit方法來列印RFID標籤。

    6. PrinterType

    用來描述在Premises server上的印表機的型別定義。

    7. PrintTemplate

    用來描述一個已經在Premises server上定義好的印表機模板(Printer template).PrintTemplate 物件不能建立,改變或者刪除已經在Premises server上定義好的印表機模板。PrintTemplate物件允許自己定製標籤(Labels)。PrintTemplate物件保留了一個指向ZIP包的URL字串,這個被指向的ZIP包含了印表機模板的詳細資訊。

    8. Reader

    讓我們可以處理Reader的資訊。比如讀取RFID閱讀器的IP地址,埠號,同時也可以通過該類的start/stop方法來控制RFID閱讀器的開始和結束。

    9. ReaderType

    用來描述在Premises Server上的RFID閱讀器型別定義。

    10. PremisesAccessException

    預設的異常類。

    其它類

    在使用IBM Webpshere Premises Server API庫時,您會發現還有其他一些類也非常有用

    1. SupplyChainProfile

    用來描述供應鏈的資訊。

    2. PackType

    繼承於SupplyChainprofile,用來描述供應鏈的包裹型別(PackType)

    3. Device

    用來描述在Premises Server中已經配置了的Device物件。Device類提供了Device ID、Location ID、配置組名、裝置狀態等資訊可訪問。

    4. Location

    用來描述在Premises Server中已經配置了的Location物件。

    5. Controller

    用來描述在Premises Server中已經配置了的Controller物件。它提供了Controller ID,User Name以及相關聯的Location ID等資訊可供訪問。

    接下來,我們再介紹一下怎樣在Eclipse環境下安裝和配置Premises Server API。

    在Eclipse 3.3下安裝和配置IBM Websphere Premises Server API

    要將Webpshere Premises Server API設定為與WebSphere Premises Server一起工作,請執行以下步驟。

    1. 安裝IBM Java 1.5.0。Premises Server V6.1 API 目前只支援 Java 1.5。
    2. 下載最新版本的 Eclipse (http://www.eclipse.org/downloads/),然後解壓縮。
    3. 在Websphere Premises Server V6.1機器上,找到 \premises\API\lib,其中 為Premises server 的 Home 目錄,Windows 作業系統下預設為 C:\Program Files\IBM\RFID
    4. 在這個目錄中,找到以下 JAR 檔案:
      1. ibmrfid_premises_api_client.jar
      2. ibmrfid_premises_api_ejbClient.jar
      3. ibmrfid_premises_api_ws.jar
      4. ibmse_common_util.jar
      5. ibmrfid_premises_util.jar
      6. Rfid.jar
      7. xsdbeans.jar
    5. 將這些 JAR檔案複製到工程目錄中,確保您的Premises Server API工程的classpath包含這個目錄。
    6. 在Websphere Premises Server V6.1 機器上,找到 /lib/plugins 目錄,其中 為 IBM Webpshere Application Server 的 Home 目錄,預設為 C:\Program Files\IBM\WebSphere\AppServer
    7. 將這兩個目錄下的所有 JAR 檔案複製到 Premises Server API 工程中,確保您的 Premises Server API 工程的 classpath 包含這個目錄。

      Dock Door Receiving程式碼實現示例

      本示例展示瞭如何使用Websphere Premises Server API來實現Dock Door Receiving應用場景。在下載本示例之後,我們需要使用 Eclipse 的匯入功能將工程匯入到Eclipse的workspace中。匯入之後,就可以啟用這個示例程式。下面介紹示例中使用的主要功能:

      • 獲得並初始化PremisesAccess物件:
      static final String PremiseIP = new String("xxx.xxx.xxx.xxx");
      static final String PremisePort = new String("9080");
      PremisesAccess access; 
      InvokePremisesAPI()
      {
      access = PremisesContext.getPremisesAccess(PremiseIP,PremisePort);
      }
      

      • 傳送啟用Location命令,呼叫這個命令後,閱讀器開始工作,
      public void SetStartLocation (String LocationID)
      {
      try
      	{
      		access.startLocation(LocationID);
      	} catch (PremisesAccessException e)
      	{
      		e.printStackTrace();
      	}
      }
      

      • 傳送停止Location命令,呼叫這個命令後,閱讀器停止工作:
      public void SetstopLocation (String LocationID)
      {
      try
      	{
      		access.stopLocation(LocationID);	
      	} catch (PremisesAccessException e)
      	{
      		e.printStackTrace();
      	}
      }
      

      • 讀傳送“接受”訊息給閱讀器
      public void SetSendAcceptToLightStack(String LocationID)
      {
      	try
      	{
      		access.sendAcceptToLightStack(LocationID);
      	}catch (PremisesAccessException e)
      	{
      		e.printStackTrace();
      		}
      }
      

      • 讀傳送“拒絕”訊息給閱讀器
      public void SetSendRejectToLightStack(String LocationID)
      {
      try
      	{
      	access.sendRejectToLightStack(LocationID);
      	}catch (PremisesAccessException e)
      	{
      	e.printStackTrace();
      	}
      }
      

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-589252/,如需轉載,請註明出處,否則將追究法律責任。

相關文章