November 16, 2005

Infiniflow

Infiniflow by Paremus has finally been released. I have been wanting to get my hands on this product for about 9 months.
What is it? It is supposedly a next generation grid solution, moving beyond the traditional compute farm approach. It apparently has built in support for distributed workflows and dataflows and all in a Transactional environment. The underlying infrastructure is built on top of Jini, Blitz, Jxta etc.
Going through the install process now, hopefully it will live up to expectations.

Posted by Damian at 10:01 AM | Comments (3)

October 25, 2005

TDD in the world of Grid Computing

Well it has been about seven months since my last post! I never have been much good at keeping up appearances.


A question i have been asked a lot over the past 9 months: How do you do TDD in the world of Grid Computing

The answer is simple: The same way you do it in the non Grid Computing world!

The way I do TDD is to push away external systems, libraries, components etc, by wrapping them with Interfaces. This gives me the abilitity to Test/Design the behaviour of an application without external dependencies having too much influence on the overall design.
With Unit level tests I can then substitute the Interface to the external system (Grid in this case) with a Mock or Stub implementation. This provides a number of advantages:

Of course this approach doesn't cover case where you really want to know that it works when everything is plumbed together. That is what Functional tests are for.

Functional tests should test from top to bottom with real dependencies plumbed in. Further, they should run as a seperate stage in your build pipeline so they don't slow down the feedback loop. Slow feedback == frustrated developers == lower moral == short cuts == a mess!

So the moral of the story: TDD on a grid application is no different to TDD in any application. Fail fast and be happy!

Posted by Damian at 09:54 AM | Comments (0)

March 05, 2005

Jini and JavaSpaces

As mentioned in my previous post on Grid Computing, I have been looking at and using JavaSpaces; I have not had so much fun with a technology in quite some time. I am currently trying to work out why I haven't used it sooner.

Part of the reason, I think, is that Jini as a technology seems to have never been taken seriously by anyone accept a few people at Sun and a handful of devotees. This may be partly due to the SCSL license, but is probably mostly due to the fact that is barely mentioned anywhere on the Java site. Seriously have a dig around and tell me where it is! Sure, if you do a search, you can find some references to whitepapers, but otherwise it is know where to be seen. Another reason, I guess, is that it can be a pain in the back side to get up and running for the first time, this is because Sun doesn’t package any easy start up scripts and documentation with it.

Ok now that I have got that off my chest; why do I like Jini and in particular JavaSpaces? Because, at heart, I am a geek! Seriously now, Jini offers true network plug and play computing. It is built with the fact that networks and computers etc are unreliable. Networks, PCs, Services etc, can come and go, Jini caters for this, enabling you to build reliable and scalable Service Oriented Apps relatively easy. Throw JavaSpaces in to the mix and you get a nice simple way of de-coupling your Services.

With these technologies I can build a simple compute grid quite easily. Basically, create a Worker that pulls Entries from a JavaSpace and calls an execute method, start up 1 or more JavaSpaces, start up n workers, my simple compute grid is now up and running. Ok there is a little bit more to it than that, but you get the idea.

JavaSpaces is more than just an infrastructure for enabling Grid computing. It can be used for distributing data, de-coupling services or components (whatever you want to call them), or adding on-demand scalability to applications. I am sure there are plenty of other usages.

So what I am trying to says is; If you haven't already had a play with JavaSpaces, go and download Blitz, install it, have a play, and you might find that you are pleasantly surprised.

Last but not least; Sun - please please show some support for this technology!

Posted by Damian at 10:44 AM | Comments (0)