0% found this document useful (0 votes)
16 views

5-Distributed Systems Engineering

Uploaded by

Rehan Khan
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

5-Distributed Systems Engineering

Uploaded by

Rehan Khan
Copyright
© © All Rights Reserved
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