Has anyone deployed a corporate application in OSGi and found it useful?
I can see the benefits, forced modularity, good dependency definitions etc. But these seem to be mainly build related improvements.
Has anyone found it useful to dynamically replace an existing module? We tend to split our application by process and to be honest, it's not that difficult to startup a new instance of the app with updated libraries. Would OSGi be useful for this?
How reliable is the replacing of a module? It strikes me that if you have a very busy process with lots going on, replacing a running module is fraught with danger.
What is OSGi? OSGi is meant to solve common class loading issues that are seen in traditional Java EE environments; it is a set of specifications that are used in the creation of jars with extra manifest information to define dependencies and class loading behavior.
The OSGi (Open Service Gateway Initiative) specification is a Java framework for developing and deploying modular software programs and libraries. The framework was originally managed by the OSGi Alliance, an open standards organization.
OSGi is a dynamic platform. This means that bundles may be installed, started, updated, stopped, and uninstalled at any time during the running of the framework. The table below shows the possible states of an OSGi bundle and how these map to the plugin states.
I have just blogged about why we didn't go with OSGi
In a nutshell, I believe the foundations of OSGi are solid but it wasn't built for mass application development. It introduces friction into the development/deploy process that is already fraught with challenges. I'd like to see the OSGi spec leads focus more on the developer/user persona of OSGi to make it invisibile to the development process. Also I'm appalled that the JVM still doesn't have a transparent module standard.
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