Die Anwendung dWb+ wurde erweitert für den Umgang mit beliebigen Komponenten-Spezifikationen.
Die modellierten Workflows als Zusammenfassung der Komponenten und ihrer Verbindungen untereinander können gespeichert werden. Damit kann man sie zu einem späteren Zeitpunkt oder an einer anderen Stelle wiederverwenden. Es existiert bereits eine Programmierschnittstelle, um die Workflows in eigenen Formaten direkt aus dWb+ heraus exportieren zu können.
Nun sollte eine Möglichkeit geschaffen werden, mit Komponentendefinitionen arbeiten zu können, die nicht für dWb+ geschaffen wurden. Basierend auf dem Code für den ModuleWorkspace, der auch Grundlage von dWb+ ist, wurde auch der Visuelle Abfrageeditor geschaffen, der eines der zentralen Bestandteile der sQLshell ist. Die neue Aufgabe sollte aber noch weiter gehen: Innerhalb der Anwendung dWb+ sollte es möglich sein, verschiedenste Modulspezifikationen zu mischen.
{
"name":"JSONSpecDemo",
"displayName":"Titel dieses Moduls",
"displayName_en":"Module Title",
"shortDescription":"Kurze Beschreibung",
"shortDescription_en":"short description",
"iconURL":"http://flori.github.io/json/json_logo.png",
"slotDefinitions":
[
{
"name":"slot1",
"displayName":"Eingang 1",
"displayName_en":"Input 1",
"direction":"in",
"type":"string",
},
{
"name":"slot2",
"direction":"out",
"type":"bool",
"shortDescription":"Kurze Beschreibung",
"shortDescription_en":"short description",
},
{
"name":"slot3",
"type":"numeric",
"displayNameInput":"Eingang 3",
"displayNameInput_en":"Input 3",
"displayNameOutput":"Ausgang 3",
"displayNameOutput_en":"Output 3",
},
{
"name":"slot4",
"direction":"out",
},
{
"name":"slot5",
"type":"Type1",
},
],
}
Man ahnt hier schon, dass dieses Format darauf ausgerichtet ist, die durchgehende
Unterstützung für Internationalisierung in der visuellen Darstellung der Workflows in
dWb+
zu nutzen.
Die erste vorliegende Implementierung geht dazu folgenden Weg: JSON bedeutet ausgeschrieben ja Java Script Object Notation. Javascript ist aber eine typlose Sprache. Daher wurde folgende Lösung ersonnen und implementiert: Fundamentaldatentypen werden auf Java-Typen abgebildet - das bedeutet zum Beispiel, daß ein Slot, für den in der Spezifikation als Typ bool angegeben ist, resultiert in einem Slot des Moduls auf dem Arbeitstisch, das den Java-Typ boolean aufweist. Für Slots, für die keine solche Abbildung bekannt ist, wird einfach transparent zur Laufzeit eine Klasse ohne Inhalt generiert. Diese Klasse wird dann als Typ des Modul-Slots auf der Arbeitsfläche benutzt. Damit kann man auch Slots in so spezifizierten JSON-Spezifikationen nur mit anderen verbinden, wenn sie den gleichen Typ aufweisen.
Modul aus JSON-Spezifikation mit Systemsprache Englisch
Modul aus JSON-Spezifikation mit Systemsprache Deutsch
In der dritten Abbildung kann man sehen, daß der Mechanismus der transparenten Erzeugung
leerer Klassen zur Repräsentation von Typen funktioniert: Es wurde eine Klasse namens Type1
im Namensraum tmp.dwb.ecma.script angelegt und slot5 zugewiesen - damit kann dieser Slot
nur noch mit anderen desselben Typ verbunden werden.
Modul aus JSON-Spezifikation mit dynamisch erzeugtem Typ
Man kann an den Screenshots alle in der Spezifikation angegebenen Metadaten wiederfinden.
Nun kann man beliebige Module oder Komponenten in dieser JSON-Spezifikation beschreiben und
sie mittels
dWb+
zu einem Workflow kombinieren. Mit einem entsprechenden Export-Modul kann man damit dWb+ als
Designwerkzeug für beliebige Workflows benutzen.
22.04.2017
Der Aufbau des Netzwerklabors, wie er in vorhergehenden Artikeln geschildert wurde, ist nicht statisch: Hin und wieder müssen Maschinen entfernt und hinzugefügt oder in andere Netzwerksegmente verschoben werden. Dazu benötigt man ein Mittel zur Dokumentation
01.05.2016
Die Anwendung dWb+ wurde erweitert für den Umgang mit beliebigen Komponenten-Spezifikationen. Es soll versucht werden, diese Arbeit weiterzuführen, indem die Modulbeschreibungen so erweitert werden, dass eine variable Anzahl von Eingängen möglich wird.
Synchronisierung von Lorenz-Systemen III
23.10.2020
Nachdem ich in einem vorhergehenden Artikel auf das Problem des kleinen Parameterraums im Zusammenhang mit der Nutzung synchronisierter chaotischer Systeme hingewiesen hatte will ixch hier untersuchen, wie sensibel solche Systeme auf Abweichungen der Parameterwerte zwischen treibendem und getriebenen System reagieren
WeiterlesenAndroid Basteln C und C++ Chaos Datenbanken Docker dWb+ ESP Wifi Garten Geo Go GUI Gui Hardware Java Java. Komponenten Jupyter JupyterBinder Komponenten Links Linux Markdown Markup Music Numerik OpenSource PKI-X.509-CA Präsentationen Python QBrowser Rants Raspi Revisited Security Software-Test sQLshell TeleGrafana Verschiedenes Video Virtualisierung Windows Upcoming...
Ich habe neulich beschrieben, dass ich aktuell mehr und mehr bemerke, dass Dinge, für die ich in meinem NeoVim-Setup Plugins benutzt habe sehr gut auch mit Bordmitteln funktionieren.
WeiterlesenIch habe neulich wieder einmal eine Upgrade- und Backup-Sitzung mit meinen diversen Linuxinstallationen veranstaltet. Der Zeitpunkt schien mir gekommen, da es eine neue stable Variante von Debian (Trixie) gibt.
WeiterlesenIch diskutiere immer wieder gern über das was heute Machine Intelligence oder Artificial Intelligence ( oder wie die ganzen anderen hohlen Phrasen heißen, die dafür heutzutage als Buzzwords missbraucht werden). Das geschieht online, in meinem $dayjob oder auch privat. Meine Meinung steht fest: das ist alles Quatsch und steht in keiner Relation zum Nutzen
WeiterlesenManche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.
Wer daran teilhaben und eventuell sogar davon profitieren möchte, muss damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.
Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...
PS: Meine öffentlichen Codeberg-Repositories findet man hier.