何为.Net Remoting

物件传递

在 .NET Remoting 中,不论是传值或传址,每三个物件都一定要继承 System.MarshalByRefObject 体系,才方可选拔 .NET Remoting 来传输[[4]](http://zh.wikipedia.org/#cite_note-3)

以下程式码为服务端的 Remoting 元件:

// RemotableType.cs
using System;
public class RemotableType : MarshalByRefObject // Remoting 物件必須繼承自 System.MarshalByRefObject 類別。
{
    public string SayHello()
    {
        Console.WriteLine("RemotableType.SayHello() was called!");
        return "Hello, world";
    }
}

 

活化模型

活化(Activation)是指顾客端运营伺服端元件的主意,.NET Remoting 中扶持了三种方法[[3]](http://zh.wikipedia.org/#cite_note-2)

  • Single-Call:在每三遍客商端呼叫时都生成叁个施行个体。
  • Single-ton:在第1回呼叫时就成形实施个体,之后每趟呼叫都使用一样的实施个体。

 

依附基维百科给它的概念如下:

组态设定

.NET Remoting 的设计意见,便是为了要简化网络上的物件通讯,而且要让开荒人士不必太过分在报导的尾部伤脑筋,因而在互联网通信协定上做了累累的包装,而且同目的在于Configuration File(app.config)中央机关单位接设定,或是由 .NET Remoting 的 Configuration API 来设定就能够,故组态设定的选项复杂度较高,设计较复杂的 .NET Remoting 应用程式在组态的设定上往往会一定复杂。

以下为设定 .NET Remoting 客户端的模范设定:

<configuration>
   <system.runtime.remoting>
      <application>
         <client>
            <wellknown 
               type="RemotableType, RemotableType"
               url="http://localhost:8989/RemotableType.rem"
            />
         </client>
      </application>
   </system.runtime.remoting>
</configuration>

原理

.NET Remoting 使用了 ChannelSerialization 机制来串接两台机器间的物件,Channel 是承受管理互联网通信的部份,而 Serialization 则是拍卖物件与串流动资金料的拍卖专门的学问。

  • Channel 支援了 IPC(行程间通信)、TCP 与 HTTP 通信协定[[1]](http://zh.wikipedia.org/#cite_note-0)
  • Serialization 支援二进制(binary)或 XML(SOAP)通信协定的材质串流[[2]](http://zh.wikipedia.org/#cite_note-1)

当伺服端设定好应用的大路乃至协定后,顾客端供给求跟随伺服端的设定,而且依伺服端决定的活化模型来运转,而程式设计的艺术和日常呼叫元件般轻便。

public static void Main()
{
   RemotingConfiguration.Configure("Client.exe.config"); // configure Remoting configuration.
   RemotableType remoteObject = new RemotableType(); // create remoting object.
   Console.WriteLine(remoteObject.SayHello()); // call remoting object's method.
}

NET Remoting 是微软 .NET Framework 中的一种网络通信才具,与 XML Web Service 分化的是,它能够利用 SOAP 以外的协定来广播发表,而在伺服端和顾客端之间所操作的法门近乎同样,顾客端能够不用考虑选取的签署,就可以存取伺服端所开放的物件。这些手艺与是由Distributed COM所发展而来的,与DCOM最大的区别是,DCOM有限制使用 TCP Port,但.NET Remoting 能够选拔使用 TCP 或 HTTP 的秘籍通信,而资料可以使用 SOAP 或二进制传输情势在互联网上流动,二进制的传输成效是 SOAP 所无法比的,但 SOAP 却足以获得和 Web Service 相互关系的技能,由此 .NET Remoting 的计划弹性相当大。

.NET Remoting 本事近年来已构成到 Windows Communication Foundation 中。

本文由银河网址发布于银河网址,转载请注明出处:何为.Net Remoting

您可能还会对下面的文章感兴趣: