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

5-Distributed Systems Engineering

Uploaded by

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

5-Distributed Systems Engineering

Uploaded by

Rehan Khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 42

Distributed Systems Engineering

1-What is Distributed Systems Engineering


• Distributed Systems Engineering is a field of software engineering
that deals with systems whose components are located on different
computers within the same network.

• In a distributed systems multiple computers coordinates their actions


and communicate with one another to achieve a common objectives
1-What is Distributed Systems Engineering
• Here are some key characteristics of distributed systems:

1. Heterogeneity: These systems can run on various networks,


hardware types, programming languages and operating systems.

2. Openness: Distributed systems are open in terms of hardware and


software components with standard interfaces.
1-What is Distributed Systems Engineering
3. Resource Sharing: Resources (hardware data and software) are
available for direct or remote access by multiple computers.
4. Scalability: Distributed systems should handle growth in users
without requiring significant changes to their components.
5. Concurrency: They can perform multiple tasks simultaneously.
1-What is Distributed Systems Engineering
• In practical terms Distributed Systems enable efficient resources
utilization, fault tolerance and scalability across interconnected
computers.

• It requires a deep understanding of computer science, networking, and


software engineering principles.
2-Distributed Systems Architecture
• In distributed systems, there are different ways to organize and
structure the components and their interactions.

• Here are some common distributed systems architectures:


2.1-Centralized Architecture
• A central server or node controls and manages all the processes and
data.

• Advantages: Simple to design and manage, provides centralized


control.

• Disadvantages: Single point of failure, limited scalability.


2.2-Decentralized Architecture
• There is no central authority.

• Advantages: Highly scalable, fault-tolerant, and resilient to failures.

• Disadvantages: More complex to design and manage, requires


coordination among nodes.
2.3-Client-Server Architecture
• Dedicated servers provide services to multiple clients.

• Advantages: Easy to manage, provides centralized control, and scales


well.

• Disadvantages: Single point of failure for servers, clients depend on


servers.
2.4-Peer to Peer Architecture
• All nodes can communicate directly with each other.

• Advantages: Highly scalable, fault-tolerant, and decentralized.

• Disadvantages: More complex to design and manage, requires


efficient resource discovery.
2.4-Hybrid Architecture
• Combinations of different architectures, such as a centralized system
with decentralized components.

• Advantages: Can provide the benefits of multiple architectures.

• Disadvantages: More complex to design and manage.


3- Communication in Distributed Systems

• Communication and networking are essentials of distributed systems,


enabling the exchange of information and coordination among
different components.

• Here are some types:


3.1- Network Protocols
• Standard rules and formats for data transmission over a network.

• Examples: TCP/IP (Transmission Control Protocol/Internet Protocol),


UDP (User Datagram Protocol).
3.2- Message Passing
• Communication paradigm where processes exchange messages to
coordinate their activities.

• Advantages: Simple to implement, suitable for loosely coupled


systems.

• Disadvantages: Can be inefficient for frequent communication.


3.3- Remote Procedure Calls(RPC)
• RPC is a network programming model or inter-process
communication technique used for point-to point communications
between software applications.

• It allows one computer to instruct another computer over a network to


execute a procedure (a block of code that performs a specific task).
3.4- Socket Programming
• Low-level interface for network communication, allowing processes
to create and manage network connections.

• Provides fine-grained control over communication details.


3.5- Middleware
• Software that provides services and infrastructure to support
distributed systems communication.

• Examples: CORBA (Common Object Request Broker Architecture),


RMI (Remote Method Invocation).
4- Concurrency and Synchronization
in Distributed Systems
• Concurrency and synchronization are where multiple processes or
threads execute concurrently and must coordinate their activities to
maintain data integrity and system correctness.

• Here are some techniques of concurrency and synchronization:


4.1- Processes and Threads
• A process is an instance of a program running on a computer.

• A thread is the smallest unit of execution within a single process,


multiple threads can exist within a single process.
4.2- Mutual Exclusion and Locks
• Mutual exclusion ensures that only one process or thread accesses a
shared resource at a time.

• Locks are used to implement mutual exclusion by restricting access to


shared resources.
5- Fault Tolerance and Reliability in Distributed
Systems
• Fault tolerance and reliability are aspects of distributed systems,
ensuring that the system continues to function correctly even in the
presence of failures.
5.1- Replication and Redundancy
• Replicating data and components across multiple nodes enhances fault
tolerance.

• Redundancy provides backup systems or components in case of


failures.
5.2- Load Balancing and Failover
• Load balancing distributes workloads to optimize resource utilization
and prevent bottlenecks.

• Failover mechanisms automatically switch to backup systems or


components in case of failures.
5.3- Check-Pointing and Recovery
• Check-pointing periodically saves the state of a system or process to
enable recovery from failures.

• Recovery mechanisms restore the system or process to a previous


consistent state.
6- Transactions in Distributed Systems
• Transactions are fundamental concepts in distributed systems to
ensure data integrity and reliable updates.

• Transaction is a sequence of database operations that are executed as a


single unit.
7-Scalability and Performance in Distributed
Systems

• Scalability and performance in distributed systems ensuring that the


system can handle increasing loads and maintain efficient operation
while if there was another new process added.
7.1- Scalability
• The ability of a system to handle increasing demands without
significant performance degradation.

• Horizontal scaling (adding more nodes) and vertical scaling


(upgrading existing nodes) are common approaches.
7.2- Performance and Optimization
• Techniques to improve the speed, responsiveness, and efficiency of
distributed systems.

• Optimizing network communication, load balancing, and resource


allocation are key considerations.
8- Security in Distributed Systems
• Security is of utmost importance in distributed systems, where
multiple components are interconnected and communicate over
networks.

• Ensuring the protection of data, resources, and communication


channels from unauthorized access, attacks, and vulnerabilities is
crucial.
8.1- Threats to Distributed Systems
• Denial-of-Service (DoS) Attacks: Attempts to make a system or
resource unavailable to its intended users.

• Eavesdropping: Intercepting and monitoring communication


between components.

• Man-in-the-Middle Attacks: Interception and modification of


communication between components.
8.2- Authentication and Authorization
• Authentication: Verifying the identity of users or components
attempting to access resources.

• Authorization: Controlling access to resources based on user or


component permissions.
8.3- Encryption and Secure Communication
• Encryption: Transforming data into a form that cannot be easily
understood by unauthorized parties.

• Secure Communication Protocols: Ensuring the confidentiality and


integrity of data during transmission.
8.4- Intrusion Detection and Prevention
• Intrusion Detection Systems (IDS): Monitoring system activities for
suspicious patterns or attacks.

• Intrusion Prevention Systems (IPS): Actively preventing or


blocking attacks based on detected threats.
8.5- Firewall and Network Security
• Firewalls: Network security devices that control incoming and
outgoing network traffic.

• Network Segmentation: Dividing a network into multiple segments


to limit the spread of attacks.
9- Case Study and Applications of Distributed
Systems

• Distributed systems have a wide range of real-world applications and


are used in various industries and domains.

• Here are some notable case studies and examples:


9.1- Google

• Google's distributed systems infrastructure supports a vast array of


services, including search, Gmail, YouTube, and many others.

• It involves large-scale data processing, load balancing, and fault


tolerance mechanisms to handle billions of user requests daily.
9.2- Amazon Web Service (AWS)

• AWS provides a comprehensive suite of cloud computing services,


including storage, compute, networking, and more.

• Its distributed systems enable scalability, reliability, and global


availability for millions of customers.
9.3- Meta Services (Facebook)

• Facebook's distributed systems power its social networking platform,


handling billions of user interactions and data updates every day.

• It emphasizes efficient data replication, caching, and content delivery


mechanisms.
9.4- Netflix

• Netflix's distributed systems support streaming video content to


millions of users worldwide.

• It involves large-scale video transcoding, content delivery networks


(CDNs), and recommendation systems.
9.5- Uber

• Uber's distributed systems manage real-time ride-hailing requests,


driver tracking, and location-based services.

• It involves complex routing algorithms, load balancing, and real-time


data processing.
9.6- Blockchain and Cryptocurrencies

• Blockchain technology, such as Bitcoin and Ethereum, utilizes


distributed systems principles for secure and decentralized
transactions.

• It involves consensus algorithms, peer-to-peer networks, and


cryptographic techniques.
9.7- Internet of Things (IoT)

• IoT devices and systems often rely on distributed architectures for


data collection, processing, and control.

• It involves edge computing, sensor networks, and scalable data


management.

You might also like