Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 48

INTRODUCTION TO

DISTRIBUTED
SYSTEM
PROF. POOJA BANSODE
WHAT IS A DISTRIBUTED SYSTEM?

• 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.
EXAMPLE OF
DISTRIBUTED SYSTEM:

• Any Social Media can have


its Centralized Computer
Network as its Headquarters
and computer systems that
can be accessed by any user
and using their services will
be the Autonomous Systems
in the Distributed System
Architecture.
• Distributed System Software: This Software enables computers to coordinate their
activities and to share the resources such as Hardware, Software, Data, etc.
• Database: It is used to store the processed data that are processed by each Node/System
of the Distributed systems that are connected to the Centralized network.
• As we can see that each Autonomous System has a
common Application that can have its own data
that is shared by the Centralized Database System.
• To Transfer the Data to Autonomous Systems,
Centralized System should be having a
Middleware Service and should be connected to a
Network.
• Middleware Services enable some services which
are not present in the local systems or centralized
system default by acting as an interface between
the Centralized System and the local systems. By
using components of Middleware Services systems
communicate and manage data.
• The Data which is been transferred through the
database will be divided into segments or modules
and shared with Autonomous systems for
processing.
• The Data will be processed and then will be
transferred to the Centralized system through the
network and will be stored in the database.
CHARACTERISTICS OF DISTRIBUTED
SYSTEM:
• Resource Sharing: It is the ability to use any Hardware, Software, or Data anywhere in the
System.
• Openness: It is concerned with Extensions and improvements in the system (i.e., How openly
the software is developed and shared with others)
• Concurrency: It is naturally present in Distributed Systems, that deal with the same activity or
functionality that can be performed by separate users who are in remote locations. Every local
system has its independent Operating Systems and Resources.
• Scalability: It increases the scale of the system as a number of processors communicate with
more users by accommodating to improve the responsiveness of the system.
CHARACTERISTICS OF DISTRIBUTED
SYSTEM:
• Fault tolerance: It cares about the reliability of the system if there is a failure in
Hardware or Software, the system continues to operate properly without degrading the
performance the system.
• Transparency: It hides the complexity of the Distributed Systems to the Users and
Application programs as there should be privacy in every system.
• Heterogeneity: Networks, computer hardware, operating systems, programming
languages, and developer implementations can all vary and differ among dispersed
system components.
ADVANTAGES OF DISTRIBUTED SYSTEM:

• Applications in Distributed Systems are Inherently Distributed Applications.


• Information in Distributed Systems is shared among geographically distributed users.
• Resource Sharing (Autonomous systems can share resources from remote locations).
• It has a better price performance ratio and flexibility.
• It has shorter response time and higher throughput.
• It has higher reliability and availability against component failure.
• It has extensibility so that systems can be extended in more remote locations and also
incremental growth.
DISADVANTAGES OF DISTRIBUTED SYSTEM:

• Relevant Software for Distributed systems does not exist currently.


• Security possess a problem due to easy access to data as the resources are shared to multiple
systems.
• Networking Saturation may cause a hurdle in data transfer i.e., if there is a lag in the network then
the user will face a problem accessing data.
• In comparison to a single user system, the database associated with distributed systems is much
more complex and challenging to manage.
• If every node in a distributed system tries to send data at once, the network may become
overloaded.
APPLICATIONS AREA OF DISTRIBUTED SYSTEM:

• Finance and Commerce: Amazon, eBay, Online Banking, E-Commerce websites.


• Information Society: Search Engines, Wikipedia, Social Networking, Cloud Computing.
• Cloud Technologies: AWS, Salesforce, Microsoft Azure, SAP.
• Entertainment: Online Gaming, Music, youtube.
• Healthcare: Online patient records, Health Informatics.
• Education: E-learning.
• Transport and logistics: GPS, Google Maps.
• Environment Management: Sensor technologies.
CHALLENGES OF DISTRIBUTED SYSTEMS:

• While distributed systems offer many advantages, they also present some challenges
that must be addressed. These challenges include:
• Network latency: The communication network in a distributed system can introduce
latency, which can affect the performance of the system.
• Distributed coordination: Distributed systems require coordination among the nodes,
which can be challenging due to the distributed nature of the system.
• Security: Distributed systems are more vulnerable to security threats than centralized
systems due to the distributed nature of the system.
• Data consistency: Maintaining data consistency across multiple nodes in a distributed
system can be challenging.
DESIGN ISSUES OF THE DISTRIBUTED SYSTEM

 Heterogeneity: Heterogeneity is applied to the network, computer hardware, operating


system, and implementation of different developers. A key component of the
heterogeneous distributed system client-server environment is middleware. Middleware
is a set of services that enables applications and end-user to interact with each other
across a heterogeneous distributed system.
 Openness: The openness of the distributed system is determined primarily by the degree
to which new resource-sharing services can be made available to the users. Open systems
are characterized by the fact that their key interfaces are published. It is based on a
uniform communication mechanism and published interface for access to shared
resources. It can be constructed from heterogeneous hardware and software.
 Scalability: The scalability of the system should remain efficient even with a significant increase in
the number of users and resources connected. It shouldn’t matter if a program has 10 or 100 nodes;
performance shouldn’t vary. A distributed system’s scaling requires consideration of a number of
elements, including size, geography, and management.
 Security: The security of an information system has three components Confidentially, integrity, and
availability. Encryption protects shared resources and keeps sensitive information secrets when
transmitted.
 Failure Handling: When some faults occur in hardware and the software program, it may produce
incorrect results or they may stop before they have completed the intended computation so corrective
measures should to implemented to handle this case. Failure handling is difficult in distributed
systems because the failure is partial i, e, some components fail while others continue to function.
 Concurrency: There is a possibility that several clients will attempt to access a shared
resource at the same time. Multiple users make requests on the same resources, i.e. read,
write, and update. Each resource must be safe in a concurrent environment. Any object that
represents a shared resource in a distributed system must ensure that it operates correctly in a
concurrent environment.
 Transparency: Transparency ensures that the distributed system should be perceived as a
single entity by the users or the application programmers rather than a collection of
autonomous systems, which is cooperating. The user should be unaware of where the services
are located and the transfer from a local machine to a remote one should be transparent.
GOALS OF DISTRIBUTED SYSTEM

• Boosting Performance
• The distributed system tries to make things faster by dividing a bigger task into small
chunks and finally processing them simultaneously in different computers. It’s just like a
group of people working together on a project. For example, when we try to search for
anything on the internet the search engine distributes the work among several servers and
then retrieve the result and display the webpage in a few seconds.
GOALS OF DISTRIBUTED SYSTEM

• Enhancing Reliability
• Distributed system ensures reliability by minimizing the load of individual computer
failure. If one computer gets some failure then other computers try to keep the system
running smoothly. For Example, when we search for something in social media if one
server gets an issue then also we are able to access photos, and posts because they switch
the server quickly.
GOALS OF DISTRIBUTED SYSTEM

• Scaling for the Future


• Distributed systems are experts at handling increased demands. They manage the
demands by incorporating more and more computers into the system. This way they run
everything smoothly and can handle more users.
• Resourceful Utilization
• Resource Utilization is one of the most prominent features of a Distributed system.
Instead of putting a load on one computer, they distribute the task among the other
available resource. This ensures that work will be done by utilizing every resource.
TYPES OF DISTRIBUTED SYSTEMS

Client/Server Systems
Peer-to-Peer Systems
Middleware
Three-tier
N-tier
TYPES OF DISTRIBUTED SYSTEMS

• Client/Server Systems: Client-Server System is the most basic communication method


where the client sends input to the server and the server replies to the client with an
output. The client requests the server for resources or a task to do, the server allocates the
resource or performs the task and sends the result in the form of a response to the request
of the client. Client Server System can be applied with multiple servers.
TYPES OF DISTRIBUTED SYSTEMS

• Peer-to-Peer Systems: Peer-to-Peer System communication model works as a


decentralized model in which the system works like both Client and Server. Nodes are an
important part of a system. In this, each node performs its task on its local memory and
shares data through the supporting medium, this node can work as a server or as a client
for a system. Programs in the peer-to-peer system can communicate at the same level
without any hierarchy.
TYPES OF DISTRIBUTED SYSTEMS

• Middleware: Middleware can be thought of as an application that sits between two


separate applications and provides service to both. It works as a base for different
interoperability applications running on different operating systems. Data can be
transferred to other between others by using this service.
TYPES OF DISTRIBUTED SYSTEMS

• Three-tier: Three-tier system uses a separate layer and server for each function of a
program. In this data of the client is stored in the middle tier rather than sorted into the
client system or on their server through which development can be done easily. It
includes an Application Layer, Data Layer, and Presentation Layer. This is mostly used in
web or online applications.
TYPES OF DISTRIBUTED SYSTEMS

• N-tier: N-tier is also called a multitier distributed system. The N-tier system can contain
any number of functions in the network. N-tier systems contain similar structures to
three-tier architecture. When interoperability sends the request to another application to
perform a task or to provide a service. N-tier is commonly used in web applications and
data systems.
Grid and Cluster computing Models
Cluster Computing:

A Computer Cluster is a local network of two or more homogeneous computers.

A computation process on such a computer network i.e. cluster is called Cluster Computing.

Grid Computing:

Grid Computing can be defined as a network of homogeneous or heterogeneous computers working

together over a long distance to perform a task that would rather be difficult for a single machine.
NETWORK OPERATING SYSTEM (NOS)

 A network operating system (NOS) is a computer operating system (OS) that’s

designed primarily to support workstations,

 PCs and, in some instances, older terminals that are connected on a local area network (LAN).

 The software behind a NOS enables multiple devices within a network

to communicate and share resources with each other.

 However, a typical NOS no longer exists, as most OSes have built-in network

stacks that support a client-server model.


Types of network operating systems

Peer-to-peer (P2P) network let users share network resources saved in a common, accessible location.

In this architecture, all devices are treated equally in terms of functionality.

P2P usually works best for small and medium LANs and is less expensive to set up compared to the

client-server model.

Client-server network provide users with access to resources through a server.

In this architecture, all functions and applications are unified under one file server that can be used

to execute individual client actions, regardless of physical location.

Client-server tends to be more expensive than P2P to set up and requires significant technical maintenance.

An advantage of the client-server model is that the network is controlled centrally,

which makes changes or additions to technology easier to incorporate.


Common features of network operating systems

Features of network operating systems are typically associated with user administration,

system maintenance and resource management functionality.

These include the following:

Basic support for OSes, including protocol and processor support,

hardware detection and multiprocessing.

Printer and application sharing.

Common file system and database sharing.

Network security capabilities, such as user authentication and access control.

Directory services.

Backup and web services.,Internetworking.


DOS (DISK OPERATING SYSTEM)

DOS stands for Disk Operating System.

-DOS basically refers to any kind of operating system but was majorly used for MS-DOS.

-DOS provides a command line in which the users can give instructions in the form of commands.

-MS-DOS gained much popularity in the 1980s and early 1990s.

-It was considered a stand-alone operating system.

-The early versions of DOS were simple in functioning but then subsequent versions

were made which had additional features.


Characteristics

-Efficient file management – DOS helps in efficient file management.

The file operations such as creation, editing and deletion of files is easy.

-Correct environment – It provides the user an environment where user can do input,

output and give commands on the command line efficiently.

-Single user operating system – It can have only one user at a time on the computer.

-Space – It has a maximum space of 2 GB.

-Specification – It is a 16 bit operating system.


Advantages

The commands in DOS are easy to remember and use.

DOS is free of cost and can be installed easily.

It gives us direct access to the BIOS calls.

It can run on smaller machines and therefore the booting process

is much faster than other operating systems.

DOS is very lightweight and it allows access to hardware.

It does not have the overhead of a multitasking operating system.


Disadvantages

DOS doesn’t support multitasking.

It only has 2 GB of space which cannot be extended.

It can only have a single user at a time.

It is not compatible with other browsers.

It doesn’t support networking.

Automatic IRQ ordering is not supported by the OS.

Not nearly as fancy in the graphics department.


Examples of DOS commands

Here are some basic commands of DOS –

DIR – Displays the contents of a directory.

ERASE – Delete files.

MOVE – Move files to another directory.

EDIT – Launches the text editor.

CLS – Clears the screen.


Role of Middleware in Distributed System

In distributed systems, middleware is a software component that provides services

between two or more applications and can be used by them.

Middleware can be thought of as an application that sits between

two separate applications and provides service to both.


Key Points:

Distributed systems are becoming increasingly complex as they are

involved in activities spanning an ecosystem of partners, suppliers, and customers.

One way to achieve this integration is through the use of middleware.

In recent years, there has been a rise in the number of middleware solutions available in the market.

However, due to this array of choices available it has become vital for enterprises

to first identify what type of solution they require before making a purchasing decision.
Advantages of Middleware in Distributed Systems:

-Middleware is an intermediate layer of software that sits between the application and the network.

-It is used in distributed systems to provide common services, such as authentication, authorization,

compilation for best performance on particular architectures, input/output translation,

and error handling.

-Middleware offers a number of advantages to distributed systems.

-Middleware can be modularized from the application so it has better potential for reuse with

other applications running on different platforms.

-Application developers can design Middleware so it’s sufficiently high-level that it becomes independent of

specific hardware environments or operating system platforms which simplifies porting applications developed

on one type of platform onto another without rewriting code or without resorting to inefficient and

expensive binary compatibility toolsets such as cross-compilers.


Middleware Key Challenges of Developing Distributed Systems:

-Developing distributed systems can be not just challenging but also very time-consuming,

especially in building and maintaining large-scale infrastructures.

-This is because it requires considering the software architecture of both the client and server

as well as the underlying network topology.

-Middleware technologies help developers by handling tough tasks such as cross-platform

application development, network management, and security enforcement so that they

are manageable by software teams.

-The developers of Middleware Technologies are focusing on designing new technologies to

address both current and emerging challenges in order to enable their users to build

scalable distributed applications fast, easy, and cost-efficiently.


MIDDLEWARE

• Middleware refers to software that acts as an intermediary between different applications, services,
or components to facilitate communication and data exchange. There are various models and types
of middleware, each serving specific purposes in the realm of distributed computing and software
architecture. Here are some common models of middleware:
• Message-Oriented Middleware (MOM):
• Description: MOM facilitates communication between distributed components or systems by
allowing them to send and receive messages asynchronously. It often includes message queues,
publish-subscribe systems, and other communication patterns.
• Example: IBM MQ, Apache Kafka, RabbitMQ.
1. Remote Procedure Call (RPC) Middleware:
1. Description: RPC middleware enables communication between distributed components by allowing one
program to execute procedures or functions on another remote system as if they were local. It abstracts the
network communication details.
2. Example: Java RMI (Remote Method Invocation), CORBA (Common Object Request Broker Architecture),
gRPC.

2. Object Request Broker (ORB) Middleware:


1. Description: ORB middleware enables communication between objects in a distributed system. It provides a
mechanism for objects to invoke methods on remote objects as if they were local.
2. Example: CORBA (Common Object Request Broker Architecture), Java RMI-IIOP (Remote Method
Invocation over Internet Inter-ORB Protocol).
1. Database Middleware:
1. Description: Database middleware provides an abstraction layer between applications and
databases, facilitating database connectivity, data access, and query processing.
2. Example: ODBC (Open Database Connectivity), JDBC (Java Database Connectivity).

2. Transaction Processing Middleware:


1. Description: Transaction processing middleware manages distributed transactions, ensuring
consistency and atomicity across multiple resources or systems.
2. Example: IBM CICS (Customer Information Control System), Microsoft DTC (Distributed
Transaction Coordinator)
1. Middleware for Web Services:
1. Description: Middleware for web services facilitates the integration and communication between
web-based applications and services. It often involves technologies like SOAP (Simple Object Access
Protocol) and REST (Representational State Transfer).
2. Example: Apache Axis, WCF (Windows Communication Foundation).

2. Middleware for Enterprise Integration:


1. Description: This type of middleware focuses on integrating diverse applications, systems, and
services within an enterprise, often involving features like message transformation, routing, and
protocol mediation.
2. Example: Apache Camel, MuleSoft.
1. Middleware for Publish-Subscribe:
1. Description: Publish-Subscribe middleware allows components to subscribe to specific
events or messages and receive notifications when those events occur.
2. Example: Apache Kafka, MQTT (Message Queuing Telemetry Transport).

• These models of middleware play crucial roles in addressing various challenges related to
distributed computing, communication, and integration within complex software
architectures. The choice of middleware depends on the specific requirements and
characteristics of the systems being developed.
SERVICES OFFERED BY MIDDLEWARE

• The services offered by middleware aim to simplify the development, deployment, and
management of distributed systems.
• Communication Services:
• Description: Middleware facilitates communication between distributed components by
providing abstractions for message passing, remote procedure calls (RPC), and other
communication patterns.
• Examples: Message-Oriented Middleware (MOM), RPC middleware, Object Request
Broker (ORB).
1. Concurrency Services:
1. Description: Middleware often includes services for managing concurrency and parallelism,
ensuring that multiple processes or threads can work together seamlessly without conflicts.
2. Examples: Transaction processing middleware, concurrency control mechanisms.

2. Transaction Services:
1. Description: Middleware provides transaction management services to ensure the consistency
and atomicity of operations across multiple distributed resources.
2. Examples: Transaction processing middleware, distributed transaction coordinators.
1. Security Services:
1. Description: Middleware offers security services to authenticate users, authorize access to
resources, and ensure the confidentiality and integrity of data during communication.
2. Examples: Secure Socket Layer (SSL), authentication and authorization mechanisms.

2. Directory and Naming Services:


1. Description: Middleware often includes services for managing distributed directories and
providing naming services to locate resources within a network.
2. Examples: LDAP (Lightweight Directory Access Protocol), naming services in CORBA.
1. Data Management Services:
1. Description: Middleware provides services for managing data in distributed systems,
including data access, caching, and data synchronization.
2. Examples: Database middleware, data replication services.

2. Event Services:
1. Description: Middleware supports event-driven architectures by providing services for event
notification, subscription, and handling.
2. Examples: Publish-Subscribe middleware, event-driven frameworks.
1. Concurrency and Parallelism Services:
1. Description: Middleware helps manage concurrent access to shared resources and supports
parallel processing to improve system performance.
2. Examples: Concurrency control mechanisms, parallel processing middleware.

2. Monitoring and Management Services:


1. Description: Middleware includes services for monitoring the health and performance of
distributed systems and managing the configuration of components.
2. Examples: System monitoring tools, configuration management services.
1. Interoperability Services:
1. Description: Middleware often includes services to address interoperability challenges,
allowing components developed in different languages or running on different platforms to
work together.
2. Examples: Data format conversion, language bindings.

2. Load Balancing Services:


1. Description: Middleware may provide load balancing services to distribute incoming network
traffic across multiple servers or resources, ensuring optimal utilization.
2. Examples: Load balancing middleware, distributed load balancing algorithms.
1.Interoperability Services:
1. Description: Middleware often includes services to
address interoperability challenges, allowing
components developed in different languages or running
on different platforms to work together.
2. Examples: Data format conversion, language bindings.
2.Load Balancing Services:
1. Description: Middleware may provide load balancing
services to distribute incoming network traffic across
multiple servers or resources, ensuring optimal
utilization.
2. Examples: Load balancing middleware, distributed
load balancing algorithms.

You might also like