Página 1 de 1
Atualizar .EXE nas estações
Enviado: 14 Mar 2016 16:25
por JAIR RANGEL
Olá a todos!
Gostaria de discutir uma ideia com vocês, amigos do forum.
Hoje, em meus Clientes, instalo os programas executáveis e os dbfs no Servidor. Nas estações de trabalho, faço um mapeamento da pasta dos programas que estão no Servidor, e crio os atalhos para carregar os programas nas estações de trabalho.
Por motivos de melhorar o trafego na Rede, queria passar a instalar os programas nas estações de trabalho. Pois todos os computadores possuem disco rígido...
Acontece que, depois de uma atualização do programa, que vai acontecer no Servidor, eu preciso carregar, de forma automática, esses programas para as estações de trabalho. Isso deveria acontecer de forma transparente para o Operador.
Pensei em, toda vez que o programa for executado na estação, o programa ler o mesmo no servidor e comparar a data da última atualização. Caso seja inferior, copiar o programa para a estação.
Porém, o programa já vai estar carregado. E isso me impediria de copiar...
Será que tem uma forma mais inteligente de fazer isso?
Atualizar .EXE nas estações
Enviado: 14 Mar 2016 22:31
por asimoes
Eu acho que você pode ter dores de cabeça fazendo isso.
Outra coisa, os dados estão no servidor? se estão não adianta nada você fazer uma cópia do executável para a máquina.
Sempre haverá gargalo, dependendo do número de estações.
Se você que fazer isso, uma forma seria copiar o executável na inicialização do sistema operacional.
Atualizar .EXE nas estações
Enviado: 14 Mar 2016 22:52
por JoséQuintas
Considerando uma rede de 100megabits, isso dá uns 15MB por segundo.
Não sei quantos usuários carregam o EXE ao mesmo tempo, mas convém avaliar se vale a pena mexer nisso.
Atualizar .EXE nas estações
Enviado: 15 Mar 2016 13:08
por JAIR RANGEL
Olá, a todos!
Obrigado por responder ao tópico.
Acho que o tráfego na Rede iria diminuir, pois os executáveis ficariam instalados nas estações de trabalho.
Aliás, eu já fiz isto: Ou seja, coloquei os EXE nas estações e mapeei a pasta com as Tabelas DBFs que estão no Servidor.
Está funcionando muito bem. Perfeito. E veloz.
O problema é a atualização desses EXE nas estações. Não queria ter que atualizar cada estação de forma manual.
Hoje, tenho um aplicativo que faz a instalação das novas versões. Isso miniminiza muito o trabalho de atualização do sistema. A atualização é feita na pasta dos EXE no Servidor.
Por isso queria, de alguma forma, que ao carregar os EXE das estações, o programa verificasse no Servidor (pasta dos EXE) se os programas sofreram atualização.
Caso afirmativo, copiar o EXE para a máquina local (estação de trabalho).
A alternativa de copiar na inicialização do Windows deve ser considerada. No entanto, após uma instalação de nova versão, as estações de trabalho teriam que ser reinicializadas...
Continuo buscando uma forma mais automática de fazer essa atualização nas estações...
Atualizar .EXE nas estações
Enviado: 15 Mar 2016 13:15
por JAIR RANGEL
Só para ilustrar...
Sempre que uma atualização de versão é feita, o aplicativo instalador exige que todos os Operadores saiam do Sistema.
Então, neste momento, eu tenho o sistema somente para a rotina de atualização...
Atualizar .EXE nas estações
Enviado: 15 Mar 2016 13:43
por asimoes
Jair,
Eu tenho um utilitário que eu fiz em minigui que faz atualização do sistema principal, este utilitário roda no servidor além da aplicação principal, a atualização é feita "on the fly" quando acontece a atualização o executável é atualizado, mas os usuários estão com uma imagem do sistema em memória, para perceber a atualização, os usuários tem que sair e retornar do sistema, isso é muito comum em qualquer sistema quando sofre atualização.
Resumindo, de qualquer forma o usuário terá que sair da aplicação para receber as modificações recentes no sistema.
Você pode informar para usuário que há uma atualização para ser feita e estabelece um tempo para ele sair da aplicação.
Atualizar .EXE nas estações
Enviado: 15 Mar 2016 14:15
por asimoes
Atualizar .EXE nas estações
Enviado: 15 Mar 2016 14:19
por JAIR RANGEL
Olá, asimoes!
Perfeito!
A sua rotina funciona bem. Pois nas estações de trabalho, o EXE é carregado do Server. Por isso, o Operador tem que fechar a aplicação corrente e recarregá-la. Como carrega do Servidor, o EXE já está atualizado.
No meu caso, coloquei (apenas em 1 Cliente para testes) os EXE nas estações de trabalho. Aproximadamente 40 estações de trabalho. O que nos permite considerar que o tráfego de EXE na rede local é grande, quando carregado do Servidor para a memória de cada estação de trabalho.
Por isso, coloquei os EXE nas estações.
A atualização do Sistema no Servidor também é feita através de um aplicativo que desenvolvi em HMG somente para esta finalidade.
O que eu estava pretendendo é... Nas estações de trabalho, ao carregar um EXE, verificar se existe atualização do EXE no Servidor.
Caso afirmativo, copiar o EXE do Servidor para a estação. Assim atualizaria cada estação de trabalho de maneira mais automática. Sem intervenção humana.
Essa verificação de atualização, acho que teria que ser feito comparando a data da última alteração no EXE do Servidor com o mesmo EXE da estação de trabalho...
Se for possível esta comparação...
Atualizar .EXE nas estações
Enviado: 15 Mar 2016 14:35
por asimoes
Jair,
Para comparar você pode usar a função Directory ou FileStats
Código: Selecionar todos
dDateSystem:=ctod("")
dChangeDate:=ctod("")
FileStats( "C:\SISTEMA\SISTEMA.EXE", , , , , @dDateSystem)
FileStats( "F:\UPDATE\SISTEMA.EXE", , , , , @dChangeDate)
If dDateSystem != dChangeDate
* Atualiza..
Endif
Atualizar .EXE nas estações
Enviado: 15 Mar 2016 14:42
por asimoes
FileStats

- FileStats
Atualizar .EXE nas estações
Enviado: 15 Mar 2016 15:21
por JAIR RANGEL
Obrigado Asimoes!
Vou analisar as possibilidades...
Forte abraço.