Big Data spielt in Zeiten von KI und maschinellem Lernen eine immer wichtigere Rolle. Für Software-zentrierte Systeme, die auf Ansätzen der objektorientierten Programmierung basieren, stellt dies allerdings eine Herausforderung dar. In der Gaming-Branche finden sich einige interessante Lösungsansätze.
Als hochgradig innovatives Gebiet kann die Spieleentwicklung als Inspirationsquelle für die Software-Entwicklung dienen.
Bei der Verarbeitung von Big Data ist eine datenzentrierte Architektur unabdingbar, um das enorme Volumen, die Geschwindigkeit und die Vielfalt der Informationen zu bewältigen. Obwohl dieses Prinzip offensichtlich erscheint, ist es im Kontext der objektorientierten Programmierung (OOP) nicht selbstverständlich.
Grenzen der OOP-Ansätze
Die gängigsten OOP-Ansätze konzentrieren sich oft nicht auf die Daten als solche, sondern betrachten sie als Teil des Objektzustands zu einem bestimmten Zeitpunkt. Ein Beispiel hierfür ist die beliebte Schichtenarchitektur, die oft in unterschiedlichem Maße nach den Prinzipien des Domain Driven Design (DDD) modelliert wird.
DDD stellt die Geschäftsdomäne in den Mittelpunkt und bezieht sich auf den spezifischen Wissens- und Tätigkeitsbereich, für den die Software entwickelt wurde, einschließlich der Geschäftsregeln, Prozesse und Verhaltensweisen. In diesem Zusammenhang dienen die Daten hauptsächlich dazu, den Zustand der Domäne darzustellen und die Geschäftsvorgänge zu unterstützen.
Darüber hinaus kann sich OOP als wenig flexibel erweisen, da der Zustand und das Verhalten in den Klassen eng miteinander verknüpft sind. Wenn sich die Daten und ihre zugrunde liegenden Schemata ändern oder an neue Geschäftsanforderungen angepasst werden müssen, besteht die Gefahr, dass Klassen umgeschrieben oder neu erstellt werden müssen.
OOP-Entwurfsmuster erhöht die Flexibilität statischer Datenstrukturen
Ein Beispiel für ein UML-Klassendiagramm und ein Sequenzdiagramm für das Entwurfsmuster Visitor.
Die Verwendung spezifischer Entwurfsmuster kann diese Starrheit verringern, indem sie dazu beiträgt, die Geschäftslogik von der Datenstruktur zu trennen und/oder die Datenstruktur dynamisch komponierbar zu machen. Ein gängiges Entwurfsmuster ist das Visitor-Pattern, das die Geschäftslogik von der Datenstruktur entkoppelt. Hierfür verwendet es sogenannte „Visitor“-Objekte, die es ermöglichen, neue Operationen hinzuzufügen, ohne die Klassen der Entity-Objekte zu ändern.
Ein Beispieldiagramm für das Entwurfsmuster Dynamic Object Model.
Das Dynamic Object Model (DOM) bietet auch dynamische Konfigurierbarkeit zur Laufzeit durch die Verwendung eines Metamodells, das es ermöglicht, die Struktur von Objekten zu erweitern oder zu ändern, ohne ihre Klassen neu schreiben zu müssen. Beide Muster werden auch in einem „Visitor-DOM“-Designmuster kombiniert.
Obwohl diese Entwurfsmuster die große Flexibilität von OOP demonstrieren, haben sie auch negative Auswirkungen:
Das Visitor-Pattern führt eine Abhängigkeit zwischen den besuchten Entity-Objekten und den „Visitor“-Objekten ein, was die Flexibilität des Systems verringert.
Das Dynamic Object Model wiederum ist zwar sehr flexibel, bringt aber eine höhere Komplexität bei der Verwaltung der dynamischen Beziehungen zwischen den Objekten mit sich, was sich negativ auf die Wartbarkeit des Codes auswirkt.
Beide Techniken führen außerdem zusätzliche Abstraktionsebenen ein, was die Softwareleistung verlangsamen kann, da es Auswirkungen auf die Speicher-Zugriffsgeschwindigkeit und CPU-Caching gibt.
Spieleentwicklung als treibende Kraft für Innovationen in der Softwareentwicklung
Eine Architektur, die Big Data effizienter verarbeiten kann, erfordert alternative Ansätze zu den in den letzten Jahrzehnten entwickelten Lösungen. Die Branche der Spieleentwicklung ist eine hervorragende Quelle dafür: Es ist ein hochgradig innovatives Gebiet, das die Grenzen der Softwareentwicklung kontinuierlich vorantreibt.
Moderne Spiele stellen enorme Anforderungen an die Hardware und erfordern effiziente Algorithmen und Datenstrukturen, um flüssige Echtzeitgrafiken zu ermöglichen. Dies hat zu Innovationen in Bereichen wie Multithreading, SIMD-Instruktionen und Cache-Optimierung geführt. Zudem wurden leistungsfähige 3D-Grafik-APIs wie DirectX und OpenGL sowie fortschrittliche Rendering-Techniken wie Raytracing und globale Beleuchtung entwickelt.
Die Gaming-Branche hat auch die Entwicklung von KI-Systemen vorangebracht. Systeme zur Pfadfindung, Entscheidungsbäume und neuronale Netze für Spieleragenten haben zu Fortschritten im Bereich der KI und des maschinellen Lernens beigetragen.
Der ECS-Architekturmuster
Ein besonders bemerkenswerter Beitrag der Spieleentwicklung zur Softwarearchitektur ist das Entity Component System (ECS). Dieses Architekturmuster wurde vom Data Oriented Design (DOD) inspiriert und basiert auf der Trennung von Daten (Komponenten) und der Verhaltenslogik (Systeme). Innerhalb der Entity-Component-System-Architektur werden Entitäten zu einfachen Identifikatoren.
Ein Beispiel für ein Entity Component System (ECS)
Die Struktur ermöglicht eine bessere Datenlokalität und Cache-Nutzung, was insbesondere für Big-Data-Anwendungen von Vorteil ist. Der komponentenbasierte Ansatz erleichtert das Hinzufügen, Entfernen und Ändern von Datenstrukturen zur Laufzeit und unterstützt die parallele Datenverarbeitung, was zu einer Leistungssteigerung bei Big-Data-Workloads führt. Die genannten Eigenschaften qualifizieren das ECS-Architekturmuster als flexible und effiziente Lösung für die moderne Softwareentwicklung.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Das ECS-Architekturmuster bietet mehrere Vorteile für den Umgang mit Big Data:
Trennung von Daten und Logik ermöglicht eine bessere Datenlokalität und Cache-Nutzung
Komponenten-basierter Ansatz erleichtert das Hinzufügen, Entfernen und Ändern von Datenstrukturen zur Laufzeit
Systeme können parallel auf Datenkomponenten zugreifen, was die Leistung bei Big Data-Workloads verbessert
Hohe Kohäsion und lose Kopplung durch strikte Trennung von Verantwortlichkeiten
Experiment zur Evaluierung des ECS-Ansatzes
Die Einführung eines Entity Component System (ECS) im Kontext von Big Data ist zweifellos mit Herausforderungen verbunden, kann aber die Betriebseffizienz verbessern, indem die Speicherverwaltung und die Leistung optimiert werden und eine neue Antwort auf die Variabilität der Schemata und die kontinuierlichen Anpassungsanforderungen der Analysepipelines gegeben wird.
In einem Experiment wird untersucht, ob das ECS in der Lage ist, die operative Logik klar von den Daten zu trennen und gleichzeitig die Betriebseffizienz im Kontext von Big Data zu verbessern. Der Code für die Ausführung des Experiments ist auf GitHub unter folgendem Link verfügbar: https://github.com/cdelmonte-zg/ecs-for-big-data.
Drei vereinfachte Softwarelösungen zur Betrugserkennung bei Finanztransaktionen, die auf unterschiedlichen Architektur- und Designmustern basieren, wurden implementiert und verglichen, um Komplexität und Leistungsfähigkeit zu bewerten:
ECS-OOP-Lösung: Basiert auf dem Entity-Component-System im OOP-Paradigma.
ECS-funktionale Lösung: Basiert auf dem Entity-Component-System im DOD-Paradigma.
Schichtenarchitektur + Visitor-DOM Design Pattern Lösung: Kombiniert das Visitor Pattern und das Dynamic Object Model (DOM) in einer Schichtenarchitektur, um die Flexibilität von ECS zu bieten.
Für jede Lösung wurden Python-Skripte erstellt, die den Betrugserkennungsprozess implementieren. Diese Skripte wurden dann mit Radon analysiert, um die zyklomatische Komplexität zu bewerten. Zusätzlich wurden Performance-Tests durchgeführt, um die durchschnittlichen Ausführungszeiten zu messen, wobei die Prozesse isoliert wurden, um genaue Ergebnisse zu gewährleisten und Interferenzen zwischen den Tests zu minimieren. Die Ergebnisse sind in der nachstehenden Tabelle zusammengefasst:
Lösung
Durchschnittliche zyklomatische Komplexität
Durchschnittliche Ausführungszeit (s) für 100.000 Testdaten
Durchschnittliche Ausführungszeit (s) für 500.000 Testdaten
Durchschnittliche Ausführungszeit (s) für 1.000.000 Testdaten
ECS-OOP
1.0
9,66247174
89,6456137
300,299488
ECS-funktional
1.0
8,87341613
89,8852031
295,687468
Visitor-Dom
01. Mrz
114,175368
625,746348
1345,66638
Die Lösungen ECS-OOP und ECS-funktional weisen alle eine zyklomatische Komplexität der Stufe A auf, was auf einfache Implementierungen hinweist. Die Lösung Visitor + DOM hat eine etwas höhere Komplexität (1,3), bleibt aber ebenfalls in der Kategorie A und ist somit beherrschbar, wenn auch komplexer.
Hinsichtlich der Ausführungszeit ist die ECS-Funktionale Lösung am effizientesten. Die ECS-OOP-Lösung weist eine ähnliche Effizienz auf. Die Visitor-DOM-Lösung hat die höchste Ausführungszeit aufgrund der zusätzlichen Komplexität, die die Effizienz reduziert. Die vollständigen Berichte sind im GitHub-Repository des Autors zu finden.
Schlussfolgerungen
Die durchgeführten Experimente haben gezeigt, dass alle untersuchten Lösungen hinsichtlich ihrer Komplexität handhabbar sind. Die ECS-Lösungen überzeugen durch ihre Flexibilität und Leistungsfähigkeit. Der ECS-funktionale Ansatz eignet sich insbesondere für übersichtliche Projekte mit geringer Komplexität und hoher Performance.
Für komplexe und dynamische Projekte wird die ECS-OOP-Lösung empfohlen, da sie ein ausgereiftes Management der Verhaltenslogik und der Daten bietet. Die Kombination von Modularität und Wartbarkeit gewährleistet eine leichte Wartbarkeit des Systems sowie dessen langfristige Skalierbarkeit.
In der Gesamtheit lässt sich festhalten, dass sich die ECS-Architektur für moderne Softwareentwicklungsprojekte im Kontext von Big Data als wertvolle Option erweist, da sie sich durch Flexibilität und Leistungsfähigkeit auszeichnet. Die klare Trennung von Daten und Verhaltenslogik ermöglicht eine effiziente Gestaltung von Projekten sowie eine bessere Anpassung an zukünftige Anforderungen. Die Integration von ECS sowohl in funktionale als auch in objektorientierte Programmiersysteme (OOP) ermöglicht Entwicklern eine effiziente Bewältigung der Herausforderungen, die sich aus Big Data und maschinellem Lernen ergeben.
* Über den Autor Christian Del Monte (adesso SE) ist Softwarearchitekt und -ingenieur mit mehr als 20 Jahren Erfahrung. In verschiedenen Projekten im B2B- und B2C-Bereich hat er mit einer Vielzahl von Softwarearchitekturen gearbeitet, die mit unterschiedlichen IT-Technologien und Frameworks umgesetzt wurden. Sein besonderes Interesse gilt Data Lakes, DevOps und hochverfügbaren, ereignisgesteuerten Architekturen.