三层结构的一个问题

zhlmxh 2006-06-28 06:05:16
我没有做过三层的程序,但我看过许多关于三层的资料。我一直以为客户端通过中间层与数据库联接,无论有多少个客户端,与数据库的联接只有一个。今天我试着用Delphi做了一个简单的三层程序,创建中间层时Instancing选项选择的是Multiple Instance,数据库为SQL Server。我发现,当我打开3个客户端,从SQL Server企业管理器中查看数据库的联接为3,不是我一直以为的1个。如果有N个客户端,与数据库的联接不就是N个了吗?如果客户端数量很大岂不一样占用大量资源。这与C/S结构的又有什么区别?
...全文
390 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
SUNDATA 2006-07-03
  • 打赏
  • 举报
回复
如果处理的数据量很大,在客户端无法处理或处理时间太长,这样中间层服务器就显示他的功用了,中间层有很多不同功用的中间层。
comanche 2006-07-03
  • 打赏
  • 举报
回复
这种问题讨论多了, 是 pooling, midas 没提供什么 pooling, 只提供一种数据包封装, pooling com+ 里有设置, 在 com+ application 的属性里, 缓冲池大小就是 pooling
但, 建立远程对像时要建立线程模型成 Both(介于 multi 和 single的一种, 在回调机制上是 single)

com+ 也可以建立 free 的线程模型, 不过 midas 不支持, 编程时就不能直接用向导的代码
huitouren519 2006-07-03
  • 打赏
  • 举报
回复
学习
jcxhan 2006-07-02
  • 打赏
  • 举报
回复
up
JB7 2006-06-29
  • 打赏
  • 举报
回复
是这样的,只有一个连接怎么保护数据并发运行啊.多层所说的并发是指中间层的服务进程是并发或是单发,而不是数据库连接./
zhlmxh 2006-06-29
  • 打赏
  • 举报
回复
既然多层所说的并发是指中间层的服务进程是并发或是单发,哪为什么很多多层资料的结构图都是下面这样的呢?

Client1-----↘
Client2-----→中间层-----→数据服务器
Client3-----↗
.
.
.

岂不是要改成下面这样
Client1-----→中间层-----↘
Client2-----→中间层-----→数据服务器
Client3-----→中间层-----↗
.
.
.
这不就是C/S结构吗?只是多了一个中间层。
vfork 2006-06-28
  • 打赏
  • 举报
回复
是这样的,这就是为什么用midas做系统,
两个用户修改同一记录时会报错,因为他受事物保护.
而两层则要自己写代码控制.

1,593

社区成员

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

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