< Vorherige Lektion | Nächste Lektion >

Lerneinheit 1.3: Ereignisse, Subskriptionen und Messwerte hinzufügen

Vorbereitungen
Bevor Sie beginnen, müssen Sie Lerneinheit 1.2: Monitor-Modelle erstellen beenden.
Warum und wann dieser Vorgang ausgeführt wird
In dieser Lerneinheit werden Sie mit der Arbeit an Ihrem Monitor-Modell fortfahren. Stellen Sie für die erste Task sicher, dass Sie die Beispielressourcen in Ihren Arbeitsbereich importiert haben.

Ereignisdefinitionen hinzufügen

  1. Klicken Sie in der Sicht 'Project Explorer' mit der rechten Maustaste auf den Ordner mit den Ereignisdefinitionen und klicken Sie anschließend auf Import (Importieren).
  2. Klicken Sie im Importassistenten auf General (Allgemein) > File System (Dateisystem) und anschließend auf Next (Weiter).
  3. Klicken Sie auf Browse (Durchsuchen) neben dem Feld für den Import aus einem Verzeichnis, suchen Sie das Verzeichnis Ihres aktuellen Arbeitsbereichs und wählen Sie dieses aus. Klicken Sie auf OK.
  4. Auf der linken Seite der Anzeige befindet sich eine Liste der Verzeichnisse innerhalb Ihres Arbeitsbereichs. Wählen Sie SampleResources aus. Auf der rechten Seite befindet sich eine Liste mit Dateien. Wählen Sie die Datei LimousinesEvents.xsd aus.
  5. Klicken Sie auf Browse 'Durchsuchen' neben dem Feld für den Import in einen Ordner.
  6. Wählen Sie den Ordner 'Limousines_Part_1' aus und klicken Sie auf OK. Klicken Sie anschließend auf Finish (Fertig stellen).

Subskriptionen für eingehende Ereignisse hinzufügen

  1. Klicken Sie mit der rechten Maustaste auf die Definition 'Trip MC' und anschließend auf New (Neu) > Inbound Event (Eingehendes Ereignis). Der Assistent zum Erstellen neuer, eingehender Ereignisse wird geöffnet.
  2. Geben Sie carDispatched im Namensfeld ein. Dies ist der Name dieses eingehenden Ereignisses.
  3. Klicken Sie auf OK. Im rechten Fenster werden die Details des eingehenden Ereignisses angezeigt.
  4. Geben Sie eine Kurzbeschreibung für dieses eingehende Ereignis ein. Geben Sie zum Beispiel Folgendes ein: Ein Ereignis, das über die Einteilung eines Fahrzeugs für eine Fahrt berichtet..
  5. Blättern Sie nach unten und suchen Sie nach den Details des eingehenden Ereignisses. Klicken Sie in der Tabelle der Ereignisteile auf Add (Hinzufügen). Der Assistent zum Erstellen eines Ereignisteiltyps wird geöffnet.
  6. Geben Sie content im Namensfeld des Assistenten ein. Das Feld mit der ID wird automatisch mit demselben Wert gefüllt.
  7. Klicken Sie im Feld Type (Typ) auf Select Type (Typ auswählen). Der Assistent zum Auswählen von Datentypen für den Ereignisteil wird geöffnet.
  8. Wählen Sie im Assistenten Choose the data type from the XML schemas accessible from this monitor project (Datentyp in den für dieses Monitor-Projekt verfügbaren XML-Schemata auswählen) aus und erweitern Sie die Datei LimousineEvents.xsd. Wählen Sie lmo:dispatchLimousine aus und klicken Sie auf Finish (Fertig stellen).
  9. Klicken Sie im Assistenten zum Erstellen eines Ereignisteiltyps auf Finish (Fertig stellen).
  10. Blättern Sie abwärts bis zum Abschnitt mit der Filterbedingung.
  11. Geben Sie im Feld für die Filterbedingung den Ausdruck fn:exists(carDispatched/content/lmo:limousineId) ein. Sie können die Funktion Content-Assist für das Produkt verwenden, um Ihren XPath-Ausdruck zu erstellen. Um die Inhaltshilfe aufzurufen, drücken Sie die Tastenkombination 'Strg+Leertaste'.
  12. Blättern Sie abwärts bis zum Korrelationsausdruck. Geben Sie im Feld für den Korrelationsausdruck den Ausdruck carDispatched/content/lmo:tripId = tripKey ein.
  13. Wählen Sie für das Feld If no instances are found (Keine Instanzen gefunden) die Einstellung Create new instance (Neue Instanz erstellen) aus.
  14. Wählen Sie für das Feld If one instance is found (Eine Instanz gefunden) die Option Treat as error (Als Fehler behandeln) aus.
  15. Wählen Sie für das Feld If multiple instances are found (Mehrere Instanzen gefunden) die Option Treat as error (Als Fehler behandeln) aus.
  16. Speichern Sie Ihr Projekt.
Ergebnisse
Beenden Sie diese Task, indem Sie die oben aufgeführten Schritte für die verbleibenden, eingehenden Ereignisse mit den in der Tabelle unten aufgeführten Werten wiederholen.
Tabelle 1. Subskriptionen für eingehende Ereignisse im Beispiel 'Limousine Company'
  carDispatched passengerPickedUp passengerDroppedOff
Beschreibung Ein Ereignis, das über die Einteilung eines Fahrzeugs für eine Fahrt berichtet. Ein Ereignis, das über die Aufnahme des Fahrgasts berichtet. Ein Ereignis, das über die Beendigung der Fahrt (die Ankunft am Zielort) berichtet.
Name und ID des Ereignisteils content content content
Typ des Ereignisteils lmo:dispatchLimousine lmo:pickUpPassenger lmo:dropOffPassenger
Pfad des Ereignisteils cbe:CommonBaseEvent/lmo:dispatchLimousine cbe:CommonBaseEvent/lmo:pickUpPassenger cbe:CommonBaseEvent/lmo:dropOffPassenger
Filterbedingungen fn:exists( carDispatched/content/lmo:limousineID ) fn:exists( passengerPickedUp/content/lmo:limousineID ) fn:exists( dropOffPassenger/content/lmo:limousineID )
Korrelationsausdruck 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'
No instances found (Keine Instanzen gefunden) Neue Instanz erstellen Als Fehler behandeln Als Fehler behandeln
One instance found (Eine Instanz gefunden) Als Fehler behandeln An Instanz liefern An Instanz liefern
Multiple instances found (Mehrere Instanzen gefunden) Als Fehler behandeln Als Fehler behandeln Als Fehler behandeln

Messwertdefinitionen hinzufügen

  1. Klicken Sie in der Gliederung des Monitor-Modells mit der rechten Maustaste auf die Monitoring-Kontextdefinition 'Trip' für die Fahrt und anschließend auf New (Neu) > Metric (Messwert).
  2. Geben Sie im Assistenten zum Erstellen neuer Messwerte die folgenden Werte ein: dropOffActualTime, dropOffActualTime und DateTime. Klicken Sie anschließend auf OK. Der Messwert wird in Ihrem Monitor-Modell hinzugefügt.
  3. Im rechten Fenster sehen Sie weitere Informationen, die Sie für diesen Messwert ausfüllen können. Geben Sie zum Beispiel in das Beschreibungsfeld die tatsächliche Ausstiegszeit des Fahrgastes am Zielort ein.
  4. Speichern Sie Ihr Projekt.
Ergebnisse
Beenden Sie diese Task, indem Sie die oben aufgeführten Schritte für die verbleibenden Messwertdefinitionen mit den in der folgenden Tabellen aufgeführten Werten wiederholen.
Tabelle 2. Messwerte beim Mietservice für Fahrzeuge mit Fahrer (Limousine Company)
Name Beschreibung Typ Standardwert Andere
tripKey Die eindeutige Kennung für diese Fahrt. xs:string   MC key; Länge <= 64
dropOffActualTime Die tatsächliche Uhrzeit, zu der der Fahrgast am Zielort ausgestiegen ist. xs:dateTime    
dropOffScheduledTime Die geplante Uhrzeit, zu der der Fahrgast am Zielort aussteigen soll. xs:dateTime    
dropOffAddress Die Zieladresse der Fahrt. xs:string   Länge <= 256
driver Der Name des Fahrers xs:string   Länge <= 64
limousine Die Nummer des Fahrzeugs, das für diese Fahrt eingeteilt ist. xs:integer    
passenger Der Name des Fahrgasts. xs:string   Länge <=64
pickUpAddress Die Adresse, an der der Fahrgast abgeholt wird. xs:string   Länge <= 256
pickUpActualTime Die tatsächliche Uhrzeit, zu der der Fahrgast abgeholt wird. xs:dateTime    
pickUpScheduledTime Die geplante Uhrzeit, zu der der Fahrgast abgeholt werden soll. xs:dateTime    
pickUpWasLate Anzeiger dafür, dass der Fahrgast mehr als 10 Minuten nach der vereinbarten Zeit abgeholt wurde. xs:boolean fn:false()  
timeDispatched Die Uhrzeit, zu der das Fahrzeug für diese Fahrt eingeteilt wurde. xs:dateTime    
tripDuration Die Dauer der Fahrt. xs:duration    
tripStatus 'picking up passenger'/'passenger on board'/'completed on time'/'completed not on time'/'unknown' xs:string 'unknown' Länge <= 24

Eingehende Ereignisse zu Messwerten zuordnen

  1. Klicken Sie in der Gliederung des Monitor-Modells auf den Messwert. Auf der rechten Seite finden Sie zusätzliche Informationen über diesen Messwert.
  2. Blättern Sie in den zusätzlichen Informationen nach unten zum Abschnitt 'Metric Value Expressions' (Messwertausdrücke) und klicken Sie auf die Schaltfläche Add (Hinzufügen).
  3. Klicken Sie auf das Feld unter der Spalte 'Expression' (Ausdruck). Der Standardwert in diesem Feld lautet <<No expressions specified>> (Keine Ausdrücke angegeben).
  4. Geben Sie in dieses Feld passengerDroppedOff/content/lmo:timestamp ein oder klicken Sie auf die Schaltfläche mit drei Punkten. Das Fenster 'Expression Dialog' (Ausdruck) wird angezeigt. Sie können den Pfadausdruck im Fenster 'Expression Dialog' (Ausdruck) eingeben. Alternativ können Sie die Tasten Strg+Leertaste auf der Tastatur drücken, um die Inhaltshilfe aufzurufen. Erweitern Sie die Baumstruktur und navigieren Sie durch den Pfad bis Sie den gesamten Pfad ausgewählt haben.
  5. Drücken Sie die Eingabetaste und klicken Sie auf OK. Der Ausdruck wird jetzt im Feld angezeigt.
  6. Speichern Sie Ihr Projekt.
Ergebnisse
Beenden Sie diese Task, indem Sie die oben aufgeführten Schritte für die verbleibenden Zuordnungsausdrücke mit den in der Tabelle unten aufgeführten Werten wiederholen.
Tabelle 3. Zuordnungen beim Mietservice für Fahrzeuge mit Fahrer (Limousine Company)
Messwert Zuordnung (Map)
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'

Prüfpunkt der Lerneinheit

Nun können Sie Ihr Monitor-Modell implementieren. Lerneinheit 1.4: Monitor-Modell implementieren.






Feedback



(C) Copyright IBM Corporation 2005, 2008. Alle Rechte vorbehalten.

Dieses Information Center basiert auf Technologie aus dem Eclipse-Projekt. (http://www.eclipse.org)
< Vorherige Lektion | Nächste Lektion >