SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
Event Driven
Architecture in
Domino
Bernd Gewehr
@bgewehr
Bernd Gewehr
• Bauingenieure
• 750 Mitarbeiter
• 43 Jahre Know-how
• 25 Büros in 5 Ländern
• 12.000 Projekte in 15 Ländern
Leiter der IT-Abteilung
25 Jahre Betriebszugehörigkeit
4 Entwickler in Düsseldorf
Konzepte der Software-Architektur
• Anfrage – Antwort
(Request – Response)
Bei diesem Muster kommunizieren die Komponenten synchron durch direkte Anfragen und
Antworten. Es ist einfach zu verstehen und zu implementieren, kann aber zu enger Kopplung
und geringer Skalierbarkeit führen.
Server
REQ/RES
Client
Konzepte der Software-Architektur
• veröffentlichen – abonnieren
(publish - subscribe)
Bei diesem Muster kommunizieren die Komponenten asynchron durch Ereignisse über einen
Ereignisbus. Es ist komplexer zu verstehen und zu implementieren, kann aber zu loser Kopplung
und höherer Skalierbarkeit führen.
Ereignis-
Bus
PUB/SUB
Client
PUB/SUB
Server
Konzepte der Software-Architektur
• Monolithische Architektur
Applikation
Server
Dienst
Dienst
Dienst
Client REQ/RES Daten
Bei diesem Muster wird eine Anwendung als eine einzige, zusammenhängende Einheit erstellt. Es ist
einfacher zu entwickeln und bereitzustellen, kann aber zu enger Kopplung und Skalierbarkeitsproblemen
führen, wenn die Anwendung wächst.
Konzepte der Software-Architektur
• Serviceorientierte Architektur
(SOA)
Dienst-
Verzeichn
is, Dienst-
BUS
PUB/SUB
Dienst
Dienst
Dienst
Client
Server
SOA ist ein architektonisches Muster, das die Verwendung von Diensten, d. h. von in sich geschlossenen
Funktionseinheiten, zur Erstellung von Anwendungen in den Vordergrund stellt. Die Dienste
kommunizieren untereinander über genau definierte Schnittstellen. SOA kann auch verschiedene
Kommunikationsmuster wie Anfrage/Antwort oder Veröffentlichen/Abonnieren verwenden.
Konzepte der Software-Architektur
• Microservices-Architektur
Microservices konzentrieren sich auf die Zerlegung von Anwendungen in kleine, unabhängig voneinander
einsetzbare Dienste, die über APIs kommunizieren. Microservices können Kommunikationsmuster wie
Request/Response oder Publish/Subscribe verwenden.
Client
PUB/SUB
Dienst
Dienst
Dienst
Server Foundry
Konzepte der Software-Architektur
• ereignisgesteuerte Architektur
Event
BUS
PUB/SUB
Dienst
PUB/SUB Client
PUB/SUB
Dienst
PUB/SUB
Dienst
Server
REQ/RES
Server PUB/SUB
Foundry
Softwareentwurfsmuster, das die Erzeugung, Erkennung und Nutzung von Ereignissen fördert. In diesem
Paradigma wird der Ablauf der Anwendung durch Ereignisse bestimmt, d. h. durch signifikante
Zustandsänderungen oder Aktionen, die innerhalb des Systems auftreten. Diese Ereignisse werden in der
Regel als Nachrichten dargestellt und zwischen verschiedenen Komponenten, über einen zentralen
Ereignis-Bus oder ein Nachrichtensystem ausgetauscht.
Foundry
Konzepte der Software-Architektur
ChatGPT: Die Event Driven Architecture (EDA) bietet im Vergleich zu anderen Ansätzen mehrere Vorteile:
1. Lose Kopplung: EDA fördert die asynchrone Kommunikation zwischen Komponenten, wodurch Abhängigkeiten reduziert werden und es einfacher wird,
einzelne Komponenten zu ändern, zu warten und zu skalieren, ohne das gesamte System zu beeinträchtigen.
2. Verbesserte Reaktionsfähigkeit: Da EDA-basierte Systeme auf Ereignisse reagieren, sobald sie eintreten, können sie sich schnell an veränderte
Bedingungen anpassen und eine bessere Reaktionsfähigkeit in Echtzeit bieten.
3. Skalierbarkeit: Die entkoppelte Natur der EDA ermöglicht eine einfache horizontale Skalierung, da neue Ereignisproduzenten und -konsumenten
hinzugefügt werden können, ohne dass dies Auswirkungen auf bestehende Komponenten hat.
4. Widerstandsfähigkeit: EDA-basierte Systeme sind in der Regel fehlertoleranter, da der Ausfall einer Komponente nicht unbedingt zu kaskadenartigen
Ausfällen im gesamten System führt.
5. Verarbeitung in Echtzeit: Die EDA eignet sich gut für die Datenverarbeitung und -analyse in Echtzeit, da sie es den Komponenten ermöglicht, auf
Ereignisse zu reagieren und Daten zu verarbeiten, sobald sie verfügbar sind.
6. Flexibilität: EDA ermöglicht die unabhängige Verarbeitung desselben Ereignisses durch mehrere Verbraucher, so dass verschiedene Geschäftslogiken oder
Verarbeitungsanforderungen parallel implementiert werden können.
Trotz dieser Vorteile ist EDA möglicherweise nicht für alle Szenarien die beste Wahl. Sie kann die Komplexität des Systems erhöhen, erfordert eine sorgfältige
Prüfung der Nachrichtenbehandlung und Fehlerbehebung und ist möglicherweise nicht für Anwendungen geeignet, die eine synchrone Kommunikation oder
sofortige Antworten erfordern. Die Entscheidung für den Einsatz von EDA sollte auf einer gründlichen Analyse der spezifischen Anforderungen, Ziele und
Beschränkungen des Projekts beruhen.
• Erster Anwendungsfall:
• Der "Vössing Notification Event Bus"
Event Driven Architecture in Domino
Event Driven Architecture in Domino
Event Driven Architecture in Domino
• Erkenntnisse:
• Anwendungs-Transaktionen führen zu Benachrichtigungen
• Benachrichtigungen wurden z. B. gesendet, indem man
in der Formel der Aktions-Schaltfläche
• Der Vorteil: Einfach zu erstellen, einfach zu konsumieren
• Nachteil:
• App-Entwickler entscheidet über Inhalt, Medium und Verteilung der Benachrichtigung "im
Code".
• Andere Empfänger können nicht entscheiden, ob sie zuhören wollen
Event Driven Architecture in Domino
• Beispiele Ereignis-Benachrichtigungsaktionen @vössing:
• Erstellung neuer Dokumente in Datenbanken
• Workflow-Ereignis-Aktionen wie z. B. Freigabe
• Abschluss von Projekten nach Abschluss
• Empfangene oder bezahlte Rechnungen in der
Kreditorenbuchhaltung
• Neue Kommentare zu Datenobjekten
• @Anmerkungen in diesen Kommentaren von Web UI
• Statusänderungen, etc.
Event Driven Architecture in Domino
Aktionen
Aktionen
Aktionen
Aktionen
Aktionen
Aktionen
veröffentlichen
• Durch Aktionen ausgelöste Benachrichtigungen @voessing
„Benachrichtigungs-Event-Bus"
Event Driven Architecture in Domino
• Ereignisbenachrichtigungskanäle @vössing:
• Feed (in der Mitarbeiter-Selbstbedienungs-App)
• E-Mail (Notes)
• CNX Connections Aktivitätsstrom (CNX Portal)
• Team-Chat oder persönlicher Chat (MS Teams)
• Geplant: Push-Benachrichtigungen mit Volt MX für
native Mobil-/Desktop-Anwendungen
Event Driven Architecture in Domino
• Was wäre, wenn...
• Ereignisse als abstrakte Muster definiert werden könnten, die von
Anwendungen ausgelöst werden
• Die Definition von Ereignismustern Benachrichtigungsoptionen für
verschiedene Benachrichtigungskanäle enthalten würde
• Die Nutzer festlegen und verwalten könnten, über welche
Ereignisse sie wann und wie (auf welchem Kanal) informiert werden
möchten.
• Andere Apps können diese Ereignisse auch zu
Automatisierungszwecken abonnieren
Event Driven Architecture in Domino
• 1. Erstellen Sie einen Ereigniskategorienkatalog:
Grundlegende Informationen
zur Kategorie
Scopes bieten einen
interessanten Filter für
Benutzer, wie "nur meine
eigenen" oder "für mich
relevante" Ereignisse dieser
Kategorie
Zur Auswahl stehende Kanäle
74
Kategorien
gefunden
Event Driven Architecture in Domino
• 2. Erstellen Sie parametrische Benachrichtigungen:
93
Ereignisse
konfiguriert
Event Driven Architecture in Domino
• 3. Der Nutzer entscheidet, was er/sie will und wie
abonnieren
ABONNIEREN
1. Ereignisse aus Apps
2. Ereignis-
Konfiguration
3. Benutzereinstellungen
Event Driven Architecture in Domino
...
veröffentlichen.
MS-Teams
API VI
• Zweiter Anwendungsfall:
• Der "Vössing Einkaufs-Event-Bus"
Event Driven Architecture in Domino
• Automatisierung ausgelöst durch Ereignisse @vössing:
„Einkaufs-Event-Bus"
Dienst
Dienst
Dienst
Aktionen
Aktionen
Aktionen
veröffentlichen
Event Driven Architecture in Domino
Ereignis "Ende des Leasings“
löst Kaufantrag aus
Einkaufs-Event-Bus
• Durch Ereignisse ausgelöste Transaktionen @vössing:
„Einkaufs-Event-Bus"
Ereignis "Erfolgreiche Löschung“
deaktiviert Inventar
Ereignis Lieferschein
löst den Artikelstatus aus
Ereignis Serieneintrag
löst Installation/
Inventarisierung aus
Ereignis Versand
ändert Gerätestatus
(UPS API)
Ereignis Genehmigung
löst Bestellung aus
Ereignis der
Auftragsbestätigung
ändert Status der
Anfrageposition
auf „bestätigt“
Rechnungs-Ereignis
löst
Datenaktualisierung aus
Event Driven Architecture in Domino
• Nächste Schritte für ausgelöste Ereignisse @vössing:
• "Projekt Ereignisbus"
• Neu-Abschluss eines Kunden- oder Lieferantenvertrags löst
Q&A mit dem Projektmanagement für Kommunikations-
/Koordinations-/Inhaltsanforderungen aus
• Das Beenden eines Vertrages verschiebt Inhalte in den
schreibgeschützten Archiv-Bereich und speichert auf
billigerem Speicher, usw.
Event Driven Architecture in Domino
• OK. Was ich gerade gezeigt habe, ist nicht die ideale
Form einer ereignisgesteuerten Architektur
• ABER: Ereignisgesteuertes Design hilft bei der
Entwicklung flexibler, lose gekoppelter, skalierbarer
Anwendungen, die sich leicht integrieren lassen - sogar
in Domino
• Vielen Dank für‘s Zuhören!

Weitere ähnliche Inhalte

Ähnlich wie DACHNUG50 Event driven Architecture - Bernd Gewehr - Voessing de.pdf

Adruni Ishan Unified Workplace V2
Adruni Ishan   Unified Workplace V2Adruni Ishan   Unified Workplace V2
Adruni Ishan Unified Workplace V2
Adruni Ishan
 
ZüRich Ii Mobile App Final V3
ZüRich Ii Mobile App Final V3ZüRich Ii Mobile App Final V3
ZüRich Ii Mobile App Final V3
guest08d4be
 
Skalierung & Performance
Skalierung & PerformanceSkalierung & Performance
Skalierung & Performance
glembotzky
 
8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen
8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen
8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen
AWS Germany
 

Ähnlich wie DACHNUG50 Event driven Architecture - Bernd Gewehr - Voessing de.pdf (20)

Adruni Ishan Unified Workplace V2
Adruni Ishan   Unified Workplace V2Adruni Ishan   Unified Workplace V2
Adruni Ishan Unified Workplace V2
 
[DE] Verfahrensdokumentation nach GoBD & selbstdokumentierende Archivsysteme ...
[DE] Verfahrensdokumentation nach GoBD & selbstdokumentierende Archivsysteme ...[DE] Verfahrensdokumentation nach GoBD & selbstdokumentierende Archivsysteme ...
[DE] Verfahrensdokumentation nach GoBD & selbstdokumentierende Archivsysteme ...
 
batbern43 Command & Events Divide and conquer in Microservice Architekturen
batbern43 Command & Events Divide and conquer in Microservice Architekturenbatbern43 Command & Events Divide and conquer in Microservice Architekturen
batbern43 Command & Events Divide and conquer in Microservice Architekturen
 
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch SalzburgSlides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
 
DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes
 
DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...
DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...
DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...
 
ZüRich Ii Mobile App Final V3
ZüRich Ii Mobile App Final V3ZüRich Ii Mobile App Final V3
ZüRich Ii Mobile App Final V3
 
Rapid Application Development mit Openobject
Rapid Application Development mit OpenobjectRapid Application Development mit Openobject
Rapid Application Development mit Openobject
 
Architektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOpsArchitektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOps
 
Skalierung & Performance
Skalierung & PerformanceSkalierung & Performance
Skalierung & Performance
 
Artikel Schweizer Bank: SOA als Grundlage für «Composite Applications"​
Artikel Schweizer Bank: SOA als Grundlage für «Composite Applications"​Artikel Schweizer Bank: SOA als Grundlage für «Composite Applications"​
Artikel Schweizer Bank: SOA als Grundlage für «Composite Applications"​
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Modulare Enterprise Systeme - Eine Einführung
Modulare Enterprise Systeme - Eine EinführungModulare Enterprise Systeme - Eine Einführung
Modulare Enterprise Systeme - Eine Einführung
 
8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen
8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen
8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen
 
Camunda BPM 7.2 - Deutsch
Camunda BPM 7.2 - DeutschCamunda BPM 7.2 - Deutsch
Camunda BPM 7.2 - Deutsch
 
Cloud Ready? Migration von Anwendungen in die Cloud
Cloud Ready? Migration von Anwendungen in die CloudCloud Ready? Migration von Anwendungen in die Cloud
Cloud Ready? Migration von Anwendungen in die Cloud
 
Groupware Linuxtag 2008 Cb
Groupware Linuxtag 2008 CbGroupware Linuxtag 2008 Cb
Groupware Linuxtag 2008 Cb
 
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 
MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der Cloud
 
Entwicklung mit Volt MX und Co. | Teil 1
Entwicklung mit Volt MX und Co. | Teil 1Entwicklung mit Volt MX und Co. | Teil 1
Entwicklung mit Volt MX und Co. | Teil 1
 

Mehr von DNUG e.V.

Mehr von DNUG e.V. (20)

DNUG Online Domino - OnTime | Fachgruppe Domino | 07.05.2024
DNUG Online Domino - OnTime | Fachgruppe Domino | 07.05.2024DNUG Online Domino - OnTime | Fachgruppe Domino | 07.05.2024
DNUG Online Domino - OnTime | Fachgruppe Domino | 07.05.2024
 
DNUG Online Domino - OnTime | OnTime Gruppenkalender für Domino | 07.05.2024
DNUG Online Domino - OnTime | OnTime Gruppenkalender für Domino | 07.05.2024DNUG Online Domino - OnTime | OnTime Gruppenkalender für Domino | 07.05.2024
DNUG Online Domino - OnTime | OnTime Gruppenkalender für Domino | 07.05.2024
 
Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 
Slides (1) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (1) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (1) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (1) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 
Slides zum Impulsreferat: HCL BigFix - DNUG Stammtisch Karlsruhe
Slides zum Impulsreferat: HCL BigFix  - DNUG Stammtisch KarlsruheSlides zum Impulsreferat: HCL BigFix  - DNUG Stammtisch Karlsruhe
Slides zum Impulsreferat: HCL BigFix - DNUG Stammtisch Karlsruhe
 
Slides zum Impulsreferat: NIS2 & HCL BigFix - DNUG Stammtisch Karlsruhe
Slides zum Impulsreferat: NIS2 & HCL BigFix - DNUG Stammtisch KarlsruheSlides zum Impulsreferat: NIS2 & HCL BigFix - DNUG Stammtisch Karlsruhe
Slides zum Impulsreferat: NIS2 & HCL BigFix - DNUG Stammtisch Karlsruhe
 
Slides zum Impulsreferat: NIS2 - Was steckt konkret dahinter? - DNUG Stammtis...
Slides zum Impulsreferat: NIS2 - Was steckt konkret dahinter? - DNUG Stammtis...Slides zum Impulsreferat: NIS2 - Was steckt konkret dahinter? - DNUG Stammtis...
Slides zum Impulsreferat: NIS2 - Was steckt konkret dahinter? - DNUG Stammtis...
 
HCL Nomad - DNUG Stammtisch Salzburg.pdf
HCL Nomad - DNUG Stammtisch Salzburg.pdfHCL Nomad - DNUG Stammtisch Salzburg.pdf
HCL Nomad - DNUG Stammtisch Salzburg.pdf
 
Trends in Cybersecurity - DNUG Stammtisch Wien
Trends in Cybersecurity - DNUG Stammtisch Wien Trends in Cybersecurity - DNUG Stammtisch Wien
Trends in Cybersecurity - DNUG Stammtisch Wien
 
DACHNUG50 MX_Workshop.pdf
DACHNUG50 MX_Workshop.pdfDACHNUG50 MX_Workshop.pdf
DACHNUG50 MX_Workshop.pdf
 
DACHNUG50 Domino REST API - Konzepte und Hintergruende.pdf
DACHNUG50 Domino REST API - Konzepte und Hintergruende.pdfDACHNUG50 Domino REST API - Konzepte und Hintergruende.pdf
DACHNUG50 Domino REST API - Konzepte und Hintergruende.pdf
 
DACHNUG50 CNX0 Workshop.pdf
DACHNUG50 CNX0 Workshop.pdfDACHNUG50 CNX0 Workshop.pdf
DACHNUG50 CNX0 Workshop.pdf
 
DACHNUG50 What's new in CCB - V3.3.pdf
DACHNUG50 What's new in CCB - V3.3.pdfDACHNUG50 What's new in CCB - V3.3.pdf
DACHNUG50 What's new in CCB - V3.3.pdf
 
DACHNUG50 presentation 15 June 2023.pdf
DACHNUG50 presentation 15 June 2023.pdfDACHNUG50 presentation 15 June 2023.pdf
DACHNUG50 presentation 15 June 2023.pdf
 
DACHNUG50 Pointsharp overview_web_A4.pdf
DACHNUG50 Pointsharp overview_web_A4.pdfDACHNUG50 Pointsharp overview_web_A4.pdf
DACHNUG50 Pointsharp overview_web_A4.pdf
 
DACHNUG50 OnTime for Domino.pdf
DACHNUG50 OnTime for Domino.pdfDACHNUG50 OnTime for Domino.pdf
DACHNUG50 OnTime for Domino.pdf
 
DACHNUG50 Interpretation-von-Event-Logs-aus-CNX-mit-Hilfe-von-Domino.pdf
DACHNUG50 Interpretation-von-Event-Logs-aus-CNX-mit-Hilfe-von-Domino.pdfDACHNUG50 Interpretation-von-Event-Logs-aus-CNX-mit-Hilfe-von-Domino.pdf
DACHNUG50 Interpretation-von-Event-Logs-aus-CNX-mit-Hilfe-von-Domino.pdf
 
DACHNUG50 EasyTeamsWork.pdf
DACHNUG50 EasyTeamsWork.pdfDACHNUG50 EasyTeamsWork.pdf
DACHNUG50 EasyTeamsWork.pdf
 
DACHNUG50 Sametime Mobile aber sicher.pdf
DACHNUG50 Sametime Mobile aber sicher.pdfDACHNUG50 Sametime Mobile aber sicher.pdf
DACHNUG50 Sametime Mobile aber sicher.pdf
 

DACHNUG50 Event driven Architecture - Bernd Gewehr - Voessing de.pdf

  • 2. Bernd Gewehr • Bauingenieure • 750 Mitarbeiter • 43 Jahre Know-how • 25 Büros in 5 Ländern • 12.000 Projekte in 15 Ländern Leiter der IT-Abteilung 25 Jahre Betriebszugehörigkeit 4 Entwickler in Düsseldorf
  • 3. Konzepte der Software-Architektur • Anfrage – Antwort (Request – Response) Bei diesem Muster kommunizieren die Komponenten synchron durch direkte Anfragen und Antworten. Es ist einfach zu verstehen und zu implementieren, kann aber zu enger Kopplung und geringer Skalierbarkeit führen. Server REQ/RES Client
  • 4. Konzepte der Software-Architektur • veröffentlichen – abonnieren (publish - subscribe) Bei diesem Muster kommunizieren die Komponenten asynchron durch Ereignisse über einen Ereignisbus. Es ist komplexer zu verstehen und zu implementieren, kann aber zu loser Kopplung und höherer Skalierbarkeit führen. Ereignis- Bus PUB/SUB Client PUB/SUB Server
  • 5. Konzepte der Software-Architektur • Monolithische Architektur Applikation Server Dienst Dienst Dienst Client REQ/RES Daten Bei diesem Muster wird eine Anwendung als eine einzige, zusammenhängende Einheit erstellt. Es ist einfacher zu entwickeln und bereitzustellen, kann aber zu enger Kopplung und Skalierbarkeitsproblemen führen, wenn die Anwendung wächst.
  • 6. Konzepte der Software-Architektur • Serviceorientierte Architektur (SOA) Dienst- Verzeichn is, Dienst- BUS PUB/SUB Dienst Dienst Dienst Client Server SOA ist ein architektonisches Muster, das die Verwendung von Diensten, d. h. von in sich geschlossenen Funktionseinheiten, zur Erstellung von Anwendungen in den Vordergrund stellt. Die Dienste kommunizieren untereinander über genau definierte Schnittstellen. SOA kann auch verschiedene Kommunikationsmuster wie Anfrage/Antwort oder Veröffentlichen/Abonnieren verwenden.
  • 7. Konzepte der Software-Architektur • Microservices-Architektur Microservices konzentrieren sich auf die Zerlegung von Anwendungen in kleine, unabhängig voneinander einsetzbare Dienste, die über APIs kommunizieren. Microservices können Kommunikationsmuster wie Request/Response oder Publish/Subscribe verwenden. Client PUB/SUB Dienst Dienst Dienst Server Foundry
  • 8. Konzepte der Software-Architektur • ereignisgesteuerte Architektur Event BUS PUB/SUB Dienst PUB/SUB Client PUB/SUB Dienst PUB/SUB Dienst Server REQ/RES Server PUB/SUB Foundry Softwareentwurfsmuster, das die Erzeugung, Erkennung und Nutzung von Ereignissen fördert. In diesem Paradigma wird der Ablauf der Anwendung durch Ereignisse bestimmt, d. h. durch signifikante Zustandsänderungen oder Aktionen, die innerhalb des Systems auftreten. Diese Ereignisse werden in der Regel als Nachrichten dargestellt und zwischen verschiedenen Komponenten, über einen zentralen Ereignis-Bus oder ein Nachrichtensystem ausgetauscht. Foundry
  • 9. Konzepte der Software-Architektur ChatGPT: Die Event Driven Architecture (EDA) bietet im Vergleich zu anderen Ansätzen mehrere Vorteile: 1. Lose Kopplung: EDA fördert die asynchrone Kommunikation zwischen Komponenten, wodurch Abhängigkeiten reduziert werden und es einfacher wird, einzelne Komponenten zu ändern, zu warten und zu skalieren, ohne das gesamte System zu beeinträchtigen. 2. Verbesserte Reaktionsfähigkeit: Da EDA-basierte Systeme auf Ereignisse reagieren, sobald sie eintreten, können sie sich schnell an veränderte Bedingungen anpassen und eine bessere Reaktionsfähigkeit in Echtzeit bieten. 3. Skalierbarkeit: Die entkoppelte Natur der EDA ermöglicht eine einfache horizontale Skalierung, da neue Ereignisproduzenten und -konsumenten hinzugefügt werden können, ohne dass dies Auswirkungen auf bestehende Komponenten hat. 4. Widerstandsfähigkeit: EDA-basierte Systeme sind in der Regel fehlertoleranter, da der Ausfall einer Komponente nicht unbedingt zu kaskadenartigen Ausfällen im gesamten System führt. 5. Verarbeitung in Echtzeit: Die EDA eignet sich gut für die Datenverarbeitung und -analyse in Echtzeit, da sie es den Komponenten ermöglicht, auf Ereignisse zu reagieren und Daten zu verarbeiten, sobald sie verfügbar sind. 6. Flexibilität: EDA ermöglicht die unabhängige Verarbeitung desselben Ereignisses durch mehrere Verbraucher, so dass verschiedene Geschäftslogiken oder Verarbeitungsanforderungen parallel implementiert werden können. Trotz dieser Vorteile ist EDA möglicherweise nicht für alle Szenarien die beste Wahl. Sie kann die Komplexität des Systems erhöhen, erfordert eine sorgfältige Prüfung der Nachrichtenbehandlung und Fehlerbehebung und ist möglicherweise nicht für Anwendungen geeignet, die eine synchrone Kommunikation oder sofortige Antworten erfordern. Die Entscheidung für den Einsatz von EDA sollte auf einer gründlichen Analyse der spezifischen Anforderungen, Ziele und Beschränkungen des Projekts beruhen.
  • 10. • Erster Anwendungsfall: • Der "Vössing Notification Event Bus"
  • 13. Event Driven Architecture in Domino • Erkenntnisse: • Anwendungs-Transaktionen führen zu Benachrichtigungen • Benachrichtigungen wurden z. B. gesendet, indem man in der Formel der Aktions-Schaltfläche • Der Vorteil: Einfach zu erstellen, einfach zu konsumieren • Nachteil: • App-Entwickler entscheidet über Inhalt, Medium und Verteilung der Benachrichtigung "im Code". • Andere Empfänger können nicht entscheiden, ob sie zuhören wollen
  • 14. Event Driven Architecture in Domino • Beispiele Ereignis-Benachrichtigungsaktionen @vössing: • Erstellung neuer Dokumente in Datenbanken • Workflow-Ereignis-Aktionen wie z. B. Freigabe • Abschluss von Projekten nach Abschluss • Empfangene oder bezahlte Rechnungen in der Kreditorenbuchhaltung • Neue Kommentare zu Datenobjekten • @Anmerkungen in diesen Kommentaren von Web UI • Statusänderungen, etc.
  • 15. Event Driven Architecture in Domino Aktionen Aktionen Aktionen Aktionen Aktionen Aktionen veröffentlichen • Durch Aktionen ausgelöste Benachrichtigungen @voessing „Benachrichtigungs-Event-Bus"
  • 16. Event Driven Architecture in Domino • Ereignisbenachrichtigungskanäle @vössing: • Feed (in der Mitarbeiter-Selbstbedienungs-App) • E-Mail (Notes) • CNX Connections Aktivitätsstrom (CNX Portal) • Team-Chat oder persönlicher Chat (MS Teams) • Geplant: Push-Benachrichtigungen mit Volt MX für native Mobil-/Desktop-Anwendungen
  • 17. Event Driven Architecture in Domino • Was wäre, wenn... • Ereignisse als abstrakte Muster definiert werden könnten, die von Anwendungen ausgelöst werden • Die Definition von Ereignismustern Benachrichtigungsoptionen für verschiedene Benachrichtigungskanäle enthalten würde • Die Nutzer festlegen und verwalten könnten, über welche Ereignisse sie wann und wie (auf welchem Kanal) informiert werden möchten. • Andere Apps können diese Ereignisse auch zu Automatisierungszwecken abonnieren
  • 18. Event Driven Architecture in Domino • 1. Erstellen Sie einen Ereigniskategorienkatalog: Grundlegende Informationen zur Kategorie Scopes bieten einen interessanten Filter für Benutzer, wie "nur meine eigenen" oder "für mich relevante" Ereignisse dieser Kategorie Zur Auswahl stehende Kanäle 74 Kategorien gefunden
  • 19. Event Driven Architecture in Domino • 2. Erstellen Sie parametrische Benachrichtigungen: 93 Ereignisse konfiguriert
  • 20. Event Driven Architecture in Domino • 3. Der Nutzer entscheidet, was er/sie will und wie abonnieren
  • 21. ABONNIEREN 1. Ereignisse aus Apps 2. Ereignis- Konfiguration 3. Benutzereinstellungen Event Driven Architecture in Domino ... veröffentlichen. MS-Teams API VI
  • 22. • Zweiter Anwendungsfall: • Der "Vössing Einkaufs-Event-Bus"
  • 23. Event Driven Architecture in Domino • Automatisierung ausgelöst durch Ereignisse @vössing: „Einkaufs-Event-Bus" Dienst Dienst Dienst Aktionen Aktionen Aktionen veröffentlichen
  • 24. Event Driven Architecture in Domino Ereignis "Ende des Leasings“ löst Kaufantrag aus Einkaufs-Event-Bus • Durch Ereignisse ausgelöste Transaktionen @vössing: „Einkaufs-Event-Bus" Ereignis "Erfolgreiche Löschung“ deaktiviert Inventar Ereignis Lieferschein löst den Artikelstatus aus Ereignis Serieneintrag löst Installation/ Inventarisierung aus Ereignis Versand ändert Gerätestatus (UPS API) Ereignis Genehmigung löst Bestellung aus Ereignis der Auftragsbestätigung ändert Status der Anfrageposition auf „bestätigt“ Rechnungs-Ereignis löst Datenaktualisierung aus
  • 25. Event Driven Architecture in Domino • Nächste Schritte für ausgelöste Ereignisse @vössing: • "Projekt Ereignisbus" • Neu-Abschluss eines Kunden- oder Lieferantenvertrags löst Q&A mit dem Projektmanagement für Kommunikations- /Koordinations-/Inhaltsanforderungen aus • Das Beenden eines Vertrages verschiebt Inhalte in den schreibgeschützten Archiv-Bereich und speichert auf billigerem Speicher, usw.
  • 26. Event Driven Architecture in Domino • OK. Was ich gerade gezeigt habe, ist nicht die ideale Form einer ereignisgesteuerten Architektur • ABER: Ereignisgesteuertes Design hilft bei der Entwicklung flexibler, lose gekoppelter, skalierbarer Anwendungen, die sich leicht integrieren lassen - sogar in Domino • Vielen Dank für‘s Zuhören!