Ismail Mekni-pfe-IA
Ismail Mekni-pfe-IA
U NIVERSITY OF S OUSSE
N ATIONAL S CHOOL OF E NGINEERING OF S OUSSE
Realized in:
In conducting this project, I have received meaningful assistance from many quarters
which I like to put on record here with deep gratitude and great pleasure.
First and foremost, I express my sincere gratitude to my supervisors, Mr. Sabri
Mtibaa, Ms. Marwa Drissi, and Mr. Aref Meddeb who extended their complete
support and helped to make me deliver my best.
I would also like to thank all of my teachers at the National Engineering School of
Sousse for their continuous help and treasurable training during my study years.
Finally, a special thanks to the jury members who honored us by examining and
evaluating this modest contribution.
ii
Contents
1 Project Context 4
1.1 Host company presentation . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Project presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Problem statement . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 Project objectives . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Critical analysis of the state of the art . . . . . . . . . . . . . . . . . . 6
1.3.1 State of the art . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.1.1 SamKnows One . . . . . . . . . . . . . . . . . . . . 6
1.3.1.2 SMAQ . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.2 Critical of the state of the art . . . . . . . . . . . . . . . . . . 8
1.3.3 Proposed solution: . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 Modeling language . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 Software development methodology . . . . . . . . . . . . . . . . . . 9
1.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
iii
Contents iv
4 Project Achievements 48
4.1 Development environment . . . . . . . . . . . . . . . . . . . . . . . . 48
4.1.1 Hardware envionment . . . . . . . . . . . . . . . . . . . . . . 48
4.1.2 Software environment . . . . . . . . . . . . . . . . . . . . . . 49
4.1.3 Frameworks and technologies . . . . . . . . . . . . . . . . . . 50
4.2 Achieved work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.2.1 Authentication and user management . . . . . . . . . . . . . 51
4.2.2 Device management . . . . . . . . . . . . . . . . . . . . . . . 53
4.2.3 Metric and test management . . . . . . . . . . . . . . . . . . 55
Contents v
vi
List of Figures vii
viii
Abstract
This report describes our graduation project which was carried out at Sofrecom
Tunisia. The project aims to design and develop a remote and communicating device
platform to achieve supervision and monitoring and assess the quality of service
(QoS) of fixed access broadband networks.
With our solution, the user could manage connected probes and create broadband
test configuration before running them in the probes. The user can also manage
the statistics configuration of testing results with attractive charts with customized
alerts to ease broadband supervision. The probe also helps network supervisors get
accurate statistics according to time periods and zone areas.
Keywords
ix
Résumé
Ce rapport décrit notre projet de fin d’études mené chez Sofrecom Tunisie. Le projet
vise à concevoir et développer une plate-forme d’appareils distants et communicants
pour la supervision et surveiller et évaluer la qualité de service (QoS) des réseaux
d’accès fixes large bande.
Avec notre solution, l’utilisateur peut gérer les sondes connectées et créer une con-
figuration de test large bande avant de les exécuter dans les sondes. L’utilisateur
peut également gérer la configuration des statistiques et des résultats de test avec
des graphiques attrayants et des alertes personnalisées pour faciliter la supervision.
La sonde aide également les superviseurs de réseau à obtenir des statistiques pré-
cises en fonction d’une période et d’une zone données.
Mots clés
1
General introduction
With the global spread of the internet nowadays, many mobile and internet services
operators appeared. In the coming days, connected devices will spread massively
worldwide, especially with the appearance of new technologies such as the inter-
net of things, big data, personal area networks (PAN), artificial intelligence (AI). So
mobile and internet services operators desire to achieve a better quality of service
for their customers. To do so, operators design and develop solutions for broadband
monitoring and supervision, mainly, to massively assess and monitor the quality of
service of networks access perceived by customers. Sofrecom Tunisia, subsidiary of
Orange Group, attempts to serve this purpose by designing and developing a plat-
form, "SMAQ Probes", for broadband supervision and monitoring and specifically to
massively assess the quality of service (QoS) of fixed network access. In this context
comes our mission during the graduation project internship.
This report contains four chapters as follows:
The first chapter titled “Project context” will be devoted to the company presentation
and to set the project in its general context.
The second chapter “Requirements analysis and specification” will be about the
global system analysis to design and develop.
The third chapter “Design of the physical and logical architectures” will be dedicated
to present the physical and logical architectures of our solution, also, we will explain
the process behind the broadband monitoring and supervision.
Last but not least, the final chapter “Project achievements” will be about the ap-
plication achievements. First, we will present the development environments and
technologies and tools, secondly, we will illustrate our application with several in-
terfaces.
2
List of Tables 3
Finally, we will close the report with a general conclusion. Future work and per-
spectives will be mentioned at last to give some ideas to improve our solution.
CHAPTER 1
Project Context
In the first place, this chapter will be about the host company, Sofrecom Tunisia
presentation, a consulting and engineering firm specializing in telecommunications.
Then, we will talk about work and project environments, by putting the light on the
project goals and the analysis of the state of the art. Finally, we will present our
software development methodology and the modeling language that we are going
to use.
Operators of mobile and internet services have probes, Key Performance Indicators
(KPIs), installed in several network elements, but they desire to appreciate the qual-
4
Chapter 1. Project Context 5
This step is essential to propose our solution in the relation to those offered by
other companies. To do so, we studies the characteristics and the features of some
available apps while we focus on their weak points.
• Speed tests: includes download and upload over TCP and UDP speed tests.
• Latency, loss and jitter: latency, jitter and packet loss over UDP, latency over
HTML5.
• Video streaming: video streaming measurements that stream real content from
major video streaming providers.
• Online storage: tests upload and download from popular online storage ser-
vices.
• Voice over IP: measures the quality of a voice call between client and test
server.
• Traceroute: tests the path that traffic takes around the internet, it is useful in
diagnosing routing issues.
1.3.1.2 SMAQ
The following table shows in detail the differences between the two mentioned so-
lutions:
Sofrecom Tunisia is looking for an open source solution for the issue in question,
so SamKnows One solution is not convenient for them. In the other hand SMAQ
provides just the basic functionalities. The weak point in the mentioned solutions,
they don’t give users the access to the devices’ configuration. Network supervisors
can’t customize tests to satisfy their specific needs.
During the work on our solution we used UML “Unified Modeling Language” for
describing and modeling the specifications of our project. UML is a flexible and
versatile modeling language, also it is the most popular and widely used by the
community. We are going to present some diagrams from UML that we find it useful
during our work:
• Use case diagram: it helps to structure the needs of users and the correspond-
ing objectives of our system by identifying its users and their interactions.
Before starting the project design and development, we should choose the appro-
priate software development methodology to work with. The software development
methodology helps to describe the different phases and the sequences of the appli-
cation development process.
During our project, we used agile kanban because it is the most convenient method
to us. I am the only intern working on the project. Changes in the project can happen
any time. We are continuously improving the flow of our work. We are trying to limit
work in progress and to maximize efficiency. Also, we focus on reducing the time it
takes to take a project from start to finish.
1.6 Conclusion
The requirements analysis and specification phase is an essential step for the devel-
opment of a new application for broadband monitoring and supervision. It allows
presenting SMAQ Probes’ features in detail.
In this chapter, the first part is devoted to identify the different actors of the ap-
plication who are interacting with the system, and to give the functional and non-
functional requirements definitions. Subsequently, we present the general system
analysis using use case diagrams.
Internal actors
10
Chapter 2. Specifications of the SMAQ Pobes application 11
• Network supervisor: the network supervisor has the permission to read the
configuration without editing it. He has the right to supervise the quality of
experience “QOS”.
• Network and broadband administrator: he has all the rights of the network
supervisor. In addition, he has the permission to create, read, update, and
delete the broadband monitoring configuration.
External actors
• Probe: the probe is the entity able to receive the device and test configuration,
and sends the tests’ results to the server after running tests.
• The application should give the administrator the hand to manage user ac-
count.
• The application should give permitted users the possibility to customize their
dashboards.
• The application should give permitted users the access to manage the network
monitoring configuration(alerting).
• The application should provide permitted users with the access to manage the
test and device configuration.
• The boards should be able to run tests according to the time schedule and send
results to the server.
• The boards should be able to keep tests results if the server is not available.
Non-functional requirements refer to several key features that are beyond the pur-
pose of the solution, they specify criteria that judge the operation of the system,
rather than specific behaviors in order to ensure the client’s satisfaction.
Extensibility
The system must be open to some extension like for example adding new features if
needed without radical modification in the code.
Performance
The web application should be as efficient as possible with especially a good re-
sponse time. Users should be able to receive the quality of experience (QOE) from
the cloud server within a reasonable amount of time.
Re-usability
The system shouldn’t be exclusive for our case and must be adaptive to other use
cases.
Robustness
The system must cope with errors during execution and should be able to reboot
within a short time in case of failure.
Security
The user’s personal information must be kept safe from others and only system ad-
ministrator has permissions to access it. The broadband monitoring and supervision
access must be permitted to the supervisors of the network in question.
Chapter 2. Specifications of the SMAQ Pobes application 13
On one hand, this section offers a better understanding of the mentioned require-
ments by declaring them in a semi-formal way. On the other hand, it emphasizes
the interactions between the actor and our application. In contemplation of breaking
down the complexity of these goals, we use the use case diagrams.
As shown in the general use case diagram (fig.2.1), only the administrator can reg-
ister all types of users. All the features of the application must go through authenti-
cation. The network and broadband supervisor is responsible for managing network
monitoring, devices configuration, tests, and statistics configuration. Any configu-
ration that concerns probes is delivered to them. Probes send their information and
runs tests according to a job scheduler then probes send tests results to the server.
Thus, our system process the received data in real-time. Finally, our application is
prepared to generate statistics and quality of service for the network supervisor.
Chapter 2. Specifications of the SMAQ Pobes application 14
configuration is sent to the backend system to persist it to database. Also, the con-
figuration is delivered to the device in question. The probe, device, implements the
changes. Finally, the probe sends back the implemented configuration to the system
as a confirmation. This feature helps the network and broadband administrator to
change the device configuration remotely.
As shown above in the diagram (fig.2.3), the access to the test configuration is
granted to users with network and broadband administrator role. To edit the test
configuration, the user should enter the test elements, each element must be tested
directly on the probe, the device, and then test element’s result is sent back to the
user. After creating and testing all the elements, a new test configuration is sent to
the backend system. The configuration is persisted to database. The new test config-
uration is sent to the probes. All the probes implement the new test configuration.
Finally, a signal message is sent from all the probes holding the current configura-
tion. This use case allows the network administrator to customize and improve his
tests remotely.
Chapter 2. Specifications of the SMAQ Pobes application 17
As shown in the diagram (fig.2.4), the user authenticates as a network and broad-
band administrator. This feature aims to configure customized alerts. The user cre-
ates alerts with a specific constraint. This configuration is persisted to the database.
An alert checker is run for every received metrics data, if the constraint is satisfied
an alert with full description is triggered. The triggered alerts are persisted to the
database, so, the network supervisor can check them. This feature allows users to
facilitate the network monitoring.
As we can see in the above sequence diagram (fig.2.5), to access to the chart and
statistic configuration, users should have the network and broadband administrator
privileges. The user enters the chart parameters, so our system generates the chart
in question. The user submits this configuration to be persisted and added to dash-
board. Thus, users with network supervisor permission can see the configured charts
on the dashboard. This feature aims to allow users to create customized charts and
views. These views allow users to get the accurate information about the QoS, so,
they can improve their network service.
Chapter 2. Specifications of the SMAQ Pobes application 20
As shown in the user management sequence diagram (fig.2.6), the user management
feature is only allowed to the application administrator. The administrator enters
the credentials of each user. Thus, the user is now registered to the application
and he can access to the features depending to his privileges. To sign in to the
application, the user enters his credentials, generally a username and a password, if
the credentials are valid, he is redirected to the dashboard, and else he is prompted
to login again.
2.5 Conclusion
Throughout this chapter, we specified and analyzed the requirements that the SMAQ
Probes application should deliver to users, and we presented the main scenarios and
the use cases that it should offer.
The next chapter aims to go a step further in the process of developing our applica-
tion via presenting the design of the different components of our project.
CHAPTER 3
22
Chapter 3. Architecture of the SMAQ Probes application 23
This architecture describes the main components of the system and how they inter-
act in order to achieve the objectives mentioned in the previous chapter.
The system is composed mainly from the following parts: the probes (Raspberry
Pi boards), the user interface (web browser) and the cloud server including Kafka
cluster, the database management system and our web application.
The probes represent the entity that executes the scheduled tests and sends the
metrics to Kafka cluster through the Google protocol buffer.
The client web part represents the part with which the final users interacts and
it is essentially: the Web platform accessible by the application users, application
administrator, network supervisors and network and broadband administrators.
The third part, the cloud server, is where the application is hosted, this part is re-
sponsible for receiving and processing data coming from Kafka cluster, also it is
responsible for the data analysis and configuration persistent to our database.
According to the figure of the logical architecture, the system is composed from
three major parts:
• Probes: this parts represents widespread devices, these devices are the enti-
ties that handles tests. There are several scripts responsible for running the
tests with efficient schedules. All the messages are serialized with Google Pro-
tocol Buffer. There is a Kafka client responsible for publishing and receiving
messages[2].
• Cloud application: this part is the entity that holds the application logic. It
holds within it a Google Protocol Buffer converter. Kafka stream is the layer
that process the received data in real-time with high performance[3]. Spring
Boot application is a three tier web application, it is responsible for managing
the features of our system including metrics analytics.
• Angular: this entity is the frontend application accessible to users across the
Web[4].
The connection between the web application and the user interface is guaranteed
through HTTP protocol and REST web services.
Kafka cluster is playing the role of a middleware between the probes and the back-
end server.
Finally, we have our database, we have chosen MongDB as a database management
system for performance reasons, and it is accessible only through the three tier web
application.
The (fig.3.3) shows the class diagram of our system, this diagram summarizes rela-
tionships between our entities in the database. This class diagram is efficient in the
case of MongoDB database management system. MongoDB is an oriented document
database management system.
Chapter 3. Architecture of the SMAQ Probes application 27
The package diagram is a static view that serves to globally describe the different
components of the application. The (fig.3.4) presents the package diagram of our
solution in order to have an overview of its different elements.
This module describes device management process. This module is about editing,
deleting, and checking available devices. There is no meaning of creating device
because the device information is sent by it if it is connected.
The following class diagram (fig.3.5) presents the involved classes and components
that build the module.
Chapter 3. Architecture of the SMAQ Probes application 29
Then, we have the sequence diagram that describes the interactions between the
module’s components; this diagram presents the update device operation:
Chapter 3. Architecture of the SMAQ Probes application 30
The diagram below is the sequence diagram for the update Cron operation. Cron is
a job already running on the probe according to a specific schedule.
Chapter 3. Architecture of the SMAQ Probes application 32
The device configuration consists of the device general information (IP address, de-
vice ID, location. . . ) and the jobs running on it. First, the user fills the form of
device information, after, he submits this information. Using REST web services we
deliver the new configuration from frontend application to backend side. Finally,
the backend save the new configuration in our database and send it to the device in
question in order to consider the new changes.
For Cron configuration, we follow the same process; the user submits the new config-
uration, after, this configuration is sent to backend in JSON objects format. Finally,
our backend application implements the changes in the database and the device.
This module describes test management process. This module is about creating,
editing, deleting, and checking available tests. The following class diagram (fig.3.8)
presents the involved classes and components that build our module.
Chapter 3. Architecture of the SMAQ Probes application 34
Figure 3.8: Class diagram of the test and metric management module
Then, we have the sequence diagram that describes the interactions between the
module’s components; this diagram presents the creation and updating tests opera-
tions:
Chapter 3. Architecture of the SMAQ Probes application 35
Figure 3.9: Sequence diagram of the metrics and tests creation and updating oper-
ations
Chapter 3. Architecture of the SMAQ Probes application 36
The metrics and tests configuration consists of describing the general test informa-
tion (test name, test unit, schedules) and the test elements’ configuration. A test
element is a command line or even a script. To achieve better performance, each
test element is tested directly on the Raspberry board going through the frontend ap-
plication to the backend application to reach our Kafka cluster, the element is tested,
and the results is sent back to Kafka. Finally, the results’ data takes back the same
path to reach the user interface. The user configures the element with its results. To
finish, the user submits the entire test’s configuration to the web application.
We must note that the updating and creation operations are the same because we
are using MongoDB as a database, if the object is already persisted, MongoDB edits
it, and else the object is created.
Then, we have the sequence diagram that describes the interactions between the
module’s components; this diagram presents the creation and updating alerts oper-
Chapter 3. Architecture of the SMAQ Probes application 38
ations:
Figure 3.11: Sequence diagram of the alert creation and updating operations
This module describes statistic and chart management process. This module is about
creating, editing, deleting, and checking charts and views.
The following class diagram (fig.3.12) presents the involved classes and components
that build the module.
Chapter 3. Architecture of the SMAQ Probes application 39
Figure 3.12: Class diagram of the statistic and chart management module
Then, we have the sequence diagram that describes the interactions between the
module’s components; this diagram presents the view creation operation:
Chapter 3. Architecture of the SMAQ Probes application 40
The diagram below is the sequence diagram for dashboard generation operation.
Chapter 3. Architecture of the SMAQ Probes application 42
The statistics and charts configuration consists of creating a model carrying a view
configuration that we can use it to generate the same view each time. The statis-
tic and chart management module contains two parts, the first one is the views’
configuration and the second one is the dashboard generation.
To achieve creating customized views through the graphic user interface, our Angu-
lar application, the user put the configuration he needs to generate the chart. This
configuration parameters go through REST web service to the backend controller,
then to the service layer. The service layer takes the view configuration as parame-
ter to fetch the involved metrics data, stored in MongoDB, and process the received
data in order to create the view dataset. The chart dataset goes through REST web
service again to reach the frontend application arriving to the user interface. At
this point, the user has the option to save this configuration in order to add this
customized view to the dashboard.
The second part is the dashboard generation, when the user navigate to the dash-
board, there are three available filters, time filter, location filter, and test filter. A
request is sent from the user interface and the Angular component and service to
the backend through REST web service carrying the filters inputs. Views are fetched
according to the test filter, and then the metrics data is fetched according to location
and time filters. The metrics data is processed to generate dataset for each involved
view in the dashboard. Finally, the charts datasets goes back to the user interface.
This module describes authentication and user account management process. This
module is about creating, editing, deleting, and checking available users’ informa-
tion.
The following class diagram (fig.3.15) presents the involved classes and components
that build our module.
Chapter 3. Architecture of the SMAQ Probes application 44
Figure 3.15: Class diagram of the authentication and user management module
Then, we have the sequence diagram that describes the interactions between the
module’s components; this diagram presents the creation and updating users’ infor-
mation operations:
Chapter 3. Architecture of the SMAQ Probes application 45
Figure 3.16: Sequence diagram of the user creation and updating operations
The user configuration consists of creating a personalized user account that holds a
username, a password, and a role or privilege for the user.
The administrator just needs to fill the form with the user information. After finish-
ing, a request is sent to the backend application for persisting. At this point, the user
is able to authenticate.
In the previous parts of the report we talked about the features offered by our solu-
tion concerning analytics and management of each component, although we did not
emphasize the real-time network monitoring and metrics data processing. Also, we
need to clarify how the probes are handling the tests and received configurations.
changes. The following (fig.3.17) illustrates the interactions between a probe and
Kafka.
metrics values to store it in MongoDB. However, between data parsing and storage,
there is a specific processing for specific tests. In order to explain that, we should
know that defining the quality of experience needs to have measurements from dif-
ferent timestamps with specific periods of time. To conclude, a complex calculation
is required before storing data to have a better vision of the quality of experience.
Another crucial point in our solution, we need to have a high performance data
analytics, MongoDB is an oriented document non-relational database management
system that well supports indexing techniques[6]. MongoDB provides advanced
querying operations that we used to perform our analytics with customized filters.
3.3 Conclusion
Through this chapter, we described each part of the SMAQ Pobes application, its
functionalities both separately and when coordinating with other parts of our broad-
band supervision system. We also explained subsequently the choice of our logical
and physical architectures. Concerning the detailed design of SMAQ Probes, we ex-
hibited the class and sequence diagrams. In the next chapter, we present and expose
the technologies employed during the process of the creation of SMAQ Probes.
CHAPTER 4
Project Achievements
In this chapter, we discuss the process of implementing the different parts of our
system. We start by presenting the different tools both software and hardware used
to achieve the task in order to complete the implementation process.
To achieve our project development, we have used a DELL computer with a Windows
7 operating system. The characteristics of the used computer are provided below:
• RAM: 8 GB
For the probes, we have used Raspberry Pi 3 model B+ with an embedded Raspbian
operation system. The characteristics of the board are provided below:
• RAM: 1 GB
• Memory card: 16 GB
48
Chapter 4. Project Achievements 49
In this part, we list the software programs and applications we used throughout the
development of our system.
• Visual studio code: Visual studio code is MIT open source licensed software,
developed and maintained by Microsoft. It supports many programming lan-
guages with many technologies just by integrating plugins within it. We used
Visual studio code for Angular development. This software supports different
platforms, Linux operation system, Windows, MacOS.
• Apache Tomcat web server: Tomcat is a web server that supports Java web
logic. In our case, we used an embedded Tomcat web server.
• Postman: Postman allows users to execute and build personalized HTTP re-
quests; to achieve this Postman provides many optional features.
In this section, we discuss the technical choices we made to achieve our final prod-
uct. We start by presenting the programming languages used in the development of
the project. Afterwards, we defend our choice for the frameworks we used.
Programming languages
• Spring data MongoDB: Spring data MongoDB is a part of Spring data project
which aims to provide a Spring-based APIs (Application Programming Inter-
faces) for new datastores such as MongoDB. It gives the possibility to execute
complex queries on MongoDB, especially with Mongo Template[7].
• Kafka Stream: Kafka stream is a client library for building applications where
the input and output data messages are stored in Kafka cluster or broker. It
allows running real-time processing on the data. We used it for real-time pro-
cessing. • Google protocol buffer: Protocol buffer is a protocol for structured
data serializing, it also known as Protobuf, it supports several programming
languages such as Java, Objective-C, Python and C++. We used it to serial-
ize the messages coming from the probes. We used this protocol because it is
faster than the ordinary data format like JSON.
• OAuth 2.0: OAuth is a protocol for authorization flows for web applications.
It is simple for developers to use. We used it for security issues in our web
application.
• Linux Crontab: Crontab is a tool for job and task scheduling on Linux operating
system, in our case Raspbian. We used it to schedule test running.
The figure (fig.4.1) shows the users list with their information; this screen is only
accessible from an administrator account:
Chapter 4. Project Achievements 52
When installing the application for the first time there is a default administrator
account. With this account, the application administrator can create the accounts
for the network supervisors and the network and broadband administrators.
With the above screen (fig.4.1), we can access to the user creation form.
This screen (fig.4.2) is used for creating and updating users:
This form holds the user information. The username, the password and the privilege
are essential for user creation.
If a user is registered successfully, an authentication is required before starting us-
ing the application features, the figure below (fig.4.3) presents the authentication
screen:
Chapter 4. Project Achievements 53
If the user enters the right credentials, the application redirects him to the dashboard
screen, else an error message is shown in the login screen. If the access is granted
to the user, he can use the application features depending on his role.
After authentication, to start using all the application features, the probes, in our
case Raspberry Pi boards, must be connected in addition to the installation of the
embedded application.
When the probe is connected, it sends its information to the application, the infor-
mation contains the IP address, the device identifier, the device position, the client
name and the running tasks on it. If the application receives the device informa-
tion, the relevant tasks and configuration are sent to it for implementation. The
device information is persisted to MongoDB. Now, the devices’ configuration can be
displayed to the application users as shown in figure (fig.4.4) below:
Chapter 4. Project Achievements 54
With the previous web page, we can navigate to the updating screen of a specified
device, the figure below (fig.4.5) presents the device’s updating form, this form
contains the general information of the probe.
After updating the device information, the new configuration is persisted to Mon-
goDB.
With the device list screen, we can navigate to the running jobs of a specified probe,
as shown below in (fig.4.6):
Chapter 4. Project Achievements 55
With the previous figure (fig.4.6), we can update the configuration of device jobs.
A job configuration is essentially the job status and the job frequency. For the job
frequency, we are using the task scheduler Crontab.
The figure below (fig.4.7) presents the job updating screen:
After submitting this form, the new jobs’ configuration is sent to the device in ques-
tion in order to implement it.
The device jobs include the running tests. The next section is about how to manip-
ulate these tests.
The metric and test management is the feature that gives the possibility to the net-
work and broadband administrator to manipulate the running tests on the probes.
Chapter 4. Project Achievements 56
The figure below (fig.4.8) presents the list of the tests already created and running
on the devices:
Using the previous web page, we can access to the creation screen of the tests. The
process of test creation goes through several steps, these steps are illustrated in a
wizard as described next.
First, we have the form that contains the general information of the test, its name,
the unit that is used for the metrics of the test, and the job scheduling mode. If the
job scheduling mode is enabled, each element of the test runs in a specified order.
The figure below (fig.4.9) presents the general test information form:
Now, the user should enter the elements of the test. An element can be a Linux
command line that runs an available script or an existing program. To complete
this step, we must have at least one connected device, this device is used to test the
Chapter 4. Project Achievements 57
elements on it. After entering the command line and a script, in the case if we need
one, we run the command on the available device. The test result is shown in the
command output field. The network and broadband administrator highlights the
needed metric value. Here, our system creates a parsing key that is used to extract
the desired results in the process. We repeat this process for all the test elements.
The figure below (fig.4.10) shows the form that contains the element information.
To improve the use of our application, the network and broadband administrator has
the possibility to configure some formulas using the configured metrics. These for-
mulas help us get more relevant results about the QoS. The figure (fig.4.11) presents
the form that is used to enter formula’s configuration. We have used a drag and drop
component to give the network and broadband administrator a better experience
with the application.
Chapter 4. Project Achievements 58
The last step is the test elements scheduling, this step is only activated if the job
scheduling mode is enabled. In this step, we have all the test elements’s informa-
tion displayed in the screen. The network and broadband administrator enters the
schedule of each element in seconds. The test elements run on the probe according
to the specified order. The figure below (fig.4.12) presents the form in question:
Finally, the network and broadband administrator confirms the test configuration.
This new configuration is persisted to MongoDB and it is sent to the involved devices
in order to be considered. This test is added to the jobs of devices.
Until now we have the connected devices’ list, and we have the running tests’ config-
uration. In this part, we talk about the network monitoring and alert management.
First, we have the figure (fig.4.13) that shows the list of the configured alerts.
Chapter 4. Project Achievements 59
As we can see, with the above screen we have the access to create and update the
alerts configuration.
The figure below (fig.4.14) shows the alert form configuration:
To create an alert, we have the general information of the alert, the title, the de-
scription that is shown when the alert is triggered. An alert is created according
to a specified test and metric configuration, so the network and broadband admin-
istrator should choose a specified test for the alert, then The test’s metrics names
are shown. Finally, the network and broadband administrator must specify the con-
straint of alert triggering. This constraint is a logic formula composed using the
configured metrics of the specified test. The network and broadband administrator
Chapter 4. Project Achievements 60
The following screen (fig.4.15) presents the views and charts configuration:
As we can see in the dashboard, we have the views that we saved their configuration.
Also, we have the triggered alerts that we saved their configuration. To generate the
different views, we have to use the available filters, the time filter, the zone filter
and the test filter.
The following screen (fig.4.17) presents the time filter:
This filter specifies the period of time that we used to generate the statistics accord-
ing to it. We use for this a time range picker. With this filter we can get relevant
statistics about the QoS.
The following figure (fig.4.18) presents the zone filter:
Chapter 4. Project Achievements 62
As mentioned before, we have the information about the devices’ positions. Using
this information, we can locate the probes on the map. The network supervisor can
select a zone area. SMAQ Probes generates the statistics using the devices that are
located in the specified area. This filter allows the network supervisor to evaluate
the QoS in a specified area.
The following figure (fig.4.19) shows the comparison filters.
By clicking the “Compare to” button, an additional filters are shown. Using these
filters, the system generates charts that includes a comparison between two differ-
ent results. This feature gives the possibility to the network supervisor to compare
between different QoS information, this helps him to improve the network quality
of service.
The following screen (fig.4.20) shows a sample of a triggered alert information:
Chapter 4. Project Achievements 63
In the real-time processing, when an alert is triggered, it holds within it the de-
tailed information about the metric value that satisfied the constraint. This feature
helps the network supervisor to get quick information about the broadband network
problems.
The charts that we are using in the dashboard have several advanced options like
data zooming, data visualizing and bar chart support[9]. The following figure
(fig.4.21) is a sample. This figure presents the upload speed metrics values dur-
ing a specified period of time, the upload speed is a metric from the throughput
test:
Chapter 4. Project Achievements 64
4.3 Conclusion
During this chapter, we presented the technologies that were chosen to implement
SMAQ Probes features and we argued that choice for the different components of
the project. We also presented the used frameworks and tools, and we finished by
displaying the main features and interfaces from SMAQ Probes application.
CHAPTER 5
65
Bibliography
66
Bibliography 67
[8] Paraschiv, E. (2019). Using JWT with Spring Security OAuth | Baeldung.
[online] Baeldung. Available at: https://www.baeldung.com/spring-security-
oauth-jwt [Accessed 19 Jun. 2019].