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