.net Remoting(2)信道,MarshalByRefObject类

remoting提供一种允许对象通过应用程序域去与另一对象进行交互的框架。如果要通过应用程序域进行通信,在remoting中要通过信道(channel)来实现。

 

信道

信道是跨越远程处理边界(应用程序域,进程,计算间之间)在应用程序之间传递消息的对象。信道可以在终结点监听入站消息,向基他终结点发送出站消息,或进行这两种操作。

信道须实现IChannel接口,这个接口提供了信息性属性,如:ChannelNameChannelPriorityIChannelReceiver接口,用于监听特定端口上的特定协议的信道实现。IChannelSender接口用于发送消息的信道实现。TcpChannelHttpChannel对象都实现了这两种接口,可以发送或接收消息。

 

.net 提供了几种信道实现:

1IpcChannel

通过使用命名管道为同一台计算机上的多进程应用程序提供高速进程间通信。它执行的功能:

·使用命名管道进行发送方和接收方的通信

·支持以二进制格式和行业标准soap序列化格式编码

·生成并使用对象引用的ChannelDataStore

·支持模拟和委托

·支持在命名管道上利用访问控制列表(ACL)来提供高级访问控制

 

在应用程序与本机其它进程中的另一应用程序进行通信时,优先使用IpcChannel

2TcpChannel

二进制格式化程序装所有消息序列化为二进制流,并使用Tcp协议将流传输至URI,它执行以下功能:

·使用tcp socket进行发送方与接收方的通信

·支持以二进制格式和行业标准soap序列化格式编码负载

·生成并使用对象引用的ChannelDataStore

·支持模拟和委托

·支持SSPI加密

HttpChannel连接到用TcpChannel进行监听的服务器应用程序域时,客户端将收到:基础连接已经关闭:接收时发生错误,这样的异常。存在信道不匹配的问题。

3HttpChannel

使用Soap协议在远程对象之间传输消息。所有的消息都通过SoapFormatter传递,这个格式化器会将消息转换为xml,然后进行序列化,同时向数据流中添加soap头。如果指定二进制格式化器,则会创建二进制数据流。最后通过http协议将数据流传输到URIHttpChannel符合soap1.1标准,它执行以下功能:

·通过http协议在发送方和接收方之间的通信

·支持以soap和二进制格式编码负载

·将接收方设置为通过.nettcp套接字接收http请求并发送http响应

·支持模拟和委托

·支持SSPI加密

HttpChannel一次只向给定服务器打开指定数目的连接。默认为2,可通过clientConnectionLimit属性进行设置。

 

使用.net remoting处理的应用程序来跨应用程序域边界进行通信,需要一个可远程处理的类的实现,一个监听或宿主应用程序域,一个客户端或调用应用程序域,同时段将每个应用程序域中的远程处理系统都配置为对可远程处理的类型使用远程激活

 

远程对象

为了让其它应用程序域中的对象能访问类的实例,那么这个类要从MarshalByRefObject派生。

public class RemotableType : MarshalByRefObject

{}

 

这个类支持远程处理的应用程序中跨应用程序域边界访问对象。

同一应用程序域中的对象直接通信。不同应用程序域中的对象的通信方式有两种:

·跨应用程序域边界传输对象副本

·通过代理交换消息

 

MarshalByRefObject是通过使用代理交换消息来跨应用程序域边界进行通信的对象的基类。


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:
本帖最后由 勇哥,很想停止 于 2024-03-28 21:30:38 编辑

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864