The ODP standards, and this text, assume a model where distributed applications are running in multiple processes in multiple computers linked by communications. The application programmer will be supported by a programming environment and run-time system that will make many aspects of distribution in the system transparent. For instance the programmer may not have to worry about where the parts of the application are running, this can all be taken care of, if required; this is called location transparency.
There is another approach to supporting applications in a distributed system, that is by using a distributed operating system. On every computer system with an operating system the O/S provides an interface which the programs use to obtain services, such as input and output.
In a distributed operating system this interface is enhanced so that a program may be run on any computer in the distributed system and access data on any other computer. The operating system provides data, execution and location transparency, often through an extended naming scheme. The advantage of a distributed operating system is that is uses an interface below that of the application program. This means the existing programming environments may be used, the programmer may use the system with little or no extra training, and in some cases existing software may be used. The disadvantage is that a number of problems are left for the programmer and user to handle, for instance concurrency; and because of the advantage above, programmers are given little support for this. Essentially, the Distributed Operating System dictates the policies of distribution for all aspects of programming. This means that the programmer is not able to use the distributed functionality in an application specific way to optimize a solution.
Another major disadvantage is that the distributed system is tied to a style of operating system interface. There are lots of different operating systems today, to meet different requirements (real or imaginary); there is no reason why future distributed systems will not need different operating system interfaces. Consequently it is not possible to build a truly heterogeneous open distributed system by building it on top of an homogeneous distributed operating system.
The ODP model provides an application interface to the distributed system. This interface is extremely simple and is concerned with aspects of distribution only. The application may still be run on any local operating system that is appropriate.
The ODP model does include the use of distributed operating systems, but would require any particular type of distributed operating system to interwork with other types through ODP and with also with non-distributed operating systems. The applications would see no difference. One popular implementors specification for some parts of ODP is the Common Object Request Broker Architecture. This is covered in chapter 7.