Sunday, August 13, 2006

JINI, Asynch Message Queuing and all that temporal decoupling stuff

An old hobby horse of mine this temporal decoupling thing. I cannot help beating on that particular drum as I see it as a really important concept that deserves to be better known.

Take a squint at OSCS for example. Using Amazon's S3 to splice a JINI-style asynchronous IPC layer into your application with very little heartburn compared to actually using, say, JINI locally. (JINI is powerful stuff but the last time I set it up, it cost me a week. Things may have improved since then.) This sort of infrastructure is a pain to set up and costly to keep running. If the cloud can do it for you...

Then there is the idea of using this layer to build an async message queue abstraction and using the message queues to orchestrate scalable web services where the processing can be done on any old machine (or machines) while the message queue layer, hosted in the cloud, does all the scalability/reliability etc. etc. Again, if the cloud can do it for you...

There are some patterns here which will grow in importance and popularity over the next few years. Are we seeing the virtualisation of the middleware layer? The outsourcing of the "ilities" of web apps?

Obviously, for some application areas this sort of out-sourcing of the middleware layer will not be a runner but for other application area, I think the whole area has significant legs.

To be provocative : A trendy new mashup without an asynch message queue handling all that nasty non-functional aspects of application design (like scalabilty, reliability, availability etc.), is either (a) only half a mashup which will generate blue smoke if (shock horror!) it becomes a success or (b) a full mashup that is way too expensive to operate and run to be around for the long run, unless its owners get subsumed into some mothership or other.

No comments: