Spring RPC远程服务

Spring RPC远程服务


目录
1 SPRING远程调用 1
1.1 SPRING远程调用的RPC模式 1
1.2 远程服务 1
2 SPRING的RMI调用 1
2.1 RMI远程调用 1
2.2 SPRING客户端调用RMI服务 1
2.3 SPRING服务器发布RMI服务 2
3 SPRING的HESSIAN和BURLAP调用 2
3.1 HESSIAN和BURLAP 2



1 Spring远程调用
1.1 Spring远程调用的RPC模式
(1) 远程调用RMI:不考虑网络限制(如防火墙)时,访问/公开基于java的服务。
(2) Hessian/Burlap:考虑网络限制时,通过HTTP访问/公开基于java的服务。
(3) HTTP invoker:考虑网络受限时访问/公开基于Spring的服务。
(4) JAX-RPC/JAX-WS SOAP:访问公开基于SOAP的web服务。
1.2 远程服务

2 Spring的RMI调用
2.1 RMI远程调用
RMI(Remote Method Innovation)是在Java在JDK1.1中被实现的,它大大增强了Java开发分布式应用的能力,提供给java程序员一种强大的方法来实现java程序间的交流。RMI目前使用Java远程消息交换协议JRMP(Java Remote Messaging Protocol)进行通信。JRMP是专为Java的远程对象制定的协议,因此,Java RMI具有Java的“Write Once,Run Anywhere”的优点,是分布式应用系统的百分之百纯Java解决方案。用Java RMI开发的应用系统可以部署在任何支持JRE(Java Run Environment Java,运行环境)的平台上。但由于JRMP是专为Java对象制定的,因此,RMI对于用非Java语言开发的应用系统的支持不足。不能与用非Java语言书写的对象进行通信。RMI使用任意端口来交流,这是防火墙所不允许的,所以,RMI的使用所防火墙的限制。
2.2 Spring客户端调用RMI服务
客户端:在Spring中可以使用RmiProxyFactoryBean来引用一个RMI远程服务,在spring的配置文件中配置如下:
<bean id="rmiService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean"> 
    <property name="serviceUrl" value="rmi://${host}/rmiService "/> 
    <property name="serviceInterface" value="com.rmi.service.RmiService"/> 
</bean>
2.3 Spring服务器发布RMI服务
服务器:在Spring中可以使用RmiServiceExpoter来发布一个RMI远程服务,在spring的配置文件中配置如下:
<bean class="org.springframework.remoting.rmi.RmiServiceExporter"> 
<property name="service" ref="rmiServiceImpl"/> 
<property name="serviceName" ref="rmiService"/> 
    <property name="serviceInterface" value=”com.rmi.service.RmiService”>
  <property name="registryHost" value="rmi.host.com"/> 
<property name="registryPort" ref="9999"/> 
  </bean>

3 Spring的Hessian和Burlap调用
Hession和Burlap是Caucho Technology提供的两种远程调用的解决方案,是基于HTTP的轻量级远程调用服务。
3.1 Hessian和Burlap
(1) Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据,它的二进制数据可以移植到其他非java的语言中,包括PHP,Python,C,C++和C#。
(2) Burlap是一种基于XML的远程技术,这使得它自然而然地可以移植到任何可以解析xml的语言中,比起hessian的二进制格式来,它的可读性更强,burlap的xml数据格式和SOAP的不同,burlap的消息尽可能简单,不需要额外的外部定义语言如WSDL或IDL。
在选择hessian和Burlap时,它们很多程度上都一样,唯一不不同的是hessian的消息是二进制,burlap的消息是xml,由于hessian的消息是二进制,所以在宽带上更具优势,但burlap的可读性更强




/*********************/
未完待续
参考spring官网,spring in action

猜你喜欢

转载自xmong.iteye.com/blog/1423797