Hazelcast is a pretty interesting Java library. It basically offers distributed versions of classic Java collection types: Queue, Set, List and Map. That is, you can have, for instance, one instance of a map shared across different Java applications, and all will see that map in the same way. So if one app adds some values, they become immediately visible to all others. In addition, applications can be added and removed dynamically, and your map should stay perfectly intact and synchronized. There is a really instructive screencast which brings home the point much better than I can describe it here.
As an added bonus, the main developer, Talip Ozturk, maintains a Hazelcast related blog where you can find some technical details on the implementation.