十、 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将根据协议方式来做相应的序列化。
十一、 HessianHessian是由caucho提供的一个基于binary-RPC实现的远程通讯library。
◆ 是基于什么协议实现的?
基于Binary-RPC协议实现。
◆ 怎么发起请求?
需通过Hessian本身提供的API来发起请求。
◆ 怎么将请求转化为符合协议的格式的?
Hessian通过其自定义的串行化机制将请求信息进行序列化,产生二进制流。
◆ 使用什么传输协议传输?
Hessian基于Http协议进行传输。
◆ 响应端基于什么机制来接收请求?
响应端根据Hessian提供的API来接收请求。
◆ 怎么将流还原为传输格式的?
Hessian根据其私有的串行化机制来将请求信息进行反序列化,传递给使用者时已是相应的请求信息对象了。
◆ 处理完毕后怎么回应?
处理完毕后直接返回,hessian将结果对象进行序列化,传输至调用端。
十二、 BurlapBurlap也是有caucho提供,它和hessian的不同在于,它是基于XML-RPC协议的。
◆ 是基于什么协议实现的?
基于XML-RPC协议实现。
◆ 怎么发起请求?
根据Burlap提供的API。
◆ 怎么将请求转化为符合协议的格式的?
将请求信息转化为符合协议的XML格式,转化为流进行传输。
◆ 使用什么传输协议传输?
Http协议。
◆ 响应端基于什么机制来接收请求?
监听Http请求。
◆ 怎么将流还原为传输格式的?
根据XML-RPC协议进行还原。
◆ 处理完毕后怎么回应?
返回结果写入XML中,由Burlap返回至调用端。
十三、 XFire、AxisXFire、Axis是Webservice的实现框架,WebService可算是一个完整的SOA架构实现标准了,因此采用XFire、Axis这些也就意味着是采用webservice方式了。
◆ 是基于什么协议实现的?
基于SOAP协议。
◆ 怎么发起请求?
获取到远端service的proxy后直接调用。
◆ 怎么将请求转化为符合协议的格式的?
将请求信息转化为遵循SOAP协议的XML格式,由框架转化为流进行传输。
◆ 使用什么传输协议传输?
Http协议。
◆ 响应端基于什么机制来接收请求?
监听Http请求。
◆ 怎么将流还原为传输格式的?
根据SOAP协议进行还原。
◆ 处理完毕后怎么回应?
返回结果写入XML中,由框架返回至调用端。