Amdatu Remote

Amdatu Remote

The Amdatu Remote subproject provides implementations of the OSGi Remote Services 1.0 (OSGi Enterprise R5) and Remote Service Admin 1.1 (OSGi Enterprise R6) specifications. OSGi specifications can be downloaded via the OSGi Alliance homepage

Project Info

 

Software Design

Amdatu Remote provides component implementations along the lines of the roles and entities as defined by the Remote Service Admin specification (see Figure 122.1) . Every bundle provides a single discovery, topology manager of remote service admin service implementation. This means different components can be mixed and matched as required ( image source: Figure 122.1; OSGi Enterprise Release 5).

 

Discovery Components

Discovery components are responsible for publishing exportable as well as discovering importable service endpoints across frameworks. All specification mandated interaction between discovery components and topology manager is based on the exchange of EndpointDescription instances across EndpointListener and EndpointEventListener service interfaces.  

HTTP endpoint discovery (Configured)

Bundle

org.amdatu.remote.discovery.configured/0.1.0

Description

OSGi RSA 1.1 discovery implementation that uses (pre)configured HTTP endpoints that provide the actual service discovery based on HTTP/XML (using the extender format as defined in the RSA specification).

Capability

osgi.remoteserviceadmin.discovery; protocols:List<String>="configured"; version:Version="1.1"

Configuration

The service can both be configured using OSGi environment properties and using Configuration Admin. In case both methods are used the latter takes precedence. The service PID for this service is "org.amdatu.remote.discovery.configured". The following properties can be used:

org.amdatu.remote.discovery.configured.endpoints

One or more remote endpoint discovery URLs as a comma-separated string. The URLs should follow the following pattern: http://host:port/endpoint-path. Where host and port are the host and port of the remote configured discovery endpoint, and endpoint-path the path as configured with org.amdatu.remote.discovery.configured.path for the remote configured discovery endpoint. For example: http://endpoint1:8080/org.amdatu.remote.discovery.configured,http://endpoint2:8080/org.amdatu.remote.discovery.configured.

org.amdatu.remote.discovery.configured.host

Host name or IP Address to use for the local discovery endpoint. If not specified the service will fallback to the "org.apache.felix.http.host" environment property and otherwise to "localhost".

org.amdatu.remote.discovery.configured.port

Port number to use for the local discovery endpoint. If not specified the service will fallback to the "org.osgi.service.http.port" environment property and otherwise default to "8080".

org.amdatu.remote.discovery.configured.path

Servlet path to use for the local discovery endpoint. If not specified the service will default to "org.amdatu.remote.discovery.configured".

org.amdatu.remote.discovery.configured.schedule

Time period in seconds between scheduled polls to the discovery endpoints. Default is 10s.

org.amdatu.remote.discovery.configured.connecttimeout

Timeout in ms to use when connecting to a discovery endpoint. Default is 5000ms.

org.amdatu.remote.discovery.configured.readtimeout

Timeout in ms to use when reading from a discovery endpoint. Default is 5000ms.

 

HTTP endpoint discovery (ZooKeeper)

Bundle

org.amdatu.remote.discovery.zookeeper/unreleased

Description

OSGi RSA 1.1 Discovery implementation that uses a ZooKeeper backend to discover HTTP endpoints that provide the actual service discovery based on HTTP/XML (using the extender format).

Capability

osgi.remoteserviceadmin.discovery; protocols:List<String>="zookeeper"; version:Version="1.1"

Configuration

The service can both be configured using OSGi environment properties and using Configuration Admin. In case both methods are used the latter takes precedence. The service PID for this service is "org.amdatu.remote.discovery.zookeeper". The following properties can be used:

org.amdatu.remote.discovery.zookeeper.host

Host name or IP Address to use for the local discovery endpoint. If not specified the service will fallback to the "org.apache.felix.http.host" environment property and default to "localhost".

org.amdatu.remote.discovery.zookeeper.port

Port number to use for the local discovery endpoint. If not specified the service will fallback to the "org.osgi.service.http.port" environment property and default to "8080".

org.amdatu.remote.discovery.zookeeper.path

Servlet path to use for the local discovery endpoint. If not specified the service will default to "org.amdatu.remote.discovery.zookeeper".

org.amdatu.remote.discovery.zookeeper.connectstring

ZooKeeper connection string that contains one or more comma-separated hostname:port combinations and an optional chroot. Example: "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002/app/a".

org.amdatu.remote.discovery.zookeeper.rootpath

ZooKeeper path from the (ch)root that must used as its registry. If not specified the service will default to "/".

org.amdatu.remote.discovery.zookeeper.ticktime

ZooKeeper ticktime in milliseconds that must be used for the connection. If not specified the service will default to "2000".

org.amdatu.remote.discovery.zookeeper.schedule

Time period in seconds between scheduled polls to the discovery endpoints. Default is 10s.

org.amdatu.remote.discovery.zookeeper.connecttimeout

Timeout in ms to use when connecting to a discovery endpoint. Default is 5000ms.

org.amdatu.remote.discovery.zookeeper.readtimeout

Timeout in ms to use when reading from a discovery endpoint. Default is 5000ms.