Node 1
AppManager
Node 2
Storage
Node 3
Module W
Node 4
Module X
Node 5
Module Y
Node 6
Module Z
Gridlink
Figure 5: The current solution with one module per JVM/node.
choices of this software will be highlighted, to better
understand the later proposed solution.
Start-Up During the AppManager start-up, all
Gridlink modules in its managed directory are star-
ted – currently as a new Java process (cf., Figure 5).
These modules are then considered to be managed by
the AppManager.
Remote Installation After receiving an installation
command from the remote site and the respective do-
wnload of the new application, the content of the ar-
chive is extracted and started.
Configuration Change Configuration changes are
done directly on file system level. A new configu-
ration parameter value is written to the configuration
file of the corresponding module which is automati-
cally notified.
Remote Uninstallation When a module shall be re-
moved, the AppManager sends a shutdown request
to the module and waits for the module to disappear
from the Gridlink Registry. On success, the module’s
directory is deleted from the file system. Otherwise,
the AppManager can be requested to kill the process
over its remote link.
3 OPTIMIZATION
The modularity of the approach requires running a
high number of various modules for small indepen-
dent tasks simultaneously. Previously, one Gridlink
node executed exactly one module (cf., Figure 5), i.e.
the AppManager initializes a new process for each
module it is managing, introducing a high overhead
in terms of main memory consumption. In conse-
quence, the number of required modules for a typical
Smart Grid use case is typically higher than the RAM-
constrained devices can host simultaneously, before
undesirable effects like trashing occur. The iSSN use
case (cf., (Cejka et al., 2016)), currently consisting
of seven modules being executed concurrently on the
same machine (cf., Figure 6), requires already more
than 800 MB of main memory, not available on the
target hardware platform. Furthermore, additional
modules are currently in development. Thus, a me-
chanism to execute multiple Gridlink modules in one
node and thus in one JVM process had to be develo-
ped (”scale up”). The proposed extensions shall ho-
wever not invalidate any of the Gridlink functions. It
shall be possible to run all modules as previously in-
tended, therefore decisions like the start-up of modu-
les, communication etc., should remain.
AppManager
Storage
Data Generator
Voltage
Problem Handler
Voltage Guard
OLTC
Controller
Dashboard
Interface
Gridlink
XMPP REST
Figure 6: iSSN use case scenario (Cejka et al., 2016).
To solve the described problem of excessive me-
mory consumption, a new Gridlink module – the
NodeManager – is proposed. It introduces the abi-
lity of managing multiple modules on the same node,
and thus, in the same JVM instance (Figure 7). To
avoid ambiguous use of the term ”managed”, we will
now distinguish between app-managed for manage-
ment by the AppManager, and node-managed for ma-
nagement by the NodeManager, respectively. The-
refore, the NodeManager is responsible for the mo-
dule’s start-up, provides a command line interface
to node-managed modules, and is able to undeploy
them. The process of application provisioning is nota-
bly influenced by the introduction of a NodeManager:
Start-Up The AppManager was introduced as an
unmanaged module (Cejka et al., 2016). However,
besides installing it on its own node (cf., Node 1 in
Figure 5), the AppManager now can – just like any
other module – be started parallel to and by a Node-
Manager – as a node-managed module (cf., Node 1 in
Figure 7). As in the old setup, all Gridlink modules in
the AppManager ’s managed folder are started during
its start-up by creating a new JVM process, including
a NodeManager module if it is contained in this folder
(cf., NodeManager on Node 2 in Figure 7). No spe-
cial handling is necessary, as the NodeManager com-
plies with the module structure conventions. On the
NodeManagers start-up, all Gridlink modules nested
inside its own managed subfolder are started within
the NodeManagers node/process (cf., the remaining
IoTBDS 2017 - 2nd International Conference on Internet of Things, Big Data and Security
334