Spring目前提供了对RMI、 HttpInvoker、Hessian、Burlap及WebService等Remoting技术的集成。Spring屏蔽了这些实现技术的差别,用户只需开发简单的Java对象(Plain Old Java Objects,POJO)而后按照Spring规定的格式进行配置文件的编写便可。web
1、几种Remoting实现的比较服务器
Spring支持的Remoting实现技术是很是多的,虽然Spring屏蔽了这些技术使用上的差别,可是选择一个合适的Remoting技术仍然对系统有很是积极的做用,下面就来说述这些实现技术的优缺点。网络
(1) RMI:RMI使用Java的序列化机制实现调用及返回值的编组(marshal)与反编组(unmarshal),可使用任何可序列化的对象做为参数和返回值。其缺点是RMI只能经过RMI协议来进行访问,没法经过HTTP协议访问,没法穿透防火墙。工具
(2) Hessian:Hessian也是将网络传输的对象转换为二进制流经过Http进行传递,不过它是使用本身的序列化机制实现的编组与反编组,其支持的数据类型是有限制的,不支持复杂的对象。Hessian的优势是能够透过防火墙。Hessian是一个轻量级的remoting on http工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,由于采用的是二进制协议,因此它很适合于发送二进制数据url
(3) Burlap:Burlap是将网络传输的对象转换为XML文本格式经过Http进行传递,支持的对象与Hessian相比更少。XML通常比二进制流占用空间大,在网络上传递所须要的时间比二进制流长,XML的解析过程也会耗用更多的内存。Burlap能够穿透防火墙,并且因为传输的格式是XML文本,能够与其余系统(好比.NET)集成,从某种程度来说,Burlap是一种不标准的WebService。对象
(4) HttpInvoker:HttpInvoker将参数和返回值经过Java的序列化机制进行编组和反编组,它具备RMI的支持全部可序列化对象的优势。 Http Invoker是使用Http协议传输二进制流的,而同时又具备Hessian、Burlap的优势。内存
Hessian、Burlap、HttpInvoker等是要运行在支持Servlet的web服务器中。开发