Comunicação via TCP/IP com Servidor

Delphi

19/07/2005

Pessoal,

Estou montando um projeto com a seguinte estrutura : tenho uma aplicação no servidor que gera, de segundo em segundo, algumas informações. Por outro lado tenho uma aplicação cliente que deve ler, também de segundo em segundo, as informações geradas pelo servidor. O servidor está separado fisicamente em outra cidade e pode ser acessado através de uma rede VPN da empresa ou via internet. Inicialmente tentei fazer a comunicação com o servidor através de um webservice instalado lá (criei uma função que era chamada de dentro do aplicativo cliente). Funcionou mas ficou relativamente lento, ou seja, como a função é chamada segundo a segundo, o aplicativo não consegue buscar as informações em tempo hábil.

Gostaria de ver se alguém tem alguma idéia sobre outra forma de buscar estas informações no servidor de forma mais rápida e otimizada.

Muito obrigado,

Tarcísio


Tarcisio

Tarcisio

Curtidas 0

Respostas

Daemon

Daemon

19/07/2005

Não há a possibilidade de vc fazer uma conexão direta com esse servidor através de Socket?? ....alem do mais, para essas questões que envolvem processamento e requer velocidade, vc pode querer fazer isso em Thread ..isso pode te dar uma velocidade maior de resposta.


GOSTEI 0
Massuda

Massuda

19/07/2005

No cenário que você descreveu um Web Service não funciona devido as restrições de tempo.

A solução proposta pelo colega daemon é melhor, pois a conexão entre as máquinas é feita apenas uma vez (não cada vez como no caso do WS) e você pode trabalhar com um protocolo intermediário de transporte de dados bem simples (ao invés de usar SOAP, XML, etc).

Para implementar, no servidor use um TTcpServer ou TIdTCPServer (tem outras opções) e envie periodicamente ao cliente os dados. No cliente, use um TTcpClient ou TIdTCPClient (tem outras opções) e processe os dados a medida que eles chegarem. Infelizmente, como o tempo de transporte de dados na internet é imprevisível, é melhor não assumir que os dados chegarão periodicamente no cliente (embora provavelmente o servidor transmita periodicamente) e porisso processe os dados a medida que eles chegarem.


GOSTEI 0
Tarcisio

Tarcisio

19/07/2005

É justamente de opiniões como essas que eu estava precisando. Vou tentar montar algo conforme vocês sugeriram. Para ganhar tempo, alguém tem algum exemplo de um projeto que utilizad os componentes citados ?

Muito obrigado !!!


GOSTEI 0
POSTAR