3 CLOUD-BASED REPORTING
AND DATA VISUALIZATION
This section describes the software platform for the
visualization of plant data and data-models formal-
ized using the BeSpaceD framework.
3.1 eStoRED
eStoRED is an open source data visualization plat-
form for industrial decision support and risk assess-
ment. Its architecture is shown in Figure 1. It en-
ables the joint-visualization of data from various data
sources or workflows. The visualization is realized
using a centralized platform, to make sense of the var-
ious pieces of data as a whole, and to provide a way
of collaboratively telling a meaningful story about
the data. The eStoRED reporting tool offers a way
to connect to data sources, retrieve data and visual-
ize it along with the possibility to attach metadata.
Possible data sources comprise streamed data (such
as sensor data delivered over a network connection),
web-services, relational databases and file systems. In
eStoRED, users can add their own analysis and risk
definition assessment, thereby enriching and adding
value to the data displayed. This allows building data-
backed comprehensive reports. The eStoRED system
can handle static data extracted from files or databases
as well as live data – such as data coming from sen-
sors – given that there exist a connector to the data
source.
3.2 Architecture
In eStoRED, the main entities created by users are
called Stories. Stories contain different Elements:
Data Elements are the connected elements visualiz-
ing data, Input Elements are the analysis parts written
by the users. At its core, the eStoRED platform is
composed of a web application backed by a relational
database, a message broker and a repository of snip-
pets of code for visualizing data, called Vislets. We
describe eStoRED’s components and how they inter-
act together:
• On one end, the data sources are the processes, ap-
plications and systems that produce the data. They
publish data into messages handled by a publish /
subscribe system that orchestrates and distributes
messages to the processes that have subscribed.
The third-party system chosen for this role is Rab-
bitMQ
2
, an open-source, secure, robust and scal-
2
https://www.rabbitmq.com
able system for software messaging, using the
AMQP protocol
3
.
• The Java web application is using the Spring
MVC framework, Hibernate ORM to map its data
model to a MySQL database storing the internal
eStoRED data (Stories, Data Elements, Input El-
ements, etc.). When working on a Story, a user
can create Data Elements and define one or more
Subscriptions for each of them.
• A Subscription is composed of a subscription ex-
pression, the expected format of the data to be re-
ceived and the snippet of code, called Vislet that
will handle and visualize the data once it is re-
ceived. eStoRED is connected via a REST API
to a curated repository of Vislets and can filter
them according to some metadata attached to each
Vislet. The eStoRED graphical user interface au-
tomatically filters the Vislets to only show those
that can handle the expected data format.
• The topic subscription mechanism of RabbitMQ
is used for subscribing. The mechanism uses rout-
ing keys to match publishers and subscribers. The
subscription expression defined in eStoRED is
used as the RabbitMQ routing key, a sequence of
characters up to 255 bytes, defining dot-separated
words and allowing the wildcards characters *
(star) substituting for exactly one word and #
(hash) substituting for zero or more words. This
enables a powerful and flexible mechanism to
easily create subscription expressions spanning
a wide range of data sources. For example:
australia.2016.rainfall, australia.2016.*, #.rain-
fall are valid routing keys.
Data sources can also use this mechanism to sub-
scribe to each other via the messaging system, and
this way create data workflows. This is illustrated at
the bottom of Figure 1 where Data Source #3 is sub-
scribed to Data Source #2, and Data Source #4 is sub-
scribed to Data Source #3.
Once Data Elements have been defined, when-
ever a Story is loaded, the following steps happen,
as shown in Figure 1 : 1. eStoRED retrieves the
Story and the Data Elements it contains. 2. It con-
nects to the Vislet repository and retrieves the Vislets
defined in the Subscriptions of each Data Element.
3. The web application then generates a web page
where the Vislets are included. 4. On the web page,
a JavaScript client for RabbitMQ is executed directly
into the client’s web browser to subscribe to the ex-
pression. 5. When a Data source publishes a message,
if a Data Element is subscribed to it, the message bro-
ker passes it on, and the Vislet code is called to in-
3
https://www.amqp.org/
ENASE 2017 - 12th International Conference on Evaluation of Novel Approaches to Software Engineering
40