• λ我爱Aspx >> Asp.Net >> Microsoft .NET Remoting:技术概述
  • Microsoft .NET Remoting:技术概述

  • :未知  Դ:internet  :2007-5-5 19:51:00  ؼ:.net
  • 类的 RegisterChannel
所有的通道都由 IChannel 导出,并根据通道的用途实现 IChannelReceiverIchannelSender 。大多数通道既实现了接收器接口,又实现了发送器接口,使它们可以在两个方向上通讯。当客户端调用代理上的某个方法时,远程处理框架会截取该调用并将其转为要发送到 RealProxy 类(或一个实现 RealProxy 类的实例)的消息。RealProxy 将消息转发到消息接收器以进行处理。消息接收器负责与远程对象注册的通道之间建立连接,并通过通道(在不同的应用程序域)将消息从调度位置传输到远程对象本身。激活了一个远程对象后,客户端会通过调用选定通道上的 CreateMessageSink 来选择通道,并从其上检索能够与远程对象通讯的消息接收器。 远程处理框架的一个容易混淆的方面是远程对象和通道之间的关系。例如,如果 SingleCall 远程对象只在被调用时才激活,那么该对象如何侦听要连接的客户端? 部分答案在于这样一个事实:远程对象并不拥有自己的通道,而是共享通道。作为远程对象宿主的服务器应用程序必须注册要通过远程处理框架公开的对象以及所需的通道。注册后的通道会自动开始在指定的端口侦听客户请求。注册远程对象后,会为该对象创建一个 ObjRef 并将其存储在表中。当通道上传来一个请求时,远程处理框架会检查该消息以确定目标对象,同时检查对象引用表以定位表中的引用。如果找到了对象引用,将从表中检索框架目标对象或在必要时将其激活,然后框架将调用转发至该对象。对于同步调用,在消息调用期间会一直维持来自客户端的连接。因为每个客户端连接都在自己的线程上处理,所以一个通道可以同时服务于多个客户端。 生成商务应用时,安全性是一个重要问题。要满足商务要求,开发人员必须能给远程方法调用添加诸如授权或加密等安全特性。为了实现这一目标,开发人员可以自定义通道,使其能够对与远程对象之间的实际消息传输机制进行控制。在传输到远程应用程序之前,所有的消息都必须流过 SecuritySinkTransportSinkFormatterSink ,且这些消息传递到远程应用程序后会以相反次序流过同样的接收器。

HTTP 通道

HTTP 通道使用 SOAP 协议与远程对象传输消息。所有的消息流过 SOAP 格式化程序时都被转换为 XML 格式且被序列化,所需的 SOAP 头也会被添加到该流中。您也可以指定能够生成二进制数据流的二进制格式化程序。然后,数据流会使用 HTTP 协议传输到目标 URI。

TCP 通道

TCP 通道使用二进制格式化程序将所有的消息序列化为二进制流,并使用 TCP 协议将其传输到目标 URI。

激活

远程处理框架支持远程对象的服务器激活和客户端激活。不需要远程对象在方法调用之间维护任何状态时,一般使用服务器激活。服务器激活也适用于多个客户端调用方法位于同一对象实例上、且对象在函数调用之间维持状态的情况。另一方面,客户端激活对象从客户端实例化,并且客户端通过使用基于租用的专用系统来管理远程对象的生存期。 在可以接受客户端的访问之前,所有的远程对象都必须用远程处理框架注册。对象注册一般由宿主应用程序来完成。宿主应用程序将启动,使用 ChannelServices Ҷƪл˵?
  • һƪDirectX 8.0 简介
    һƪ简单JSP语法