0% found this document useful (0 votes)
3 views14 pages

Content Beyond the Syllabus Notes Se

The document outlines the structure and principles of distributed systems, emphasizing their scalability, performance, and cost-effectiveness. It details various architectures, including software and system architectures, and their components, such as primary controllers and databases. Additionally, it provides examples of distributed systems in practice, including telecommunications, real-time systems, and distributed databases.

Uploaded by

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

Content Beyond the Syllabus Notes Se

The document outlines the structure and principles of distributed systems, emphasizing their scalability, performance, and cost-effectiveness. It details various architectures, including software and system architectures, and their components, such as primary controllers and databases. Additionally, it provides examples of distributed systems in practice, including telecommunications, real-time systems, and distributed databases.

Uploaded by

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

Program outcomes total -12

Modified program outcomes-11

Pso are 3

Learning objectives are course outcomes

OBE

1.OUTCOMES

VISION&MISION OF DEPT &INSTITUTE,CO,PO,PSO

2.TEACHING&LEARNING

PEDAGOGY&METHODOLOGY

3.ASSESSMENT&Evaluation

STUDENT S ASSESSMENT

VISIONMISION EVLAUATION

4.IMPOROVEMENTS

QUALITY OF LEARNING,TEACHING ,LEARNING OUTCOMES.

CO

1.SPECIFIC

2.TIME BOUNDED

3.MEASURABLE

4.ACHIEVABLE

5.REALISTIC

EXAMINATION REFORM

advanced topics in software architecture, distributed systems, or cloud computing .


Distributed computing is a system of software components spread over different
computers but running as a single entity. A distributed system can be an
arrangement of different configurations, such as mainframes, computers,
workstations, and minicomputers.

Distributed System

Sharing resources such as hardware, software, and data is one of the principles
of cloud computing. With different levels of openness to the software and
concurrency, it’s easier to process data simultaneously through multiple
processors. The more fault-tolerant an application is, the more quickly it can
recover from a system failure.

Organizations have turned to distributed computing systems to handle data


generation explosion and increased application performance needs. These
distributed systems help businesses scale as data volume grows. This is especially
true because the process of adding hardware to a distributed system is simpler than
upgrading and replacing an entire centralized system made up of powerful servers.

Distributed systems consist of many nodes that work together toward a single goal.
These systems function in two general ways, and both of them have the potential to
make a huge difference in an organization.

 The first type is a cohesive system where the customer has each
machine, and the results are routed from one source.
 The second type allows each node to have an end-user with their own
needs, and the distributed system facilitates sharing resources or
communication.
Benefits of a multi-computer model
 Improved scalability: Distributed computing clusters are a great way
to scale your business. They use a ‘scale-out architecture,’ which
makes adding new hardware easier as load increases.
 Enhanced performance: This model uses ‘parallelism’ for the divide-
and-conquer approach. In other words, all computers in the cluster
simultaneously handle a subset of the overall task. Therefore, as the
load increases, businesses can add more computers and optimize
overall performance.
 Cost-effectiveness: The cost-efficiency of a distributed system
depends on its latency, response time, bandwidth, and throughput.
Distributed systems work toward a common goal of delivering high
performance by minimizing latency and enhancing response time and
throughput. They achieve this goal by using low-cost commodity
hardware to ensure zero data loss, making initial deployments and
cluster expansions easy.

Architecture of Distributed Systems

Cloud-based software, the backbone of distributed systems, is a complicated


network of servers that anyone with an internet connection can access. In a
distributed system, components and connectors arrange themselves in a way that
eases communication. Components are modules with well-defined interfaces that
can be replaced or reused. Similarly, connectors are communication links between
modules that mediate coordination or cooperation among components.
A distributed system is broadly divided into two essential concepts — software
architecture (further divided into layered architecture, object-based architecture,
data-centered architecture, and event-based architecture) and system architecture
(further divided into client-server architecture and peer-to-peer architecture).

Let’s understand each of these architecture systems in detail:

1. Software architecture

Software architecture is the logical organization of software components and their


interaction with other structures. It is at a lower level than system architecture and
focuses entirely on components; e.g., the web front end of an ecommerce system is
a component. The four main architectural styles of distributed systems in software
components entail:

i) Layered architecture

Layered architecture provides a modular approach to software. By separating each


component, it is more efficient. For example, the open systems interconnection
(OSI) model uses a layered architecture for better results. It does this by contacting
layers in sequence, which allows it to reach its goal. In some instances, the
implementation of layered architecture is in cross-layer coordination. Under cross-
layer, the interactions can skip any adjacent layer until it fulfills the request and
provides better performance results.
Layered Architecture

Layered architecture is a type of software that separates components into units. A


request goes from the top down, and the response goes from the bottom up. The
advantage of layered architecture is that it keeps things orderly and modifies each
layer independently without affecting the rest of the system.

ii) Object-based architecture

Object-based architecture centers around an arrangement of loosely coupled


objects with no specific architecture like layers. Unlike layered architecture,
object-based architecture doesn’t have to follow any steps in a sequence. Each
component is an object, and all the objects can interact through an interface (or
connector). Under object-based architecture, such interactions between
components can happen through a direct method call.
Object-based Architecture

At its core, communication between objects happens through method invocations,


often called remote procedure calls (RPC). Popular RPC systems include Java RMI
and Web Services and REST API Calls. The primary design consideration of these
architectures is that they are less structured. Here, component equals object, and
connector equals RPC or RMI.

iii) Data-centered architecture

Data-centered architecture works on a central data repository, either active or


passive. Like most producer-consumer scenarios, the producer (business) produces
items to the common data store, and the consumer (individual) can request data
from it. Sometimes, this central repository can be just a simple database.
Data-centered Architecture

All communication between objects happens through a data storage system in a


data-centered system. It supports its stores’ components with a persistent storage
space such as an SQL database, and the system stores all the nodes in this data
storage.

iv) Event-based architecture

In event-based architecture, the entire communication is through events. When an


event occurs, the system gets the notification. This means that anyone who
receives this event will also be notified and has access to information. Sometimes,
these events are data, and at other times they are URLs to resources. As such, the
receiver can process what information they receive and act accordingly.
Event-Based Architecture

One significant advantage of event-based architecture is that the components are


loosely coupled. Eventually, it means that it’s easy to add, remove, and modify
them. To better understand this, think of publisher-subscriber systems, enterprise
services buses, or akka.io. One advantage of event-based architecture is allowing
heterogeneous components to communicate with the bus, regardless of their
communication protocols.

2. System architecture

System-level architecture focuses on the entire system and the placement of


components of a distributed system across multiple machines. The client-server
architecture and peer-to-peer architecture are the two major system-level
architectures that hold significance today. An example would be an ecommerce
system that contains a service layer, a database, and a web front.

i) Client-server architecture

As the name suggests, client-server architecture consists of a client and a server.


The server is where all the work processes are, while the client is where the user
interacts with the service and other resources (remote server). The client can then
request from the server, and the server will respond accordingly. Typically, only
one server handles the remote side; however, using multiple servers ensures total
safety.

Client-server Architecture

Client-server architecture has one standard design feature: centralized security.


Data such as usernames and passwords are stored in a secure database for any
server user to have access to this information. This makes it more stable and secure
than peer-to-peer. This stability comes from client-server architecture, where the
security database can allow resource usage in a more meaningful way. The system
is much more stable and secure, even though it isn’t as fast as a server. The
disadvantages of a distributed system are its single point of failure and not being as
scalable as a server.

ii) Peer-to-peer (P2P) architecture

A peer-to-peer network, also called a (P2P) network, works on the concept of no


central control in a distributed system. A node can either act as a client or server at
any given time once it joins the network. A node that requests something is called
a client, and one that provides something is called a server. In general, each node is
called a peer.

Peer-to-Peer Architecture

If a new node wishes to provide services, it can do so in two ways. One way is to
register with a centralized lookup server, which will then direct the node to the
service provider. The other way is for the node to broadcast its service request to
every other node in the network, and whichever node responds will provide the
requested service.

P2P networks of today have three separate sections:


Structured P2P: The nodes in structured P2P follow a predefined
distributed data structure.
 Unstructured P2P: The nodes in unstructured P2P randomly select
their neighbors.
 Hybrid P2P: In a hybrid P2P, some nodes have unique functions
appointed to them in an orderly manner.
Key Components of a Distributed System

The three basic components of a distributed system include primary system


controller, system data store, and database. In a non-clustered environment,
optional components consist of user interfaces and secondary controllers.

Main Components of a Distributed System

1. Primary system controller

The primary system controller is the only controller in a distributed system and
keeps track of everything. It’s also responsible for controlling the dispatch and
management of server requests throughout the system. The executive and mailbox
services are installed automatically on the primary system controller. In a non-
clustered environment, optional components consist of a user interface and
secondary controllers.

2. Secondary controller

The secondary controller is a process controller or a communications controller.


It’s responsible for regulating the flow of server processing requests and managing
the system’s translation load. It also governs communication between the system
and VANs or trading partners.

3. User-interface client

The user interface client is an additional element in the system that provides users
with important system information. This is not a part of the clustered environment,
and it does not operate on the same machines as the controller. It provides
functions that are necessary to monitor and control the system.

4. System datastore

Each system has only one data store for all shared data. The data store is usually on
the disk vault, whether clustered or not. For non-clustered systems, this can be on
one machine or distributed across several devices, but all of these computers must
have access to this datastore.

5. Database

In a distributed system, a relational database stores all data. Once the data store
locates the data, it shares it among multiple users. Relational databases can be
found in all data systems and allow multiple users to use the same information
simultaneously.

Examples of a Distributed System

When processing power is scarce, or when a system encounters unpredictable


changes, distributed systems are ideal, and they help balance the workload. Hence
distributed systems have boundless use cases varying from electronic banking
systems to multiplayer online games. Let’s check out more explicit instances of
distributed systems:

1. Networks
The 1970s saw the invention of Ethernet and LAN (local area networks), which
enabled computers to connect in the same area. Peer-to-peer networks developed,
and e-mail and the internet continue to be the biggest examples of distributed
systems.

2. Telecommunication networks

Telephone and cellular networks are other examples of peer-to-peer networks.


Telephone networks started as an early example of distributed communication, and
cellular networks are also a form of distributed communication systems. With the
implementation of Voice over Internet (VoIP) communication systems, they grow
more complex as distributed communication networks.

3. Real-time systems

Real-time systems are not limited to specific industries. These systems can be used
and seen throughout the world in the airline, ride-sharing, logistics, financial
trading, massively multiplayer online games (MMOGs), and ecommerce
industries. The focus in such systems is on the correspondence and processing of
information with the need to convey data promptly to a huge number of users who
have an expressed interest in such data.

4. Parallel processors

Parallel computing splits specific tasks among multiple processors. This, in turn,
creates pieces to put together and form an extensive computational task.
Previously, parallel computing only focused on running software on multiple
threads or processors accessing the same data and memory. As operating systems
became more prevalent, they too fell into the category of parallel processing.

5. Distributed database systems

A distributed database is spread out across numerous servers or regions. Data can
be replicated across several platforms. A distributed database system can be either
homogeneous or heterogeneous in nature. A homogeneous distributed database
uses the same database management system and data model across all systems.

Adding new nodes and locations makes it easier to control and scale performance.
On the other hand, multiple data models and database management systems are
possible with heterogeneous distributed databases. Gateways are used to translate
data across nodes and are typically created due to the merger of two or more
applications or systems.

6. Distributed artificial intelligence

Distributed artificial intelligence is one of the many approaches of artificial


intelligence that is used for learning and entails complex learning algorithms,
large-scale systems, and decision making. It requires a large set of computational
data points located in various locations.

A few real-world examples of distributed systems include:

1. Video-rendering systems
2. Scientific computing
3. Airline and hotel reservation
4. Cryptocurrency processors like Bitcoin
5. P2P file-sharing like BitTorrent
6. Multiplayer video games
7. E-learning applications
8. Distributed supply chains like Amazon

You might also like