Dúvida CLiente-Servidor [RESOLVIDO]

Boa tarde,

Tenho a seguinte dúvida.
Como criar uma aplicação que verifica se a versão do programa é a mesma do servidor e se não atualizar o programa com os mesmos arquivos do servidor.
Por exemplo: Tenho uma aplicação, que no caso só preciso atualizar o arquivo .JAR . Gostaria que essa aplicação verificasse se é a mesma do servidor
e se não copiasse o mesmo arquivo .JAR do servidor para a máquina.

Não sei me expliquei direito, mas é isso.

Obrigado.

Pesquisa sobre Java WebStart .

Mais alguma idéia?
Escutei algo sobre Sockets.
Alguém teria um exemplo de como poderia ser feito isso?

[quote=vini.roggia]Mais alguma idéia?
Escutei algo sobre Sockets.
Alguém teria um exemplo de como poderia ser feito isso?[/quote]

Quando você fala em Sockets tu entra no parão de comunicação e não no modelo como o software é construido e atualizado como descrito no seu problema !!!

Sua dúvida é com a atualização do sistema em manter o mesmo atualizado sem se preocupar com isso ou a comunicação que irá se dar entre a maquina e o servidor ?

pelo que entendi no enunciado do problema seria a atualização do seu sistema então socket não seria a melhor opção (seria possível mas muito trabalhoso).

Olá vini.roggia, bom dia

Vi um colega fazer um sistema de atualização via socket, ele verificava o md5 do arquivo do servidor, caso fosse diferente ele fazia o download e substituia o(s) arquivo(s).

Concordo com o overkill, acho que deve dar uma olhada do Java Web Start.
Fiz um pequeno sistema e tem funcionado muito bem com JWS.

Ambos os assuntos tem artigos no GUJ:
Sockets: http://www.guj.com.br/article.show.logic?id=126
Java Web Start: http://www.guj.com.br/article.show.logic?id=160

vini.roggia

Indo direto ao ponto: Não entendi naaaaaaaaaaaaaaaada do que vc escreveu!

Qual é a arquitetura?

Web?
Client x Server? —>> Preocupado com o que está sendo executado no servidor? Tem como explicar isto?

flws

Bom dia Fantomas e todos interessados,

O que eu quero é criar um “método” que verifique se o arquivo .Jar que estou executando na máquina cliente
é a mesma instalada na máquina servidor. Se sim, não faz nada, caso seja diferente ele copia o arquivo .Jar
da máquina servidor para a sua máquina e executa a “nova” versão atualizada.
A idéia é simples, verifica se esta sendo executada a “versão” atualizada, caso não copiar o novo .Jar do servidor.
Pensei tbm na idéia de uma classe que copiasse esse arquivo .Jar do servidor para todas máquinas clientes
conectadas no momento, mas não sei se isto é possível.
O meu objetivo é a cada versão nova que eu lançar do sistema eu não ter que instalar de máquina em máquina.

Como já foi dito em posts acima, seu problema estará resolvido se você trabalhar com Java Web Start.

[]'s.

Se em vez de usar o Java Web Start você tentar sua própria solução, prepare-se para enfrentar uma boa dor de cabeça. Digo isso porque eu participei de um projeto em que há essa tal atualização, mas não se usou o Java Web Start porque naquela época o JWS era muito “bugado”. Hoje ele está funcionando bem (exceto se você tentar usar uma versão velha do Java, tipo 1.4 ou 5.0). Essa atualização mereceu um subprojeto, porque ela é extremamente complicada, conforme você mesmo deve ter percebido ao descrever sua idéia.

[quote=thingol]Se em vez de usar o Java Web Start você tentar sua própria solução, prepare-se para enfrentar uma boa dor de cabeça. Digo isso porque eu participei de um projeto em que há essa tal atualização, mas não se usou o Java Web Start porque naquela época o JWS era muito “bugado”. Hoje ele está funcionando bem (exceto se você tentar usar uma versão velha do Java, tipo 1.4 ou 5.0). Essa atualização mereceu um subprojeto, porque ela é extremamente complicada, conforme você mesmo deve ter percebido ao descrever sua idéia.
[/quote]

thingol vc esta certo só consegui utilizar direito o web start com as ultimas versões do java, e por sinal esta muito boa a implementacao do web start sem falhas … algo bem diferente a um tempo atraz.

[quote=vini.roggia]Bom dia Fantomas e todos interessados,

O que eu quero é criar um “método” que verifique se o arquivo .Jar que estou executando na máquina cliente
é a mesma instalada na máquina servidor. Se sim, não faz nada, caso seja diferente ele copia o arquivo .Jar
da máquina servidor para a sua máquina e executa a “nova” versão atualizada.
A idéia é simples, verifica se esta sendo executada a “versão” atualizada, caso não copiar o novo .Jar do servidor.
Pensei tbm na idéia de uma classe que copiasse esse arquivo .Jar do servidor para todas máquinas clientes
conectadas no momento, mas não sei se isto é possível.
O meu objetivo é a cada versão nova que eu lançar do sistema eu não ter que instalar de máquina em máquina.
[/quote]

É isso ai, também estou de acordo com o que já foi dito sobre o Java Web Start; certamente é a melhor opção, além de fazer exatamente o que vc está precisando ele oferece mais coisas.

A principio pode parecer um pouco complicado e chato de utilizar, mas vale a pena; no começo dá um pouquinho de trabalho (para quem está aprendendo) mas depois de tudo configurado vc irá mexer em quase nada / ou em nada para atualizar suas estações.

flws