Distributed OSGi is described in the OSGi core spec in chapter 6 (Remote Services) and in the OSGi compendium spec in chapter 122 (Remote Service Admin Service).
The Remote Services spec describes a module named Distribution Provider that makes OSGi services available across container boundaries. The idea is to use special service properties to mark services that are to be exported remotely. The Distribution provider will create Endpoints for these services that are available outside the container. On the consumer side the Distribution Provider can create local OSGi services that act as proxies for the remote services and allow service consumers to use them to call the remote service.
The Remote Service Admin spec then splits the Distribution provider into separate modules that communicate through defined interfaces. This allows to change or enhance parts of an existing DOSGi implementation without having to reimplement the whole Distribution provider.
Modular Distribution Provider described in the Remote Service Admin Service spec.
Notes:
Spec Module |
CXF Module |
Description |
---|---|---|
Discovery |
cxf-dosgi-ri-discovery-local |
Describes Remote Endpoints using local configuration |
|
cxf-dosgi-ri-discovery-distributed |
Discovers and Announces Endpoints using a Zookeeper Server |
Topology Manager |
cxf-dosgi-ri-topology-manager |
Basic Topology Manager Implementation |
Remote Service Admin |
cxf-dosgi-ri-dsw-cxf |
Creates Endpoints and Proxies using the CXF Framework |
Shows how the CXF DOSGi modules map to the spec. In the next chapters we look into each of these modules.