关于DCOM的问题?(50分)

  • 主题发起人 主题发起人 only you
  • 开始时间 开始时间
O

only you

Unregistered / Unconfirmed
GUEST, unregistred user!
我编了一个局域网会议程序,有下面的问题想请教:
采用的是DCOM技术。
1.效率问题:对同一函数的不同用户访问时运行方式是排队还是并行!200个用户会不会很慢!
2.什么方法可以避免在客户端运行server注册。
要求:
不要灌水,有理有拒,如果是猜想请详陈理由,如果有实质的建议再加分!
 
DCOM让我得头昏眼花,
1。效率问题,这个不好说。
和你写的COM有关,因为COM中的线程有4中方式(据说Win2k中有Neutral):
A。Single Thread
B. Apartment Model
C. Free Threading(MultiThreaded Threading)
D. Both(Mixed Threading Model)
A.的方式肯定不行,B 好像是排队的(表面上是并行),
C。有些复杂
 
Delphi 5 对Apartment线程模型支持很棒,每个客户端对应一个实例,并且每个客户使用
一个线程,200个用户也不会太慢,不过 NT 操作系统内线程数达到 200 个的话,效率已经
有相当大的降低了。
建议:花两天时间仔细弄懂 李维的 分布式多层应用系统篇 一书第六章,我实在没法说的
很细(除非上聊天室)。
使用 Delphi 5 的 MIDAS 技术可以不在客户端注册服务器,但只能使用 Late Binding 和
Dispatch Table 调用方式,不可使用 Early Binding 方式(其实没有必要)。
建议:多做实验。
 
再加100分
 
1.效率问题:对同一函数的不同用户访问时运行方式是排队还是并行!200个用户会不会很慢!
A。是排队还是并行:要看你DCOM用哪一种模式。通常是Apartment Model,排队的
B。会议系统,200个用户的速度取决于你的服务器,网络的通信能力及程序。一般PⅢ500,256M服务器
10M的网络,速度是较慢的。
2.什么方法可以避免在客户端运行server注册
编程的方法,GUID和CLASSID在程序中并调用DISP和QURYINTFACE接口。
 
如果方便,你不妨举例说明,分数决不食言!!
 
还是那几句话:
1.Delphi 5 对Apartment线程模型支持很棒, 它能自动创建独立线程, Apartment模型在
Delphi 5 下的确是并行执行。(VC++ 还不是自动支持, 需要自己编码实现)
诀窍: 使用Remote Data Module, 不要用AutoObject
2.Delphi 5 的 MIDAS 技术可以不在客户端注册服务器, 使用的是 Late Binding 或
Delphi 支持的 Dispatch Table 方式调用服务器
诀窍: 比如服务器接口为 IAbcd, 不要直接使用它, 用 AppServer 或接口 IAbcdDisp
都不需要在客户端注册。
如果你理解了 Delphi 5 MIDAS 的大部分功能, 绝对会更加钟情 Delphi 的。
 
可是我已经用了DCOM,而我不想换其它方式,还有更好的方法吗?
 
Delphi使得DCOM编程变得很容易,微软最终将用COM技术代替DLL的API函数
 
鱼和熊掌不可得兼,AppServer 速度慢哦~!@
 
多人接受答案了。
 
后退
顶部