[quote=ezaack][quote=drsmachado]A primeira coisa a fazer é distribuir teu software em várias partes. Isso fará com que você tenha partes distintas que podem ser atualizadas de forma independente.
A segunda é definir uma estratégia de atualização (lembrando que você deve considerar os riscos e permitir que um “downgrade” seja possível).[/quote]
Comecei a desenvolver um atualizador que segue mais ou menos esse principio, mas ainda estou bem no inicio. No caso optei com gerar um rash de todos os arquivos do sistema(jar, executaveis, bancos embarcados, etc), e armazar esse rash em um xml que mapeia a localização dos arquivos. Então, quando o usuário iniciar o programa ele starta o atualizador primeiro, semelhante um cliente de MMO por exemplo. Se houver internet ele vai baixar o xml de um ftp, e comprar os rashs. Os que estiverem diferentes ele faz o download do respectivo arquivo, verifica se esta ok(não corrompeu), substitui o antigo e atualiza o xml. Então o atualizador starta o sistema ja atualizado e fecha.
Uma vez iniciado o sistema verificará se existe atualização do atualizador, num processo parecido.
Se alguem tiver dicas para facilitar o desenvolvimento, ou achar que não é uma boa estratégia, por favor, contribua =D
Grato a todos,
Diego[/quote]
Somente se atente se o software foi iniciado com os jars atualizáveis no classpath. Se for, a atualização pode não surtir efeito porque as classes atualizadas já podem ter sido carregadas antes da atualização.