Distribution Transparency
An important goal of a distributed system is to hide the fact that its processes and resources are physically distributed across multiple computers. A distributed system that is able to present itself to users and applications as if it were only a single computer system is said to be transparent. Let us first take a look at what kinds of transparency exist in distributed systems. After that we will address the more general question whether transparency is always required. Types of Transparency The concept of transparency can be applied to several aspects of a distributed system, the most important ones shown in Fig. below:
An important goal of a distributed system is to hide the fact that its processes and resources are physically distributed across multiple computers. A distributed system that is able to present itself to users and applications as if it were only a single computer system is said to be transparent. Let us first take a look at what kinds of transparency exist in distributed systems. After that we will address the more general question whether transparency is always required. Types of Transparency The concept of transparency can be applied to several aspects of a distributed system, the most important ones shown in Fig. below:
Figure:
Different forms of transparency in a distributed system
Access transparency deals with hiding differences in data
representation and the way that resources can be accessed by users. At a basic
level, we wish to hide differences in machine architectures, but more important
is that we reach agreement on how data is to be represented by different
machines and operating systems. For example, a distributed system may have
computer systems that run different operating systems, each having their own
file-naming conventions. Differences in naming conventions, as well as how
files can be manipulated, should all be hidden from users and applications.
An important group of transparency types has to do with the location
of a re-source. Location transparency refers to the fact that users cannot tell
where a re-source is physically located in the system. Naming plays an
important role in achieving location transparency. In particular, location
transparency can be achieved by assigning only logical names to resources, that
is, names in which the location of a resource is not secretly encoded. An
example of a such a name is the URL http://www.prenhall.com/index.html. which
gives no clue about the location of Prentice Hall's main Web server. The URL
also gives no clue as to whetherindex.html has always been at its current location
or was recently moved there. Distributed systems in which resources can be
moved without affecting how those resources can be accessed are said to provide
migration transparency. Even stronger is the situation in which resources can
be relocated while they are being accessed without the user or application
noticing anything. In such cases, the sys-tem is said to support relocation
transparency. An example of relocation transparency is when mobile users can
continue to use their wireless laptops while moving from place to place without
ever being (temporarily) disconnected.
As we shall see, replication plays a very important role in
distributed systems. For example, resources may be replicated to increase
availability or to improve performance by placing a copy close to the place
where it is accessed. Replication transparency deals with hiding the fact that
several copies of a resource exist. To hide replication from users, it is
necessary that all replicas have the same name. Consequently, a system that supports
replication transparency should generally support location transparency as
well, because it would otherwise be impossible to refer to replicas at
different locations.