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
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
675 Beiträge
 
Delphi 10.4 Sydney
 
#11

Re: Robustes Plugin-System

  Alt 2. Dez 2009, 19:08
Zitat von ele:
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.
Die MAF Komponenten wrappen (unter anderem) das ganze DLL Verwaltungszeugs zum laden/entladen, funktionsmappen in Komponenten, die einfach und ziemlich code frei zu nutzen sind. Sie stellen ausserdem die möglichkeit zur Verfügung, code dynamisch zu ändern (also in Delphi gesprochen zw. begin und end einer Methode code einfügen, ausschneiden oder ersetzen) während das Programm läuft und ohne die Module neu zu übersetzen.

Allerdings kann ich Dein Problem des schlechten Programmierers (der einen stack-oberflow produziert) nicht lösen mit meinen Komponenten. Und meiner Meinung nach gehst Du das ganze Problem von der falschen Seite an : Du willst Probleme unterdrücken oder besser gesagt verschieben, so dass sie das Programm nicht beeinträchtigen.
Ich würde eher in eine gute Fehler-Analyse investieren, da gibt es verschiedene Tools wie SmartInspect von Gurock Software, die Dir helfen können, Dein Programm ablauf zu tracken und Fehler schnell zu erkennen.

Auch die MAF Componenten haben einen Tracer, der sprünge in unter-Funktionen und variablen etc. loggen kann, allerdings nur rudimentär eingebaut, da es nicht die Aufgabe der Komponenten ist.
  Mit Zitat antworten Zitat
ele

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

Re: Robustes Plugin-System

  Alt 2. Dez 2009, 19:29
Der Entwickler der den Fehler programmiert hat, ist nicht mehr bei uns angestellt.

Solange ich hier arbeite kann ich schon sicherstellen, dass die Software gewisse Tests besteht. Allerdings kann man nicht immer alle Fälle Testen und vorallem möchte ich sicherstellen, das auch wenn ein Plugin von einem externen Entwickler kommt, dieses nicht das ganze System beeinträchtigen kann. Ausserdem kann man, wenn das Plugin in einem eigenen Prozess abläuft den Prozess abschiessen und neu starten, falls es sich nach einem bestimmten Timeout nicht meldet. Mach das mal mit einem Thread der gerade in einer DLL steckt. (Es sei gesagt: Das ist nicht zu empfehlen)

Ich kann die Software immer noch so erweitern, dass es auch Plugin-Dlls gibt, falls ich für gewisse Aufgaben mehr Performance benötige und eine enge Kopplung bevorzuge. Das habe ich auch schon gemacht und ich weiss wie man das realisieren kann.

Die Schwierigkeit liegt eben darin, dass ich gewisse Aufgaben in andere Prozesse auslagern möchte ohne das Gesamtsystem zu gefährden (Stichwort lose Kopplung). Ursprünglich wollte ich die ganze Kommunikation mit TCP/IP realisieren, aber dort ist der Aufwand gross, weil man

a) alle Funktionsaufrufe serialisieren und deserialisieren muss.
b) wehr viele Verbindungen benötigt. Mindistens eine pro Plugin.
c) wenn das ganze auch noch Multi-Threaded ist noch mehr Verbindungen benötigt oder eine sehr ausgeklügelte duplexfähige Kommunikation benötigt (mit Empfänger-Thread, Sender-Thread und entsprecheden Queues - und das jeweils pro Verbindungsendpunkt)

COM scheint mir im Moment die beste Lösung zu sein.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#13

Re: Robustes Plugin-System

  Alt 2. Dez 2009, 19:55
Zitat von ele:
Ursprünglich wollte ich die ganze Kommunikation mit TCP/IP realisieren,
du könntest doch fertige Schnittstellen verwenden ... in Richtung RPC gibt es doch viele ausgeklügelte Systeme,
wo du dich um die grundsätzliche Verbindungsproblematik nicht kümmern mußt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: Robustes Plugin-System

  Alt 2. Dez 2009, 20:34
Zitat von hanspeter:

Das geht relativ einfach.
Ich fürchte aber, das da das UAC Monster auf der Lauer liegt.
Man kann auch mit LoadTypeLib(Ex) arbeiten. Dadurch würde man nichts installieren/registrieren müssen.
Man kann auch das Interface komplett selber implementieren, siehe dazu hier.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
ele

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

Re: Robustes Plugin-System

  Alt 2. Dez 2009, 22:03
Zitat von himitsu:
Zitat von ele:
Ursprünglich wollte ich die ganze Kommunikation mit TCP/IP realisieren,
du könntest doch fertige Schnittstellen verwenden ... in Richtung RPC gibt es doch viele ausgeklügelte Systeme,
wo du dich um die grundsätzliche Verbindungsproblematik nicht kümmern mußt.
Ich habe mich noch zu wenig mit RPC in Delphi befasst. Gibt es da was brauchbares? Ist das auch Multhithread fähig?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 00:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz