For distributed applications, the NDO Enterprise Edition uses ObjectContainers to serialize whole object hierarchies. At the receiving context the containers can be coupled to an OfflinePersistenceManager. Then you can work with your objects as usual: You can change, create new, and delete objects and you can alter object relationships. After making changes you can send back a ChangeSetContainer to a context where an online PersistenceManager exists. That PersistenceManager can then store the changes into the database.