1:Socket VS Remotingweb
使用socket无疑是效率最高的。可是,在复杂的接口环境下,Socket的开发效率也是最低的。故在兼顾开发效率的状况下,可使用Remoting来代替Socket开发。而且:
一、Tcp通道的Remoting速度很是快。
你能够经过端口查看工具,发现remoting比直接socket传输的内容,应该是属于同一个数量级的。个人另外一个担忧是,大客户端数量的状况下,remoting传输效率会不会很低,结果通过现场测试,同时对300个客户端进行数据通讯,不存在信息丢失状况。
二、虽然是远程的,可是很是接近于本地调用对象。 也就是彻底符合面向对象思想。
三、能够作到保持对象的状态
直接使用Socket传输机制,咱们必须花大量的精力来处理异常、断网、死机等现象,使用remoting,这些工做会大大简化。编程
2:Remoting vs Webservice
windows
一、webservice在framework2.0状态下只能寄宿于IIS等应用服务器中。微软直到3.0才提供了servicehost来寄宿 webservice,这就极大地限制了webservice在使用中的灵活性。在framework2.0环境下,若是你有一个应用要脱离IIS而存在,就不得不抛弃webservice。(除非你想代码实现一个WEB应用服务器)安全
二、Remoting可寄宿在你本身的代码中,也可寄宿在windows服务及IIS中。最大程度的提供了开发和部署的灵活性。服务器
三、Remoting在使用http通道的时候,也如Webservice同样支持穿透路由。socket
四、Remoting与websercie相比,提供双向通讯。哪怕是将Remoting寄宿在IIS中,也支持。分布式
五、webservice客户端自动生成的代理类比较复杂。而Remoting通常来讲,都是手动编写客户端代码。工具
六、将Remoting采用TCP通信,比Web Service高效学习
七、固然,webservice最主要优点是,它是一个行业标准,而Remoting只是微软本身内部的标准,若是你的应用要脱离微软的平台,就只能使用webservice了。测试
3:和WCF的比较
WCF是一个技术集合体,WCF包含Remoting、Web Service等具体的技术。
一下是WCF的简介:WC就是微软对于分布式处理的编程技术的集大成者,它将DCOM、Remoting、Web Service、WSE、MSMQ集成在一块儿,从而下降了分布式系统开发者的学习曲线,并统一了开发标准。
一、统一性
前面已经叙述,WCF是对于ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ等技术的整合。因为WCF彻底是由托管代码编写,所以开发WCF的应用程序与开发其它的.Net应用程序没有太大的区别,咱们仍然能够像建立面向对象的应用程序那样,利用WCF来建立面向服务的应用程序。
二、互操做性
因为WCF最基本的通讯机制是SOAP,这就保证了系统之间的互操做性,即便是运行不一样的上下文中。这种通讯能够是基于.Net到.Net间的通讯。
能够跨进程、跨机器甚至于跨平台的通讯,只要支持标准的Web Service,例如J2EE应用服务器(如WebSphere,WebLogic)。应用程序能够运行在Windows操做系统下,也能够运行在其余的 操做系统,如Sun Solaris,HP Unix,Linux等等。
三、安全与可信赖
WS-Security,WS-Trust和WS-SecureConversation均被添加到SOAP消息中,以用于用户认证,数据完整性验证,数据隐私等多种安全因素。
在SOAP的header中增长了WS-ReliableMessaging容许可信赖的端对端通讯。而创建在WS-Coordination和WS- AtomicTransaction之上的基于SOAP格式交换的信息,则支持两阶段的事务提交(two-phase commit transactions)。
上述的多种WS-Policy在WCF中 都给与了支持。对于Messaging而言,SOAP是Web Service的基本协议,它包含了消息头(header)和消息体(body)。在消息头中,定义了WS-Addressing用于定位SOAP消息的 地址信息,同时还包含了MTOM(消息传输优化机制,Message Transmission Optimization Mechanism)。
四、兼容性
WCF充分的考虑到了与旧有系统的兼容性。安装WCF并不会影响原有的技术如ASMX和.Net Remoting。即便对于WCF和ASMX而言,虽然二者都使用了SOAP,但基于WCF开发的应用程序,仍然能够直接与ASMX进行交互。