Estou com uma dúvida: como eu faço para atualizar a versão de um programa (o jar dele e talvez alguns jaspers) remotamente?
O que eu quero é não precisar ir de máquina em máquina sobrescrevendo os arquivos, mesmo porque haverá máquinas utilizando o programa em outros estados…
Bom, primeiramente você terá que deixar as atualizações disponíveis em um servidor na internet (pode ser um ftp, ssh ou até mesmo uma aplicação) , no seu programa você pode fazer uma opçõa para atualizar o software, que se conecta nesse servidor par aver se há novas atualizações!
Uma vez eu fiz uma parada semelhante a isso.
Conectava ao servidor baixava um arquivo xml com a versão do servidor, comparava com a versão instalada e perguntava se queria atualizar.
Cuidado com o Java Web Start. Se for um sistema usado por empresas que começam a trabalhar todos na mesma hora, quando você colocar no servidor uma atualização, TODOS tentarão baixar ao mesmo tempo e seu servidor abre o bico.
Para evitar o problema citado em (1), pode ser que seja preciso montar um esquema em que a própria aplicação controle quando e como buscará a atualização.
No caso da atualização exigir baixar outros arquivos do servidor além do proprio jar, a aplicação usando Java Web Start precisará ser assinada para usar o esquema descrito em http://www.javaworld.com/javatips/jw-javatip19.html
Os que me conhecem devem estar estranhando o fato de eu responder sobre este sistema à moda antiga confinado em uma rede local, coisa que para mim não faz nenhum sentido depois que a Sun lançou os servlets por volta do ano 2000. Eu também estranho que ainda hoje exista algum sistema assim.
[quote=Luca]1) Cuidado com o Java Web Start. Se for um sistema usado por empresas que começam a trabalhar todos na mesma hora, quando você colocar no servidor uma atualização, TODOS tentarão baixar ao mesmo tempo e seu servidor abre o bico.
[/quote]
Pior, seria uma boa se o Java Web Start implementasse bit torrent!
Concordo, mas tem situações onde é necessário. Já participei de projetos que usa servlets e tals num server, mas tem a view implementada em swing ao invés de html. Agora, se me perguntar pq usaram swing ao invés de um html… dai vou ficar devendo essa resposta!
O fato da camada de apresentação ser em Swing tem a vantagem de poder usar periféricos como impressoras paralelas ou seriais (fiscais ou não), leitoras de cartão, leitoras de cheque, balanças e tudo o mais que com HTML não é possível.
E o fato de usar servlets ao invés de confinar na rede local, entre outras múltiplas vantagens e de permitir acessar a aplicação de qualquer lugar, possibilita ter uma única base de dados mesmo que a empresa tenha filiais, representantes ou vendedores na rua acessando via celular com Android (ou J2ME para os mais masoquistas)