我正在研究将基于SQL的胖客户端Delphi应用程序移动到Multi Tier瘦客户端,并且一直在考虑在Delphi 2010中使用Datasnap.我已经完成了Bob Swart撰写的白皮书并进一步扩展了这一点.
我的主要问题是,我想让服务器端在连接和SQL查询方面高效,因为多个查询正在运行并且同时保持打开以查询数据,任何人都可以向我指明如何获取指导设计一个真实世界的Datasnap Server应用程序,因为该演示没有详细介绍.
谢谢
马特
你必须决定你的设计:
>(中间服务器)将管理会话或客户端将识别他们的会话每个连接(有状态与无状态)
>(中间服务器)您希望拥有多少缓存数据.你可以只缓存一些烦人的非常稳定的表,只在它们发生变化时查询它们(如果所有修改都通过服务器中间,如果没有,你需要像任意标记一样的东西 – 一个GUID,一个计数器 – 在表上匹配数据改变).
>(客户端/中间服务器)如??果您的客户端将始终获得完整的数据集合或集合的片段.
(例如:产品可以有categoryId列,它是Category表的FK.您可以一直发送两者,或者客户端只能请求产品数据).
>(Mid-Server / RDBMS)您可能需要提供某种形式的自定义搜索.如果您对最常用的搜索条件有所了解,则可以提供(如果需要)索引覆盖来执行此操作.
>(中间服务器/ RDBMS)除非您计划对数据进行一些积极的缓存和/或对它们有一些好用,否则不要将大数据集带到中间服务器.中间服务器只是RDBMS的另一个客户端应用程序 – 如果两者都在同一台机器上,您可以与RDBMS进入内存/ CPU / IO竞争.
>(Mid-Server / RDBMS)在Mid-Server上执行您的业务规则,是许多纯粹主义者的口头禅.对我来说,均衡是关键.假设RDBMS有2000个存储过程(我没有说明,有真正的业务有这么多的SP),你的中型服务器可以在SP,GREAT解决2000个问题中的1500个问题上做出很好的工作.但如果最后的500可以改变最坏的情况,那就让他们独自一人.它可能比1500更麻烦.所以将两者混合,并使这500个软件项目成为另一个版本.
>(中间服务器/ RDBMS)我对存储过程的说法也可以应用于触发器和其他任何其他类型的RDBMS服务器功能,可以使您的生活更轻松.
>(Mid-Server / DataSnap)大多数原始细节都可以让数据集提供者使用.但学会利用OnBeforeUpdateRecord事件在需要时进行自定义处理.
>(Mid-Server / DataSnap)您知道只能使用修改后的数据创建ClientDataset
这种代码如下?你无法想象它有多么有用……
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!