非常同意现在的系分.高手都很热衷于赶时髦,或曰“浮躁”.我也见过非常非常之多人是在为了三层而三层,把简单的问题复杂化,把没必要做成三层的应用特地改成三层,结果得不偿失,事倍功半.
首先,李维所说的:dcom 的连接速度较socket connection 慢, 但是连接完成后, 传输数据较socket connection 要快.我觉得基本正确.要注意一点:这里的socket并非指socket通讯,而是指borland的socketconnection. 【程序编程相关:组件制作之四(定制外观)】
但对王兄后面的一些技术性分析,我觉得还是有值得商榷之处. 【推荐阅读:组件制作之三(图形控件)】
不可否认,ms设计orpc协议是完全基于windows的域用户安全机制,这决定了它有很多的限制,特别是因为用了动态端口,所以基本上是无法穿过firewall(不表示不能,只要打开firewall的全部端口即可,但这样的话firewall就形同虚设了),但也还有其它办法可以解决,典型的就是ms提供的基于iis的cis(com internet services)技术,此外便是borland的socketconnection与webconnection. 【扩展信息:组件制作之二(一个简单组件的制作过程)】
问题在于王兄把dcomconnection与dcom混为一谭了.dcom应用是一种相当于是远程的automation应用,它是通过orpc协议来传输idispatch接口实现的.所谓的dcomconnection便是基于dcom的orpc协议来传输midas的iappserver接口(它也是派生自idispatch接口),而midas(不止是midas,dna也一样)并没有限制dcom连接(即orpc)的服务端必须是dcom应用,后来的mts.com+无一不是基于此,即便是现在.net的remoting也是基于此,它是在成熟的标准rpc基础上,结合了windows的安全机制发展的起来,最关键一点,它的底层协议也是tcp/ip(orpc用了udp与tcp两个协议).王兄所谓的淘汰之说,应该是指dcom应用,而不是指dcom连接吧.
从本质上说这些穿过firewall的技术都是所谓的tunnel技术.... 下一页