Oracle Sensor Edge Server ガイド 10g(10.1.3.1.0) B31872-01 |
|
この章では、Sensor Edge Serverコンソール(SESコンソール)を使用してOracle Sensor Edge Serverインスタンスを管理および監視する方法について説明します。この章の内容は次のとおりです。
Oracle Sensor Edge Serverを使用すると、センサー・デバイスまたはアプリケーションからイベント・データを受信し、受信したデータを共通のデータ形式に標準化した後、フィルタを使用して余分な情報を除外することで、エンタープライズはセンサーからの情報をITインフラストラクチャおよびビジネス・アプリケーションに取り込むことができます。イベント・データは標準化されたイベント・メッセージとなり、ディスパッチャを使用してエッジ・クライアントに送信されます。Oracle Sensor Edge Serverのディスパッチャの構成に応じて、Oracle Sensor Edge ServerクライアントはWebサービス、HTTP、EPC PML、ALE Webサービスまたはデータベース・ストリームを使用してイベント・メッセージを受信します。メッセージは常にイベントによって受渡しされます。
SESコンソールでは、Oracle Sensor Edge Serverインスタンスを管理および監視できます。SESコンソールのタブと、そのタブで実行できる操作を表3-1に示します。
タブ | 操作 |
---|---|
メイン |
次の操作があります。 |
監視イベント |
|
ログの表示 |
|
イベント・レポート |
次の操作があります。 |
OC4J管理者の名前およびパスワードを使用してSESコンソールにログインすると、コンソールではデフォルトで「構成」タブのメイン・ページが表示されます。このページには、現在のOracle Sensor Edge Serverインスタンスの使用状況、その基本構成、およびその現行ディスパッチャが全体的に表示されます。このページから、「サーバー」や「サイト名」パラメータなどの基本構成を編集したり、別のディスパッチャ方法を選択することができます。Oracle Edge Sensor Serverインスタンスの基本構成の詳細は、「Oracle Sensor Edge Serverインスタンスの一般情報の設定」を参照してください。
Oracle Sensor Edge Serverインスタンスの基本構成の詳細は、「Oracle Sensor Edge Serverインスタンスの一般情報の設定」を参照してください。ディスパッチャの詳細は、「デバイス、フィルタ・インスタンスおよびディスパッチャの構成」を参照してください。
SESコンソールの各ページに表示されるナビゲーション・ツリー(図3-2)では、現在のOracle Sensor Edge Serverインスタンスおよびリポジトリ内の拡張機能(フィルタ、ドライバおよびディスパッチャ)を構成できます。ツリーでは現在のOracle Sensor Edge Serverの構成ページが階層編成され、最上位ノードに現在のOracle Sensor Edge Serverの名前が表示されます。ノードの隣にあるプラス(+)記号またはマイナス(-)記号をクリックすると、項目を表示したり、非表示にすることができます。(図3-2の「グループ」のように)ツリーで下線の付いた項目は、変更できます。下線の付いた項目をクリックすると、選択した項目を変更および管理できるプロパティ・ページにアクセスできます。その他の項目(下線の付いていない項目)はタイトルであり、変更できません。
ツリーからアクセスしたページでは、次の操作を実行できます。
SESコンソールでは、「エッジ・サーバー・インスタンス・リスト」ページを使用して、同じセンサー・データ・リポジトリに接続されている他のOracle Sensor Edge Serverインスタンスにアクセスできます。このページにアクセスするには、「他のサーバー」アイコン(図3-3)を使用します。
このページの「エッジ・サーバー・インスタンス・リスト」表には、同じセンサー・データ・リポジトリに接続されているOracle Sensor Edge Serverのエントリが一覧表示されます。これらのエントリにより、他のサーバー・インスタンスを特定したり、他のサーバー・インスタンスにアクセスすることができます。この表を使用すると、別のOracle Sensor Serverインスタンスにアクセスしたり、他のOracle Sensor Serverインスタンスの実行ステータスを表示することができます。また、他のOracle Sensor Serverインスタンスのエントリの編集および削除もできます。
別のOracle Sensor Serverインスタンスにアクセスするには、「エッジ・サーバー・インスタンス・リスト」表の「サーバー名」列のインスタンス名をクリックし、表示されるログイン・ページにOC4Jの管理者の名前とパスワードを入力します。
表のメモ帳のアイコンをクリックすると、選択したOracle Sensor Edge Serverインスタンスのエントリを編集できます。ゴミ箱のアイコンをクリックすると、エントリを削除できます。ページの「新規エッジ・サーバー・インスタンス」セクション内のフィールドを使用すると、Oracle Sensor Edge Serverインスタンスのエントリを作成できます。このエントリはインスタンスの名前と場所で構成されます(「Oracle Sensor Edge Serverインスタンスのエントリの作成」を参照)。
Oracle Sensor Edge Serverインスタンスのエントリを作成するには、次のようにします。
http://<hostname/ip address>:<port>/edge
<port>
の値は、Oracle Application Server Containers for J2EE(OC4J)がリスニングするポートです。これは、Oracle Sensor Edge Serverインスタンスが実行されているマシン上に存在します。OC4Jリリース10.1.3インスタンスの場合、ポート値を見つけるには、oracle_home/opmn/binに移動してから次のコマンドを実行します。
opmnctl status - l
OC4Jリリース10.1.2インスタンスの場合、OC4Jリスナー・ポートは通常8888です。OC4Jリリース10.1.2の詳細は、『Oracle Application Server Containers for J2EEユーザーズ・ガイド』および「OC4Jのインストール」を参照してください。
エントリを編集するには、まず、選択したOracle Sensor Edge Serverエントリのメモ帳アイコンをクリックします。編集ページが表示され、選択したエントリに設定されている情報が「サーバー名」および「URL」フィールドに表示されます。次のいずれか(または両方)の操作を実行します。
変更をコミットする場合は「エントリの更新」をクリックし、エントリを元の状態に戻す場合は「取消」をクリックします。
Sensor Edge Serverインスタンス・ページの「利用状況統計」セクション(図3-1)に、Oracle Sensor Edge Serverインスタンスの次のパフォーマンス・メトリックが一覧表示されます。
「キューの消去」をクリックすると、システム内のキューに格納されているイベントがすべて削除されます(また、「キューに入れられたイベント」に表示される数値が0に設定されます)。この機能を使用して、ディスパッチャを設定および起動する前に、またはOracle Sensor Edge Serverインスタンスを再起動する前に、バックアップされている古いイベント・メッセージをパージします。
メイン・ページの「一般設定」セクションでは、Oracle Sensor Edge Serverインスタンスの基本情報(表3-2)を編集できます。「変更の保存」をクリックして、更新をOracle Sensor Edge Serverにコミットします。
パラメータ | 説明 |
---|---|
サーバー名 |
Oracle Sensor Edge Serverインスタンスの名前。 |
サイト名 |
Oracle Sensor Edge Serverのサイト名。このパラメータは、複数のOracle Sensor Edge Serverインスタンスを論理的に区別するためのグループ化メカニズムである。 |
内部キュー |
リーダー(またはデバイス)から送信されたイベント・メッセージは、内部キューに格納される。ディスパッチャはこのキューからイベントを取り出してディスパッチする。たとえば、ストリーム・ディスパッチャはこのキューからイベント・メッセージをデータベースにディスパッチする。 次の各オプションを使用すると、イベント・メッセージがディスパッチされる前にどのように保持されるかを制御することによりデータを保護し、イベント・データを保護できる。 次のオプションがある。
|
ログ・レベル |
ログ・ファイルに書き込まれるメッセージの重大度レベルを設定する、次のエラー記録オプションのリスト。 ログ・ファイルに書き込まれるエラー・メッセージは、選択したログ・レベルのみでなく、選択したログ・レベルよりも重大度の高いログ・レベルも反映する。選択したレベルにより、「ログの表示」タブに表示されるデータが決定される。「ログ情報の表示」も参照。 |
アーカイブを使用 |
このオプションを選択すると、イベントがセンサー・データ・リポジトリに保存される。 |
停止タイムアウト |
Oracle Sensor Edge Serverが、正常に機能していないスレッドを停止するまでに待機する時間(ミリ秒)を入力する。 |
メイン・ページの「ディスパッチャの変更」(図3-4)をクリックすると、Oracle Sensor Edge Serverで使用されるディスパッチャを変更できます。「Oracle Sensor Edge Serverインスタンス用のディスパッチャの管理」も参照してください。
表示される「検索と選択」ページ(図3-5)から、リモートWebサービス、Oracle Streamsなどの方法を使用して(クライアント・アプリケーションにはHTTPを使用して)イベント・メッセージを送信するエッジ・ディスパッチャを選択できます。
Oracle Sensor Edge Serverインスタンスで同時に使用されるディスパッチャは1つのみです。ディスパッチャを現行ディスパッチャとして割り当てた後、Oracle Sensor Edge Serverインスタンスを再起動する必要があります。「Oracle Sensor Edge Serverインスタンスの起動と停止」を参照してください。
ツリー内の「使用可能な拡張機能」フォルダ(図3-6)を展開すると、Oracle Sensor Edge Serverインスタンスに使用可能なディスパッチャ、フィルタおよびドライバが表示されます。ディスパッチャは、Oracle Sensor Edge Serverインスタンスに送信されたイベントをディスパッチ・レイヤーまたは直接アプリケーションに転送します。ドライバを使用すると、(リーダーなどの)デバイスとOracle Sensor Edge Serverインスタンスと間の通信が可能になります。また、通常、(重複イベントなどの)不要なイベントを削除するか、1つ以上のイベントを削除して上位レベルのイベントに変換するフィルタも使用可能になります。
ドライバなどの拡張機能をクリックすると、選択したドライバのデフォルト・プロパティが表示されます。パラメータの値セットは読取り専用であり、これらのオブジェクトの現在の構成を表しているわけではありません。Oracle Sensor Edge Serverインスタンスでは拡張機能のライブ・インスタンスは使用されないため、これらのパラメータを構成することはできません。かわりに、Oracle Sensor Edge Serverインスタンスにより、「使用可能な拡張機能」フォルダに示されたフィルタおよびドライバのインスタンスを使用してイベント・データの読取りとクレンジングが実行されます。これらのフィルタ・インスタンスおよびドライバ・インスタンス(デバイスと呼ばれる)を作成するには、デバイス・グループを作成する必要があります。デバイス・グループの作成の詳細は、「デバイス、フィルタ・インスタンスおよびディスパッチャの構成」を参照してください。Sensor Edge Serverのディスパッチャの設定の詳細は、「Oracle Sensor Edge Serverインスタンスのディスパッチャの設定」を参照してください。
Oracle Sensor Edge Serverインスタンスによるイベント・データの受信、フィルタリングおよびディスパッチを可能にするには、まずデバイス・グループを作成する必要があります。デバイス・グループは、デバイス(ドライバのインスタンス)の論理グループと、これらのデバイスに関連付けられたフィルタで構成されます。1つのOracle Sensor Edge Serverインスタンスに対して、1つまたは多数のデバイス・グループをインスタンス化できます。各デバイス・グループは、それに属するすべてのデバイス(およびそれに関連付けられたフィルタ)の処理を行います。
デバイス・グループにより、1つ以上のデバイスを論理デバイス(グループ)に編成します。デバイス・グループを使用して、処理するデバイスを1つのイベント・ストリームとして関連付けます。たとえば、ウェアハウスのすべての出口に設置された全デバイスで構成される、Warehouse Exitsという名前のデバイス・グループを作成(また必要な場合、このグループにフィルタ・インスタンスを追加)したとします。この場合、生成されるイベントはすべて、複数のデバイスからでなく1つの論理デバイスから生成されたデータとして表示されます。
(前述のWarehouse Exitsデバイス・グループの場合のように)デバイスを1つの論理的な管理単位として扱う必要がある場合、管理のためにデバイスをグループ化できます。あるいは、デバイスにより実行されるフィルタリング・タイプに基づいてデバイスをグループ化することもできます(図3-7)。たとえば、リーダー間フィルタリングによってデバイスをグループ化する場合は、関連するデバイス・グループを作成し、そのグループにフィルタをアタッチすることができます。詳細は、「デバイスまたはデバイス・グループのフィルタ・インスタンスの管理」を参照してください。
「グループ」フォルダをクリックすると、「グループ管理」ページ(図3-8)が表示され、デバイス・グループおよびそれぞれのフィルタが一覧表示されます。また、このページにはグループごとのデバイスの実行ステータスも一覧表示されます。さらに、このページでは新しいデバイス・グループを作成することもできます(「デバイス・グループの作成」を参照)。特定のデバイス・グループの構成を表示するには、「グループ」フォルダを展開し、適切なノードを選択して、選択したデバイス・グループの「グループの構成」ページを表示します。デフォルトのデバイス・グループは、「未割当て」という名前の特殊な予約済グループです。「グループの構成」ページの詳細は、「デバイス・グループの編集」を参照してください。
Oracle Sensor Edge Serverインスタンスをデバイスおよびフィルタに接続する場合、最初にデバイス・グループを作成します。デバイス・グループを作成した後は、デバイス・グループにデバイス(使用可能なドライバのインスタンス)を移入してから、フィルタ・インスタンスを個々のデバイス(またはデバイス・グループ全体)にアタッチします。新しいデバイス・グループを作成するには、次のようにします。
select_device.gifはデバイスの「検索と選択」ページを示しています。
リーダー | インジケータ、通知および表示 | プリンタ | その他 |
---|---|---|---|
Alienリーダー・ドライバ(「Alienリーダー・ドライバ・ベースのデバイスの構成」を参照) BarcodeDriver(「BarcodeDriverベースのデバイスの構成」を参照) Intermec BRIドライバ(「Intermec BRIドライバによりサポートされるデバイスの構成」を参照) Intermecリーダー・ドライバ(「Intermecリーダー・ドライバ・ベースのデバイスの構成」を参照) Matricsドライバ(「Matricsドライバ・ベースのデバイスの構成」を参照) Samsysドライバ(「Samsysドライバ・ベースのデバイスの構成」を参照) Tycoリーダー・ドライバ(「Tycoリーダー・ドライバ・ベースのデバイスの構成」を参照) |
AnimationDriver(「AnimationDriverのインスタンスの構成」を参照) ConsoleDriver(「ConsoleDriverのインスタンスの構成」を参照) Edge Simulatorドライバ(「Edge Simulatorドライバ・ベースのデバイスの構成」を参照) PatliteDriver(「PatliteDriverベースのデバイスの構成」を参照) Proliteドライバ(「Proliteドライバ・ベースのデバイスの構成」を参照) |
LpmlDriver(「LpmlDriverベースのデバイスの構成」を参照) |
Edge Echoドライバ(「Edge Echoドライバ・ベースのインスタンスの構成」を参照) |
デバイス・グループの作成、編集または削除を完了した後、Oracle Sensor Edge Serverをいったん停止してから再起動する必要があります。詳細は、「Oracle Sensor Edge Serverインスタンスの起動と停止」を参照してください。
注意
必要な場合、次の手順でデバイス・グループにフィルタを割り当てます。
「グループの構成」ページ(図3-8)では、デバイス・グループのプロパティを編集できます。このページは、ナビゲーション・ツリー(図3-2)内のデバイス・グループをクリックすると表示され、次の操作を実行できます。
デバイス・グループの名前を変更するには、次のようにします。
デバイスおよびフィルタ・インスタンスをデバイス・グループに追加するには、「新規デバイスの追加」および「新規フィルタの追加」ボタンを使用します(「デバイス・グループの作成」を参照)。デバイスおよびフィルタ・インスタンスの割当てを完了した後、「更新」をクリックします。
新しいデバイスやフィルタ・インスタンスの追加などの操作を実行する場合は、そのたびにデバイス・グループをいったん停止して起動する必要があります。デバイス・グループに属するデバイスを起動および停止するには、「すべてのデバイスの起動」ボタンおよび「すべてのデバイスの停止」ボタンを使用します。
「グループの削除」ボタンを使用すると、Oracle Sensor Edge Serverからデバイス・グループを削除できます。デバイス・グループを削除すると、そのグループに対して構成されているデバイスおよびフィルタ・インスタンスもすべて削除されます。デバイス・グループを削除した後、変更を有効にするには、Oracle Sensor Edge Server全部を再起動する必要があります。
Oracle Sensor Edge Serverインスタンスを変更した後、Oracle Sensor Edge Serverを再起動して変更をコミットする必要があります。Oracle Sensor Edge Serverをいったん停止して再起動するには、次のいずれかの方法を使用します。
Oracle Sensor Edge Serverの一般的な設定やディスパッチャを変更したり、デバイス・グループを変更した後で、Oracle Sensor Edge Serverを停止して再起動するには、opmnctl shutdown
およびopmnctl startall
コマンドを使用します。詳細は、『Oracle Process Manager and Notification Server管理者ガイド』を参照してください。
Oracle Sensor Edge Serverインスタンスを変更した場合、SESコンソールに、OracleAS Enterprise Managerを使用してOracle Sensor Edge Serverを再起動するように通知するメッセージ(図3-16)が表示されます。このメッセージには、OracleAS Enterprise Managerへのリンクが設定されています。
Oracle Sensor Edge Serverインスタンスを再起動するには、次のようにします。
デバイスを更新するには、最初にデバイスを停止する必要があります。デバイスを停止または起動するには、「デバイス構成」ページ(図3-12)から「デバイスの起動」および「デバイスの停止」ボタンを使用します。このページには、デバイスのステータスも表示されます。ステータス・メッセージ(表3-4を参照)に、ドライバの現在の状態、またはクラッシュ前のドライバの状態が説明されます。
フィルタは、特定のデバイスまたはデバイス・グループのいずれかにアタッチできます。Cross-Reader Redundantフィルタなどの一部のフィルタは、グループ・レベル・フィルタとして記述されているため、デバイス・グループにのみアタッチできます。デバイス・グループ・フィルタを使用すると、エッジ・デバイスに配信される前のイベントをフィルタリングできます。デバイス・グループ専用に記述されているフィルタもあれば、デバイス・レベルのフィルタリング専用に記述されていて、特定のデバイスにアタッチされている場合にのみ機能するようなフィルタもあります。
「デバイス構成」の「構成済フィルタ」表(図3-11)および「グループの構成」(図3-14)ページでは、フィルタ・インスタンスの追加、削除または並替えを行うことができます。「新規フィルタの追加」ボタンを使用すると、他のフィルタ・インスタンスをデバイスまたはデバイス・グループに追加できます。詳細は、「デバイス・グループの作成」および「デバイス・グループへのフィルタの追加」を参照してください。表のごみ箱アイコンをクリックすると、デバイスまたはデバイス・グループからフィルタ・インスタンスを削除できます。表の矢印を使用すると、フィルタ・インスタンスの優先度を設定できます。
フィルタ・インスタンスの順序は、データのフィルタリングの結果を決定します。たとえば、IDをイベント配列にグループ化し、それを1つの項目として処理するグループ・フィルタと、特定のタグTagXYZを持つイベントをフィルタリングで除外するタグ・フィルタが、デバイスまたはデバイス・グループに割り当てられているとします。この場合、タグ・フィルタをグループ・フィルタより先に適用すると、タグ・フィルタによってTagXYZを持つイベントが除外された後で、Oracle Sensor Edge Serverは、検出された順序に基づいてグループ化されたイベントを受信します。フィルタの順序を逆にする(つまり、グループ・フィルタをタグ・フィルタより前に置く)と、タグ・フィルタのフィルタリングでは、TagXYZを持つイベントではなくグループ・イベントのみを調べるため、何も除外されません。
「構成済フィルタ」表(図3-14)で、フィルタ・インスタンスを選択し、矢印を使用して上下に移動することにより、フィルタ・インスタンスを並替えできます。
フィルタ・インスタンスは、インスタンス化されたフィルタ・オブジェクトです。フィルタがデバイス(またはデバイス・グループ)に適用されている場合は、デバイスまたはデバイス・グループがフィルタを使用できるようにフィルタ・インスタンスが作成されます。
独自のフィルタを開発してアップロードすることもできますが(「Oracle Sensor Edge Serverインスタンスの拡張機能の追加」を参照)、Oracle Sensor Edge Serverには複数のフィルタが付属しています(表3-5を参照)。
フィルタ名 | 機能 | デバイス・グループに適用されるか。(グループ・レベルのフィルタリングのサポート) | デバイスに適用されるか。(デバイス・レベルのフィルタリングのサポート) |
---|---|---|---|
Check Tag IDフィルタ |
指定された間隔中にデバイスがタグを読み取っているかどうかを確認する診断ツール。「Check Tag IDフィルタの構成」も参照。 |
× |
○ |
Cross-Reader Redundantフィルタ |
デバイス・グループに属するデバイスから送信された冗長イベントをブロック。「Cross-Reader Redundantフィルタの使用」も参照。 |
○ |
× |
Debugフィルタ |
システムを通過するイベントを追跡し、これらのイベントをログ・ファイルに書き込む。「Debugフィルタの使用」も参照。 |
○ |
○ |
JavaScriptフィルタ |
スクリプト言語でフィルタ・ロジックを記述できる。ソース・スクリプトの変更内容は動的にロードされるため、サーバーやその他のコンポーネントを再起動する必要がない。このフィルタは、Mozilla Rhino( |
○ |
○ |
Movementフィルタ |
Real Time Location System測定を使用して、エラーや干渉による急増や急激な運動変化を平坦にすることにより移動追跡を円滑化。「Movementフィルタの構成」も参照。 |
× |
○ |
Pallet Pass-Thruフィルタ |
コンテナまたはパレットにあるアイテムのすべてのタグIDを確認できるようにする。「Pallet Pass Thruフィルタの構成」も参照。 |
× |
○ |
Pallet Shelfフィルタ |
新しいコンテナまたはパレットがデバイス・リーダーの読取り範囲またはゲートに入ったこと、または出たことを通知するイベントを送信。「Pallet Shelfフィルタの構成」も参照。 |
× |
○ |
Passフィルタ |
タグがデバイスのゲートウェイまたは伝達範囲を通過したことをアプリケーションに通知。このフィルタはイベントのブロックも行うため、デバイスによってタグが検出されると、複製イベントではなく、1つのイベントのみが生成される。「Passフィルタの構成」も参照。 |
× |
○ |
Polygonフィルタ |
Real Time Location Systemデバイスによってレポートされたすべての移動測定をフィルタリングで除外し、タグが定義済ポリゴンを出入りしたときのみイベントを生成。ポリゴンは、頂点とカッコを定義するx,y座標のセットを使用して定義する。たとえば、( (x,y), (x,y), ... ), (....), ...のように定義する。「Polygonフィルタの構成」も参照。 |
× |
○ |
Regexフィルタ |
ストリームを削除するか、ストリームの通過を許可するためのタグを検索する正規表現検索を実行。このフィルタを使用すると、フィルタのパターン・セットを定義してイベントの任意の範囲を検索できる。フィルタにより検索基準の一致が見つかると、イベントがシステムを通過することが許可される。一致が見つからない場合、そのイベントがフィルタリングで除外される。「Regexフィルタの定義」も参照。 |
○ |
○ |
Shelfフィルタ |
アイテムがデバイス・リーダーの読取り範囲またはゲートに入ったこと、または出たことを通知。「Shelfフィルタの構成」も参照。 |
× |
○ |
デバイスおよびフィルタ・インスタンスは、発生した内容を説明するイベント・メッセージを使用して通信します。たとえば、デバイスは次のようなメッセージを送信して、起動したことを他のコンポーネントに通知します。このようなイベント・メッセージは、デバイスまたはフィルタ・インスタンスの各タイプに固有です。Oracle Sensor Edge Server内部では、どのデバイスもイベントを直接送受信できます。一般に、コンポーネント間のイベント・フローの方向は次の2つです。
SESコンソールでは、「監視イベント」および「イベント・レポート」タブに表示されるイベント・データにより、Oracle Sensor Edge Serverの状態を確認できます。「監視イベント」タブ(図3-20)には、現在キューに格納されているデータが表示されます。また、「イベント・レポート」タブには、センサー・データ・リポジトリに格納されているデータが表示されます。
「監視イベント」タブと「イベント・レポート」タブに表示されるインバウンドおよびアウトバウンドのフィールドを表3-6に説明します。
トピック | 説明 |
---|---|
タイプ |
イベント・タイプのテキスト表示。「RFID監視」、「RTLS監視」、「温度」などのタイプがある。 |
説明 |
イベント・サブタイプのテキスト表示。 |
デバイス名 |
イベントを生成したデバイスの名前。 |
データ |
イベントのペイロード。 |
時間 |
イベントが生成された時刻。 |
SESコンソールでは、「イベント・タイプ」、「サブタイプ」、「相関ID」フィールドなど、個々のインバウンド・イベントまたはアウトバウンド・イベントに関する詳細情報を表示できます。この情報にアクセスするには、「詳細」アイコンをクリックします。
「イベントの詳細」ページが表示され、選択したイベントのメタデータおよびペイロードの情報が表示されます。
「イベントの詳細」画面の「メタデータ」セクションに、次のルーティング情報およびイベントの発生場所に関連する情報が一覧表示されます。
未処理のイベント・データと、センサー・データ・リポジトリ内に格納されているイベント・データでは、「イベントID」の意味が異なります。未処理のデータ(図3-20の「監視イベント」タブの詳細ページに表示されるデータ)の場合、「イベントID」はイベントをトリガーしたタグIDです。「イベント・レポート」ページ(図3-22、図3-23および図3-24)に表示される、センサー・データ・リポジトリに格納されているイベント・データでは、「イベントID」フィールドはイベントを一意に識別します。
イベントを生成した拡張機能(デバイスまたはフィルタ・インスタンス)あるいはアプリケーションの名前です。
このフィールドは、イベントの発信元を識別します。このフィールドはオプションで、クライアントによって設定されます。
最初にメッセージを生成したサイトです。
生成されたイベントのタイプに対応する数値です。イベント・タイプは次のように分類されます。
「タイプ」フィールドに表示される登録済のイベント・タイプを表3-7に示します。
イベントのサブタイプに対応する数値です。「サブタイプ」フィールドに表示される値を表3-7に示します。
イベント・タイプおよびそのイベント・サブタイプのテキスト説明です。たとえば、イベント・サブタイプが200(「RFID監視」)でそのサブタイプが2(タグが読取り範囲を出た)の場合、「説明」フィールドに「RFIDフィールド外」と表示されます。イベント・タイプが200でイベント・サブタイプが9(明示的なメッセージがない)場合、「説明」フィールドには、イベント・タイプ200のメッセージ(「RFID監視」)が表示され、その後にイベント・サブタイプが「RFID監視」(サブタイプ9)として表示されます。「説明」フィールドに表示されるテキストを表3-7に示します。
このイベント・スレッドを識別する一意のIDです。相関IDは、特定のクライアントへのメッセージ・レスポンス(デバイスが機能しているかどうかの確認など)に使用されます。クライアントから返されたメッセージ・レスポンスはすべて同じIDを持ちます。このIDはクライアントにより設定されます。送信イベント・メッセージと受信イベント・メッセージはこのIDによって関連付けられるため、このIDをデバイスのパラメータとして使用することはできません。このフィールドはオプションです。
「イベントの詳細」ページの「ペイロード」セクションには、次のフィールドが表示されます。
このイベントで説明された項目のIDです。このフィールドのテキスト値により、イベント命令に対するタグ(読取りまたはターゲット)が識別されます。
タグ・データ(またはイベントのペイロード)です。このフィールドはオプションです。
イベントが生成された日時です。
SESコンソールの「監視イベント」タブから、このイベント・データをリアルタイムで表示できます。「監視イベント」タブをクリックすると、「監視イベント」ページ(図3-20)が表示されます。
「監視イベント」ページでは、キューを通過したインバウンド・イベント・データとアウトバウンド・イベント・データをすべて表示できます。このページに表示されるイベント・データはまだ処理されていません。つまり、センサー・データ・リポジトリに送信されていません。
「ログの表示」ページ(図3-21)は、「ログの表示」タブからアクセスします。このページには、メイン・ページ(図3-1)の「ログ・レベル」リストから選択した重大度レベルに従ってログに書き込まれたデータが表示されます。たとえば、メイン・ページから「エラー」を選択した場合、「ログの表示」ページにはエラー・レベルのメッセージのみが表示されます。メイン・ページから「すべて」を選択した場合、「ログの表示」ページには記録されたすべてのメッセージが表示されます。
「ログの表示」ページを使用すると、日付によりログ・ファイルを選択したり、このページに表示する行数を設定できます。
ログ・データを表示するには、次のようにします。
SESコンソールでは、「イベント・レポート」タブからアクセスしたページを使用して、処理が終わってセンサー・データ・リポジトリに格納されているイベントを追跡できます。これらのページでは、タグID、デバイス名、またはイベントがキューを通過した期間に基づいてデータを取得できます。イベント・タイプやイベント・サブタイプなどの検索基準を含む問合せを作成すると、タグIDおよびデバイス名を再検索できます。
「イベント・レポート」タブをクリックすると、デフォルトで「タグの表示」ページ(図3-22)が表示されます。
「タグの表示」ページのナビゲーション・ツリーを使用すると、他のタイプのイベント検索も選択できます。ツリーは、「イベント・レポート」タブからアクセスしたすべてのページに表示されます。
タグIDによりイベントを取得するには、次のようにします。
like
パターンです。)
デバイス名によりイベントを取得するには、次のようにします。
like
パターンです。
「タグの表示」および「デバイスの表示」ページの「拡張検索」ボタンを使用すると、問合せ文を作成して検索結果を絞り込むことができます。
デバイス名またはタグIDの検索に問合せ文を追加するには、次のようにします。
「拡張検索」ページでは、イベント・データのメタデータおよびペイロード情報を使用してイベント・データを取得する文で構成された問合せを作成することにより、特定のイベント・データを取得できます。
イベント・データに対する特定の検索基準を作成するには、次のようにします。
拡張機能とは、拡張アーカイブ・ファイルにコンポーネントをパッケージ化することによってOracle Sensor Edge Serverにアップロードする、カスタムビルドのドライバ、ディスパッチャまたはフィルタです。拡張アーカイブ・ファイルは、ドライバ、フィルタまたはディスパッチャのすべてのクラス・ファイルとネイティブ・バイナリ、ならびにプロパティ・ファイルや静的データ・ファイルを含むJARファイルです。また、拡張アーカイブには、拡張アーカイブ記述子ファイル(拡張機能のロードと管理に関するOracle Sensor Edge Serverへの命令を含むXMLファイル)が含まれます。
ドライバ、ディスパッチャ、フィルタなどのカスタム拡張機能をアップロードするには、その前に拡張ファイルを拡張アーカイブにパッケージ化する必要があります。拡張アーカイブには、すべての拡張機能のバイナリ、起動データおよび構成情報が含まれます。各拡張アーカイブには1つの拡張機能の実装のみが含まれ、実行時にロードされます。拡張アーカイブには次のディレクトリが含まれます。
このディレクトリには、アーカイブに関するメタ情報が含まれます。このディレクトリに拡張アーカイブ記述子ファイルを含める必要があります。拡張アーカイブ記述子ファイルは、拡張機能をロードおよび管理するために、Oracle Sensor Edge Serverに必要な情報を含むMETA-INF
ディレクトリ内のXMLファイルです。
拡張アーカイブ記述子ファイルはext.xml
という名前です。Loop Back Filterというフィルタ拡張機能の拡張アーカイブ記述子ファイル(ext.xml
)を例3-1に示します。
<?xml version="1.0"?> <Extension> <name>Loop Back Filter</name> <version>1.0</version> <className>oracle.edge.impl.filter.LoopBackFilter</className> <type>Filter</type> <Parameters> <Parameter name="TagID" defaultValue="" description="The Invalid Tag ID"> <valueType type="string"/> </Parameter> <Parameter name="LightStackName" defaultValue="stack1" description="The Light Stack Instance Name"> <valueType type="string"/> </Parameter> </Parameters>
ext.xml用のDTDを例3-2に簡略化して示します。このDTDの要素は表3-8で説明します。
<?xml version="1.0" encoding="UTF-8"?> <!ELEMENT Extension (name, version, className, type, Parameters)> <!ELEMENT name (#PCDATA)> <!ELEMENT version (#PCDATA)> <!ELEMENT className (#PCDATA)> <!ELEMENT type (#PCDATA)> <!ELEMENT Parameters (Parameter+)> <!ELEMENT Parameter (valueType)> <!ATTLIST Parameter name CDATA #REQUIRED displayName CDATA #IMPLIED defaultValue CDATA #IMPLIED description CDATA #IMPLIED encrypted (true|false) #IMPLIED isClearText (true|false) #IMPLIED required (true|false) #IMPLIED> <!ELEMENT valueType EMPTY> <!ATTLIST valueType type (int | string | double | boolean) #REQUIRED>
このディレクトリには、すべてのクラス・ファイル、ネイティブ・バイナリ、関連ファイルまたは静的データが含まれます。JARファイルにパッケージ化されたクラス・ファイルは、このディレクトリの最上位に展開する必要があります。このリリースでは、JARライブラリのローディングはサポートされません。
拡張アーカイブ・ファイルには、lib
ディレクトリも含まれます。このディレクトリではサード・パーティのライブラリを指定します。Alienデバイス・ドライバの拡張アーカイブ・ファイルを例3-3に示します。lib
ディレクトリに、Alienデバイス・ドライバに固有のライブラリGateway.jar
が含まれています。
meta-inf/ext.xml meta-inf/Manifest.mf classes/oracle/edge/impl/driver/AlienReader.class lib/Gateway.jar
拡張アーカイブ・ファイルをパッケージ化するには、次のようにします。
META-INF
およびclasses
ディレクトリを作成します。
ext.xml
(拡張アーカイブ記述子ファイル)を作成します。
jar cvMf test.jar
を実行すると、サンドボックス・ディレクトリのファイルがtest.jar
にアーカイブされます。これで、test.jarをOracle Sensor Edge Serverにアップロードできます。META-INF
およびclasses
ディレクトリをサンドボックス・ディレクトリの一部としてアーカイブしないでください。たとえば、コマンドc:/work> jar tvf test.jar
を実行すると、正しくアーカイブされたtest.jar
内のファイルが次のように表示されます。
0 Thu Apr 08 14:36:56 PDT 2004 META-INF/ 71 Thu Apr 08 14:36:56 PDT 2004 META-INF/ext.xml 0 Thu Apr 08 13:42:52 PDT 2004 classes/ 0 Thu Apr 08 13:42:52 PDT 2004 classes/my/ 0 Thu Apr 08 13:42:58 PDT 2004 classes/my/test.class
拡張機能をアップロードするには、次のようにします。
ORACLE_HOME/j2ee/applications/edge/edge/extensions
Oracle Sensor Edge Serverのすべての拡張機能は次のように編成されています。
EdgeObject
: 基本のルート・クラス(一意の識別子を含む)。
AbstractEdgeExtensionImpl
: EdgeExtensionインタフェースを実装します。
AbstractFilter
: すべてのフィルタのベース・クラス。Filter
インタフェースを実装し、フィルタのパフォーマンスを監視するイベントの生成に必要なフィルタの監視APIを定義します。
AbstractDevice
: すべてのデバイスのベース・クラス。デバイスからデータを読み取り、読み取ったデータを処理するための独自のスレッドを提供します。
AbstractEventDevice
: AbstractDevice
クラスの拡張クラス。デバイス・レベルのフィルタとの統合を提供し、イベントをイベント・プロセッサに伝播するために必要なメソッドを実装します。
拡張クラス階層を図3-25に示します。
doInit()
メソッドが拡張機能を実装します。このコールにより実行時に拡張機能のインスタンスが初期化されます。
実行時に拡張機能のインスタンスが作成されると、対応するContext
が作成され、拡張機能で次の作業ができるようになります。
Context
データを設定(または取得)します。
ベース・クラスEdgeExtension
は、インスタンスがそれ自体に関する情報を取得するためのユーティリティ関数を提供します。次のメソッドがあります。
getContext()
ランタイム・コンテキストを返します。
getName()
拡張機能の名前を返します。
getDescription()
拡張機能の説明を返します。
getVersion()
拡張機能のバージョン文字列を返します。
インスタンスのContext
オブジェクトを取得するには、次の文を使用します。
EdgeExtensionContext context = super.getContext();
メソッド・コールgetContext()
は、現行インスタンスのContext
オブジェクトを返します。
拡張機能のインスタンスは、永続的なデータや構成を保持しません。インスタンスが初期化されると、実行時に構成データが渡されます。構成データはパラメータとして定義され、名前と値のペアで構成されます。各パラメータには一意の名前とオプションの値があります。
拡張機能が特定の構成を持つことはよくあります。たとえば、ドライバにシリアル・ポート名、ボー・レート、IPアドレス、ポート番号、ログインおよびパスワードなどの構成パラメータが含まれることがあります。このようなパラメータは、ドライバがデバイスと通信できるように定義する必要があります。
ドライバ実装用のパラメータを公開するには、拡張アーカイブ記述子ファイルを変更する必要があります。シリアル・ポート名およびボー・レートの構成可能な2つのパラメータを<Parameter>
抽出タグに定義したデバイスを例3-4に示します。
<Extension> <name>My Driver</name> <type>Device</type> <className>my.testdriver</className> <Parameters> <Parameter name="port" displayName="Serial Port"> <valueType type="string"/> </Parameter> <Parameter name="baud" displayName="Baud Rate"> <valueType type="int"/> </Parameter> </Parameters> </Extension>
拡張アーカイブ記述子ファイルの<Parameter>
タグを定義すると、EdgeExtensionConfigInfo
オブジェクトを使用してパラメータの値をフェッチできます。<Parameter>
タグで定義された値は、Context
オブジェクトを使用して取得されます(例3-5を参照)。
EdgeExtensionContext context = super.getContext(); ConfigParameter filenameParam = ct.getParameter( fileName );
getParameter()
メソッドは、ConfigParameter
オブジェクトを返します。getParameter()
メソッドは、パラメータの値を返します。(例3-5では、ConfigParamter
オブジェクトはfilenameParam
と呼ばれ、getParameter()
メソッドがfileName
というパラメータの値を返します。)ターゲット・パラメータの名前は、ConfigParameter
オブジェクトに渡される必要があります。さらに、このパラメータの名前は、拡張アーカイブ記述子ファイルの<Parameter>
要素のname属性に指定された名前に一致している必要があります。ConfigParameter
オブジェクトを取得すると、パラメータの値を取得できます(例3-6を参照)。
m_fileName = filenameParam.getStringValue();
|
![]() Copyright © 2006 Oracle Corporation. All Rights Reserved. |
|