Delphi com BD nas nuvens

Delphi

06/06/2013

Ola pessoal, estou com alguns problemas em uma aplicação desenvolvida em delphi7.
Esse aplicativo e um sistema de cadastro, que funciona redondinho aqui na empresa, utilizo o componente Zeos e Mysql, porem houve a necessidade do banco ficar nas nuvens (locaweb), e ai começou os problemas o sistema até conecta, navega entre os registros mas depois de umas 3 trasações (insert, update, delete) é exibida a mensagem de perca de conexão (exception class EZSQLException with message 'SQL Error: MySQL server has gone away').

Alguém conhece alguma forma, para resolver esse problema, ou será que é alguma configuração do zeos.

Obrigado.
Anderson Quinteiro

Anderson Quinteiro

Curtidas 0

Melhor post

Rodolpho Silva

Rodolpho Silva

06/06/2013

Olha, aqui (http://xoops.net.br/docs/mysql/manual/apas02.php) tem até indicando uma possível solução. Eu, particularmente, não faria dessa forma (aplicativo local x BD na nuvem). Hoje, meus sistemas até rodam na nuvem (locaweb tmb) porém, eu usei um metaframe (MS Terminal Services) onde o aplicativo roda no servidor (Remote App). Para o usuário, isso é imperceptível pois ele vê o aplicativo como se estivesse rodando localmente. Tem me atendido muito bem há um ano.

Bem, é apenas minha modesta opinião. Espero ter ajudado.
GOSTEI 1

Mais Respostas

Diego Garcia

Diego Garcia

06/06/2013

amigo, uma sugestão que eu lhe dou é considerar a programação multi camadas..
GOSTEI 0
Anderson Quinteiro

Anderson Quinteiro

06/06/2013

Muito obrigado Rodolpho, por responder.
Na verdade eu também não acho legal fazer o aplicativo com o BD nas nuvens, mas por falta de conhecimento e como já está pronto pensei em usar assim por esse motivo.
Mas gostei da sua sugestão de usar metaframe.
Agora outras duvidas rsrs
O sistema que você tem é em Delphi?? e roda na locaweb?? como funciona o metaframe?? você tem algum exemplo para que eu possa estudar??

Desde já agradeço.

Abraços
GOSTEI 0
Anderson Quinteiro

Anderson Quinteiro

06/06/2013

Legal também Diego, eu não tenho muita experiencia nesse tipo de programação, vou dar uma estudada a respeito.
Você teria algum exemplo, para que eu possa estudar??

Muito obrigado

Abraços.
GOSTEI 0
Diego Garcia

Diego Garcia

06/06/2013

Amigo, no delphi, o jeito mais popular de trabalhar com multi camadas é através do DataSnap, então lhe recomendo pesquisar sobre o uso do DataSnap, mas já lhe adianto que é relativamente bem simples.
GOSTEI 0
Anderson Quinteiro

Anderson Quinteiro

06/06/2013

valew Diego, vou ver a respeito muito obrigado
GOSTEI 0
Rodolpho Silva

Rodolpho Silva

06/06/2013

Como amigo Diego disse, seria muito bom o seus sistema trabalhar em camadas. Bem, o meu sistema é escrito em Delphi7 e ainda na arquitetura cliente / servidor. Como eu precisava de uma solução rápida pois não teria tempo para montar uma arquitetura em camada, eu optei em usar o Metaframe. Um metaframe é simplesmente um programa que permite que programas desktop rode pela internet. Existem vários (Citrix, por exemplo) mas eu uso o Terminal Services da Microsoft. Você pode começar a estudar por TS Remote App, pois o que ele faz é simplesmente reproduzir a tela do software (rodando no servidor) na máquina do cliente. E isso pro cliente fica quase que imperceptível.

O problema é que você terá de contratar usuários que irão acessar o TS. Na locaweb, cada usuário custa R$ 25,00/mês.
GOSTEI 1
Rodolpho Silva

Rodolpho Silva

06/06/2013

Como amigo Diego disse, seria muito bom o seus sistema trabalhar em camadas. Bem, o meu sistema é escrito em Delphi7 e ainda na arquitetura cliente / servidor. Como eu precisava de uma solução rápida pois não teria tempo para montar uma arquitetura em camada, eu optei em usar o Metaframe. Um metaframe é simplesmente um programa que permite que programas desktop rode pela internet. Existem vários (Citrix, por exemplo) mas eu uso o Terminal Services da Microsoft. Você pode começar a estudar por TS Remote App, pois o que ele faz é simplesmente reproduzir a tela do software (rodando no servidor) na máquina do cliente. E isso pro cliente fica quase que imperceptível.

O problema é que você terá de contratar usuários que irão acessar o TS. Na locaweb, cada usuário custa R$ 25,00/mês.

Complementando, link do Remote App: http://technet.microsoft.com/pt-br/library/cc753844(v=ws.10).aspx
GOSTEI 0
Anderson Quinteiro

Anderson Quinteiro

06/06/2013

Obrigadão Rodolpho, vou dar uma estudada sobre o assunto, vou ver o que faço aqui.

Valeu mesmo

Abraços
GOSTEI 0
M. C.

M. C.

06/06/2013

Olha, aqui (http://xoops.net.br/docs/mysql/manual/apas02.php) tem até indicando uma possível solução. Eu, particularmente, não faria dessa forma (aplicativo local x BD na nuvem). Hoje, meus sistemas até rodam na nuvem (locaweb tmb) porém, eu usei um metaframe (MS Terminal Services) onde o aplicativo roda no servidor (Remote App). Para o usuário, isso é imperceptível pois ele vê o aplicativo como se estivesse rodando localmente. Tem me atendido muito bem há um ano.

Bem, é apenas minha modesta opinião. Espero ter ajudado.


Olá Rodoldo,

Você poderia me dizer como você exatamente você utilizou no desenvolvimento do seu aplicativo? Estou necessitando fazer umas "coisinha" nesse formato e não sei por onde começar.

Grato e aguardo retorno.
GOSTEI 0
Rodolpho Silva

Rodolpho Silva

06/06/2013

Olá amigo Aprendiz,

Na verdade, não muito mistério nisso. O desenvolvimento do aplicativo é normal. Não tem nada de especial para funcionar dessa forma. O metaframe é quem se encarrega disso, de cuidar de tudo. A premissa para ter esse serviço é Windows Server 2003+. Existem vários artigos na internet auxiliando como configura o Remote App no Terminal Services. Uma vez que o servidor estiver instalado e configurado, o acesso na máquina cliente dá-se pelo um atalho cujo a extensão é *.rdp. Vai aparecer na sua área de trabalho um ícone, como se o aplicativo estivesse instalado localmente mas na verdade é apenas um atalho para a chamada na máquina servidora. Ao abrir o aplicativo, vai parecer que vc estará rodando localmente mas na verdade o metaframe só estará enviando a imagem do aplicativo rodando no desktop do servidor.

Mais sobre o Remote App: [url]http://technet.microsoft.com/pt-br/library/cc733174(v=ws.10).aspx[/url]
GOSTEI 0
M. C.

M. C.

06/06/2013

Olá amigo Aprendiz,

Na verdade, não muito mistério nisso. O desenvolvimento do aplicativo é normal. Não tem nada de especial para funcionar dessa forma. O metaframe é quem se encarrega disso, de cuidar de tudo. A premissa para ter esse serviço é Windows Server 2003+. Existem vários artigos na internet auxiliando como configura o Remote App no Terminal Services. Uma vez que o servidor estiver instalado e configurado, o acesso na máquina cliente dá-se pelo um atalho cujo a extensão é *.rdp. Vai aparecer na sua área de trabalho um ícone, como se o aplicativo estivesse instalado localmente mas na verdade é apenas um atalho para a chamada na máquina servidora. Ao abrir o aplicativo, vai parecer que vc estará rodando localmente mas na verdade o metaframe só estará enviando a imagem do aplicativo rodando no desktop do servidor.

Mais sobre o Remote App: [url]http://technet.microsoft.com/pt-br/library/cc733174(v=ws.10).aspx[/url]


Poxa, muito bacana isso!

Será que o colega poderia me passa algum link, tutoral, livros ou coisa do tipo para que eu possa me inteirar melhor sobre o assunto.

Muitíssimo obrigado pela sua atenção e aguardo retorno.

Forte abraço!

GOSTEI 0
Rodolpho Silva

Rodolpho Silva

06/06/2013

Olá amigo Aprendiz...

Segue alguns links para ajuda: [url]http://www.youtube.com/watch?v=nBqiVad9aVg[/url] e [url]http://msmvps.com/blogs/msvirtualization/archive/2011/01/12/publicando-aplica-231-245-es-no-remoteapp-server.aspx[/url]
GOSTEI 0
Marcello Mariano

Marcello Mariano

06/06/2013

Não existe nenhum componente delphi que possa fazer isso? quer dizer: Será que o delphi não comporta uma conexão ftp; http ou coisa parecida? Porque eu acho que esse tipo de solução um pouco 'tosca' - sem querer criticar Rodolfo - pois me interesso e muito por aplicativos web - embora não tenha desenvolvido nenhum até agora - mas não vejo essa como um solução prática e confiável...
GOSTEI 0
Rodolpho Silva

Rodolpho Silva

06/06/2013

Não existe nenhum componente delphi que possa fazer isso? quer dizer: Será que o delphi não comporta uma conexão ftp; http ou coisa parecida?

R: É importante não misturarmos as coisas. Conexão Delphi com BD geralmente dá-se via protocolo na 3ª camada, o TCP/IP. Http ou ftp é protocolo da 5ª camada e é utilizado para transferência de arquivos (ftp) ou páginas HTML (HTTP). Agora sobre a pergunta, sim, o Delphi suporta conexões FTP e HTTP, além de muitas outras também...

Porque eu acho que esse tipo de solução um pouco 'tosca' - sem querer criticar Rodolfo - pois me interesso e muito por aplicativos web

R: Nem sempre, "tudo" pode rodar na web (entendo como web, aquilo que roda dentro do browser). Um Photoshop, por exemplo, não dá para rodar pela web. E assim digo sobre muitos outros aplicativos. Porém, as vezes sentimos a necessidade de rodar esses aplicativos na internet (entendo com internet aquilo que roda dentro da rede mundial de computadores, não somente na rede local) e como existem fatores que impedem que tal aplicativo rode na web (recursos limitados ou indisponibilidade de tempo para construir uma solução web, por exemplo) é aí onde entra os metaframes onde estes possibilitam a execução destes
aplicativos pela internet, trazendo assim uma solução prática e confiável em curto espaço de tempo. Até existem algumas empresas que fazem o uso de metaframes tais como Petrobrás, Wallmart, Carrefour, Phillips, etc...

embora não tenha desenvolvido nenhum até agora - mas não vejo essa como um solução prática e confiável...

R: Bem, vou responder com base na minha experiência: Em quase 1 ano e meio, a solução nunca falhou ou decepcionou....

Bem, é apenas minha modesta opinião...
GOSTEI 1
Marcello Mariano

Marcello Mariano

06/06/2013

blz, brigadão brow!
GOSTEI 0
M. C.

M. C.

06/06/2013

Olá amigo Aprendiz...

Segue alguns links para ajuda: [url]http://www.youtube.com/watch?v=nBqiVad9aVg[/url] e [url]http://msmvps.com/blogs/msvirtualization/archive/2011/01/12/publicando-aplica-231-245-es-no-remoteapp-server.aspx[/url]


Olá Rodolpho123,

Vou dar uma olha no link e vê se consigo me inteira para por isso em prática.

Muito obrigado pela sua pronta atenção.
GOSTEI 0
Florisvaldo Pereira

Florisvaldo Pereira

06/06/2013

Rodolpho, ja utllizo desta ferramenta para disponibilizar sistemas para uso de alguns clientes.Saberia me dizer se é possivel apenas o APLICATIVO estar no Servidor TS e a base de dados na rede local do cliente ?
GOSTEI 0
Rodolpho Silva

Rodolpho Silva

06/06/2013

Rodolpho, ja utllizo desta ferramenta para disponibilizar sistemas para uso de alguns clientes.Saberia me dizer se é possivel apenas o APLICATIVO estar no Servidor TS e a base de dados na rede local do cliente ?

R: Olha, até daria (através de mapeamento de disco) mas eu não considero isso uma solução elegante além de não ser esse o foco da arquitetura, uma vez que o direcionamento dela é a centralização dos dados.

Bem, é apenas minha modesta opinião.
GOSTEI 0
Florisvaldo Pereira

Florisvaldo Pereira

06/06/2013

Sim, entendo desta forma também. O que gostaria de obter era uma solução para disponibilizar o aplicativo desktop na Clouding sem a necessidade de um novo desenvolvimento nativo para este ambiente. Desta forma, através do TS, precisaria ter um acesso remoto na nuvem para cada cliente, ou vc ja fez de alguma outra forma.
GOSTEI 0
Aislan Sousa

Aislan Sousa

06/06/2013

Diego Garcia eu já que vc deu um luz no fim do túnel para Anderson vou perguntar uma coisa para vc eu fiz um trabalho da UFIPI da faculdade e com o XE6 + Firebird + DataSnapa Gostei e gora queria me interagir mais a respeito do a sunto esse sisteminha roda em Rede como faço para que ele rode via Internet : para que eu possa acessar ele de quel quer lugar
GOSTEI 0
Claudio Ferreira

Claudio Ferreira

06/06/2013

Anderson Quintero, toda vez que voce for executar uma query antes, dê um zConnection.Pingserver, terá que colocar esse codigo antes de todas as querys executadas. Testa aí e veja se funciona..

O pingserver restabelece a conexão se tiver caído.
GOSTEI 0
Claudio Ferreira

Claudio Ferreira

06/06/2013

Nem que toquei que o post é de 2013, o cara já deve ter abandonado o sistema, mas tá valendo.
GOSTEI 0
Aislan Sousa

Aislan Sousa

06/06/2013

Mais poderia responder pra mim pode ser :

fiz um trabalho da UFIPI da faculdade e com o XE6 + Firebird + DataSnapa Gostei e gora queria me interagir mais a respeito do a sunto esse sisteminha roda em Rede como faço para que ele rode via Internet : para que eu possa acessar ele de quel quer lugar.



Agradeço desde Já
GOSTEI 0
Claudio Ferreira

Claudio Ferreira

06/06/2013

Aislan, para voce colocá-lo na internet terá que alugar uma máquina em DataCenter onde voce terá total controle sobre ela, poderá instalar o que quiser banco, e a parte server do DataSnap. As mais baratas custam em torno de 130, 150,00 reais e outras mais caras (mais rápidas - datacenter Brasileiro) a partir de 230,00 +-

De uma olhada :

http://dedicadosbr.com/
http://lightvps.com.br/
http://locaweb.com.br -> datacenter brasil

há outros, procure no google por VPS
GOSTEI 0
POSTAR