Exception handling in component-based system development

Designers of component-based software face two problems related to dealing with abnormal events: developing exception handling at the level of the integrated system and accommodating (and adjusting, if necessary) exceptions and exception handling provided by individual components. Our intention is to develop an exception handling framework suitable for component-based system development by applying general exception handling mechanisms which have been proposed and successfully used in concurrent/distributed systems and in programming languages. The framework is applied in three steps. Firstly, individual components are wrapped in such a way that the wrappers perform activity related to local error detection and exception handling, and signal, if necessary, external exceptions outside the component. At the second step the execution of the overall system is structured as a set of dynamic actions in which components take parts. Such actions have important properties which facilitate exception handling: they are atomic, contain erroneous information and serve as recovery regions. The last step is designing exception handling at the action level: each action (i.e. all components participating in it) handles exceptions signalled by individual wrapped components.

[1]  Brian Randell,et al.  Error recovery in asynchronous systems , 1986, IEEE Transactions on Software Engineering.

[2]  Jean Arlat,et al.  Can we rely on COTS microkernels for building fault-tolerant systems? , 1997, Proceedings of the Sixth IEEE Computer Society Workshop on Future Trends of Distributed Computing Systems.

[3]  Flaviu Cristian,et al.  Exception Handling and Tolerance of Software Faults , 1995 .

[4]  Dewayne E. Perry The inscape environment , 1989, ICSE '89.

[5]  Cecília M. F. Rubira,et al.  Fault tolerance in concurrent object-oriented software through coordinated error recovery , 1995, Twenty-Fifth International Symposium on Fault-Tolerant Computing. Digest of Papers.

[6]  Philip Koopman,et al.  The Exception Handling Effectiveness of POSIX Operating Systems , 2000, IEEE Trans. Software Eng..

[7]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[8]  K. Miller,et al.  Interface robustness for COTS-based systems , 1997 .

[9]  Jörg Kienzle,et al.  Action-Oriented Exception Handling in Cooperative and Competitive Concurrent Object-Oriented Systems , 2000, Advances in Exception Handling Techniques.

[10]  Chrysanthos Dellarocas Toward Exception Handling Infrastructures for Component-Based Software , 2000 .

[11]  Cecília M. F. Rubira,et al.  On applying coordinated atomic actions and dependable software architectures for developing complex systems , 2001, Fourth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISORC 2001.

[12]  Brian Randell,et al.  System structure for software fault tolerance , 1975, IEEE Transactions on Software Engineering.

[13]  Santiago Comella-Dorda,et al.  Volume II: Technical Concepts of Component-Based Software Engineering , 2000 .

[14]  Michael Sparling,et al.  Lessons learned through six years of component-based development , 2000, CACM.

[15]  John McHugh,et al.  Architectural Approaches to Information Survivability , 1997 .

[16]  Avelino Francisco Zorzo,et al.  On distribution of coordinated atomic actions , 1997, OPSR.

[17]  Henrik Fredholm,et al.  Adapting C++ Exception Handling to an Extended COM Exception Model , 2000, Advances in Exception Handling Techniques.

[18]  Jörg Kienzle,et al.  Action-Oriented Exception Handling in Cooperative and Competitive Object-Oriented Systems , 2001 .

[19]  Jie Xu,et al.  Coordinated exception handling in distributed object systems: from model to system implementation , 1998, Proceedings. 18th International Conference on Distributed Computing Systems (Cat. No.98CB36183).

[20]  Len Bass,et al.  Technical Concepts of Component-Based Software Engineering, Volume 2 , 2000 .