Abstract
In this paper, we look at what is required to produce programs that are dependable. Dependability requires more than just high availability. Rather, a program needs to be “right” as well, solving the problem for which it was designed. This requires a program development infrastructure that can, by means of appropriate abstractions, permit the programmer to focus on his problem, and not be distracted by “systems issues” that arise when high availability is required. We discuss the attributes of good abstractions. We then illustrate this in the programming of dependable systems. Our “abstraction” is a transparently persistent stateful programming model for use in the web enterprise setting where exactly-once execution is required. Work on this abstraction is reviewed. The new technical meat of the paper is in (1) describing how to reduce the performance cost of using the abstraction; (2) extending the flexibility of using this abstraction; (3) and showing how to exploit it to achieve dependability.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Avižienis, A., Laprie, J.-C., Randell, B.: Fundamental Concepts of Computer System Dependability. In: IARP/IEEE-RAS Workshop, Seoul (2001)
Barga, R., Chen, S., Lomet, D.: Improving Logging and Recovery Performance in Phoenix/App. In: ICDE Conference, Boston, pp. 486–497 (2004)
Barga, R., Lomet, D.: Phoenix Project: Fault Tolerant Applications. SIGMOD Record 31(2), 94–100 (2002)
Barga, R., Lomet, D., Paparizos, S., Yu, H., Chandrasekaran, S.: Persistent Applications via Automatic Recovery. In: IDEAS Conference, Hong Kong, pp. 258–267 (2003)
Barga, R., Lomet, D., Shegalov, G., Weikum, G.: Recovery Guarantees for Internet Applications. ACM Trans. on Internet Technology 4(3), 289–328 (2004)
Barga, R., Lomet, D., Weikum, G.: Recovery Guarantees for Multi-tier Applications. In: ICDE Conference, San Jose, pp. 543–554 (2002)
Bernstein, P., Hsu, M., Mann, B.: Implementing Recoverable Requests Using Queues. In: SIGMOD Conference, Atlantic City, pp. 112–122 (1990)
Bernstein, P.A., Newcomer, E.: Principles of Transaction Processing. Morgan Kaufmann, San Francisco (1996)
Borg, A., Baumbach, J., Glazer, S.: A message system supporting fault tolerance. In: Symposium on Operating Systems Principles, pp. 90–99 (1983)
Elnozahy, E.N., Alvisi, L., Wang, Y.-M., Johnson, D.B.: A survey of rollback-recovery protocols in message-passing systems. ACM Comput. Surv. 34(3), 375–408 (2002)
Frølund, S., Guerraoui, R.: A Pragmatic Implementation of e-Transactions. In: IEEE Symposium on Reliable Distributed Systems, Nürnberg, pp. 186–195 (2000)
Gray, J.: Keynote address Internet Reliability. In: 2nd HDCC Workshop, Santa Cruz, CA (May 2001)
Gray, J., Reuter, A.: Transaction Processing: Concepts and Techniques. Morgan Kaufmann, San Francisco (1993)
Hoare, H.A.R.: As quoted in B. Randell: Turing Memorial Lecture Facing Up to Faults. Comput. J. 43(2), 95–106 (2000)
Lomet, D.: Robust Web Services via Interaction Contracts. In: TES Workshop, Toronto, pp. 1–14 (2004)
Lomet, D.: Persistent Middle Tier Components without Logging. In: IDEAS Conference, Montreal, pp. 37–46 (2005)
Lomet, D.: Faithless Replay. for Persistent Logless Mid-Tier Components. Microsoft Research Technical Report MSR-TR-2008-50 (April 2008)
Narasimhan, P., Moser, L., Melliar-Smith, P.M.: Lessons Learned in Building a Fault-Tolerant CORBA System. In: DSN 2002, pp. 39–44 (2002)
MSDN Library: Persistence Overview, http://msdn.microsoft.com/workshop/author/persistence/overview.asp
OMG: CORBA 2000. Fault Tolerant CORBA Spec V1.0, http://cgi.omg.org/cgi-bin/doc?ptc/00-04-04
Patterson, D.: Recovery Oriented Computing (talk) (September 2001), http://roc.cs.berkeley.edu
Shegalov, G., Weikum, G.: Formal Verification of Web Service Interaction Contracts. IEEE SCC (2), 525–528 (2008)
Sun 2001. Enterprise Java Beans Specification, Vers. 2.0 (2001), http://java.sun.com/products/ejb/docs.html
Weikum, G., Vossen, G.: Transactional Information Systems. Morgan Kaufmann, San Francisco (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lomet, D. (2009). Dependability, Abstraction, and Programming. In: Zhou, X., Yokota, H., Deng, K., Liu, Q. (eds) Database Systems for Advanced Applications. DASFAA 2009. Lecture Notes in Computer Science, vol 5463. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-00887-0_1
Download citation
DOI: https://doi.org/10.1007/978-3-642-00887-0_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-00886-3
Online ISBN: 978-3-642-00887-0
eBook Packages: Computer ScienceComputer Science (R0)