Microsoft .NET Romoting 框架简介

2016-01-29 13:53 14 1 收藏

Microsoft .NET Romoting 框架简介,Microsoft .NET Romoting 框架简介

【 tulaoshi.com - ASP.NET 】

Microsoft .NET Romoting 框架简介
Paddy Srinivasan
Microsoft Corporation
2001 年 1 月

摘要:本文介绍 Microsoft .NET Romoting 框架的基本原理。除了介绍组成 .NET Romoting 框架的主要组件外,还介绍 .NET Remoting 与分布式对象通信的几种方案。

目录
简介
.NET Remoting 对象
集成 .NET Remoting 对象
.NET Remoting 元数据和配置文件
.NET Remoting 方案
总结
其他资料
简介
Microsoft® .NET Remoting 是一个丰富的、可扩展的框架,它使得处于不同 AppDomain、不同过程和不同机器上的对象可以实现无缝通信。.NET Remoting 提供的编程模型和运行时支持功能强大而又易于使用,能够实现透明的交互操作。本文将浏览 Remoting 体系结构的不同构造块,并研究一些应用 .NET Remoting 的常见方案。.NET Remoting 对象可以作为一种 Web 服务使用(请参阅 MSDN Magazine 文章“可编程 Web:Web 服务为 Microsoft .NET 框架提供构造块(英文)”,允许从任何能够执行 SOAP 调用的客户端访问 .NET Remoting 对象。有关 .NET Remoting 的概述信息,请先阅读文章“Microsoft .NET Remoting:技术概述(英文)”。

.NET Remoting 对象
有三类对象可以被配置为 .NET 远程对象。您可以根据应用程序的需要选择对象类型。本节将详细介绍这些对象。

“单一调用对象”仅为一个请求提供服务。在需要对象完成的工作量有限,并且不必存储状态信息的情况下,单一调用对象非常有用。单一调用对象可以被配置为负载平衡模式。在方法调用之间,单一调用对象不能保留状态信息。

“单一元素对象”可以为多个客户端提供服务,因此可以通过保存客户端调用的状态信息来实现数据共享。当客户端需要明确地共享数据,并且不能忽略创建和维护对象的开销时,这种对象非常有用。

“客户端激活的对象 (CAO)”是服务器端的对象,收到来自客户端的请求时会激活这些对象。这种激活服务器对象的方法与传统的 COM coclass 激活方法很相似。当客户端使用“new”操作符请求服务器对象时,将向远程应用程序发送一个激活请求消息。随后,服务器将创建被请求类的实例,并向调用它的客户端应用程序返回 ObjRef。客户端将使用此 ObjRef 创建代理。客户端的方法调用将在代理上执行。客户端激活的对象可以为其特定的客户端(不能跨越不同的客户端对象)保存方法调用之间的状态信息。每次“new”调用都会返回服务器类型的独立实例的代理。

使用 .NET Remoting 传递对象
在 .NET Remoting 中,可以通过以下方式在应用程序之间传递对象:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com)

作为方法调用的参数
示例:public int myRemoteMethod (MyRemoteObject myObj)

方法调用的返回值
示例:public MyRemoteObject myRemoteMethod(String myString)

访问 .NET 组件的属性或字段得到的值
示例:myObj.myNestedObject

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com)

对于 Marshal By Value (MBV) 的对象,当它在应用程序之间传递时,将创建一个完整的副本。

对于 Marshal By Reference (MBR) 的对象,当它在应用程序之间传递时,将创建该对象的引用。当对象引用 (ObjRef) 到达远程应用程序后,将转变成“代理”返回原始对象。

简单 .NET Remoting 服务器对象的代码示例
using System;
using System.Runtime.Remoting;
namespace myRemoteService
{
// 有名的 Web 服务对象
public class myRemoteObject : MarshalByRefObject
{
// myRemoteMethod 方法
public String myRemoteMethod(String s)
{
return "Hello World";
}
}
}

访问此对象的客户端代码示例
using System;
using System.Runtime.Remoting;
using myRemoteService;
public class Client
{
public static int Main(string[] args)
{
ChannelServices.RegisterChannel(new HTTPChannel(7055));
// 创建 myRemoteObject 类的实例
myRemoteObject myObj = ( myRemoteObject)Activator.GetObject(typeof(myRemoteObject),
"http://myHost:7021/host/myRemoteObject.soap");
myObj. myRemoteMethod ("Hello World");
return 0;
}
}
租用生存期
对于那些具有在应用程序之外传送的对象引用的对象,将创建一个租用。租用具有一个租用时间。如果租用时间为 0,则租用过期,对象将断开与 .NET Romoting 框架的连接。一旦 AppDomain 内部所有的对象引用都被释放,则下一个 GC 发生时对象将被回收。租用控制了对象的生存期。

对象有默认的租用阶段。当客户端要在同一服务器对象中维护状态信息时,可以通过许多方法扩展租用阶段,使对象继续生存。

可以将服务器对象的租用时间设置为无限,这样 Remoting 在垃圾回收周期中就不会回收此对象。


客户端可以调用 RemotingServices.GetLifetimeService 方法,以从 AppDomain 的租用管理器获取服务器对象的租用时间。然后,客户端便可以通过 Lease 对象来调用 Lease.Renew 方

来源:https://www.tulaoshi.com/n/20160129/1491890.html

延伸阅读
微软的.NET Remoting提供了一种允许对象通过应用程序域与另一对象进行交互的框架。本文将通过两个具体的代码例子介绍它的特性,通过.NET Remoting,两个应用间的通信将变得非常简单,使用上也相当灵活。 最近几年来,在计算机世界中,关于“向外扩展”(scale-out)与“向上扩展”(scale-up)的讨论不断,并且有向scale-out转化的趋...
制作自己的安装程序 在VS.NET中,我们可以通过建立"Setup and Deployment Projects"项目,非常灵活方便的把自己的.NET程序制作为Windows Installer文件。比如,我们可以很方便的定制下面这些选项: 1.是否在桌面上放置快捷方式。 2.注册自己的文件类型,可以通过双击该文件来使用自己的程序打开。 3.注册表的处理 ...
以下我们将举一个使用channel的例子。在这个例子中,我们将可以看到使用HTTP channel把两个应用 连接在一起是如此的简单。以下的服务器应用提供了一个服务,可将一个字符串的字母顺序反转。 Server.cs using System; using System.IO; using System.Runtime.Remoting; using System.Runtime.Remoting.Channels.HTT...
【开心就好】 于 2000-11-16 11:56:22 加贴在 Joy ASP ↑: 补:如果谁那儿可以下载到VS.NET beta1版本,请通知我,免费送书一本,谢谢!(joy@china.com) 现象描述:如果你以前安装过NGWS SDK Preview版,并且在此基础上安装了Visual Stuio.NET的Alpha版本,那么你如果在此基础上安装Microsoft.NET Beta1版,那么你将会发现你的机器速度变...
 使用 Microsoft.NET Frameworks 创建基于 Windows 的应用程序Shawn Burke Microsoft Corporation 2000年9月 摘要: :本文介绍了 Win 表单这一新的窗体程序包,借助这一程序包,开发人员能够充分利用 Microsoft Windows 操作系统所提供的 UI 功能。 目录 简介 介绍 Win Forms 更好的易学易用性 布局 GDI+ 访问底层系统 结论 ...

经验教程

514

收藏

32
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部