Registriert seit: 18. Feb 2009
129 Beiträge
Delphi 2010 Professional
|
Robustes Plugin-System
1. Dez 2009, 16:19
Hallo,
Ich stehe vor der Herausforderung ein robustes, modulares System zu Programmieren und möchte gerne eine Diskussion anregen, welches die beste Lösung sein könnte.
Das System soll aus einem Hauptprogramm und verschiedenen Modulen bestehen, die man zur Laufzeit einbinden, starten, stoppen oder auch wieder auskoppeln kann. Eigentlich ein ganz simples Plugin-System...
Das Problem dabei ist, dass ein klassisches Plugin-System mit DLLs funktioniert, die Funktionalität die diese bereitstellen jedoch im gleichen Prozess wie das Hauptprogramm läuft. Das heisst eine einziger Bug in einer der Modul-DLLs kann unter umständen den ganzen Prozess zum Absturz bringen.
Eine mögliche Lösung wäre es, die Module als separate Prozesse zu erstellen. Das Problem dann ist allerdings die Kommunikation zwischen Modul und Hauptprogramm. Wenn also z.B. das Hauptprogramm Verbindungen zur Datenbank aufrecht erhält und ein Modul eine Datenbankabfrage machen möchte, dann hat dieses ja gar keinen Zugriff auf die Verbindungen, da diese sich ja in einem anderen Prozess befinden. Eine entsprechende Schnittstelle zu Programmieren könnte allerdings recht aufwendig sein.
Ich komme irgendwie auf keinen grünen Zweig. Entweder ich löse das mit DLLs und habe ein potentiell unstabiles System oder ich mache es mit verschiedenen Prozessen und muss eine aufwändige Interprozesskommunikation programmieren.
Hat jemand Ideen dazu?
|