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.
[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).
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.
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.
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.