Modula-3 is a descendent of Pascal that corrects many of its deficiencies. The Network Object package supports distributed data sharing by providing remote method call facilities that are virtually transparent to the programmer. These include distributed garbage collection, exception propagation back to the calling site, and automatic marshalling and unmarshalling of method arguments and return values of virtually any data type between heterogeneous machines. Like Modula-3, it supports multiple threads of control within a single process. Obliq's distributed computation mechanism is based on Network Objects, allowing transparent support for multiple processes on heterogeneous machines.
Objects are local to a site, while computation can roam over the network.
The package's structure and interface also make it relatively easy to extend. The HTTP package is a Modula-3 library that support the creation of HTTP clients and servers. It was created as part of DEC SRC's Millicent project. The Shared Object package, when combined with the Network Object package, provides a distributed language infrastructure geared toward the needs of VE applications by providing general purpose, asynchronously updated, replicated objects. DSM mechanisms use message-passing protocols between machines to implement some model of shared memory access that is used by the programmer.