Was ist eine serviceorientierte Architektur?
Serviceorientierte Architektur (SOA) ist ein modernes Software-Architekturparadigma zur Erstellung von Anwendungen als Sammlung modularer Softwareeinheiten, die Services genannt werden. In SOA sind die Services in sich geschlossen, modular und lose miteinander gekoppelt. Dieser Ansatz ermöglicht es, komplexe und auf verschiedene Bereiche verteilte Anwendungen zu erstellen, in denen – im Gegensatz zu ganzen monolithischen Anwendungen – auch einzelne Komponenten aktualisiert werden können. Ein typischer SOA-Software-Stack umfasst eine Anwendungssoftware mit Services, Plattformdienste und Middleware. Diese Services laufen auf Hochleistungshardware oder virtuellen Maschinen.
Serviceorientierte Kommunikation (SOC)
SOA-basierte Anwendungen verwenden serviceorientierte Schnittstellen für die serviceorientierte Kommunikation, um Funktionalitäten zum Informationsaustausch über Nachrichten bereitzustellen und zu nutzen. In einer SOA spielen Services die Rolle von Clients oder Servern. Jeder Client- oder Serverdienst ist in der Software als eine Komponente implementiert. Die Verbindungspunkte zwischen Client- und Serverkomponenten werden als Client/Server-Ports bezeichnet und bilden die serviceorientierten Schnittstellen.
Zur Erleichterung des Informationsaustauschs verwenden Client- und Serverkomponenten verschiedene serviceorientierte Kommunikationsmuster, darunter Publish-Subscribe, Request-Response und Fire-Forget. Diese Muster können asynchron oder synchron sein, was ein Hauptmerkmal von SOC ist. Die ereignisbasierte Modellierung kann mithilfe von Stateflow® und SimEvents® erfolgen. Darüber hinaus ermöglicht die „Messages & Events“-Bibliothek in Simulink® die Modellierung, Simulation und Generierung von C++ Code für Anwendungen mit nachrichtenbasierter Kommunikation.
SOA-Workflows
Mit einem Workflow für Model-Based Design können Sie serviceorientierte Anwendungen erstellen und folgende Möglichkeiten nutzen:
- Festlegen von Anforderungen mit der Requirements Toolbox™
- Erstellung von SOAs mithilfe von System Composer™
- Modellierung und Simulation von Services und Komponenten in Simulink
- Importieren vorhandener Services und Komponenten zur Wiederverwendung
- Generieren von C++ Produktionscode mit dem Embedded Coder®
- Integration der gesamten SOA-Anwendung
- Bereitstellung von SOA-Anwendungen auf Edge-Geräten und in der Cloud
SOA-Erweiterungsmöglichkeiten
Die Dienste sind wiederverwendbar und erweiterbar. Sie ermöglichen Software-Entwicklern die Erstellung skalierbarer SOA mithilfe agiler Prinzipien, einschließlich Systemen, die Over-the-Air-Updates (OTA) unterstützen, um immer auf dem neuesten Stand zu sein.
Anwendungsfälle für SOA
Für softwaredefinierte Systeme, die Autonomie, Konnektivität und Elektrifizierung miteinander verbinden, spielt die SOA als Grundgerüst eine entscheidende Rolle. SOAs werden auch zum Aufbau von Systems of Systems, Multiagentensystemen, ereignisdiskreten Systemen und verteilten Systemen in der Automobil-, Luft- und Raumfahrtindustrie, Industrieautomatisierung und IoT sowie der Medizinprodukte- und Robotikbranche eingesetzt.
Zur Unterstützung dieser Industriezweige sind Softwarearchitektur-Frameworks, Middleware-Standards und Kommunikationsprotokolle auf Grundlage der SOA und der SOC entstanden. Zu diesen Frameworks und Standards gehören beispielsweise AUTOSAR Adaptive, DDS, ROS/ROS2, FACE, SOME/IP, MOSA, MQTT und OPC UA.
SOA in der Automobilindustrie
SOAs sind in der Automobil- und Fahrzeugindustrie mit dem Aufkommen von softwaredefinierten Fahrzeugen (SDVs) am weitesten verbreitet. SDVs integrieren sowohl signalbasierte Anwendungen als auch service-orientierte Anwendungen in neuere EE-Architekturen mit Bordcomputern und Zonen-Steuerungen (auch: Zone Control Units, ZCU). Mithilfe des System Composer und Simulink können Entwickler verschiedene SOA modellieren, simulieren und C++ Produktionscode generieren, bevor sie diese als modulare Dienste auf Edge-Geräten und in der Cloud bereitstellen. In der Automobil- und Fahrzeugindustrie ist AUTOSAR ein weit verbreiteter Standard, der die SOA-Methodik für Adaptive-Plattformen nutzt. Mit dem AUTOSAR Blockset können Sie sowohl Classic AUTOSAR- als auch Adaptive AUTOSAR-Anwendungen modellieren und simulieren, anschließend C/C++ Code generieren und mit dem Embedded Coder verifizieren. Zudem können diese Dienste während des gesamten Fahrzeug-Lebenszyklus durch Over-the-Air-Software-Updates aktualisiert werden, um die Kundenzufriedenheit weiter zu steigern. SOAs wurden sowohl in die oben genannten Industriestandards als auch in unternehmenseigene Frameworks aufgenommen.
SOA in der Luftfahrt-, Raumfahrt- und Rüstungsindustrie
In der Luftfahrt-, Raumfahrt- und Rüstungsindustrie werden SOA in der Norm „Future Airborne Capability Environment“ (FACE™) verwendet, die Teil der Standardisierungsinitiative „Modular Open Systems Approach“ (MOSA) ist. FACE verwendet Transport Services Segments (TSS) für die serviceorientierte Kommunikation. Mit Simulink und dem DDS Blockset können Sie Anwendungen für den FACE-Standard modellieren und simulieren, FACE IDL für DDS TSS importieren, die FACE TSS-Kommunikation simulieren sowie C++ Produktionscode generieren und für FACE-Anwendungen einsetzen.
Beispiele und Erläuterungen
Videos zur Präsentation
Software-Referenz
Siehe auch: System Composer, Simulink, Stateflow, Embedded Coder, AUTOSAR Blockset, DDS Blockset