Die neueste Version der Anwendung dWb+ ist um eine neue Kategorie von Modulen erweitert worden: War der Focus der letzten Erweiterung noch die bessere Unterstützung für Rapid Prototyping, geht es diesmal um verteiltes Rechnen.
Bisher war es bereits möglich, die Abarbeitung größerer Workspaces auf mehrere Rechner zu verteilen. Allerdings mussten dafür spezielle Module zur Kopplung geschrieben werden. Außerdem musste auf jedem beteiligten Rechner eine Instanz von dWb+ ausgeführt werden. Die Tatsache, daß die Workspaces in besonderen Fällen in einer bestimmten Reihenfolge in die einzelnen dWb+ Instanzen geladen werden mussten, machte das Ganze noch komplizierter.
Die neueste Version von dWb+ adressiert dieses Problem: Bei der Remoting genannten Verteilung von Aufgaben an unterschiedliche Rechner wird nur noch eine dWb+ Instanz benötigt. Es gibt auch nur noch einen Workspace, der auf dieser dWb+ Instanz ausgeführt wird.
dWb+ benutzt Remote Method Invocation oder kurz RMI um eine noch nie erreichte Flexibilität beim verteilten Rechnen mit einer enorm vereinfachten Bedienung zu vereinen. Der Workspace wird so aufgebaut wie bisher. Möchte man die Berechnung des Algorithmus auf mehrere Rechner verteilen, startet man auf diesen Rechenknoten je eine kleine Anwendung.
Im laufenden Betrieb kann man dann im Workspace auf der Steuerinstanz durch simple Auswahl eines Menüpunktes die Funktionalität eines Modules verlagern - von Rechner zu Rechner ohne den Workspace anhalten zu müssen oder sonst irgendeine besondere Aktion durchführen zu müssen. Lediglich der Entwickler muß einige simple Randbedingungen einhalten, damit sein neues Modul mit dieser Fähigkeit ausgestattet werden kann.
Die Rechenknoten müssen nicht aufwändig aktualisiert werden, wenn neue Module in den Werkzeugkasten einziehen. Sie erhalten die Informationen über die Funktionalität, die sie bereitstellen sollen, zur Laufzeit von der Steuerinstanz. Zur Zeit funktioniert das System so, daß ein Modul in der Steuerinstanz zunächst ganz normal lokal ausgeführt wird. Soll es auf einen Rechenknoten verlagert werden, sendet es zunächst den dafür nötigen Code auf diesen Rechenknoten. Anschließend signalisiert dWb+ dem Rechenknoten, daß dieser die Berechnung ausführen soll. Nach Abschluß der Berechnung sendet der Rechenknoten das Ergebnis zurück an das initiierende Modul, das es an die nachfolgenden Verarbeitungseinheiten weiterleitet.
Zur Zeit wird daran gearbeitet, ein Plugin zur Arbeit mit Remote Modulen zu erstellen, das es erlaubt, zur Laufzeit neue Remoting Server hinzuzufügen oder welche zu entfernen. Weitere projektierte Fähigkeiten sind das zum Beispiel das gesammelte Verlagern aller Module von einem Server auf einen anderen.
Eine andere Erweiterung, die die Arbeit mit Remote Modulen vereinfachen soll, ist die Möglichkeit, alle Remote Module in einem Workspace hervorzuheben, die auf demselben Remoting Server liegen.
18.09.2016
Nach Fertigstellung einiger Module, die die Kommunikation zwischen Komponenten auf Dateiebene unterstützen, werde ich versuchen, verschiedene Interaktionsmetaphern bzw. Kommunikationsstrategien aus anderen datenflussgetriebenen Systemen in dWb+ nachzuvollziehen, um die Effizienz der Implementierung und die Vor- und Nachteile ihrer Anwendung diskutieren zu können.
28.01.2014
Neue Versionen der Anwendungen sQlshell und dWb+ sind verfügbar
19.12.2013
Nach den letzten beiden Funktionserweiterungen für dWb+ wurde versucht, den eingeschlagenen Weg weiter zu vereinfachen: Skripted Module sollten das Remoting weiter vereinfachen. Dabei trat ein interessantes Problem auf, das gleich seine eigene Lösung mitbrachte...
13.12.2013
Es war wieder einmal an der Zeit, der Benutzeroberfläche von dWb+ eine Frischzellenkur zu verpassen.
Multi-User-WebDAV, Docker, GitHub
17.11.2019
Nachdem ich mich in letzter Zeit verstärkt mit Docker und dem zugehörigen Ökosystem beschäftige, habe ich begonnen, verschiedenste Dienste in Containern zu testen um zu sehen, ob in manchen Fällen LXC oder KVM nicht doch die bessere Wahl wäre...
Weiterlesen...Android Basteln C und C++ Chaos Datenbanken Docker dWb+ ESP Wifi Garten Geo Go GUI Gui Hardware Java Jupyter Komponenten Links Linux Markdown Markup Music Numerik OpenSource PKI-X.509-CA Python QBrowser Rants Raspi Revisited Security Software-Test sQLshell TeleGrafana Verschiedenes Video Virtualisierung Windows Upcoming...
In eigener Sache...
Weiterlesen...Ich habe eine neue Java Swing Komponente erstellt: Es handelt sich um einen Wrapper für von JToolBar abgeleitete Klassen, die die Werkzeugleiste minimieren und sie nur dann einblenden, wenn der Mauszeiger über ihnen schwebt.
Weiterlesen...Ich habe bereits in einem früheren Artikel über meine ersten Erfolge berichtet, der sQLshell auf Basis des bestehenden Codes aus dem Projekt EBMap4D eine bessere Integration für Geo-Daten zu spendieren und entsprechende Abfragen, bzw. deren Ergebnisse auf einer Kartenansicht zu visualisieren.
Weiterlesen...Manche 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.