A Microservices Architecture for Machine Learning
Assisted Decision Support in a Real-Time Field Sensors
Environment
Giovanni De Gasperis
1
, Giuseppe Della Penna
1
and Sante Dino Facchini
1
1
Università degli Studi dell’Aquila, Dipartimento di Ingegneria e Scienze dell’Informazione a Matematica, Via Vetoio, L’Aquila, 67100, Italy
Abstract
In this paper we describe the design and development of a real-world software system that integrates machine learning
augmenting a pre-existing remote surveillance framework. Machine learning was embedded as a service in the system,
plugged-in between back-end data fux handlers; the system has been redesigned following a microservices architecture to
make it scalable and to allow a progressive adoption of the machine learning-powered assistance in the event management
process. A case study of the application in an actual security company is analysed and discussed, where we show how this
innovation helped human operators to better shield themselves from the "information overloading".
Keywords
Real-Time Critical Systems, Machine Learning, Big Data, Microservices
1. Introduction
In this paper we describe the design and development
of a real-world software system that integrates big data
analytics and machine learning into a pre-existing remote
surveillance framework operated by security company
that monitors a number of sites through closed circuit and
IP cameras, anti-theft sensors (e.g., volume and pressure
sensors, door opening sensors, etc.) and also physical
sensors (e.g., humidity and temperature).
Figure 1 shows a fragment of the process commonly
followed to handle events and alarms coming from a
surveillance network. When an alarm is received, frst the
operators check the surveillance videos. If such videos
are not available or they do not clearly show the event,
the operator requests an on-site check to the security
staf. Such action and its outcome, as well as the outcome
to all the actions taken during the process, is stored in
the system database. Then, if the event is in progress,
the operator starts the true alarm handling process. Oth-
erwise, if the notifed event is not actually in progress,
the operator must check for other alarms on the same
site and, if any, restart the handling process for such new
events. If no other site alarms are active, the operator
ECSA2021 Companion Volume, Robert Heinrich, Rafaela Mirandola
and Danny Weyns, Växjö Sweden, 13-17 September 2021
giovanni.degasperis@univaq.it (G. De Gasperis);
giuseppe.dellapenna@univaq.it (G. Della Penna);
santedino.facchini@student.univaq.it (S. Facchini)
https://www.disim.univaq.it/main/home.php?users_username=
giovanni.degasperis (G. De Gasperis);
https://people.disim.univaq.it/~dellapenna (G. Della Penna)
0000-0001-9521-4711 (G. De Gasperis); 0000-0003-2327-9393
(G. Della Penna)
© 2021 Copyright for this paper by its authors. Use permitted under Creative
Commons License Attribution 4.0 International (CC BY 4.0).
CEUR
Workshop
Proceedings
http://ceur-ws.org
ISSN1613-0073 CEUR Workshop Proceedings (CEUR-WS.org)
must try to understand the reason of the notifed alarm. If
it is recognized as a false alarm, the case is simply closed.
On the other hand, if the alarm is improper, i.e., it is due a
system anomaly, the operator starts an anomaly handling
process.
The software adopted by the company to support such
a process was a monolithic application that ofered only
basic functionalities such as collecting signals and data
streams, presenting the events in a managing console and
saving them in a persistent database. Therefore, most
of the operations described by the event management
process above required a substantial amount of manual
work by the control center operators.
While the human intervention cannot be avoided in
such a context, as in any security-related context, machine
learning can be exploited to assist the operators in several
steps of the process, leaving the humans with only the
most critical steps to accomplish (see, e.g., [1, 2, 3, 4] for
examples belonging to diferent surveillance contexts).
However, embedding machine learning in the com-
pany pre-existing software presented several challenges.
First, we are modifying a production, real-time critical
system, so we need to gradually add such a support, in
order to let the operators adapt to the new functionali-
ties while verifying their reliability without interrupting
the company services. Second, the closed, monolithic
architecture of the company software described above
makes any modifcation to the pre-existing process very
complex and error-prone. It is also worth noting that
such a software, developed many years ago, was already
not adequate to accomplish the current high QoS levels
and to be compliant with the latest safety regulations.
Therefore, we decided to rebuild the system from
scratch, extracting only some relevant modules/algo-
rithms from the old software in order to embed it in