Pessoal, seguinte, suponho que tenha um sisteminha em Delphi ou Java ou VB. Como eu implementaria um esuqema de atualização deste sistema igual é feito atualização, por exemplo, o Eclipse e programas Anti-Virus ???
O que seria necessário pra implementar isto pro meu sistema ? um WebService ? Socket ? … ?
Alguém teria alguma noção neste assunto pra me esclarecer as idéias ??
Há muito tempo atrás eu fiz isso em um sistema em VB. O esquema era bem simples, onde o executável checava de tempos em tempos um site pré-determinado procurando por versões mais atualizadas do programa. Quando achava uma versão mais atual o esquema era baixar esse executável, salvar com um nome temporário, rodar esse executável temporário, que matava a instância original do programa, se auto-copiava por cima do executável original, executava esse “original” atualizado, que então matava a instância temporária e apagava o executável temporário. Simples, não?
Desde setembro de 2001 que com aplicações Java se pode fazer isto com Java Web Start. Antes só se obtinha esta facilidade com applets. Mas ambos tem o gravíssimo defeito de atualizar todo o sistema de uma vez só e com possibilidades de totos os clientes pedirem atualização ao mesmo tempo (2a feira de manhã às 9 horas quando as milhares de agências do banco abrirem).
Mas é fácil criar um sistema com ClassLoaders customizados para carga de classes em tempo de execução e fazer hot deploy. Atualizando a partir de grupos de classes isoladas se pode diminuir o tempo em que o sistema fica parado durante uma atualização. Assim os muitos clientes da aplicação não sobrecarregam o servidor com todos solicitando atualização ao mesmo tempo. Uma aplicação servidora vai liberando as atualizações em pequenos pacotes e para grupos selecionados de aplicações clientes. Nem todos serão atualizados na mesma hora (ou mesmo dia). Conceitualmente o Java tem todas as ferramentas para fazer isto e na prática não é difícil. Já participei de um projeto deste.