Service-Oriented Architecture (SOA)
Ein Architekturansatz, der Dienste als zentrale Bausteine für die Entwicklung von Softwareanwendungen nutzt.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypArchitektur
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Abhängigkeit von externen Diensten
- Sicherheitsrisiken durch offene Schnittstellen
- Fehlende Standardisierung kann zu Inkonsistenzen führen
- Dokumentation der Dienste und Schnittstellen.
- Regelmäßige Überprüfung der Dienstleistungseffizienz.
- Einhaltung von Sicherheitsstandards.
I/O & Ressourcen
- Vorhandene Systeme und deren Schnittstellen
- Anforderungen an die Integration
- Dienste zur Datenverarbeitung
- Integrierte Systemlandschaft
- Erhöhte Flexibilität
- Wiederverwendbare Dienste
Beschreibung
Die Service-Oriented Architecture (SOA) ist ein Architekturansatz, der darauf abzielt, Softwareanwendungen durch die Bereitstellung von Diensten zu strukturieren. Diese Dienste sind lose gekoppelt und können unabhängig voneinander entwickelt, bereitgestellt und skaliert werden. SOA fördert die Wiederverwendbarkeit von Softwarekomponenten und ermöglicht eine flexible Integration verschiedener Systeme.
✔Vorteile
- Erhöhte Flexibilität bei der Softwareentwicklung
- Bessere Integration von Systemen
- Optimierte Ressourcennutzung
✖Limitationen
- Komplexität bei der Verwaltung von Diensten
- Mögliche Leistungseinbußen durch Netzwerkaufrufe
- Höherer Aufwand bei der Entwicklung und Wartung
Trade-offs
Metriken
- Reaktionszeit der Dienste
Die Zeit, die ein Dienst benötigt, um auf eine Anfrage zu reagieren.
- Verfügbarkeit der Dienste
Der Prozentsatz der Zeit, in der ein Dienst verfügbar ist.
- Fehlerquote
Der Anteil der fehlgeschlagenen Anfragen an einen Dienst.
Beispiele & Implementierungen
E-Commerce Plattform
Eine E-Commerce Plattform, die verschiedene Dienste für Zahlungsabwicklung, Produktkatalog und Benutzerverwaltung nutzt.
Online Banking System
Ein Online-Banking-System, das Dienste für Transaktionsverarbeitung und Kontoverwaltung integriert.
Reisebuchungsplattform
Eine Reisebuchungsplattform, die verschiedene externe Dienste für Flüge, Hotels und Mietwagen nutzt.
Implementierungsschritte
Analyse der bestehenden Systeme und Anforderungen.
Entwicklung der Dienste und deren Schnittstellen.
Durchführung von Tests und Qualitätssicherung.
⚠️ Technische Schulden & Engpässe
Tech Debt
- Veraltete Dienste ohne Wartung.
- Unzureichende Dokumentation führt zu Wissensverlust.
- Technische Schulden durch schnelle Lösungen.
Bekannte Engpässe
Beispiele für Missbrauch
- Übermäßige Abhängigkeit von einem einzelnen Dienst.
- Ignorieren von Sicherheitsanforderungen.
- Unzureichende Tests vor der Bereitstellung.
Typische Fallen
- Annahme, dass alle Dienste unabhängig sind.
- Unterschätzung des Aufwands für die Integration.
- Ignorieren von Performance-Engpässen.
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Einhaltung von Sicherheitsstandards
- • Regulatorische Anforderungen
- • Technologische Kompatibilität