27 research outputs found

    An Architectural-level Exception-handling System For Component-based Applications

    No full text
    Component-based software systems built out of reusable software components are being used in a wide range of applications which have high dependability requirements. In order to accomplish the required levels of dependability, it is necessary to incorporate into these complex systems means for to cope with software faults. Exception handling is a well-known technique for adding forward error recovery to software systems supported by various mainstream programming languages. However, exception handling for component-based applications at the architectural level introduces new challenges which are not addressed by traditional exception handling systems, such as unavailability of source code, specially when off-the-shelf components are employed. In this paper, we present an exception handling system which adds fault tolerance to component-based systems at the architectural level. Our solution considers issues which are specific to component-based applications, such as unavailability of source code. We also present a framework which implements the proposed exception handling system for applications built using the C2 architectural style. © Springer-Verlag Berlin Heidelberg 2003.2847321340Anderson, T., Lee, P.A., (1990) Fault Tolerance: Principles and Practice, 2nd Edition, , Prentice-HallBrown, A.W., Wallnau, K.C., The Current State of CBSE (1998) IEEE Software, 15 (5), pp. 37-46. , IEEE Computer Society PressPaul, C., (1996) Clements and Linda Northrop: Software Architecture: An Executive Overview, , Technical Report CMU/SEI-96-TR-003. Software Engineering Institute, Carnegie Mellon UniversityCook, J.E., Dage, J.A., Highly Reliable Upgrading of Components (1999) Proceedings of the 21st International Conference on Software Engineering, pp. 203-212Cristian, F., Exception Handling (1989) Dependability of Resilient Computers, , T. Anderson (ed.): BSP Professional BooksDashofy, E.M., Medvidovic, N., Taylor, R.N., Using Off-The-Shelf Middleware to Implement Connectors in Distributed Software Architectures (1999) Proceedings of the 21st International Conference on Software Engineering (ICSE '99), pp. 3-12Garcia, A., Beder, D., Rubira, C., An Exception Handling Mechanism for Developing Dependable Object-Oriented Software Based on a Meta-Level Approach (1999) Proceedings of the 10th International Symposium on Software Reliability Engineering - ISSRE'99, pp. 52-61. , IEEE Computer Society PressGarcia, A., Rubira, C., Romanovsky, A., Xu, J., A Comparative Study of Exception Handling Mechanisms for Building Dependable Object-Oriented Software (2001) Journal of Systems and Software, 59 (2), pp. 197-222. , ElsevierGarlan, D., Monroe, R.T., Wile, D., Acme: Architectural Description of Component-Based Systems (2000) Foundations of Component -Based Systems, pp. 47-67. , Gary T. Levens and Murali Sitaraman (eds.): Cambridge University PressGoodenough, J.B., Exception Handling: Issues and a Proposed Notation (1975) Communications of the ACM, 18 (12), pp. 683-696. , ACM Press, New York, NYGosling, J., Joy, B., Steele, G., (1996) The Java Language Specification, , Addison-WesleyGuerra, P., Rubira, C., De Lemos, R., An Idealized Fault-Tolerant Architectural Component (2002) Proceedings of the 24th International Conference on Software Engineering - Workshop on Architecting Dependable SystemsGuerra, P.A.C., Rubira, C.M.F., De Lemos, R., A Fault-Tolerant Architecture for Component-Based Software Systems (2003) Lecture Notes in Computer Science, , R. de Lemos and C. Gracek and A. Romanosvsky (eds.): Architecting Dependable Systems. to appear. Springer-Verlag, Berlin Heidelberg New YorkGuerra, P., Rubira, C., Romanovsky, A., De Lemos, R., Integrating COTS Software Componentes into Dependable Software Architectures (2003) Proceedings of the 6th International Symposium on Object-Oriented Real-Time Distributed Computing, , IEEE Computer Society PressIssarny, V., Banatre, J.P., Architecture-Based Exception Handling (2001) Proceedings of the 34th Annual Hawaii International Conference on System Sciences, , IEEE Society PressKiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Lingtier, J., Irwin, J., Aspect-Oriented Programming (1997) Lecture Notes in Computer Science, 1241. , Proceedings of the European Conference on Object-Oriented Programming. Springer-Verlag, Berlin Heidelberg New YorkKoening, A., Stroustrup, B., Exception Handling for C++ (1990) Jornal of Object-Oriented Programmings, 3 (2), pp. 16-33Lacourte, S., Exceptions in Guide, an Object-Oriented Language for Distributed Applications (1991) Lecture Notes in Computer Science, 512, pp. 268-287. , Springer-Verlag, Berlin Heidelberg New YorkMaes, P., Concepts and Experiments in Computational Reflection (1987) ACM SIGPLAN Notices, 22 (12), pp. 147-155. , ACM PressMedvidovic, N., Oreizy, P., Taylor, R.N., Reuse of Off-the-Shelf Components in C2-Style Architectures (1997) Proceedings of the 1997 Symposium on Software Reusability, pp. 190-198Rakic, M., Medvidovic, N., Increasing the Confidence in Off-the-Shelf Components: A Software Connector-Based Approach (2001) Proceedings of the 2001 Symposium on Software Reusability, pp. 11-18Saridakis, T., Issarny, V., (1999) Fault-Tolerant Software Architectures, , Technical Report 3350. INRIASloman, M., Kramer, J., (1987) Distributed Systems and Computer Networks, , Prentice HallSprott, D., Componentizing the Enterprise Application Packages (2000) Communications of the ACM, 43 (4), pp. 63-69. , ACM Press, New York, NYStavridou, V., Riemenschneider, A., Provably Dependable Software Architectures (1998) Proceedings of the Third ACM SIGPLAN International Software Architecture Workshop, pp. 133-136. , ACM Press(2002) Enterprise Javabeans Specification v2.1, , http://java.sun.com/products/ejb/, Proposed Final DraftTaft, S.T., Duff, R.A., Ada 95 Reference Manual: Language and Standard Libraries, International Standard Iso/Iec 8652:1995(e) (1997) Lecture Notes in Computer Science, 1246. , Springer-Verlag, Berlin Heidelberg New YorkTaylor, R.N., Medvidovic, N., Anderson, K.M., Whitehead Jr., E.J., Robbins, J.E., A Component- and Message- Based Architectural Style for GUI Software (1995) Proceedings of the 17th International Conference on Software Engineering, pp. 295-304ArchStudio 3.0, , http://www.isr.uci.edu/projects/archstudio, Homepag

    Implementing Coordinated Error Recovery for Distributed Object-Oriented Systems with AspectJ

    No full text
    Exception handling is a very popular technique for incorporating fault tolerance into software systems. However, its use for structuring concurrent, distributed systems is hindered by the fact that the exception handling models of many mainstream object-oriented programming languages are sequential. In this paper we present an aspect-based framework for incorporating concurrent exception handling in Java programs. The framework has been implemented in AspectJ, a general purpose aspect-oriented extension to Java. Our main contribution is to show that AspectJ is useful for implementing the concerns related to concurrent exception handling and to provide a useful tool to developers of distributed, concurrent fault-tolerant applications

    Mining the Usage of Reactive Programming APIs: A Study on GitHub and Stack Overflow

    No full text
    Conventionally, callbacks and inversion of control have been the main tools to structure event-driven applications. Sadly, those patterns constitute a well-known source of design problems. The Reactive Programming (RP) paradigm has arisen as an approach to mitigate these problems. Yet, little evidence has been provided regarding the advantages of RP, and concerns have also arisen about the API usability of RP libraries given their disparate number of operators. In this work, we conduct a study on GitHub (GH) and Stack Overflow (SO) and explore three Reactive Extensions (Rx) libraries (RxJava, RxJS, and RxSwift) with the most GH projects to understand how much the vast Rx operators are being used. Also, we examine Rx SO posts to complement the results from the GH exploration by understanding the problems faced by RP developers and how they relate with the operators' frequencies found in open source projects. Results reveal that, in spite of its API size, the great majority of the Rx operators are actually being used (95.2%), with only a few, mostly related to RxJava, not being utilized. Also, we unveil 23 topics from SO with more posts concerning the Stream Abstraction (36.4%). Posts related to Dependency Management, Introductory Questions, and iOS Development figure as relevant topics to the community. The findings herein present can not only stimulate advancements in the field by understanding the usage of RP API and the main problems faced by developers, but also help newcomers in identifying the most important operators and the areas that are the most likely to be relevant for a RP application

    Implementing Coordinated Exception Handling for Distributed Object-Oriented Systems with AspectJ

    No full text
    Abstract. Exception handling is a very popular technique for incorporating fault tolerance into software systems. However, its use for structuring concurrent, distributed systems is hindered by the fact that the exception handling models of many mainstream object-oriented programming languages are sequential. In this paper we present an aspect-based framework for incorporating concurrent exception handling in Java programs. The framework has been implemented in AspectJ, a general purpose aspect-oriented extension to Java. Our main contribution is to show that AspectJ is useful for implementing the concerns related to concurrent exception handling and to provide a useful tool to developers of distributed, concurrent fault-tolerant applications. 1

    Verification of Coordinated Exception Handling

    Get PDF

    Verification of Coordinated Exception Handling

    No full text

    Improving the Reliability of Cooperative Concurrent Systems with Exception Flow Analysis

    Get PDF
    corecore