ho bisogno di creare un sistema composto da 2 componenti:server push vs pull client per Agent-topologia server
un singolo server che di processo e memorizza i dati. Invia periodicamente aggiornamenti agli agenti
Più agenti installati su endpoint remoti. Questi raccolgono i dati in (spesso, ma non sempre) le operazioni a lungo in esecuzione, e questi dati ha bisogno per arrivare al server
sto usando C# .NET, e idealmente io voglio usare uno standard di comunicazione compliant metodo (vale a dire uno che potrebbe teoricamente funzionare anche con Java, dato che potremmo anche usare gli agenti Java in futuro). Ci sono alternative ai servizi web? Quali sono le mie opzioni?
Il mio modo di vedere Ho 3 opzioni utilizzando i servizi web, e hanno fatto le seguenti osservazioni:
- pull client
- Non aprire la porta richiesta presso l'agente, in quanto agisce come un cliente
- avrebbe bisogno di interrogare il server per gli aggiornamenti
- server push
- Aprire la porta presso l'agente, in quanto agisce come un server di
- Server deve interrogare gli agenti per i risultati
- ibrida
- Aprire la porta presso l'agente, in quanto agisce come sia un client e un server
- Nessun polling; Server spinge gli aggiornamenti quando necessario, client invia i risultati quando sono disponibili
Il 'ibrido' (in cui gli agenti sono entrambi client e del server sembra la scelta più ovvia - ma questa applicazione sarà in genere essere installato in ambienti aziendali e governativi, e sono preoccupato che possono avere un problema con l'apertura di una porta presso l'agente. sono soffermarsi troppo su questo?
ci sono altri vantaggi e gli svantaggi che ho perso?
Oh sì, sulla porta: penso che la maggior parte degli amministratori di rete realizzino che le comunicazioni di rete provenienti da entrambi gli endpoint portano lo stesso quantità di rischio e consentire l'apertura di porti sugli agenti se questo porta alle architetture più pulite. Basta minacciare di canalizzare tutto attraverso la porta 80, e penso che capiranno che avere i propri porti è un vantaggio. :) – sarnold
Heh, per quanto mi piacerebbe, non penso che il NIST sarebbe troppo felice se lo dicessi :) – Cocowalla
Inoltre, hai solo un nodo che devi costantemente "alzare" per il sistema per continuare a lavorare È più facile ottenere un dead-pull client nel loop una volta che è stato risolto piuttosto che gestire un client push morto. –