Java远程通讯可选技术及原理(3)

十、   Spring-Remoting

Spring-remoting是Spring提供Java领域的远程通讯框架,基于此框架,同样也可以很简单的将普通的spring bean以某种远程协议的方式来发布,同样也可以配置spring bean为远程调用的bean。

◆ 是基于什么协议实现的?

和JBoss-Remoting一样,作为一个远程通讯的框架,Spring通过集成多种远程通讯的library,从而实现了对多种协议的支持,例如rmi、http+io、xml-rpc、binary-rpc等。

◆ 怎么发起请求?

在Spring中,由于其对于远程调用的bean采用的是proxy实现,发起请求完全是通过服务接口调用的方式。

◆ 怎么将请求转化为符合协议的格式的?

Spring按照协议方式将请求的对象信息转化为流,例如SpringHttp Invoker是基于Spring自己定义的一个协议来实现的,传输协议上采用的为http,请求信息是基于java串行化机制转化为流进行传输。

◆ 使用什么传输协议传输?

支持多种传输协议,例如rmi、http等等。

◆ 响应端基于什么机制来接收请求?

响应端遵循协议方式来接收请求,对于使用者而言,则只需通过spring的配置方式将普通的spring bean配置为响应端或者说提供服务端。

◆ 怎么将流还原为传输格式的?

按照协议方式来进行还原。

◆ 处理完毕后怎么回应?

处理完毕后直接返回即可,spring-remoting将根据协议方式来做相应的序列化。

十一、   Hessian

Hessian是由caucho提供的一个基于binary-RPC实现的远程通讯library。

◆ 是基于什么协议实现的?

基于Binary-RPC协议实现。

◆ 怎么发起请求?

需通过Hessian本身提供的API来发起请求。

◆ 怎么将请求转化为符合协议的格式的?

Hessian通过其自定义的串行化机制将请求信息进行序列化,产生二进制流。

◆ 使用什么传输协议传输?

Hessian基于Http协议进行传输。

◆ 响应端基于什么机制来接收请求?

响应端根据Hessian提供的API来接收请求。

◆ 怎么将流还原为传输格式的?

Hessian根据其私有的串行化机制来将请求信息进行反序列化,传递给使用者时已是相应的请求信息对象了。

◆ 处理完毕后怎么回应?

处理完毕后直接返回,hessian将结果对象进行序列化,传输至调用端。

十二、   Burlap

Burlap也是有caucho提供,它和hessian的不同在于,它是基于XML-RPC协议的。

◆ 是基于什么协议实现的?

基于XML-RPC协议实现。

◆ 怎么发起请求?

根据Burlap提供的API。

◆ 怎么将请求转化为符合协议的格式的?

将请求信息转化为符合协议的XML格式,转化为流进行传输。

◆ 使用什么传输协议传输?

Http协议。

◆ 响应端基于什么机制来接收请求?

监听Http请求。

◆ 怎么将流还原为传输格式的?

根据XML-RPC协议进行还原。

◆ 处理完毕后怎么回应?

返回结果写入XML中,由Burlap返回至调用端。

十三、   XFire、Axis

XFire、Axis是Webservice的实现框架,WebService可算是一个完整的SOA架构实现标准了,因此采用XFire、Axis这些也就意味着是采用webservice方式了。

◆ 是基于什么协议实现的?

基于SOAP协议。

◆ 怎么发起请求?

获取到远端service的proxy后直接调用。

◆ 怎么将请求转化为符合协议的格式的?

将请求信息转化为遵循SOAP协议的XML格式,由框架转化为流进行传输。

◆ 使用什么传输协议传输?

Http协议。

◆ 响应端基于什么机制来接收请求?

监听Http请求。

◆ 怎么将流还原为传输格式的?

根据SOAP协议进行还原。

◆ 处理完毕后怎么回应?

返回结果写入XML中,由框架返回至调用端。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/91583e6462ec6b7770f9cd946f6c21f0.html