SERVIDORES INDEPENDENTES DO CENTRAL
Seguinte, meu cliente terá em breve várias filiais espalhadas em várias cidades.
E ele precisa de um sistema que trabalhe em cada uma das redes locais de cada filial, porem ele terá um servidor central com as informações de todos servidores das filiais.
Antes que alguem diga, nao queremos fazer um sistema web, será desktop mesmo e, talvez futuramente, Web. Pois o sistema atual deles já esta em um estagio bem avançado e com funcionamento no agrado, portanto nao podemos jogar tudo fora e começar do zero.
Entao pensei em fazer o seguinte
Todas máquinas trabalham normalmente em processo local, e como vi uma vez o Marcelo Treze sugerindo, de tempos em tempos uma aplicação no systray, fará uma varredura no banco de dados local, e mandará para um banco de dados em algum banco de dados na web.
Então o sistema no servidor central, acessará este banco de dados online diretamente e verá todas essas informações.
O que voces acham desta idéia ? Algo contra, a favor, alguma sugestão ou experiencia ? Será a primeira vez que farei algo assim e agradeceria muito que os mais experientes compartilhassem suas experiências.
Um abraço a todos e feliz ano novo para todos do fórum.
O problema é que você fará isso pela primeira vez, e talvez pode estar pensando em não perder algo criado mas não para essa finalidade, ai que começa o erro.
Quando queremos remendar algo para não perder o que já foi feito.......... é onde pecamos sem ter uma visão futura ou a longo prazo.......
O que você esta começando no seu cliente é uma estrutura web server ou melhor ainda [ô]nas nuvens[ô]........
Comece de forma correta e já projetnado seu sistemas para uma plataforma webserver
O próprio SQL server 2008/2012 apartir da versão Standard ou Data Center utiliza serviços sincronizados para quantas filiais possÃvel (Tenho um cliente que tem 300 filiais no Brasil e no Exterior) Para cada franquia disponibiliza o Mesmo sistema para uso do Franquiado tudo em SQL server e DOtNet.........
O Windows Server 2008/2012 dá suporte para sincronizar qualquer tipo de serviço...............
Todos nos PROGRAMADORES quando desenvolvemos um sistema [Ô]consideramos como um filho[Ô] não deixamos a tecnologia evoluir temos medo de perder tudo que foi feito nele e é ai que tudo acontece.........
Hoje para esse tipo de serviço só é possivel se feito atravez de webserver ou [ô]nas nuvens[ô]
Temos exemplos aqui no Brasil de Sistemas Desktop de Frente de caixa ERP, CMS, PDV-TEF são ultrapassados (CARREFOUR, WAL MART, AÇAI, etc.....) a demanda de mão de obra para dar suporte a estes sistemas é muito alto e o custo operacional................. e o tanto de pessoal full time porque é quase tudo manual pois não fizeram a mudança para uma estrutura web............
Tem outros exemplos de grandes empresas que já investiram em sistemas webserver e [ô]nas nuvens[ô] que hoje não tem muita demanda de serviços e tem tudo muito bem sincronizados (Rede Globo, GM, FORD, Receita Federal, Secretarias do Estado [Ô]SP;RJ;RS; MG: ETC.....[Ô])..............
Olhe bem para o exemplo que aconteceu com todos nos aqui do FORM [txt-size=2][txt-color=#0000f0]Visual Basic 6.0[/txt-color][/txt-size]
Quanto mais tempo levar para migrar seu conhecimento aplicado no Seu Código fonte de DESKTOP para WebServer ou [ô]nas nuvens[ô] maior será sua curva de aprendizagem........ maior será curva de mudança...........
Olhe talves isso será seu maior VILÃO nessa sua empreitada.............
Citação:Antes que alguem diga, nao queremos fazer um sistema web, será desktop mesmo e, talvez futuramente, Web.
Boa Sorte
Sistema WEBSERVER, é sistema feito em vb.net por exemplo ?
A Unica vantagem de WEBSERVER, é que seu sistema roda em browser ?
Eu conectando um banco mysql hospedado em um servidor web, em um projeto desktop visual studio 2010, podemos chamar de que ?
Obrigado
[txt-color=#0000f0]Sistema WEBSERVER, é sistema feito em vb.net por exemplo ?[/txt-color]
WEBSERVER não é só forma de programar, mas um conceito de programação......... tem ferramentas especÃficas dentro do Visual Studio para isso.......
E ele pode ser feito em C#, VB.Net, J#, F#, C++ e ainda pode atualmente se utilizar os novos Framework 3.5 ou 4.0 com ASP.Net ou HTML
[txt-color=#e80000]A Unica vantagem de WEBSERVER, é que seu sistema roda em browser ?[/txt-color]
Não é a única vantagem ele fica fisicamente no SERVIDOR e tem todo o gerênciamento feito de forma LOCAL
Esta mesmo aplicação pode ser divida em N Servidores por exemplo.... Melhorando sua performance
Servidor de SGBD (Banco de Dados)
Servidor de UI (Servidor de Interface)
Servidor de Repositóriode Arquivos....................................
Toda a transação realizada na camada de Negócio, Dados e Entidade é feita pelo processamento do servidor.......... isso torna muito segura a aplicação [ô]Há controvercias[ô]
Depende muito da forma de cosntrução da aplicação e das configurações do Administrador do Servidor........ E ainda da capacidade do Administrador do Servidor....
Quando é feito um aplicativo para web tudo que é processado fica em sua totalidade no servidor salvo scripts em JavaScripts que processa informação no Cliente na máquina que esta acessando o aplicativo web.
Já os aplicativos Desktop todos os processos são realizados no Cliente pois é o local de instalação onde é executado, tendo apenas a string de conexão apontada para o servidor INTRANET ou INTERNET.
ASP.NET trouxe muitos controles para formulários que são fáceis de usar e configurar e ainda hoje é possivel utilizar os mesmo controle com HTML.........
[txt-color=#e80000]Eu conectando um banco mysql hospedado em um servidor web, em um projeto desktop visual studio 2010, podemos chamar de que ?[/txt-color]
Ainda assim será Desktop, pois o conceito não muda já que sua string de conexão é para INTRANET ou INTERNET.......... Desktop depende de um pacote de instalação em cada Cliente para Funcionar de forma correta e segura, já o conceito web a instalação e configuração é voltada para o servidor ou servidores onde ela ficará hospedada.
Hoje podemos dizer que temos quase 03 tipos de aplicativos desenvovidos no pacote Visual Studio [txt-color=#007100]Desktop, Web e os novos (Mobile e Tablet)[/txt-color]....
Nos 03 casos se desenvolver um Função Exemplo: VB.Net/C# irá funcionar sem problemas.......
Vb.Net
Public Function CalcularValor() As Decimal
Dim valor1 As Decimal = Convert.ToInt32(TextBox1.Text)
Dim valor2 As Decimal = Convert.ToInt32(TextBox2.Text)
Return valor1 + valor2
End Function
======================================================================
C#
public decimal CalcularValor()
{
decimal valor1 = Convert.ToInt32(TextBox1.Text);
decimal valor2 = Convert.ToInt32(TextBox2.Text);
return valor1 + valor2;
}
[txt-color=#e80000][Ô]ATENÇÃO NÃO é TUDO IGUAL AS SEMELHANÇA PARAM POR AI[Ô][/txt-color].........
O MAIOR PROBLEMA DA DIFERÊNÇA NO DESENVOLVIMENTO DE WEB PARA DESKTOP ESTà NA FORMA DE DESNVOLVER A SEGURANÇA DAS TRANSAÇÕES DO APLICATIVO.
EXEMPLO BÃSICO E INICIAL TELA DE LOGIN
DESKTOP
UM FORM COM OS CAMPOS [Ô]USUÃRIO[Ô] E [Ô]SENHA[Ô] CHAMAR A PROCEDURE DE ACESSO
WEB
UM WEBFORM COM OS CAMPOS [Ô]USUÃRIO[Ô] E [Ô]SENHA[Ô] CHAMAR A PROCEDURE DE ACESSO, UM TECLADO VIRTUAL PARA DIGITAR SENHA, EXPIRA SESSION POR TIMEOUT, CRIPTOGRAFIA E BLOQUEIO DE SESSION LIMPAR O CACHE DA SENHA CRIPTOGRAFAR SENHA COM 128 BITS OU SUPERIOR MAPEAR O IP DA MAQUINA CRIANDO UMA BLACK LIST DE IP............. E ASSIM POR DIANTE............
Boa Sorte
Alguma das filiais dele, serão móveis, ou seja ele pode ou nao ter acesso a internet no momento da sua operação, porem pelo menos uma vez alguem realizara a conexao para atualização do servidor central.
Entendeu meu problema ?
e medo de uma mudança geral, acima todos comentários são certos porém a duvida do colega é o que fazer para resolver isto agora?
O que eu postei no tópico ao qual ele se refere é o seguinte, se não me falha a memória alguem queria saber como salvar os dados em um banco local e em um banco na web ao mesmo tempo, isto ja pensando na possibilidade de se acontecer algo e o servidor falhar, ou até mesmo a net apresentar algum problema (coisa que esta sendo comum aqui em santos/sp) e ele poder continuar trabalhando com os dados do banco local.
a minha dica foi de alguma forma armazenar os dados em uma tabela temporária, e de tempo em tempo enviar estes dados ao servidor, aumentando o desempenho do sistema uma vez que não dependeria da conexao e ainda mantendo os dados no servidor local.
e acredito que ele gostaria de alguma nova sugestão a respeito disso, e confesso também estar curioso para novas sugestões.
Obrigado pela informações, eu tenho sistemas rodando sem problemas do tipo DESKTOP + MYSQL NA WEB.
O unico problema é que é preciso instalar o sistema em cada maquina para poder acessar. Isso em alguns casos é ruim, e em outros acaba sendo até bom.
Eu gravo o mac de cada maquina no banco de dados, e só tem permissão o mac cadastrado, fora senha de acesso. Penso em me especializar em asp.net
mas confesso que a mente esta sobrecarregada, e percebo que não temos os mesmos recursos de uma forma total em asp.net ou qualquer outra ferramenta em relação a desktop.
FBGSYSTEMS,
Oriento meus clientes a terem no local um modem 3g, para acesso em casos de perda de internet local.
Já pensei em tudo quanto é forma de fazer esse processo, de se ter web e local, e sinceramente não encontrei nada seguro, nada que possa garantir que não avera a perda de dados.
Na minha opinião, ou se trabalha conectado a web ou se trabalha off, os dois acredito ser impossivel, se alguem tiver algo que funciona e puder disponibilizar, também
me interessa.
Ou é apenas com base em pesquisas do que seriaa o [ô]correto[ô] a fazer?
Marcelo, é exatamente essa minha preocupação.
O motivo pelo qual meu cliente nao quer mudar é porque ja estao tomando muito prejuizo por nao ter um controle adequado das operações ( que sao muitas ), e a falta de tempo para como eu disse, começar do zero. E tambem o fato de que infelizmente nosso serviço de internet aqui no Brasil é muito instavel, mesmo ele tendo um 3g o mesmo pode nao funcionar, e ai a coisa fica feia, alem de queum sistema web ficará mais lento para a necessidade dele.
Eu sinceramente nao acredito em perda de dados nesta situação. O que voces dizem a respeito disto?
Citação:Oriento meus clientes a terem no local um modem 3g, para acesso em casos de perda de internet local.
Já pensei em tudo quanto é forma de fazer esse processo, de se ter web e local, e sinceramente não encontrei nada seguro, nada que possa garantir que não avera a perda de dados.
Na minha opinião, ou se trabalha conectado a web ou se trabalha off, os dois acredito ser impossivel, se alguem tiver algo que funciona e puder disponibilizar, também
me interessa.
não penso assim, o envio de dados para um servidor não é um bicho de sete cabeças acredito eu, perda de dados, pode acontecer mas são [ô]n[ô] motivos que causam isso, não necessariamente uma conexão local e remota.
Novamente minha idéia do assunto:
Você salva os dados em um banco local, e por exemplo cria um xml destes dados para enviar para um servidor, pronto sem bicho de sete cabeças.
Lógico deve-se atentar-se ao tipo de programa qual a intensão ou necessidade de se manter um banco server, pois a intensão pode ser apenas atualizar um portátil de tempo em tempo com dados recebidos do servidor.
isso muda muito conforme a necessidade.
Faria dentro de um sistema um loop e iria marcando no banco local um campo tipo [Ô]enviou_central[Ô] como S ou N.
Entao a logica seria simples, faria um select no local de todos registro com [Ô]enviou_central=N[Ô] entao faria o loop incrementando os registros, ao final do update do banco de dados web eu marco S no registro atual e pasos ao proximo, caso haja alguma falha, abordo a operação onde parou e aviso o usuário, ou entao tendo novamente . De qualquer forma o select iria verificar quais estao ou nao estao no central.
Obrigado a todos pela atenção no tópico.
O quão dependente dos dados das filiais o servidor central é, e vice-versa?
A dependência é em tempo real? de hora em hora? de dia em dia?
Citação::
Marcelo, eu faria diferente.
Faria dentro de um sistema um loop e iria marcando no banco local um campo tipo [Ô]enviou_central[Ô] como S ou N.
Entao a logica seria simples, faria um select no local de todos registro com [Ô]enviou_central=N[Ô] entao faria o loop incrementando os registros, ao final do update do banco de dados web eu marco S no registro atual e pasos ao proximo, caso haja alguma falha, abordo a operação onde parou e aviso o usuário, ou entao tendo novamente . De qualquer forma o select iria verificar quais estao ou nao estao no central.
Obrigado a todos pela atenção no tópico.
Cara, melhor usar as ferramentas de sincronização que os bancos de dados oferecem.