科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件深入研究VB.Net远程调用对象的机制

深入研究VB.Net远程调用对象的机制

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

NET结构提供一种与之不同的机制--远程调用,用于客户应用程序和远程对象之间的内部处理和LAN通讯。

作者:wayne 来源:yesky 2007年11月11日

关键字: vb.net 对象 远程调用 机制

  • 评论
  • 分享微博
  • 分享邮件
第一节 引言

  在.NET出现以前,COM和DCOM可以让你很容易地用运行在另一进程或者网络上另一台机器上的对象来进行交互作用。然而现在,.NET结构提供一种与之不同的机制--远程调用,用于在你的客户应用程序和远程对象之间的内部处理和LAN通讯。在本文中,我将介绍如何通过在Visual Basic.NET(VB.NET)中创建一个类库来使用远程对象,调用来自于另一进程或者网络上另一台机器的方法的客户端应用程序。如图



  你仍然可以在VB.NET中使用COM和DCOM,VB.NET支持一个交互机理,你可以用来在COM组件中调用来自.NET的代码。然而,这个机制是为了能够继承以前的系统支持而设计的而不是为了新技术开发的,所以你应该着眼于更多现在新的技术。

  另外一个替代的机制就是使用Web服务调用远程对象,当你使用 Web服务时,你不能进行一个对象的相同的实例的一个以上的方法调用,一个新对象实例服务每次只能调用一个。使用Web服务还要求你在对象运行的机器上安装Internet Information Server ( IIS ),但是你需要的可能是一种不需要安装IIS的轻量级解决方案。

  远程调用是最类似于DCOM的.NET中的技术。在Beta 1版中,.NET远程调用比 DCOM需要更多的准备工作,但是它是一种简单的后台技术,并且承诺当.NET正式版本发布的时候会更加容易。你可以在相同的机器上的一个单独的进程中使用远程调用激活对象,或通过网络激活运行在另外一台机器上的对象。使用远程调用,你可以进行对象的相同的实例上的更多的方法调用,或者你可以配置远程调用象 Web服务那样动作,并且为每一个方法调用创建新的对象实例。

  为了使用远程调用工作,你需要安装.NET Framework SDK,并最好安装集成Visual Studio.NET(VS.NET)。让我们在单独的一台机器上开始测试,在一个来自客户端应用程序中的单独的进程中运行物体的远程调用过程,然后把这个对象的远程调用过程移到网络上的另外一台机器上。

  第二节 了解简单的远程调用

  虽然你可以使用远程调用来填补曾由DCOM来满足的市场,但是远程调用与DCOM不同,远程调用使用一个你选择的网络接口,而DCOM不同,它使用许多难以预测的网络接口来与你的对象通讯,这使得远程调用在大多数的环境中可以很容易的配置。

  当你调用一个使用远程调用的对象时,你通过一个通道进行调用过程:这个远程调用通讯机制与在网络上的对象通讯。你可以选择两个不同的通道甚至还可以创建你自己的通道。.NET中提供的两个通道是HTTP通道和一个直接的 TCP socket通道,你使用这些通道中的一个(即使你可能在同一台机器上)激活一个对象。

  如果你使用 HTTP通道,你就得使用HTTP协议和简单对象访问协议(SOAP)与远程调用对象通讯,即使你使用 HTTP,你也未必非得使用端口80,虽然这是Web服务器默认的端口,你可以指定任意端口号作为通信端口。

  直接的 TCP socket通道也是类似的,如果你选择这个通道,所有的通信就使用一个专有协议和一个SOAP的二进制实现来完成。虽然说这有些不好的地方,但是它多多少少能够快一些,因为把数据编码成二进制格式的过程比使用SOAP效率更加高,因为它是基于XML的。

  每次你的代码调用远程调用对象的一个方法,远程调用子系统把这个方法调用转换成一条并把它通过选定的通道发送到远程调用对象中去。远程调用子系统然后再把这个方法的返回结果转换成一条消息返回到客户端应用程序中。在 beta 1中,使用一个单独的" black box "远程调用组件处理这个过程,但是在以后将发布的.NET中,这个体系结构将更加开放,将提供更多的可延伸性和可控制性。

  和 DCOM一样,远程调用对象必须在一个过程中运行。因为 Microsoft Transaction Server ( MTS )和 COM+都不是特意支持 .NET,所以你需要在服务器上实现你自己的主机应用程序来。 你的主机应用程序使用远程调用服务来在消息通道上监听。 其实这比听起来要容易,因为远程调用为你考虑到所有的细节。 然而,远程调用调试起来可能会比较困难。 稍后我将讨论一些可以使调试变得更容易的技术。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章