您好, 访客   登录/注册

C#.net环境下分布式系统的Remoting技术实现

来源:用户上传      作者:

  摘要:近年来,随着Internet技术的飞速发展,传统的集中式计算和客户机/服务器模式已经不能满足跨平台、跨地域的分布式计算需求,构建可扩展、高复用性、可多技术协同作业的分布式系统,成为企业信息化建设发展的重点。本文详细叙述了在C#.net环境下,利用Remoting技术实现分布式系统计算服务的原理与方法,并详细介绍了代理、通道、远程对象、配置文件、相关核心等技术。
  关键词:C#.net;Remoting;分布式系统;代理;远程对象
  中图分类号:TP311.52 文献标识码:A文章编号:1007-9599 (2011) 16-0000-01
  C#.Net-based Remoting Technology Realization of Distributed System
  Zhang Liangqi
  (China Civil Aviation Information Network Co.,Ltd.,Beijing100010,China)
  Abstract:In recent years,with the rapid development of Internet technology,the traditional centralized computing and client/server model can not meet the cross-platform,cross-regional demand for distributed computing,to build scalable,high reusability,can be multi-technology collaboration of distributed systems,information technology become the focus of development.This paper describes the C#.Net environment,the use of Remoting technology computing services distributed systems principles and methods,and details of the agent,channel,remote objects,configuration files and related core technologies.
  Keywords:C#.Net;Remoting;Distributed system;Agent;Remote object
  一、Remoting技术的体系结构和核心对象
  Remoting技术是采用分布式进行编程的一种技术,主要应用于跨域的同频与异步RPC会话。通常使用HTTP协议或TCP协议,提供了灵活和可扩展的编程框架,并可以管理对象状态。
  (一)Remoting的体系结构。Remoting的基础结构,由代理、通道和消息组成。代理是利用技术手段模仿远程对象,通道代表了与远程对象的连接方式。整个体系遵循客户端应用程序(客户端对象)→代理→通道(格式化程序)→stackBuikler→服务端应用程序(远程对象)这样一个结构。
  (二)Remoting技术的核心对象。Remoting技术平台的核心对象包括代理对象、通道对象和远程对象三个部分。
  1.Remoting技术平台的代理对象。Remoting技术平台实现分布式系统计算需求,首先在客户端创建远程对象的实例,该实例与远程对象类型完全相同,在创建完成之后向客户端返回一个该对象的引用。在客户端对远程对象调用的方法,实际上是在调用代理对象的方法。一般包括透明代理和真实代理。
  2.Remoting技术平台的通道对象。Remoting技术平台的通道对象是一种远程框架体系,隐藏于客户与服务器间通信所使用的底层协议,用于将方法调用从客户端传送到服务器端,并将调用值返回到客户端。Remoting技术平台提供了HTTP和TCP两种通道方式,默认情况下HTTP通道使用80端口,TCP通道则需要指定唯一的网络端口,适用于内网环境。
  3.Remoting技术平台的远程对象。Remoting技术平台业务的具体实现通常都包含在远程对象中,被创建并存储于服务器端,由远程客户端所代理。由于远程对象支持引用调度,所以必须从System.MarshalByrefobject继承,包括服务器端激活模式和客户端激活模式。
  二、基于C#.net环境下分布式系统Remoting技术实现
  C#语言是微软公司的开发小组专门为.NET平台设计的语言,其完全面向对象的可视化编程体系,使程序人员可以方便的建立、运行、测试和调试C#程序。这种特性,使C#.net环境具有配置简单、易于学习和使用、开发速度相对较快、开发周期短、可与微软其他软件实现无缝对接的优点,因此被大量运用在分布式系统Remoting技术的实现中,成为构建分布式应用计算体系的首选。下面,我们以分布式数据库查询系统方案为例进行简要分析。
  (一)分布式数据库查询系统的访问模型。虽然分布数据库系统有众多优点,但其数据一致性问题、远程传递的实现、网络费用等,使得分布式数据库系统的开发较为复杂。而解决这些问题的最好办法,就是采用.net提供的ADO.NET数据访问模型,ADO.NET能够提供强大的响应能力,在更少的时间内响应更多的用户。
  (二)分布式数据库查询系统的实现、发布和获取。分布式数据库查询系统的实现,首先需要从MarshalByrefobject类派生出一个远程对象类,对远程调用所需的服务进行调用,这需要利用ADO.NET的功能来实现。在通过派生出的远程对象类对远程调用所需的服务进行调用之后,还需要建立动态链接库技术来对这个远程对象类进行封装,将其封装为一个dll进行分发。
  在发布的时候,首先需要设置一个端口,并注册一个通道,以发布服务器端的激活对象。在其它场地的服务器,可以根据IP地址和端口获取服务器端发布的远程对象。实现远程对象发布和获取的主要代码为:
   发布代码:
   TcpChannel chan=new TcpChannel(8888);
   ChannelServices.RegisterChannel(chan);
   RemotingConfiguration.RegisterWellKnownServiceType(typeof(Test.Mbr),\”TestMbr\”,WellKnownObjectMode.SingleCall);
   获取代码:
   obj=(Test.Mbr)Activator.GetObject(typeof(Test.Mbr),\”tcp://127.0.0.1:8888/TestMbr\”);/
  (三)分布式数据库查询系统应用程序的部署。在实现远程对象的发布和获取之后,还需要对应用程序进行部署。在系统启动之后,各服务器应用程序启动,通过其注册的端口来接收客户端发出的请求,当客户端获得了用户查询请求之后,经过命令的分解和重组,初始化远程对象,将解析后的命令分配给相应的远程对象代理,再将结果返回给客户端,完成用户请求。
  三、结束语
  基于C#.net环境下实现分布式系统,可以直观清晰的使任何位置的程序互相通信,即便他们在不同计算机上,甚至在相隔万里的全球网络中,都能高效、可靠的实现分布式数据运用的需求,从而在近年来得到了广泛的应用和研究。
  参考文献:
  [1]马保国.基于.net Remoting的分布式系统实现[J].计算机技术与发展,2006,3
  [2]高宏杰.浅析数据通信交换方式及期适用范围.民营科技,2010.02
  [3]杨立.基于分布式异构数据库的企业信息集成平台[J].计算机与现代化,2003,1
  

转载注明来源:https://www.xzbu.com/8/view-8724138.htm