Instructions
of Apply A Distributed Software Architecture
She has met the basic requirements. But I think that it
can still be improved. Please ask her to add some more details explaining the
rationale for the selection of protocols. Furthermore, she has not added any of
the reference in the last 3 pages that she added in this presentation. Please
also ask her to add references for each protocol also and explain in little
more detail the rational for the selection of the protocol. Though she has
given basic details but ask her to explain them to further.
Apply a Distributed Software Architecture in a Distributed
System
Northcentral University
Table of Contents
Introduction. 3
Architecture. 4
1 - Layered
Architecture: 4
2 -Event-based
architectures: 5
3 - Client-server
Architecture. 5
4 - Peer-to-peer
architecture: 6
Expansion of Distributed Network. 7
Protocols to Handle Communication between different entities. 9
Hypertext
Transfer Protocol 9
UDP-based Data
Transfer Protocol 9
Fast Local
Internet Protocol 10
References
Introduction of App ly A Distributed Software Architecture
A distributed system is a kind of system
where different components of the systems are located on different nodes or
networked computers. These nodes talk to each other and usually coordinate via
message passing e.g., using AMQP protocol, etc. These components may be located
on different nodes, but they try to achieve a common goal. The example of
distributed systems can be service-oriented architecture systems, peer to peer
applications like BitTorrent, and online multiplayer games (Bauer et al.,
2000). The end-user usually perceives the distributed system as a single entity
instead of different components coordinating with each other. The distributed
systems usually have some characters. They have to be fault-tolerant, which
means the designer of the system has to keep in mind that any fault in a single
node should not take down the whole system with it. The structure or topology
of the system has to be somewhat flexible and can adapt according to the needs.
It is not completely necessary, but not any single node should have the
complete picture, otherwise, that would be more like a centralized system.
There are many different types of problems that require the use of a
distributed system, or the use of distributed systems can reduce the run time
of these operations. Most of the time, computers are usually used for
computational tasks. These computational problems are also known as
problem-solving problems.
There are also parallel algorithms that
can be performed on different machines, and then the results of those
calculations can be summarized and then presented to the user. The most popular
of these types of algorithms and architecture, which are currently being used
in big data, is Google’s MapReduce. It is one of the fundamental examples of
the use distributed systems and its usage and how the developers can make use
of Service-oriented systems which be best designed with distributed systems and
how good distributed systems keep in mind the flexibility in their topology and
how they should be fault-tolerant (Condie et al., 2010).
Architecture of Apply A Distributed Software Architecture
There is much different architecture that
is used in the implementation of distributed systems. Following are the
architectures which are used:
1 - Layered Architecture:
This architecture distributes a whole
task into multiple tasks that are not very much dependent on each other and can
be done in parallel. The first layer performs the task assigned to that layer
and then the second layer performs the task which is assigned to it usually
using the output of layer 1 as input. This process continues until all the
subtasks are completed (Goswami, 2019).
2
-Event-based architectures:
In event-based architectures, the
communication between different nodes in the system happens using events. All
the nodes in the system are notified of anything of importance using events.
The nodes which are interested in the event can listen to it and then do
whatever they want to do with the data which is passed on with the event if
any. These are the most prominent types of event-based distributed systems:
a. Publisher subscriber Model
b. Broadcast Model
These event-based systems usually use messaging protocols to generate events
like AMQP. The microservices architecture of development usually relies on the
publisher-subscriber model to pass messages between different microservices in
case something happens in one microservice and it has to reflect somehow in the
other microservice. The messaging is done usually with the help of some message
queue e.g. Redis, RabbitMQ, etc. (Kozlovski, 2018) .
3
- Client-server Architecture
The client-based distributed architecture
is one that is most widely used in practice today. This architecture has two
main components namely client and server. The server is where all the magic is
happening. It processes data, does any computational task. The client asks the
server to do all these tasks on its behalf. The client requests the server, and
the server handles these requests accordingly. Usually, there are multiple
instances of the same server for load balancing purposes, so that a single
server is not overwhelmed with too many requests. If that happens, then the server
will start to drop requests and clients will not be able to avail of the
service. The classic example of client-server architecture is a worldwide web that
accounts for 75-80% of all internet traffic. The clients in the case of the worldwide
web are the web browser and mobile applications which we use, the servers are
in some remote locations. The client-server architectures are usually easier to
build. But usually, there is a single point of failure in this type of
architecture which the server, due to this reason there should be multiple
copies of the same instance of the server along with load balancing purposes
(Omicini, 2012).
4
- Peer-to-peer architecture:
In peer-to-peer architecture, the idea is
not to have a single centralized server control. In the case of a client-server
architecture, although it is a distributed system there still exists a
centralized server that limits the scalability of the system as we can not have
too many server instances. Secondly, client-server architecture also has a single
point of failure and that is the server. The server is also a bottleneck if the
server cannot serve requests fast enough the requests will start to drop and the
client will see no service (Flavel & Winter et al , 1996).
To combat this, we have a peer-to-peer
architecture in which there is no single server, all the nodes in the system cannot
also act as a server or the client. In the scenario the node is requesting
something it will be known as a client. In case, the node is providing
something, it will be called a server. The best example of peer-to-peer
architecture is the BitTorrent protocol which is used for file sharing. In
BitTorrent, multiple users are connected to each and they are downloading files
and uploading them at the same time. The decentralized nature of peer-to-peer
architecture makes it highly scalable compared to client-server architecture
(Sugathadasa,
2017)
.
Expansion of Distributed Network
It
is expanded the distributed network to perform heavy tasks as well as handle
the communication among the different entities of the whole system. For the
expansion of the distributed network, the distributed network or system should
have the server. In this project, an enterprise resource planning (ERP) server
is used that has the ability to make strong connection among different entities
as well as to communicate with other entities. The ERP server is very effective
to make strong communication connections as well as for the load balancing to
save the data into the server database. The files can also be transferred
easily by expanding the distributed network. There are some protocols used in
this distributed network system which make everything more reliable as well as
more secure to handle communication between the computerized devices or the
different entities, as well as file sharing and make the system easier for data
seeding and migrating. The diagram which is given below is providing very brief
information about the distributed network. It is shown that the network is
expanded by using the ERP. It is basically an architecture of the ERP system
which provides the distributed communication environment. The diagram is
showing different entities as well as different branch offices/stores connected
with routers but are using distributed network. The main server is implemented
in the headoffice and distributed the data with other offices and stores as
well as it is also handling the communication among the different network
entities. The communication protocol system is designed to rule two and more
entities under the multiple protocols. Different aspects of the single
communication are used with the group of protocols designed to work together.
The system typically uses single protocol that handle a transmission. Different
possible types of communication protocols are Transmission Control Protocol (TCP), User Datagram
Protocol (UDP), Hyper Text Transfer Protocol Secure (HTTPS), Post office
Protocol (POP), Simple mail transport Protocol (SMTP), Hyper Text Transfer
Protocol (HTTP), Internet Protocol (IP), and File Transfer Protocol (FTP).
Considering the facts of present work, selective types of protocols are used
for the present design including hypertext transfer protocol (HTTP),
UDP-based
Data Transfer Protocol, and Fast Local Internet Protocol (Comptia. org, 2020).
Protocols to Handle Communication between different
entities
Hypertext Transfer
Protocol
The hypertext transfer
protocol (HTTP) is used in the distributed network which is an application
protocol to provide the hypermedia information on the user interface through the
world wide web. The hypertext protocol is used in this network because the users
can easily communicate with the other offices or stores as well as the head
office can easily communicate or handle the activities. The diagram is
illustrating the communication between the server and the clients or stores.
The hypertext transfer protocol (HTTP) will connect the computer and
smartphones with the web servers that transfer the contents of websites and
then submit all the data through online forms. It is required to transfer the
data from the web server to the new pages but without HTTPs the data passing
process is insecure (Dssouli & Bentahar, 2017).
Furthermore, the hypertext transfer protocol is selected
in this network because it makes the communication between a client computer or
client user interface and the HTTP server. It is because when the user or
client wants to interact with the system and want to access particular
information, an HTTP request is sent to the HTTP server. When the HTTP server
finds that request then it responds to the client and according to credentials
and instructions, it gives access to the client to see the particular content
on the user interface.
UDP-based Data
Transfer Protocol
The
UDP-based transfer protocol is a high-performance protocol to transfer the data
which is designed to transfer the information or data on larger volumes. It is
used in this distributed network because the ERP server is used to handle
communication and to perform various tasks. Furthermore, it is also used here
because the distributed network is expanded and it is needed to use due to the
heavy communication load on the server, network and the database. UDP-based
Data Transfer Protocol is mainly used for the high-performance data transfer
protocols and it will be designed to transfer the large volumetric datasets
with the use of higher speed wide range area of the network. These types of
settings are typically disadvantageous with the TCP protocol. It will use the
TCP for the file transfer protocols and include FTP/S, HTTP/S and SFTP with the
deployed across worldwide (d.umn. edu, 2020).
The logic behind the selection of the UDP-based Data
Transfer Protocol is that it can handle the heavy load on the servers as well
as load in the network of the system. It can also distribute, manage, process
as well as transfer the data on a larger scale in a single time. furthermore,
the communication in the network system through the ERP server will be improved
and effective because this protocol is handling and transferring the data on a larger
scale in which several HTTPS, FTP/S requests are also included which are functional
by using TCP/IP protocols.
Fast Local Internet
Protocol
The fast-local internet
protocol is also an important protocol that is used in the distributed network.
The protocol is providing security transparency, management in the network
distribution as well as security to the network. The internet protocol is
important and crucial to keep it running over. Without fast local internet
protocol, the information corresponding process and internet networking are not
possible. It will be used for the formatting rules that speed put the process
and data is packaged into messages that are received and sent (Bajgoric, 2014).
The main reason for using this system is to provide
security. furthermore, it is also helpful to manage the distribution of the
network. The data which is stored in the ERP servers will be more secure by
applying the protocol and the processing speed of the system through this protocol
will also be improved.
References of Apply A Distributed Software
Architecture
Bajgoric, N. (2014). Real-Time UML Workshop for
Embedded Systems. Springer.
Bauer et al, M. (2000). A Distributed System
Architecture for a Distributed Application Environment. Ibm Systems
Journal, 33(3), 399-425.
Comptia. org. (2020). What Is a Network Protocol,
and How Does It Work? Retrieved from www.comptia.org:
https://www.comptia.org/content/guides/what-is-a-network-protocol
Condie et al, T. (2010). MapReduce Online.
Retrieved from
https://www.usenix.org/legacy/event/nsdi10/tech/full_papers/condie.pdf
d.umn. edu. (2020). Network Layers. Retrieved
from www.d.umn.edu: https://www.d.umn.edu/~gshute/net/layers.xhtml
Dssouli, R., & Bentahar, J. (2017). Testing the
Control-Flow, Data-Flow, and Time Aspects of Communication Systems: A Survey. Advances
in Computers, 01(01), 01-10.
Flavel, S., & Winter et al , S. (1996). Design of
a distributed software architecture for an intelligent planning system. IEE
Proceedings. Control Theory and Applications,, 143(2), 125–131.
Goswami, M. (2019). Architectural Patterns for
Distributed Systems: Definition & Importance. Retrieved from
https://study.com/academy/lesson/architectural-patterns-for-distributed-systems-definition-importance.html
Kozlovski, S. (2018, April 27). A Thorough
Introduction to Distributed Systems. Retrieved from
https://www.freecodecamp.org/news/a-thorough-introduction-to-distributed-systems-3b91562c9b3c/
Omicini, A. (2012). Software Architectures
Distributed Systems. Retrieved from
https://core.ac.uk/download/pdf/11216523.pdf
Sugathadasa, K. M. (2017, Septemebr 30). Distributed
System Architectures and Architectural Styles. Retrieved from
https://keetmalin.wixsite.com/keetmalin/post/2017/09/27/distributed-system-architectures-and-architectural-styles
Walker et al , D. (2001). The software architecture of
a distributed problem‐solving environment. Concurrency: Practice and
Experience, 12(15).