Vorheriges Thema: Eventfluss

Nächstes Thema: Registrieren geclusterter Metriken

Registrierung

Registrierung ist der Prozess, bei dem die Business-Logik eine Anfrage an die Berechnungs-Engine zum Festlegen von Rohdatenereignissen sendet, die in die Berechnung aufgenommen werden sollen.

Die Registrierung ist auf zwei Arten möglich: Mit dem Registrierungsassistenten oder manuell mit dem Dispatcher-Objekt in der Business-Logik.

Der Registrierungsassistent ist äußerst benutzerfreundlich - treffen Sie einfach eine Auswahl aus den verfügbaren Optionen. Sie haben dieselben Optionen zur Verfügung, wie bei der manuellen Registrierung, allerdings ohne die Möglichkeit zur Verwendung von Parametern. Wenn Sie Parameter verwenden müssen, müssen Sie die Registrierung manuell vornehmen. Die Grundstruktur des Assistenten erfordert, dass Sie zunächst bestimmten, welche Art von Registrierung Sie vornehmen wollen, dass Sie dann die Ressourcentypen und Events festlegen, für die die Registrierung durchgeführt werden soll, und dass Sie sich schließlich entscheiden, welcher Event Handler zur Verarbeitung der erfassten Events verwendet werden soll.

Sobald die Registrierungen abgeschlossen sind, werden sie auf der Registerkarte "Registrierung" der Metrik angezeigt. Beachten Sie zudem, dass es pro Metrik mehrere Registrierungsaussagen geben kann.

Tatsächlich nutzt der Registrierungsassistent dieselbe Funktionalität wie die manuelle Registrierung. Auf alle diese Optionen wird im folgenden Abschnitt näher eingegangen.

Wenn die Registrierung der Formel manuell aus der Business-Logik heraus vorgenommen wird, wird sie vom Event Handler OnRegistration vorgenommen. Dies muss in der Formel implementiert und bei jeder Aktivierung eines Registrierungs-Engine-Events ausgelöst werden. Das Registrierungs-Event wird ein Mal bei Aktivierung des Vertrages ausgelöst, und dann jedes Mal, wenn eine relevante Ressource oder ein Änderungssatz aktiviert werden. Es heißt, eine Änderung der betreffenden Ressource sei von Bedeutung, wenn sich diese auf Events bezieht, die die Metrik empfangen soll. Beispiel: Wenn die Registrierung von der Vertragspartei ausgeführt wird (RegisterByContractParty), bedeutet dies, dass alle Events des definierten Typs, deren Ressourcen der Vertragspartei der Metrik angehängt sind, Bestandteil der Berechnung sind. In diesem Fall wird die Registrierungsmethode jedes Mal, wenn eine neue Ressource der Vertragspartei angehängt wird bzw. wenn die Anhängung einer solchen Ressource aufgehoben wird, aktiviert, um die Engine über die Änderung zu informieren.

Die Registrierungsmethoden werden vom Dispatcher-Objekt bereitgestellt, das als Argument an OnRegistration übertragen wird. Die verschiedenen Methoden bietet unterschiedliche Arten zur Definition der Filterkriterien basierend auf der Event-Typ-Definition und Ressourcen-Zuweisungskriterien, wie Ressourcen einer Ressourcengruppe oder Ressourcen eines bestimmten Typs.

Die Verwendung der Registrierungsmethoden von "Vertragspartei" und "Service" wird nachdrücklich empfohlen, da es die Nutzung der Business-Logik als Modul oder Vorlage vereinfacht. Werden diese Registrierungsmethoden verwendet, werden die jeweilige Vertragspartei und der jeweilige Service der zugewiesenen Metrik-Definition entnommen. Bei der Wiederverwendung der Formel für andere Verträge und/oder Servicekomponenten muss die Registrierung dann nicht verändert werden.

Eine weitere beliebte Registrierungsmethode ist RegisterByResourceGroup, die praktisch ist für die Arbeit mit Ressourcen, die logisch zusammengefasst sind, jedoch möglicherweise nicht immer Vertragsparteien oder Services zugewiesen sind. Die Zuweisung von Ressourcen zu den Gruppen hier lässt sich dann über den Ressourcenkatalog (individuell oder über Änderungssätze) verwalten, und ließe sich sogar automatisch mithilfe von Übersetzungsskripten aktualisieren.

Im Allgemeinen wird die Registrierungsmethode während der Entwurfsphase ermittelt und direkt vom definierten Datenmodell gesteuert.

Hinweis: Zur Überprüfung, ob das Dispatcher-Objekt ordnungsgemäß angewendet wurde, wird die Funktion OnRegistration auch während der SLALOM-Syntaxüberprüfung aufgerufen. Daher sollte nicht davon ausgegangen werden, dass OnLoad vor der Funktion OnRegistration ausgeführt wurde. Ferner sollten nicht einfach einige der Eigenschaften des Kontextobjekts, wie "TimeUnit", "IntervalLength", "IsPeriod", "CorrectionsApply" und "ExceptionsApply" im Event Handler "OnRegistration" verwendet werden.

Die Registrierungsmethoden sind zudem zuständig für die Zuweisung der Events zu einem Verfahren, das gemäß dem Zeitstempel des Events aktiviert wird. Das definierte Verfahren kann beliebig benannt sein, es hat jedoch stets das Objekt eventDetails als seinen Parameter. Das Objekt eventDetails spiegelt das empfangene Rohdatenereignis wider und umfasst alle Event-Details als Datenfelder, wie in der folgenden Registrierung dargestellt:

Sub OnRegistration(dispatcher)
dispatcher.RegisterByContractPartyAndService "OnMemUseEvent", "MemUse", "Server"
'the parameters of the method are: <procedure name>, <Event Type>, <Resource Type>
End Sub

Die oben aufgeführte Registrierungserklärung besagt, dass alle Rohdatenereignisse des Event-Typs "MemUse", die dem Ressourcentyp "Server" zugewiesen sind, an den Event Handler "OnMemUseEvent" in der Business-Logik gesendet werden.

Das folgende Verfahren muss ebenfalls vorab in der Business-Logik definiert werden:

Sub OnMemUseEvent(eventDetails)
 If InTimeSlot And eventDetails("MemoryUsage")>MaxMemoryUse Then
       MaxMsmoryUse = eventDetails("MemoryUsage)"
     End If
End Sub

Durch den Verweis auf das Objekt eventDetails-Objekt und durch die Anwendung des Parameters "MemoryUsage" extrahiert die Erklärung den Wert des Feldes "MemoryUsage" aus dem Event, das in die Funktion übernommen wurde. Diese Felder sind dieselben wie die, die im Event-Typ definiert sind. Bei den Feldnamen muss die Groß-/Kleinschreibung beachtet werden.