Java中实现分布式的方式有:EJB、RMI、XMLRPC、Web Service、Hessian、Thrift 、Protobuf、NIO(Netty、Mina)安全
优点:可扩展性好,安全性强,支持分布式事务处理。网络
劣势:不能跨语言;配置相对复杂,不一样J2EE容器之间很难作无缝迁移。并发
优点:面向对象的远程服务模型;基于TCP协议上的服务,执行速度快。框架
劣势:不能跨语言;每一个远程对象都要绑定端口,不易维护;不支持分布式事务JTA,RMI框架对于安全性、事务、可扩展性的支持很是有限。分布式
优点:跨语言、跨平台,SOA思想的实现;安全性高;能够用来兼容legacy系统的功能高并发
劣势:性能相对差,不支持两阶段事务性能
优点:使用简单,速度快;跨语言,跨平台;能够用来兼容legacy系统的功能。对象
劣势:安全性的支持不够强,不支持两阶段事务。事务
优势:基于TCP通讯,效率上高于HTTP的方式,非阻塞IO应对高并发绰绰有余。根据具体的须要制定数据传输的格式,可扩展性强。效率
缺点:不能跨语言,没法穿透防火墙。
单纯的序列化反序列化库;
不只包括序列化反序列化功能,仍是RPC框架
ICE的功能更完备,若是说Thrift是网络框架,那么ICE就是解决方案。