AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Robustes Plugin-System

Ein Thema von ele · begonnen am 1. Dez 2009 · letzter Beitrag vom 2. Dez 2009
 
ele

Registriert seit: 18. Feb 2009
129 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Robustes Plugin-System

  Alt 2. Dez 2009, 10:49
Danke für eure Antworten.

Die Performance spielt eigentlich eine zweitrangige Ordnung. Das heisst, natürlich lege ich Wert darauf, dass das ganze möglichst performant ist, allerdings ist es wichtiger, dass das System überhaupt mehrere duzend Plugins geladen haben kann. Die einzelnen Plugins müssen nicht alle gleichzeitig aktiv sein. Ich habe einen Pool von Worker-Threads vorgesehen und pro Thread (bzw. Arbeitschritt) wäre nur jeweils ein Modul aktiv. Wichtig dabei ist, dass die Kommunikation sowohl von Hauptprogramm zu Modul (Modul soll eine bestimmte aufgabe erledigen für welche es sich registriert hat), als auch von Modul zu Hauptprogramm (um gewisse Statusinformationen abzufragen oder Datenbankabfragen zu tätigen).

Die DLL-Lösung wäre von der Kommunikation her die ideale Lösung, allerdings ist sie nicht robust. In einem anderen Plugin-System, dass wir verwenden, hat einer der Entwickler einen Rekursionsfehler programmiert, was zu einem Stackoverflow geführt hat, der die ganze Applikation zum Absturz gebracht hat (Das Programm wurde ohne Fehlermeldung abgebrochen). Und so etwas darf einfach nicht passieren. Wenn etwas abstürzt, so soll es nur das betroffene Modul sein.

Die Lösung mit getrennten Prozessen und WM_COPYDATA klingt einfach, aber damit laufe ich Gefahr, dass wenn sich sich im laufe der Zeit die Schnittstelle ändert, das Hauptprogramm mit einem inkompatiblen Modul betrieben wird.

Die Lösung mit getrennten Prozessen und COM/COM+ klingt auch sehr interessant. Ich wusste zwar von der existenz von COM, wäre aber nie auf die Idee gekommen das für ein eigenes Programm einzusetzen. Ich glaube ich werde mich etwas in dieses Gebiet einarbeiten.

Die MAF-Komponenten kenne ich nicht, möglicherweise können sie mir einen Haufen Arbeit sparen. Dazu muss ich mir aber das ganze genauer ansehen.

Mein Favorit ist bisher die Lösung mit getrennten Prozessen und COM. Jetzt muss ich mal ein Grundgerüst bauen und sehen wo die schwierigkeiten liegen.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:17 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