首页 > 编程 > .NET > 正文

MSMQ,Enterprise Service, DotNet Remoting,Web Servi

2024-07-21 02:25:30
字体:
来源:转载
供稿:网友
  • 网站运营seo文章大全
  • 提供全面的站长运营经验及seo技术!
  • 对于送耦合的引用,有一下四种选项。

    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 服务。
    这是个标准的东西,我的意见是标准的东西不见的都是最好的。在保证标准的同时,丢失了很多特性。

    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表