-
Notifications
You must be signed in to change notification settings - Fork 0
/
system_description.tex
62 lines (57 loc) · 3.77 KB
/
system_description.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
The system consists of three logically separate components as illustrated in
Figure~\ref{fig:system_overview}; 1) the acquisition component where all
communication with equipment and acquisition of data is performed, 2) the server
component which consists of a database server that stores the acquired data from
experiments and the Apache webserver which interacts and presents the retrieved
data from the database to the user, and 3) the user side
which consists of the clients wishing to access the data.
\begin{figure}
\begin{center}
\includegraphics[width=10cm]{system_overview.png}
\caption{ A schematic representation of the structure of the data handling
system. Structurally, the system can be divided into three subparts. The
acquisition side where data is acquired, the server side where data is
stored and retrieved and the user side where users interact with the system.
\label{fig:system_overview}
}
\end{center}
\end{figure}
The system is highly flexible and modular meaning that the servers can accept
data from a range of different sources and that each server function can be
accessed individually. The user can furthermore use programs written in a wide
variety of languages and is only limited by the chosen language's ability to
interface to relational databases. As a testimony to this, software written in
both LabVIEW and Python\cite{python} are currently used to save data to the
database. How the integration with the server and subsequent storage of data in
the database is performed is hence a user determined design decision. This has
a number of advantages. The user can integrate existing software with the
databases quickly and without the need to rewrite any previous interface
software written for experimental setups. Furthermore, due to the flexibility
of the system, if storage in the database during acquisition is not possible
due to software limitations the data can still be saved in the database by
subsequent parsing of data files. This, however, still requires that the file
format, which holds the data, is specified or the data can be exported to a
flat text format from the acquisition software.
The servers consist of a database server and a web server. In our specific
implementation a MySQL database has been chosen. All experimental data acquired
by the user is stored in the MySQL database and is presented to the user from
the web server. If needed, experimental data from the MySQL server can be
retrieved directly from the database by user written scripts for later
analysis. The web server runs a LAMP (Linux, Apache, MySQL, PHP/Python)
stack. Python, PHP and HTML/CSS is used to extract data from the database
and present them to the end user in a simple interactive web interface for
visualization and simple data treatment. Python was primarily chosen due
to its tight integration with scientific packages, such as SciPy and NumPy,
which makes data analysis and treatment more convenient\cite{Cahn2007}. PHP and
HTML/CSS is used to display data in standardized formats suitable for web
browsers and process input from the user. The combination of PHP and HTML/CSS
to process user input from web pages is very flexible and has proven successful
in other parts of the scientific community\cite{Crane2008}. To accommodate a
range of users and provide the largest flexibility the web server displays both
a standard HTML/CSS site for desktop PCs and a mobile version suitable for
tablet/smartphone users.
%The web interface, which takes user input and displays data to the user, is also
%capable of routine data treatment. This can either be zoom of data, plotting on
%a log scale, performing a running average, etc. The data treatment is easily
%extendable allowing the user to add any function necessary. In this way the
%user can easily and quickly get an overview of acquired data.