In his Ongoing blog Tim Bray mentions that he'll be giving a talk at this year's JavaOne called: Sigrid: The simplest possible grid computing platform If I make it to JavaOne this year, I'll put this talk at the top of my list.  There's a big gap right now in Grid Computing.  There are Grid Computing APIs, but these seem to be designed for the traditional big iron apps like those used by chemical companies and Wall Street.   It is hard to write grid apps with these APIs.  In order to get more programmers and companies to think about moving their apps to the grid, it has to be easier to write grid apps.  In particular this means:
  • Use a friendly programming language like Java
  • Be able to develop and test on a desktop system
  • Have a minimal API
  As part of the Search Inside the Music project we often have to distribute large compute jobs over a network of computers.  To help do this we've written a system called SPAWN (Spawn Processes and Wait Not) based upon JavaSpaces.  We have a single method API:
public <T> List<Future<T>> invokeAll(Collection<Callable<T>> tasks, long timeout);

With this method (based on the invokeAll method from the java.util.concurrent.ExecutorService), a programmer can build a list of tasks to be executed on the grid. The method will return a list of futures that are then used to determine when the tasks have completed (or failed).  The SPAWN framework will put the callable tasks into a JavaSpace. Waiting on this space are SPAWN process servers that will pull the tasks out of the space, execute the code and put the answers back into the space where they are reaped by the client.  The leases and transactions supported by JavaSpaces make this system very reliable. If any of the systems processing one of the tasks goes down its lease on the task will expire and the task will be given to another system to process. 

I'll very interested in seeing what Tim's 'simplest possible grid computing platform' is like. I'm especially curious to see if it will be simpler than SPAWN.

Comments:

This is already part of JSR 236 / 237, and already supported (and used in production financial apps) by Tangosol Coherence. See: http://www.tangosol.com/coherence.jsp Peace.

Posted by Cameron Purdy on January 23, 2006 at 10:56 AM EST #

Post a Comment:
Comments are closed for this entry.

This blog copyright 2010 by plamere