Wednesday, February 24, 2010

OSGi: Visualizing system complexity


For a while I have been experimenting with visualization of assembled OSGi systems based on the bundles explicit imports and exports.

In particular, Coalevo, because there are a lot of inter-dependencies between the different services and bundles.

See for yourself:

Now, logically many of the underlying pieces are used by almost all other bundles, so I have tried to remove some of those bundles (i.e. libraries, foundation, logging, system-services etc.) to obtain a clearer picture:


Nice!

I am still working on improving the import/export parsing (because it has become way more complicated then it was in the early days of OSGi) and the way the dependencies are resolved. Currently it is rather simplistic and doesn't take into account more than simple packages and no versioning.

Credits for the actual graph and visualization go to Jung, which is an amazing graph library with easy to use visualization tools.

If anybody is interested in this, don't hesitate to contact me.