Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

A Formal Approach to implement java exceptions in cooperative systems

Published: 01 September 2017 Publication History

Abstract

The CAA model coordinates recovering of cooperative systems exceptional behaviors.A Java framework that helps the implementation of CAA model is presented.CAA properties about system exceptional behavior were defined in JPF model checker.Using the framework we can write Java code following the CAA model in a simple way.Checking the CAA properties with JPF in that Java code can assure its correctness. The increasing number of systems that work on the top of cooperating elements have required new techniques to control cooperation on both normal and abnormal behaviors of systems. The controllability of the normal behaviors has received more attention because they are concerned with the users expectations, while for the abnormal behaviors it is left to designers and programmers. However, for cooperative systems, the abnormal behaviors, mostly represented by exceptions at programming level, become an important issue in software development because they can affect the overall system behavior. If an exception is raised and not handled accordingly, the system may collapse. To avoid such situation, certain concepts and models have been proposed to coordinate propagation and recovering of exceptional behaviors, including the Coordinated Atomic Actions (CAA). Regardless of the effort in creating these conceptual models, an actual implementation of them in real systems is not very straightforward.This article provides a reliable framework for the implementation of Java exceptions propagation and recovery using CAA concepts. To do this, a Java framework (based on a formal specification) is presented, together with a set of properties to be preserved and proved with the Java Pathfinder (JPF) model checker. In practice, to develop new systems based on the given coordination concepts, designers/programmers can instantiate the framework to implement the exceptional behavior and then verify the correctness of the resulting code using JPF. Therefore, by using the framework, designers/programmers can reuse the provided CAA implementation and instantiate fault-tolerant Java systems.

References

[1]
F. Anwer, M. Nazir, K. Mustafa, Automatic testing of inconsistency caused by improper error handling: A safety and security perspective, ACM, New York, NY, USA, 2014.
[2]
B. Arief, A. Iliasov, A. Romanovsky, On using the CAMA framework for developing open mobile fault tolerant agent systems, ACM, New York, NY, USA, 2006.
[3]
D.M. Beder, A. Romanovsky, B. Randell, C.R. Snow, R.J. Stroud, An application of fault tolerance patterns and coordinated atomic actions to a problem in railway scheduling, SIGOPS Oper. Syst. Rev., 34 (2000) 21-31.
[4]
Board, I., 2012. Ariane 5 flight 501 failure. http://sunnyday.mit.edu/accidents/Ariane5accidentreport.html. Last access: Nov. (Jul 1996).
[5]
U. Cabello, J. Rodriguez, A. Meneses, S. Mendoza, D. Decouchant, Fault tolerance in heterogeneous multi-cluster systems through a task migration mechanism, 2014.
[6]
B. Cabral, P. Marques, A transactional model for automatic exception handling, Comput. Lang. Syst. Struct., 37 (2011) 43-61.
[7]
R.H. Campbell, B. Randell, Error recovery in asynchronous systems, IEEE Trans. Softw. Eng., 12 (1986) 811-826.
[8]
A. Capozucca, N. Guelfi, Designing reliable real-time concurrent object-oriented software systems, ACM, New York, NY, USA, 2009.
[9]
A. Capozucca, N. Guelfi, P. Pelliccione, The fault-tolerant insulin pump therapy, 2005.
[10]
A. Capozucca, N. Guelfi, P. Pelliccione, A. Romanovsky, A. Zorzo, CAA-DRIP: a framework for implementing coordinated atomic actions, IEEE Computer Society, Washington, DC, USA, 2006.
[11]
A. Coronato, G. De Pietro, Formal design and implementation of constraints in software components, Adv. Eng. Software, 41 (2010) 737-747.
[12]
F. Cristian, Exception handling and software fault tolerance, IEEE Trans. Comput., 31 (1982) 531-540.
[13]
Doshi, G., 2012. Best practices for exception handling. http://onjava.com/onjava/2003/11/19/exceptions.html. Last access: Nov.
[14]
N. Faci, Z. Guessoum, O. Marin, Dimax: a fault-tolerant multi-agent platform, ACM, New York, NY, USA, 2006.
[15]
FDR2, 2012. FDR2 user manual. http://www.fsel.com/documentation/fdr2/html/index.html. Last access: Nov.
[16]
B. Gallina, N. Guelfi, A. Romanovsky, Coordinated atomic actions for dependable distributed systems: the current state in concepts, semantics and verification means, IEEE Computer Society, Washington, DC, USA, 2007.
[17]
J. Gray, A. Reuter, Transaction Processing: Concepts and Techniques, Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 1992.
[18]
S. Hanazumi, University of So Paulo, So Paulo, Brazil, 2010.
[19]
S. Hanazumi, A.C.V. de Melo, Coordinating exceptions of java systems: Implementation and formal verification, IEEE Computer Society, Washington, DC, USA, 2012.
[20]
S. Hanazumi, A.C.V. de Melo, C.S. Pasareanu, From test purposes to formal JPF properties, ACM SIGSOFT Software Eng. Notes, 40 (2015) 1-5.
[21]
H. Jonkers, M. Lankhorst, R.V. Buuren, S. Hoppenbrouwers, M. Bonsangue, L.V.D. Torre, Concepts for modeling enterprise architectures, Int. J. Cooperative Inf. Syst., 13 (2004) 257-287.
[22]
S. Kumar, P.R. Cohen, Towards a fault-tolerant multi-agent system architecture, ACM, New York, NY, USA, 2000.
[23]
H.F. Li, Z. Wei, D. Goswami, Quasi-atomic recovery for distributed agents, Parallel Comput., 32 (2006) 733-758.
[24]
A. Longshaw, E. Woods, Patterns for generation, handling and management of errors, 2004.
[25]
McCune, T., 2006. Exception-handling antipatterns. http://today.java.net/pub/a/today/2006/04/06/exception-handling-antipatterns.html.
[26]
A. Mohamed, M. Zulkernine, A taxonomy of software architecture-based reliability efforts, ACM, New York, NY, USA, 2010.
[27]
Y. Ni, Y. Fan, Model transformation and formal verification for semantic web services composition, Adv. Eng. Software, 41 (2010) 879-885.
[28]
M.P. Papazoglou, P. Traverso, S. Dustdar, F. Leymann, Service-oriented computing: a research roadmap, Int. J. Cooperative Inf. Syst., 17 (2008) 223-255.
[29]
T. Park, H.Y. Yeom, Application controlled checkpointing coordination for fault-tolerant distributed computing systems, Parallel Computing, 26 (2000) 467-482.
[30]
Patterns, E., 2012. Exception patterns. http://c2.com/cgi/wiki?ExceptionPatterns. Last access: Nov.
[31]
D.P. Pereira, A.C.V. de Melo, Formalization of an architectural model for exception handling coordination based on CA action concepts, Sci. Comput. Program., 75 (2010) 333-349.
[32]
B. Randell, System structure for software fault tolerance, ACM, New York, NY, USA, 1975.
[33]
Randell, B., Romanovsky, A., Stroud, R. J., Xu, J., Zorzo, A. F., Schwier, D., von Henke, F., 1998. Coordinated atomic actions: Formal model, case study and system implementation. Tech. rep.
[34]
B. Randell, J. Xu, The evolution of the recovery block concept, John Wiley & Sons Ltd, 1994.
[35]
C. Scholliers, D. Harnie, E. Tanter, W. De Meuter, T. DHondt, Ambient contracts: verifying and enforcing ambient object compositions la carte, Pers. Ubiquitous Comput., 15 (2011) 341-351.
[36]
SPF, 2012. http://babelfish.arc.nasa.gov/trac/jpf/wiki/projects/jpf-symbc. Last access: Nov.
[37]
S.D. Stoller, F.B. Schneider, Automated analysis of fault-tolerance in distributed systems, Form. Methods Syst. Des., 26 (2005) 183-196.
[38]
F. Tartanoglu, V. Issarny, A. Romanovsky, N. Levy, F. Tartanoglu, V. Issarny, Coordinated forward error recovery for composite web services, 2003.
[39]
Tartanoglu, F., Levy, N., Issarny, V., Romanovsky, A., 2004. Using the b method for the formalization of coordinated atomicactions. Tech. rep.
[40]
Team, J. P., 2012. Java pathfinder. http://babelfish.arc.nasa.gov/trac/jpf/. Last access: Nov.
[41]
Ujma, M., Shafiei, N.,. jpf-concurrent: An extension of java pathfinder for java.util.concurrent. The Computing Research Repository (CoRR) abs/1205.0042.
[42]
S. Veloudis, N. Nissanke, Modelling coordinated atomic actions in timed CSP, Springer-Verlag, London, UK, 2000.
[43]
Z. Wang, N. Minsky, Fault tolerance in heterogeneous distributed systems, 2014.
[44]
R.J. Wirfs-Brock, Toward exception-handling best practices and patterns, IEEE Softw., 23 (2006) 11-13.
[45]
K.S. Xavier, S. Hanazumi, A.C.V. de Melo, Using formal verification to reduce test space of fault-tolerant programs, IEEE Computer Society, Washington, DC, USA, 2008.
[46]
J. Xu, B. Randell, A. Romanovsky, C. Rubira, R. Stroud, Z. Wu, Fault tolerance in concurrent object-oriented software through coordinated error recovery, FTCS 95: Proc. Twenty-Fifth Int. Symposium on Fault-Tolerant Comput., 0 (1995) 0499.
[47]
J. Xu, A. Romanovsky, B. Randell, Coordinated exception handling in distributed object systems: From model to system implementation, IEEE Computer Society, Washington, DC, USA, 1998.
[48]
A.F. Zorzo, R.J. Stroud, A distributed object-oriented framework for dependable multiparty interactions, ACM, New York, NY, USA, 1999.
  1. A Formal Approach to implement java exceptions in cooperative systems

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image Journal of Systems and Software
    Journal of Systems and Software  Volume 131, Issue C
    September 2017
    569 pages

    Publisher

    Elsevier Science Inc.

    United States

    Publication History

    Published: 01 September 2017

    Author Tags

    1. Coordinated atomic actions model
    2. concurrent exception handling
    3. java framework
    4. program verification

    Qualifiers

    • Research-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • 0
      Total Citations
    • 0
      Total Downloads
    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 24 Nov 2024

    Other Metrics

    Citations

    View Options

    View options

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media