ladc








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.