Tubewarder ist ein zentrales Gateway/Hub für ausgehende Mitteilungen. Es lagert unnötige technische Details von Applikationen, die automatisiert Nachrichten versenden, in ein zentrales System aus. Es beinhaltet Kanäle zum Versenden von E-Mails, SMS und zum Aufruf von Webservices.
2. Auf einen Blick
Ein zentraler Verteiler für ausgehende Mitteilungen
Designed für Anwendungen, die Nachrichten automatisiert versenden
Abstrahiert von konkreten Kanälen (E-Mail, SMS, etc.)
Beinhaltet eine mächtige Template Engine (Apache FreeMarker)
Kümmert sich um Archivierung, erneute Zustellversuche,
Zugangsmanagement und Fehlerhandling
Einfach erweiterbar über Java API
Entrümpelt Ihre Applikationen!
4. Symptome?
Kanal-Spezifika in den einzelnen Anwendungen
Jeder-zu-jeder-Verbindungen (sendende Applikationen zu Kanälen)
Daher: Doppelter Code
Höhere Komplexität
Teurere Wartung
Anwendungen beschäftigen sich mit Dingen, die nicht zur Hauptaufgabe
gehören
10. App Tokens
Notwendig für jede Applikation, die die Send API erreichen soll
Verwendet für eindeutige Identifikation und Zugriffsmanagement
11. Channels
Channels sind Routen, über die ausgehende Nachrichten mit Hilfe einer
spezifische Output Handler Konfiguration versendet werden
Beispiele:
HTML E-Mails via SMTP server des Unternehmens
SMS via externem Webservice
Basieren auf Output Handlern, die die eigentliche Arbeit erledigen (z.B. E-
Mail, Webservice, Konsolen-Ausgabe)
Erweiterbar via Java API
13. Templates
Templates sind konkrete Mitteilungen, die Sie versenden möchten
Können Variablen (Platzhalter) und Kontrollstrukturen beinhalten
Können an einen oder mehrere Channels gebunden werden
Beispiele:
Willkommens-Mail per HTML-E-Mail
Willkommens-Mail per SMS
Template Engine: Apache FreeMarker
15. Send API
Das Herz von Tubewarder: Senden Sie Mitteilungen von Applikationen
mittels der generischen API an Tubewarder – sorgen Sie sich nicht um
Kanalspezifika!
Endpunkte:
SOAP: /ws/send (WSDL verfügbar unter /ws/send?wsdl)
REST: /rs/send
Detaillierte Informationen:
http://tubewarder.readthedocs.io/en/latest/Send-API/
20. Logs
Jede Nachricht, die an die Send API übermittelt wird, wird archiviert
Wichtige Details: Zeitpunkt, Betreff und Inhalt, sendende Applikation,
Empfänger, statistische Informationen (frei definierbarer Schlüsselbegriff
und Details) und weitere
Oft aus rechtlichen Gründen erforderlich
Die Logs können per Web-Interface eingesehen und durchsucht werden
21. Hochverfügbarkeit
Betreiben Sie mehrere Instanzen von Tubewarder hinter einem HTTP-
Loadbalancer, um hohe Verfügbarkeit herzustellen
Benutzen Sie dabei dieselbe Datenbank in allen Instanzen
Die Instanzen finden sich automatisch
Wenn eine Instanz einen Fehler hat, übernehmen die verbleibenden
Instanzen automatisch die zu sendenden Queue-Einträge der fehlerhaften
Instanz
22. Docker Container
Docker container ist verfügbar unter weweave/tubewarder
MySQL Datenbank vorinstalliert
HTTP Interface wird unter Port 8080 veröffentlicht
23. Output Handlers
API verfügbar zur Entwicklung eigener Output Handler
Output Handler werden in Java als POJOs entwickelt
Maven Dependency:
<dependency>
<groupId>net.weweave.tubewarder</groupId>
<artifactId>outputhandler-api</artifactId>
<version>1.0-Beta1</version>
</dependency>
Siehe das maven repository für die neuste Version
Deployment: Kompilierte JAR in libs/ Ordner ablegen – wird automatisch
gefunden und geladen