High-Level-Architekturentwürfe (HLAs) legen fest, wie ein System entwickelt werden soll. Sie zeigen, wie einzelne Komponenten miteinander und mit der Systemoberfläche interagieren. Im Folgenden erläutern unsere Architekt:innen die High-Level-Architekturen, die sie in ihren Projekten eingesetzt haben:
Diese Architektur der Software folgt einem einheitlichen Ansatz für Aufbau und Entwicklung eines Systems. Wenn Unternehmen ihre Architektur planen, landet häufig alles in einer gemeinsamen Codebasis – darunter Geschäftslogik, Datenzugriffsschichten (für die Prozesse zwischen Komponenten und Datenspeichern) und die Benutzeroberfläche.
Das bringt Vorteile mit sich, wie tiefe Integration, übersichtliche Struktur, einfache Veränderung und schneller Einstieg. Zudem ist dieser Ansatz kostengünstig, leistungsstark (durch einen direkten Zugriff auf den Kernel) und bietet hohe Sicherheit.
Hauptmerkmale einer monolithischen Architektur:
Eine monolithische Software Architektur passt besonders gut für sehr leistungskritische Anwendungen. Sie ist auch sinnvoll in Situationen wie:
Bei Microservices-Architekturen wird ein System in kleine, unabhängige Einheiten aufgeteilt. Jede dieser Einheiten kann eigenständig funktionieren, ohne auf andere angewiesen zu sein.
Die einzelnen Services können miteinander kommunizieren, um eine vollständige Anwendung zu bilden. Dieser Ansatz folgt einer entgegengesetzten Philosophie zur monolithischen Architektur. So kann eine Anfrage eines Nutzers verschiedene interne Microservices aktivieren, die gemeinsam die Antwort liefern.
Vorteile der Microservices Software Architektur:
Hauptmerkmale der Microservices-Architektur:
Eine Microservices-Architektur ist praktisch für Unternehmen, die Anwendungen mit hohem Skalierungsbedarf entwickeln möchten. Sie ist zudem ideal für Lösungen, die auf vielen Geräten und Plattformen verfügbar sein müssen. Ein Beispiel ist Netflix, das 2009 von einer monolithischen Struktur auf Microservices umgestellt hat, um eine Vielzahl von Geräten wie Fernseher, Smartphones, Tablets und weitere Displays zuverlässig abzudecken.
Bei der serviceorientierten IT Architektur werden dienstbasierte Komponenten verwendet, um Geschäftsanwendungen zu entwickeln. Jede dieser Komponenten hat eine konkrete geschäftliche Funktion und kann mit anderen, vergleichbaren Komponenten über Sprach- und Plattformgrenzen hinweg interagieren.
Diese Services sind vielseitig einsetzbar und eignen sich gut für komplexe Anforderungen. So kann beispielsweise derselbe Authentifizierungsservice verschiedene Anwendungen eines Unternehmens unterstützen, ohne dass der Code für jede Anwendung neu erstellt werden muss.
Die serviceorientierte Architektur bietet zahlreiche Vorteile:
Hauptmerkmale der SOA:
SOA eignet sich für komplexe Systeme mit vielen Services. Sie bietet hohe Sicherheit und sorgt für einheitliche Standards. Militär und Luftstreitkräfte verwenden SOA-Techniken für Systeme zur Lageerkennung.
Cloudbasierte Architektur kommt vor allem in Cloud-Computing-Umgebungen zum Einsatz. Sie verbindet virtuelle Ressourcen, Speicherlösungen, physische Services, Datenbanken, Software und Netzwerkelemente. Sie vereint Grundideen der EDA (Event-Driven Architecture) und der SOA.
Unternehmen können cloudbasierte Architekturen flexibel anpassen, je nachdem, wie Anwendungen bereitgestellt und betrieben werden sollen. Typische Bestandteile einer Cloudarchitektur sind:
Vorteile der cloudbasierten Architektur:
Eine serverlose Architektur ermöglicht es Entwickler:innen, Anwendungen zu erstellen und zu betreiben, ohne sich um interne Infrastruktur kümmern zu müssen. Skalierung, Provisionierung und Verwaltung übernimmt der Cloudanbieter. Die Umgebung skaliert automatisch und bietet ein hohes Sicherheitsniveau.
Vorteile der serverlosen Architektur:
Tatsächlich wird der Anwendungscode als Funktion in Containern (z. B. Kubernetes) ausgeführt. Bei einer Anfrage wird die Funktion gestartet, und der Cloudanbieter stellt automatisch eine passende Instanz bereit. Funktionen können auch durch Datenbankänderungen, HTTP-Requests, Klicks und andere Ereignisse ausgelöst werden.
Serverlose Architektur eignet sich für zahlreiche Einsatzszenarien, darunter der Aufbau von RESTful APIs, die asynchrone Verarbeitung, triggerbasierte Abläufe sowie Continuous Integration (CI) und Continuous Delivery (CD). Sie ist zudem hilfreich für Stream-Processing, ETL-Pipelines, Cronjobs und Microservices.
Eine Multi-Tier-Architektur hat mehrere Schichten, um unterschiedliche Funktionen abzubilden, etwa Präsentation, Geschäftslogik, Datenverwaltung und Anwendungsprozesse. Je nach den Anforderungen kann sie als 1-Tier-, 2-Tier-, 3-Tier- oder auch als n-Tier-Architektur umgesetzt werden.
Vorteile der Multi-Tier-Architektur:
Hauptmerkmale der Multi-Tier-Architektur:
Die Multi-Tier-Architektur eignet sich besonders für E-Commerce-Systeme, soziale Plattformen und Informationssysteme im Gesundheitswesen.
Nicht alle oben genannten Architektur Entwurfsmuster lösen sämtliche Herausforderungen im Softwaredesign. Hier kommen Low-Level- und Middle-Level-Ansätze ins Spiel. In diesem Abschnitt geben unsere Softwarearchitekt:innen einen genaueren Einblick in Erzeugungsmuster, Strukturmuster und Verhaltensmuster.
Erzeugungsmuster helfen dabei, Komplexität bei der Objekterstellung zu reduzieren und typische Probleme im Umgang mit Erzeugungsmechanismen zu lösen. Die wichtigsten Erzeugungsmuster sind:
Strukturmuster ermöglichen es Entwickler:innen, größere Strukturen aus Klassen und Objekten zusammenzustellen. Dabei wird die Vererbung gezielt genutzt, ohne Flexibilität oder Effizienz zu verlieren. Zu den wichtigsten Strukturmustern gehören:
Diese Muster regeln die Verantwortlichkeiten von Objekten und deren Zusammenarbeit.
Diese Muster helfen dabei, Multithreading-Programme zu strukturieren und parallele Abläufe sicher zu handhaben.
Diese Muster gehen auf verschiedene Herausforderungen der Software-Systemarchitektur ein, z. B. Leistungsgrenzen oder die Struktur verteilter Systeme. Sie lassen sich grob in verteilte und monolithische Muster einordnen.