Ministry of digital technologies of the republic of


Download 1.29 Mb.
Pdf ko'rish
bet5/24
Sana19.06.2023
Hajmi1.29 Mb.
#1614846
1   2   3   4   5   6   7   8   9   ...   24
Bog'liq
MamayusupovShodmon 712-19 (5)

 
 
 
 
 
 
 
 



I. CHAPTER. DISTRIBUTED SYSTEMS AND THREATS TO THEM 
1.1. Distributed systems and their architecture 
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 (1.1-figure). 
1.1-figure. The scheme of 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 [4]. 
Organizations have turned to distributed computing systems to handle data 
generation explosion and increased application performance needs. These distributed 


10 
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. 
 


11 
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: 
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-Open Systems Interconnection) 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 (1.2-figure). 


12 
.
1.2-figure
. The scheme of 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. 
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 (1.3-figure). 


13 
1.3-figure
. The scheme of Object-based Architecture.
 
At its core, communication between objects happens through method 
invocations, often called remote procedure calls (RPC- Remote Procedure Call)). 
Popular RPC systems include Java RMI (Remote Method Invocation) 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. 
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(1.4-figure). 


14 
 
1.4-figure. The scheme of 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 (Structured Query Language) database, and the system stores all the 
nodes in this data storage. 
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 (
1.5-
figure).


15 
1.5-figure. The scheme of 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. 
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 


16 
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 (
1.6-figure).

Download 1.29 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   24




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling