Sunday, July 10, 2005

Yet another container architecture?

Don Box makes a good point about JBI versus EJB containers, which is essentially: why another container in J2EE; isn't the application server sufficient? As Steve points out, however, and I agree with, we shouldn't be looking at this as yet another container, but rather as a way of facilitating a micro-container architecture (cf micro-kernel). In fact, back when there was an HP middleware division we tried to standardise on an approach that had been used successfully by the HP-AS guys to achieve this. There was even an attempt to standardise this with JSR 111, led by my friend and co-author Jon Maron.

But I think Don still has a point: until there's a standardised approach to this, some formal way of describing these different containers as aspects of the same core infrastructure, it's just one approach that some vendors may take, whereas others may re-invent the wheel and impose different interaction patterns on users, resulting in the JBI container as a truly different beast to an EJB container. Maybe it's time to revisit the CSF?

4 comments:

Robert Evans said...

Where does OSGi fit into the landscape ?

Mark Little said...

If you're talking about OGSI and containers then I think it should be possible to tailor a suitable configurable micro-container architecture to fit a range of deployment requirements. However, J2EE & JBI containers are more definitely Java specific, whereas OGSI (and Grid in general) aren't/shouldn't be.

Robert Evans said...

I am speaking of the OSGi container:
http://www.osgi.org/

Mark Little said...

Hi Rob. I'll take a look at the specific descriptions of the container, but I don't think it should change what I originally said: from an architectural perspective, there shouldn't be anything special that would prevent the same micro-container from being used in different arenas. At the implementation level there may be a few language differences, but even then, something like the CORBA Component Model was able to provide a language independent model.