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服務器中。開發