Objects and Distribution.

There will exist some base set of methods and types in any Object Oriented System. Usually this will include: In an Open Distributed System, we will wish to augment this list. We may include: These will be the base set of methods that form the toolset the application programmer draws from when addressing the transparencies required which in themselves derive from the viewpoints described at the beginning of this chapter. The published interface for these methods allows prototyping by the applications programmer, and thus facilitates distributed application building and has several desirable side affects such as change control (new versions can coexist since the version can be made part of the interface specification). An object may have multiple interfaces, of course. This can be for administrative reasons, or else simply to separate management, service and access control, for example. Finally, an interface might contain state visible outside of the object. This can be used so that information can be lodged in an interface and be available to the object at succesive invocations of methods. This can support a whiteboard style of communication between objects. This set of base methods and their implementation and typical use are described further in Chapter 7. There are many problems still to be solved in Distributed Systems. Most of these stem from scaling. The advantages of incremental growth, and fault tolerance may be outweighed by disadvantages of communications costs, replication of effort (operating system and application software required at many sites instead of one or a few, distributed authentication, etc. etc.).