.NET Remoting 技术全解析
1. .NET Remoting 简介
在分布式系统开发中,.NET Remoting 是一项强大的技术。想象这样一个场景:正在开发一个分布式计费系统,客户端是商业街的分期付款租赁门店,而总部的中央服务器负责处理客户发票、债务催收等任务。客户端需要服务器执行诸如信用检查、记录租赁开始、终止租赁、处理信用卡付款等任务。虽然可以通过 TCP/IP 发送字符串,让服务器在远程端解析,但使用 .NET Remoting 直接调用 customer.terminateLease()
方法,让 .NET 处理网络传输会更加简单。
2. .NET Remoting 工作原理
使用 .NET Remoting 时,需要创建客户端和服务器,同时创建一个执行所需功能的对象。连接的两端都需要知道对象的类型,客户端需要知道服务器的 IP 地址和端口,其余工作由 .NET 完成。
传输方式有两种选择:基于 HTTP 的 SOAP(可移植性好)和基于 TCP 的二进制(性能高)。用于 Remoting 的 SOAP 与行业标准格式有所不同,其可移植性不如等效的 Web 服务。
为防止客户端创建大量对象并丢弃实例耗尽服务器资源,Remoting 有内置的垃圾回收系统。对象的生命周期可以设置为函数执行时间(singlecall)、类的生命周期(singleton)或服务器定义的生命周期(发布对象)。除发布对象外,远程对象的生命周期在 RemotingConfiguration.RegisterWellKnownServiceType
调用中指定。
发