第3回 タグとEPCISをつなぐALE Serviceを使ってみよう


須永 啓太
イー・キャッシュ株式会社
プロフェッショナルサービス事業部
執行役員

宮田 高司
イー・キャッシュ株式会社
プロフェッショナルサービス事業部
2007年6月28日


 ALE Serviceが動作するIISの設定

 次に、ALE Serviceが動作するIISの設定を行います。管理ツールの「インターネットインフォメーションサービス(IIS)マネージャ」を起動して、インストーラが設定した情報を確認します。

 ALE Serviceのアプリケーション名が「ALE Service」になっていることを確認してください。「ALE Service」以外になっている場合は「削除」ボタンを押し、「ALE Service」に変更します。

 次に、ALE Serviceのアクセス権に関わる認証とアクセス制御を設定します。ディレクトリセキュリティタブから、匿名アクセスおよび認証コントロールの編集ボタンを押して「匿名アクセスを有効にする」をチェックします。

 RDSC Frameworkは、ASP.NET 2.0の環境で動作するように設計されています。「ASP.NETバージョン」が、「2.0.50727」に設定されていることを確認しましょう。

●ログファイル出力のためのTEMPフォルダ設定

 ALE Serviceのログファイルは、C:\TEMPフォルダに出力されます。今回は、ログファイルを使ってEPCISへのデータ送信を確認します。ALE Serviceからアクセスするユーザーは、「インターネットゲストアカウント」になるので、これがTEMPフォルダにログファイルを書き込めるように権限を与えます。

●ALE Serviceの設定確認

 それでは、ここまでの設定でALE Serviceが動作しているか確認してみましょう。「インターネットインフォメーションサービス(IIS)マネージャ」上の「ALEService」を開き、「ALEService.asmx」を右クリックして「参照」します。Webブラウザから「http://localhost/ALEService/ALEService.asmx」を呼び出しても同じことができます。

 設定が正常に終了していれば、ALE Serviceに実装されているメソッドの一覧画面が表示されます。これらのメソッドは、EPCglobalの仕様に準拠したものです。

 いくつかのメソッドの中に「ECSpec」という文字列があります。ECSpecとは、EPCネットワーク上でEPCデータをどのように処理するか定義したものです。大量のデータをユーザーの設定に合わせて抽出するためのフィルタリング機能ともいえます。1つのイベントを定義するという観点から、イベントサイクルとも呼ばれています。

 ECSpecで定義された配信先に提供されるデータが「ECReport」です。これはxmlで記述されます。

 以下に、メソッドについてまとめました。

メソッド名 説明
define ALE ServiceにECSpecを定義する
getECSpec 定義済みのECSpec名を使って、ECSpecの設定情報を取得する
getECSpecNames 定義済みのECSpec名のリストを取得する
getStandardVersion EPCglobalで定義されたALEのバージョン情報を取得する
getSubscribers ECReportを受信するURIのリストを取得する
getVendorVersion ALEを実装したベンダを特定するバージョン情報を取得する
immediate ALE ServiceにECSpecを定義する
poll defineで定義されたECSpecを実行する
subscribe ECReportを受信するsubscriberを定義する
undefine defineで定義されたECSpecを取り消す
unsubscribe subscribeで定義されたsubscriberを取り消す


 HTTPPostのインストール

 これでALE Serviceの動作環境の準備が完了しました。次に、ALE Serviceの設定をするツール「HTTPPost」をインストールします。ALE ServiceはIIS上に配置されるWebサービスですが、HTTPPostを使用することで任意の設定が可能になります。

 HTTPPost.msiを実行して、インストールをします。インストールが完了すると、「C:\HttpPost\default」というフォルダが作成されます。ALE Serviceに対応させるために、「default」というフォルダ名をreaders.xmlの「PhysicalReadername」で指定した「reader1」に変更してください。

 このフォルダには以下のファイルが格納されています。これらファイルは、前述のメソッドに対応した設定ファイルになっています。それぞれのファイルを設定することによりメソッドが機能します。

メソッド名 説明
define.xml ECSpecをALE Serviceに対して「define」するための定義ファイル
subscribe.xml ECSpecをALE Serviceに対して「subscribe」するための定義ファイル
unsubscribe.xml ECSpecをALE Serviceに対して「unsubscribe」するための定義ファイル
undefine.xml ECSpecをALE Serviceに対して「undefine」するための定義ファイル
define-subscribe.bat define、subscribeの一連の動作をバッチファイルにしたもの
unsubscribe-undefine.bat undefine、unsubscribeの一連の動作をバッチファイルにしたもの
HttpPost.exe RDSC AdapterとALE Serviceとのひも付けを行う実行ファイル

 続いて、各設定ファイルの修正を行います。

●define.xml

 define.xmlは、HTTPPostをどのALE Serviceと関連付けするかを定義します。このファイルでは、「LogicalReader1というRDSC AdapterからEPCデータを受信して10000ミリ秒(10秒)間隔でLogicalReader1というEPCReportを配信する」という動作が行われます。表にある4カ所を修正してください。

xml要素 設定値 説明
specName spc_reader1 ECSpecに関する名称
logicalReader LogicalReader1 ALE Serviceの設定で指定した名称
duration 10000 ALE ServiceからECReportを配信する間隔
(ミリ秒単位で指定可能)
reportSpec reportName LogicalReader1 ECReportをALE Serviceから配信する名称

<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
  <Define xmlns="urn:epcglobal:ALE:wsdl:1">
   <specName xmlns="">spc_reader1</specName>
   <spec schemaVersion="0" creationDate="0001-01-01T00:00:00" xmlns="">
    <logicalReaders>
     <logicalReader>LogicalReader1</logicalReader>
</logicalReaders>
   <boundarySpec>
   <duration>10000</duration>
   </boundarySpec>
  <reportSpecs>
   <reportSpec reportName="LogicalReader1">
    <reportSet />
    <output includeTag="true" />
   </reportSpec>
   </reportSpecs>
   </spec>
  </Define>
</soap:Body>
</soap:Envelope>

●subscribe.xml/unsubscribe.xml

 subscribe.xmlは、ALE Serviceに対するsubscribe、unsubscribeに関する設定を行います。このファイルでは、「ECReportをhttp://localhost/HWSMessages/BTSHTTPReceive.dllというURIに対して発行する」という動作が行われます。表にある2カ所を修正してください。

xml要素 設定値 説明
specName spc_reader1 ECSpecに関する名称
notificationURI http://localhost/HWSMessages/
BTSHTTPReceive.dll
EPCISでECReportを受信するURI【注】
【注】このURIに関しては、次回詳しく説明します

<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
  <Subscribe xmlns="urn:epcglobal:ALE:wsdl:1">
   <specName xmlns="">spc_reader1</specName>
   <notificationURI xmlns="">http://localhost/HWSMessages/
   BTSHTTPReceive.dll</notificationURI>
  </Subscribe>
</soap:Body>
</soap:Envelope>

 unsubscribe.xmlもsubscribe.xmlと同様に修正します。unsubscribe.xmlを使えば、subscribe.xmlで指定したECReportの配信を解除できます。

●undefine.xml

 undefine.xmlは、xml要素のspecNameを設定します。ここでは、specNameを「spc_reader1」にしてください。このファイルを使うことで、define.xmlで設定したECSpec(spc_reader1)を無効にできます。

●define-subscribe.bat/unsubscribe-undefine.bat

 HTTPPostは、インストーラで展開されたバッチファイルを使用します。2つのバッチファイルは、それぞれdefineした後にsubscribeを設定するものとundefineした後にunsubscribeするものです。これら2つのファイルには、HTTPPostに対する起動パラメータが記述されていますが、今回はこのまま使用します。

 以上で、HTTPPostの設定ファイルに関する設定が完了しました。

2/3

Index
タグとEPCISをつなぐALE Serviceを使ってみよう
  Page1
ALE Serviceとは何か?
ALE Serviceで扱うリーダ/ライタを指定する
Page2
ALE Serviceが動作するIISの設定
HTTPPostのインストール
  Page3
HTTPPostの動作確認


RDSC Frameworkで体験するEPCglobal 連載インデックス


RFID+IC フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

Master of IP Network 記事ランキング

本日 月間
ソリューションFLASH