Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which Delphi technology to use?

I have a Client/Server application written Delphi. Essentially all the application is doing is transferring xml data streams between a server application and connected clients. I am currently using the Indy TIdTCPServer component. But the server side application keeps crashing on some of my installments. And it has been extremely difficult to debug. So I am wondering if there is some "architecture" I should be utilizing which does all the tcp/ip connection management and database connection pooling, allowing me to concentrate on the business logic.

Here are more details:

  • clients must maintain a "persistent" connection. There are times when the server must notify and send data to all connected clients.
  • clients are connecting from laptop computers using wireless aircards. So network "drops" are pretty common.
  • Backend database is SqlServer.
  • There can be upward of 100 computers simultaneously connected at a time. When the server gets a new connection (TCPServer.OnConnect) I instantiate my own object containing it own SqlServer database connection. When tcp connections are dropped I in turn free these objects (and associated database connection).
  • Client application have a TTimer built into them. They routinely send heartbeats to the server. And if they "drop"/"lose" their connection they automatically establish a new connection once the network is back.

Anyone have any suggestions on the best approach/architecture here?
I presume the Indy component would work, but at the same time feel I am "reinventing the wheel" with respect to managing the connections.

like image 563
M Schenkel Avatar asked Aug 07 '10 16:08

M Schenkel


Video Answer


1 Answers

Three component sets I am aware of that will take care of the nitty gritty technical aspects of client server applications for you:

  • kbmMW: http://components4developers.com/
  • Asta: http://www.astatech.com/index.asp
  • RemObjects: http://www.remobjects.com/

You may have to rework your applications to take advantage of the way these component sets work, but assuming you have properly separated layers that shouldn't be too much of a hassle and will buy you the advantage of well tested and widely used code for your client server work.

like image 180
Marjan Venema Avatar answered Sep 23 '22 07:09

Marjan Venema