Java Remoting选取方案


Java Remoting选取方案

 

l  性能要求特别高的:可以选用Socket,RMI;

l  跨平台,跨语言,安全性,易用性:Webservice;

l  跨平台,跨语言,易用性,性能:HessianREST;

l  不跨语言,性能,易用性:NIO(Netty,Mina),RMI。

 

 

技术名称

是否收费

优点

缺点

      备注

Socket

跨语言,跨平台,速度快,根据需要制定数据传输格式

不支持面象对象、事务,编码实现相对复杂。

 

RMI

面向对象的远程服务模型;基于TCP协议上的服务,执行速度快

不能跨语言;每个远程对象都要绑定端口,不易维护;不支持分布式事务JTA

 

EJB

可扩展性好,安全性强,支持分布式事务处理。

不能跨语言;配置相对复杂,不同J2EE容器之间很难做无缝迁移

 

Web Service

跨语言、跨平台,SOA思想的实现;安全性高;

性能相对差,不支持两阶段事务,不支持复杂对象如:List、Map

 

Hessian

 

使用简单,速度快;跨语言,跨平台,支持复杂对象。

安全性的支持不够强,不支持两阶段事务,客户代码不能自动生成

类Webservice,不过Hessian数据传输格式不用XML,采用二进制方式。

NIO

基于TCP通信,效率上高于HTTP的方式,非阻塞IO应对高并发绰绰有余。根据具体的需要制定数据传输的格式,可扩展性强。

不能跨语言,无法穿透防火墙。

底层实现socketcet通信,有Netty,Mina框架。

HTTPInvoker

基于HTTP的Java到Java Remoting;通过HTTP实现Java串行化;容易建立

服务器和客户端应用程序都需要使用Spring。

仅是一种Java方案。

 

 

REST

基于HTTP,返回的结构可以是任格式(由开发者定义),效率比Web服务高,适用于无需多步操作场景。

只是一种私有约束,缺乏标准,安全性差。

 

 


你可能感兴趣的:(java)