INVITED SPEAKER
Prof.
Christophe Dony
LIRMM - CNRS and Montpellier-II University
Montpellier, France
Christophe
Dony is a Professor at the Montpellier-II University and is
member of the LIRMM research laboratory (http://www.lirmm.fr). He
received a Ph.D. degree in Computer Science from Paris-VI University
and LITP laboratory in 1989. He worked from 1989 to 1992 in the
Xerox-France research laboratoty. He joined the Montpellier-II
University in 1992 and received a "Research Direction Habilitation"
degree in Computer Science in 1998. He became full professor in
2002. Christophe Dony has worked and published, within several
national and international collaborations, on various aspects of
object-based and component-based software engineering : exception
handing, classless object-oriented languages, reuse and sharing,
programming assistance, component-based architectures and programming
languages. He has directed 8 defended phd thesis and 30 master
thesis. He has been PC member of various conferences in the OO field
including ECOOP, MODELS, LMO. Concerning exception handling and
fault-tolerance, he has specified systems for various kind of
object-oriented and agent-based languages, with a special focus on
highly interactive and reflective ones. He has co-organized five
workshops on this subject as joint events of ECOOP and FSE conferences
(91, 2000, 2003, 2005, 2008) and has co-edited in 2001 and 2006 two
related LNCS collections. He currently works on exception handling
for asynchronous components and on the combination of exception
handling and replication for software fault tolerance.
Opening Talk
Title: On
challenges and evolutions for exception handling
Software
developers face a number of challenges related to exception handling by
first having to take into account advances in new technologies such as
agents, components [1], services, ambient programming [2], pervasive
programming [3], product lines programming [4] etc. They also have the
challenging task to deal with exception handling strategies
in a multi-dimensional context that include :
• the life cycle dimension [5] : exceptions strategies have to be specified, designed, programmed, tested and updated
•
the structural dimension of applications architectures [3] : exceptions
strategies should be detailed not only at the programs blocks level but
also at the class, module, package, system level. It should be possible
to design strategies at different conceptual levels.
•
the dimension of coordination for fault-tolerance : exception handling
strategies should be compatible and behave correctly in presence of
other companion techniques for software reliability such as for example
the different forms of redundancy.
These
challenges are compounded by an global conjunctural issue, if on the
one hand there is a global agreement for what concerns programming
languages primitives for exception handling [6], one the other hand
there is a crucial lack of standards[7] for what concerns:
(1)
the terminology: the following terms, exception, error, failure,
condition, alarm, etc, used in our domain papers denote either the same
thing or subtly different things,
(2)
the classification of exceptions kinds : early terms such as ”domain”,
”range” or ”monitoring” exceptions introduced by Goodenough’s seminal
paper are not standardized and almost each new system provides its own
classification,
(3)
the common patterns to handle exceptions or to write fault-tolerant or
defensive programs. Research results on exception handling are only
very partially integrated into mainframe software programming
environments and languages (for example, UML and Java). Today’s
developers using these systems do not benefit from known results, they
frequently reinvent existing solutions or make well-known mistakes.
We will globally discuss the above challenges and issues while presenting two systems.
The
first system [8] is dedicated to all kind of autonomous software agents
communicating with each other asynchronously, such agent subsume
autonomous distributed components and services and raise various issues
common to new development paradigms : preserving agent autonomy,
taking into account collaborative concurrent activities, providing
mechanisms for their coordination, and handling concurrent exceptions,
signaling and researching handlers asynchronously [9], and executing
handlers in the correct definition context.
The
second system [10] addresses the coordination dimension; it proposes a
specification and an implementation of a combination of two independent
but complementary mechanisms : exception handling and replication. The
main advantages of this combination are: to provide agent programmers
with an exception handling system that behaves correctly in presence of
seamless active replication, to improve replication strategies, on the
base of information conveyed while propagating exceptions from
replicas. It also offer new solutions to implement the forgotten
resumption strategy by providing active copies of the computation state.
REFERENCES
[1]
C. M. F. Rubira, R. de Lemos, G. R. M. Ferreira, and F. C. Filho,
“Exception handling in the development of dependable component-based
systems,” Softw., Pract. Exper., vol. 35, no. 3, pp. 195–236, 2005.
[2]
J. Dedecker, T. V. Cutsem, S. Mostinckx, T. D’Hondt, and W. D. Meuter,
“Ambient-oriented programming in ambienttalk,” in ECOOP, ser. Lecture
Notes in Computer Science, D. Thomas, Ed., vol. 4067. Springer, 2006,
pp. 230–254.
[3]
J. Mercadal, Q. Enard, C. Consel, and N. Loriant, “A domain specific
approach to architecturing error handling in pervasive computing,” in
OOPSLA, W. R. Cook, S. Clarke, and M. C. Rinard, Eds. ACM, 2010, pp.
47–61.
[4]
L. P. Tizzei, M. O. Dias, C. M. F. Rubira, A. Garcia, and J. Lee,
“Components meet aspects: Assessing design stability of a software
product line,” Information & Software Technology, vol. 53, no. 2,
pp. 121–136, 2011.
[5]
R. de Lemos and A. B. Romanovsky, “Exception handling in the software
lifecycle,” Comput. Syst. Sci. Eng., vol. 16, no. 2, pp. 119–133, 2001.
[6]
A. F. Garcia, C. M. F. Rubira, A. B. Romanovsky, and J. Xu, “A
comparative study of exception handling mechanisms for building
dependable object-oriented software,” Journal of Systems and Software,
vol. 59, no. 2, pp. 197–222, 2001.
[7]
A. Romanovsky, C. Dony, J. L. Knudsen, A. Tripathi, “Workshop reader :
Exception hanling, towards emerging application areas and new
programming paradigms,” in Object-Oriented Technology, ECOOP 2003
Workshop Reader, F. Buschmann, A. P. Buchmann, Ed. LNCS, 2004, no.
3013, pp. 1–10.
[8]
C. Dony, C. Urtado, and S. Vauttier, “Exception handling and
asynchronous active objects: Issues and proposal,” in Advanced Topics
in Exception Handling Techniques, ser. LNCS, vol. 4119, C. Dony, J.
Knudsen, A. Romanovsky, and A. Tripathi, Eds. Springer, 2006, ch. 5,
pp. 81–101.
[9]
R. Krischer, “Advanced concepts in asynchronous exception handling,”
Ph.D. dissertation, University of Waterloo, Canada, 2010.
[10]
C. Dony, C. Tibermacine, C. Urtado, and S. Vauttier, “Specification of
an exception handling system for a replicated agent environment,” in
Proceedings of WEH ’08, the 4th international workshop on Exception
handling - Atlanta, Georgia. ACM, 2008, pp. 24–31.
|