Remoting学习

[Remoting] 十一:事件
    摘要:在 Remoting 中使用 Event 主要是为了实现 CallBack 机制,让服务器在接收到某个 "消息" 时,主动调用某个或多个客户端的方法。Runtime.Serialization.Formatters;Formatters.Remoting;Remoting.Channels;Channels.Remoting{    ——点击 此处阅读全文
[Remoting] 十二:配置文件
    摘要:使用配置文件替代硬编码可使应用程序拥有更高的灵活性,尤其是对分布式系统而言,意味着我们可以非常方便地调整分布对象的配置。Remoting 的配置文件比较简单,详细信息可以参考 MSDN。ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.NETDEVFX.v20.chs/dv_fxgenref/html/52ebd450-de87-4a87-8bb9-6b13426fbc63.htm.TcpChannel channel = new TcpChannel(properties, cbin, sbin);RemotingConfiguration.Client.cs TcpChannel channel = new TcpChannel();改成对应的配置文件,就是下面这个样子。    ——点击 此处阅读全文
[Remoting] 十:追踪服务
    摘要:追踪服务是可插入的,我们可以将一个或多个自定义跟踪处理程序注册到追踪服务中,当发生封送、取消封送或断开当前 AppDomain 中的对象或代理时,注册到中的每个追踪处理程序都将被远程处理调用。创建自定义追踪处理程序很简单,实现 ITrackingHandler 接口,然后调用 TrackingServices.RegisterTrackingHandler() 将其实例注册到跟踪服务即可。TrackingServices 实用类还可以注销(TrackingServices.UnregisterTrackingHandler)追踪处理程序,或查询(TrackingServices.RegisteredHandlers)所有的已注册追踪处理程序。Runtime.    ——点击 此处阅读全文
[Remoting] 九:动态发布
    摘要:Unmarshal:接受 ObjRef 并从它创建一个客户端代理对象。ObjRef 是远程对象的可序列化表示,用于跨应用程序域边界传输对象引用。达到其他应用程序域后,需立即分析 ObjRef,以便为该对象创建一个代理(通常连接到实际的对象)。在拆收处理过程中,分析 ObjRef 以提取远程对象的方法信息,并创建透明代理和 RealProxy 对象。ObjRef 包含:描述所封送对象的 Type 和类的信息,唯一标识特定对象实例的 URI,以及有关如何到达对象所在的远程处理分支的相关通信信息。    ——点击 此处阅读全文
ASP.NET Web 服务还是 .NET Remoting:如何选择
    摘要:了解 Microsoft .NET Remoting 基础结构和 Microsoft ASP.NET Web 服务如何进行跨进程通信,了解这两种技术的工作原理以及如何为您的应用程序选择合适的技术    ——点击 此处阅读全文
Microsoft .NET Remoting:技术概述
    摘要:如果代理和远程对象不在同一个应用程序域中,则堆栈中的所有方法调用参数会被转换为消息并被传输到远程应用程序域,这些消息将在该远程应用程序域中被转换为原来的堆栈帧,同时该方法调用也会被调用。根据对象是客户端激活对象还是服务器激活对象,以及它们是单一元素对象还是单一调用对象,该进程会有所不同。只有在客户端调用远程对象的某个方法时,该远程对象才会被激活。当调用抵达服务器时,框架将从消息中提取 URI,检查远程处理框架表以便定位与 URI 匹配的对象引用,然后在必要时将对象实例化,并将方法调用转发至对象。    ——点击 此处阅读全文
Microsoft .NET Romoting 框架简介
    摘要:在方法调用之间,单一调用对象不能保留状态信息。“客户端激活的对象 (CAO)”是服务器端的对象,收到来自客户端的请求时会激活这些对象。客户端激活的对象可以为其特定的客户端(不能跨越不同的客户端对象)保存方法调用之间的状态信息。当客户端要在同一服务器对象中维护状态信息时,可以通过许多方法扩展租用阶段,使对象继续生存。客户端可以调用 RemotingServices.GetLifetimeService 方法,以从 AppDomain 的租用管理器获取服务器对象的租用时间。当远程对象租用过期时,租用管理器将通知负责人提出更新租用的申请。    ——点击 此处阅读全文
[Remoting] 六:异步调用
    摘要:Remoting 的异步调用和单个应用程序域异步编程基本相同。Collections;Collections.Generic;Reflection;Threading;Runtime.Serialization;Serialization.Formatters;Formatters.Remoting;Remoting.Channels;Channels.Remoting{    ——点击 此处阅读全文
[Remoting] 七:调用上下文
    摘要:调用上下文(CallContext)提供了用于存储属性集的数据槽,可以让我们在调用服务器方法时将一些额外数据一并传送过去。当然,这些额外数据有点限制,就是必须要实现 ILogicalThreadAffinative 接口。调用上下文在应用程序域边界被克隆,其数据槽不在其他逻辑线程上的调用上下文之间共享。Runtime.Serialization;Serialization.Remoting;Remoting.Remoting{    ——点击 此处阅读全文
[Remoting] 五:信道
    摘要:信道(Channel)是 Remoting 体系的承载平台,负责处理客户端和服务器之间的通讯,其内容包括跨域通讯、消息传递、对象编码等等。信道必须实现 IChannel 接口,根据通讯方向又分别提供了继承版本 IChannelReceiver 和 IChannelSender。TcpServerChannel channel = new TcpServerChannel(801);程序域内可以同时使用多个信道,每个信道需提供唯一的名称,以便 ChannelServices 进行管理,同时信道会随程序域的退出自动销毁。TcpServerChannel channel = new TcpServerChannel("tcp801", 801);    ——点击 此处阅读全文
[Remoting] 四:生存期租约
    摘要:Remoting 采取了一种称之为 "租约" 的机制来管理远程对象(Singleton、CAO)的生存期策略。租约管理器定期检查所有租约以确定过期的租约时间,如果租约已过期,将向该对象发起人(Sponsor)的发送请求,查询是否有谁要续订租约,若没有任何发起人续订该租约,租约将被移除,该远程对象也会被删除等待垃圾回收器回收。如果远程对象被发起人多次续订租约或被客户端持续调用,其生存期可以比其生存期租约长得多。租约管理器每隔一定时间(LeaseManagerPollTime)检查一次租约列表,如果某租约过期则通知其发起人,询问是否进行续订。    ——点击 此处阅读全文
[Remoting] 三:激活模式
    摘要:对于 MBR,我们可以指定不同的激活模式。服务器激活(Server-Activated Objects / SAO):只有在客户端调用代理对象第一个方法时才创建,区分为 Singleton 和 SingleCall 两种模式。客户端激活(Client-Activated Objects / CAO):在客户端调用 new 或 Activator.CreateInstance 时立即创建。通常情况下服务器激活模式只能使用默认构造函数,客户端激活模式则没有此限制。RegisterWellKnownServiceType()、RegisterWellKnownClientType() 用于注册服务器激活对象,通过 WellKnownObjectMode 枚举参数可以指定 Singleton 或 SingleCall 模式。    ——点击 此处阅读全文
[Remoting] 二:远程对象
    摘要:在分布系统中,远程对象需要跨越应用程序域进行传递,因此其表示方式会有所不同。基于性能和数据共享等原因考虑,Remoting 中远程对象可以是 "值封送对象(MBV)" 或 "引用封送对象(MBR)"。MBV 机制类似于 Web 无状态请求,服务器创建对象实例传递给信道发送到客户端,而后服务器端不再继续维护其状态和生存期。而 MBR 则在其生存期内一直存活在服务器程序域中,客户端只是通过代理对象来完成调用消息传递,客户端可以通过相关接口来延长远程对象的生存期。运行下面的例子,我们会发现远程对象在客户端程序域内,并且不是代理对象。Runtime.    ——点击 此处阅读全文
[Remoting] 一:.NET Remoting
    摘要:有太多的原因让我忽略了 Remoting,不过现在用它来开始 SOA 和 WCF 的旅途还是不错的选择。.NET Remoting 封装了分布式开发的消息编码和通讯方式,让我们用非常简单的方式既可完成不同模式的分布系统开发,同时其可配置、可扩展的特性也让我们拥有极大的灵活性。要了解 Remoting 的基本信息和介绍,还是看 MSDN 比较好。Runtime.Serialization;Serialization.Remoting;Remoting.Remoting{    ——点击 此处阅读全文
.NET Remoting中的事件处理(.NET Framework 2.0)(一)
    摘要:现假设有一个留言板程序: 以下代码中,MsgBoard为以Singleton模式存活于服务器端的共享留言板实例,AddMessage是客户端添加留言的接口,MsgBoard定义如下:    ——点击 此处阅读全文
.NET Remoting的新特性-IpcChannel(.NET Framework 2.0)
    摘要:.NET Remoting的新特性-IpcChannel(.NET Framework 2.0)     ——点击 此处阅读全文
Microsoft .Net Remoting系列专题之三:Remoting事件处理全接触
    摘要:因此从事件的方向上看,就应该有三种形式:1、服务端订阅客户端事件2、客户端订阅服务端事件3、客户端订阅客户端事件。服务端订阅客户端事件,即由客户端发送消息,服务端捕捉该消息,然后响应该事件,相当于下级向上级发传真。反过来,客户端订阅服务端事件,则是由服务端发送消息,此时,所有客户端均捕获该消息,激发事件,相当于是一个系统广播。而客户端订阅客户端事件呢?由某个客户端发出消息,其他客户端捕获该消息,激发事件。    ——点击 此处阅读全文
Microsoft .Net Remoting系列专题之二:Marshal、Disconnect与生命周期以及跟踪服务
    摘要:Marshal、Disconnect与生命周期以及跟踪服务    ——点击 此处阅读全文
Microsoft .Net Remoting系列专题之一:.Net Remoting基础篇
    摘要:远程对象代码可以运行在服务器上(如服务器激活的对象和客户端激活的对象),然后客户端再通过Remoting连接服务器,获得该服务对象并通过序列化在客户端运行。2、远程对象的激活方式。在Remoting中,远程对象的激活分为两大类:服务器端激活和客户端激活。一旦设置为SingleCall模式,则当客户端调用远程对象的方法时,Remoting会为每一个客户端建立一个远程对象实例,至于对象实例的销毁则是由GC自动管理的。其次,SingleCall模式激活的对象是无状态的,对象生命期的管理是由GC管理的,而客户端激活的对象则有状态,其生命周期可自定义。    ——点击 此处阅读全文
web service 和 remoting 有什么区别
    摘要:WebService的运行机理 首先客户端从服务器的到WebService的WSDL,同时在客户端声称一个代理类(Proxy Class) 这个代理类负责与WebService服务器进行Request 和Response 当一个数据(XML格式的)被封装成SOAP格式的数据流发送到服务器端的时候,就会生成一个进程对象并且把接收到这个Request的SOAP包进行解析,然后对事物进行处理,处理结束以后再对这个计算结果进行SOAP包装,然后把这个包作为一个Response发送给客户端的代理类(Proxy Class),同样地,这个代理类也对这个SOAP包进行解析处理,继而进行后续操作。    ——点击 此处阅读全文
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值