哪个Delphi技术使用? [英] Which Delphi technology to use?
问题描述
我有一个Delphi编写的Client / Server应用程序。基本上所有的应用程序都是在服务器应用程序和连接的客户端之间传输xml数据流。我目前使用Indy TIdTCPServer组件。但服务器端应用程序不断崩溃我的一些分期付款。而且调试非常困难。所以我想知道是否有一些架构,我应该利用它所有的tcp / ip连接管理和数据库连接池,允许我集中的业务逻辑。
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.
以下是更多详细信息:
- 客户端必须保持持久连接。有时,服务器必须通知并向所有连接的客户端发送数据。
- 客户端使用无线局域网从笔记本电脑连接。因此,网络丢弃是很常见的。
- 后端数据库是SqlServer。
- 一次可以同时连接100台计算机。
当服务器获得新连接(TCPServer.OnConnect)时,我实例化包含它自己的SqlServer数据库连接的自己的对象。当tcp连接被删除时,我反过来释放这些对象(和相关的数据库连接)。 - 客户端应用程序内置了一个TTimer。他们定期向服务器发送心跳。如果他们删除/失去他们的连接,他们会自动建立一个新的连接一旦网络回来。
- 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.
建议在这里最好的方法/结构?
我认为Indy组件将工作,但同时感觉我是重新发明的轮子关于管理连接。
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.
推荐答案
我知道的三个组件集将为您处理客户端服务器应用程序的精细技术方面:
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 /
- 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.
这篇关于哪个Delphi技术使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!