< 前へ | 次へ >





レッスン 1.3: イベント、サブスクリプション、およびメトリックの追加

始める前に
開始する前に、レッスン 1.2: モニター・モデルの作成を完了する必要があります。
このタスクについて
このレッスンでは、モニター・モデルでの作業を継続します。最初のタスクのために、ワークスペースにサンプル・リソースをインポートしたことを確認してください。

イベント定義の追加

  1. プロジェクト・エクスプローラー・ビューで、「イベント定義」フォルダーを右クリックし、「インポート」をクリックします。
  2. 「インポート」ウィザードから、「一般」>「ファイル・システム」をクリックし、「次へ」をクリックします。
  3. 「ソース・ディレクトリー」フィールドの横の「参照」をクリックし、現行ワークスペースのディレクトリーを見つけて選択します。 「OK」をクリックします。
  4. パネルの左側に、ワークスペース内のディレクトリーのリストがあります。「SampleResources」を選択します。 右側に、ファイルのリストがあります。「LimousinesEvents.xsd」を選択します。
  5. 「宛先フォルダー」フィールドの横にある「参照」をクリックします。
  6. Limousines_Part_1 フォルダーを選択して「OK」をクリックし、「完了」をクリックします。

インバウンド・イベント・サブスクリプションの追加

  1. Trip MC 定義を右クリックし、「新規」>「インバウンド・イベント」をクリックします。「新規インバウンド・イベントの作成」ウィザードが開きます。
  2. 「名前」フィールドに carDispatched と入力します。これは、このインバウンド・イベントの名前です。
  3. 「OK」をクリックします。右方のパネルに、「インバウンド・イベントの詳細」が表示されます。
  4. このインバウンド・イベントの簡単な説明を入力します。例えば、「リムジンが走行に対して配車されたことを報告するイベント」と入力します。
  5. スクロールダウンして、「イベント・タイプの詳細」を検索します。「イベント・パーツ」テーブルで、「追加」をクリックします。「イベント・パーツ・タイプを作成します」ウィザードが開きます。
  6. ウィザードの「名前」フィールドに content と入力します。「ID」フィールドには、同じ値が自動的に取り込まれます。
  7. 「タイプ」フィールドで、「タイプの選択」をクリックします。 「イベント・パーツのデータ・タイプの選択」ウィザードが開きます。
  8. ウィザードから、「このモニター・プロジェクトからアクセス可能な XML スキーマからデータ・タイプを選択する」を選択し、LimousineEvents.xsd ファイルを展開します。「lmo:dispatchLimousine」を選択し、「完了」をクリックします。
  9. 「イベント・パーツ・タイプを作成します」ウィザードで「完了」をクリックします。
  10. 「フィルター条件」セクションまでスクロールダウンします。
  11. 「フィルター条件」フィールドに、式 fn:exists(carDispatched/content/lmo:limousineId) を入力します。 製品のコンテンツ・アシスト機能を使用して、XPath 式を作成できます。コンテンツ・アシストを起動するには、Ctrl キーを押しながら Space キーを押します。
  12. 「相関式」までスクロールダウンします。「相関式」フィールド内に、式 carDispatched/content/lmo:tripId = tripKey を入力します。
  13. 「インスタンスが見つからない場合」フィールドの場合、「新規インスタンスを作成」を選択します。
  14. 「1 つのインスタンスが見つかった場合」フィールドの場合、「エラーとして処理」を選択します。
  15. 「複数のインスタンスが見つかった場合」フィールドの場合、「エラーとして処理」を選択します。
  16. プロジェクトを保存します。
タスクの結果
残りのインバウンド・イベントについて次の表に示した値を使用して上の手順を繰り返すことにより、このタスクを完了します。
表 1. リムジン・ビジネスのインバウンド・イベント・サブスクリプション
  carDispatched passengerPickedUp passengerDroppedOff
説明 リムジンが走行に対して配車されたことを報告するイベント 乗客のピックアップを報告するイベント 走行の完了 (目的地への到着) を報告するイベント
イベント・パーツ名および ID content Content content
イベント・パーツ・タイプ lmo:dispatchLimousine lmo:pickUpPassenger lmo:dropOffPassenger
イベント・パーツ・パス cbe:CommonBaseEvent/lmo:dispatchLimousine cbe:CommonBaseEvent/lmo:pickUpPassenger cbe:CommonBaseEvent/lmo:dropOffPassenger
フィルター条件 fn:exists( carDispatched/content/lmo:limousineID ) fn:exists( passengerPickedUp/content/lmo:limousineID ) fn:exists( dropOffPassenger/content/lmo:limousineID )
相関式 carDispatched/content/lmo:tripID=tripKey passengerPickedUp/content/lmo:limousineID=limousine and tripStatus='picking up passenger' passengerDroppedOff/content/lmo:limousineID=limousine and tripStatus='passenger on board'
インスタンスが見つかりません 新規インスタンスを作成 エラーとして処理 エラーとして処理
1 つのインスタンスを検出 エラーとして処理 インスタンスに送信 インスタンスに送信
複数のインスタンスを検出 エラーとして処理 エラーとして処理 エラーとして処理

メトリック定義の追加

  1. モニター・モデル・アウトラインから、Trip モニター・コンテキスト定義を右クリックし、「新規」>「メトリック」をクリックします。
  2. 「新規メトリックの作成」ウィザードに、値 dropOffActualTime、dropOffActualTime、および DateTime を入力し、「OK」をクリックします。 メトリックがモニター・モデルに追加されます。
  3. 右方のパネルに、このメトリックに対して入力できる追加情報があります。例えば、説明フィールドに「乗客の実際の降車時刻」と入力します。
  4. プロジェクトを保存します。
タスクの結果
残りのメトリック定義について次の表に示した値を使用して上の手順を繰り返すことにより、このタスクを完了します。
表 2. リムジン・ビジネスのメトリック
名前 説明 タイプ デフォルト値 その他
tripKey この走行の固有 ID xs:string   MC key; length <= 64
dropOffActualTime 乗客の実際の降車時刻 xs:dateTime    
dropOffScheduledTime 乗客の予定降車時刻 xs:dateTime    
dropOffAddress 走行目的地の住所 xs:string   length <= 256
driver ドライバーの名前 xs:string   length <= 64
limousine この走行に配車されたリムジン番号 xs:integer    
passenger 乗客の名前 xs:string   length <=64
pickUpAddress 乗客のピックアップ場所の住所 xs:string   length <= 256
pickUpActualTime 乗客の実際のピックアップ時刻 xs:dateTime    
pickUpScheduledTime 乗客のピックアップ予定時刻 xs:dateTime    
pickUpWasLate 乗客のピックアップが 10 分より大きく遅れたことを示す指標 xs:boolean fn:false()  
timeDispatched 自動車がこの走行に対して配車された時刻 xs:dateTime    
tripDuration 走行の所要時間 xs:duration    
tripStatus 'picking up passenger'/'passenger on board'/'completed on time'/'completed not on time'/'unknown' xs:string 'unknown' length <= 24

インバウンド・イベントのメトリックへのマッピング

  1. モニター・モデル・アウトラインから、dropOffActualTime メトリックをクリックします。このメトリックに関する追加情報が右側に表示されます。
  2. 追加情報で、「メトリック値式」セクションまでスクロールダウンし、「追加」ボタンをクリックします。
  3. 「式」列の下のフィールドをクリックします。このフィールドのデフォルト値は、<<No expressions specified>> です。
  4. そのフィールドに、passengerDroppedOff/content/lmo:timestamp と入力します。または、3 つのドットがあるボタンをクリックします。「式ダイアログ」ウィンドウが開きます。「式ダイアログ」ウィンドウでパス式を入力できます。または、キーボードで Ctrl キーを押しながらスペース・バーを押して、コンテンツ・アシスト・ウィンドウを開くことができます。ツリーを展開して、パス全体を選択するまでパスをナビゲートします。
  5. Enter キーを押してから、「OK」をクリックします。 式がフィールドに表示されます。
  6. プロジェクトを保存します。
タスクの結果
残りのマップ式について次の表に示した値を使用して上の手順を繰り返すことにより、このタスクを完了します。
表 3. リムジン・ビジネスのマップ
メトリック マップ
tripKey carDispatched/content/lmo:tripId
dropOffActualTime passengerDroppedOff/content/lmo:timestamp
dropOffScheduledTime carDispatched/content/lmo:dropOffTime
dropOffAddress fn:concat(carDispatched/content/lmo:dropOffAddress/lmo:street, ', ', carDispatched/content/lmo:dropOffAddress/lmo:city)
driver carDispatched/content/lmo:driver
limousine carDispatched/content/lmo:limousineId
passenger carDispatched/content/lmo:passenger
pickUpAddress fn:concat(carDispatched/content/lmo:pickUpAddress/lmo:street, ', ', carDispatched/content/lmo:pickUpAddress/lmo:city)
pickUpActualTime passengerPickedUp/content/lmo:timestamp
pickUpScheduledTime carDispatched/content/lmo:pickUpTime
pickUpWasLate if ( fn:exists( pickUpActualTime ) ) then pickUpActualTime > pickUpScheduledTime+ xs:dayTimeDuration('PT10M') else pickUpWasLate
timeDispatched carDispatched/content/lmo:timestamp
tripDuration if (fn:exists(dropOffActualTime) and fn:exists(timeDispatched)) then dropOffActualTimel - timeDispatched else tripDuration
tripStatus if ( fn:exists( dropOffActualTime ) ) then ( if ( dropOffActualTime <= dropOffScheduledTime ) then 'completed on time' else 'completed not on time' ) else if ( fn:exists( pickUpActualTime ) ) then 'passenger on board' else if ( fn:exists( timeDispatched ) ) then 'picking up passenger' else 'unknown'

レッスンのチェックポイント

これで、モニター・モデルをデプロイする準備ができました。レッスン 1.4: モニター・モデルのデプロイ






フィードバック



(C) Copyright IBM Corporation 2005, 2008. All Rights Reserved.

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)
< 前へ | 次へ >