Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Datengetriebene_Software-Architekturen.pdf

Holger Tiemeyer
February 11, 2021

 Datengetriebene_Software-Architekturen.pdf

In modernen Systemarchitekturen befinden sich die Daten „im Fluss“ (engl. Flow): IoT-Geräte, Fahrzeuge, Trucks usw. übertragen Daten in die Cloud- oder dedizierte Serverumgebungen. Diese Daten sind volatil, denn ein Merkmal dieser Daten ist der Aspekt, dass diese nicht mehr nur durch Benutzerinteraktionen an einer UI oder einem Terminal erzeugt werden oder in vorgegebenen Strukturen erwartet werden. In dieser Session werden Architekturmöglichkeiten zum Umgang mit diesen Daten vorgestellt.

Holger Tiemeyer

February 11, 2021
Tweet

More Decks by Holger Tiemeyer

Other Decks in Science

Transcript

  1. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 2 Kurzprofil Schwerpunkte • Softwarearchitektur

    und –beratung • Enterprise-Architektur • Softwareentwicklung • Projektleitung Branchen • Automotive • Health • IT Dienstleistung • Banken/Versicherung Biographie • Diplom Informatiker • ISAQB: • Akkreditierter Trainer für Foundation-Level und Advanced-Level-Module • Certified Professional for Software Architecture (Advanced Level) • Leiter AG Hochschulen • IREB Certified Professional for Requirements Engineering (Foundation Level) • OMG-Certified Expert in Business Process Management (BPM) Holger Tiemeyer ~20 Jahre Erfahrung in Enterprise-Projekten
  2. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 3 “Life was simple before

    World War II. After that, we had systems.” - Grace Hopper
  3. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 4 Aktuelle Anforderungen Automotive: Verschiedene

    Zielmärkte: EU, US, Asien Sofortige Verfügbarkeit von Auswertungen und Ergebnissen oder Statusmeldungen in ein Fahrzeug Predictive Analysis Streaming (z.B. Netflix) ins Auto Anbindung unterschiedlicher Telefon-Provider …
  4. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 5 Begriff „Softwarearchitektur“ Über 150

    Definitionen. Kernbegriffe: Prinzipien und Regeln für die Organisation eines Systems Strukturierung in Bausteine und Schnittstellen Beziehungen zueinander wie auch zur Umgebung Festlegen von Richtlinien für den gesamten Lebenszyklus Analyse Entwurf Implementierung Weiterentwicklung Enwicklungs- und Betreibsorganisation
  5. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 6 Architekturperspektiven Domänenarchitektur fachliche Strukturierung

    der (System-/)Anwendungslandschaft unabhängig von konkreten Technologien Ziel: klar zu definieren, welche Teilbereiche es gibt und welche Verantwortungen diese tragen, sowohl in Bezug auf Prozesse und Logik wie auch auf Daten
  6. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 7 Architekturperspektiven Makroarchitektur Übergreifende Grundsätze

    für Entwicklung von Individual- und die Integration von Standardsoftware. Vorgaben zu Themen, die weitestgehend unabhängig von der internen Struktur einzelner Systeme sind. Schwerpunkt: Definition eines übergreifenden Rahmens, in den sich alle Anwendungen/Systeme einbetten müssen. Beispiele: Kommunikationsprotokolle UI-Integration Mechanismen zur Datenreplikation Monitoring/Logging Betriebsschnittstellen Business Intelligence ...
  7. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 8 Architekturperspektiven Mikroarchitektur Konzepte und

    Vorgaben für die Implementierung einzelner Systeme, die sich in die Makroarchitektur einbetten sollen. bezieht sich auf die Interna eines Systems Festlegung von: Schichtenmodellen und Architekturmuster konkrete Lösungskonzepte Frameworks und Bibliotheken Ablaufumgebungen Datenbank- und Applikationsserver und weiteren, technischen Aspekten.
  8. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 11 Datenbegriffe Reale Welt Personen,

    Lieferanten, Artikel, Verträge, … Daten- Manage- ment A B Datenmodell Artikel Person Entitätstyp Daten- bank Entwurf Program- mieren Datenbankmodell ID BETRAG FX FY Datenstruktur ADATEN ID (Länge, Format, …) BETRAG BETRAG = BETRAG + X Programmcode (Quellcode) Anweisung/Befehl Programm ausführen Daten #1 300,00 #2 -78,20 (ID Betrag …) Spalte Datenfeld Metadaten Datenbestand Datensatz Abbild der realen Welt analysieren
  9. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 12 Datenbankmanagementsysteme – zeitliche Entwicklung

    1960 IBM DBOMP (Database Organization and Maintenance Processor) 1963 Charles Bachman Data Structure Diagram 1968 IBM IMS (Information Management System) 1970 Dr. Codd, Relationales Modell 1975 ANSI-SPARC 3-Schema Architektur 1978 Oracle 1983 IBM DB2 1986 Objekt- daten- banken 1996 UML 2007 NoSQL Heute 2021 ? 1976 Peter Chen Entity Relationship modeling
  10. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 13 Datenbankmanagementsysteme – zeitliche Entwicklung

    1960 IBM DBOMP (Database Organization and Maintenance Processor) 1963 Charles Bachman Data Structure Diagram 1968 IBM IMS (Information Management System) 1970 Dr. Codd, Relationales Modell 1975 ANSI-SPARC 3-Schema Architektur 1978 Oracle 1983 IBM DB2 1986 Objekt- daten- banken 1996 UML 2007 NoSQL Heute 2021 ? 1976 Peter Chen Entity Relationship modeling Pointer als Konstrukt, Beziehungen im Fokus Relationales Empire
  11. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 14 Relationales Empire Grundlagen der

    Theorie: 1970er Jahre durch Edgar F. Codd Arbeit: A Relational Model of Data for Large Shared Data Banks Basis: Relationale Algebra (algebraisches Modell) Beschreibt wie Daten gespeichert, abgefragt und manipuliert werden können. Wesentliche Operatoren: Projektion Selektion Kreuzprodukt Umbenennung Vereinigung Differenz
  12. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 15 Relationales Empire Wesentlicher Bestandteil:

    Schema Legt fest: wie Daten in der Datenbank gespeichert werden wie diese Daten in Beziehung zueinander stehen Datenmodellierung zur Erstellung des Schemas Entity-Relationship-Modell als konzeptuelles Modell (logischer Entwurf) Normalisierung zur Vereinfachung der Wartung: Redundanzen verringern Anomalien verhindern
  13. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 18 Prozess der Datenmodellierung Entitäten

    identifizieren Attribute identifizieren Beziehungen identifizieren Muster anwenden Namens- konventionen Schlüssel zuweisen Normalisieren De- normalisieren Angelehnt an: Graph Data Modeling for NoSQL and SQL, Thomas Friesendal
  14. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 19 Datenzentrierter Architekturstil - Repository

    <<aktiv>> Funktionaler Baustein-2 <<passiv>> Shared Repository <<aktiv>> Funktionaler Baustein-1 <<aktiv>> Supervisor / Bootstrap Legende: Datenfluss Kontroll-/Steuerfluss User Aus: Effektive Software-Architekturen, Gernot Starke, Hansa, 8. Auflage
  15. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 20 Batchverarbeitung Ein oder mehre

    Datenbestände als Eingabe Menge an Aufgaben oder Daten werden: vollständig automatisch und sequentiell verarbeitet
  16. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 22 Klassische Softwarearchitekturen Schichtenarchitektur Einzelne

    Aspekte eines Softwaresystems werden konzeptionell einer Schicht (engl. tier oder layer) zugeordnet. Die erlaubten Abhängigkeitsbeziehungen zwischen den Aspekten werden bei einer Schichtenarchitektur eingeschränkt: Aspekte einer höheren Schicht dürfen nur solche tieferer Schichten verwenden.
  17. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 23 Klassische Softwarearchitekturen Angelehnt an:

    https://speakerdeck.com/stilkov/modularization-via-microservices, Stefan Tilkov, innoq GmbH
  18. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 25 Risiko-minimierung Risiko-minimierung Risiko-minimierung Risiko-minimierung

    Risiko-minimierung Risiko-minimierung Risiko-minimierung Risiko-minimierung Vertrieb Marketing Verwaltung Compliance … … … …
  19. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 26 Risiko-minimierung Risiko-minimierung Risiko-minimierung Risiko-minimierung

    Risiko-minimierung Risiko-minimierung Risiko-minimierung Risiko-minimierung Vertrieb Marketing …
  20. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 28 Datenflussarchitekturstil – Batch-Sequentiell receive

    validate optimize sort report Legende: Datenfluss Aus: Effektive Software-Architekturen, Gernot Starke, Hansa, 8. Auflage
  21. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 31 „The effectiveness of a

    ‘modularization‘ is dependent upon the criteria used in dividing the system into modules.“ - Parnas 1972
  22. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 32 Flexible Architekturen Typische Merkmale

    von IT-Landschaften in Unternehmen Heterogenität (technisch und semantisch) Unterschiedliche Technologien, unterschiedliche Software- und Systemarchitekturen, ... „Silo-Applikationen“ Eingeschränkte Kollaboration zwischen Anwendungen -> Redundanz (Funktionalität und Daten) Hohe Kosten für Betrieb, Wartung und Weiterentwicklung
  23. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 33 Flexible Architekturen Angelehnt an:

    https://speakerdeck.com/stilkov/modularization-via-microservices, Stefan Tilkov, innoq GmbH
  24. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 34 NoSQL Not only SQL

    Relationale Datenbanken unterliegen in einigen Anwendungsbereichen gewissen Leistungsproblemen Datenintensive Anwendungen (z.B. Indexierung großer Datenmengen) Webseiten mit hohen Lastaufkommen (z.B. Streaming-Media- Anwendung) NoSQL-Datenbanken können mit hohen Datenanforderungen und häufigen Datenänderungen umgehen z.B. mit vielen Schreib-/Leseanfragen
  25. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 35 NoSQL Datenmodell Leistung Skalierbarkeit

    Flexibilität Komplexität Key-Value Hoch Hoch Hoch Keine Spaltenorientiert Hoch Hoch Mittel Minimal Dokumentenorientiert Hoch Unterschiedlich (hoch) Hoch Unterschiedlich (Gering) Graphbasiert Unter- schiedlich Unterschiedlich Hoch Hoch
  26. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 36 “The most dangerous phrase

    in the language is, 'We’ve always done it this way.’” - Grace Hopper
  27. OOP (digital), 11.02.2021 38 Daten- menge A Daten- menge B

    𝑨 ∩ 𝑩 Denkansatz: Use it and loose it Photo by David Hofmann on Unsplash
  28. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 42 Sammeln & analysieren (Periodische)

    Unterbrechungen Endnutzer / -system bestimmt die Unterbrechungen Selbst bei schnellster Lieferung erscheinen die Daten nie als Stream Realzeitanalysen und Auswertungen Haltbarkeit? Persistenz der Event-Stream- Daten Kontrollpunkte, um von einem bestimmten Punkt aus zu lesen
  29. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 43 Datenflüsse als zentraler Aspekt

    des Architekturdesigns Echtzeitanalysen von Datenflüssen/-strömen ermöglichen es, auf Ereignisse direkt (zum Zeitpunkt des Auftretens) zu reagieren. Datenströme müssen nicht verworfen werden. Es besteht die technologische Möglichkeit, Datenströme geographisch zu replizieren. Ein effektives „message-passing“-System stellt das Herz einer effektiven (Big-)Data-Architektur dar.
  30. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 44 Möglichkeiten des Architekturstils Grundlagen:

    höchst skalierbar Möglichkeit des Startens und Stoppens (ohne Informationsverlust) Möglichkeit mit Message-Technologien zu interagieren Performanz und geringe Latenz „Exactly-once delivery“ Windowing
  31. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 45 Charakteristiken der Messaging-Technologie Vollständige

    Unabhängigkeit der „Producer“ von den „Consumern“ Persistenz Enorm hohe Raten von Nachrichten pro Sekunde Topics benennen Eine wiederholt abspielbare Sequenz mit einer strengen Ordnung Fehlertoleranz Geo-verteilte Replikation
  32. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 46 Topic Partition 0 Partition

    1 Partition 2 0 1 2 3 4 5 6 7 8 9 1 0 1 1 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 1 0 1 1
  33. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 48 Rohdaten Daten- quelle Echtzeit-

    analyse Dashboard Daten- quelle Ergebnisse Aggregation Augmentation Archiv Anomalien entdecken Ergeb- nisse Monats- report Angelehnt an: Streaming Architecture, Ted Dunning & Ellen Friedman, O‘Reilly, 2016
  34. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 49 Aktuelle Anforderungen Automotive: Verschiedene

    Zielmärkte: EU, US, Asien Sofortige Verfügbarkeit von Auswertungen und Ergebnissen oder Statusmeldungen in ein Fahrzeug Predictive Analysis Streaming (z.B. Netflix) ins Auto Anbindung unterschiedlicher Telefon-Provider …
  35. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 50 Rohdaten Echtzeit- analyse Dashboard

    Ergebnisse Aggregation Augmentation Archiv Anomalien entdecken Ergeb- nisse Monats- report Angelehnt an: Streaming Architecture, Ted Dunning & Ellen Friedman, O‘Reilly, 2016 EU, US, Asien
  36. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 51 Dashboard Aggregation Augmentation Archiv

    Anomalien entdecken Ergeb- nisse Monats- report EU, US, Asien Auto-<Region>- Stream Analyse Analyse-<Region>- Stream
  37. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 52 Data-Warehouse / Data-Lakes Analyse

    und Reports auf Basis strukturierter Daten im Data-Warehouse Rohe, unstrukturierte Daten, die erst zum Zeitpunkt der Benutzung ausgewählt und organisiert werden Data-Warehouse: Data-Lake:
  38. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 53 Data Lake Data Warehouse

    Landing Zone Staging Zone Analytisches Sandbox Curated Data Zone (Big-Data Warehouse) Datenquellen Datenquellen Bereinigung, Filterung, Aggregation Experi- mente mit Daten
  39. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 54 Dashboard Aggregation Augmentation Archiv

    Anomalien entdecken Ergeb- nisse Monats- report EU, US, Asien Auto-<Region>- Stream Analyse Analyse-<Region>- Stream
  40. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 56 Data-Meshes Skalierende, dezentral organisierte

    Datenlandschaft Strukturierung von Daten in Domänen und Subdomänen inkl. Verantwortungszuordnung zu cross-funktionalen Teams Producer stellen Daten hochqualitativ und konsumentengerecht zur Verfügung Keine zentrale Datenverantwortung -> Konzentration auf Use- Cases der Datenproduzenten und Datenkonsumenten
  41. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 57 Streams in Programmiersprachen Beispiel:

    Java Stream API: Anspruchsvolle Operationen zur Datenmanipulation (Suche, Filter, Maps). Ähnliche Konstrukte wie sie Datenbank-Abfragen (SQL) ermöglichen, können mit der Stream API realisiert werden. Parallelisierung möglich (hohe Effizienz). Effiziente und „einfache“ Handhabung von Daten (insbesondere für große Datenmengen)
  42. Datengetriebene Software-Architekturen OOP (digital), 11.02.2021 58 Reaktive Systeme (Programmierung) Responsiv,

    Widerstandsfähig, Elastisch und Nachrichtengetrieben. Programmierung mit asynchronen, immutable Streams von Events. Observables als Grundstein