Updated Lecture 08 - Distributed Computing
Updated Lecture 08 - Distributed Computing
Computing
Distributed Computing
Contents
• Definitions
• In the term distributed computing, the word distributed means spread out
across space. Thus, distributed computing is an activity performed on a
distributed system.
• These networked computers may be in the same room, same campus, same
country, or in different country.
Definitions
Definitions
• The numbers of real applications are still somewhat limited, and the
challenges--particularly standardization--are still significant.
• But there's a new energy in the market, as well as some actual paying
customers, so it's about time to take a look at where distributed processing
fits and how it works.
• A distributed computing architecture consists of very lightweight software
agents installed on a number of client systems, and one or more dedicated
distributed computing management servers.
• There may also be requesting clients with software that allows them to
submit jobs along with lists of their required resources.
How it Works
• Distributed systems don’t have a single design or implementation pattern—
instead, they break down into patterns aligned with various types of business
problems.
• An example of this is the sharded pattern for stateful services like databases.
This allows you to horizontally scale your data tier to avoid performance
bottlenecks and single points of failure.
• The first internet project like this was in 1988, where people helped factor
large numbers by lending their computers' idle time.
• In the 1990s, projects with cash rewards for solving puzzles like cracking
encryption attracted more users.
• SETI@Home, launched in 1999, used idle computers to search for alien signals
and became the most famous project of this kind.
SETI@Home
• The project that truly popularized distributed computing and showed that it could
work was SETI@Home, an effort by the Search for Extraterrestrial Intelligence (SETI) at
the University of California at Berkeley.
• The project was started in May 1999 to analyze the radio signals that were being
collected by the Arecibo Radio Telescope in Puerto Rico.
• It has gained over three million independent users who volunteer their idle computers
to search for signals that may not have originated from Earth.
• This project has really brought the field to light, so that other groups and companies
are quickly following their lead.
Examples of distributed computing in action
• Here are some examples of where distributed computing is used. As you will
discover, this concept is so common that we are all beneficiaries in one way or
the other. Many of us encounter it without realizing it.
Social media
Online banking
Price comparison
Ride sharing
Streaming services
Search engines
File sharing
Email
Advantages and benefits of Distributed Computing
Here are 7 key advantages and benefits of distributed computing;
1. Cost-effective
2. Increased storage
3. Enhanced security
4. Improved performance
5. Increased reliability
6. Greater flexibility and scalability
7. Low latency
Drawbacks of Distributed Computing
While distributed computing delivers many benefits as we have seen, it also
has its fair share of drawbacks and disadvantages.
• By developing the program, you may make it so that many computers work
together to complete various tasks and provide the desired outcome.
• The following list includes the four main types of distributed architecture;
Client-server architecture
Three-tier architecture
N-tier architecture
Peer-to-peer architecture
Most Popular Distributed Computing Frameworks And
Tools
• These are only a handful of the numerous distributed computing frameworks that
are accessible.
• It's critical to select the option that most closely matches the unique requirements
of your company because each has strengths and drawbacks of its own.
• The most common distributed computing tools are outlined below:
• Hadoop
• Spark
• Flink
• Storm
Key Components Of Distributed Architectures
• Distributed systems are complex and can vary greatly depending on their
specific use case and architecture. However, the following core components
are present in most distributed systems:
Nodes
• These are the individual computers or servers that make up the distributed
system. Each node runs its own instances of the applications and
services that make up the system.
Network
• This is the communication infrastructure that connects all nodes. The
network enables data and information to be exchanged between nodes.
Key Components Of Distributed Architectures
Middleware
• This software layer provides a programming model for developers and masks
the heterogeneity of the underlying network, hardware, and operating systems.
It provides useful abstractions and services which simplify the process of
creating complex distributed systems.
Shared Data/Database
• This is where the system stores and retrieves data. Depending on the specific
design of the distributed system, the data could be distributed across multiple
nodes, replicated, or partitioned.
Distributed Algorithms
• These are the rules and procedures nodes follow to communicate and
coordinate with each other. They enable nodes to work together, even when
some nodes fail or network connections are unreliable.
Key Components Of Distributed Architectures
System Management Tools
• These tools help manage, monitor, and troubleshoot the distributed system.
They provide functionality for load balancing, fault tolerance, system
configuration, and more.
Distributed Computing vs.
Related Concepts
Distributed Computing vs. Cloud Computing
Distributed computing involves a collection of independent computers
connected via a network, working together to perform tasks. Each computer
in a distributed system operates autonomously, and the system is designed to
handle failures of individual machines without affecting the entire system's
functionality.
• Telecommunication networks:
• Network applications:
• Parallel computation:
• Scientific computing, including cluster computing and grid computing and various volunteer computing projects