Die Common Event Infrastructure dient der Vereinfachung der Arbeit mit Ereignissen.
Die Common Event Infrastructure stellt Funktionen für Generierung, Weitergabe, Persistenz und Einsatz (Verbrauch) von Ereignissen bereit. Das eigentliche Ereignis wird mit ihr jedoch nicht definiert. Bei der Planung der Verwendung der Ereignisinfrastruktur in Ihrer Systemstruktur müssen Sie die relevanten Geschäftskonzepte genau kennen und sie auf die entsprechenden Komponenten in Ihrer Systemstruktur abbilden. Zur Bereitstellung der Semantik des Ereignismanagements sollten Sie Ereignistypen und Ereignisgruppen definieren und dabei den Kontext einer Architektur von Ereignisquellen und Ereigniskonsumenten beachten.
- Identifizieren Sie jede Ereignisquelle. Die Ereignisquelle ist die Anwendung, durch die das Ereignis erzeugt wird. Die Ereignisquelle übergibt das Ereignisobjekt an die Ereignisinfrastruktur. Die Ereignisinfrastruktur speichert das Ereignisobjekt in einer Datenbank, aus der es jederzeit abgerufen werden kann. Die Aufgabe der Ereignisinfrastruktur besteht in der Weitergabe des Ereignisobjektes an jede Anwendung, die ein Interesse am Empfang dieses Ereignisobjektes anmeldet.
- Identifizieren Sie jeden Ereigniskonsumenten. Ein Ereigniskonsument ist eine Anwendung, die die im Ereignisobjekt enthaltenen Informationen verwenden kann. Ereigniskonsumenten verarbeiten in der Regel Ereignisse von einer ganzen Reihe von Ereignisquellen.
- Identifizieren Sie die Hierarchie der Ereigniskorrelationsbereiche und die IDs für diese Bereiche. Ereigniskonsumenten können Ereigniskorrelationsbereiche verwenden, um Ereignisse zu korrelieren. Die Klasse ECSEmitter unterstützt eine Hierarchie von Korrelationsbereichen, indem die aktuellen IDs und die übergeordnete ID der Korrelationsbereiche eines Ereignisses in jedem Ereignis gespeichert werden.
Anmerkung: ECSEmitter und die Funktionen für die Arbeit mit Korrelationsbereichen werden über den Ereignisservice und nicht über die Common Event Infrastructure selbst bereitgestellt.
Eine BPEL-Aktivität (BPEL = Business Process Execution Language) beispielsweise öffnet einen Korrelationsbereich für die aktuelle Aktivität, der die Aktivität über die Aktivitäteninstanz-ID identifiziert. Der übergeordnete Korrelationsbereich ist der Korrelationsbereich der Prozessinstanz, in deren Namen die Aktivität ausgeführt wird. Der übergeordnete Korrelationsbereich wird über die Prozessinstanz-ID identifiziert.
- Identifizieren Sie jede Ereignisgruppe. Eine Ereignisgruppe definiert die Merkmale (Eigenschaften mit Werten), die alle Ereignisse enthalten können, an denen ein bestimmter Konsumententyp Interesse hat. Den Ereignisgruppen werden Richtlinien, wie zum Beispiel Regeln für Zugriffssteuerung und Verteilung, zugewiesen, um das Verhalten der Ereignisinfrastruktur an die einzelnen Benutzergruppen anzupassen.
WebSphere stellt eine Standardereignisgruppe bereit, die laut Definition alle Ereignisse enthält. Diese Ereignisgruppe trägt die Bezeichnung Ereignisgruppenliste und den JNDI-Namen (JNDI = Java Naming and Directory Interface) com/ibm/events/configuration/event-groups/Default
Die folgende Abbildung zeigt die Beziehung zwischen diesen Objekten:
Abbildung 1. Die Architektur aus einer Ereignisquelle (die Ereignisse erzeugt), einem Ereigniskonsumenten (der die Ereignisdaten nutzt) und einer Ereignisgruppe (die für jeden Ereignistyp die Merkmale und zugehörigen Richtlinien definiert).