CC Lo1
CC Lo1
Peer-to-peer computing
• Peer-to-peer (P2P) computing is a
decentralized computing architecture
where participants in the network,
referred to as peers, share their resources
and collaborate to achieve a common
goal.
• In a P2P network, each node (peer) has
equal status, and there is no central
server or hierarchy.
• Peers act both as clients and servers,
providing and consuming resources
within the network.
Key characteristics of peer-to-peer
computing:
➢Decentralization: There is no central authority or server controlling the
network. Peers communicate directly with each other.
➢Equality: Each peer has equal status in terms of computing power,
responsibilities, and privileges.
➢Resource Sharing: Peers share their computing resources, such as
processing power, storage, and bandwidth, with others in the network.
➢Autonomy: Peers operate independently and make autonomous decisions
without relying on a central entity.
➢Collaboration: Peers collaborate to achieve common goals, whether it's
file sharing, distributed processing, or other cooperative tasks.
Advantages of Peer-to-Peer Computing:
➢Decentralization: Eliminates the need for a central server, reducing
the risk of single points of failure.
➢Scalability: Scales well as more peers can be added to the network
without relying on a centralized infrastructure.
➢Resource Efficiency: Optimizes resource usage by utilizing the idle
resources of individual peers.
➢Redundancy: Offers redundancy and fault tolerance, as the failure of
one peer does not necessarily disrupt the entire network.
➢Autonomy: Allows peers to operate independently and make
decisions locally, contributing to a more resilient system.
Challenges of Peer-to-Peer Computing:
➢Security Concerns: Ensuring the security of data and communications
in a decentralized environment can be challenging.
➢Resource Inequality: Variability in the capabilities of individual peers
may impact the overall performance of the network.
➢Quality of Service: Maintaining a consistent quality of service across a
diverse set of peers can be challenging.
➢Managing Dynamic Environments: Adapting to changes in the
network, such as peers joining or leaving, requires efficient
management.
➢Content Discovery: Discovering and locating resources in a
decentralized environment can be less straightforward than in
centralized systems.
Client-server computing
➢Client-server computing is a network
architecture in which a computer system,
known as the server, provides services or
resources, and another computer system,
known as the client, requests and utilizes
those services.
➢This model facilitates the distribution of
processing tasks between servers and
clients, allowing for efficient resource
utilization and improved scalability.
➢The client-server architecture is a
fundamental concept in networking and is
widely used in various computing
applications.
Key Components of Client-Server
Computing:
➢Server:
➢The server is a dedicated computer or software application that provides services,
resources, or data to clients. It typically has higher computational power, storage, and
network capabilities compared to clients.
➢Client:
➢The client is a computer or software application that requests services or resources
from the server. Clients can be desktop computers, laptops, mobile devices, or
software applications running on these devices.
➢Network:
➢Communication between clients and servers occurs over a network. This can be a
local area network (LAN), a wide area network (WAN), or the internet.
Types of Client-Server Models:
➢Two-Tier (Client-Server) Model:
➢In a two-tier architecture, there is a direct communication link between the
client and the server. The client is responsible for the user interface and
application logic, while the server handles data storage and processing.
➢Three-Tier Model:
➢The three-tier model introduces an additional layer, known as the application
server or middle tier. This tier is responsible for application logic, separating it
from the user interface on the client and data storage on the server.
➢N-Tier Model:
➢N-tier architectures extend the three-tier model by adding more layers for
specialized tasks. Each layer has a specific responsibility, such as presentation,
business logic, and data management.
Advantages of Client-Server Computing:
➢Scalability: Servers can be scaled up to handle increased demand,
allowing for better performance as the number of clients grows.
➢Centralized Data Management: Data is typically stored centrally on the
server, making it easier to manage, update, and back up.
➢Resource Sharing: Centralized servers allow for efficient sharing of
resources, including data, applications, and processing power.
➢Security: Security measures can be implemented on the server to protect
sensitive data, and access control can be enforced centrally.
➢Simplified Maintenance: Updates, maintenance, and patches can be
applied centrally on the server, reducing the impact on individual clients.
Challenges of Client-Server Computing:
➢Single Point of Failure: The server represents a single point of failure.
If the server becomes unavailable, clients may lose access to services or
data.
➢Network Dependency: The performance of client-server applications
is dependent on the quality and reliability of the network.
➢Cost of Server Infrastructure: Establishing and maintaining a robust
server infrastructure can involve significant costs.
➢Load Balancing: Balancing the load across multiple servers may be
necessary to ensure optimal performance and resource utilization.
➢Limited Mobility: Clients may be dependent on a network connection,
limiting their ability to operate independently.
Distributed computing
➢Budgeting:
➢Cost Estimation:
➢Cost Control:
➢Activity-Based Costing (ABC):
➢Vendor Management:
➢Cost-Effective Technology Solutions:
➢Continuous Improvement:
Planning and Managing Service Level
Agreements (SLAs):