página web envia e recebe informações de uma máquina na rede do servidor. Dá pra fazer?

Sei que o título ficou meio confuso mas vamos ao problema. Eu tenho uma máquina na rede que controla um módulo (Hardware). E tenho uma máquina servidora onde está um sistema web desenvolvido no Netbeans Visual Web Pack (JSF + Tomcat).

Existe uma página JSP em que vocÊ pode enviar informações ao módulo (localizado na máquina que está na mesma rede do servidor), e receber informações dele. Minha dúvida é como fazer isso ? Fazer com que através da página eu possa trocar informações com uma máquina que está na mesma rede do meu Servidor.

Leia sobre sockets, vai usar principalmente ele. Caso não queira fazer algo tão direto, trabalhar com serviços pode ser uma opção ( mais trabalhosa, eu diria ).
O fluxo seria Browser->Servlet-(via socket)->maquina na mesma rede->hardware. O contrário também seria possível.

Até!

Você teria alguma referência, não à sockets, mas ao uso dele aplicado À Web ?

E obrigado pela resposta.

Qual é a sua dúvida? A Web usa socket (escondido de você, óbvio), mas o que terias que fazer é uma servlet no servidor Web que se conecta via socket na máquina que controla o hardware, e fazer o que quiser, o processo contrário é um pouco mais trabalhoso, vai ter que trabalhar com estados atuais, vai parecer que o fluxo é da maquina do hardware para o servidor, mas na verdade é o servidor Web que vai estar puxando constantemente informações atualizadas ( se você for usar ajax reverso é outra história, mas acho isso avançado demais para a sua pergunta ).

Não vejo qual a diferença de usar isso com ou sem web para precisar de material separado só para essa aplicação.

Até!

É o seguinte… não tenho muita experiêencia com Web, estou desenvolvendo por necessidade desse trabalho, na verdade eu trabalho mais com hardware.

Eu estou desenvolvendo, por conta disso, com o Netbeans Visual Web Pack. A ideia que eu tenho ao usar socket (como eu acho que vaio funcionar, não etou falando que é o certo, mas é como eu entendi até agora): Você tem um servidor socket e um cliente. Eles estabelecem conexão e trocam informações quanto for necessário, até que essa conexão seja fechada certo ?

Ao meu entender, quando eu fizer isso com servlet, que tem um ciclo de vida, essa conexão vai ficar ativa o tempo todo ? Eu vo precisar conectar toda vez que eu tiver que fazer uma requisição ?

Certo, mas essa troca de informações não vai ser aparente para o cliente, uma vez que só ao fim da execução da servlet, o browser vai receber o resultado.

[quote=rock-skull]…
Ao meu entender, quando eu fizer isso com servlet, que tem um ciclo de vida, essa conexão vai ficar ativa o tempo todo ? Eu vo precisar conectar toda vez que eu tiver que fazer uma requisição ?[/quote]
Uma requisição faz uma chamada a servlet e cada servlet deveria fazer uma conexão com o hardware, mas tens como minizar esse mundaréu de criar/fechar socket, só que aí é um pouco mais avançado, terias que trabalhar com filas e servidores de mensagem, coisa que demora um pouco até entender.

Bons estudos!

Até!

Certo.

Assim, teria então como eu criar essa conexão em separado e passar pro meu site ? Tipo, criar uma aplicação java separada que faça essa conexão e essa aplicaçã (localizada no servidor) passar as informações pra esse sistema WEB.

Porque o ideal era que essa conexão entre a máquina do módulo e a máquna servidora fosse permanente, durasse, um dia inteiro por exemplo.

Explicando: O computador que tem o módulo tem que saber se a conexão está ativa, porque se o servidor for desligado ou houver algum erro, a máquina em que está o modulo não vai saber (ou vai?). A não ser que eu fizesse uma verificação de tempos em tempo (estilo um ping-pong do mIRC) certo ? (Ou tô falando nada com nada ?)

E desculpa tá pentelhando assim é que com pesquisa eu ainda não achei a solução pra isso.

[quote=rock-skull]Certo.

Assim, teria então como eu criar essa conexão em separado e passar pro meu site ? Tipo, criar uma aplicação java separada que faça essa conexão e essa aplicaçã (localizada no servidor) passar as informações pra esse sistema WEB.
[/quote]
Tem, aí você se conectaria a essa aplicação e depois a última conectaria a outra máquina, mas para resolver alguns problemas de concorrência, terias que estudar um pouco sobre filas.

[quote=rock-skull]…
Porque o ideal era que essa conexão entre a máquina do módulo e a máquna servidora fosse permanente, durasse, um dia inteiro por exemplo.

Explicando: O computador que tem o módulo tem que saber se a conexão está ativa, porque se o servidor for desligado ou houver algum erro, a máquina em que está o modulo não vai saber (ou vai?). A não ser que eu fizesse uma verificação de tempos em tempo (estilo um ping-pong do mIRC) certo ? (Ou tô falando nada com nada ?)

E desculpa tá pentelhando assim é que com pesquisa eu ainda não achei a solução pra isso.
[/quote]
A verificação se a conexão está funcionando pode ser parecida com essa que você falou ( de tempos em tempos para evitar time-out ),pois a máquina que recebe o socket não sabe diretamente se alguém fechou a conexão.

Até!