Was ist Software Architektur?
"Die Software-Architektur ist die grundlegende Organisation eines Systems,
dargestellt durch dessen Komponenten, deren Beziehungen zueinander und
zur Umgebung sowie die Prinzipien, die den Entwurf und die Evolution des
Systems bestimmen."
Was beschreibt eine Software Architektur?
1. Bausteine + Beziehung
2. IInteraktion zwischen Bausteine
3. Infrastruktur, Verteilung der Beusteine
4. Übergreifende Konzepte
Wovon hängt eine Software-Architektur ab?
Anforderingen:
Funktionalen
Qualität
Randbedingungen
Wozu tragt eine Software Architektur zu?
Projektleitung, Aufgabenplanung und -verteilungm Kommunikation
Was sind die Hauptaspekte einer Software Architektur?
Wie kann eine Anwedung durch Ihre Benutzer klassifiziert werden?
0: Systeme ohne Nuterinteratkion (“Batchverarbeitung”, “Dunkelberarbeitung”)
1: Einplatz, Standalone-Systeme
n: z. B. unternehmensweiter Mehrplatzsystem
N: z.B. Web-, Internetanwendung
Welchen Technologischen einfluss gibt es auf eine Software ARchitektur?
Vergefertige, wiederverwendbare Programmteile
Ausführungsumgebung
Programmiersprache, Middelware, Applikation Service
Betriebssystem
Hardware
Wie können Rechtliche Vorgaben die Systemarchitektur beeinflussen?
Datensicherheit (Archivierung, Aufbewahrungsfristen)
Datenschutz (Vertraulichkeit)
Revisionsanforderungen
Wie können Technische Vorgaben die Systemarchitektur beeinflussen?
die Entwicklungsumgebung (Programmiersprache, Werkzeuge etc.)
vorab gesetzte Komponenten (Datenbank, Webserver, Klassenbibiliothek)
technische Standards (wie Referenzarchitekturen, Datenformate, Protokolle)
Wie können Strategoscje Vorgaben die Systemarchitektur beeinflussen?
Wiederverwendung bestehender Komponenten
Zukauf externer Leistungen
Ausrichtung auf zukünftige Unternehmensarchitektur
Was für Qualitätsmerkmale kann eine Software haben?
Leistungsfähigkeit (Performance)
Sicherheit (Safety und Security)
Datenschutz (Privacy)
Nutzbarkeit (Usability, User Experience)
Zuverlässigkeit, Verfügbarkeit
Testbarkeit
Interoperabilität
Erweiterbarkeit, Anpassbarkeit
Betriebsfreundlichkeit, Skalierbarkeit
Nachvollziehbarkeit, Beobachtbarkeit
Was ist Koppelung?
Kopplung gibt an, wie stark die Abhängigkeiten der Bausteine untereinander sind.
Was ist die Kohäsion?
Kohäsion gibt an, wie stark der Zusammenhang innerhalb eines Bausteins ist.
Was sind die beobachtungsebenen?
Anwendungsarchietektur
Anwendungsintegration
Unternehmensarchitektur
Was sind die Drei Layer einer Architektur?
Wie können Bausteine organisiert werden?
In Schichten und Partionen
Was sind Partionone?
Partionen stehen als Teilbereiche der Anwendungsdomäne nebeneinander (Subdomänen)
Was sind Schichten?
Schichten stellen eine hierarchische Ordnung dar
Was ist das Dependency Inversion Pattern?
Welche Kommunikationsarten gibt es?
Synchrone Kommunikation
Asychrone Kommunikation
Was sind Vorteile von Cloud Computing?
Kosteneffizientz
Pay per Use
Datenschutz
Private Cloud, Providerstandort
Skalierbarkeit
gutes Lastverhaltung
Was ist Clustering?
Computercluster
Anzahl von vernetzten Computern, die ähnliche Aufgaben erledigt.
Was sind maßgebliche Qualitätsanforderungen von Cluster?
hohe Verfügbarkeit
High Availability Cluster
hohe Rechenkapazität
High performance Computing Cluster
hohe Skalierbarkeit
Load Balancing Cluster
Was für Client Arten gibt es?
Was ist der Unterschied zwischen Bibilotheken und Frameworks?
Wie können Architekturen dokumentiert werden?
Architecture Decision Records (ADR)
Was ist ein ADR?
Was ist arc24?
Was ist das Ziel von Enterprise Application Integration?
Betriebliche Informationssysteme (und Datenquellen zusammenführen, um die Unterstützung der Geschäftsproyesse zu verbessern.
Welche Integrationsebenen gibt es bei Enterprise Application Integration_
Welche Methoden gibt es zur Integration auf der Datenebene?
Föderiertes Datenschema
Zentrale Datenbank
File Tranfer
Welche Methoden gibt es zur Integration auf der Anwendungsebene?
Welche Merkmale hat die integration auf der Anwendungsebene?
Wie können Remote Calls ausgeführt werden?
SOAP
REST
gRPC
GraphQL
Welche Probleme hat SOAP?
SOAP-Services sind eher “schwergewichtig”
SOAP-Engine und WSDL Generator für viele, aber nicht alle Plattformen verfügbar.
Wofür steht REST?
Reprentational State Transfer
Welches Protokoll nutzt rest?
HTTP
Was stellt ein Rest Service bereit?
Ein Service Stellt Ressourcen bereit, die per URI adressiert werden
Welche Befehle bietet REST?
Wie erfolgt die Kommunikation bei REST?
Zustandslost
Was für Vorteile bieten Adapter?
Asynchrone Kommunikation
Was ist der Vorteile der Asynchronen Kommunikation gegenüber der Synchronen Kommunikation?
Der Webserver ist nicht so lange blockiert.
Was ist eine Mom?
Was ist eine Message Oriented Middelware?
Was für Kommunikationsmerkmale hat eine MOM?
Wie funktioniert der Typische Messaging Ablauf?
Welche Entkoppelung bietet eine MOM?
Was ist Point to Point Messaging?
Was ist Publish and Subscribe Messaging?
Was sind Vorteile vom MOM?
Wie funktioniert die Integration von Systemen auf der Präsentationsebene?
Was sind Vorteile von Hyperlinks?
Was sind Vorteile und Nachteile von Transclusion?
Was sind Vor- und Nachteile von IFrames?
Was sind Vor- und Nachteile von Web Components?
Was ist die Entwicklung IT-Management?
Was ist eine Unternehmensarchitektur?
Was sind die Ziele von Enterprise Architecture Management?
Was sind Probleme bei der EAM Einführung?
Was sind EAM Tätigkeiten?
Was bringt die Enterprice architekture management datenbasis?
Wie sollte eine Unternehmensarchitektur aufgeteilt werden?
Was beinhaltet die Geschäftsarchitektur von der Unternehmensarchitektur?
Was beinhaltet die Informationssystem-Architektur von der Unternehmensarchitektur?
Was beinhaltet die Technische-Architektur von der Unternehmensarchitektur?
Was beinhaltet die Betriebsinfrastruktur-Architektur von der Unternehmensarchitektur?
Was ist modulare Programmierung?
Application systematisch in logischen Unterblöcken zu zerlegen
Was sind ziele der Modularen Programmierung?
Was sind Ziele der Modularisierung in Java?
Wie sind Module und Pakete in Java aufgebaut?
Was ist das Ziel der hexagonalen Architektur?
„ Allow an application to equally be driven by users, programs, automated test or batch scripts, and to be developed and tested in isolation from its eventual run-time devices and databases.“
Wie ist die Hexagonale Architektur aufgebaut?
Was ist der Domain Layer von der Hexagonalen Architektur?
Gesamte Fachlogik ist hier enthalten
Sematisch und Validierung der Klassen
Keine Abhängigkeiten von anderen Anwendungskomponenten
Kann unabhängig von anderen Systemen entwickelt werden
Änderungen treten hier nur auf, wenn sich die Geschäftsanforderungen selbst ändern
Was ist der Service Layer / Use Cases?
Klassen, die alles rund um einen bestimmten Anwendungsfall behandelt
Code enthält Geschäftsvalidierungen und Logiken, die für den Anwendungsfall spezifisch sind und deshalb nicht in der Domäne implementiert werden können
Keine Abhängigkeiten nach außen: Kommunikation nach außen nur über Ports
Was ist Ports des Service Layers?
Verbraucherunabhängiger Ein- und Ausstiegspunkt zu/von der Anwendung
Häufig ein Interface
Ohne Kenntnis der konkreten Implementierung, die tatsächlich eingeführt wird
Eingehender/Driver Port
Stellt kernfunktionalität der Anwendung nach außen bereit
Ausgehender Driver Port
Werden verwendet, um Verbindung zu externen Systemen wie z.B. Datenbanken herzustellen
Was sind die Adapter des Infrastructure Layers?
Äußere Schicht: nicht teil des Kerns
Interagieren mit der Anwendung über eigenende bzw. aufgehende Ports
Primäre/Driver Adapter
Starten eine Aktion in der Anwendung
Steuern die Anwendung, indem sie Use Cases über eingehende Ports aufrufen
Sekndäre Driven Adapter
Stellen die Verbindung zu den backend/Tools dar
Implementierung für den Zugriff auf die sekundären Komponenten wie Datenbanken etc.
Erlichtern das Austauschen einer bestimmten Schicht der Anwednung
Was ist der unterschied zwischen Drivers und Driven Ports und Adapter
Driver
Adapter hängt vom Port ab und bekommt eine konkrete Implementierung des Ports übergeben, die den Anwendungsfall enthält
Ports als auch seine konkrete Implementierung (der Anwendungafall) gehören in die Anwendung
a driving adapter could be a controller which is the one that takes the (user) input and passes it to the Application via a Port.
Driven
Adapter die eine konkrete Implementierung des Ports und wird in die Geschäftlogik übergeben
Geschäftslogik kennt nur die Schnittstellen
Port gehört in den Anwendung, aber seine konkrete Implementierung gehört nach außen
Driven adapters will implement the Port and an Application Service will use it, in this case the Port is inside the Hexagon, but the implementation is in the Adapter, therefore outside of the Hexagon
Was sind Vor- und Nachteile von Hexagonale Architekturen?
Warum braucht man Domain Driven Desing?
Was ist Strategisches DDD?
Es ist die Erfassung von Doämen einer Anwendung sowie die Zerlegung dieser in Bounded Context und die Identifikation von Beziehungen dieser Subdomänen
Was ist eine Domäne im Strategischen DDD?
Eine Domäne ist ein Wirkungsgebiet in dem jemand bzw. eine Organisation besondere Fähigkeiten hat. (Spezialgebiet)
Was ist ein Boundex Context im Strategischen DD?
Bounded Context = Fachbereicht Kontext und umfasst die Geschäftslogik für einen bestimmten Fachbereich
Hat eine eigene Ubiquitour Language (Fachsprahce)
Was ist der Unterschied zwischen Strategischen und Taktischen dd?
Wie ist die Methodik des Stategischen DDD?
Bounded Context identifizieren
Logische teilbereiche Identifizieren
Beziehungen Identifizieren
Wie Wären die Teilbereiche beim Strategischen DD unterteilt?
Generic Subdomains
Core Domains
Supporting Subdomains
Warum ist die Beziehung der Bounded Contexte wichtig?
Die Identifizierung der Beziehungen ist wichtig, um die Kommunikation der Entwickler-Teams und der zu entwickelnden Systeme sicherzustellen.
Was sind die Fragen für die Identifizierung der Bounded COntexte im Domain Diven Design?
Wie werden die Kontexte (teschnisch) kommunizieren?
Wie übersetzen wir zwischen den Kontexten von einer Ubiquitour Language in eine andere?
Wie vermeiden wir es, Probleme für nachgelagerte Kontext zu vermeiden?
Wo werden die Beziehung des Bounded Context im Strategischen Design niedergeschrieben?
In einer Context Map
Was sind die Acht intergreationsmuster im Strategischen Domain Driven Desing?
Partnership
Bounded Contextes hängen vonaeinander ab
Synchrone Absprache Notwendig
Shared kernel
Bounded Contexts teilen sich eine gemeinsame Codebasis
Kernel kann in Absprache modifiziert werden
Ein Team ist für den Kernel zuständig
Customer Supplier
Unidirektionale Abhängigkeit
Keine gemeinsame Codebasis
Conformist (Mitläufer)
Supplier geht nicht auf Anforderungen ein, Downstream Team übernimmt alles
Anticorruption Layer
Dolmetscher hinzugefügt (Adapter)
Open Host Service
Nutzen eines klar Definiert Protokolls
Published Language
Verwendung wohldokumentierten formulierten Sprache.
Seperate Ways
Strigkte Trennung
Was ist das Entwurfsmuster des Transactional Script?
Was ist das Entwurfsmuster des Domain Models?
Welche Elemente gibt es im Taktischen Domain Driven Design?
Was ist ein Value Objeckt im Taktischen Domain Driven Design?
Was ist ein Enity im Taktischen Domain Driven Design?
Was ist ein Aggregate im Taktischen Domain Driven Design?
Was ist ein Domain Event im Taktischen Domain Driven Design?
Was ist ein Repository im Taktischen Domain Driven Design?
Was ist Service im Taktischen Domain Driven Design?
Vorteile von DDD?
Was ist REST?
Was ist gRPC?
Was sind Vorteile und Nachteile von gRPC?
Was ist Resilienz?
Was ist das Bulhead Pattern?
Was ist das Timeout Pattern?
Was ist das Retry Pattern?
Welche Herausforderungen gibt es bei Überlastung?
Was für arten von Skalierung gibt es?
Was ist der Unterschiwd zwischen HPC und HAC?
High Performance Computing Cluster
Ziel
Datenverarbeitung mit extrem hoher Geschwindigkeit
Durchführung komplexer Berechnungen
Ziel:
Availbility Erhöhen durch passiven knoten
Wie können Anwendungen Skaliert werden?
Wie können Anwendungen auf der Anwendungsschicht skaliert werden?
Wie können Anwendungen auf der Datenhaltungsshicht skaliert werden?
Was ist Service Discovery?
Welche Arten von Service Registration gibt es?
Self Registration
Third Party Registration
Clinet-Side Discovery
Server-Side Discovery
Was macht eine Service Registry beim Service Discoverty?
Was ist self registration bei der Service Discovery?
Was ist die third party registration bei der Service Discovery?
Was ist die client side registration bei der Service Discovery?
Was ist die Server-Side Discovery?
Was ist der Unterschied zwischen Docker und Virtuellen machienen?
Vor und Nachteile von Container?
Welche Komponenten hat Kubernetes?
Was ist Helm?
Helm hilft bei der Generierung von Kubernetes yamls
Was ist Kubernetes?
Was ist Serverless?
Was sind Probleme von Serverless?
Was ist API Composition?
Was für Unterschied von API Composer gibt es?
Nachteile von API Composition Pattern?
Vor und Nachteile von CQRS
Was ist die Architektur von CQRS?
CQRS fazit?
Wie kann synchrone Kommunikation optimiert werden?
Warum sollte man ein API-Gateway nutzen?
Was ist ein API-Gateway?
Was für Vorteile hat ein API Gateway?
Was sind Edge Functions eines API-Gateways?
Was sind Vor und Nachteile von einem API-Gateway?
Was sind Probleme von Rest?
Was sind die Merkmale von Graph QL?
Abfragesprache für APIs
Serverseitige Laufzeitumgebung für GraphQL-Queries
Vermeidung von Over und Underfetching
Protokollunabhängig
Schema beschreibt Enittiy-Graph
Lieber synchron oder asynchron?
Was für Advanced Exchange Typen gibt es?
Was ist ein Direct Exchange?
Was ist ein Topic Exchange?
Was ist ein Fanout Exchange?
Was ist ein Headers Exchange?
Wie werden Asynchrone APIs beschreiben
Es gibt keinen Standard?
Beschreibung umfasst Kanäle Nachrichtentypen und formate
Was sind die Beobachtungsebenen von Enterprise Application Architecture?
Was sind Probleme bei der Reihnfolge von Nachrichten bei einem Mom?
Mehreree Message Customer wetteifern um die Verarbeitung von Nachrichten
Bei Paralleleverarbeitung ist keien FIFO-Reihnfolge gegeben
Was sidnd die Lösungen für die Probleme bei der Reihnfolge von Nachrichten bei einem Mom?
Probleme:
Lösungen:
Jede Instanz eines Empfänger wird ein Shared des Kanals zugeteilt
Broker erkennt die Reihnfolge und sendet selbe Nachrichten nur zu einem Shared
Bei Mehrfachausführung Idempotenz
Verarbeitung protokollieren
Worauf basieren Verteilte Transkationen?
Auf Two Phase Commit
Prepare Phase: Alle Services und Ressourcen werden aufgefodert, sich auf Datenänderungen vorzubereiten
Commit Phase: Wenn alle bereit sind, lässt der Transatkionsmanager DIe Datenänderungen durch die Services durchführen und commiten.
Vorteile von XA Transactionen?
Was ist das Transactional Outbox Pattern?
Was ist das Polling Publisher pattern?
Was ist das Transaction Log Tailing?
Wie ist der Unterschied zwischen Polling Publisher und Transactional Log Tailing?
Zuletzt geändertvor 2 Jahren