Apparatus for representing and managing an XML-compliant document in a persistent memory, the apparatus comprising a first application program executing in a first process, a second application program executing in a second process, and a distributed shared memory system (614, 624) adapted to synchronize access to objects from multiple processes (700,702), characterized in that the XML-compliant document is represented as a first plurality of virtual objects stored in the distributed shared memory system in one or more memory regions of the distributed shared memory system (614, 624) located in an address space of the first process and a corresponding second plurality of virtual objects stored in the distributed shared memory system in one or more memory regions of the distributed shared memory system (614, 624) located in an address space of the second process, wherein the first plurality of virtual objects and the second plurality of virtual objects represent at least elements of the XML-compliant document, and the apparatus further comprises: a first storage manager interface containing methods that can be invoked from the first application, the methods performing read and/or write operations on the XML-compliant document, the methods accessing the first plurality of virtual objects; and a second storage manager interface containing methods that can be invoked from the second application, the methods performing read and/or write operations on the XML-compliant document, the methods accessing the second plurality of virtual objects, whereby each of the first application and the second application can reliably perform concurrent read and/or write operations on the XML-compliant document, wherein the distributed shared memory system (614, 624) maintains consistency between the first plurality of virtual objects and the second plurality of virtual objects by continually equating data in the memory regions located in the address space of the first process and data in the memory regions located in the address space of the second process, and wherein the first process comprises methods for requesting that the distributed shared memory system locks a virtual object when the first process is changing the virtual object and wherein the second process comprises methods for requesting that the distributed shared memory system locks a virtual object when the second process is changing the virtual object. a first storage manager interface containing methods that can be invoked from the first application, the methods performing read and/or write operations on the XML-compliant document, the methods accessing the first plurality of virtual objects; and a second storage manager interface containing methods that can be invoked from the second application, the methods performing read and/or write operations on the XML-compliant document, the methods accessing the second plurality of virtual objects, whereby each of the first application and the second application can reliably perform concurrent read and/or write operations on the XML-compliant document, wherein the distributed shared memory system (614, 624) maintains consistency between the first plurality of virtual objects and the second plurality of virtual objects by continually equating data in the memory regions located in the address space of the first process and data in the memory regions located in the address space of the second process, and wherein the first process comprises methods for requesting that the distributed shared memory system locks a virtual object when the first process is changing the virtual object and wherein the second process comprises methods for requesting that the distributed shared memory system locks a virtual object when the second process is changing the virtual object.