.NET Remoting技术详解:从基础到实践
1. 引言
在分布式应用开发领域,.NET Remoting是一项重要的技术。它是微软分布式COM(DCOM)技术在.NET世界的继任者,为.NET开发者提供了一种在不同进程甚至不同机器之间进行对象调用的方式。对于有DCOM开发经验的开发者来说,Remoting带来了许多令人兴奋的改进,但它仍然是一项需要耐心和时间去理解和使用的复杂技术。
2. Remoting基础
分布式应用将自身拆分为多个独立的组件,这些组件可以部署在不同的机器上,这种将应用拆分为分布式组件的方式被称为横向扩展(scaling out)。其目的是将应用分散到多台机器上,以更好地应对工作负载的增加。如果所有组件都位于单处理器机器上,随着用户数量的增加,应用的响应速度会变慢,因为单个处理器无法处理过多的操作。而将一个或多个组件迁移到单独的服务器上,可以将部分处理任务卸载到新服务器,从而提高应用的响应时间。
3. Remoting技术发展
- COM:最初设计用于简化同一机器上对象之间的调用,使得对象调用的编码变得更容易,但它本身无法实现分布式应用。
- DCOM:为了让开发者能够分布式部署COM对象,微软推出了DCOM。它允许一个COM对象通过微软的专有通信协议在网络上调用另一台机器上的COM对象,从而为微软开发者打开了创建真正分布式应用的大门。然而,使用DCOM需要完成一系列繁琐的管理任务来配置客户端和服务器对象,并且它使用的专有协议使得无法与其他开发环境(如Java)中的对象进行通信,除非使用第三方通信桥