5.2.6 Inter-processes Communication
Inter-processes communication relies on RMI (Java
Remote Method Invocation). RMI interfaces remain
quite simple and are basically commands and control
functions and notifications.
The most complex interface is the one dedicated
to the telemetry decommutation. A distributed
callback pattern is used to avoid blocking on the
decommutation request. Data are returned to the
caller at the end of the decommutation as a
structured collection of proxies on the actual
telemetry data that are stored in the physical
telemetry cache by the PU.
Statistics and processing data are directly stored
in the database as there is no need to put a middle
tier for this that would just have added additional
delay to store data.
The PUs regularly send load information to the
schedulers so that they can select the best PU for
starting a new activity. As we have already
mentioned, time-out are used to detect PU
malfunctioning and to possibly restart the
applications started on such a PU on another one.
5.3 System Deployment
TELMA deployment is very versatile. Everything
can fit on one single server if a small system is
required for one satellite, or tens of PCs and several
servers can be used for an operator that has to
manage a large fleet of satellites. Scalability is
possible at different level. First of all for processing
units that form the active part of TELMA. Secondly,
Schedulers can be added to support very large
schedules. In addition to this, several Tomcat servers
can be used with load balancing.
The current platform is based on 4 servers connected
to a SAN, 15 PC and manages data produced by 32
satellites.
6 LESSONS LEARNT
One of the main issues in web-based graphical user
interfaces development for an application that has to
be maintained during years is the proliferation of
tools, technologies, libraries and languages,
questionable maturity and severe long-term
maintenance issues. Developing everything with
basic components can be expensive, especially
building advanced interactive components. Using a
third party library or toolkit can be a good solution
but the durability of the solution shall be questioned.
Some technologies or toolkits analysed at the very
beginning of the project have already disappeared!
In addition, we encountered several robustness
issues due to third party software. Especially we ran
into some crashes of the Java Virtual Machine with
weird “out of swap space” errors although we had a
lot of free memory. Most of the issues were solved
by upgrading the faulty software with more recent
versions.
7 CURRENT STATUS AND
PERSPECTIVES
The current version of TELMA is used every day on
Astrium fleet. Performance is correct as well as
robustness.
Several improvements are already planned from
details adjustments to major evolutions. Among
these major evolutions, we can quote:
The implementation of a graphical user interface
for monitoring and processing definition based
on a graphical representation of algorithms.
Near real time monitoring in order to perform
monitoring and processing activities on the last x
minutes of telemetry.
The split of other types of requests that would
speed-up reprocessing on long periods.
ACKNOWLEDGEMENTS
The authors would like to thank Astrium IOS team
for its fruitful collaboration in the definition of
TELMA and its involvement for improving this
product.
REFERENCES
Adobe Flex, accessed 2010, adobe.com/products/flex/.
Apache Software Foundation, accessed 2010, The
Apache Tomcat 5.5 Servlet/JSP Container,
tomcat.apache.org/tomcat-5.5-doc/index.html.
Berstis, V., 2002. Fundamentals of Grid Computing,
IBM Red Books.
Dojo Toolkit Community, accessed 2010, Dojo Toolkit
Reference Guide, dojotoolkit.org/reference-guide/.
Eadline, D., The State of Oracle/Sun Grid Engine, Sept.
2010, Linux Magazine.
Schmidt, D.C., Stal, M., Rohnert, H., Buschmann, F.,
Pattern-Oriented Software Architecture: Patterns for
Concurrent and Networked Objects, 2000, Wiley &
Sons.
ICSOFT 2011 - 6th International Conference on Software and Data Technologies
202