R-OSGi - OSGi 分布式通讯组件


MIT/BSD
跨平台
Java

软件简介

R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用也较为便捷。

概括下用户只需要完成如下几步。

在 Server 端:

  • OSGi 容器内启动 R-OSGi 的 Bundle
  • Service 的 Bundle 里 MENIFEST 文件中 import 对 R-OSGi 的引用
  • 将需要被 Client 调用的接口暴露给 R-OSGi 模块即可。

在 Client 端:

  • OSGi 容器内启动 R-OSGi 的 Bundle
  • Client 的 Bundle 里 MENIFEST 文件中 import 对 R-OSGi 的引用
  • 取得 R-OSGi 暴露的 Service 调用接口即可

R-OSGi 运行流程

下图简要说明了 R-OSGi 实现的流程及原理:

图 2. R-OSGi 实现流程

  1. 远程 Service 通过 R-OSGi 框架注册到 OGSi 容器。
  2. R-OSGi 在 OS 上打开一个端口(默认 9278)来创建 Socket 监听器。
  3. Client 端 Bundle 启动时调用指定 Server 的默认端口,请求 Socket 通信。
  4. 在本 OSGi 容器内生成一个代理 Bundle,用于本地 Client 调用。
  5. 在 Client 端注册签名一样的 Service。
  6. 客户端调用 Service,实际上调用的是通过代理 Bundle 调用远程的 Service,等待通讯返回。