configuration is widely known as LAMP-bundle and
was chosen due to two criteria: proven system
stability and zero cost.
We propose a model sufficiently general to
accommodate any kind of network whose nodes may
be associated with statistical measures. Another
feature present in our model is portability, allowing
it to be easily migrated to different platforms with
low production costs. That is why we chose PHP, an
interpreted language, and MySQL. PHP also has the
advantages of strong scalability capacities and a
large set of libraries that allow the programmer to
perform many complex tasks without having to
rewrite code for them. Furthermore it can run both
as a server-side application and as a command-line
interface (CLI) application which allows the
implementation of all systems services in PHP. In
fact, the data parsers, the data import-mechanism,
the calculus engine used by the processing services
and all the web content generation code were coded
using PHP. The fact of having only one
programming language in the system also benefits
code maintenance.
Parsers convert statistical data received from
nodes – via the OSS – in a convenient and
meaningful format for the system. We chose this
data format as Delimiter-Separated Values (DSV)
because it is well suited to be imported in MySQL
database systems. For convenience, these parsers
output files whose name identify the node that
produces the data, the raw data type name and the
date of collection. The parsing process is based on
regular expressions matching,
After the parsing process, the output data is
stored in the database. For this we wrote a script that
reads the processed data files and tries to match its
meta-information (file name and headers, if
applicable) with the raw data descriptors stored in
the database. When a match is found, the data is
retrieved from that file, line by line, and written on
the corresponding database table.
These parsing and import processes were
scheduled as cron jobs. Cron is a time-based
scheduler application found on Unix-like systems.
Since these might be resource-consuming activities
they were scheduled to run on an off-peak hour (3
A.M.).
After storage is completed, another cron job
executes the processing services. These were
implemented as a software engine with the ability to
perform mathematical calculus operations. For this
purpose we chose a very useful PHP function:
eval(). This function receives a string parameter
and evaluates it as if it was code. It is useful for
situations where one wants to store code on a
database and execute it later on, which is exactly the
case we are interested in. The processing service
retrieves the KPI formulas on the descriptor table of
the database and evaluates them, for the different
raw data samples, using the eval() function.
After evaluation the results are again stored on the
appropriate KPI tables on the database.
Presentation services are also considered core
services because this system is user-oriented, so the
interface between the data and the user plays a
crucial role in the system. These services were
implemented as a web-site where the user can
request information on several KPIs. A plot for a
given KPI, a set of nodes and date interval was one
of the implemented services. This service allows a
user to follow the variation of a given KPI. To
generate the plots we have used a PHP library
named ‘jpgraph’, which is also open-source. Other
services were also implemented by operator request.
Configuration services were also implemented as
services running on a web-site. Using Hypertext
Mark-up Language (HTML) forms it is possible to
obtain a clear and intuitive way of configuring all
the system’s parameters regarding its management.
4 RESULTS AND DISCUSSION
For illustrating the results obtained with our system
we present in figures 4 and 5 the results produced by
a KPI named “CP LOAD”. This shows the CPU
load of a MSC node and it is evaluated with the
following formula:
CP_LOAD = ACCLOAD / NSCANS (1)
Where ACCLOAD is the accumulated processor
load in percentage and NSCANS is the number of
accumulations. These fields were implemented as
counters on the raw data object that comes from that
node.
In figure 4 we present the figure obtained for the
evolution of KPI “CP LOAD” on a
MSC located at
Luanda, Angola, between 15th and 28th December
2006. It is possible to see a recurring pattern every
couple of days, as well as to determine the lower and
higher mean value intervals. The x-axis represents
time and the y-axis the KPI’s percentual value.
As we can observe in Figure 4, there was no data
for 18
th
December and also between 23
rd
and 24
th
December.
Figure 5 shows a different view for the same KPI
and a given date, Christmas Day on 2006, now
concerning two different MSCs located at Luanda
and Benguela, Angola. This figure clearly shows the
traffic evolution on that day, making it easy to figure
out its busy-hour.
WINSYS 2007 - International Conference on Wireless Information Networks and Systems
244