oktoflow entwickelt sich weiter
Die neue stabile Version von oktoflow ist fertig und damit auch das nächste Release für die ReGaP-Community, rechtzeitig zum Start der neuen ReGaP-Impulsprojekte CoLaPro und FlexTrude. Die grundlegenden Begriffe rund um Releases, Plattformversionen und Snapshots haben wir im Community-Asset zum oktoflow Release 0.8.0 eingeführt, so dass wir uns in diesem Asset auf die durchgeführten Änderungen konzentrieren.
DIE VERBESSERUNGEN
Was ist neu in oktoflow 0.8.1?
Es gibt vieles Neues aber auch diverse Verbesserungen.
Build-Prozesse sind verantwortlich für das systematische Erstellen, Testen und Verpacken von Software-Komponenten. In oktoflow, hat jede der über 80 Plattformkomponenten einen angepassten Build-Prozess, die oktoflow-Applikationen werden von generierten Build-Prozessen erstellt. Beide Arten von Build-Prozessen bilden die Grundlage für die kontinuierliche Integration, d.h., das automatisierte Ausführen dieser Prozesse wenn wir Plattformkomponenten für euch anpassen. Da die App-Build-Prozesse auf euren Rechnern laufen, hat die Geschwindigkeit der Build-Prozesse auch direkten Einfluss auf eure Arbeit. Durch Überarbeitung der Generierung der App-Build-Prozesse konnten wir auf Windows 39% und auf Linux 22% der Ausführungszeit einsparen, wobei Build-Prozesse unter Linux um den Faktor 3 schneller laufen als unter Windows. Durch die Beschaffung und Installation des neuen ReGaP-Servers an der Universität Hildesheim sowie der Migration der Build-Prozesse auf diesen Server konnten wir insgesamt mehr als 50% der Build-Zeit für alle Plattformkomponenten einsparen, d.h., ein kompletter Plattform-Build mit allen Tests und Deployments benötigt jetzt nur noch knapp zwei Stunden. Zudem haben wir für oktoflow-Apps die erste Version inkrementeller Builds freigeschaltet. Dabei erfordern Änderungen an Java- oder Python-Services einer App nicht mehr einen kompletten Build, da die App, wie bei Web-Frameworks üblich, einfach weiterläuft und die Änderungen zur Laufzeit nachlädt. Dies ermöglicht in ersten Versuchen Build-Zeiten von unter 10 Sekunden.
Zudem haben wir für oktoflow-Apps die erste Version inkrementeller Builds freigeschaltet. Dabei erfordern Änderungen an Java- oder Python-Services einer App nicht mehr einen kompletten Build, da die App, wie bei Web-Frameworks üblich, einfach weiterläuft und die Änderungen zur Laufzeit nachlädt. Dies ermöglicht in ersten Versuchen Build-Zeiten von unter 10 Sekunden.
Dieses Update betrifft die Integration von oktoflow2Grafana in die Plattform-Build-Prozesse. Das aus oktoflow-Apps automatisiert abgeleitete Dashboarding wurde gemeinsam mit dem Community-Mitglied Bitmotec für Version 0.8.0 entwickelt und eingeführt. Allerdings mussten die hierfür notwendigen Generierungsschritte noch händisch ausgeführt werden. Seit Version 0.8.1 werden die erforderlichen Schritte für Apps die ein Dashboarding definieren automatisiert als Teil der App-Build-Prozesse ausgeführt. Also schneller und einfacher zum Projekt inklusive Visualisierung.
Hierbei handelt es sich um eine Überarbeitung und Verbesserung des Management-UI. Die webbasierte Management-Oberfläche von oktoflow erlaubt es, Apps zu modellieren und App-Build-Prozesse auszuführen, ohne selbst das darunterliegende Modell anzufassen. ReGaP-Community-Projekte wählen in letzter Zeit häufiger diesen Weg der App-Entwicklung und teilen Ihre Erfahrungen und ihre Verbesserungswünsche. Daher konnten wir insbesondere Anwendbarkeit, Arbeitsabläufe, Durchgängigkeit und Konsistenz aber auch die Bereitstellung kontinuierlicher Informationen bei länger laufenden Prozessen wie App-Builds deutlich verbessern.
Bislang war JSON das Format für den Datentransport zwischen Konnektoren und Services in der Plattform. Version 0.8.1 führt nun die automatisierte Generierung von App-Code für das binäre (proprietäre) Protobuf-Format sowie für XML ein um Integration in Bestandssysteme aber auch Beschleunigung von Datenflüssen zu ermöglichen.
Der oktoflow Entwicklungscontainer ermöglicht die Entwicklung von oktoflow Apps ohne die Plattform selbst zu installieren. Dazu enthält der Linux-basierte Docker-Container neben einer installierten Plattform auch mehrere Integrierte Entwicklungsumgebungen. Um demnächst lauffähige oktoflow-Instanzen für die Community bereitstellen zu können, enthält der Entwicklungscontainer nun zusätzliche Sicherheitsmechanismen, insbesondere eine verbesserte Rechtevergabe für den öffentlichen Betrieb der Plattform. Dies ändert nichts an der bisherigen Nutzung, da die Sicherheitsmechanismen optional sind, d.h., beim Starten extra aktiviert werden müssen.
Einerseits wurde der OPC-UA-Konnektor von oktoflow erweitert, um mit der Namenskonvention von SIMATIK-Geräten arbeiten zu können. Andererseits wurden erste Verbesserungen der automatisierten OPC-UA-nach-IVML-Transformation realisiert, insbesondere um OPC Companion Specifications 40001-4 [1] verarbeiten zu können. Diese Transformation ermöglicht es, Datenstrukturen der OPC-UA Companion-Specifications automatisiert ins Modellformat von oktoflow zu übersetzen und damit einfacher und sicherer konforme OPC UA Konnektoren zu erstellen. Weitere (Geschwindigkeits-)Verbesserungen sind in Arbeit.
In diesem Release wurden erste Software-Komponenten, die der Plattformkern benötigt, erneuert.
Neben diesen großen Themen gab es auch noch weitere Anpassungen. Die Zusammenfassung finden Interessierte in der Release-Dokumentation.
ausblick
Wie geht es weiter?
Wie beim letzten Release haben wir die Versionsnummer der Entwicklungsversion erhöht. Diese trägt nun die Versionsnummer 0.8.2-SNAPSHOT. Daraus ist schon abzuleiten, dass wir auch in der nächsten Version eher kleinere Verbesserungen anstelle von großen Umbrüchen planen. Angedacht sind.
Build-Komponenten
Erneuerungen der Build-Komponenten.
OPC-UA-nach-IVML
Weitere Verbesserungen der OPC-UA-nach-IVML-Transformation.
Plugins und Abhängigkeiten
Aktivierung der Plugins zwecks Upgrades verschiedenster technischer Abhängigkeiten. Ob dies auch zu einem Update von Java und Maven führen wird, können wir zurzeit noch nicht absehen.
Community-Feedback
Umsetzung von Feedback und Wünschen der Community-Projekte.
Management-UI
Verbesserung und Erweiterung des Management-UI für Deployment-Pläne, App-Templates, Service-Zustandsmaschinen.
Das nächste Release planen wir ungefähr für März 2027.
Gemeinsam weiterentwickeln
Danke an die ReGaP-Community
Letztlich möchten wir uns noch ganz herzlich für die Beiträge der ReGaP-Community und der laufenden Community-Projekte Mobile-EPro und CORE zu diesem Release bedanken. Es wurden insbesondere Funktionsverbesserungen, Dokumentationsverbesserungen, Problembeschreibungen und Verbesserungsideen eingebracht, die oktoflow wesentlich nutzbarer gemacht haben. Zudem gab es viele Detail-Diskussionen und wir haben euch etwas „über die Schultern“ geschaut, um besser zu verstehen, wie ihr mit oktoflow arbeitet und was wir hierfür verbessern können, z.B., die Verbesserungen der Build-Prozesse.
Gerne Anregungen und Ideen einbringen – wir haben dafür ein offenes Ohr!
Referenzen:
[1] OPC UA for Machinery – Part 4: Energy Management, https://reference.opcfoundation.org/specs/OPC-40001-4
Fragen zu oktoflow?
Unser Supportteam hilft Ihnen gerne weiter und freut sich auf Ihre Fragen und Ideen.