Maven and OSGi repositories

While researching for Omneity I have come across some interesting issues, issues directly relevant to the idea behind Omneity itself (and some that are more generally challenging to software configuration management). One of those issues was highlighted while I was researching the use of Maven to build OSGi bundles.

Both Maven and OSGi support the idea of repositories to distribute packages (or bundles in OSGi-land). These repositories are not directly available between the two systems and several people are working on making packages available across the two systems (i.e. allowing OSGi to access Maven packages as if they are already prepared as OSGi bundles and vice versa).

The principal issue in doing this cross repository work is being able to construct the relevant meta data describing the package/bundle and tracking down all dependencies to ensure that they are made available in a suitable form. The dependency problem is a non-trivial problem, especially when considering the dependency resolution used in OSGi frameworks (where it is possible, but not necessarily desirable, to have two different versions of a library in use simultaneously).

Part of objectives for Omneity is to help address this universal problem (the dependency issue extends way beyond just Maven and OSGi) by providing a consolidated view across all repository technologies. This is a very difficult problem (and for the general case is NP-complete), especially as systems increasingly extend the dependency problem into the run-time of systems where frameworks like OSGi allow complex configurations to be resolved at run-time (a situation potentially exacerbated by remote infrastructure solution such as cloud computing, where some configuration decisions may be taken out of the client’s hands in preference for managed service/platform solutions).

Being a difficult problem means that too many organisations simply ignore it, which is unfortunate because the dependency resolution issue is vitally important to both diagnosing and predicting system behaviour (as anyone who has tried diagnosing even relatively trivial class loader issues in J2EE installations). Ignoring the increasingly complex and dynamic configuration of IT systems is a recipe for disaster. I believe configuration management needs a unified dashboard approach that will allow the whole of a development or run-time system configuration to be viewed and analysed, this is the objective behind Omneity.

, ,

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

%d bloggers like this: