Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Config Programm für Service (https://www.delphipraxis.net/96654-config-programm-fuer-service.html)

Gruber_Hans_12345 28. Jul 2007 15:03


Config Programm für Service
 
Hallo

Ich bin dabei einige von den Programmen, die am Server laufen (im moment als normale Anwendungen und per Tray Icon) als Service zu umzubasteln.
Für das mitloggen von Infos, habe ich mir schon was eigenes erstellt, das funkt auch alles ganz gut, mein Problem ist jetzt noch :

wie macht man es am besten, das man den service konfigurieren kann?
welche ansatze sind am besten?

1.) ich habe in der anwedung einige config sachen, die ich auch während der laufzeit umstellen möchte?
2.) Einer meiner service muß zb die verbindung zu 30 zusätzlichen geräten herstellen, von jedem dieser Geräte möchte ich dann zur laufzeit den status wissen, auch ein paar einstellungen umändern, das gerät neu booten usw.

Wie transferiere ich solche daten am besten?
Als Anwendung ist es ja kein problem, da verwende ich einfach die interne datenstruktur als Daten für den VirtualTree, und voila alles funkt.

Aber jetzt möchte ich das ganze mit einem externen programm erledigen, und muß nun per Pipe oder per TCP/IP die Daten transferieren.

Gibt es da vielleicht irgendein Framework oder Tools, das mir da einiges an Arbeit abnimmt?
Da das ja sehr viel schreibarbeit wird ... am server die Daten in protionen verpacken, per pipe oder tcpip versenden, auf der client seite das ganze wieder in strukturen packen usw....

hoffe ihr könnt mir da etwas weiterhelfen ...

marabu 28. Jul 2007 15:42

Re: Config Programm für Service
 
Hallo Hans,

ich würde keine direkte Kommunikation mit dem Dienst aufbauen. Ich würde die Konfigurationsdaten in der Registry oder einer Steuerdatei bereit stellen und der Dienst kann diese Daten beim Ereignis OnContinue() erneut einlesen. Dein externes Programm kann den Dienst über den Service Control Manager kurz anhalten und wieder fortsetzen, damit das Ereignis ausgelöst wird.

Grüße vom marabu

Christian Seehase 28. Jul 2007 15:52

Re: Config Programm für Service
 
Moin Hans,

ich habe zur Zeit einen Dienst laufen, der einmal pro Minute etwas prüft, und bei dem sich Clients per Eintrag in einer Konfigurationsdatei (reine Textdatei) anmelden, um ggf. mit Informationen versorgt zu werden. (also ähnlich wie Marabu es vorschlägt).

Gruber_Hans_12345 28. Jul 2007 17:33

Re: Config Programm für Service
 
also für die konfigurationen würde es so passen

allerdings für die online infos tu ich mir so etwas schwer ... damit ich den status der externen Geräte anzeige, und diesen online im konfigurator/client (oder wie auch immer man dieses tool nennen will)

da muß ich irgendwie die daten vom service -> client und auch umgekehrt bringen

eine idee war, die daten alle in klassen verpacken (mit {$M+} ) und dann ein framework, das published Properties abfragen und setzen kann ... so müsste man eventuell einen großteil des austausches automatisieren können ...

Christian Seehase 28. Jul 2007 18:20

Re: Config Programm für Service
 
Moin Hans,

also ich frage mit dem Dienst regelmässig Logfiles und Postfächer mit Logdaten ab.
Die Clients erhalten dann die Rückmeldung ebenfalls in Form von Textdateien, die sie regelmässig prüfen, und entsprechende Werte anzeigen.
Will man nun bestimmte Sachen nicht mehr überwacht haben, so bekommt der Dienst dies, vereinfacht gesagt, in die Konfiguration geschrieben, und kann es beim nächsten Durchlauf berücksichtigen.
Bei Dir müssten dann eben die Clients ihren Status hinterlegen, so dass der Dienst entsprechend handeln kann.

(Die Basiskonfiguration erfolgte bei mir mit Notepad, da ich keine Zeit hatte noch ein Konfigurationstool zu schreiben :mrgreen:)

Zitat:

Zitat von Gruber_Hans_12345
da muß ich irgendwie die daten vom service -> client und auch umgekehrt bringen

Wenn Du ein Verzeichnis festlegst, Dir passende Konventionen für Dateinamen einfallen lässt, könnte bei Dir die Kommunikation doch auch einfach über Textdateien stattfinden.

Gruber_Hans_12345 30. Jul 2007 08:23

Re: Config Programm für Service
 
hmmmm, also für konfiguration und log dateien kann ich es mir so ganz gut vorstellen

aber wenn ich in echtzeit agieren können muß - dann kann ich es mir nicht vorstellen, das das vernünftig funktioniert, wenn man jedesmal auf das pollen des servers und des client warten muß. (Abgesehen davon - nicht falsch verstehen - ist es meiner Meinung nach eine sehr veraltete Technologie den Datenaustausch über Kommunikationsfiles zu machen)

gibt es niergend wo ein framework, das klassen, Listen von Klassen (also published properties und published procedures ... ) und so über TCP/IP oder Pipes überträgt, ohne das man ne menge zusätzlicher funktionen dafür bauen muß?

Christian Seehase 30. Jul 2007 10:31

Re: Config Programm für Service
 
Moin Hans,

Zitat:

Zitat von Gruber_Hans_12345
Abgesehen davon - nicht falsch verstehen - ist es meiner Meinung nach eine sehr veraltete Technologie den Datenaustausch über Kommunikationsfiles zu machen

Na ja, einigen wir uns mal auf "Alte Technologie".
Von veraltet möchte ich da nicht reden ;-)

Übrigens ginge das wohl auch auf diesem Wege in Echtzeit.
Du müsstest nur die Verzeichnisse per ReadDirectoryChangesW überwachen.
Dann wirst Du bei Änderungen sofort informiert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:58 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