是个男人就进来,欢迎大家热烈讨论:我想就三层结构的中间层如何架构向大家请教一些问题?

漫漫程序人生 2003-04-18 05:22:48
这个问题由来已久,但一般都停留在怎样用delphi作三层,拉了几个控件就学会了
1.在三层结构中我如何 架构我业务逻辑, 使之具备无关性
我以前做ado 原生接口 dll ,自己写接口 和类实现,是可以做到这一点,但这样不能用数据感知控件,未免不爽,而且数据感知控件的效率也高一些
现在三层是可以用数据感知控件了,而且可以负载平衡,但如何封装数据逻辑是个问题,比如说我应该怎样像以前类封装一样,把不同的业务逻辑封装起来
2.在中间层中如何实现连接池,还是控件自己本身就有这样的功能
3.怎样让客户端数据同步,如何一客户改变了数据,怎样通知另一正在浏览的客户

待续
相信这些问题你也会关心,欢迎大家热烈讨论
msn:dreamnan@hotmail.com
...全文
51 47 打赏 收藏 转发到动态 举报
写回复
用AI写文章
47 条回复
切换为时间正序
请发表友善的回复…
发表回复
漫漫程序人生 2003-05-30
  • 打赏
  • 举报
回复
三层只是相对而言,而不是要你去数,实际上,你把所有的中间技术全部算上三层,那多少层了,不要去揪小辫子,好好探讨一下,怎样让我的程序更易于维护和管理,更易于扩展升级,功能更强大,高性能等等。。。。。。。。
强力建议推出msn:delphi联盟
dreamnan@hotmail.com
猛禽 2003-05-07
  • 打赏
  • 举报
回复
这个贴子本来早就看到了,因为看到有人召唤太可怕,所以就用MSN把他叫来了。
今天回来一看讨论得很热烈,忍不住也来插一嘴。
1、关键是要有OO的思想,做好分析和设计,用多个RDM来把Business Object实现了就好了
2、具体实现要看你是用什么多层技术,用DCOM就要自己实现,用MTS/COM+则自己有一套
3、CallBacks可以实现,不过不太好用,最好自己用Socket另外实现,如果是两层C/S,InterBase的IBEvent很好用。
pepo2000 2003-05-07
  • 打赏
  • 举报
回复
up
漫漫程序人生 2003-05-06
  • 打赏
  • 举报
回复
太可怕兄和 ihihonline小小所提到的多个RDM远程数据模块的方法的确是一种折中的办法,
与同一业务相关的数据感知控件放到同一个RDM上,将来即使需要把这个业务独立出来,也比较容易。十分感谢!但不知其他同仁有没有更好的解决办法!
linzhisong 2003-05-02
  • 打赏
  • 举报
回复
男人还的进来!

是男厕嘛?
wang0110 2003-05-02
  • 打赏
  • 举报
回复
你是蛮夷吗?
僵哥 2003-05-02
  • 打赏
  • 举报
回复
这个标题我真有点看不懂,对于中文这意思还真有点复杂度
wang0110 2003-05-02
  • 打赏
  • 举报
回复
真不想看到,可是看到了;真不想进来,可是进来了。
当男人真累啊.....
comanche 2003-05-01
  • 打赏
  • 举报
回复
下一个嘛
blucecat 2003-05-01
  • 打赏
  • 举报
回复
遗憾,我还没用过msn
comanche 2003-04-30
  • 打赏
  • 举报
回复
我是男人...

那个 http://search.csdn.net 不错,
在这里写 三层 or MIDAS 能找到非常多的好贴,好多我都没见到,上网时间有限...好在现下有宽带了呵 ^_^

回头看了我自已的贴,有些说得有些不负责哈,现在有这个东东了,以后我可要小心了,看来发的贴还是要负责点,免得将来给人查出来,骂两句就算了,怕得是担误了初学者,这里先对不起了,以后一定注意...
blucecat 2003-04-30
  • 打赏
  • 举报
回复
comanche(太可怕) :
这样给你宣传一下,你就怕了?怕什么呢?暗地里高兴吧!

那会儿学三层的时候你的确帮了我不少(你不用找我的贴子了,不是这个账号),
还有hzb(Explorer),所以我会记住你们的:) 这样热心的高手就是让人尊敬!
鞠躬100000次
comanche 2003-04-30
  • 打赏
  • 举报
回复
几层楼以上的 blucecat 兄弟加我的 MSN :comanche@yeah.net,我这还有不少也用三层开发中的兄弟,welcome to join us
ihihonline 2003-04-30
  • 打赏
  • 举报
回复
第一个问题,有此搞不清楚以原生ADO进行封装和业务规则、逻辑规则有什么直接的关系?OK,的确,封装低层的ADO当然可以实现业务规则,但是我不仅想问,这样的东西有必要做吗?如果的确要做的话,那么我想应该中练手才用的,为什么?这样的话,我变一点业务规则的话,后果是什么?而现在你将数据和规则紧紧的绑在一起应该不是很好的,再者,如此之类的组件也许它的重用必很糟糕,当然,如果你在设计期想的足够的完美的话。

同志们讨论讨论,关于第一个问题,远程数据模块控件越来越多,怎么管理,爆炸了
如果按你的这句话去理解的话,那么太可怕已经回答的差不多了,我再进行强调,你可以用异步的方式访问不同的RDM,其实,一个应用程序中放多个RDM也还算是一种折衷的方法,呵呵。
ihihonline 2003-04-30
  • 打赏
  • 举报
回复
1.在三层结构中我如何 架构我业务逻辑, 使之具备无关性
我以前做ado 原生接口 dll ,自己写接口 和类实现,是可以做到这一点,但这样不能用数据感知控件,未免不爽,而且数据感知控件的效率也高一些
现在三层是可以用数据感知控件了,而且可以负载平衡,但如何封装数据逻辑是个问题,比如说我应该怎样像以前类封装一样,把不同的业务逻辑封装起来
2.在中间层中如何实现连接池,还是控件自己本身就有这样的功能
3.怎样让客户端数据同步,如何一客户改变了数据,怎样通知另一正在浏览的客户
============================================================
第一个问题,不是很清楚,甚至有些糊涂。
第二个问题:中间层如何实现连接池呢?其实,很多的连接池都是以有的组件给你提供的,当然,是你写了组件,加载了连接池,而客户进行访问时就可以直接利用连接池了,不然的话,连接池没有什么用处,也很茫然,不知道你所说的是通指池子呢?还是仅仅是连接池呢?连接池很容易实现和理解,其实,你打开ADOConnection or ODBC里边看一看,都有连接池的应用。提醒一点:单纯的控件实现连接池的话,我想是没有多大意义的。
第三个问题:如何让客户端数据同步:关于此类的讨论很多,然而没有一个完整的或是满意的答案,原因很简单,不可能实时的做到数据同步,当然,如果你仅仅是两三个客户的话,当然有可能,如果你的确想要做到实时的同步,那么不防试一试将数据缓冲放在服务器端(然而,事实证明,将数据缓冲放在服务器端是一种低效率的办法,当然,它的确可以实现一定程度的同步,不要告诉我你从来不用缓冲。)记得在之前的讨论中有很多关于同步以数据库的方式进行,而我觉的那种很不现实,为什么呢?因为我们不可能给数据库也进行Lock,各种同步信息在此的利用提体不出来,因为做为一个分布式的系统,用户的分布有可能是一个网段内,也有可能是跨地域的两个地方,因此不应该用编码的机制进行,所以可行的办法就是让服务器去处理,而代价是曾加了网络的回路、效率。
del_c_sharp 2003-04-26
  • 打赏
  • 举报
回复
呵呵红叶兄讲的好口渴,摩托送水来了,西西!!!!

空中居士 2003-04-26
  • 打赏
  • 举报
回复
天哪,出这样的标题,不舒服.
h_huajun 2003-04-26
  • 打赏
  • 举报
回复
路过
eastliangliang 2003-04-25
  • 打赏
  • 举报
回复
业务对象,好抽象,带方法的么?请红叶给讲讲吧。
blueshrimp 2003-04-24
  • 打赏
  • 举报
回复
我进来只是想表示我是男人
加载更多回复(27)

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧