Fórum Integração de ambiente Client/Server x Internet #327785
19/08/2006
0
Gostaria de uma opinião...
Num sistema Cliente/Servidor, já em operação num ambiente com 1 servidor Linux + 15 estações windows, rodando em Win32 acessando o banco Firebird. Para este sistema, está em vias de ser necessário criar uma parte dele (agenda para marcação de consultas) via web.
Como não estou cogitando implementar o banco em Firebird no servidor web (visto que é uma hospedagem terceirizada (locaweb) e não na empresa, pois a mesma não possui um IP fixo, possui apenas banda larga Velox), estou cogitando criar para a web uma aplicação ASP com banco Access (pois é onde tenho melhor domínio) e criar uma aplicação Delphi rodando em back-ground numa das estações da rede, fazendo o interfaceamento entre o banco Firebird e o Access na web, de modo a espelhar (em cada operação feita no banco) o que ocorrer na web no banco local e vice-versa, de modo a manter os dados atualizados.
Pergunto: alguem com alguma experiência semelhante? Acham uma boa solução com os recursos disponíveis? Sugerem algo diferente?
Abraços...
Aerreira
Curtir tópico
+ 0Posts
19/08/2006
Thomaz_prg
Digo porque, você teria que ficar pegando os dados do Access e atualizando no outro banco. Outra coisa, como iria pegar dados do Firebird?
Bom, acho que daria pra usar o no-ip.. só que o desempenho não fica tão bom, se for usando conexão direta. Fiz algo semelhante, e o rendimento melhorou, usando DataSnap.
Gostei + 0
19/08/2006
Aerreira
Sim, seria uma opção, mas como eu conectaria via ASP o banco Firebird? (não sei como)
Haveria a aplicação Delphi numa das estações da rede interna da empresa conectando-se aos dois bancos (firebird-local / access-remoto), enviando e recebendo pacotes com dados para atualização nos dois sentidos.
Minha dúvida é essa: se fizer de algum modo uma conexão do site para o banco firebird do cliente isso ficaria rápido? E a segurança do banco? Meu cliente está com muito receio de fazer isso pois estaria expondo o banco de dados interno da empresa para a internet. Se usar uma aplicação que faça ´sozinha´ as transações de atualização, o resultado seria mais seguro, porém não sei se mais rápido.
Gostei + 0
21/08/2006
Thiago Vidal
vc poderia criar 2 tabelas, 1 com as marcações, e outra de LOG de operações do tipo Inclusao, Alteração, Exclusão. Assim, para manter os bancos sincronizados, vc poderia ler o log do servidor web e executar no firebird, e ler o log no servidor firebird e fazer o mesmo.
Com o firebird é até simples de fazer isso com o uso de triggers, já no ASP com access, deve ser feito via programação, mas se for apenas 1 tabela simples, não deve ser problema.
Lembrando que o programa deve tratar tudo dentro de uma transação, de forma que se houver um erro, todo o processo deve ser cancelado, e após a correção, tudo possa ser refeito sem perigo de executar 2x o mesmo comando no banco de dados.
Para cadastros pequenos de 1 ou 2 tabelas essa solução funciona numa boa, para cadastros maiores, o ideal seria utilizar web services ou DataSnap mesmo.
Gostei + 0
21/08/2006
Aerreira
A ideia é justamente essa. Uma tabela de transações no banco accesss onde as duas aplicações (ASP e Delphi) possam ler e gravar dados, fazendo a transação correspondente nos dois bancos.
Pergunto: dá prá abrir um banco access pelo Delphi e atualizar seus dados estando este banco num site web?
O banco firebird tem umas 80 tabelas, mas a parte de agendamento é formada basicamente por 4 tabelas apenas. Especialidades/ Médicos/ Horários disponíveis/ Apontamentos. Existem outras tabelas de apoio, porém na web seria o mais simples possível, apenas para permitir o agendamento do paciente sem a necessidade dele ir ou ligar para a clínica.
Gostei + 0
21/08/2006
Thiago Vidal
o ASP, foi planejado para gerar arquivos html, mas nada impede de que outros tipos de arquivo sejam gerados... entao neste caso, recomendaria fazer um ASP que gera um arquivo TXT com a lista de inserts e updates executados, ou talvez até um CSV com uma formatação própria, de forma que estes comandos possam ser regenerados pelo Delphi.
outro cuidado, deve ser o de marcar os comandos já transferidos para o sistema de forma que nao sejam duplicados.
Gostei + 0
21/08/2006
Aerreira
Xiiiiiiiiiii, mais alguém confirma isso?
Vou acabar tendo que partir prum TXT mesmo... Mas a coisa vai ficando pior de lidar...
Acho que o ideal mesmo seria algo on-line direto, a página de internet acesando direto o banco principal, nada de cargas intermediárias, mas aí começa a envolver mais custo e maior nivel de segurança no ambiente de TI do cliente. Concordam?
Ok, isso já está sendo considerado desde o principio. Tenho outros sistemas que fazem coisa semelhante (intefaceamento entre sistemas distintos), porém apenas no ambiente da rede-local, nada pela internet.
Gostei + 0
22/08/2006
Thomaz_prg
VocÊ pode fazer o seguinte, direcionar, no modem, para acessar a porta 3050 do seu servidor (com o BD firebird). Nesse ponto daí, você poderia usar o No-Ip para acessar o seu servidor com o BD. Ou até mesmo, se não quer conectar no seu BD direto, crie um (BD) só pra isso, e acesse dessa forma, porque daí você teria como montar uma aplicação para pegar os dados de um banco e passar pra outro.
Minha dúvida é essa: se fizer de algum modo uma conexão do site para o banco firebird do cliente isso ficaria rápido? E a segurança do banco? Meu cliente está com muito receio de fazer isso pois estaria expondo o banco de dados interno da empresa para a internet. Se usar uma aplicação que faça "sozinha" as transações de atualização, o resultado seria mais seguro, porém não sei se mais rápido.
Velocidade, vai depender do seu link...segurança, você pode alterar a senha do SYSDBA (se já não o fez).
Pelo que sei é isso mesmo.
Amigo, experimente fazer o seguinte, crie um WebService como sugerido pelo colega, ou então, se for usar DataSnap, acesse usando o componente WebConnection, instalandoi no seu server o IIS.... digo isso porque, você pode colocar uma senha, controlada pelo proprio windows, e o WebConnection consegue fazer o login nela. O mesmo serve para o WebService... se usar o IIS teria integração com o windows, sendo assim, você pode definir uma senha para acessar o webservice.
Gostei + 0
22/08/2006
Aerreira
No ambiente do cliente o modem está conectado a um roteador que está ligado ao servidor linux que contém o banco firebird. Configurar o modem ou o roteador? Vale lembrar que o site ficará hospedado fora, num servidor locaweb, ok? Continuo sem saber como acessar o firebird (no meu servidor) por ASP (no servidor locaweb).
Mas por eu estar com uma porta aberta para acesso ao BD não haveria uma brecha aberta para um hacker tentar acessar e alterar dados dentro do banco ou mesmo acessar o servidor inteiro? Esse é o medo do dono da clínica... (não tenho experiência em segurança de dados)
Atenção: meu servidor não é windows, portanto não tem IIS... Onde fica o site sim é windows2003, porém não tenho acesso para interagir com o servidor a ponto de instalar coisas além da minha área de dados.
Vou acabar desistindo dessa idéia...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)