R-OSGi是一套适用于任意满足OSGi架构的分布式通讯组件。它以jar的形式发布,部署容易,使用也较为便捷。
概括下用户只需要完成如下几步。
在Server端:
OSGi容器内启动R-OSGi的BundleService的Bundle里MENIFEST文件中import对R-OSGi的引用将需要被Client调用的接口暴露给R-OSGi模块即可。在Client端:
OSGi容器内启动R-OSGi的BundleClient的Bundle里MENIFEST文件中import对R-OSGi的引用取得R-OSGi暴露的Service调用接口即可R-OSGi运行流程
下图简要说明了R-OSGi实现的流程及原理:
图2.R-OSGi实现流程
远程Service通过R-OSGi框架注册到OGSi容器。R-OSGi在OS上打开一个端口(默认9278)来创建Socket监听器。Client端Bundle启动时调用指定Server的默认端口,请求Socket通信。在本OSGi容器内生成一个代理Bundle,用于本地Client调用。在Client端注册签名一样的Service。客户端调用Service,实际上调用的是通过代理Bundle调用远程的Service,等待通讯返回。
评论