We are considering utilizing distributed OSGi in our enterprise environment.
We would have the following setup:
What is the proper way to manage bundles' lifecycle (install, start, update, stop, uninstall) across all containers?
Several requirements:
I appreciate any suggestion regarding the above question.
Best regards, Marton
OSGi bundles allow versioning of code Two different applications might have different version requirements on the same library. OSGi allows both versions to be deployed simultaneously, and both applications can be satisfied.
The Open Services Gateway Initiative (OSGi), also known as the Dynamic Module System for Java, defines an architecture for modular application development.
You might want to have a look at more "managed" solutions made for cloud-like environments: Apache ACE or its bigger brother Amdatu.
Apache ACE turns a single OSGi Containers into managed containers whose state can be controlled from a single administration point. Amdatu is a more complete framework that includes ACE for provisioning but adds horizontal functionality.
In terms of managing large numbers of bundles, look at Karaf features - they greatly simplify handling largely suites of bundles.
For the distributed side of things, take a look at the Karaf subproject Cellar, it's clustering Karaf using HazelCast (and it installs in Karaf via the features mechanism).
If you are serious about enterprise ready - meaning "robust" - distributed OSGi runtimes - then have a look at the Paremus Service Fabric. We've been doing this since 2005 :)
The Service Fabric's provisioning / management architecture is extremely scalable (>> 1,000's of containers), responsive and stable! Several years development and commercial runtime experience underpinning this product. The Service Fabric architecture supports multiple concurrent distributed OSGi based applications. The Service Fabric's architecture is OBR centric; our lead engineer was responsible recent OSGi Alliance OBR specification activities.
The Service Fabric message backplane leverages the DDS messaging protocol - which IMO is the natural partner for distributed OSGi. The Paremus RSA (remote service implementation) is a clean room implementation of the standard - which is highly robust, light weight and allows dynamic plug ability of protocol and distribution providers. The default discovery provider - is again DDS.
Finally - and Service Fabric works out of the box.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With