Die Software-Architektur von jBEAM: Im Zeichen von Effizienz und Benutzerfreundlichkeit

Unsere jBEAM Software zeichnet sich durch objektorientiertes Design und eine Produzenten-Konsumenten-Struktur aus. Die Speicherung der Benutzerdaten erfolgt in einem Datenelement, und Konsumenten werden per Event über Statusänderungen benachrichtigt. jBEAM unterstützt zudem verschiedene Betriebssysteme.

Produzenten-Konsumenten-Struktur

Der Zugriff auf die Messdaten durch jBEAM erfolgt auf dem Wege des Imports der Dateien, die diese enthalten (d. h. durch die Abfrage von ASAM-ODS-Datenbanken) oder des Empfangs von Sensordaten aus Messmodulen. Zur Veranschaulichung der Produzenten-Konsumenten-Struktur ist im Folgenden der Import einer DIAdem Datendatei beschrieben.

Zunächst einmal müssen wir dazu eine neue Instanz eines DIAdem Importers in jBEAM erstellen. Dieser Importer enthält alle erforderlichen Angaben: wie eine DIAdem Datei aufgebaut ist und wie Datenelemente in jBEAM zu produzieren sind. In unserem Beispiel erstellt der DIAdem Importer zwei Gleitkomma-Kanäle namens „Datenelement 1“ und „Datenelement 2“. Der Importer ist somit ein „Produzent“ von Datenelementen.

Als Beispiel für einen Datenkonsumenten erstellen wir ein Grafikobjekt vom Typ „Universeller 2D-Graph“. Darin definieren wir ein Diagramm vom Typ „XY-Graph“, dessen Input nun das Datenobjekt 1 darstellt. Die Messwerte aus der DIAdem Datei werden danach automatisch als Kurve visualisiert. Das zweite Datenobjekt („Datenelement 2“) lässt sich in einem zweiten Diagramm vom Typ „XY-Kurve“ in derselben Grafik darstellen; alternativ dazu können wir einen zweiten Graphen definieren, in dem die Messwerte als Diagramm vom Typ „XY-Kurve“ dargestellt werden.

Instanzen von Produzenten und von Konsumenten werden innerhalb der Software-Architektur von jBEAM gleichermaßen als „Komponenten“ bezeichnet.

Automatische Aktualisierung

Bei jeder Änderung der Konfiguration eines Produzenten werden alle Konsumenten angewiesen, entweder ihre Daten neu zu berechnen oder aber die angezeigten Daten neu aufzutragen. Infolge des automatischen Aktualisierungsmechanismus’ brauchen lediglich jene Konsumenten aktualisiert zu werden, die auch tatsächlich eine Änderung ihrer Datenelemente erfahren haben.

Beispielsweise erfolgt die Aktualisierung des DIAdem Importers unter Verwendung des Importer-Dialogs, der sämtliche DIAdem Importparameter enthält. Einen dieser Parameter stellt die Datei selbst dar. Wird eine andere DIAdem Datei gewählt und bestätigt, so gestaltet sich der Prozessablauf wie folgt:

  1. Der Inhalt der neuen Datei wird geladen und in den Datenelementen gespeichert. Wenn Kanalname bzw. -typ passen, werden die bereits bestehenden Elemente mit neuen Daten gefüllt.

  2. Bei jedem Ereignis werden die zugehörigen Konsumenten (im vorliegenden Falle die Grafikobjekte) davon benachrichtigt, dass sich die Inhalte geändert haben.

  3. Es ist nun Sache der Konsumenten, auf die Informationen entsprechend zu reagieren. In unserem Falle lösen die Grafiken eine Neuauftragung aus.

Der Vorteil dieses Verfahrens liegt darin, dass in jBEAM aufgrund seiner Software-Architektur stets der korrekte Status angezeigt wird – ohne hierzu irgendeine Autosequenz aufrufen zu müssen.

Verzweigungen und Berechnungen

Neben Produzenten und Konsumenten von Datenelementen enthält jBEAM auch zahlreiche „Berechnungen“, die Datenelemente konsumieren UND produzieren. Beispiele für solche Berechnungen sind Formeln, FFT-Analysen, Crash-Beurteilungen und Event-Analysen.

Im vorliegenden Beispiel definieren wir eine Formelkomponente mit der Formel „1,2 + 3*A“ und dem „Datenelement 1“. Die Formel wird auf jeden Wert des „Datenelements 1“ angewandt und im dabei produzierten „Datenelement 3“ gespeichert. In diesem Falle funktioniert die automatische Aktualisierung auch nach einer Änderung der importierten Datei.

Externe CEA-Komponenten

jBEAM ist ein ASAM-CEA kompatibles Framework, welches durch externe Plugin-Komponenten erweitert werden kann, insoweit diese dem ASAM-CEA-Standard folgen. In jBEAM werden solche ASAM-CEA-Komponenten wie interne jBEAM Komponenten behandelt. Der Umstand, dass diese in kompilierter Form vorliegen, maximiert die Verarbeitungsgeschwindigkeit.

Die Software-Architektur von jBEAM schafft so ein Höchstmaß an Flexibilität gegenüber jeder Anwendung, ohne dies mit Kompromissen bei der Benutzerfreundlichkeit oder Verarbeitungsgeschwindigkeit erkaufen zu müssen. Die Nutzer gelangen in den Vorteil eines offenen Frameworks, das sich mühelos Ihren spezifischen Anforderungen entsprechend anpassen lässt.

Objektarchitektur: Klassen – Instanzen

jBEAM lässt sich als objektorientierte Software intuitiv bedienen. Allerdings werden Nutzer, die mit dem Zusammenhang zwischen Klassen und Instanzen nicht vertraut sind, vielfach Opfer eines Fallstricks, den wir im Folgenden erklären wollen.

Jeder Importer, jede Berechnung und jeder Graph entspricht IT-technisch einer Klasse. Diese Klasse enthält alle Logiken, die für diese Komponenten wichtig sind. Erstellen wir über das Menü beispielsweise eine neue Berechnung, so wird IT-technisch eine „Instanz“ dieser Klasse gebildet. Diese Instanz beinhaltet nun Parameter, die in jeder Instanz unterschiedlich sein können. Zum Beispiel können wir fünf Formel-Editoren anlegen. Diese würden fünf unterschiedliche Instanzen derselben Klasse darstellen. Jeder dieser fünf Formel-Editoren kann unterschiedliche Formeln oder auch unterschiedliche Eingangskanäle aufweisen, die in den verschiedenen Instanzen gespeichert werden.

Rufen wir nun im Menü den Formel-Editor auf, können wir eine neue Instanz erstellen. Im Anschluss öffnet sich automatisch ein Dialogfeld, in dem die Parametrierung der Instanz erfolgt. Soll der so vordefinierte Formel-Editor im Anschluss erneut modifiziert werden, so muss der Nutzer unter „Modifizieren“ die Liste der bereits bestehenden Instanzen aufrufen. Kehrt er dagegen zum Menüpunkt „Formel-Editor“ zurück, so wird ein neuer Formel-Editor (eine neue Instanz) geöffnet, und der Nutzer findet zu seiner Verwunderung die ursprünglichen Einstellungen unverändert vor.

Die Lösung dieses Problems besteht darin, zur Änderung einer bestehenden Komponente die Liste der vorhandenen Instanzen unter „Modifizieren“ aufzurufen.

Kontakt
Max 25 MB