What're different Distributed cache implementations in ehcache, JSC, etc

Does it have a lightweight open source distributed cache component in the project, with a recommended framework component for Java? Recently,I learned that JCS, EHcache etc can implement distributed caches ,but I don't know what features and advantages are in those cache component clearly. And I want to know other excellent open source distributed components,And there're mainly ways to implement distributed caches, such as: RMI, JGROUP, JMX, what are the difference between these?

Thanks in advance !!