Академический Документы
Профессиональный Документы
Культура Документы
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].
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].
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].
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.
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].
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.
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 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.
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].
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.
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.