Well in my grad paper i'm going to talk besides other things about jboss cache too. I'm gonna say that "JBoss Cache is a tree which can be replicated between processes". Now i'm gonna have an audience of professors which know crap, but to hide their knowledge they like to ask a lot of stupid questions mostly unrelated to the subject. But just in case that someone decides to get smart and asks the question:
"How can java replicate an object between processes? Doesn't that imply that they need some kind of shared memory? Does java implements a tool for that?" Or is it the case where a process is started and it spawnes some threads and they of course have the shared memory. I'm sure it;s not that. Or when i say cache.start() does it create a localhost socket and comunicates with other processes? Does it work with instances of objects created localy but inside different virtual machines?
Look for JGroups and Object Serialization docs.