PDA

Visualizza la versione completa : Servizio di windows con controllo


catoblepa80
29-12-2008, 14:58
Salve, sto lavorando da un po su un software che gira sotto windows come servizio.
Il servizio funziona perfettamente e fa tutto cio che deve fare ( un filesystemwatcher).

il mio servizio fondamentalmente si occupa di tracciare le modifiche in una cartella con l'oggetto filesystemwatcher, e lo fa perfettamente,. scrivendo log, inviando email etc.

Il mio problema che ora devo creare un'applicazione "CLIENT" che possa vedere in tempo reale cosa accade nel servizio, una specie di MONITOR.

come posso fare? devo fare una comunicazione via tcp ip? esistono delle api gia fatte per effettuare queste operazioni "standard" con i servizi?

Grazie

oregon
29-12-2008, 15:10
Dipende molto da cosa intendi con

"vedere in tempo reale cosa accade nel servizio"

In ogni caso, la comunicazione via socket e' la soluzione corretta ... non c'e' nulla di standard o pronto ... devi implementare la parte "server" nel servizio e fare in modo che risponda opportunamente alle richieste del tuo client ...

catoblepa80
29-12-2008, 15:20
immaginavo fosse quello il sistema, scartabellando su internet comunque ho trovato altre 2 soluzioni al problema, un po piu complesse forse...

1) utilizzare il REMOTING per serializzare i miei oggetti e passarli direttamente allo stream tcp ip in modo da non dover scrivere un protocollo di messaggistica.

2) utilizzare la condivisione di un blocco di memoria (chiaramente questo funziona solo se l'applicazione client risiede nello stesso computer dove risiede il server) ma non so neanche se si puo fare in c# date le restrizioni sul memory management.

cosa ne pensi? la prima soluzione mi sembra abbastanza buona, in questo modo potrei anche utilizzare il client da una postazione remota.

oregon
29-12-2008, 15:38
Se devi utilizzare il client da remoto, la condivisione della memoria non ha senso.

Non vedo enormi vantaggi nella prima soluzione rispetto ad una soluzione personalizzata di scambio dati. Utilizzando i socket, a prescindere dal tipo di protocollo usato, e' ovvio che puoi utilizzare il client da remoto.

catoblepa80
29-12-2008, 16:22
si si infatti sono daccordo.

la soluzione che ho portato io fai conto... se devo trasmettere un dataset... oppure ho bisogno di trasmettere un oggetto da me creato. in tcp standard mi devo scrivere tutte le funzioni per la trasmissione su socket, invece con il mio sistema passo l'oggetto al serializzatore e fa tutto da solo.

Loading