Microsoft .NET Remoting:技术概述

Microsoft .NET Remoting:技术概述
Piet Obermeyer 和 Jonathan Hawkins
Microsoft Corporation
摘要:本文提供了 Microsoft .NET Remoting 框架的技术概述,其中包括了使用 TCP 通道或 HTTP 通道的示例。
目录
简介
远程对象
代理对象
通道
激活
对象的租用生存期
总结
附录 A:使用 TCP 通道进行远程处理的示例
附录 B:使用 HTTP 通道进行远程处理的示例
简介
Microsoft® .NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架。这种框架提供了多种服务,包括激活和生存期支持,以及负责与远程应用程序进行消息传输的通讯通道。格式化程序用于在消息通过通道传输之前,对其进行编码和解码。应用程序可以在注重性能的场合使用二进制编码,在需要与其他远程处理框架进行交互的场合使用 XML 编码。在从一个应用程序域向另一个应用程序域传输消息时,所有的 XML 编码都使用 SOAP 协议。出于安全性方面的考虑,远程处理提供了大量挂钩,使得在消息流通过通道进行传输之前,安全接收器能够访问消息和序列化流。
通常,如果没有底层框架的支持,管理远程对象的生存期会非常麻烦。.NET Remoting 提供了许多可供选择的生存期模型,这些模型分为两个类别:
客户端激活对象
服务器激活对象
客户端激活对象受基于租用的生存期管理器的控制,这种管理器确保了租用期满时对象可被回收。而对于服务器激活对象,开发人员则可以选择“单一调用”模式或“单一元素”模式。
远程对象
任何远程处理框架的主要目的之一就是要提供必要的基础结构,以便隐藏远程对象调用方法和返回结果的复杂性。任何位于调用方应用程序域之外的对象,即使在同一台计算机上执行,也会被认为是远程对象。在应用程序域内部,原始数据类型按数值传递,而所有的对象按引用传递。因为本地对象引用仅在创建对象的应用程序域内有效,所以它们不能以这种方式传递到远程方法调用或从远程方法调用返回。所有必须跨越应用程序域的本地对象都必须按数值来传递,并且应该用 [serializable] 自定义属性作标记,否则它们必须实现 ISerializable 接口。对象作为参数传递时,框架将该对象序列化并传输到目标应用程序域,对象将在该目标应用程序域中被重新构造。无法序列化的本地对象将不能传递到其他应用程序域中,因而也不能远程处理。

时间: 2024-09-12 23:45:05

Microsoft .NET Remoting:技术概述的相关文章

转贴:Microsoft Application Center 2000 组件负载平衡技术概述(1)

application Microsoft Application Center 2000 组件负载平衡技术概述 作者:Chris Rees 本技术概述将讨论 Microsoft Application Center 2000 (Application Center) 组件负载平衡技术 (CLB). 引言 Microsoft Application Center 2000 (Application Center) 是 Enterprise Server 的一部分,而 Enterprise Ser

转贴:Microsoft Application Center 2000 组件负载平衡技术概述(2)

application  组件负载平衡应用 下面的说明可使 CLB 得到迅速应用.这些说明假设将用 stager 来将内容部署到 Web 层和 COM+ 群集上.并假定您掌握了有关 Visual Basic.ASP 和 HTML 的实际使用知识. 在 stager 上使用 Visual Basic,创建一个导出以下函数的 COM+ 组件. Public Function GetName() As StringSet WS = CreateObject("wscript.network"

Microsoft .Net Remoting系列教程之三:Remoting事件处理全接触_自学过程

前言:在Remoting中处理事件其实并不复杂,但其中有些技巧需要你去挖掘出来.正是这些技巧,仿佛森严的壁垒,让许多人望而生畏,或者是不知所谓,最后放弃了事件在Remoting的使用.关于这个主题,在网上也有很多讨论,相关的技术文章也不少,遗憾的是,很多文章概述的都不太全面.我在研究Remoting的时候,也对事件处理发生了兴趣.经过参考相关的书籍.文档,并经过反复的试验,深信自己能够把这个问题阐述清楚了. 本文对于Remoting和事件的基础知识不再介绍,有兴趣的可以看我的系列文章,或查阅相关

《云安全原理与实践》——3.1 主机虚拟化技术概述

3.1 主机虚拟化技术概述 虚拟化技术经过半个多世纪的发展,已日趋成熟并逐渐得到广泛的应用,成为云计算的基础技术. 1959年,在国际信息处理大会上,著名科学家克里斯托弗(Christopher Strachey)发表了一篇名为"大型高速计算机中的时间共享"(Time Sharing in Large Fast Computers)的学术报告.在该报告中,他提出了虚拟化的基本概念,同时这篇文章也被认为是对虚拟化技术的最早的论述. 1965年,IBM公司发布IBM7044,它被认为是最早

Servlet和JSP知识复习(1)Servlet & JSP 技术概述

js|servlet Servlet和JSP知识复习(1)Servlet & JSP 技术概述 1.Servlet的功用    ·读取客户程序发送来的显式数据(表单数据)    ·读取客户程序发送来的隐式数据(请求报头)    ·生成相应的结果    ·发送显式的数据给客户程序(HTML)    ·发送隐式的数据给客户程序(状态代码和响应报头) 2.为什么要动态地构建Web页面?    ·Web页面的内容建立在用户提交的数据之上    ·Web页面的内容由频繁变动的数据导出    ·Web页面用

《iOS 8应用开发入门经典(第6版)》——第1章,第1.4节开发技术概述

1.4 开发技术概述 iOS 8应用开发入门经典(第6版) 在接下来的几章中,将简要地介绍用来创建iOS应用程序的技术.我们的目标是让您快速了解这些工具和技术,然后开始开发.这意味着几章后您才会编写第一个应用程序,但当您开始编码时,将具备成功创建各种应用程序所需的技能和知识. 1.4.1 Apple开发工具 在本章中,您下载并使用了应用程序Xcode,它自带了iOS模拟器,您在阅读本书的过程中主要使用的就是它.这两个应用程序很重要,本书将花两章的篇幅(第2章和第5章)介绍它们的功能和用法. 需要

RIA主流技术——Flex 3.0技术概述

问题描述 RIA主流技术--Flex3.0技术概述RIA富媒体开发应用很早就出现了.但真正兴起是2007年的事情.2007的网络视频的飞速发展,掀开RIA大规模应用的开始.而2008年号称是RIA应用年.在RIA开发技术中,以Adobe的Flex技术和微软的Siverlight为首.而发展最成熟的是Flex技术.现在Adobe推出功能更强大的最新版本Flex3.0.本人跟踪Flex技术多年,深刻体验Flex1.5.2.0版本.经过一年的准备和写作,终于完成这本书.这本书从基础讲解,剖析Flex3

《大规模元搜索引擎技》——1.3 搜索引擎技术概述

1.3 搜索引擎技术概述 最早的Web搜索引擎基本上就是网页文本检索系统.然而,Web环境中有一些特征,使得构建现代搜索引擎与构建传统文本检索系统显著不同.在本节中,简要概述这些特征以及基于利用这些特征的搜索引擎构建技术. 1.3.1 Web的专门特性 下面是Web环境的一些特性,它们对搜索引擎的发展产生了重大影响.1)Web页面存储在大量的自治Web服务器中.需要一种方法来查找和获取这些Web页面,以便处理后供搜索用.2)大多数Web页面是HTML(HyperText Markup Langu

《大规模元搜索引擎技(1)》一1.3 搜索引擎技术概述

1.3 搜索引擎技术概述 最早的Web搜索引擎基本上就是网页文本检索系统.然而,Web环境中有一些特征,使得构建现代搜索引擎与构建传统文本检索系统显著不同.在本节中,简要概述这些特征以及基于利用这些特征的搜索引擎构建技术. 1.3.1 Web的专门特性 下面是Web环境的一些特性,它们对搜索引擎的发展产生了重大影响.1)Web页面存储在大量的自治Web服务器中.需要一种方法来查找和获取这些Web页面,以便处理后供搜索用.2)大多数Web页面是HTML(HyperText Markup Langu