Estrutura de Sistema Cliente/Servidor

6 respostas
java
Pedro_Henrique6

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!

6 Respostas

Lucas_Camara

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?

Pedro_Henrique6

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.

Lucas_Camara

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

Pedro_Henrique6

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

Lucas_Camara

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.

Pedro_Henrique6

Show Lucas!
Vou desenrolar aqui.

Valeu cara, Abraços

Criado 14 de agosto de 2020
Ultima resposta 14 de ago. de 2020
Respostas 6
Participantes 2