Вы находитесь на странице: 1из 23

Architectural Styles 

Jody Adriene Dong-e  Randy Paul Espejo  Kathleen Kyle Faustino 


Saint Louis University  Saint Louis University  Saint Louis University 
Asin Road, Baguio City  Trancoville, Baguio City  Sto. Tomas Proper, Baguio City 
2160809@slu.edu.ph  2164149​@slu.edu.ph  2161032​@slu.edu.ph 
     
Justine Garcia  Mehanie Jiral Lonogan  John Daniel Peralta 
Saint Louis University  Saint Louis University  Saint Louis University 
Bakakeng Norte, Baguio City  Camp 8, Baguio City  Rimando Road, Baguio City 
2166247@slu.edu.ph  2166004@slu.edu.ph  21​56095​@slu.edu.ph 
     
Sonny Yang     
Saint Louis University     
Sto. Tomas Proper, Baguio City     
2161436@slu.edu.ph     
   

ABSTRACT depicts or shows a high level design of the particular system [4]
This main goal of this paper is to discuss the different which includes information with regards to how the components
Architectural Styles that are used in Software Engineering. This of the system communicate with each other [5], how data is
paper particularly discusses the key concepts and fundamental processed or handled within the system, and as well as
principles of the different software architectural designs/styles. information with regards to how system components are related
to the other system components [4].

CCS CONCEPTS
These software architectural styles vary in concept, in structure,
● Software and it’s Engineering → ​Software Creation
in constraints, and in different aspects. This means that each
and Management;​ Designing Software
architectural style has its own purpose or has its own specific
problem to solve [4] which greatly benefits the developers in
KEYWORDS determining which of these styles best fit the system to be
Software Engineering, Software Architecture, Architectural developed. This paper will be discussing the different
Patterns/Styles architectural styles along with their key concepts and how one
varies from another.
1 INTRODUCTION
As technology advances, software systems tend to be more 2 PIPE AND FILTER
complex and larger in size such that designing its overall Pipe and Filter is a type of an architectural style used in
structure has already become a difficult task [1] for developers. manipulating the flow of data. This architectural style is
composed of several ​connectors which are also known as
The design of the overall structure of the software systems is ‘pipes’ and as well as several ​components called ​‘filters’ [36].
crucial in determining whether the project is a success or a To further explain this, ​filters are responsible for the
failure. The overall structure of the system is pertained to as the modification of a certain data based on a specific objective while
system’s architecture which depicts all of the desired quality pipes are responsible for allowing data to flow between the
attributes of the system [2] including all other necessary filters​ or ​components ​of the architecture [37].
functionalities which are considered to be a major concerns [3].

This overall structure is commonly known as ​Software


Architectural Style which pertains to the principles or guidelines
that the developers use in creating their software systems. It
from their filter to the next filter or component to which the data
will be processed to [36].

Once the data has been transferred to the component, the


component or filter processes this data in an incremental
manner until an output is produced [38]. This produced output
will then serve as an input for the next component to process. In
this architectural style, each component is made up of different
Figure 1: Overview of the Pipe and Filter Architecture [39]
names [40] at the same time performs different functions in
processing a certain data [37, 39]. Each data is processed one at
Figure 1 shows an overview of the Pipe and Filter Architecture.
a time and once the data has gone through the different
As depicted in the figure, the arrows represent the ​pipes which,
processes, the final output will then be gathered and produced
as mentioned, serves as the connector or channel responsible for
by the ​sink filter which is also a participant of the architecture
transferring data from one filter to another [36, 40]. The
[38, 39].
rectangular-shaped figures, on the other hand, represents the
filters which is commonly termed as the ​components​. These
components are responsible for receiving data from the pipes 2.1 ADVANTAGES AND
enabling it to perform an operation and to send out partial results DISADVANTAGES OF USING PIPE AND
to several pipes [36, 39]. FILTER ARCHITECTURE
The main concept of the Pipe and Filter Architectural Style is to
represent a data flow process wherein components read a stream
2.1.1 Advantages
of data through its input and based on the data that was read, the The Pipe and Filter Architectural Style is known for its several
said component produces a stream of data through its output good characteristics. One of these characteristics is being
[38]. Through this, the different processes are performed in a simple. The Pipe and Filter Architecture is known for its
simultaneous manner in such a way that these processes are simplicity such that the architecture is easily described,
partitioned into different pieces of data that travels or flows understood and applied [38]. This implies the intuitiveness of
through the other operations. This, therefore depict a pattern or the architecture [38]. Meaning, it is easier to implement this
sequence that the architectural style follows in order for data to architecture because it is understandable.
be more organized and secure [39].
In addition, Pipe and Filter has the characteristic of being
reusable, efficient, and adaptable [40]. It enables the
construction of a system’s structure whilst maintaining the flow
of data at the same time [38]. Tis makes it easier for the
architecture to adapt easily whenever a new system requirement
is added [38] or whenever a changes are imposed within the
architecture. This, therefore, result to a more efficient
architectural model or style.

Lastly, because of the architectural style’s simplicity, the


architecture becomes more modular [38] which allows complex
systems to be understood easily. To detail this, since Pipe and
Figure 2: Pipe and Filter Architecture [38]
Filter allows processes to be performed by different components
in a simultaneous manner and has a good interaction between
Figure 2 shows a detailed view of the different processes in the
components or filters, the complexity of the system can easily be
Pipe and Filter Architecture. As depicted in the figure, the
handled and the flow of data can be easily tracked [38].
process usually starts with the ​Source filter​. The Source filter is
one of the architecture’s participants responsible for providing
the initial data which is then processed by the different pipes and 2.1.2 Disadvantages
filters [38, 39]. From the source filter, the data will then pass Despite having multiple advantages, the Pipe and Filter
through a ​pipe​. Each pipe is controlled by one particular filter architecture also has several disadvantages and limitations in
[40] and these pipes are responsible for transferring the data terms of its use.
One of this is that despite its simplicity, the Pipe and Filter In the field of design and exploration, Abstract Machine Model
Architectural Style is inefficient in terms of handling the data is used to formalize information with regards to the design of a
input and output. If pipes perform the ​first-in-first-out approach machine.
or pattern, bottlenecks occur when data is processed which then
slows the system down [38]. Lastly, in the field of system software development, the Abstract
Machine Model provides a higher level of presenting and
Another disadvantage of this architectural style is that its viewing the design of automated methods [41].
simplicity makes it difficult to apply the architecture in
structuring large and complex projects [38]. 3.1 States
The Abstract Machine Model undergoes execution process and
3 ABSTRACT MACHINE MODEL during these processes there are three (3) possible states the
(LAYERED) Abstract Machine Model can be in: ​Initialization​, ​Transition and
Another Architectural Style defined is the Abstract Machine Ending​.
Model. As the name implies, its main concept is to display an
abstract view of only important aspects such as machines and In the ​Initialization state​, the Abstract Machine Model is
processes or those that are relevant to the system’s performance initialized. Once the Abstract Machine Model is initialized,
or system’s code structure [43, 45]. This architectural style is DataArea and Program is also initialized wherein the Program is
perceived to serve as an intermediary tool between the software initialized via the ​init operation [43]. After this process, the
developer and the hardware architects on the design process. LoadProgram will then execute enabling the assembler
This helps developers obtain enough and necessary information programs to be loaded. Along with this, components of the
with regards to the functionality of the architecture in order for DataArea is already initialized by the init operation [43]. The
the developers to impose necessary changes that will help figure below shows the processes in the Initialization state.
increase the performance of the system’s machine [41].

Aside from those that are defined above, Abstract Machine


Model is also known to be composed of multiple patterns that
are primarily used in structuring programs. From this, Abstract
Machine Model is seen to most likely emphasize modularity
[42].

Since Abstract Machine Model is used as a model by application


developers to frame their programming algorithms [41], it has
been widely implemented in all other programming languages
[42]. One of these programming languages that implements
Abstract Machine Model is the Java Programming language
specifically the Java Virtual Machine (JVM) [43]. The Java
Virtual Machine enables the operation of different Figure 3: Initialization State [43]
microprocessor machines which are hardware-independent
machines [43]. The second state that the Abstract Machine Model undergoes is
the ​Transition state​. This is the state where machines are
Aside from implementing the Abstract Machine Model solely executed wherein the transition obtains instructions from the
within the field of programming, it is also used in varying fields program with regards to how the machine is executed. In every
such as community engagement, design space exploration, and execution, there is a corresponding instruction which changes
system software development [41]. the machine’s state. Once the machine’s state changes, there
could either be a modification in the DataArea or the Program or
In the field of community engagement, as mentioned above, it could actually be possible for both to be modified [43]. The
since software developers use this architectural style in order to figure below displays the processes that happens within the
impose changes in their algorithms and codes, software Transition state.
developers are able to engage with each other in order for them
to determine ways on how to reconstructure or conduct changes
in their algorithms and codes [41].
Figure 6: Overarching Abstract Machine Model
Architecture [41]

Figure 4: Transition State [43] 3.2.2 Homogeneous Many-core CPU Model


Lastly, the ​Ending state ​is the state of the Abstract Machine
Model wherein components of the machine has already achieved
or reached its ending condition. In this state, the ​stop operations
of the DataArea and Program is evaluated and combined [43].
The figure below shows the processes under the Ending state.

Figure 7: Homogenous Many-core CPU Model Architecture


[41]

As shown in the figure above, series of cores are connected to a


single network-on-chip. These cores have the performance
capability and identical Instruction Set Architecture (ISA) which
enables sharing a single memory space that has a fast and small
Figure 5: Ending State [43]
local caches that operates in a simultaneous multithreading
(SMT). In this model, it is very important to maintain the
3.2 ABSTRACT MACHINE MODELS FOR continuity of of the programming models [41].
ALGORITHM DESIGN
With the imposed difficulties and constraints in the process of 3.2.2 Multicore CPU with Discrete
designing hardware, here are some models proposed to help
Accelerators Model
solve these problems [41].

3.2.1 Overarching Abstract Machine Model


The use of this model helps software developers identify the
different architectural features of the different machines and also
helps them in customizing their code. This model is known to be
a feasible candidate for supercomputing architectures. This
model highlights the different hardware architecture features
that are needed to support large scale computers or exascale
computers [41]. The figure below depicts or shows the Figure 8: Multicore CPU with Discrete Accelerators Model
architecture of the said model. Architecture [41]
As depicted in the figure above, this model combines a as the ​repository​. This central database contains all of the
homogenous many-core CPU with multiple discrete resources and information shared and access by the different
accelerators. This model is popularly instantiated among all users or, as depicted in the figure, ​subsystems ​that are
other systems with multiprocessors [41]. connected to the central database.

4 REPOSITORY The Repository Architectural Style, just like any other


Another Architectural Style that is being used or applied is the architectural styles, has its own advantages and disadvantages
Repository Model. This architectural style is already known to when used or applied. One big advantage of this architectural
be widely used and applied nowadays. We base the concept of style is its capability to store large amount of data or information
this model from its name itself; ​Repository​. Repository is a in an efficient manner. Also, this type of architecture supports
shared database which contains series of information [44] central management of data making it easier to manage backups,
accessible by the different software developers. security, etc. Additionally, users or developers does not need
any direct communication whenever they wish to access or share
From the said concept, we define Repository Model as an resources since the architecture already facilitates this purpose.
Architectural Style that contains and allows design tools to share Lastly, the disadvantage of using this type of architecture is that
information which then allows each of the tools to work together there is a difficulty in distributing data and results in an
[45]. Furthermore, this model allows multiple or thousands of expensive data evolution.
users to access an information shared within the database. This
enables the said users to collaborate and work together over a 5 BLACKBOARD
cloud database repository [46]. Another type of the architectural style is the Blackboard
Architectural Style. This architectural style is developed to
The Repository Architectural Style is composed of two (2) provide different computational frameworks in order to help aid
distinct components: a central data structure and series of in the design of the different systems which are to be
independent components. The first component, which is the implemented and integrated on large, complex and specialized
central data structure is defined to represent the present state modules [49].
of the architecture while the other component called
independent components ​are defined to be components that Based on the Blackboard Architectural Model, the approach of a
operates on a central data store [1]. Blackboard System is that a common knowledge base also
known as ​Blackboard is updated by a diverse group of
Repository Architectural Style is deemed to be very important knowledge sources starting with the problem specification up
most especially when it comes to data integration. From this, until the solution.
repositories tend to be in demand in varieties of tools. Some
examples of these tools are CASE tools and Computer-Aided Aside from this, the concept of this architectural style is that it
Design (CAD) tools [44]. enables all components access information or data stored in a
shared data store [2] which is known as the ​Blackboard ​[2, 47,
Some examples of this are: ​Information Systems​, ​Programming 48].
Environments,​ ​Graphical Editors​, etc.
This Architectural Style is actually divided into three (3)
components: the ​Blackboard​, the ​Knowledge Source​, and the
Controller ​[47, 48, 50]. The figure below shows the Blackboard
Architecture consisting the said components.

Figure 9: Repository Model [45]

Figure 9 shows a simple overview of the process or how the


Repository Architectural Style works. As shown in the figure,
the architecture contains a central database which is also known
architecture can broadcast multiple events instead of invoking
single event only [​1​]. This Architectural Style is called Implicit
Invocation.

Implicit invocation is one of the architectural styles that is said


to be the most accepted type of architectural style in software
engineering because of having a characteristic of low coupled
and high cohesion [51]. The Implicit Invocation is commonly
used in the field of programming for structuring the tools, in
managing databases, user interfaces, and syntax-directed editors
[​1​].

Implicit Invocation has an interrelated components which uses


Figure 10: Blackboard Architecture [50]
registration-broadcast [51]. It is said that Implicit Invocation
Architectural Style is driven by events. In this architectural
The ​Blackboard serves as a global accessible database [47]
style, by associating a function with a particular event, other
which contains a centralized data structure [48] which is
components can already register to the said event. Once an event
typically used in solving different problems [47]. Some elements
is announced, the system will look for listener components in
of this component are: ​application data such as messages,
order for it to invoke the functions for the said event. Thus, an
information, etc. and ​control data ​or also known as ​meta-data
event ​‘implicitly’ triggers the invocation of events in other
[50]. This component also provides a way for knowledge
modules [1].
sources (a.k.a ​agents)​ to read, write and remove data from the
database [50].

The ​Knowledge Sources (a.k.a ​agents​) ​[40] are considered to be


independent models containing all of the needed information in
solving a problem [47]. They are also known to be capable of
reading, updating and processing the data in the Blackboard
[48].

Lastly, the ​Controller component is responsible for making


runtime decisions which is executed by the knowledge resources
[47] such that it monitors the Blackboard and ensures the
synchronization between the agents or the Knowledge Sources
[48].

All of the components have access to the Blackboard such that Figure 11: Implicit Invocation Architecture [51]
components may produce new data objects that are added to the
Blackboard, and look for particular kinds of data on the As shown in figure 1, a user will fill out a login form and it will
Blackboard, which can be found by conducting pattern matching be submitted to the system. After submitting the form, the
with the existing knowledge source. LoginEvent will be created which is triggered by the said
request. The system will then populate the LoginEvent with the
Some of the advantages of using this architectural style is its necessary information for the request. The system determines
modular approach making it easier to develop since Knowledge the listeners for the LoginEvent which is the
Sources are independent [47]. There is also flexibility since AuthenticationListener. The system will then call the
Blackboards adapt to changes that were made. AuthenticationListener’s tryLogin() method using an XML
configuration file and pass it to the event. The method will then
6 IMPLICIT INVOCATION try to authenticate the user. If the authentication was successful,
Traditionally, to process a data in a system, it usually starts with the LoginAcceptedEvent is triggered. However, if there is a
a component that communicates with another component by failure in the authentication process, a new LoginFailedEvent is
invoking its event explicitly [​1​]. But recently, a much preferred triggered. The event/listener cycle then continues every time a
integration architecture was used because the component on this user will login.
6.1 ADVANTAGES AND 7 PROCESS-CONTROL
DISADVANTAGES OF IMPLICIT Process control is an architectural style with an objective of
expanding number of products while maintaining its quality.
INVOCATION ARCHITECTURE
Because of this goal, varieties of manufacturing industries adapt
and uses this model [54]. The industries that makes use of this
6.1.1 Advantages model are process industries, manufacturing industries, chemical
When dealing with event handling, Implicit Invocation must be engineering field, etc [54, 56]. However, in the field of software
used as an architectural style since it is an event-based development industries, they don’t usually use this kind of
architecture. Also, it provides a lot of advantages like flexibility, architectural style [53].
robustness, and maintainability [51].
In Process-Control Architecture there are three process
Systems that use Implicit Invocation Architecture are flexible in variables, namely ​input variable​, ​controlled variable​, and
a way that it is more easily able to deal with unexpected events. manipulated variable​.
In this present time, requirements can be changed easily with
new advancements in technology that’s why the system’s Input variable are responsible for measuring the input given by
architecture should be flexible in changes [51]. Implicit the users to the system. While ​Controlled variable are those
invocation also allows reuse because sometimes the invoked variables whose value is being controlled by the system. Lastly,
modules uses an existing event that can be reused; because of Manipulated variable are those variables which are
this, this architectural style becomes more flexible [51]. manipulated by the system in order to monitor the process [53].

Additionally, In Implicit Invocation, replacing a component is The desired value for the Controlled Variable is called ​set point.​
commonly done and what is good about implicit invocation is The set point is used to maintain specific property of output of
that, every time that there is a change in component, the other the process [53].
component together with their interfaces will not be affected
[51]. An open-loop system is a type of continuous control system that
can run without any feedback from the users. The output of the
6.1.2 Disadvantages system has no effect on the control action caused by the input
The Implicit Invocation Architectural Style despite having signal from the user [​53​].
multiple set of advantages mentioned above, also provides a list
of disadvantages and problems when using Implicit Invocation A ​closed-loop system​, also called feedback control system, has
Architectural Style [1]. a similar concept with open-loop system, but the only difference
is that it has more than one feedback loops between its output
The first disadvantage of Implicit Invocation Architectural Style and its input. Its control action caused by the input signal is
is that the components do not have control on the process of the being dependent on the output in some way [53].
system. Whenever an event was announced by the component,
this component cannot receive feedback about other To further understand this, here is an example of an open loop
component’s response, did the other components respond control system and closed loop control system.
accordingly, how does the other component will respond, and
when will the other component stopped responding [1, 52].

Another problem on Implicit Invocation is reasoning about


correctness. Traditionally, before invoking an event, the
procedure's conditions are verified first. In contrast to this,
implicit invocation reasoning about correctness is sometimes a
problem because the procedure is dependent on the binding's
context. If the binding's context is not verified before the
invocation, then the procedure's context will deal with
correctness issue resulting to a problematic context [1]. Figure 12: Open loop control system [56]
As shown in figure 12, the controller is not involved on the
process. In this case, the controller is off or it set to zero
therefore, the system’s flow is determined only by the process.
So, reaching a new set point is not possible anymore unless the it is subjected to change [53]. The next advantage of using
whole process start again and the input parameters will changed Process Control Architectural Style is that because of its
manually [56]. flexibility it is also suitable when a software is embedded in a
physical system that has continuing behavior [53].

7.1.2 Disadvantages
One of the disadvantages of Process Control Architectural
Model is that because of the continuing behavior of a system,
determining the timing characteristics and specifying responses
to disturbances is hard [53].

8 CLIENT-SERVER
Figure 13: Process parameters and variables for closed loop People nowadays almost use the Internet in their everyday lives,
control system [56] this involves the use of applications connected via the Internet or
the use of platforms connected to the internet. As network-based
As shown in figure 13, The input parameters are processed applications become popular, the use of Client-Server
through actuators and sensors. This is the time when the control Architectural Style also becomes popular [6]. This is because
system and the process interacts. The input will be converted Client-Server Architectural Style is commonly used for
into a signal when it reaches the controller. Then, a power will network-based applications [5].
be released to the actuators. After an output is released, the
sensor will convert the output into signals then send it back to Client-Server Architectural Style divides the functionalities of
the controller [56]. the system into two components: the Client and the Server. In
this architectural style, the clients are the ones responsible for
requesting particular services while servers are responsible for
7.1 TYPES OF PROCESSES USING
providing these services by providing a response to the client
PROCESS CONTROL [5]. As shown in Figure 14 , Clients will be sending their
Process Control have two types of control: the ​continuous requests to the server wherein the server will then retrieve the
process control​ and ​discrete process control​. data requested from the database and once the data has been
retrieved from the database, the server sends the data to the
7.1.1 Continuous process control client via response.
Continuous process control usually adapt by process industries .
The data (variables and parameters) here is used to be
continuous and analog [56]. Continuous process control includes
regulatory control, feedforward control, steady-state
optimization, adaptive control and on-line search strategies [55].

7.1.2 Discrete process control


Discrete process control usually used in manufacturing
industries and its data (variables and parameters) is mostly
translated to binary format [56]. Combinational logic control
and sequential control is an example of this [55].

7.2 ADVANTAGES AND


DISADVANTAGES OF PROCESS
CONTROL ARCHITECTURE Figure 14: Client-Server Architecture Framework [8, 9]

However, since data is passed between the two components, a


7.2.1 Advantages third component is added in order to facilitate the transaction or
One of the advantages of using Process Control Architectural the processing of data between the two components. This third
Style is that it is suitable for the control of the processes even at component is considered as the Medium of Communication [7].
runtime, it is flexible because it can control the algorithms when
The Medium of Communication consists of the different
standardized protocols that are popularly used between servers The HyperText Transfer Protocol (HTTP) is the last
and clients [7, 8]. These standardized protocols [7, 8, 9] are: standardized protocol to be discussed in this paper which is also
● File Transfer Protocol (FTP) used in the Client-Server System. This is used to transfer
● Simple Mail Transfer Protocol (SMTP) multimedia files between the client and the server [8, 9]. This
● And HyperText Transfer Protocol (HTTP) protocol is used most especially since the Client-Server
Architecture is a request-response type of architecture. The
The File Transfer Protocol (FTP) is used in the Client-Server HyperText Transfer Protocol (HTTP) then serves as the
System. This is used to transfer files to and from the client as Client-Server Architecture ​Request-Response Protocol [​ 8, 9].
well as to and from the server as well as used to store files (i.e.,
images, movies, and music) on the server [7, 8, 9]. Aside from the standardized protocols being used by the
Client-Server Architecture, there are also two types of models
that are used in the architecture namely: ​2-tier ​and ​n-tier [7] or
also known as the ​multi-tier​.

8.1 Two-Tier
One of Client-Server Architecture type is the ​2-tier architecture.
In this architecture, the client can communicate with the server
without the need for an intermediate [6]. This means that only
the server and the client communicate such that there is a direct
Figure 15 : File Transfer Protocol (FTP) [8, 9] communication between the two components [9].

Figure 15 shows an overview of how File Transfer Protocol In this tier, the architecture is divided into two components: the
works. In this figure, it shows that units labelled as ‘student’ (the Client and the Database Server [8, 9]. Figure 17 below shows
clients​) will send their files (i.e., music, image, video) to the Lab the overview of the 2-tier architecture.
Server (the ​server)​ . To be able to do this, the File Transfer
Protocol (FTP) is used.

The Simple Mail Transfer Protocol (SMTP) is also one of the


standardized protocols used in the Client-Server System. This is
used to allow clients to communicate with other clients via mail
[7, 8, 9]. These mails are transferred through the use of POP
protocol [9].

Figure 17 : 2-tier Client-Server Architecture [8]

From the figure shown above, it shows that the client sends its
request of information to the database server then the database
server will return its response to the client along with the data or
information requested by the client [9].

To further understand this, Figure 18 shows a more detailed


Figure 16 : Simple Mail Transfer Protocol (SMTP) [8] architecture of the 2-tier architecture. The figure shows that the
client is responsible for performing the coding as well as the
The Figure above depicts the process of how mails are business logic. Aside from this, the client’s application is also
transferred and communicated between the sender and the responsible for displaying the output of the server’s response.
receiver. It displays the different processes or steps the mail
undergoes in order for the receiver to retrieve the mail sent by
the sender.
Figure 19: Overview of the 3-tier Client-Server Architecture
[8]

In this architecture, instead of having the client layer perform


the business logic, it only limits the client layer to perform the
function of providing the display to the client’s UI or also
known as the presentation logic [8] or the display logic [9]. The
Figure 18 : Detailed 2-tier Client-Server Architecture [9] layer responsible for performing the business logic is the middle
layer. To further explain this, Figure 19 shows a detailed view of
The advantages of this tier is that the application runs faster [9] the 3-tier architecture.
because of the direct communication between the two
components. However, despite of the capability of the
architecture to make applications perform faster, problems are
also introduced in this type of architecture. This problem
involves the server not being able to respond to multiple client
requests [9].

8.2 Multi-Tier
The second type of the Client-Server Architecture is the
multi-tier architecture or also known as the ​n-tier architecture.
In this architecture, instead of only having the client and the
database server, a middle component is provided. To further
explain this architecture, this paper will be providing one
example of the multi-tier architecture which is the ​3-tier
architecture.

In the 3-tier architecture, aside from having the client layer and
the server layer, it also contains the middle layer [6] which is
also known as the ​Application Server [8] or the ​Business Layer Figure 20 : 3-tier Client-Server Architecture [9]
[9]. Adding additional Application Servers or Business Layers
extends the 3-tier architecture into an n-tier architecture [8]. The As depicted in the figure above, the client layer is responsible
Figure below shows the overview of the 3-tier architecture. for displaying the data provided by the server. Aside from this,
the client layer is also responsible for sending the request to the
middle layer [9]. The business logic resides in the middle layer.
In this layer, it separates software that are running on the
machines [8] and it is also responsible for retrieving the request Based on the figure, the model is responsible for database
from the client which will then send it to the server after management [10]. It involves storing data [11] as well as the
authenticating and verifying the request [6]. Aside from that, it different database operations (i.e., Create, Read, Update and
is also responsible for retrieving the response from the server Delete) [10]. As for the Controller, it server as the middle
then it will also send it back to the client. In this layer, validation architecture between the Mode and the View. The Controller is
of data, calculations and other processes with regards to how the responsible for controlling how the information is passed
data is manipulated occurs [9]. between the two components of the architecture [10]. Aside
from this, it is also responsible for validating user input [12] as
The advantage of the multi-tier architecture compared to the well as for responding to the users via the interface provided by
2-tier architecture is that it allows the server to handle multiple the view [13]. Lastly, the view is responsible for the presentation
requests as well as it provides a more secure system [6]. of the data provided by the model [10] which is then displayed
to the user.
9 MODEL-VIEW-CONTROLLER
Model-View-Controller (MVC) is one of the architectural styles
also commonly used in web application frameworks [10] most
especially on applications that uses Graphical User Interface
(GUI) [11]. This means that it is also used in systems that
requires interaction with the users [12]. Some popular web
application frameworks that uses this architectural style are ASP
Figure 22 : Overview of Model-View-Controller (MVC)
.NET, Rails and Struts [13].
Collaboration [11]
The Model-View-Controller was first introduced in the
The figure above shows an overview of how the different
Smalltalk System with the purpose of structuring systems that
components collaborate as discussed in the previous paragraph.
require interaction into a modular way [13] since Graphical User
To have a walkthrough of the collaboration process, we discuss
Interface (GUI) has already become popular [10]. The idea of
the different steps depicted in the figure above. As shown, the
this architecture is to provide or divide the architecture into
user enters data or an input through the keyboard or the mouse
different modules or processes with the purpose of performing
via the user interface provided by the view. Once the user has
the business logic, and other processes [14].
entered an input, the controller performs its job by validating the
user input and providing the model the necessary modifications
As mentioned previously, the architecture is divided into
or changes needed based on the users input. The model will then
different components namely: the Model, the View, and the
retrieve or modify data stored in the database and once this
Controller [10, 11]. The Figure below shows an overview of the
process was done, the model then notifies or passes the data to
Model-View-Controller (MVC) Architecture’s process.
the different views that are appropriate or specified. Figure 23
shows a summary of the processes discussed.

Figure 21 : Model-View-Controller (MVC) Architecture


Process [10]
Figure 23: Summary of the Model-View-Controller (MVC)
Process [12]
9.1 Model [11]. A controller is paired with a view [11] such that if there are
The Model, as discussed, is responsible for storing and any changes done by the user, the controller makes sure that the
manipulating data in the database. Such data are texts, images, view and all other views would reflect the changes made [12].
files and many more [11]. The table below shows the different The table below shows the different specific responsibilities or
responsibilities or functions of the Model in the architecture. functions of the Controller in the architecture.

Table 3 : Class-Responsibility Collaborator Card of the


Table 1: Class-Responsibility Collaborator Card of the Controller Component [12]
Model Component [12]
As mentioned in the table, the main function of the Controller is
As mentioned in the table, the core functions of the Model in the to accept user input, translate these input into requests which
architecture is to provide data to the different components of the will then be handled by the Model, and lastly, to maintain the
architecture - the View and the Controller. Also, the Model is dynamic behavior of views such that all changes are depicted
responsible for notifying the other components of the and all views are consistent.
architecture about changes in the events which involves the
modification of data stored in the database.
9.4 Benefits of Using the
9.2 View
Model-View-Controller (MVC) Architectural
The View, as discussed previously, is responsible for presenting
the data provided by the Model in a screen [11]. It is responsible Style
for providing the user an interface or graphics of the One of the benefits of using the Model-View-Controller (MVC)
information. The table below shows the different specific Architectural Style is that there is organization within the
responsibilities or functions of the View in the architecture. system. This means that it enables the developers to easily
manage the program or code for the system as well as it allows
them to easily understand and read the codes for the system [10].

Also, aside from the benefit it provides the developers, it also


provides the benefit of organizing the system architecture such
that all functionalities are separated in a modular fashion such
that one component will be focused on the display of the
information or how data is presented while another focuses on
how the data is manipulated and stored [13]. The main
advantage of this is that it allows all other components to be
Table 2: Class-Responsibility Collaborator Card of the View edited or modified without having to modify the other
Component [12] components. It also allows an easier way of adding or removing
components without affecting all other components.
As mentioned in the table, the main function of the Model in the
architecture is to retrieve the information or data from the Model Another benefit of the Model-View-Controller (MVC)
then once the data has been retrieved, the View is responsible Architectural Style is that it makes development faster as
for displaying this information to the user. compared to the other architectural styles because of its modular
approach. Thi is because these modules can be developed at the
9.3 Controller same time since they all don’t depend on other modules or
The Controller, as discussed previously, is responsible for components [13].
handling user input as well as for validating the said user input
Lastly, the Model-View-Controller (MVC) Architectural Style can act as a server at the same can act as a client [17]. This
reduces the complexity of the architecture because, again, of its means that in this architectural style, each of the machines have
modular approach [12]. distributed roles or have equal capabilities of directly sharing
information with each other [18]. In simpler definition,
10 DISTRIBUTED SYSTEMS Peer-to-Peer (P2P) Architectural Style is all about sharing
Distributed Systems is known for having a centralized information between peers (machines) [19]. The figure below
information that is being accessed or shared to multiple depicts or shows the approach of Peer-to-Peer (P2P)
processes [15, 16]. The concept of Distributed Systems is to Architectural Style as discussed previously.
divide all processes of an application into multiple processes
[15]. This means that multiple processes are conducted in order
to solve one problem [16].

The primary goal of the use of this system is to not only


minimize cost but to also have a higher performance most
especially on applications or systems that needs large amount of
computational processes [15]. The figure below shows the
architecture of Distributed Systems. Figure 25: High-Level View of P2P Approach [19]

Peer-to-Peer (P2P) Architectural Style was perceived to be an


alternative of the Client-Server Architecture since in the said
architecture, there is a centralized database server. Rather than
having a centralized database server, Peer-to-Peer (P2P)
Architectural Style has been introduced to provide the concept
of having peers [19] distribute information and share
information to other peers.

10.1.1 Application Areas

Figure 24 : Distributed Systems Architecture [15, 16]

As shown in the figure above, the Distributed Architecture is


composed of sets of machines or computers connected together
via network [15]. However, despite having a centralized
connection, these computers are considered to be independent
and has its own memory. Also, as depicted in the figure, Figure 26: Application Areas of Peer-to-Peer (P2P)
information is centralized therefore each machine can access the Architecture [19]
same information. This means that information is not solely
accessible to one machine but is accessible to multiple machines The figure above shows some of the Areas where Peer-to-Peer
[16]. (P2P) is applied. This paper discusses some of the popular
Peer-to-Peer (P2P) Architecture Application Areas:
There are multiple architecture types that fall under the
Distributed Systems Architecture. These are: Peer-to-Peer (P2P), ● The most popular Peer-to-Peer (P2P) Application Area
Grid Computing, Cluster Computing, Cloud Computing and is ​File Sharing and Distribution​. Some of the most
Service Oriented Architecture (SOA). Each of these architecture popular systems or applications that are currently used
types will be further discussed in this paper. are: BitTorrent and eDonkey [20].
● Another Application Area of Peer-to-Peer (P2P)
10.1 Peer-to-Peer (P2P) Architecture is ​Streaming Media.​ The idea of this is to
The first architecture type that falls under the Distributed reduce the cost of bandwidth along with the purpose
Systems Architecture is the Peer-to-Peer (P2P) Architecture of offering digital television over the Internet. Some of
Style. The concept of Peer-to-Peer (P2P) Architecture Style is the most popular systems under this area are: BBC’s
that there are no database servers present. Instead, each machine iPlayer and CoolStreaming [20].
● Peer-to-Peer (P2P) Architecture is also used in the
area of ​Telephony​. In this area, peers are able to make
audio and video calls. One example of a Peer-to-Peer
(P2P) System is Skype which is popular among
Internet users nowadays [20].
● Lastly, one of the most important Application Area of
Peer-to-Peer (P2P) is the ​Volunteer Computing​. In this
area, peers share their CPU cycles primarily for
scientific computations in the areas of Biology,
Astrophysics, etc. Some examples of a Peer-to-Peer
(P2P) System used in this area are: SETI@home and
BOINC Platform [20].

10.1.2 Algorithms
There are three common Peer-to-Peer (P2P) algorithms used: Figure 28: Flooded Request Algorithm [19]
Centralized Directory Model, Flooded Requests Model, and
Document Routing Model. As depicted in the figure above, 2 is the requesting peer, the
request sent by 2 is broadcasted or flooded to 1, 5 and 3. The
The concept of ​Centralized Directory Model is that peers or request is also broadcasted to 4 and 6 since both peers are
machines have a central directory wherein they upload and share directly connected to 5. And as depicted, the request sent by 2
their files or other information they wish to publish or make found a match provided by peer 4, this then starts the direct
public [19]. communication between the two peers.

The last Peer-to-Peer (P2P) Algorithm is the ​Document


Routing Model​. This is known to be the most recent algorithm
approach with the concept of providing each peer that is
connected a random ID. Aside from peers, documents are also
provided random IDs which will then allow peers to ​route the
document based on their IDs [19]. For example, a peer has
requested for a file or a document, the document will only be
provided once the peer’s ID is closely similar to the document’s
ID. Figure 29 shows an overview of the algorithm.

Figure 27: Centralized Directory Algorithm [19]

As depicted in Figure 27, A peer will request for an information


or file, once the request has been sent, the index (central
directory) matches this request to another peer which then
enables both peers to exchange files through a direct
communication (​see 4 and 5 in the Figure)​ [19].

Another Peer-to-Peer (P2P) Algorithm is the ​Flooded Request


Model​. The concept of this algorithm is that unlike the
Centralized Directory Model, a request from a peer is Figure 29: Document Routing Algorithm [19]
broadcasted or ​flooded to all other peers connected which will
also enable the request to be broadcasted among the peers 10.2 Grid Computing
connected to the before-mentioned peers and so on. Once the
Another type of Distributed Systems is Grid Computing. The
request had a match and was able to receive an answer or the
concept of this Architectural Style is to facilitate in a large scale
flooding occurred 5-9 steps (maximum number of steps for
file sharing of resources [19, 21, 22] provided by large-scale
flooding), then the requesting peer will already receive the
computer systems [21] also known as ‘supercomputers’ [19].
information requested [19].
These resources are shared by users from across the globe
therefore allowing files to be accessed among various individual resources [23] as well as publication, negotiation,
autonomous groups [22]. monitoring and discovering of resources [22] happen.

The term ‘Grid’ refers to the different machines or nodes of The next layer is called the ​Collective layer. In this layer, it is
different clusters that are not connected on a single domain [16]. responsible for capturing interactions such as discovering and
This means that users can access information regardless of their monitoring resources [22]. It also provides protocols that
location, their Operating Systems, and other details required by focuses on the coordination of the different grid resources [23].
other architectural styles [23].
And the last layer is called Application ​layer. This layer serves
There are six (6) main functional requirements that are as the final grid layer which contains applications that are used
determined to be necessary or required for grid applications: by the users in accessing resources shared within the grid system
[22] [22, 23].
● There should be a high performance of transport
protocol to be able to transfer a large amount of data 10.2.1 Benefits of Grid Computing
● There must be a control of performance Some of the benefits of using Grid Computing are the following:
● There should be a dynamic network resource
allocation ● Virtual resources and virtual organizations for
● Security must always be present collaboration [22] - ​Grid Computing provides an
● It should always be available and accessible environment for users to collaborate and share their
● Lastly, there should be a multicast to have an efficient resources regardless of their location.
distribution of data to groups of resources
● Reliability [22] - Since Supercomputers or large-scale
The organization of the architecture’s components is shown on computers are used in this architecture, the reliability
the figure below. of hardware components increases which then allows
an easier recovery of data whenever problems in the
hardware occurs.

● Management [22] - Since Grid Computing is in a


large-scale approach, it provided a way of being able
to manage large and distributed resources easily.

● It also enables a secure and a real-time collaboration


between grid users globally [23].

Figure 30 : Grid Computing Architecture [23] ● It also improves time market as well as it increases the
speed of developing new products [23] since data or
In the ​Fabric Layer​, it contains all of the resources shared in resources are already accessible globally.
within the Grid [23]. In this layer, it provides users access to the
resources [22, 23] of different types such as computing ● It also provides a solution to problems that requires
resources, storage and network resources, code resources, and greater amount of computer resources [23].
many more [22]. To allow this kind of access, the layer uses
low-level mechanisms which includes resource management 10.3 Cluster Computing
mechanisms [23]. Cluster Computing is an architectural style that falls under the
Distributed Systems which means that it also encompasses the
The second layer is called ​Connectivity​. In this layer, core typical concept of Distributed Systems wherein information is
communications and authentication protocols are defined [22] accessed by multiple machines. However, unlike the other types
and provided [23]. This is where verifications of the id of grid of Distributed System Architectures, the concept of Cluster
resources and grid users happen [23]. Computing is that this architecture consists of a collection of
interconnected stand-alone machines wherein all of these
​ esource​. In this layer, definition [22]
The third layer is called R machines work together as a single computing resource [24, 25].
and implementation of protocols that allows the sharing of
Cluster Computing Architecture was developed during the node, other nodes or machines are present, the computational
1960s by IBM with the purpose of it being an alternative for process for the application running on the master node is then
linking large mainframes without having too much cost [25]. As split up and distributed to the different nodes in order to be able
the name implies, this type of architecture consists of a ‘cluster’ to handle large amount and complex data [27].
of computers connected either in a single cabinet or via LAN
[24] such that these cluster of machines work together as one There are three forms of Cluster Computing: High Availability
computing resource. (HA) Clusters, Load balancing Clusters, and High-Performance
Clusters (HPC) [26].
Cluster Computing Architecture is already popular among
system designers, network developers, algorithm developers, High-availability (HA) Clusters are clusters with a primary
and even language designers. It is also commonly used in the purpose of improving services provided by the clusters.
field of engineering, scientific research, and even business Redundant nodes are used so that once a node fails, these
applications [26] which demands a high performance in redundant nodes take place. The main goal of this Cluster
computation [25]. Computing form is to redundancy in order to lessen or avoid a
single point of failure [26].

Load Balancing Clusters are forms of CLuster Computing


wherein ll processes are given to front ends which are
responsible for distributing these processes to the back end
servers.The main purpose of this form is to provide high
performance along with the implementation of the concept of
High-availability (HA) Clusters [26].

High-Performance Clusters (HPC) are forms of Cluster


Figure 31: Cluster Computing Architecture [24]
Computing that are commonly used in scientific computing.
This primarily focuses on providing high performance by
Figure 31 shows the Architecture of Cluster Computing. In the
distributing all tasks to the different nodes within the cluster
figure, it displays all of the components that are used in the
[26].
architecture. Such components are: Workstations or PCs,
Network or Switch, Network Interface Cards (NICs), operating
Systems, the Middleware, etc. Figure 32 shows a simpler
10.3.1 Advantages of Cluster Computing
version of the Cluster Computing Architecture. Some advantages of the use of Cluster Computing are the
following [27]:

● High-Processing Power - ​Cluster Computing are set


of clusters connected to a high speed LAN therefore
providing a higher level of computing power.

● Manageability - Despite having multiple machines or


nodes to manage, Cluster Computing makes it easier
to manage these nodes since these nodes are connected
and are working as one computing resource.

● Easier Maintenance ​- If one of the node requires or


needs maintenance, all other nodes are not affected
and can still continue working on their assigned
workload. Also, since all nodes work as one single
Figure 32: Simple Cluster Computing Architecture [27] entity, once a node is under maintenance, its workload
can be transferred to other nodes so that the workload
The Figure above depicts a process or how Cluster Computing is still being processed.
works. It shows that there is a Master Node which is where
applications are running. However, despite having a master
● High Availability - As mentioned earlier, despite
having a node that has a failure, its workload can still
be transferred to other nodes so that the process still
continues. This means that there is a high availability
of the components or machines since the process is not
interrupted regardless of having a failure in a node or
not.

10.3.1 Disadvantages of Cluster Computing


Despite the Advantages of having to use Cluster Computing,
here are some of the disadvantages of using Cluster Computing
[27]:

● Software Issues - Since all nodes are high-computing


machines, Open Source Cluster Application Resources
(OSCAR) must be installed. However if this software Figure 33: Cloud Computing Architecture
was not installed on the machines, it would be very 10.4.1 Five Essential Characteristics of Cloud
difficult to combine all nodes into one cluster or into
one single entity. Computing
There are five (5) essential characteristics determined for Cloud
● Privacy Issues - Because of its easy access, all Computing [28]:
confidential information or data me be compromised
or accessed by others. ● On-Demand ​Self-Service - This characteristic refers
to the capability of a user to supply his/her own
● Difficulty in locating the node with fault - Because resources without the need to communicate with the
Cluster Computing proposes nodes working as a vendor.
single entity, it would be very difficult to locate nodes
with failures. ● Broad Network Access - In this characteristic, all
other services provided by vendors are accessible over
the network through the Broad Network Access which
10.4 Cloud Computing
is a standard protocol used to enable such capabilities.
Another type of Distributed Systems is the Cloud Computing
Architecture. The concept of this architecture is that instead of
● Resource Pooling - This characteristic of Cloud
having an actual or physical computer to serve as a storage or
Computing allows multiple users to use the same
server, all resources are managed in one software which serves
resources at the same time.
as a ‘cloud’ computer [16].

● Rapid Elasticity - This characteristic is concerned


Since all other architecture types require a high-performing
with enabling customers to have less or more allocated
computer, problems with other users is that they have no
resources.
machines or computers with the same performance as well it
would be too costly for them to avail such computers or
● Measured Service - In this characteristic, resources
machines. This serves as one of the main problems as to why
are measured or metered which serves as the basis of
other users cannot access needed resources. With the given
how much consumers will pay.
problem, Cloud Computing aims to provide a solution for this
making it low on cost and it does not necessarily require users to
have high performing computers. In Cloud Computing, all
resources are accessed in the cloud which is managed by a
particular software [21]. The figure below shows the overview
of Cloud Computing Architecture.
10.4.2 Architectural Layers of Cloud Engine that is used on applications on the Google
Infrastructure [29].
Computing
There are three (3) Architectural Layers of Cloud Computing:
● Infrastructure as a Service (IaaS)

● Software as a Service (SaaS)

Figure 36: Infrastructure as a Service Model [30]

Based on the Figure above, the concept of this layer is


that vendors provide services such as basic storage and
compute capabilities for consumers over the cloud
[29]. It basically provides consumers services with
Figure 34: Software as a Service Model [30]
regards to network, storage, processing and other
computing resources [28].
From the figure above, the concept of this type of
Architectural Layer is that a complete application or a
The figure below shows an overview of the components of each
software is made available to multiple users. These
Architectural Layer.
applications or software provides different services
over the cloud based on the demand of the users or the
needed service of the users [29]. In this type of
Architectural Layer, users does not need to create their
own applications because some are already provided
as a service [28]. The most popular example of this
type are Google Apps such as Gmail for mails, and
other word processing applications [29].

● Platform as a Service (PaaS)

Figure 37: Three Architectural Layers of Cloud Computing


[28]

10.5 Service Oriented Architecture (SOA)


The last architecture that falls under the Distributed Systems is
the Service Oriented Architecture (SOA). The Service Oriented
Architecture (SOA) is known for being business-centric which
has the concept of linking business process requirements [32,
33, 35] that are in demand with IT development processes in
Figure 35: Platform as a Service Model [30]
order to come up with a service component [35]. In simpler
terms, the Service Oriented Architecture (SOA) consists of
From the figure above, the concept of this type of
multiple services that are communicating with each other [33].
Architectural Layer is that a part or component of a
software is provided as a service over the cloud [29].
Each service within the Service Oriented Architecture (SOA)
This allows consumers or users to use this type of
serves as endpoints which are used to access other services as
service or component in creating his/her application
well as used in interconnecting other services as well [33]. Since
[28]. Some example of this layer is the Google App
Service Oriented Architecture has the perspective of services
composes an enterprise [35], we define it with the concept of Lastly, the ​Utility Services​, these services are commonly known
making business functionalities as services consumed by an to be reusable which primarily includes event logging,
application which actually lessens the workload of the software notification handling and exception handling [32].
developers [32].
10.5.2 Elements of Service Oriented
Architecture (SOA)
Elements of a Service Oriented Architecture (SOA) is divided
into two (2) categories: ​functional ​and ​quality of service [​ 31].
The figure below shows the diagram of the architecture’s
elements.

Figure 38: Service Oriented Architecture (SOA)

Figure 38 shows a basic view of how Service Oriented


Architecture (SOA) works. As depicted in the figure, a ​service
provider provides the service and shares this service to the
service clients​. However, these services are only fully
implemented through the ​backends provided for the service
provider. Some of the known types of backends are server
applications such as CORBA. ERP systems are also included, as
well as legacy systems, etc [33]. The use of backends are one of
the most essential characteristics of Service Oriented Figure 39: Elements of Service Oriented Architecture (SOA)
Architecture (SOA). [31]

In simpler terms, based on the figure shown above, this The following are the ​functional ​aspects of the architecture:
architecture’s main role is to serve as a lookup [33] wherein it ● The ​Transport element is used in order for services to
serves as a place for clients to look for specific services be transferred to and from the service provider and
published by service providers. consumer [31] such that service consumer requests are
delivered to the service provider wherein the service
10.5.1 Elements of Service Oriented provider’s response is delivered to the service
client/consumer.
Architecture (SOA)
There are four types of services used in Service Oriented ● The ​Service Communication Protocol is used as a
Architecture (SOA): ​Business Services​, ​Entity Services​, communication tool for the service consumer and
Functional Services,​ and ​Utility Services.​ service provider which allows both users to
communicate and transfer requests and responses with
Business Services are defined as an encapsulation of all of the each other [31].
business functions. These services allows the creation of a
service without having the need to consult to Business Managers ● The ​Service Description simply describes the services
[32]. being offered or availed of. It also describes the
implementation of the service and how the service is
Entity Services ​are composed of the business entities for used as well as the required data for the service to
example Employee, Product, Customer, etc. These services work successfully [31].
usually uses the different database operations (CRUD
operations) [32]. ● The ​Service is the actual service made available by the
service provider [31].
Functional Services are technology-oriented services which is
usually depicted or shown as a sequence diagram instead of a
representation of business-related tasks [32].
● The ​Business Process contains all of the integrated orchestration, Business Process Management (BPM), and others
services that are needed in order to meet the business is implemented [33].
requirement [31].
The ​Client Application/service provider Layer is the second
● The ​Service Registry serves as a repository for service layer of the architecture. Client invocations and actual
providers to publish their services and a repository for implementations of the services are applied in this layer [33].
service consumers to locate and look for specific Clients are responsible for performing the invocation as service
services that are available [31]. providers provide these services that can be invoked.

Additionally, the following are the ​quality of service aspects of The ​Remoting Layer is where implementation of the
the architecture: middleware takes place. The layer itself is divided into three (3)
● The ​Policy is a set of conditions provided by the layers: ​invocation layer​, ​adaptation layer,​ and ​request handling
service providers in making services available to the layer.​ ​Invocation Layer handles the communication protocol by
service consumers [31]. In the figure, this element is which the service client/consumer used in order send and
overlapping such that it also depicts being a part of receive message to and from the service provider. The
functional aspect. This is because some of these Adaptation Layer uses the invocation interceptor. This is
policies are applicable under the functional aspects. where invocations and replies in a message flow is adapted [33].
Lastly, the ​Request Handling Layer is simply responsible for
● The ​Security are set of rules used to identify, authorize providing client request handler and server request handler.
and to gain access to the services provided [31].
The ​Communication Layer ​is the lowest layer of the
● The ​Transaction are set of attributes applied in order architecture. In this layer, basic message flow is defined and
for the architecture to deliver a consistent result [31]. operating system resources (i.e., connections, handles, threads)
are managed [33].
● The ​Management ​ae set of guidelines or rules used to
manage services that are published and consumed In addition to the layers mentioned above, there are also
[31]. orthogonal aspects that has to be implemented. These aspects
are: ​Managing​, ​Security​ and ​Service Description​.
10.5.3 Layers of the Service Oriented
Architecture (SOA) 10.5.4 Advantages of using Service Oriented
Architecture (SOA)
Most business industries uses service-oriented architecture since
Service-oriented architecture provides several features and
advantages that can help business industries.

Integration of business processes is one of the common


problems in business operations. To address this problem,
business organizations makes use of Service Oriented
Architecture (SOA) because it allows ​reusability​.In the
architecture, business components or processes can be easily
combined. Therefore, the process becomes more flexible,
resources do not usually duplicate and the cost will be reduced
Figure 40: Layers of Service Oriented Architecture (SOA)
[31].
[33]

Also, Service Oriented Architecture (SOA) is very flexible and


The figure above shows the overview of all of the layers
adaptable to changes since it allows reusability. This
involved in the architecture of Service Oriented Architecture
characteristics accommodates multiple strategic changes making
(SOA).
the business processes more manageable.

The ​Service Composition Layer is the first layer of the Service


Additionally, the Service Oriented Architecture (SOA) helps the
Oriented Architecture (SOA). this is the layer where service
business to build an application faster and easier [32]. This is
because the architecture already enables services to be looked [2] Open University. (n.d.). Learning Unit 3: Architectural
up, used and integrated with other services in order to easily patterns. Retrieved October 8, 2018 from
develop applications that meet the business requirements. This is https://www.ou.nl/documents/40554/349790/IM0203_03.pdf
easier than having to develop a new service.
[3] Bruin, H., and Vliet, H. (n.d.). Scenario-Based Generation
10.6 Advantages of Using Distributed and Evaluation of Software Architectures. Retrieved from
https://www.cs.vu.nl/~hans/publications/y2001/ga-gcse.pdf
Systems
Some of the advantages of using Distributed Systems is that
[4] Chavan, P.U., Murugan, M., and Chavan, P.P. (n.d.). A
first, sharing of data is not a problem since despite having the
Review on Software Architecture Styles with Layered Robotic
data in a centralized network, multiple machines can still access
Software Architecture. ​2015 International Conference on
the data [16]. Aside from this, another advantage of using
Computing Communication Control and Automation,​ pp.
Distributed Systems is the availability of information. This
827-831.
means that despite having a problem on one machine or if one of
the machines had an error, the information is still available and
[5] Fielding, R. 2000. Software Architectural Styles for
all other machines are not affected [16].
Network-based Applications. Retrieved October 10, 2018 from
http://roy.gbiv.com/pubs/arch_survey_20.pdf
10.5.4.1 Disadvantages
Service Oriented Architecture (SOA) is a good architecture [6] ​Sharma, A., Kumar, M. and Agarwal, S. 2015. A Complete
when it comes to client server architecture. There are a lot of Survey on Software Architectural Styles and Patterns. ​Procedia
advantages of SOA but there are also some disadvantages of this Computer Science.​ 70, (2015), 16–28.
architecture.
[7] Akmel, F., Birhanu, E., Siraj, B. and Shifa, S. 2017. A
One of the common problems faced in using Service Oriented Comparative Analysis on Software Architecture Styles.
Architecture is that it has a messaging overhead since it uses an International Journal in Foundations of Computer Science
XML messaging format that is not efficient enough. Every time & Technology​. 7, 5/6 (2017), 11–22.
it interacts with another service, it completely validates all input
parameters that causes increase response time that reduces the [8] Oluwatosin, H.S. 2014. Client-Server Model. ​IOSR Journal
overall performance [34]. of Computer Engineering.​ 16, 1 (2014), 57–71.

Also, It has a ​high investment cost ​because implementing the [9] Gupta, S., Narang, S., Arora, S., and Jindal, S. 2017. A Brief
Service Oriented Architecture requires a large amount of money Discussion About Client-Server System. ​International Journal
for the development of technology and human resources [34]. of Advanced Research in Computer Engineering & Technology
(IJARCET)​. 6, 3 (2017), 338–341.
11 CONCLUSION
From the discussion, multiple number of different Architectural [10] Forte, L. (n.d.). Building A Modern Web Application Using
Styles are presented. But, as discussed also, each Architectural An MVC Framework.
Style has its own benefits and disadvantages. Some are more
applicable in other areas while some are not applicable to the [11] Rammerstorfer, M. and Mössenböck, H. 2004. Data
same area. The process of determining the right type of Mappings in the Model-View-Controller Pattern. ​Lecture Notes
architecture for the system is a crucial task because the in Computer Science Perspectives of System Informatics.​ (2004),
architecture is one of the most important aspect of the system 121–132.
which determines whether the system is actually successful or
not. [12] Kalelkar, M., Churi, P., and Kalelkar, D. (2014).
Implementation of Model-View-Controller Architecture Pattern
12 REFERENCES for Business Intelligence Architecture. ​International Journal of
Computer Applications (0975 – 8887).​ 102, 12 (2014), 16–21.
[1] Garlan, D., and Shaw, M. 1994. An Introduction to Software
Architecture. Retrieved October 8, 2018 from
[13] Grove, R., and Ozkan, E. 2011. The Mvc-Web Design
https://www.cs.cmu.edu/afs/cs/project/vit/ftp/pdf/intro_softarch.
Pattern. ​Proceedings of the 7th International Conference on
pdf
Web Information Systems and Technologies.​ (2011).
[14] Bajpai, A. (n.d.). Model View Controller Architecture on [29] Sun Microsystems. 2009. Introduction to Cloud Computing
Embedded Systems. architecture (1st ed.).

[15] Thampi, S. (n.d.). Introduction to Distributed Systems. [30] Hashizume, K. 2013. A Reference Architecture for Cloud
Computing and its Security Applications.
[16] Ahire, K. 2017. Distributed Computing-Future and
Applications. ​International Research Journal of Engineering [31] IBM. (n.d.). Patterns: Service Oriented Architecture and
and Technology (IRJET).​ 4, 10 (2017), 2005–2007. Web Services. Retrieved from
https://www.redbooks.ibm.com/redbooks/pdfs/sg246303.pdf
[17] Aberer, K., and Hauswirth, M. (n.d.). An Overview on
Peer-to-Peer Information Systems. [32] ​Lin, G., Desmond, K., Htoon, N. and Thuat, N.
2018.Service Oriented Architecture. ​A Fresh Graduate’s Guide
[18] Yang, B., and Molina, H. (n.d.). Comparing Hybrid to Software Development Tools and Technologies​. Retrieved
Peer-to-Peer Systems. from
https://www.comp.nus.edu.sg/~seer/book/2e/Ch10.%20Service
[19] Milojicic, D., Kalogeraki, V., Lukose, R., Nagaraja, K., %20Oriented%20Architecture.pdf
Pruyne, J., Richard, B., Rollins, S., and Xu, Z. 2002.
Peer-to-Peer Computing. [33] Zdun, U., Hentrich, C., and Van der Aalst, W. 2006. A
Survey of Patterns for Service-Oriented Architectures. ​Internet
[20] Rodrigues, R. and Druschel, P. 2010. Peer-to-peer systems. Protocol Technology.
Communications of the ACM.​ 53, 10 (Jan. 2010), 72.
[34] ​Bokhari, S., Habiba, U., Azam, F., and Abbas, M. 2015.
[21] International Telecommunication Union. 2009. Distributed Limitations of Service Oriented Architecture and its
Computing: Utilities, Grids & Clouds. Combination with Cloud Computing.

[22] Pardeshi, S., Patil, C., and Dhumale, S. 2013. Grid [35] Suhardi, S., Doss, R. and Yustianto, P. 2015. Service
Computing Architecture and Benefits. ​International Journal of Engineering Based on Service Oriented Architecture
Scientific and Research Publications.​ 3, 8 (Aug. 2013), 1–4. Methodology. ​TELKOMNIKA (Telecommunication Computing
Electronics and Control).​ 13, 4 (Jan. 2015), 1466. DOI:
[23] Gerami, M. 2010. Some Basic Concepts of Grid 10.12928/TELKOMNIKA.v13i4.2388
Computing. ​Journal of Telecommunications​. 4, 1 (Aug. 2010),
14–17. [36] Doberkat, E. E. 2003. Pipes and filters: Modelling a
software architecture through relations.
[24] Baker, M., and Buyya, R. (n.d.). Cluster Computing at a
Glance. [37] ​Fernandez, E.B. and Ortega-Arjona, J.L. 2009. The Secure
Pipes and Filters Pattern. ​2009 20th International Workshop on
[25] Yeo, C.S., Buyya, R., Pourreza, H., Eskicioglu, R., Database and Expert Systems Application.​ (2009).
Graham, G., and Sommers, F. (n.d.). Cluster Computing:
High-Performance, High-Availability, and High-Throughput [38] Francois, A. 2003. ​Software Architecture for Computer
Processing on a Network of Computers. Vision: Beyond Pipes and Filters​.

[26] Buyya, R., Jin, H., and Cortes, T. 2002. Guest editorial [39] Ortega-Arjona, J.L. 2005. The Pipes and Filters Pattern: A
Cluster computing. ​Future Generation Computer Systems.​ 18 Functional Parallelism Architectural Pattern for Parallel
(2002), 5–8. Programming.

[27] Patel, R.B., and Singh, M. 2006. Cluster Computing: A [40] Philipps, J., & Rumpe, B. (n.d.). Refinement of
Mobile Code Approach. ​Journal of Computer Science​. 2, 10 Pipe-and-Filter Architectures.
(2006), 798-806.
[41] ​Ang, J. et al. 2014. Abstract Machine Models and Proxy
[28] Dimitrov, D. 2014. Towards cloud application architectural Architectures for Exascale Computing. 2014 Hardware-Software
patterns: transfer, evolution, innovation and oblivion. Co-Design for High Performance Computing. (2014). DOI:
10.1109/Co-HPC.2014.4
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.428.5
[42] Kieburtz, R. and Agapiev, B. 1991. What is an abstract 391&rep=rep1&type=pdf
machine?.
[54] Hanh, J., & Edgar, T. F. (n.d.). Process Control. doi:DOI:
[43] ​Martin, J. G., & Martin, M. S. 2014. A Pattern for 10.1002/0471238961.1618150307091522.a01.pub2
Designing Abstract Machines. Retrieved from
https://www.researchgate.net/publication/239544796_A_Pattern [55] Seif, A. 2017. Process control examples and applications.
_for_Designing_Abstract_Machines Retrieved from
https://www.slideshare.net/amrseif1/process-control-examples-a
[44] Bernstein, P., and Dayal, U. (n.d.). An Overview of nd-applications?from_action=save
Repository Technology. Retrieved from
http://vldb.org/conf/1994/P705.PDF [56] Unit 3 Industrial Control Systems. (n.d.). Retrieved October
13, 2018, from
[45] Okasheh, M., Rabea, A., and El Emary, I. 2010. An http://www.nuigalway.ie/staff-sites/david_osullivan/documents/
improved architecture design of shared repository database unit_3_industrial_control_systems.pdf
mode. ​Scientific Research and Essays​. 5, 24 (Dec. 2010),
3994-4001.

[46] Sparx Systems. 2017. Model Repository. Retrieved from


https://sparxsystems.com.au/resources/user-guides/repository/m
odel-repository.pdf

[47] Rudenko, D., and Borisov, A. 2007. An Overview of


Blackboard Architecture Application for Real Tasks.
Information Technology and Management Science​.

[48] Ortega-Arjona, J., and Fernandez, E. (n.d.). The Secure


Blackboard pattern.

[49] Lalanda, P. (n.d.). Two complementary patterns to build


multi-expert systems. Retrieved from
https://hillside.net/plop/plop97/Proceedings/lalanda.pdf

[50] Rezende da Silva, O., Garcia, A., and Pereira de Lucena, C.


2002. The Reflective Blackboard Architectural Pattern.
Retrieved from
https://pdfs.semanticscholar.org/7b99/9b728aecd2842fd919bf13
1b41c2fb16b9f6.pdf

[51] Edwards, B. (n.d.). An Introduction to Implicit Invocation


Architectures. Retrieved October 8, 2018 from
https://pdfs.semanticscholar.org/4907/3d810c7f98244e9bbea79d
852eff8840d034.pdf

[52] ​Steimann, F., & Paulitzki, T. 2001. Types and Modularity


for Implicit Invocation with Implicit Announcement. Retrieved
October, 2018, from
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.436.9
861&rep=rep1&type=pdf

[53] Kumar, A. 2014. Software Architecture Styles a Survey.


Retrieved October 9, 2018 from

Вам также может понравиться