Beispiel einer Systemarchitektur auf hoher Ebene für einen Computer

Eine Systemarchitektur ist das konzeptionelle Modell , das die Struktur , das Verhalten und die Sichten eines Systems definiert . [ 1 ] Eine Architekturbeschreibung ist eine formale Beschreibung und Repräsentation eines Systems, die so organisiert ist, dass sie das Schlussfolgern über die Strukturen und Verhaltensweisen des Systems unterstützt.

Eine Systemarchitektur kann aus Systemkomponenten und den entwickelten Subsystemen bestehen , die zusammenarbeiten, um das Gesamtsystem zu implementieren. Es gab Bestrebungen, Sprachen zur Beschreibung von Systemarchitekturen zu formalisieren; diese werden zusammenfassend als Architekturbeschreibungssprachen (ADLs) bezeichnet. [ 2 ] [ 3 ] [ 4 ]

Überblick

Verschiedene Organisationen können die Systemarchitektur auf unterschiedliche Weise definieren, unter anderem:

  • Die grundlegende Organisation eines Systems, verkörpert in seinen Komponenten, ihren Beziehungen zueinander und zur Umwelt sowie den Prinzipien, die seine Gestaltung und Entwicklung bestimmen. [ 5 ]
  • Eine Darstellung eines Systems, einschließlich einer Zuordnung von Funktionalitäten zu Hardware- und Softwarekomponenten , einer Zuordnung der Softwarearchitektur zur Hardwarearchitektur und der menschlichen Interaktion mit diesen Komponenten. [ 6 ]
  • Eine zugewiesene Anordnung physischer Elemente, die die Designlösung für ein Konsumprodukt oder einen Lebenszyklusprozess bereitstellt, der die Anforderungen der funktionalen Architektur und der Anforderungsbasis erfüllen soll. [ 7 ]
  • Eine Architektur besteht aus den wichtigsten, umfassendsten, strategischen Erfindungen und Entscheidungen auf höchster Ebene sowie den dazugehörigen Begründungen für die Gesamtstruktur (d. h. wesentliche Elemente und deren Beziehungen) und den damit verbundenen Merkmalen und Verhaltensweisen. [ 8 ]
  • Eine Beschreibung des Aufbaus und der Inhalte eines Computersystems . Sofern dokumentiert, kann sie Informationen wie ein detailliertes Inventar der aktuellen Hardware, Software und Netzwerkfunktionen, eine Beschreibung langfristiger Pläne und Prioritäten für zukünftige Anschaffungen sowie einen Plan für die Aufrüstung und/oder den Austausch veralteter Geräte und Software enthalten. [ 9 ]
  • Eine formale Beschreibung eines Systems oder ein detaillierter Plan des Systems auf Komponentenebene zur Steuerung seiner Implementierung. [ 10 ]
  • Die Gesamtheit der Designarchitekturen für Produkte und deren Lebenszyklusprozesse. [ 11 ]
  • Die Struktur der Komponenten, ihre Wechselbeziehungen sowie die Prinzipien und Richtlinien, die ihre Gestaltung und Weiterentwicklung im Laufe der Zeit bestimmen. [ 10 ]

Man kann sich die Systemarchitektur als eine Reihe von Darstellungen eines bestehenden (oder zukünftigen) Systems vorstellen. Diese Darstellungen beschreiben zunächst eine allgemeine, übergeordnete funktionale Organisation und werden schrittweise zu detaillierteren und konkreteren Beschreibungen verfeinert.

Die Systemarchitektur vermittelt den Informationsgehalt der Systemelemente , die Beziehungen zwischen diesen Elementen und die Regeln , die diese Beziehungen bestimmen. Die Architekturkomponenten und die Beziehungen zwischen diesen Komponenten, aus denen eine Architekturbeschreibung bestehen kann, können Hardware, Software , Dokumentation, Einrichtungen, manuelle Verfahren oder die Rollen von Organisationen oder Personen umfassen.

Eine Systemarchitektur konzentriert sich primär auf die internen Schnittstellen zwischen den Systemkomponenten oder -subsystemen sowie auf die Schnittstelle(n) zwischen dem System und seiner externen Umgebung, insbesondere dem Benutzer . (Im speziellen Fall von Computersystemen wird diese letztgenannte, besondere Schnittstelle als Mensch- Computer -Schnittstelle ( HCI) bezeichnet ; früher wurde sie als Mensch-Maschine-Schnittstelle bezeichnet.)

Man kann eine Systemarchitektur dem Systemarchitektur-Engineering (SAE) gegenüberstellen – der Methode und Disziplin zur effektiven Implementierung der Architektur eines Systems: [ 12 ]

  • SAE ist eine Methode , weil eine Abfolge von Schritten vorgeschrieben wird, um die Architektur eines Systems innerhalb einer Reihe von Einschränkungen zu erzeugen oder zu verändern .
  • SAE ist eine Disziplin , weil ein Wissenskorpus genutzt wird, um Praktiker darüber zu informieren , wie das System innerhalb einer Reihe von Einschränkungen am effektivsten gestaltet werden kann.

Geschichte

Die Systemarchitektur stützt sich stark auf Praktiken und Techniken, die über Tausende von Jahren in vielen anderen Bereichen entwickelt wurden, wobei die Bauarchitektur vielleicht der wichtigste Bereich ist.

  • Vor dem Aufkommen digitaler Computer verwendeten die Elektronik und andere Ingenieurdisziplinen den Begriff „System“ in der heute noch gebräuchlichen Form. Mit dem Aufkommen digitaler Computer und der Entwicklung der Softwareentwicklung als eigenständige Disziplin wurde es jedoch oft notwendig, zwischen Hardware-Komponenten, Software-Komponenten und deren Kombinationen zu unterscheiden. Eine programmierbare Hardware-Komponente oder Rechenmaschine ohne zugehöriges Computerprogramm ist nutzlos; ebenso ist eine Software-Komponente oder ein Programm nutzlos, solange es nicht die sequenziellen Zustände einer geeigneten Hardware-Maschine verändern kann. Eine Hardware-Maschine und ihre Programmierung können jedoch so konzipiert werden, dass sie eine nahezu unbegrenzte Anzahl abstrakter und physikalischer Aufgaben erfüllen. In der Informatik und Softwareentwicklung (und oft auch in anderen Ingenieurdisziplinen wie der Kommunikationstechnik) wurde der Begriff „System“ daher als die Gesamtheit aller Elemente definiert, die zur Ausführung einer nützlichen Funktion notwendig sind (im Allgemeinen Hardware und Software).
  • In diesen Ingenieurdisziplinen bezeichnet der Begriff „System“ im Allgemeinen eine programmierbare Hardware-Maschine und das dazugehörige Programm. Ein Systemingenieur befasst sich mit dem gesamten Gerät, sowohl mit der Hardware als auch mit der Software, und insbesondere mit allen Schnittstellen des Geräts, einschließlich der Schnittstelle zwischen Hardware und Software sowie ganz besonders der Schnittstelle zwischen dem gesamten Gerät und seinem Benutzer (dem Computer, der Mensch, Mensch). Der Hardware-Ingenieur beschäftigt sich (mehr oder weniger) ausschließlich mit der Hardware-Maschine; der Software-Ingenieur beschäftigt sich (mehr oder weniger) ausschließlich mit dem Computerprogramm; und der Systemingenieur ist dafür verantwortlich, dass das Programm auf der Hardware-Maschine ordnungsgemäß ausgeführt werden kann und dass das aus beiden Komponenten bestehende System ordnungsgemäß mit seiner externen Umgebung, insbesondere dem Benutzer, interagieren und seine vorgesehene Funktion erfüllen kann.
  • Eine Systemarchitektur nutzt Software- und Hardwareelemente und ermöglicht den Entwurf eines solchen Gesamtsystems. Eine gute Architektur kann als Partitionierungsschema oder Algorithmus betrachtet werden , der alle aktuellen und absehbaren Systemanforderungen in eine überschaubare Menge klar abgegrenzter Teilsysteme unterteilt, ohne dass Elemente übrig bleiben. Das heißt, es handelt sich um ein exklusives , inklusives und vollständiges Partitionierungsschema . Ein Hauptziel der Partitionierung ist die Anordnung der Elemente in den Teilsystemen, um die Abhängigkeiten zwischen ihnen auf ein Minimum zu reduzieren. Sowohl in der Software als auch in der Hardware wird ein gutes Teilsystem als sinnvolles „Objekt“ verstanden. Darüber hinaus ermöglicht eine gute Architektur eine einfache Zuordnung zu den Benutzeranforderungen und deren Validierungstests. Idealerweise existiert auch eine Zuordnung von jedem kleinsten Element zu jeder Anforderung und jedem Test .

Angesichts der zunehmenden Komplexität digitaler Systeme hat sich die moderne Systemarchitektur weiterentwickelt und integriert fortschrittliche Prinzipien wie Modularisierung , Microservices und KI -gestützte Optimierungen. Cloud Computing , Edge Computing und Distributed-Ledger-Technologien (DLTs) haben ebenfalls Einfluss auf Architekturentscheidungen genommen und ermöglichen skalierbarere, sicherere und fehlertolerantere Designs.

Eine der bedeutendsten Veränderungen der letzten Jahre war die Einführung softwaredefinierter Architekturen (Software-Defined Architectures, SDA), die Hardware und Software entkoppeln und Systeme dadurch flexibler und anpassungsfähiger an sich ändernde Anforderungen machen. [ 13 ] Dieser Trend ist besonders deutlich bei Netzwerkarchitekturen zu beobachten, wo Software-Defined Networking (SDN) und Network Function Virtualization (NFV) eine dynamischere Verwaltung der Netzwerkressourcen ermöglichen . [ 14 ]

Zudem haben KI-gestützte Systemarchitekturen an Bedeutung gewonnen, indem sie maschinelles Lernen für vorausschauende Wartung , Anomalieerkennung und automatisierte Systemoptimierung nutzen. Der Aufstieg cyber-physischer Systeme (CPS) und digitaler Zwillinge hat die Prinzipien der Systemarchitektur über das traditionelle Computing hinaus erweitert und reale Daten in virtuelle Modelle integriert, um eine bessere Entscheidungsfindung zu ermöglichen. [ 15 ]

Mit dem Aufkommen von Edge Computing konzentrieren sich Systemarchitekturen nun auf Dezentralisierung und Echtzeitverarbeitung , wodurch die Abhängigkeit von zentralisierten Rechenzentren verringert und latenzempfindliche Anwendungen wie autonome Fahrzeuge , Robotik und IoT-Netzwerke verbessert werden . [ 4 ]

Diese Fortschritte verändern fortwährend die Art und Weise, wie Systeme konzipiert werden, und führen zu widerstandsfähigeren, skalierbaren und intelligenteren Architekturen, die für das digitale Zeitalter geeignet sind.

Typen

Es existieren verschiedene Arten von Systemarchitekturen, die jeweils auf unterschiedliche Domänen und Anwendungen zugeschnitten sind. Obwohl alle Systemarchitekturen grundlegende Prinzipien hinsichtlich Struktur, Verhalten und Interaktion gemeinsam haben, unterscheiden sie sich in ihrem Design je nach ihrem Verwendungszweck. Verschiedene Arten von Systemarchitekturen (die auf denselben grundlegenden Prinzipien beruhen [ 16 ] ) wurden wie folgt identifiziert: [ 17 ]

  • Hardwarearchitektur: Die Hardwarearchitektur definiert die physikalischen Komponenten eines Systems, einschließlich Prozessoren, Speicherhierarchien , Busse und Ein-/Ausgabeschnittstellen. Sie umfasst den Entwurf und die Integration von Hardwareelementen, um Leistung, Zuverlässigkeit und Skalierbarkeit zu gewährleisten. [ 18 ]
  • Softwarearchitektur: Die Softwarearchitektur konzentriert sich auf die übergeordnete Organisation von Softwaresystemen, einschließlich Modulen, Komponenten und Kommunikationsmustern. Sie spielt eine entscheidende Rolle bei der Definition von Systemverhalten, Sicherheit und Wartbarkeit. [ 15 ] Beispiele hierfür sind monolithische, Microservices-, ereignisgesteuerte und geschichtete Architekturen. [ 13 ] [ 15 ]
  • Unternehmensarchitektur: Die Unternehmensarchitektur liefert einen strategischen Entwurf für die IT-Infrastruktur einer Organisation und stellt sicher, dass die Geschäftsziele mit den Technologieinvestitionen übereinstimmen. Sie umfasst Frameworks wie TOGAF (The Open Group Architecture Framework) und das Zachman Framework zur Standardisierung von IT-Governance und Geschäftsprozessen. [ 19 ] [ 14 ]
  • Architekturen kollaborativer Systeme: Diese Kategorie umfasst großflächige, vernetzte Systeme, die für die nahtlose Interaktion mehrerer Entitäten konzipiert sind. Beispiele hierfür sind das Internet , intelligente Transportsysteme , Flugsicherungsnetze und Verteidigungssysteme . Diese Architekturen legen Wert auf Interoperabilität , verteilte Steuerung und Ausfallsicherheit.
  • Architektur von Fertigungssystemen: Architekturen von Fertigungssystemen integrieren Automatisierung, Robotik , IoT und KI-gestützte Entscheidungsfindung, um Produktionsabläufe zu optimieren. Zu den aufkommenden Trends gehören Industrie 4.0 , cyber-physische Systeme (CPS) und digitale Zwillinge , die vorausschauende Wartung und Echtzeitüberwachung ermöglichen . [ 20 ]
  • Cloud- und Edge-Computing-Architektur: Mit dem Wandel hin zu cloudbasierten Infrastrukturen definiert die Cloud-Architektur , wie Ressourcen über Rechenzentren und virtualisierte Umgebungen verteilt werden. Die Edge-Computing- Architektur erweitert dies durch die Verarbeitung von Daten näher an der Quelle und reduziert so die Latenz für Anwendungen wie autonome Fahrzeuge, industrielle Automatisierung und Smart Cities. [ 4 ]
  • KI-gesteuerte Systemarchitektur: Architekturen, die auf künstlicher Intelligenz (KI) und maschinellem Lernen basieren, optimieren die Entscheidungsfindung durch dynamische Anpassung des Systemverhaltens auf Basis von Echtzeitdaten. Dies findet breite Anwendung in autonomen Systemen, der Cybersicherheit und der intelligenten Automatisierung.

Siehe auch

Referenzen

  1. ^ Hannu Jaakkola und Bernhard Thalheim. (2011) „Architekturgetriebene Modellierungsmethoden“. In: Proceedings der Konferenz „Information Modelling and Knowledge Bases XXII“ 2011. Anneli Heimbürger et al. (Hrsg.). IOS Press. S. 98
  2. ^ Paul C. Clements (1996) „ Eine Übersicht über Architekturbeschreibungssprachen .“ Proceedings des 8. internationalen Workshops über Softwarespezifikation und -design. IEEE Computer Society, 1996.
  3. ^ Nenad Medvidovic und Richard N. Taylor (2000). „ Ein Klassifizierungs- und Vergleichsrahmen für Softwarearchitekturbeschreibungssprachen. “ IEEE Transactions on Software Engineering 26.1 (2000): 70-93.
  4. ^ a b c Nejad, Bobby (2023), Nejad, Bobby (Hrsg.), „The Physical Architecture“ , Introduction to Satellite Ground Segment Systems Engineering: Principles and Operational Aspects , Space Technology Library, Bd. 41, Cham: Springer International Publishing, S.  187–197 , doi : 10.1007/978-3-031-15900-8_13 , ISBN 978-3-031-15900-8abgerufen am 07.12.2022{{citation}}: CS1 Wartung: Arbeitsparameter mit ISBN ( Link )
  5. ^ Aus ANSI / IEEE 1471-2000 .
  6. ^ Vom Software Engineering Institute der Carnegie Mellon University .
  7. ^ Aus dem Glossar der Homepage für Human Engineering . Archiviert am 13.02.2015 im Internet Archive.
  8. ^ Aus dem OPEN Process Framework (OPF) Repository, archiviert am 05.03.2006 in der Wayback Machine .
  9. ^ Aus dem Glossar des National Center for Education Statistics .
  10. ^ a b TOGAF
  11. ^ Aus IEEE 1220-1998, wie im Glossar zu finden. Archiviert am 17.05.2006 in der Wayback Machine .
  12. ^ Das Methoden-Framework für die Entwicklung von Systemarchitekturen, Donald Firesmith et al., 2008
  13. ^ a b Zeng, Ruiqi; Niu, Yiru; Zhao, Yue; Peng, Haiyang (2022). „Software Architecture Evolution and Technology Research“ . In: Liu, Shuai; Ma, Xuefei (Hrsg.). Advanced Hybrid Information Processing . Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering. Band 416. Cham: Springer International Publishing. S.  708–720 . doi : 10.1007/978-3-030-94551-0_54 . ISBN 978-3-030-94551-0Die
  14. ^ a b Ziemann, Jörg (2022), Ziemann, Jörg (Hrsg.), „Enterprise Architecture in a Nutshell“ , Fundamentals of Enterprise Architecture Management: Foundations for Steering the Enterprise-Wide Digital System , The Enterprise Engineering Series, Cham: Springer International Publishing, S.  23–60 , doi : 10.1007/978-3-030-96734-5_2 , ISBN 978-3-030-96734-5abgerufen am 03.03.2025{{citation}}: CS1 Wartung: Arbeitsparameter mit ISBN ( Link )
  15. ^ a b c Michaels, Paul (2022). Softwarearchitektur anhand von Beispielen . doi : 10.1007/978-1-4842-7990-8 . ISBN 978-1-4842-7989-2Die
  16. ^ Die Grundprinzipien der Systemarchitektur , von Boris Golden
  17. ^ Die Kunst der Systemarchitektur, Mark Maier und Eberhardt Rechtin , 2. Auflage 2002
  18. ^ Abbas, Karim (2023). Von Algorithmen zu Hardwarearchitekturen . doi : 10.1007/978-3-031-08693-9 . ISBN 978-3-031-08692-2S2CID  251371033 .​
  19. ^ Musukutwa, Sheunopa Chalmers (2022), Musukutwa, Sheunopa Chalmers (Hrsg.), „Developing an Enterprise Architecture“ , SAP Enterprise Architecture: A Blueprint for Executing Digital Transformation , Berkeley, CA: Apress, S.  51–92 , doi : 10.1007/978-1-4842-8575-6_3 , ISBN 978-1-4842-8575-6abgerufen am 03.03.2025{{citation}}: CS1 Wartung: Arbeitsparameter mit ISBN ( Link )
  20. Markusheska , Nastasija; Srinivasan, Venkatachalam; Walther, Jan-Niclas; Gindorf, Alex; Biedermann, Jörn; Meller, Frank; Nagel, Björn (1. Juli 2022). „Implementierung eines Systemarchitekturmodells für automatisierte Flugzeugkabinenmontageprozesse“ . CEAS Aeronautical Journal . 13 (3): 689–703 . Bibcode : 2022CEAAJ..13..689M . doi : 10.1007/s13272-022-00582-6 . ISSN 1869-5590 .