![]() |
AW: Modularer (evtl. verteilter) Programmaufbau - Welche Art von IPC ist die richtige
Zitat:
Wenn aber alle Plugins als Clients implementiert werden, die sich an einen zentralen Server andocken sollen, wird dem Serverprozess die gesamte Koordination der Anfragen und das Weitergeben an andere Plugins übertragen. Dazu müssten auch Callbacks implementiert werden, so dass der Server aufgrund der Anfrage eines Plugins aktiv einem anderen Plugin Nachrichten senden kann. Ich stelle mir als Lösung eher einen sehr schlanken Message Bus vor - eine einheitliche Infrastruktur die allen Plugins gleichberechtigt zur Verfügung steht. Dazu würde ich ein sehr kompaktes Protokoll wie MQTT einsetzen, das gerade für kleine Nachrichten und langsame Netze (schwache Hardware wie Arduino) ausgelegt ist. ( ![]() ![]() Jedes Plugin benötigt dann nur eine sehr kompakte und komplett im Prozess integrierte Clientbibliothek, unabhängig von DLLs oder Services wie DCOM ist. Nur TCP wird benötigt, zum Beispiel über Synapse das auch sehr schlank ist. Anwendungen, die die Daten der Plugins visualisieren wollen, lauschen dann entweder auf dem Message Bus und verarbeiten Daten die momentan darüber gesendet werden, oder senden Befehle über den Message Bus an ein Plugin, das daraufhin zum Beispiel Statusdaten an den Sender zurückschickt. Auch eine Weboberfläche liesse sich damit problemlos anbinden, selbst wenn sie in einer anderen Sprache geschrieben ist, wenn für das Protokoll (z.B. MQTT) bereits entsprechende Clients existieren. Der wesentliche Unterschied ist, dass es keine Server- und Clientprozesse gibt sondern jedes Plugin aktiv senden und passiv empfangen kann. Das kann man auch nutzen um eine Benutzeroberfläche fernzusteuern, zum Beispiel abhängig vom Status eines Plugins einen Menüpunkt zu aktivieren - das Plugin sendet eine Nachricht wie "Ich bin jetzt aktiviert!" über den Bus. Das GUI Programm lauscht auf entsprechende Statusnachrichten und schaltet die Menupunkte ein. |
AW: Modularer (evtl. verteilter) Programmaufbau - Welche Art von IPC ist die richtige
Zitat:
|
AW: Modularer (evtl. verteilter) Programmaufbau - Welche Art von IPC ist die richtige
und die Instanz vom Message Bus kann im Kern der Anwendung liegen? Oder lieber separat?
|
AW: Modularer (evtl. verteilter) Programmaufbau - Welche Art von IPC ist die richtige
Zitat:
|
AW: Modularer (evtl. verteilter) Programmaufbau - Welche Art von IPC ist die richtige
Faszinierendes Kochrezept.
Für meinen Zweck hatte hätte ich bislang eigentlich bewusst eine Punkt-zu-Punkt-Verbindung zwischen Kern und den Modulen angestrebt. Und zwar da
Der Grund für den zweiten Punkt ist folgender: Baut der Kunde an seiner Installation etwas um, möchte ich ihm nur eine neue Konfiguration des Moduls (oder ein anderes) liefern. Wenn ich jetzt noch andere Module habe, die in gewisser Weise von anderen Plug-Ins "abhängig" sind, komme ich in Teufels Küche... Ich bin begeistert, wie lange sich so ein komplexes Thema hält. :thumb: |
AW: Modularer (evtl. verteilter) Programmaufbau - Welche Art von IPC ist die richtige
Zitat:
|
AW: Modularer (evtl. verteilter) Programmaufbau - Welche Art von IPC ist die richtige
Zitat:
So wie ich die letzten Posts verstehe würde dir ein gemeinsames Postfach zur Kommunikation reichen. Vielleicht mit einem Broadcast das ein frühzeitiges Pollen auslöst. ich glaube nicht das es sowas als middleware gibt... |
AW: Modularer (evtl. verteilter) Programmaufbau - Welche Art von IPC ist die richtige
Zitat:
![]() |
AW: Modularer (evtl. verteilter) Programmaufbau - Welche Art von IPC ist die richtige
Langsam muss ich auch zu einem Ergebnis kommen...
Nachdem für mich für ein RAD Studio Geld in Höhe des Staatsetats von Timbuktu lockergemacht werden musste, will ich nicht gleich noch neue Lösungen wie RealThinClient oder RemObjects kaufen müssen
Leichtgewichtige Sachen wie XML-RPC für Delphi sind anscheinend wirklich tot (siehe auch ![]() Ich gebe hiermit mehr oder weniger auf: Wahrscheinlich wird es damit enden, sich wieder selbst etwas zusammenzubasteln (wild Pesudo-XML-Zeichenketten über Sockets hin-und herwerfen)um in zwei Jahren zu merken, dass es doch etwas gegeben hätte, was eigentlich genau gepasst hätte (Was ist eigentlich diese DataSnap-Geschichte?) und konform zu irgendeinem tollen Standard gewesen wäre. Ich habe schlichtweg nicht den geringsten Überblick was da draußen alles vor sich hingeistert. Insgesamt vielleicht etwas traurig - Egal wo ich hinschaue, alles scheint darum zu gehen, eine potentiell riesige Lemming-Horde an Clients versorgen zu können und toll Daten persistieren zu können. Persistente Datenhaltung spielt bei mir nur eine sehr kleine Rolle und Server und Client befinden sich in 95% der Fälle auf einer Maschine. |
AW: Modularer (evtl. verteilter) Programmaufbau - Welche Art von IPC ist die richtige
Also die angesprochene XML-RPC-Sache mit Delphi hatte ich mal im Einsatz, war sehr einfach und stabil, hat eben gemacht was es sollte. Wenn Du das auf dein Delphi gebogen bekommst, sollte alles machbar sein.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz