Ich hatte vom Thema bereits ein paar mal ein paar bestimmte Ecken angeschnitten. Nun das große Ganze:
Es geht um eine grundlegende Neuentwicklung einer Software die bereits seit Anfang des Jahrtausends im Einsatz ist. Die Anwendung könnte man noch als Standardsoftware interpretieren.
Es soll nun eine klare Trennung eines Kerns und einer halbwegs klaren Anzahl von Modulen geben. Diese Module arbeiten an sich sehr autark und sollen als "Plug-In" in den Kern geschraubt werden - Je nach Kunden kommen mal mehr, mal weniger Plug-Ins zum Einsatz, mit unterschiedlicher Konfiguration. Spezialwünsche des Kunden sollen nicht mehr in einzelnen abgeschotteten Entwicklungszweigen münden sondern entweder generell ins Programm einfließen oder als neues Modul realisiert werden. Daher wage ich das ganze Projekt immer noch als Standardsoftware zu sehen. Das nur am Rande.
Ich bin mir mittlerweile sehr sicher darin, jedes Modul als eigenen Prozess realisieren zu wollen. Jetzt stellt sich, ganz allgemein, die Frage welche Art der Interprozesskommunikation die richtige ist. Die wichtigsten Eckdaten hierzu sind:
- Ausschließlich Windows-Systeme
- Gesamte Anwendung läuft generell lokal auf einer Maschine. Allerdings ist nun gewünscht, die Module auch im LAN, evtl. WAN ansprechen zu können. Das wird allerdings sicher nicht oft der Fall sein.
- Es werden keine "großen" Datenmengen zwischen Kern und Plug-In ausgetauscht - Ein großer Datendurchsatz ist also nicht gefordert
Meines Wissens nach bleiben zwei
IPC-Methoden mit besonders günstigen Eigenschaften übrig: Es sind
Named Pipes und natürlich
Sockets.
Auch in der engeren Auswahl - allerdings noch mit Unsicherheit - habe ich
DCOM und
RPC. Wenn ich
DCOM richtig verstanden habe,
ist es im Endeffekt RPC, nur mit zusätzlichen Benutzerrechten/Sicherheitsgeschichten obendrauf?
Ich würde gerne einmal zu allen vier hier niederschreiben, was ich davon halte: Wo ich denke, dass es haken könnte und wo es eine gute Wahl ist. Ich möchte den Text hier allerdings nicht noch weiter aufblähen, das liest eh keiner mehr, oder?
Kurzum: Kann mir jemand sagen,
- ob es sich lohnt, sich über DCOM schlau zu machen falls man diese vier Buchstaben erst vor ein paar Tagen zum ersten mal in dieser Reihenfolge gesehen hat?
- ich mit Named Pipes oder Sockets auf dem richtigen Weg bin oder RPC (oder etwas anderes) ein besserer Weg sein könnte?
Vielen Dank im Voraus, ich bin gespannt.