Skip to main content

2024 | Buch

Architekturen verteilter Softwaresysteme

SOA, EDA & Microservices Mehrschichtenarchitekturen Anwendungsintegration

insite
SUCHEN

Über dieses Buch

Das Lehrbuch führt schrittweise in die vielfältigen Architekturen moderner verteilter Softwaresysteme ein. Die Reise beginnt mit einer Erörterung des Berufsbilds des Softwarearchitekten und geht mit Darlegungen über die serviceorientierte und ereignisorientierte Architektur weiter. Verschiedene Architekturstile kommen zur Sprache, wie z.B. die Mehrschichtenarchitektur, die hexagonale Architektur und Microservices. Im Kontext der Client-Architekturen wird eine breite Palette von Technologien für Web Apps (wie JSF, Blazor, SPA, PWA) und installierbare Apps (darunter Native, Hybrid, Cross-Platform) dargelegt. Wichtige Technologiestacks wie Scriptbasiert, .NET und Jakarta EE finden eine gebührende Darlegung. Ausführungen zur organisationsinternen sowie -übergreifenden Anwendungsintegration auf der Präsentations-, Applikations- und Datenebene runden die Reise ab. Ein durchgehendes Beispiel und fallstudienbezogene Aufgaben illustrieren die theoretischen Ausführungen und ermöglichen die direkte Anwendung des Erlernten. Die 2. Auflage bietet Aktualisierungen und Erweiterungen und wie z.B. C4-Model, vertiefte Ausführung der ereignisorientierten Architektur, hexagonale Architektur und Blazor.

Inhaltsverzeichnis

Frontmatter
Kapitel 1. Einführung in die Softwarearchitektur
Zusammenfassung
John, der Softwarearchitekt, versammelt sein Team zu einer Kick-off-Veranstaltung. Er eröffnet das Meeting mit den Worten: «Wir haben den Auftrag erhalten, einen innovativen E-Shop zu entwickeln. In dieser Session geht es darum, die Rolle und Bedeutung der Softwarearchitektur im Rahmen des gesamten Softwareentwicklungsprojekts zu verstehen. Sarah, unsere Requirements Engineer, wird die Bedeutung und die Wechselwirkung zwischen den nichtfunktionalen Anforderungen und den Architekturentscheidungen erläutern. Anschließend gebe ich einen Überblick über die Dokumentation, einschließlich der dabei verwendeten Diagrammtypen für die Modellierung, sowie über die einzusetzenden Werkzeuge.»
Hansruedi Tremp
Kapitel 2. Serviceorientierte Architektur
Zusammenfassung
Felix, unser Webservice-Entwickler, kann nun auf die gestellte Frage nach der Integrationsfähigkeit antworten: «Die fortschreitende Digitalisierung zwingt die Unternehmungen, agil auf Veränderungen zu reagieren. Mittels serviceorientierten Architekturen bieten die Applikationen nicht mehr nur ein GUI als einzigen Zugang, sondern eine Reihe von intern oder auch organisationsextern programmatisch aufrufbaren Diensten an. Dabei benötigen die beteiligten Partner saubere Vertragsvereinbarungen.
Hansruedi Tremp
Kapitel 3. Ereignisorientierte Architektur
Zusammenfassung
Elias, der Systemintegrator, erweitert die Diskussion zur serviceorientierten Architektur (SOA, siehe Kap. 2): «Für die asynchrone Verbindung von Softwarekomponenten innerhalb der Applikation und den Nachrichtenaustausch mit externen Systemen ist eine geeignete nachrichtenorientierte Middleware erforderlich. Ich möchte gerne näher auf die wesentlichen Aspekte sowie die verbreiteten Kommunikationsmuster eingehen. Dies wird uns eine solide Grundlage bieten, um für unser Projekt angemessene Entscheidungen in diesem Bereich zu treffen.
Hansruedi Tremp
Kapitel 4. Schichtenorientierter Architekturstile
Zusammenfassung
Auf die Frage von Anna, der DevOps Engineer, erläutert John, unser Softwarearchitekt: «Der schichtenorientierte Architekturstil, häufig als Mehrschichtenarchitektur bezeichnet, stellt ein etabliertes Konzept in der Softwareentwicklung dar. Es ermöglicht eine klare horizontale Trennung der Zuständigkeiten innerhalb einer Anwendung. Die hexagonale Architektur verfeinert diesen Ansatz weiter, indem sie strenge Regeln für die Abhängigkeiten zwischen den Paketen vorschreibt.
Hansruedi Tremp
Kapitel 5. Flexible Architektur mit Microservices
Zusammenfassung
John nimmt die Frage nach der flexiblen Architektur auf und erläutert seinem Team: „In der letzten Sitzung haben wir die horizontale Schichtung einer Applikation diskutiert. Heute konzentrieren wir uns auf die vertikale Aufteilung in fachlich klar definierte Microservices. Die Anwendung des Domain-Driven Design zur Identifizierung und Abgrenzung der jeweiligen Fachkontexte stellt hierbei eine effektive Methode dar.
Hansruedi Tremp
Kapitel 6. Clientseitige Architektur
Zusammenfassung
Julia, unsere UI-Entwicklerin, führt das Team gerne in die Möglichkeiten der clientseitigen Architektur ein: «Die Interaktion zwischen Menschen und Computer ist komplex und benötigt einen gut abgestimmten Entwurf. Gerne gebe ich einen Überblick über die aktuellen Arten von Client Devices und deren Betriebssysteme. Dann vertiefen wir uns in die unterschiedlichen Technologien der Web Apps einerseits und der installierbaren Apps andererseits.
Hansruedi Tremp
Kapitel 7. Serverseitige Architektur
Zusammenfassung
Felix, unser Webserviceentwickler, widmet sich der Fragestellung der serverseitigen Architektur: «Wir schauen uns basierend auf den Ausführungen aus dem Kap. 4 zur Mehrschichtenarchitektur nun die detaillierte Schichtenaufteilung des Servers an. In Bezug darauf ist es wichtig, die drei grundsätzlichen serverseitigen Architekturmöglichkeiten, wie die monolithische Mehrschichtenarchitektur, die Microservices mit deren jeweiligen Mikroarchitekturen basierend auf den Darlegungen aus Kap. 5 zur flexiblen Architektur sowie der serverlosen Applikation, im Blickfeld zu behalten. Weiter informiere ich über die drei aktuell gängigen Technologie-Stacks, wie Skriptbasiert,.NET und Jakarta EE. Wie ihr seht, gibt es da für uns noch einige Entscheidungen zu treffen, welche dieser Technologievarianten für uns in Frage kommt.»
Hansruedi Tremp
Kapitel 8. Integrationsarchitektur
Zusammenfassung
Elias, unser Systemintegrator, meldet sich nun im Team zu Wort: «Gerne erläutere ich die Herausforderungen der Anwendungsintegration. Zur Betrachtung der Integrationsmöglichkeiten wenden wir ein zweidimensionales Modell an. In der ersten Dimension schauen wir den Integrierungshorizont an, nämlich organisationsintern und über die Organisationsgrenze hinweg. Die zweite Dimension erörtert die Frage, auf welcher Schicht wir integrieren: Client, Middle oder Data Tier. Auf jeder Ebene ergeben sich einige Realisierungsvarianten. Die Modellierung nehmen wir mit dem bewährten UML-Komponentendiagramm vor.»
Hansruedi Tremp
Backmatter
Metadaten
Titel
Architekturen verteilter Softwaresysteme
verfasst von
Hansruedi Tremp
Copyright-Jahr
2024
Electronic ISBN
978-3-658-45192-9
Print ISBN
978-3-658-45191-2
DOI
https://doi.org/10.1007/978-3-658-45192-9