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.
Links - Verschiedenes
03.11.2020
Hier einmal einige Links, die einfach in keine Kategorie passen...
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 längere Zeit keine Erweiterung meines Docker-Zoos vorgenommen - auch weil ich mir einige konzeptionelle Gedanken dazu gemacht habe. Aber ich habe auch Ideen gesammelt, was in meinem @homelab noch fehlt und was dringend ergänzt werden sollte.
WeiterlesenEine Diskussion brachte mich neulich auf eine Idee - und im Urlaub hatte ich an einem regnerischen Tag genug Zeit, die entsprechenden Experimente zu machen...
WeiterlesenNachdem die Öffentlichkeit letzte Woche wieder mal mitgekriegt haben sollte, dass die Konzentration in der Cloud Schwachsinn ist und - vielleicht nicht - die ganze Öffentlichkeit vor zwei Wochen wieder einmal herzlich gelacht hat über die, die dennoch alles in die Cloud auslagern, aber offensichtlich nicht verstehen, wie sie funktioniert - hier einige Gedanken von mir dazu...
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.