WCF分布式开发必备知识(2):.Net Remoting (转)
2011-08-09 13:59
281 查看
上一节我们学习了网络分布式编程中的MSMQ消息队列技术.本节我们将学习分布式编程的另外一个重要的技术.Net Remoting,文章的结构还是先讨论基本概念,再来探讨具体的技术实现,希望能和大家一起交流学习.
.Net Remoting技术,我们可以将其看作是一种分布式处理方式。作为应用程序之间通信的一种机制,.Net Remoting与MSMQ消息队列不同,它不支持离线脱机消息,另外只适合.Net平台间程序的通信.从 微软的产品角度来看,可以说Remoting就是分布式组件DCOM的一种升级,它改善了很多功能,并极好的融合到.Net平台下。.NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架。这也正是我们使用Remoting的原因。为什么呢?在Windows操作系统中,是将应用 程序分离为单独的进程。这个进程形成了应用程序代码和数据周围的一道边界。如果不采用进程间通信IPC(Internet Process Connection)机制,则在一个进程中执行的代码就不能访问另一进程。这是一种操作系统对应用程序的保护机制。然而在某些情况下,我们需要跨过应用 程序域,与另外的应用程序域进行通信,即穿越边界(参考MSDN)。
.Net Remoting的通信架构如下图.
<configuration>
2 <appSettings>
3 <add key="ServiceURLTcp" value="tcp://localhost:10001/RemoteObject.MyRemoteObject"/>
4 <add key="ServiceURLHttp" value="http://localhost:10002/RemoteObject.MyRemoteObject"/>
5 <add key="ServiceURLIpc" value="ipc://FrankTestIpc/RemoteObject.MyRemoteObject"/>
6 </appSettings>
7 <system.runtime.remoting>
8
9 </system.runtime.remoting>
10</configuration> 配置文件设置的是具体通道的URL信息.具体c#实现代码如下:
2namespace RemoteClient
3 主进程通过配置获取远程对象的信息,为远程对象创建代理,代理的优势在于不仅可以跨域访问对象还可以跨进程,和系统,使用TCP通道,降低系统耦合性.最后客户端通过代理访问远程对象的方法,输出结果.首先要运行服务器端,其次是客户端,IDE使用的是Visual Studio 2005/2008.其次注意项目引用.运行后的结果显示如下.
服务器:
显示3个通道都注册成功.
客户端:
客户端分别通过3种方式调用远程对象,进行运算.测试成功!
本文代码下载./Files/frank_xl/NetRemoting.rar
小结:以上就是全部的.Net Remoting的实现过程.当然.Net Remoting知识范围很广,还有异步调用,安全等.以后再做深入的学习.接下来一节我打算写关于Enterprise Services的文章,其中会涉及到COM+的知识,如COM+中事务机制.我们有必要好好学习一下.希望本文的能给大家在WCF学习上对.Net Remoting技术的理解有所帮助.大家有问题可以一起交流~
http://blog.csdn.net/book_frank_xl/article/details/4735960
.Net Remoting技术,我们可以将其看作是一种分布式处理方式。作为应用程序之间通信的一种机制,.Net Remoting与MSMQ消息队列不同,它不支持离线脱机消息,另外只适合.Net平台间程序的通信.从 微软的产品角度来看,可以说Remoting就是分布式组件DCOM的一种升级,它改善了很多功能,并极好的融合到.Net平台下。.NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架。这也正是我们使用Remoting的原因。为什么呢?在Windows操作系统中,是将应用 程序分离为单独的进程。这个进程形成了应用程序代码和数据周围的一道边界。如果不采用进程间通信IPC(Internet Process Connection)机制,则在一个进程中执行的代码就不能访问另一进程。这是一种操作系统对应用程序的保护机制。然而在某些情况下,我们需要跨过应用 程序域,与另外的应用程序域进行通信,即穿越边界(参考MSDN)。
.Net Remoting的通信架构如下图.
<configuration>
2 <appSettings>
3 <add key="ServiceURLTcp" value="tcp://localhost:10001/RemoteObject.MyRemoteObject"/>
4 <add key="ServiceURLHttp" value="http://localhost:10002/RemoteObject.MyRemoteObject"/>
5 <add key="ServiceURLIpc" value="ipc://FrankTestIpc/RemoteObject.MyRemoteObject"/>
6 </appSettings>
7 <system.runtime.remoting>
8
9 </system.runtime.remoting>
10</configuration> 配置文件设置的是具体通道的URL信息.具体c#实现代码如下:
2namespace RemoteClient
3 主进程通过配置获取远程对象的信息,为远程对象创建代理,代理的优势在于不仅可以跨域访问对象还可以跨进程,和系统,使用TCP通道,降低系统耦合性.最后客户端通过代理访问远程对象的方法,输出结果.首先要运行服务器端,其次是客户端,IDE使用的是Visual Studio 2005/2008.其次注意项目引用.运行后的结果显示如下.
服务器:
显示3个通道都注册成功.
客户端:
客户端分别通过3种方式调用远程对象,进行运算.测试成功!
本文代码下载./Files/frank_xl/NetRemoting.rar
小结:以上就是全部的.Net Remoting的实现过程.当然.Net Remoting知识范围很广,还有异步调用,安全等.以后再做深入的学习.接下来一节我打算写关于Enterprise Services的文章,其中会涉及到COM+的知识,如COM+中事务机制.我们有必要好好学习一下.希望本文的能给大家在WCF学习上对.Net Remoting技术的理解有所帮助.大家有问题可以一起交流~
http://blog.csdn.net/book_frank_xl/article/details/4735960
相关文章推荐
- WCF分布式开发必备知识(2):.Net Remoting
- WCF分布式开发必备知识(2):.Net Remoting
- WCF分布式开发必备知识(1):MSMQ消息队列
- WCF分布式开发必备知识:Web Service
- WCF分布式开发必备知识(1):MSMQ消息队列
- 【Frank.Xu】WCF分布式开发必备知识(3):Enterpise Services
- [Forward]WCF分布式开发必备知识(1):MSMQ消息队列
- WCF分布式开发必备知识(2):.Net Remoting
- WCF分布式开发必备知识(3):Web Service 使用
- WCF分布式开发必备知识(1):MSMQ消息队列
- WCF分布式开发必备知识(3):Enterpise Services
- WCF分布式开发必备知识(3):Enterprise Services(企业服务与COM+)
- WCF分布式开发必备知识(2):.Net Remoting
- 信息系统开发平台OpenExpressApp - 学习必备知识
- WCF分布式开发常见错误(23):This could be due to the fact that the server certificate is not configured properly with HTTP.SYS
- WCF分布式开发必备知识(1):MSMQ消息队列
- WCF分布式安全开发实践(1):传输安全模式之匿名客户端:Transport_None_WSHttpBinding
- [HTTP基础]1.网络开发必备的HTTP协议知识
- 【开发管理类软件必备知识视频教程之一】登录窗体前台注意事项
- 【开发管理类软件必备知识视频教程之二】登录窗体后台注意事项