Cloud Exam
Cloud Exam
A distributed system is one in which components located at networked computers communicate and
coordinate their actions only by passing messages. This definition leads to the following especially significant
characteristics of distributed systems: concurrency of components, lack of a global clock and independent
failures of components.
Webcasting
Webcasting is an application of distributed multimedia technology. Webcasting is the ability to broadcast
continuous media, typically audio or video, over the Internet.
Clock Drift Rate
The term clock drift rate refers to the rate at which a computer clock deviates from a perfect reference clock.
Even if the clocks on all the computers in a distributed system are set to the same time initially, their clocks will
eventually vary quite significantly unless corrections are applied.
1. Openness
The openness of distributed systems is determined primarily by the degree to which new resource-sharing
services can be added and be made available for use by a variety of client programs.
• Open systems are characterized by the fact that their key interfaces are published.
• Open distributed systems are based on the provision of a uniform communication mechanism and
published interfaces for access to shared resources.
• Open distributed systems can be constructed from heterogeneous hardware and software, possibly from
different vendors. But the conformance of each component to the published standard must be carefully
tested and verified if the system is to work correctly.
2. Scalability
Distributed systems operate effectively and efficiently at many different scales, ranging from a small intranet
to the Internet. A system is described as scalable if it will remain effective when there is a significant increase in
the number of resources and the number of users.
The design of scalable distributed systems presents the following challenges:
Controlling the cost of physical resources: As the demand for a resource grows, it should be possible to extend
the system, at reasonable cost, to meet it. For example, the frequency with which files are accessed in an intranet
is likely to grow as the number of users and computers increases. It must be possible to add server computers to
avoid the performance bottleneck that would arise if a single file server had to handle all file access requests.
Controlling the performance loss: Consider the management of a set of data whose size is proportional to the
number of users or resources in the system - for example, the table with the correspondence between the domain
names of computers and their Internet addresses held by the Domain Name System, which is used mainly to look
up DNS names such as www.amazon.com. Algorithms that use hierarchic structures scale better than those that
use linear structures.
Preventing software resources running out: An example of lack of scalability is shown by the numbers used as
Internet (IP) addresses. The supply of available Internet addresses is running out. For this reason, a new version of
the protocol with 128-bit Internet addresses is being adopted, and this will require modifications to many software
components.
3. Transparency
Transparency is defined as the concealment from the user and the application programmer of the separation of
components in a distributed system, so that the system is perceived as a whole rather than as a collection of
independent components.
• Access transparency enables local and remote resources to be accessed using identical operations.
• Location transparency enables resources to be accessed without knowledge of their physical or network
location (for example, which building or IP address).
• Concurrency transparency enables several processes to operate concurrently using shared resources
without interference between them.
• Replication transparency enables multiple instances of resources to be used to increase reliability and
performance without knowledge of the replicas by users or application programmers.
• Failure transparency enables the concealment of faults, allowing users and application programs to
complete their tasks despite the failure of hardware or software components.
• Mobility transparency allows the movement of resources and clients within a system without affecting
the operation of users or programs.
• Performance transparency allows the system to be reconfigured to improve performance as loads vary.
• Scaling transparency allows the system and applications to expand in scale without change to the system
structure or the application algorithms.
• The emergence of mobile computing has led to physical models where nodes such as laptops or smart
phones may move from location to location in a distributed system, leading to the need for added
capabilities such as service discovery and support for spontaneous interoperation.
• The emergence of ubiquitous computing has led to a move from discrete nodes to architectures where
computers are embedded in everyday objects and in the surrounding environment (for example, in washing
machines or in smart homes more generally).
• The emergence of cloud computing and, in particular, cluster architectures has led to a move from
autonomous nodes performing a given role to pools of nodes that together provide a given service.
6. Synchronous distributed systems: Hadzilacos and Toueg [1994] define a synchronous distributed system to
be one in which the following bounds are defined:
• The time to execute each step of a process has known lower and upper bounds.
• Each message transmitted over a channel is received within a known bounded time.
• Each process has a local clock whose drift rate from real time has a known bound.
• Process execution speeds - for example, one process step may take only a picosecond and another a
century; all that can be said is that each step may take an arbitrarily long time.
• Message transmission delays– for example, one message from process A to process B may be delivered
in negligible time and another may take several years. In other words, a message may be received after an
arbitrarily long time.
• Clock drift rates - again, the drift rate of a clock is arbitrary.