手机版

Net远程处理基础 微软之一 Net远程处理系列教程

时间:2021-10-29 来源:互联网 编辑:宝哥软件园 浏览:

一、远程处理的基础。

什么是远程处理?简而言之,我们可以将其视为一种分布式处理方法。从微软的产品来看,可以说Remoting是DCOM的升级,改进了很多功能,很好地集成到了。Net平台。微软。NET Remoting提供了一个框架,允许一个对象通过应用程序域与另一个对象进行交互。这就是为什么我们使用远程处理。为什么呢?在视窗操作系统中,应用程序被分成独立的进程。这个过程形成了应用程序代码和数据的边界。如果不采用进程间通信(RPC)机制,则在一个进程中执行的代码无法访问另一个进程。这是应用程序的操作系统保护机制。但是,在某些情况下,我们需要跨越应用程序域,与另一个应用程序域进行通信,即跨越边界。

在远程处理中,两个应用程序域之间的对象通信是通过一个通道实现的。如图所示:

//files.jb51.net/file_images/article/201605/201653092451348.jpg

首先,客户端通过远程处理访问通道以获取服务器对象,然后通过代理将其解析为客户端对象。这提供了将服务器对象发布为服务的可能性。远程对象代码可以在服务器上运行(例如服务器激活的对象和客户端激活的对象),然后客户端通过Remoting连接到服务器,获取服务对象并通过序列化在客户端上运行。

在远程处理中,对于要传递的对象,设计者不仅需要知道信道类型和端口号,还需要知道数据包格式。但是,必须注意的是,当客户端获得服务器端对象时,它并不获得实际的服务器端对象,而是获得其引用。这样既保证了客户端和服务器端相关对象的松散耦合,又优化了通信性能。

1.远程处理的两个通道。

远程处理有两个主要通道:Tcp和Http。英寸Net,IChannel接口在系统中定义。runtime.remoting.channel.IChannel接口包括TcpChannel通道类型和Http通道类型。它们对应于这两种类型的远程处理通道。

TcpChannel类型放在命名空间系统中。runtime . remoting . channel . TCp . tcp通道提供了一个基于套接字的传输工具,它使用Tcp协议跨Remoting边界传输序列化的消息流。TcpChannel类型默认将消息对象序列化为二进制格式,因此具有更高的传输性能。HttpChannel类型放在命名空间系统中。runtime.remoting.channel.http .它提供了一种使用http协议的方式,使其可以通过互联网上的防火墙传输序列化的消息流。默认情况下,HttpChannel类型以Soap格式序列化消息对象,因此它具有更好的互操作性。一般我们用TcpChannel局域网中更多。如果你想穿越防火墙,使用HttpChannel。

2.远程对象的激活模式。

在访问远程类型的对象实例之前,必须通过名为“激活”的过程来创建和初始化它。这种客户端通过通道创建远程对象,称为对象激活。在远程处理中,远程对象的激活可以分为两类:服务器端激活和客户端激活。

(1)服务器端激活,也称为WellKnow模式,被翻译成知名对象。为什么叫知名对象激活模式?这是因为在激活对象实例之前,服务器应用程序将在众所周知的统一资源标识符(URI)上发布此类型。然后,服务器进程为此类型配置一个众所周知的对象,并根据指定的端口或地址发布该对象。Net Remoting将服务器端激活分为SingleTon模式和SingleCall模式。

SingleTon模式:这是有状态模式。如果设置为单例激活模式,远程处理将为所有客户端建立相同的对象实例。当对象处于活动状态时,SingleTon实例会处理所有后续的客户端访问请求,无论它们是同一个客户端还是其他客户端。SingleTon实例将在整个方法调用中保持其状态。例如,如果一个远程对象有一个累加方法(I=0;I),由多个客户端调用(例如,两个)。如果设置了SingleTon模式,第一个客户得到值1,第二个客户得到值2,因为他们得到相同的对象实例。如果熟悉Asp.Net的状态管理,可以认为是Application状态。

SingleCall模式:SingleCall是无状态模式。一旦设置为单一调用模式,当客户端调用远程对象的方法时,远程处理将为每个客户端创建一个远程对象实例。

版权声明:Net远程处理基础 微软之一 Net远程处理系列教程是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。