基于.NET Remoting技术构建分布式数据库查询_第1页
基于.NET Remoting技术构建分布式数据库查询_第2页
基于.NET Remoting技术构建分布式数据库查询_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于.NET Remoting技术构建分布式数据库查询         08-05-06 10:33:00     作者:张永峰 李也白     编辑:studa0714摘要 .NET Remoting 作为DCOM的替代,得到了日趋广泛的应用。文中通过一个分布式数据库查询系统的解决方案,探讨了 Remoting 技术的应用,同时也说明了使用该技术可以非常便捷地构建分布式应用程序。关键字  Remoting,应用程序域,远程对

2、象,分布式数据库,ADO.NET0 引言随着传统的数据库、计算机网络和数字通信技术的快速发展,以数据分布存储和分布处理为主要特征的分布式数据库系统的研究和开发越来越受到人们的关注。微软提供了两种解决方案来为用户实现数据服务,即 .NET Remoting 和 Web Service 技术。众所周知,Web Service 技术已经是业界中一种公认的标准数据传输方案,它基于 HTTP 之上,可以轻松穿过防火墙;而 Remoting 技术则是在 .NET 环境下,在应用程序内部或应用程序域之间传输数据的方案,它有几种通道可以在数据传输中使用,选择适当的通道同样可以达到穿越防火墙。然而,在一个封闭的

3、网络环境中,选择TCP通道将获得更好的连接性能,这种情况下,无疑 .NET Remoting具有明显的优势。1 Remoting 框架简介.NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架。这种框架提供了多种服务,包括激活和生存期支持,以及负责与远程应用程序进行消息传输的通讯通道。而且,.NET Remoting 是一个内容丰富的、可扩展的框架,它使得分布在不同应用程序域(AppDomain)、不同进程和不同计算机上的对象可以实现无缝通信。它提供的编程模型和运行时支持,功能强大且非常便捷,能够实现透明的交互。2理解Remoting框架2.1 基本原理图1 .N

4、ET Remoting体系结构图2.2 应用程序域Windows操作系统将应用程序分离为单独的进程,形成应用程序代码及其数据的保护边界。虽然进程在隔离应用程序方面是有效的,但同样有缺点:首先,进程属于低级的操作系统结构,管理进程要涉及很多操作系统行为;其次创建和管理进程是一项非常昂贵的任务,如果不采用进程间通信(Interprocess Communication,IPC)机制,在一个进程中执行的代码就不能访问另一进程,而采用IPC 机制的额外开销往往使得最后得不偿失。在很多情况下,我们需要一个对象跨过应用程序域,与另一对象进行交互。.NET 所引入的应用程序域对上述问题进行了很好的解决。应用

5、程序域是 .NET 运行库的逻辑进程表示,任何实际的操作系统进程可以包含多个应用程序域。应用程序域具有以下优点:隐藏了进程具体的操作系统信息。应用程序域同样提供了隔离,所有 .NET 对象都界定在创建它的应用程序域中。对于不需要昂贵的IPC 机制的进程,应用程序域允许 .NET 运行库优化运行于其中的应用程序间的通信。2.3 远程对象的激活方式远程对象派生自System.marshalByRefObject类,访问远程类型的一个对象实例之前,必须通过一个名为Activation的进程进行创建并初始化。这种客户端通过通道来创建远程对象的行为称为远程对象的激活。在Remoting中,远程对象的激活

6、分为两大类:服务器端激活:又称为WellKnown方式,通过这种方式激活的对象称为服务器端激活对象或者知名对象。这是因为服务器端应用程序在激活对象实例之前会通过一个众所周知的统一资源标识符(URI)来发布这个类型。.Net Remoting把服务器端激活又分为Singleton模式和SingleCall模式两种。Singleton模式即指运行库只创建一个对象接受所有的客户端请求,并通过租赁策略控制其生存期;而在SingleCall模式中,运行库将为每个客户端请求建立一个新对象,并在完成请求后释放这个对象,由垃圾收集器(GC)进行销毁。客户端激活:在这种模式下,一旦服务器端获得客户端的请求,将为

7、每一个客户端都建立一个实例引用。虽然这种模式与服务器端激活的SingleCall模式有些相似,但它们是有区别的:第一,SingleCall模式激活的对象是无状态的,对象生命期的管理是由GC负责的;而客户端激活的对象则有状态,其生命周期可以自定义;第二,SingleCall模式在调用对象方法时创建对象实例,而客户端激活方式在客户发出调用请求时进行实例化;第三,SingleCall模式下,只能调用对象默认的构造函数,不能通过传递参数调用自定义的构造函数来创建对象实例,而客户端激活模式可以调用自定义的构造函数来创建实例。2.4 配置文件除了通过编程的方式发布远程对象外,还可以使用配置文件对服务器端应

8、用程序进行配置。使用配置文件的优点在于: 用户无需修改任何代码,就可以配置通道和远程对象,而且,不需要重新编译应用程序。大大减少了用于实现远程对象所必须编写的代码。<configuration>              <application>                 &#

9、160; <service>                        <wellknown mode = "SingleCall"                 &

10、#160;                 type = "DbServerLibrary.DbServer, DbServerLibrary"                         

11、60;         objectUri = "DbServer "/>                   </service>                   <channels>                        <channel ref = "tcp" port = "8888" />        

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论