Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    14

    Scambiare informazioni tra server e client

    Salve,
    voglio cimentarmi in una nuova sfida. In pratica vorrei creare un software che faccia periodicamente dei ping, scarichi delle email analizzandone il contenuto e memorizzi il tutto in un database. Nulla di difficile fino a qui.

    La parte un po' più complessa sta nel creare un client che riceva in tempo reale "eventi" dalla parte server di cui sopra, eventi generati in base al tipo di email ricevuta e all'esito dei ping.

    Pensavo di scrivere un file di testo (magari xml) che poi il client legga periodicamente…soluzione semplice ma poco "pulita" a mio avviso o forse è il modo migliore?

    Quello che mi interessa è che gli eventi arrivino in tempo reale a tutti i client (solo un client alla volta può gestire l'evento) e che una volta gestito l'evento venga rispedito al server che procederà poi a memorizzarlo in un database.

    Vi faccio un esempio:
    Ho un router e una serie di ponti radio da monitorare tramite ping. Se uno di questi dispositivi non risponde al ping, il server crea un evento che giunge ai client.
    Successivamente un operatore gestisce l'evento, che quindi deve risultare bloccato per gli altri, chiamando ad esempio il tecnico o il cliente e una volta trattato l'evento questo deve essere rispedito al server che memorizzerà l'evento e come è stato gestito in un database.

    E' una cosa molto complessa che non ho mai provato a fare...quindi prima di fare cavolate mi piacerebbe sentire la vostra opinione sulla soluzione migliore.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Puoi mantenere una lista di Client all'interno del Server. Dove parli dell'evento che deve restare bloccato per gli altri, non capisco bene che intendi... ma la sincronizzazione dovrebbe fare al caso tuo. Puoi evitare che un thread (un client) acceda ad una risorsa (ad esempio un metodo).

    L'invio avviene praticamente in tempo reale.

  3. #3
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    Dal server memorizzerei le anomalie con i relativi dati in una coda di "task", senza preoccuparmi di gestire i client. I client devono limitarsi a scaricare regolarmente un task dalla coda, ovviamente non arbitrariamente ma attraverso una classe (taskManager) che ne gestisce priorità e concorrenza, richiamabile da remoto (web service, semplice richiesta http, ajax se i client sono in html). Terminato il lavoro inviano il task completato al server.

    in questo modo non è necessario che il server gestisca la disponibilità dei client (se un client è occupato semplicemente non fa il pool e la coda resta disponibile per gli altri client), e poiche questi ultimi eseguono un pool regolarmente, non c'è bisogno di eventi remoti...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.