Bom dia a todos,
Vou dar uma breve explicação de como o sistema funcionará.
Consiste em monitorar desempenho de computadores dentro de uma rede afim de ver áreas deficientes de recursos computacionais e fazer um melhor gerenciamento.
Agora sobre os aspectos técnicos, teremos um programinha local em cada maquina para obter as informações e enviar para o servidor. Lembrando que o cliente e servidor devem se manter conectados até que a atividade no cliente seja finalizada.
Alguém tem alguma sugestão/dica de como estruturar, pensando que em média poderia ter em torno de 300 clientes simultâneos?
Agradeço pela atenção!
Eu vejo 2 opções:
- os clientes, após coletarem os dados, envia os dados para o servidor, porém, como podem ter 300 clientes, há o risco de sobrecarga do servidor.
- o servidor perguntar para os clientes se eles tem dados para enviar, e o servidor coletar os dados dos que responderam positivo. Com isso, ele manteria o controle da coleta não causando sobrecarga.
Mas tenho uma dúvida: Esses dados que precisam ser coletados serão feitos periodicamente ou é algo que faz uma vez e pronto?
Esses dados seriam consultados periodicamente, basicamente de hora em hora ou de duas em duas, seria estudado ainda o melhor período.
Achei interessante a segunda opção que você propôs, poderia aprofundar mais sobre ela?
Ou mandar algum artigo que eu possa dar uma estudada.
Já montei dessa forma uma, mas foi para um esquema de mensagens na rede (notificações). Basicamente o servidor manda um broadcast em uma determinada porta perguntando algo. O cliente que estiver escutando essa porta responde.
https://docs.oracle.com/javase/tutorial/networking/datagrams/broadcasting.html
Você acha que da para adapta-lo essa maneira (broadcast) com a proposta do sistema? Eu tenho também um envio de mensagens pela rede, porém informo o ip do cliente que quero enviar.
Nesse caso então logo ao iniciar o cliente se conectaria ao server, o server consultaria essa lista de clientes e requisitava as informações correto?
Obrigado pela atenção
Tava dando uma lida aqui, acho que me equivoquei qdo falei que fiz um esquema semelhante com broadcast. Na verdade, o server realmente guardava o endereço IP dos clientes que fossem iniciados, com isso, o serve fazia a requisição para a lista de IPs e o cliente respondia com os dados.
O broadcast eh somente qdo eu precisava fazer uma parte de notificação mesmo. No seu caso, acho que fazer um broadcast, seria útil para saber quais clientes estão de pé, ou se por acaso o server mudar de endereço, por exemplo.
Show Lucas!
Vou desenrolar aqui.
Valeu cara, Abraços