Nodes selected by a user can be edited by a set of predefined tools that are designed for specific tasks. Java part of the tool implements complex logic and ensures propagation of events through network. It also solves concurrency conflicts. To be able to perform more complex tasks we had to include in the system a VRML parser that gives us more detailed information about edited nodes. This task is accomplished by a system of locks on node properties.
Some tools have to obtain lock on a specific node property before they can change it.
Two users changing a point field of Coordinate node can also work simultaneously with assumption that they don't change number of elements in this field. Why they must not change the size of this field is described in the next example. Server is an authority that is asked in questions of concurrent access. Client allows VE editing and sends changes to server that propagates them to other clients. We solved this by naming every such event after its destination.