Try out http://code.google.com/p/hazelcast/ This library allows you to have distributed locks and data structures using which you could write your singleton.