Por que eu devo ler este artigo:Muitos criam sistemas de atualização toda vez que lançam uma nova versão do software, alguns optam por fazer a atualização manual e em outros casos, disponibiliza-se em um servidor FTP e se repassa para os clientes o link para download. A correlação em todos esses métodos é que não existe a garantia que o sistema está atualizado. Com um mecanismo de Launcher de atualização, veremos como é possível garantir as versões dos executáveis e arquivos de nosso sistema antes da abertura do sistema.

Neste artigo veremos como validar as versões utilizando o modelo de criptografia MD5 consultando uma base de dados online.

Ao se trabalhar com um número grande de clientes começamos a ter problemas de como controlar as versões previamente instaladas. Até certo número, a atualização manual disponibilizada através de um link para download ou até mesmo acessando os computadores dos clientes para fazer a atualização não é a melhor das soluções, mas ainda assim é possível.

Porém, quando ocorre um aumento de clientes, executáveis e arquivos comuns à distribuição, tais como relatórios, DLLs, BPLs entre outras, o processo torna-se mais complexo e podemos então encontrar algumas dificuldades no processo de atualização. Nesse momento começam a surgir soluções de atualizações que em sua maioria, não são eficazes.

Muitos desenvolvedores utilizam o próprio build da versão como um processo de verificação, porém, devido à falta de automatização, esse arquivo pode vir a não ser devidamente atualizado e então o processo também torna-se falho.

Outra situação comumente utilizada é a validação pela data de alteração do arquivo, porém, como sabe-se, facilmente podemos burlar este processo alterando a própria data do Sistema Operacional.

Uma solução para os problemas descritos é a utilização de comparação de MD5. Ao se alterar apenas um caractere no arquivo fonte, e sem a necessidade do build, o MD5 é alterado, garantindo assim a identificação de uma versão diferente no computador do cliente.

O que é MD5

O MD5 (Message-Digest algorithm 5) é um algoritmo de hash de 128 bits desenvolvido pela RSA Data Security Inc., e muito utilizado na verificação de integridade de arquivos.

Seu propósito de desenvolvimento foi suceder o modelo MD4 que possuía alguns problemas de segurança. A verificação é realizada pela comparação das duas hashes sendo uma a original e a outra à MD5 gerada.

Os hashes MD5 são representados por uma sequência de 32 caracteres hexadecimais. Mesmo uma pequena alteração, criará um hash completamente diferente.

Como é validada a estrutura de arquivos

Para realizar a validação da estrutura de arquivos, será criada uma tabela a ser utilizada como dicionário de estrutura, onde iremos consultar pelo sistema se existem atualizações dos arquivos. O Launcher será responsável por consultar o dicionário e comparar o MD5 do arquivo com o informado no dicionário, caso o MD5 do arquivo não seja igual ao informado no dicionário, esse será extraído e colocado no lugar do arquivo desatualizado.

Para o devido funcionamento, essa base deve ficar disponível em um servidor na Web com alta disponibilidade e as máquinas clientes devem estar em um ambiente com acesso à internet para que sempre que o Launcher seja executado, essa consulta possa ser devidamente realizada.

O banco de dados

Para nossa solução, faremos o uso do banco de dados o MySQL. A Figura 1 apresenta a modelagem proposta. A descrição de cada campo pode ser observada nas Tabelas 1 e 2.

Figura 1. Estrutura de tabelas

Campo

Descrição

id_arquivo

Identificador da chave primária

nome

Nome do arquivo

caminho

...
Quer ler esse conteúdo completo? Tenha acesso completo