Question

Apache Ace documentation refers that it can do software provisioning to other types of targets "non-OSGi containers, or something completely different target". But no documentation is available regarding non-OSGi target.

Can I have some examples of non-OSGi targets to which Apache Ace can do software provisioning. Also, what are the minimum requirement for a target to work with Apache ACE.

Thanks

Was it helpful?

Solution

Some examples of non-OSGi targets that I have seen people create are:

  • Android applications to a mobile device, using a resource processor that could programmatically install .APK files.
  • Windows desktop applications that, again using a resource processor, were installed on a users' desktop computer.
  • Kernel modules, configuration and other files, database schema, etc.

All of these can be implemented by creating the appropriate resource processor. In short, a resource processor is just an OSGi bundle that gets shipped alongside the resources that are provisioned. Both arrive at the target, where the processor is used to somehow install the resource. The mechanism allows you to extend the provisioning system with new file types.

Another non-OSGi target you can use is PojoSR. This works a bit differently. With a special post processor bundle, ACE can, instead of delivering deployment packages, create an executable JAR file that contains the PojoSR framework and the bundles you configured. You can fetch and run this jar anywhere. Mainly interesting in environments where normally you could not run OSGi.

Yet another thing I've seen being done is deploying to Apache Celix, which is an OSGi implementation in C. They have actually implemented a proof of concept management agent that can talk to ACE and they can provision bundles with C code that way.

About the minimum requirements:

We try to keep the management agent compatible to the basic OSGi execution environment, meaning we refrain from using any Java 5+ features. It does need an R4 compatible OSGi implementation though, R3 is too old as it does not support DeploymentAdmin (which is the basis for the provisioning mechanism we use).

OTHER TIPS

Have a look at remote interfaces, but HTTP is the default I think, see this link - so as a minimum requirement, anything that can check the metadata and stream a socket can hit the relevant (restful looking) URLs and discover/provision from Ace.

I don't have much experience with Apache ACE, but if you are looking for a remote provisioning system which mainly targets OSGi clients but can also handle other targets, you can take a look at ProSyst mPower Remote Manager - the supported targets are OSGi-based devices, OMA DM devices and TR-069 devices.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top