10. Feb. 2014 (14:32)

Die Ereignisse überstürzen sich

Mit Bestürzung musste ich feststellen, dass ich noch keinen Artikel über das Event System von Wombat geschrieben habe. Dabei handelt es hierbei um ein zentrales Element, dass aus den meisten Applikationen nicht wegzudenken ist. Nun, zunächst handelt es sich dabei um eine Abstraktionsschicht um Ereignisse von Aktionen zu entkoppeln. Beide, Abstraktion und loose Kopplung gehören zu meinen liebsten Design-Prinzipien. nerd

Mit Ereignissen sind hierbei ganz handfeste Dinge gemeint, die ganz oben in der Applikationsschicht angesiedelt sind:

  • Ein Blog-Eintrag wurde veröffentlicht
  • Eine Datei wurde hochgeladen
  • Ein Benutzer hat sich registriert
  • Ein Datensatz wurde gespeichert
  • ...

Darauf folgen in der Regel ebenso konkrete Aktionen:

  • Blog-Eintrag auf Facebook und Twitter-Posten
  • Video in abspielbares Format konvertieren
  • Eine Willkommens-E-Mail senden
  • Den Cache aktualisieren
  • ...

Nun hängt es stark von der konkrete Webseite ab welche Aktionen im Einzelnen durchgeführt werden sollen und in welcher Ausprägung. So möchte nicht jeder seine Blog-Artikel auf Facebook posten. Das gleiche gilt für Benutzerregistrierung. Eine Firmen-Webseite möchte evtl. neue Benutzerkonten erst durch Mitarbeiter frei schalten lassen, eine Community-Seite hingegen erfordert nur die Bestätigung der E-Mail-Adresse.

ev-cfg.jpg ev-short.jpg ev-long.jpg ev-hdl.jpg

Die Ereignisse werden dabei von der Applikationslogik ausgelöst. Anhand der Konfiguration wir dann bestimmt, welche Event-Handler ausgeführt werden sollen. Derzeit gibt es rund zwanzig Event-Handler für alle möglichen Standard-Anwendungen. Beispiele sind das Versenden von E-Mails, die Indizierung von Tabellen oder das Updaten der Übersetzungsystems (I18n). Darüber hinaus gibt es verschiedene Custom-Event-Handler, die auf verschiedenen Kunden-Präsenzen ganz spezielle Aktionen durchführen. Das ist möglich, weil die Event-Handler als einfache Plugins implementiert sind und es jedem Entwickler ermöglichen eigene Event-Handler zu schreiben.

Die Konfiguration erfolgt im XML-Format (in Dateien oder Datenbank) und ermöglicht sowohl den Asynchronen als auch die synchrone Ausführung der Aktionen. Außerdem können beliebig viele Aktionen nacheinander folgen oder parallel abgearbeitet werden. Daraus ergibt sich ein Höchstmaß an Flexibilität und Applikationslogik kann komplett von den Aktionen entkoppelt werden. Das ist nicht nur für den Programmierer vorteilhaft, hier behält auch der Administrator der Webseite den Überblick, selbst wenn sich die Ereignisse überstürzen.

gERD Schaufelberger

zur Liste


Aktuelle Artikel