This post has been triggered by two interesting posts on the topic of what it is to be an application in an OSGi environment. This is something I felt I just had to get stuck in with as its exactly what we’ve been working on in the Newton project.
The way we’ve tackled this is very similar to the approach suggested by Mirko, except instead of using Spring-DM as the top level element in the model we’ve picked SCA.
SCA is a relatively new specification but it gives a vendor neutral way of describing the service dependencies and architecture of an application running in an enterprise environment.
The basic pattern is that a component which has a certain implementation (java, spring, bpel, c, etc) is able to publish a number of services (over a range of protocols – in-memory, RMI, WS, JMS, etc) and consume services from other components via references. The combined unit which is the component, it’s services and it’s references are then packaged in an entity called a composite. (more…)