AGB  ·  Datenschutz  ·  Impressum  







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

Service und Interprozesskommunikation

Ein Thema von Union · begonnen am 23. Mär 2005 · letzter Beitrag vom 23. Mär 2005
Antwort Antwort
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#1

Service und Interprozesskommunikation

  Alt 23. Mär 2005, 09:35
Ich will einen Service erstellen, der durch ein zugehöriges Programm (Agent) gesteuert werden soll.
Kommunikation von Dienst <> VCL-Anwendung hat mir da leider auch nicht weitergeholfen. Es soll folgendes implementiert werden:
  • Der Service führt zeitgesteuert bestimmte Operationen aus
  • Wenn der Service eine Aktion durchführt, soll dies im Agent angezeigt werden (Memo, Listbox)
  • Die Aktionen des Service sollen auch durch den Agent manuell angestossen werden können
  • Wenn der Service gerade eine Aktion ausführt, soll diese zum gleichen Zeitpunkt nicht vom Agent nochmals gestartet werden können.
  • Steuerung über Registry oder Files wie hier jasocul verbietet sich wegen restriktiver Benutzerberechtigungen
Wer hilft?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Service und Interprozesskommunikation

  Alt 23. Mär 2005, 09:38
Ich würde Pipes oder MMFs benutzen. Da der Link nicht funktionieret, weiß ich nicht, was du dazu schon gefunden hast.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Service und Interprozesskommunikation

  Alt 23. Mär 2005, 09:41
Zitat von Luckie:
Ich würde Pipes oder MMFs benutzen. Da der Link nicht funktionieret, weiß ich nicht, was du dazu schon gefunden hast.
Komisch, bei mir funktioniert der Link: www.jasocul.de

Er hat dort eine Service-Anwendung mit einem entsprechenden Frontend erstellt, mit dem eine Steuerung möglich ist. Aber er verwendet für die Kommunikation und Konfiguration eine "Auftragsdatei" und Registry-Einträge. In meinem Fall kann es aber sein, daß der Benutzer, der sich den Status ansieht oder den Service bedient, weder Schreibzugriff auf alle Bereiche der Registry hat, noch Zugriffsrechte auf das Anwendungsverzeichnis des Service.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Service und Interprozesskommunikation

  Alt 23. Mär 2005, 09:43
Ich meinte den ersten Link: http://www.delphipraxis.net/post329947.htm
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Service und Interprozesskommunikation

  Alt 23. Mär 2005, 09:50
Zitat von Luckie:
Ich meinte den ersten Link: http://www.delphipraxis.net/post329947.htm
Sorry, der richtige Link ist http://www.delphipraxis.net/internal...ct.php?t=48550
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Service und Interprozesskommunikation

  Alt 23. Mär 2005, 14:55
Was gefällt dir jetzt nicht an Pipes oder MMfs?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Service und Interprozesskommunikation

  Alt 23. Mär 2005, 16:31
Zitat von Luckie:
Was gefällt dir jetzt nicht an Pipes oder MMfs?
Bei MMFs gibt es einen herben Aufwand um die Berechtigungen aus dem Systemaccount auf die Useraccounts zu übertragen mit dem TSecurityDescriptor. Da ist ja der Aufbau der Struktur und der Berechtigungen größer als mein ganzes Programm
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#8

Re: Service und Interprozesskommunikation

  Alt 23. Mär 2005, 16:50
Den Aufwand wirst Du auch mit Events haben (mit eben jenen würde ich das Problem lösen, da keine Daten übertragen werden müssen).
Die Erzeugung eines 'Vollzugriff's-ACLs ist relativ trivial und läßt sich bequem in eine Funktion packen.

ps: nebenbei, bei globalen Synchronisations-Objekten sollte man berücksichtigen, dass der Service unter Umständen auf einem Terminal-Server (oder Windows XP mit 'schneller Benutzerumschaltung') mit mehreren Sessions läuft. Deswegen würde ich von Steurungsdateien und der Registry abraten (oder eine Session-ID in den Objekt-Namen einfügen).
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Service und Interprozesskommunikation

  Alt 23. Mär 2005, 20:57
Zitat von NicoDE:
Den Aufwand wirst Du auch mit Events haben (mit eben jenen würde ich das Problem lösen, da keine Daten übertragen werden müssen).
Die Erzeugung eines 'Vollzugriff's-ACLs ist relativ trivial und läßt sich bequem in eine Funktion packen.

ps: nebenbei, bei globalen Synchronisations-Objekten sollte man berücksichtigen, dass der Service unter Umständen auf einem Terminal-Server (oder Windows XP mit 'schneller Benutzerumschaltung') mit mehreren Sessions läuft. Deswegen würde ich von Steurungsdateien und der Registry abraten (oder eine Session-ID in den Objekt-Namen einfügen).
Leider müssen doch Daten übertragen werden: Wenn der Service eine Aktion durchführt, soll dies im Agent angezeigt werden (Memo, Listbox). Problematisch wird es allerdings dann, wenn ich will, dass garantiert alle Protokoll-Einträge im Client angezigt werden. Dann muss ich nämlich im Service a) Feststellen ob überhaupt ein Client läuft und b) wenn ja, darauf warten, dass in der Struktur mitgeteilt wird (evtl. durch Löschen des Strings) dass das Abholen erfolgt ist. Ich bräuchte also für diese Nachrichtenübermittlung im optimalen Fall einen eigenen Thread mit eigenem Zeilen-Puffer, damit der Haupt-Service nicht anhält, weil er auf den Client warten muss. Vielleicht ist es besser, wenn ich einen IDTcpServer/Client dafür verwende mit entsprechend konfigurierten Commands. Dann ist das einzige was passieren kann, dass der Cleint beim Start einen Connection-Timeout erhält, wenn der Service nicht gestartet ist.

Und genau, das Teil soll später auf einem W2003 Server laufen, wobei auch Terminal Server für die Fernbedienung oder gelegentliche Kontrolle über ein Admin-Account erfolgen soll.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Antwort Antwort


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:04 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