基于.NET Remoting技术构建分布式数据库查询.docVIP

基于.NET Remoting技术构建分布式数据库查询.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于.NET Remoting技术构建分布式数据库查询.doc

基于.NET Remoting技术构建分布式数据库查询 摘要 .NET Remoting 作为DCOM的替代,得到了日趋广泛的应用。文中通过一个分布式数据库查询系统的解决方案,探讨了 Remoting 技术的应用,同时也说明了使用该技术可以非常便捷地构建分布式应用程序。 关键字 Remoting,应用程序域,远程对象,分布式数据库,ADO.NET 0 引言   随着传统的数据库、计算机网络和数字通信技术的快速发展,以数据分布存储和分布处理为主要特征的分布式数据库系统的研究和开发越来越受到人们的关注。微软提供了两种解决方案来为用户实现数据服务,即 .NET Remoting 和 Web Service 技术。众所周知,Web Service 技术已经是业界中一种公认的标准数据传输方案,它基于 HTTP 之上,可以轻松穿过防火墙;而 Remoting 技术则是在 .NET 环境下,在应用程序内部或应用程序域之间传输数据的方案,它有几种通道可以在数据传输中使用,选择适当的通道同样可以达到穿越防火墙。然而,在一个封闭的网络环境中,选择TCP通道将获得更好的连接性能,这种情况下,无疑 .NET Remoting具有明显的优势。 1 Remoting 框架简介   .NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架。这种框架提供了多种服务,包括激活和生存期支持,以及负责与远程应用程序进行消息传输的通讯通道。而且,.NET Remoting 是一个内容丰富的、可扩展的框架,它使得分布在不同应用程序域(AppDomain)、不同进程和不同计算机上的对象可以实现无缝通信。它提供的编程模型和运行时支持,功能强大且非常便捷,能够实现透明的交互。 2理解Remoting框架 2.1 基本原理 图1 .NET Remoting体系结构图   .NET Remoting中通过通道(channel)来实现两个应用程序域之间的对象通信。Remoting的通道主要有两种:Tcp和Http。在.NET中,System.Runtime.Remoting.Channel中定义了IChannel接口。IChannel接口包括了TcpChannel通道类型和Http通道类型。它们分别对应Remoting通道的这两种类型。通道对象代表了到远程应用程序的连接。每个通道对象还包含格式化程序对象,将方法调用转换为已知格式的消息。   其基本原理如图1所示,首先,客户端通过通道访问服务器端对象,以获得服务器端对象的代理。服务器端对象也即通常所说的远程对象,使用时是通过跨应用程序边界传递对象引用获得该远程对象的代理。对于客户程序来说,代理提供了与远程对象完全一样的方法和属性。当代理的方法别调用时,就会创建消息,通过使用格式化程序类,将这些消息串行化并发送到客户通道中。客户通道和服务器通道进行通信,以通过网络传输消息。服务器通道则使用格式化程序并行化消息,从而将方法发送给远程对象。通过代理,客户端应用程序就可以像使用本地对象一样来操作远程对象。 2.2 应用程序域   Windows操作系统将应用程序分离为单独的进程,形成应用程序代码及其数据的保护边界。虽然进程在隔离应用程序方面是有效的,但同样有缺点:首先,进程属于低级的操作系统结构,管理进程要涉及很多操作系统行为;其次创建和管理进程是一项非常昂贵的任务,如果不采用进程间通信(Interprocess Communication,IPC)机制,在一个进程中执行的代码就不能访问另一进程,而采用IPC 机制的额外开销往往使得最后得不偿失。在很多情况下,我们需要一个对象跨过应用程序域,与另一对象进行交互。.NET 所引入的应用程序域对上述问题进行了很好的解决。应用程序域是 .NET 运行库的逻辑进程表示,任何实际的操作系统进程可以包含多个应用程序域。应用程序域具有以下优点:   ●隐藏了进程具体的操作系统信息。   ●应用程序域同样提供了隔离,所有 .NET 对象都界定在创建它的应用程序域中。   ●对于不需要昂贵的IPC 机制的进程,应用程序域允许 .NET 运行库优化运行于其中的应用程序间的通信。 2.3 远程对象的激活方式   远程对象派生自System.marshalByRefObject类,访问远程类型的一个对象实例之前,必须通过一个名为Activation的进程进行创建并初始化。这种客户端通过通道来创建远程对象的行为称为远程对象的激活。在Remoting中,远程对象的激活分为两大类:   ●服务器端激活:又称为WellKnown方式,通过这种方式激活的对象称为服务器端激活对象或者知名对象。这是因为服务器端应用程序在激活对象实例之前会通过一个众所周知的统一资源标识符(URI)来发布这个类

文档评论(0)

gacz001 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档