(20.02.2013 16:09 )GerdW schrieb: so sehr ich diesen Ansatz mit der SharedMemory-DLL bewundere, aber: Es sieht schon sehr nach "Hack" aus...
Unterstützt diese DLL auch Win7-64bit und Win8?
Der Umweg über die genannte DLL mag zwar gehen. Aber ich habe da so meine Zweifel, was die Sicherheitskonzepte aktueller Betriebssysteme angeht (zertifizierte DLLs etc.). Wir sind schon lange aus der MS-DOS/CP-M/C64/u.a-Ära entwachsen, wo man wild im Speicher rumfuhrwerken konnte...
Hi Gerd
Ich stimme Dir vollständig zu.
Das SharedMemory war auch nur als Hack von uns gedacht (und nur unter Windows XP 32Bit getestet) und wird von mir nicht als dauerhafte Lösung angepriesen. Ich weise nur darauf hin, dass es unter bestimmten Umständen möglich ist. Jeder Entwickler muss schon auf Grund seiner Anforderungen für sich selbst entscheiden, ob es eine Lösung sein kann.
Erschwerend kommt ja oft noch das Zeitverhalten von verschiedenen Applikationen dazu. Ich favorisiere den Austausch von Daten über das Netzwerk. Dann können verschiedene Programme auch zwanglos auf verschiedenen Rechner laufen. Das erhöht die Skalierbarkeit. Über den localhost kann man ja auch ziemlich gute Transferraten erreichen, das ist fast so gut, wie das SharedMemory.
Man sollte auch unterscheiden, ob die Daten unbedingt synchron ausgetauscht werden müssen, oder ob nicht auch ein asynchroner Austausch genügt. Für die synchrone Peer-2-Peer Kommunikation bieten sich einfache TCP/IP-Sockets an. Benötigt man eine Art
Netzwerk-Transaktion könnte DIM (
http://www.cern.ch/dim) in Frage kommen. DIM bietet zudem die Möglichkeit, verteilte heterogene Systeme miteinander zu verheiraten. Für die asynchrone Kommunikation kommen einfacherweise SharedVariablen oder Networkstreams in Frage. Es bieten sich aber auch andere Möglichkeiten an DataSocket, OPC oder andere
echtzeitfähige Prozessdatenbanken an.
Gruß Holger