leandroJapa
(usa Debian)
Enviado em 30/03/2010 - 17:40h
Boa tarde galera,tenho conhecimentos básicos sobre sockets e não consigo avançar no trabalho.Conheço os fundamentos sobre Bind,Listen,COnnect e accept,mas estou empacado.Vou passar a descrição dele aqui, espero que me ajudem pois ando desesperado.Muito Obrigado!!
.Esse projeto trata-se de uma aplicação distribuída onde um servidor tem a capacidade de solicitar aos clientes a ele conectados a execução de uma aplicação.
O servidor deve oferecer um “console” que permita ao administrador executar os seguintes comandos:
· List: Mostra todos os clientes conectados ao servidor.
· Execute <cliente> <aplicação>: Envia uma requisição ao <cliente> para que ele execute a
<aplicação>. O <cliente> é identificado por seu endereço IP e a <aplicação> pelo seu endereço
no sistema de arquivos do <cliente>.
· Show <cliente>: Mostra ao usuário todos os processos (requisitados pelo servidor) que estão
em execução no <cliente>. Para cada processo listado devem ser apresentados os percentuais
de uso de memória e CPU como também o PID (process ID) do processo.
· Kill <cliente> <pid>: Finaliza a execução do processo identificado por <pid> no <cliente>.
Características de Implementação
O servidor deve ser implementado de maneira que quando os comandos Execute e Kill forem
executados, a comunicação (síncrona) entre cliente e servidor ocorra por meio de uma conexão TCP/IP.
Quando um comando Execute for executado por um cliente é preciso que seja feito uso da primitiva
fork() para carregar o processo desejado. Após isso, deve ser retornado ao servidor o PID desse novo processo. Em uma requisição Kill o cliente deve finalizar a execução do processo identificado, também por meio da primitiva apropriada para tal função (veja exemplo no aula-rede). Deve ser retornada ao servidor uma mensagem identificando o sucesso ou falha na execução.As aplicações clientes devem enviar periodicamente para o servidor uma mensagem assíncrona (utilizando o protocolo UDP/IP) referente a cada processo executado por meio de requisição do usuário. Essa mensagem deve conter os percentuais de uso de CPU e memória do processo. Dessa forma, quando o usuário executar o comando “Show <cliente>” todas essas informações já estarão no servidor, dispensando a
comunicação com o cliente.Com o objetivo de garantir o correto processamento dos dados é preciso realizar a criação de um protocolo de aplicação (conforme visto em sala de aula) para realizar o tratamento do stream de dados do protocolo TCP.