Transaction Support for Ada

  • Jörg Kienzle
  • Ricardo Jiménez-Peris
  • Alexander Romanovsky
  • M. Patiño Martinez
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2043)


This paper describes the transaction support framework OPTIMA and its implementation for Ada 95. First, a transaction model that fits concurrent programming languages is presented. Then the design of the framework is given. Applications from many different domains can benefit from using transactions; it is therefore important to provide means to customize the framework depending on the application requirements. This flexibility is achieved by using design patterns. Class hierarchies with classes implementing standard transactional behavior are provided, but a programmer is free to extend the hierarchies by implementing application-specific functionalities. An interface for Ada programmers is presented and its use demonstrated via a simple example.


Transactions Open Multithreaded Transactions OPTIMA Framework Design Patterns Fault-Tolerance Ada 95 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    ISO: International Standard ISO/IEC 8652:1995(E): Ada Reference Manual, Lecture Notes in Computer Science 1246, Springer Verlag, 1997; ISO, 1995.Google Scholar
  2. [2]
    Wolf, T.; Strohmeier, A.: “Fault Tolerance by Transparent Replication for Distributed Ada 95”. In Harbour, M. G.; de la Puente, J. A. (Eds.), Ada-Europe’99, pp. 411–424, Lecture Notes in Computer Science 1622, 1999.Google Scholar
  3. [3]
    Gray, J.; Reuter, A.: Transaction Processing: Concepts and Techniques. Morgan Kaufmann Publishers, San Mateo, California, 1993.zbMATHGoogle Scholar
  4. [4]
    Kienzle, J.; Romanovsky, A.: “Combining Tasking and Transactions, Part II: Open Multithreaded Transactions”. 10th International Real-Time Ada Workshop, Castillo de Magalia, Spain, to be published in Ada Letters, ACM Press, 2001.Google Scholar
  5. [5]
    Goodenough, J. B.: “Exception Handling: Issues and a Proposed Notation”. Communications of the ACM 18(12), pp. 683–696, December 1975.zbMATHCrossRefMathSciNetGoogle Scholar
  6. [6]
    Kienzle, J.: “Exception Handling in Open Multithreaded Transactions”. In ECOOP Workshop on Exception Handling in Object-Oriented Systems, Cannes, France, June 2000.Google Scholar
  7. [7]
    Patiño-Martinez, M.; Jiménez-Peris, R.; Arevalo, S.: “Exception Handling in Transactional Object Groups”. In Advances in Exception Handling Techniques, Lecture Notes in Computer Science 2022, Springer Verlag, 2001.Google Scholar
  8. [8]
    Patiño-Martinez, M.; Jiménez-Peris, R.; Arevalo, S.: “Integrating Groups and Transactions: A Fault-Tolerant Extension of Ada”. Reliable Software Technologies–Ada-Europe’98, pp. 78–89, Lecture Notes in Computer Science 1411, 1998.CrossRefGoogle Scholar
  9. [9]
    Jiménez-Peris, R.; Patiño-Martinez, M.; Arevalo, S.: “TransLib: An Ada 95 Object-Oriented Framework for Building Transactional Applications”. Computer Systems: Science & Engineering Journal 15(1), 2000.Google Scholar
  10. [10]
    Kung, H. T.; Robinson, J. T.: “On Optimistic Methods for Concurrency Control”. ACM Transactions on Database Systems 6(2), pp. 213–226, June 1981.CrossRefGoogle Scholar
  11. [11]
    García-Molina, H.: “Using Semantic Knowledge for Transaction Processing in a Distributed Database”. ACM Transactions on Database Systems 8(2), pp. 186–213, June 1983.CrossRefGoogle Scholar
  12. [12]
    Kienzle, J.; Romanovsky, A.: “On Persistent and Reliable Streaming in Ada”. In Keller, H. B.; Plöderer, E. (Eds.), Reliable Software Technologies–Ada-Europe’ 2000, pp. 82–95, Lecture Notes in Computer Science 1845, 2000.CrossRefGoogle Scholar
  13. [13]
    Haerder, T.; Reuter, A.: “Principles of Transaction Oriented Database Recovery”. ACM Computing Surveys 15(4), pp. 287–317, December 1983.CrossRefMathSciNetGoogle Scholar
  14. [14]
    Bernstein, P. A.; Goodman, N.: “Concurrency Control in Distributed Database Systems”. ACM Computing Surveys 13(2), pp. 185–221, June 1981.CrossRefMathSciNetGoogle Scholar
  15. [15]
    Kienzle, J.: Open Multithreaded Transactions: A Transaction Model for Concurrent Object-Oriented Programming. Ph.D. Thesis, Swiss Federal Institute of Technology Lausanne, Switzerland, April 2001, to be published.Google Scholar
  16. [16]
    Object Management Group, Inc.: Object Transaction Service, May 2000.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Jörg Kienzle
    • 1
  • Ricardo Jiménez-Peris
    • 2
  • Alexander Romanovsky
    • 3
  • M. Patiño Martinez
    • 2
  1. 1.Software Engineering LaboratorySwiss Federal Institute of Technology LausanneLausanne EPFLSwitzerland
  2. 2.Facultad de InformáticaUniversidad Politécnica de MadridBoadilla del MonteMadrid
  3. 3.Department of Computing ScienceUniversity of NewcastleNewcastle upon TyneUK

Personalised recommendations