Distributed System
Distributed System
SYLLABUS
SYLLABUS
Introduction – Distributed Systems
Definition:
• A distributed system is one in which components located at networked
computers communicate and coordinate their actions only by passing
messages.
• A collection of computers that do not share common memory or a
common physical clock, that communicate by a message passing over a
communication network and where each computer has its own
memory and runs its own operating system.
• Typically, computers are semi-autonomous and are loosely-coupled.
• loosely-coupled-reduces interdependencies among system and
application components.
• Tight coupling refers to a situation where two or more software
components are closely connected and depend on each other to
function properly.
Introduction – Distributed Systems
an associated structured distributed storage system that offers fast access to very large
datasets.
a lock service that offers distributed system functions such as distributed locking and
agreement
a programming model that supports the management of very large parallel and distributed
computations across the underlying physical infrastructure.
Activity: Google – Case study of a modern distributed system
2. Massively multiplayer online games (MMOGs):
Massively multiplayer online games offer an immersive experience whereby very large
numbers of users interact through the Internet with a persistent virtual world.
Ex:Sony’s EverQuest II and EVE Online from the Finnish company CCP Games
The number of players is also rising, with systems able to support over 50,000 simultaneous
online players.
Need of MMOGs: fast response time.
Challenges: the real-time propagation of events to the many players and maintaining a
consistent view of the shared world
Examples of Distributed Systems
Example:
• The script detects a complex temporal sequence based on the share prices of Microsoft, HP and a basket of
other share prices, resulting in decisions to buy or sell particular shares.
• This style of technology is increasingly being used in other areas of financial systems including the monitoring
of trading activity to manage risk (in particular, tracking exposure), to ensure compliance with regulations and
to monitor for patterns of activity that might indicate fraudulent transactions.
Focus on Resource Sharing
1. Heterogeneity
2. Openness
3. Security
4. Scalability
5. Failure handling
6. Concurrency
7. Transparency
8. Quality of service
Challenges
1.Heterogeneity:
Heterogeneity (that is, variety and difference) applies to all of the following:
• networks;
• computer hardware;
• operating systems;
• programming languages;
• implementations by different developers.
Middleware -The term middleware applies to a software layer that provides a
programming abstraction as well as masking the heterogeneity of the underlying
networks, hardware, operating systems and programming languages.
Ex: CORBA(Common object request broker)
Java Remote method Invocation(RMI) supports only a single programming language
Challenges
• Heterogeneity and mobile code • The term mobile code is used to refer to
program code that can be transferred from one computer to another and run
at the destination – Java applets are an example.
• Code suitable for running on one computer is not necessarily suitable for
running on another because executable programs are normally specific both
to the instruction set and to the host operating system.
• The virtual machine approach provides a way of making code executable on a
variety of host computers: the compiler for a particular language generates
code for a virtual machine instead of a particular hardware order code.
• For example, the Java compiler produces code for a Java virtual machine,
which executes it by interpretation.
• The Java virtual machine needs to be implemented once for each type of
computer to enable Java programs to run.