Also, if you would rather just do bean data synchronization (particularly useful for game data in a game where multiple clients can modify, or at least read specific data about an object) check out the SharedObject system in JGN. It allows you to define an interface like:
public interface MySharedBean {
public String getOne();
public void setOne(String one);
public int getTwo();
public void setTwo(int two);
}
Then you can create instances on multiple machines of that bean that synchronize for you. Take a look at the samples:
You can even add listeners to the SharedObject to be notified when any of the data changes. You’ll know what “field” was changed, what it was changed to, and the MessageClient that is responsible for the change. This is extremely powerful if you’re wanting stateful data synchronized over many clients or even just client to server.
These are just two of the many features JGN provides. I think it’s also relevant to point out that these are “extensions” to the core functionality of JGN. The beauty of this is that this kind of functionality can be written by anyone. It shows the power of the core of JGN to support nearly any usage.