0% found this document useful (0 votes)
20 views6 pages

Understanding Distributed Systems

A distributed system is a network of autonomous computers that communicate and share resources to perform tasks. Types include client-server systems, peer-to-peer networks, middleware, and tiered architectures like three-tier and n-tier systems. The World Wide Web exemplifies a real-time distributed system, characterized by decentralized architecture, fault tolerance, and scalability, utilizing protocols like HTTP and DNS for communication and resource discovery.

Uploaded by

Vijay Karan
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views6 pages

Understanding Distributed Systems

A distributed system is a network of autonomous computers that communicate and share resources to perform tasks. Types include client-server systems, peer-to-peer networks, middleware, and tiered architectures like three-tier and n-tier systems. The World Wide Web exemplifies a real-time distributed system, characterized by decentralized architecture, fault tolerance, and scalability, utilizing protocols like HTTP and DNS for communication and resource discovery.

Uploaded by

Vijay Karan
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Distributed System

Definition:
Distributed System is a collection of autonomous computer systems that
are physically separated but are connected by a centralized computer network
that is equipped with distributed system software. The autonomous computers
will communicate among each system by sharing resources and files and
performing the tasks assigned to them.
“A distributed system is a system whose components are located on
different networked computers, which communicate and coordinate their
actions by passing messages to one another” — Wikipedia.

Types of Distributed Systems:


There are many models and architectures of distributed systems in use today.

 Client-server systems the most traditional and simple type of


distributed system, involve a multitude of networked computers that
interact with a central server for data storage, processing or other
common goal.

 Peer-to-peer networks distribute workloads among hundreds or


thousands of computers all running the same software.

 Middleware is an application which sits between two different


applications and provides services and benefits to both.

 Three Tier system uses a distinct layer and server for each program
function. The client's data is stored in the middle tier. It contains an
application layer, a data layer, and a presentation layer. This three-tier
system is most commonly used in web or online applications.

 N Tier is also known as a multitier distributed system. As the name


suggests, this system may contain any number of functions, similar to
the three-tier system. This N-tier system is more commonly used in web
applications and data systems.
Real Time Distributed System – World Wide Web:

Definition:
World Wide Web, which is also known as a Web, is a collection of websites or
web pages stored in web servers and connected to local computers through the
internet. These websites contain text pages, digital images, audios, videos, etc.
Users can access the content of these sites from any part of the world over the
internet using their devices such as computers, laptops, cell phones, etc.

Why World Wide Web – A Distributed System:

The web is currently the fastest growing Internet information system, with new
resources being added regularly. The web relies on a set of protocols, conventions
and software to operate. The web is a distributed system of delivering linked
documents over the Internet.

It is called a distributed system because information can reside on different


computers around the world. The web uses hypertext to create links from one
resource to another.

Characteristics Of World Wide Web – Distributed System:

Decentralized Architecture: The web is built on a decentralized architecture,


where information is stored on servers located all around the world. These servers
are connected through the internet, and users access information by sending
requests to these servers.

Fault Tolerance: Because the web is distributed, it is more resilient to failures.


If one server goes down, users can still access the information they need from
other servers. This fault tolerance is essential for ensuring continuous access to
information.

Scalability: The distributed nature of the web allows it to scale effectively to


accommodate a large number of users and requests. New servers can be added to
the network to handle increased traffic without significantly affecting
performance.
Algorithm Used In World Wide Web:

Message Passing System


Message passing means how a message can be sent from one end to the other
end. Either it may be a client-server model or it may be from one node to another
node.
Message passing in the World Wide Web refers to the communication protocol
used by web servers and clients to exchange data. In the context of the web,
message passing typically involves HTTP (Hypertext Transfer Protocol), which
is the foundation of data communication on the web. When a client (such as a
web browser) requests a resource from a server (such as a website), it sends an
HTTP request message. The server then processes the request and sends back an
HTTP response message containing the requested resource, such as a web page
or a file.
Message passing in distributed systems refers to the communication medium
used by nodes (computers or processes) to commute information and coordinate
their actions. It involves transferring and entering messages between nodes to
achieve various goals such as coordination, synchronization, and data sharing.

Message passing is a flexible and scalable method for inter-node


communication in distributed systems. It enables nodes to exchange
information, coordinate activities, and share data without relying on shared
memory or direct method invocations.

Message Passing make use of RPC Protocol. Remote Procedure Call (RPC) is a
communication technology that is used by one program to make a request to
another program for utilizing its service on a network without even knowing the
network’s details. A function call or a subroutine call are other terms for a
procedure call.
It is based on the client-server concept. The client is the program that makes the
request, and the server is the program that gives the service. An RPC, like a
local procedure call, is based on the synchronous operation that requires the
requesting application to be stopped until the remote process returns its results.
Domain Name System:
The Domain Name System also called as Domain Name Server helps to identify
domain name of the given ip address, Thus domain name system play an
important role in development of world wide web as a distributed system.
The Domain Name System (DNS) is the phonebook of the Internet. Humans
access information online through domain names, like [Link] or [Link].
Web browsers interact through Internet Protocol (IP) addresses. DNS translates
domain names to IP addresses so browsers can load Internet resources.
The process of DNS resolution involves converting a hostname (such as
[Link]) into a computer-friendly IP address (such as [Link]).
An IP address is given to each device on the Internet, and that address is necessary
to find the appropriate Internet device - like a street address is used to find a
particular home. When a user wants to load a webpage, a translation must occur
between what a user types into their web browser ([Link]) and the
machine-friendly address necessary to locate the [Link] webpage.
In distributed systems, the Domain Name System (DNS) serves as a fundamental
infrastructure for facilitating seamless communication and resource discovery.
By translating human-readable domain names into machine-readable IP
addresses, DNS enables distributed components to locate and interact with each
other across networks. This capability is essential for distributed systems to
function efficiently, as it allows services to be dynamically located and accessed
without manual intervention. Moreover, DNS supports fault tolerance and load
balancing by distributing queries across multiple servers, ensuring reliability and
scalability in distributed environments. Overall, DNS plays a crucial role in
enabling the seamless operation of distributed systems by providing a
decentralized and scalable mechanism for name resolution and resource
discovery.

Page Rank:

PageRank is a way of measuring the importance of website pages. PageRank


works by counting the number and quality of links to a page to determine a
rough estimate of how important the website is. The underlying assumption is
that more important websites are likely to receive more links from other
websites.

Distributed PageRank is an algorithm used to calculate the importance or ranking


of web pages in a distributed computing environment. It is an extension of the
original PageRank algorithm, which was developed by Larry Page and Sergey
Brin at Google.

The distributed PageRank algorithm typically follows these steps:

1. Partitioning: The web graph is divided into smaller subsets or partitions,


and each partition is assigned to a different machine in the distributed
system. This partitioning allows the computation to be distributed across
multiple machines, enabling parallel processing.
2. Iterative Computation: Each machine processes its assigned portion of the
web graph independently. Initially, each page is assigned an equal
probability of being visited (equal PageRank value). In each iteration, the
machines exchange information about the links between pages and update
the PageRank values based on the incoming links.
3. Communication and Synchronization: To ensure consistency and
accuracy, the machines periodically exchange information about the
PageRank values and links between pages. This communication allows the
distributed system to converge towards a stable and accurate ranking.
4. Convergence: The iterative computation continues until the PageRank
values stabilize, indicating that the algorithm has converged. Typically, a
convergence criterion is defined to determine when the computation can
be considered complete.

The distributed PageRank algorithm aims to distribute the computational load


across multiple machines, allowing for efficient processing of large-scale web
graphs. By dividing the graph into partitions and updating the PageRank values
iteratively, the algorithm calculates the importance of web pages in a distributed
and parallel manner.

Caching Algorithm:

Caching Algorithm work with the help of cache. The cache behaves as though
it contains a collection of blocks of elements. Each cached element is counted as
one object and each cached block of elements is also counted as an object. As a
result, a block of four elements is counted as five objects, one object for each
element and a fifth object for the block. However, if the same element occurs on
several blocks, it is counted only once. This is because the element cache shares
elements between blocks.

The cache uses the "least recently used" algorithm on blocks of elements. That is,
when the cache is full, it discards the blocks of elements that have been in the
cache for the longest time without any requests for the blocks. Individual
elements, which are shared between blocks, are discarded when all the blocks that
contain the elements have been discarded.

Caching of Web documents improves the response time perceived by the clients.
Cache algorithms play a central role in the response time reduction by selecting
a subset of documents for caching so that an appropriate performance metric is
maximized. At the same time, the cache must take extra steps to guarantee some
form of consistency of the cached data. Cache algorithms enforce appropriate
guarantees about the staleness of documents it stores. Most of the published work
on Web cache design either considers cache consistency algorithms separately
from cache replacement algorithms or concentrates only on studying one of the
two.

Distributed caching involves storing data across multiple machines or nodes, often
in a network. This type of caching is essential for applications that need to scale
across multiple servers or are distributed geographically. Distributed caching
ensures that data is available close to where it’s needed, even if the original data
source is remote or under heavy load. In E-commerce website by using distributed
caching, product details can be stored across multiple cache servers located in
different regions. When a user accesses the website, the system retrieves product
details from the nearest cache server, ensuring faster response times and a better
user experience.

Benefits of distributed caching

Distributed caching addresses the limitations of local caching by storing data


across multiple machines or nodes in a network. This approach offers several
advantages:

 Scalability: As traffic to an application grows, additional cache servers can


be added to the distributed cache system without disrupting existing
operations.
 Fault tolerance: If one cache server fails, requests can be rerouted to
another server, ensuring continuous availability of cached data.
 Performance: Data is stored closer to the user, reducing the time taken to
fetch it and improving response times.

Redis, Memcached, Hazelcast, Apache Ignite are various companies which offer
distributed caching.

Common questions

Powered by AI

The least recently used (LRU) algorithm optimizes caching by prioritizing the retention of frequently accessed data, discarding the least recently used data when the cache is full . This approach addresses the challenge of limited cache space by ensuring that the data most likely to be needed remains available, enhancing cache hit rates. The LRU algorithm helps in maintaining responsiveness by minimizing cache misses, especially crucial in distributed systems where data retrieval efficiency directly impacts performance .

Distributed caching improves web application performance by storing data across multiple machines, bringing it closer to users, which reduces retrieval time and hence improves response times . For example, in e-commerce websites, product details can be cached across regional servers. When a user accesses the site, the system retrieves the data from the nearest cache server, enhancing user experience through faster response . This mechanism also enhances reliability; if a cache server fails, requests are rerouted to another server, maintaining availability .

The distributed PageRank algorithm divides the web graph into smaller partitions, assigning each to a different machine, enabling parallel processing . Each machine independently processes its partition, initially assigning equal probability PageRank values. Through iterations, machines exchange information about links and update PageRank values based on incoming links, sharing and synchronizing data for accuracy . This distributed approach efficiently handles large-scale web graphs, balancing computational load across multiple machines while converging to a stable ranking .

Scalability in distributed systems is achieved by adding additional resources, such as servers, to handle increased workload without impacting performance. For instance, distributed caching benefits scalability by adding cache servers to meet growing application demands . Fault tolerance, as demonstrated by DNS, involves redundant systems that reroute queries to available servers if one fails, thus ensuring reliability and continuous operation . These mechanisms are crucial in environments requiring high availability and performance amidst unpredictable failures and varying demands .

A distributed system is characterized by its decentralized architecture, where multiple autonomous computers are connected through a centralized network, sharing resources and coordinating their actions by passing messages . In the architecture of the World Wide Web, this manifests through its decentralized nature, where information is stored on servers globally and linked through hypertext. This setup ensures fault tolerance, as the failure of a server doesn't disrupt access to information due to other available servers, supporting scalability by accommodating growing users and requests .

Client-server systems provide centralized control, simplifying scaling by adding more servers as demand increases, which offers consistent performance . However, resource sharing can become a bottleneck due to central server reliance. In contrast, peer-to-peer systems distribute workloads among all nodes, eliminating a single failure point and inherently enhancing scalability by leveraging collective resources . This model excels in resource sharing, as each node contributes to both the consumption and provision of resources, expanding the system's capabilities as peers join .

Remote Procedure Call (RPC) enables a program to request a service from a program located on another networked computer as if it were a local procedure call. This abstraction streamlines service utilization over networks by allowing the client to call functions or processes remotely without knowing network details . RPC relies on synchronous operations; the client waits for the server to return results, simplifying interactions between distributed components and promoting a seamless integration of diverse services across networks .

Middleware serves as an intermediary layer that enables different applications to communicate effectively within a distributed system. It provides a suite of services—like messaging, authentication, and data sharing—that benefit both applications it connects . Its importance lies in abstracting application interactions from the underlying network complexities, ensuring seamless data exchange and integration without requiring detailed knowledge of the network's specifics. Middleware simplifies development and boosts interoperability and flexibility across various platforms .

Message passing is crucial in distributed systems as it allows different nodes to exchange information, coordinate activities, and share data without relying on shared memory or direct method invocations. It provides a flexible and scalable method for inter-node communication . In the context of the World Wide Web, message passing is utilized via HTTP, where clients and servers exchange request and response messages to transfer data, facilitating the web's operation as a distributed system over the internet .

The Domain Name System (DNS) facilitates seamless communication and resource discovery in distributed systems by translating human-readable domain names into machine-readable IP addresses, enabling distributed components to locate and interact with each other across networks . This translation is essential for web applications, as it allows browsers to access internet resources efficiently. Additionally, DNS supports fault tolerance and load balancing by distributing queries across multiple servers, ensuring reliability and scalability in distributed environments .

You might also like