Introduction

We all want to communicate. Individuals communicate to achieve their day to day desires and requirements. Organizations communicate about their business goals. Communication is built round the common goals of an organization. The organization develops a vocabulary to name the objects that concern it, together with a language appropriate to describing the relations between these objects, the actions which may be performed on these objects, and the methods (ways) in which these actions may be carried out. The objectives behind communication are many. A party may desire to communicate a command or wish to another, or may wish to elicit information from another. In almost all enterprises (see for example figure#fnds#34>), there is some degree of geographic distribution of the components of the system, and some requirement for communication between these parts. Communication may require complex rules to overcome the limitations of distant communication. These rules will deal with the problems of limited ability for remote communication to be so expressive. Distant communication incurs limitations such as restrictions on speed (rate) and latency (delay) of information transfer, and increased chance of errors. The need for low level rules for communication is dealt with in more detail in chapter five. The range of human communication mechanisms extend from face to face communication, including one to one and one to many, through telephone calls, the slower medium of letters and the more rapid equivalent of facsimile. These mechanisms are all reflected in the ways that computers are used to communicate. Computers may be used to share visualizations of data through real time graphics, to exchange textual information in real time or off line using a store and forward messaging system. Programs may communicate in similar ways to those that users do using such programmed facilities.

#figure35#
Figure: Distributed System

As well as geographical distribution, in almost all enterprises there is some degree of autonomy of the components of the system. Different parts of an organization will have different ways of communicating internally, and externally. This will be for reasons of efficiency and expressiveness. Efficiency may dictate that locally understood vocabularies are used in some places (for example, doctors and pharmacists use specialist terms). Different parts of the organization will have no interest in the detailed operations of each other, so summaries and reports will be exchanged that hide detail. Autonomy and heterogeneity are natural consequences of the growth and evolution of any large scale organization. Scale leads to diversity. It also leads to problems with systems modeled around 100 availability. In large systems, there are always faults and error conditions. Just as natural languages are used differently by different specialists (and indeed by ordinary people when speaking or writing), so different computer users have different computing approaches and different distribution requirements. Accounts, stock control, point of sales, factory automation, real time control systems, electronic funds transfer systems and many other applications will all have very different internal structures. The implications of all these points are that distributed computing is required, and that it must allow a degree of autonomy for the separate systems, as in figure#fnods#40>. This autonomy combined with the ability to communicate freely with other systems is what is partly meant by <#41#> Open Distributed Systems<#41#>. The openness is a requirement of the autonomy of different users to acquire, install and operate different appropriate systems while maintaining consistent distribution mechanisms across all users' systems.

#figure43#
Figure: Open Distributed System

Computing systems are used in a wide variety of organizations, for a wide variety of reasons. These reasons can be analyzed from a number of VIEWPOINTS as explained in the following section. Many of these ideas were developed under the UK Alvey Project, ANSA (;SPM_quot;Advanced Network Systems Architecture;SPM_quot;). These was then elaborated by the EC Esprit Project ISA (;SPM_quot;Integrated Systems Architecture;SPM_quot;). The work has been taken up by the International Standards Organization under the Open Distributed Processing WG.