Introduction

We have dealt, so far, with distributed systems in terms of the semantics of the operations they support, the problems of synchronization etc. All interactions within a distributed system involve the transfer of messages. Such transfers require there to be some underlying communications system. In this chapter we look at this communications system and the way in which it can be designed in order to support 'open' distributed systems. 'Open' distributed systems require 'open' communications which, in turn, implies an agreement on the part of the participants on a set of communication 'standards' to which all will adhere. It is desirable that such standards have some degree of consistency and coherence and fit into a reasonable concise abstract model. Standards defined in this way are often dignified with the name communications 'architecture'. There are many more-or-less 'open' communications architectures, for example; IBM's Systems Network Architecture, DEC's Digital Network Architecture and the set of standards associated with the US DARPA network. However, the key architecture for a book on Open Distributed Systems is that developed by ISO for Open Systems Interconnection (OSI)'. OSI standards are important not only because they were developed specifically to support open communications involving equipment from different manufacturers, but also because they introduce a vocabulary and an abstract 'Reference Model' of a communications system which is widely applicable. It is not the purpose of this book to give a complete development of the OSI standards, there are many other books which do this well. Our purpose here is twofold; firstly, to establish the modeling concepts inherent in the OSI architecture, and secondly, to consider the suitability of the OSI work for the support of distributed systems. In practice, most distributed systems use the Internet protocols. However, the model is similar enough, and, dare one say, less well expressed, if better coded. As mentioned before, the distributed systems programmer inevitably sees more of the underlying system than the traditional applications programmer on a centralised system. We believe that a firm grasp of the underlying communications technology is essential.