转:Remoting系列(一)----Remoting的基本概念

2023-11-02 09:58

本文主要是介绍转:Remoting系列(一)----Remoting的基本概念,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Remoting系列(一)----Remoting的基本概念

Remoting技术简介

一 Remoting技术出现的背景

1)分布式应用需求的迅速增长(Peer-to-Peer, Grid等技术的出现)
2)原有的C/S, B/S模式和技术已经不能胜任(串口RS232,Socket,RPC,DCOM技术各有缺点)


二 什么是Romoting?

采用分布式进行编程的一种技术,Remoting主要用于管理跨应用程序域的同步和异步RPC 会话。在默认情况下,Remoting使用 HTTP 或 TCP 协议,并使用 XML 编码的 SOAP 或本机二进制消息格式进行通信。.NET Remoting 提供了非常灵活和可扩展的编程框架,并且他可以管理对象的状态。

Remoting优点:
1)  性能: 如果调优.Net Remoting 的性能,那么他的性能非常好,速度接近DCOM.
2) 可扩展:.Net Remoting 可供你选择传输通道类型(如Http,Tcp)和格式类型(如Binary,Soap)。
3) 可配置:可以通过配置文件配置应用程序。
4) CLR和CTS的好处:由于.NET Remoting是基于.NET框架的,所以他拥有Common Type System(CTS) 和 Common Language Runtime(CLR)所拥有的易于使用和功能强大的特点。
5)互用性(Interoperability): .NET Remoting 支持开发标准(Http,SOAP,WSDL,XML).
6) 安全性
7) 生命周期管理


三 Remoting架构:

 Remoting通过通道(channel)来传输消息。.NET Remoting支持两种默认的协议支持通道(Http和Tcp).


四 远程对象的两个含义

操作远程对象:对象运行在远程,客户端向他发送消息.
传递远程对象:将远程的对象拿到本地,或者将本地对象发送过去,然后我们可以对副本进行操作.


五 激活对象的两种方式:
服务器激活和客户端激活

1 服务器激活:
“服务器激活的对象”是由服务器控制生存期的对象。它们只在客户端调用对象的第一个方法时,根据需要由服务器创建。服务器激活的对象只支持默认的构造函数。
代码:
2) SingleCall(单调用)
SingleCall 远程服务器类型总是为每个客户端请求设置一个实例。下一个方法调用将改由其他实例进行服务。从设计角度看,SingleCall 类型提供的功能非常简单。这种机制不提供状态管理,如果您需要状态管理,这将是一个不利之处;如果您不需要,这种机制将非常理想。也许您只关心负载平衡和可伸缩性而不关心状态,那么在这种情况下,这种模式将是您理想的选择,因为对于每个请求都只有一个实例。如果愿意,开发人员可以向 SingleCall 对象提供自己的状态管理,但这种状态数据不会驻留在对象中,因为每次调用新的方法时都将实例化一个新的对象标识。
特点:
a.每次调用都实例化新的实例
b.更好地支持无状态编程模型

2 客户端激活
“客户端激活的对象”是当客户端调用 newActivator.CreateInstance() 时在服务器上创建的。
代码: 

< service >
  
< wellknown  mode ="SingleCall"  type ="Hello.HelloService, Hello"  
                   objectUri
="HelloService.soap"   />
</ service >

上面描述了一个服务器激活的 (wellknown) 类型,其激活方式设置为 SingleCall

服务器激活的对象有两种激活模式:SingletonSingleCall.
1) Singleton(单实例):
这些对象遵循传统的Singleton 设计模式,在这种模式中,任何时候内存中都只有一个实例,所有客户端都接受该实例提供的服务。
特点:
a.在服务器段只实例化一次,以后每次调用都访问同一个实例。
b.可以维持状态

< service >
  
< activated  type ="Hello.HelloService, Hello"  
             objectUri
="HelloService.soap"   />
</ service >

上面描述了一个客户端激活的类型。请注意,我们不再需要 URL,因为对于客户端激活的类型,类型本身就足以激活了。另外,wellknown 标记已被 activated 标记替代。

六 Remoting VS Web Service

这两者都是基于分布式的开发,而且.Net Remoting有时也可以配置为Web Service,两者有很多的相同之处。

一般来讲,我把他们的不同之处列为5个方面。

1) 开发部署
 WebService开发和部署比较简单,Remoting相对WebService开发和部署要稍复杂。
2) 协议的开放性 
    两者都可支持HTTP,TCP,SMTP等多种协议。
    [一直以为WebService只支持HTTP协议,经idior指点,原来在Web Services Enhancements已有介绍,WebService也支持TCP,SMTP等协议。微软最新发布的wse应该是wse 3.0,以前还没听说过,真是汗颜!]
   更详细的内容待续...
3) 支持的类型系统
 WebService只支持XSD类型系统,对象的类型的序列化受到限制,而Remoting可以通过序列化为Binary传输数据,支持更为广泛的数据类型
4) 安全性
 
由于 ASP.NET Web 服务依赖于 HTTP,因此它们与标准的 Internet 安全性基础结构相集成。ASP.NET 利用 IIS 的安全性功能,为标准 HTTP 验证方案(包括基本、简要、数字证书,甚至 Microsoft .NET Passport)提供了强有力的支持。
 一般情况下,.NET Remoting 管线不能确保跨进程调用的安全。使用 ASP.NET 托管于 IIS 中的 .NET Remoting 端点可以利用 ASP.NET Web 服务可用的所有安全性功能,包括对使用 SSL 确保有线通信的安全性的支持。
5) 性能
从原始性能方面来讲,使用 TCP 信道和二进制格式化程序时,.NET Remoting 管线能够提供最快的通信。一般情况下,.NET Remoting的性能要比WebService高。

 

转:http://www.cnblogs.com/Ring1981/archive/2006/07/20/451624.html

这篇关于转:Remoting系列(一)----Remoting的基本概念的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/329818

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

【机器学习】高斯网络的基本概念和应用领域

引言 高斯网络(Gaussian Network)通常指的是一个概率图模型,其中所有的随机变量(或节点)都遵循高斯分布 文章目录 引言一、高斯网络(Gaussian Network)1.1 高斯过程(Gaussian Process)1.2 高斯混合模型(Gaussian Mixture Model)1.3 应用1.4 总结 二、高斯网络的应用2.1 机器学习2.2 统计学2.3

GPT系列之:GPT-1,GPT-2,GPT-3详细解读

一、GPT1 论文:Improving Language Understanding by Generative Pre-Training 链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf 启发点:生成loss和微调loss同时作用,让下游任务来适应预训

Java基础回顾系列-第七天-高级编程之IO

Java基础回顾系列-第七天-高级编程之IO 文件操作字节流与字符流OutputStream字节输出流FileOutputStream InputStream字节输入流FileInputStream Writer字符输出流FileWriter Reader字符输入流字节流与字符流的区别转换流InputStreamReaderOutputStreamWriter 文件复制 字符编码内存操作流(

Java基础回顾系列-第五天-高级编程之API类库

Java基础回顾系列-第五天-高级编程之API类库 Java基础类库StringBufferStringBuilderStringCharSequence接口AutoCloseable接口RuntimeSystemCleaner对象克隆 数字操作类Math数学计算类Random随机数生成类BigInteger/BigDecimal大数字操作类 日期操作类DateSimpleDateForma

Java基础回顾系列-第三天-Lambda表达式

Java基础回顾系列-第三天-Lambda表达式 Lambda表达式方法引用引用静态方法引用实例化对象的方法引用特定类型的方法引用构造方法 内建函数式接口Function基础接口DoubleToIntFunction 类型转换接口Consumer消费型函数式接口Supplier供给型函数式接口Predicate断言型函数式接口 Stream API 该篇博文需重点了解:内建函数式