对于送耦合的引用,有一下四种选项。
1.msmq
    从windows nt 开始微软就开始提供msmq 的支持,一直到现在的3.0,主要提供一下几个特性的支持。 可靠的消息传递,类似mail 系统,有脱机支持可设置消息的优先级,label的各种额外的标示事务支持 通过dc,ic的灵活应,有好的缩放性对于客户端,要求必须是windows 系统,从windowsce 到windows .net 2003 都作支持。可以通过连接器跟其他的非微软技术集成.net 有一个专门的封装 system.messaing namespace.
2.enterprise service
    .net 中其实通过托管的enterprise service 跟 com+ 应用架构交互。 从windows 2000 开始有这个组件,目前到windows 2003 版本是1.1 我认为有几个特性值得一用对象池,对于对象构造特别慢,而又没有状态的应用特别适合。很类似我们 ado.net 中的连接吃。可以跟jit去结合。分布式事务协调,加上事务补偿。这是一大优点另外一点就是送耦合事件,这一点对于plug and play 的订阅式应用很有帮助。当然直接的客户端也必须是 windows 2000 以及以上的os.
3.dotnet remoting
    dotnet remoing 的中文翻译时远程处理,其实是一种.net 平台下面很好的一种远程处理调用,提供了开发的架构。灵活的通讯传输协议,当然也可以自己去扩展。远程对象的调用提供了多种方式,可以使有状态的,也可以使无状态。对于开发人员,感觉根本地调用一样方便。这一点主要却别于web service。其实这种应用类似一个相对耦合的应用。客户端和服务端丰富的通讯模型是基于.net 平台。也就是说如果客户端不一定是.net 平台的话,remoting 就显得不是很适合。一个简单的例子就是对象的传递从remoting 服务端传递一个对象给客户端,可以是对象的远程的一个远程引用,也可以使一个对象的copy,就是我们通常说的mbr 或者mbv.当然,web 服务是无法实现对象的引用传递,web 服务只能是一个mbv,而web 服务这里的mbv 作的就不够彻底了。http://dotnet.mblogger.cn/montaque/posts/2094.aspx 提到他们走的不同的序列化方式。对于web 服务,只是一个很浅的copy。也就是说对象在传递到服务端的时候,并没有把 100% 的状态传递过去。而remoting 传递的对象就比较地道。或许这就是一个.net remoting 相对于web 服务比较更贴近本地调用的一个体现缺点前面提到了,就是丰富的特性是基于。net 这个平台。.net 中通过 system.runtime.remoting.dll.
4. web 服务。
    这是个标准的东西,我的意见是标准的东西不见的都是最好的。在保证标准的同时,丢失了很多特性。
 
文章整理:站长天空 网址:http://www.z6688.com/

posted on 2007-12-06 09:41  Injun  阅读(230)  评论(0)    收藏  举报