首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

.NET Remoting 之了解

使用.NET Remoting 在不同应用程序域之 间通信可以在同一个进程中、一个系统的进程之间或不同系统的进程之间进行。 对于客户端和服务器应用程序之间的通信,可以使用几种不同的技术。...所发送的数据可以是自己的自定义协议,其中由服务器解 释数据包,这样服务器就知道应调用什么方法。我们不仅需要处理发送的数据,还需要自己创建线程。   ...使用.NET,很容易把远程对象和本地对象区分开:即任何派生自 MarshalByRefObject 的类从来都不会离开它的应用程序域。客户端可以通过代理调用远程对 象的方法。...此外,还可以创建自定义信道,这些信道使用其他协议通信。   ●  消息——消息被发送到信道中。消息是为客户端和服务器之间的通信而创建的。消息包含 远程对象的信息、被调用方法的名称以及所有的参数。...●  格式化程序——格式化程序用于定义消息如何传输到信道中。.NET 4 有SOAP 格式化程序 和二进制格式化程序。

84110

WCF,Net remoting,Web service

二 WebService的运行机理 首先客户端从服务器的到WebService的WSDL,同时在客户端声称一个代理类(Proxy Class), 这个代理类负责与WebService服务器进行Request...和Response, 当一个数据(XML格式的)被封装成SOAP格式的数据流发送到服务器端的时候,就会生成一个进程对象并且把接收到这个Request的SOAP包进行解析,然后对事物进行处理,处理结束以后再对这个计算结果进行...您可以过滤入站和出站消息,从多方面控制类型封送和元数据的生成。使用 .NET Remoting,还能实现您自己的格式化程序和信道。...性能 从原始性能方面来讲,使用 TCP 信道和二进制格式化程序时,.NET Remoting 管线能够提供最快的通信。...企业服务 ASP.NET Web 服务或通过 .NET Remoting 提供的对象可以使用本地事务根据单个数据库协调工作。

1.5K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    .Net Remoting(基本操作) - Part.2

    Formatter将消息进行序列化之后,然后将其发送到通道中,由通道将消息发送到远程对象。...客户激活模式的缺点就是 如果客户端过多时,或者服务对象为“大对象”时,服务器端的压力过大。另外,客户程序可能只需要调用服务对象的一个方法,但是却持有服务对象过长时间,这样浪费了服务器的资源。...可以从远程获取到方法执行的返回值。(客户端从GetCount()方法获得了返回值) 上面的第3点看起来好像是理所当然的,如果是调用本地对象的方法,那么确实是显而易见的。...那么如何进行对象的传值封送呢(将DemoClass直接传到本地)?实际上,在上面的例子中,我们已经进行了传值封送,这个过程发生在我们在客户端调用 GetCount() 时。为什么呢?...那么我们继续上面的问题,如何将DemoClass整个传值封送过来呢?首先,我认为没有这个必要,如果将服务对象整个封送到客户端来执行,那么Remoting还有什么意义呢?其次,我们来看如何实现它。

    57420

    .NET Remoting 体系结构 之 在远程方法中传递对象

    为了阐明类的编组问题,我们将把远程对象改为向客户端发送一个对象:MySerialized 类将按 值编组。在方法中,消息被写入控制台中,以便验证调用是在客户端上进行还是在服务器上进行。...而.NET Remoting 使用另一种序列化机制来序列化所有数据,包括所有私有数据。恶意客户端可以在序列化和反序列化阶段中破坏应用程序。...例如,如果要把集合中的数据发送给服务器,服务器再对这些数据执行一些计算操作,并给客户端返回一个简单的值,把集合发送回客户端就不是很有效。...如果数据应发送给服务器、客户端或双向发送,则可以使用 COM 给参数声明方向特性 [in]、[out]和 [in, out]。在 C#中,有相似的特性:ref 和 out 方法参数。...使用 ref 参数时,数据可以双向编组;使用 out 时,数据从服务器发送到客户端;不使用参数 ref 和out 时,数据从客户端发送到服务器。

    1.1K20

    web service 和 remoting 有什么区别

    S的系统中,Web Service是用在B/S系统中 后者还是各语言的通用接口 相同之处就是都基于XML 为了能清楚地描述Web Service 和Remoting之间得区别,我打算从他们的体系结构上来说起...XML的数据格式 3. SOAP封装格式 4. WSDL的描述方式 5....或者[WebMethodAttribute] WebService的运行机理 首先客户端从服务器的到WebService的WSDL,同时在客户端声称一个代理类(Proxy Class) 这个代理类负责与...WebService服务器进行Request 和Response 当一个数据(XML格式的)被封装成SOAP格式的数据流发送到服务器端的时候,就会生成一个进程对象并且把接收到这个Request的SOAP...有所不同的是,它支持HTTP以及TCP信道,而且它不仅能传输XML格式的SOAP包,也可以传输传统意义上的二进制流,这使得它变得效率更高也更加灵活。

    38430

    标准化API设计流程!

    RPC(Remote Procedure Call)被称为“远程”,因为它在微服务架构下,当服务部署到不同的服务器时,可以实现远程服务之间的通信。从用户的角度来看,它就像一个本地函数调用。...gRPC将客户端存根编码为二进制格式,并将其发送到低级传输层。 步骤5:gRPC通过HTTP 2在网络上发送数据包。由于二进制编码和网络优化,gRPC据说比JSON快5倍。...步骤6 - 8:支付服务(gRPC服务器)从网络接收数据包,对其进行解码,并调用服务器应用程序。 步骤9 - 11:结果从服务器应用程序返回,并进行编码并发送到传输层。...结果流回客户端,以提高服务响应能力。 异步日志记录 同步日志记录处理每次调用的磁盘,可能会降低系统的速度。异步日志记录首先将日志发送到无锁缓冲区,然后立即返回。日志将定期刷新到磁盘。...缓存 我们可以将频繁访问的数据存储到缓存中。客户端可以先查询该高速缓存,而不是直接访问数据库。如果存在缓存未命中,则客户端可以从数据库查询。

    17110

    dubbo常见面试题整理(dubbo原理面试题)

    1. dubbo: rpc底层调用原理和过程、负载均衡规则、如何进行版本控制 dubbo 核心组件 Remoting: 网络通信框架,实现了 sync-over-async 和request-response...A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据 b) 首先A和B建立TCP链接,并且确定好RPC...框架的网路端口,能够进行网络通信 c) 然后A服务器将需要调用B服务器的方法和参数进行序列化(Serialize) d) 通过第一步建立的链接,将序列化后的二进制流发送给B e) B服务器收到请求后,需要对参数进行反序列化...,恢复为内存中的表达方式 f) 然后B服务器找到对应的方法(寻址的一部分)进行本地调用,然后得到返回值 g) B服务器对返回值再次进行序列化,并且通过相同的途径发送给A h) A对B服务器返回的信息再进行反序列化...object作为value e) put到全局concurrenthashmap中 f) 服务端接收到请求并处理完成后,将结果发送给客户端,客户端专门监听消息的线程收到结果,取得唯一id,从全局concurrenthashmap

    89020

    RocketMQ底层原理和源码解析

    作为客户端发送消息时候,需要根据Msg的Topic从本地缓存的TopicPublishInfoTable获取路由信息。...为了实现客户端与服务器之间高效的数据请求与接收,RocketMQ消息队列自定义了通信协议并在Netty的基础之上扩展了通信模块。...了解了mq服务启动的过程,接下来,我们按照一条消息从客户端发出,最终到服务端的存储层并如何落盘,这一条调用链来分析源码,了解一条消息是怎么处理的。 3....Remoting通信层 Remoting模块类结构图: ? 消息从Client调入通信层的NettyRemotingClient: ?...,需要继续等待新数据被传输到从服务器,从服务器数据的复制是在另外一个线程HAConnection中去拉取,所以消息发送者在这里需要等待数据传输的结果,GroupTransferService就是实现该功能

    4.2K40

    dotnet remoting 使用事件

    在RPC如果需要使用事件,相对是比较难的。本文告诉大家如何在 .net remoting 使用事件。 在我这个博客WPF 使用RPC调用其他进程已经有告诉大家如何简单使用。...在上个文章告诉大家的时候没有告诉大家使用的 Channel 的方式,下面让我来告诉大家如何使用 Channel 使用 Channel 实际上可以使用的 Channel 是有很多,可以自己定义,但是建议使用的有三个...这就是用事件的方法,需要记得 在库创建两个类,一个类用于从其他进程发送事件给呆磨,另一个类用于接收这个事件,把事件转发给呆磨 原因是在使用 += 需要序列化右边的这个类,而如何直接对 Foo 类进行添加事件...序列方法 最好使用一个本地类让远程进程可见的方法,将远程进程的事件转换为本地的事件 虽然给了一些需要注意的点,但是如果可以按照下面方式进行开发,会少很多坑。...,原因就是本地监听的代码是将 NativeEventHandle 序列化发送到远程,但是序列化的 NativeEventHandle和本地的连接可能被回收,于是调用 Progress 虽然能成功,而且可以看到里面有对象

    34110

    .net remoting 使用事件

    在RPC如果需要使用事件,相对是比较难的。本文告诉大家如何在 .net remoting 使用事件。 在我这个博客WPF 使用RPC调用其他进程已经有告诉大家如何简单使用。...在上个文章告诉大家的时候没有告诉大家使用的 Channel 的方式,下面让我来告诉大家如何使用 Channel 使用 Channel 实际上可以使用的 Channel 是有很多,可以自己定义,但是建议使用的有三个...这就是用事件的方法,需要记得 在库创建两个类,一个类用于从其他进程发送事件给呆磨,另一个类用于接收这个事件,把事件转发给呆磨 原因是在使用 += 需要序列化右边的这个类,而如何直接对 Foo 类进行添加事件...序列方法 最好使用一个本地类让远程进程可见的方法,将远程进程的事件转换为本地的事件 虽然给了一些需要注意的点,但是如果可以按照下面方式进行开发,会少很多坑。...,原因就是本地监听的代码是将 NativeEventHandle 序列化发送到远程,但是序列化的 NativeEventHandle和本地的连接可能被回收,于是调用 Progress 虽然能成功,而且可以看到里面有对象

    73110

    dotnet remoting 使用事件

    在RPC如果需要使用事件,相对是比较难的。本文告诉大家如何在 .net remoting 使用事件。 在我这个博客WPF 使用RPC调用其他进程已经有告诉大家如何简单使用。...在上个文章告诉大家的时候没有告诉大家使用的 Channel 的方式,下面让我来告诉大家如何使用 Channel 使用 Channel 实际上可以使用的 Channel 是有很多,可以自己定义,但是建议使用的有三个...这就是用事件的方法,需要记得 在库创建两个类,一个类用于从其他进程发送事件给呆磨,另一个类用于接收这个事件,把事件转发给呆磨 原因是在使用 += 需要序列化右边的这个类,而如何直接对 Foo 类进行添加事件...序列方法 最好使用一个本地类让远程进程可见的方法,将远程进程的事件转换为本地的事件 虽然给了一些需要注意的点,但是如果可以按照下面方式进行开发,会少很多坑。...,原因就是本地监听的代码是将 NativeEventHandle 序列化发送到远程,但是序列化的 NativeEventHandle和本地的连接可能被回收,于是调用 Progress 虽然能成功,而且可以看到里面有对象

    50630

    Java分布式开发不得不知的Dubbo技术详细介绍

    6、升级ZooKeeper客户端:将dubbo中的zookeeper客户端升级到最新的版本,以修正老版本中包含的bug。...,不影响已运行的提供者和消费者,消费者在本地缓存了提供者列表 注册中心和监控中心都是可选的,服务消费者可以直连服务提供者 (2) 健状性: 监控中心宕掉不影响使用,只是丢失部分采样数据数据库宕掉后,注册中心仍能通过缓存提供服务列表查询...,但不能注册新服务注册中心对等集群,任意一台宕掉后,将自动切换到另一台注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯服务提供者无状态,任意一台宕掉后,不影响使用服务提供者全部宕掉后,服务消费者应用将无法使用...本地调用 本地调用,使用了Injvm协议,是一个伪协议,它不开启端口,不发起远程调用,只在JVM内直接关联,但执行Dubbo的Filter链。...当客户端Client连接到ZooKeeper集群,并且执行写请求时,这些请求会被发送到Leader节点上,然后Leader节点上数据变更会同步到集群中其他的Follower节点。

    1.1K30

    消息队列(Message Queue)简介及其使用

    消息被发送到队列中。“消息队列”是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。...它们中有些提供路由信息以确定如何发送消息,有些保存整个网络的重要信息,而有些只是发送和接收消息。 “消息队列”安装期间,管理员确定哪些服务器可以互相通信,并设置特定服务器的特殊角色。...“消息队列”管理员还在网络中设置一台或多台作为“路由服务器”的计算机。路由服务器查看各站点链接的开销,确定经过多个站点传递消息的最快和最有效的方法,以此决定如何传递消息。 2....每个“消息队列”客户端上的单个日记队列存储从该计算机发送的消息副本。在服务器上为每个队列创建了一个单独的日记队列。此日记跟踪从该队列中移除的消息。 “死信队列”存储无法传递或已过期的消息的副本。...Asynchronous Communication) 队列通信天生就是异步的,因为将消息发送到队列和从队列中接收消息是在不同的进程中完成的。

    1.9K81

    ASP.NET中各命名空间及作用

    有关如何使用此命名空间的其他信息,请参见 OdbcDataReader、OdbcCommand 和 OdbcConnection 类。 ...System.Runtime.Remoting.Activation  提供支持服务器和客户端远程对象激活的类和对象。 ...System.Runtime.Remoting.Proxies  包含控制和提供代理功能的类。代理是作为远程对象映像的本地对象。代理使客户端可以跨远程处理边界访问对象。 ...System.Web.SessionState  提供支持在服务器上存储特定于 Web 应用程序中的单个客户端的数据的类和接口。会话状态数据用于向客户端提供与应用程序的持久连接的外观。...状态信息可以存储在本地进程内存中,或者,对于网络场配置来说,可以使用 ASP.NET 状态服务或 SQL Server 数据库将状态信息存储在进程外。

    3.2K10

    【Netty】一些项目案例

    IM 即时通讯系统 使用Netty实现了单聊和群聊,将Netty从基础到项目一体化,可以说是入门Netty不错的选择。...B 标识的消息数据包发送到服务器,然后服务器从消息数据包中拿到 B 的标识,找到对应的 B 的连接,将消息发送给 B 任意一方发消息给对方,如果对方不在线,需要将消息缓存,对方上线之后再发送 我们把客户端与服务端之间相互通信的数据包称为指令数据包...服务端如何启动 客户端如何启动 数据载体 ByteBuf 长连自定义协议如何设计 粘包拆包原理与实践 如何实现自定义编解码 pipeline 与 channelHandler 定时发心跳怎么做 如何进行连接空闲检测...TCP 通信需要的数据格式为二进制,因此,接下来通过自定义二进制协议将指令对象封装成二进制,这一步称为协议的编码 对于收到服务端的数据,首先需要截取出一段完整的二进制数据包(拆包粘包相关的内容后续小节会讲解...) 将此二进制数据包解析成指令对象,比如收到消息 将指令对象送到对应的逻辑处理器来处理 服务端使用 Netty 的程序逻辑结构 同类型的项目还有: 琪琪IM:https://gitee.com/qiqiim

    4.6K21

    Flex与外部的数据通信

    Ø 如何保持分布式的客户端系统和服务器端系统之间的状态一致性?...Flex客户端RemoteObject组件与服务器端通过HTTP协议传递AMF格式的二进制数据进行通信的大致过程如下: 1)客户端RemoteObject将调用参数中的ActionScript对象序列化为...“第三方软件”有两个最基本的作用: Ø 服务器端对象序列化为AMF格式数据和将AMF格式数据反序列化为服务器端对象。 Ø 将客户端的请求映射为服务器端相应对象上的方法调用。...此设置仅在将数据从服务器发回到客户端时很重要,它控制 org.w3c.dom.Document 实例如何发送到 ActionScript。...以下关于Flex中Remoting数据通信方式的说法,正确的是() A. Remoting使用AMF二进制信息格式化传递数据。 B.

    7310

    消息推送原理

    来看下基于RMI的一次完整的远程通信过程的原理: 客户端发起请求,请求转交至RMI客户端的stub类; stub类将请求的接口、方法、参数等信息进行序列化; 基于socket将序列化后的流传输至服务器端...标准格式的二进制文件。 怎么样将请求转化为传输的流?将二进制格式文件转化为流。 怎么接收和处理流?...首先客户端从服务器获得WebService的WSDL,同时在客户端生成一个代理类(Proxy Class),这个代理类负责与WebService服务器进行Request和Response。...当一个数据(XML格式的)被封装成SOAP格式的数据流发送到服务器端的时候,就会生成一个进程对象并且把接收到这个Request的SOAP包进行解析,然后对事物进行处理,处理结束以后再对这个计算结果进行SOAP...需通过Hessian本身提供的API来发起请求。 怎么将请求转化为符合协议的格式的?Hessian通过其自定义的串行化机制将请求信息进行序列化,产生二进制流。 使用什么传输协议传输?

    3.4K30
    领券