Abstract
Causeway provides runtime support for the development of distributed meta-applications. These meta-applications control or analyze the behavior of multi-tier distributed applications such as multi-tier web sites or web services. Examples of meta-applications include multi-tier debugging, fault diagnosis, resource tracking, prioritization, and security enforcement.
Efficient online implementation of these meta-applications requires meta-data to be passed between the different program components. Examples of metadata corresponding to the above meta-applications are request identifiers, priorities or security principal identifiers. Causeway provides the infrastructure for injecting, destroying, reading, and writing such metadata.
The key functionality in Causeway is forwarding the metadata associated with a request at so-called transfer points, where the execution of that request gets passed from one component to another. This is done automatically for system-visible channels, such as pipes or sockets. An API is provided to implement the forwarding of metadata at system-opaque channels such as shared memory.
We describe the design and implementation of Causeway, and we evaluate its usability and performance. Causeway’s low overhead allows it to be present permanently in production systems. We demonstrate its usability by showing how to implement, in 150 lines of code and without modification to the application, global priority enforcement in a multi-tier dynamic web server.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Aguilera, M.K., Mogul, J.C., Wiener, J.L., Reynolds, P., Muthitacharoen, A.: Performance Debugging for Distributed Systems of Black Boxes. In: Proceedings of the 19th ACM Symposium on Operating Systems Principles (SOSP 2003), October 2003, pp. 74–89 (2003)
Ayers, A., Schooler, R., Metcalf, C., Agarwal, A., Rhee, J., Witchel, E.: TraceBack: First Fault Diagnosis by Reconstruction of Distributed Control Flow. In: Conference on Programming Language Design and Implementation (PLDI 2005), June 2005, pp. 201–212 (2005)
Badger, L., Sterne, D.F., Sherman, D.L., Walker, K.M., Haghighat, S.A.: A Domain and Type Enforcement UNIX Prototype. In: Fifth USENIX UNIX Security Symposium (June 1995)
Barham, P., Donnelly, A., Isaacs, R., Mortier, R.: Using Magpie for Request Extraction and Workload Modelling. In: OSDI, December 2004, pp. 259–272 (2004)
Chen, M.Y., Kiciman, E., Fratkin, E., Fox, A., Brewer, E.: Pinpoint: Problem Determination in Large, Dynamic Internet Services. In: Proceedings of the International Conference on Dependable Systems and Networks (IPDS Track), June 2002, pp. 595–604 (2002)
Graham, S.L., Kessler, P.B., McKusick, M.K.: Gprof: a call graph execution profiler. In: SIGPLAN Symposium on Compiler Construction, pp. 120–126 (1982)
Hall, R.J.: Call path profiling. In: Proceedings of the 14th International Conference on Software Engineering, pp. 296–306 (1992)
Hall, R.J., Goldberg, A.J.: Call path profiling of monotonic program resources in UNIX. In: Proceedings of the USENIX Summer Technical Conference (1993)
Isaacs, R., Barham, P., Bulpin, J., Mortier, R., Narayanan, D.: Request extraction in Magpie: events, schemas and temporal joins. In: SIGOPS EW 2004: ACM SIGOPS European Workshop (September 2004)
Currey, J.: Real-Time CORBA Theory and Practice: A Standards-based Approach to the Development of Distributed Real-Time Systems, at http://www.uninova.pt/~jmf/aptr/Documentos/CorbaRT.pdf
Reumann, J., Shin, K.G.: Stateful Distributed Interposition. ACM Transactions on Computer Systems 22(1), 1–48 (2004)
T.P.P.C. (TPC). TPC BENCHMARK W (web commerce) (February 2002), at http://www.tpc.org/tpcw/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 IFIP International Federation for Information Processing
About this paper
Cite this paper
Chanda, A., Elmeleegy, K., Cox, A.L., Zwaenepoel, W. (2005). Causeway: Support for Controlling and Analyzing the Execution of Multi-tier Applications. In: Alonso, G. (eds) Middleware 2005. Middleware 2005. Lecture Notes in Computer Science, vol 3790. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11587552_3
Download citation
DOI: https://doi.org/10.1007/11587552_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-30323-7
Online ISBN: 978-3-540-32269-6
eBook Packages: Computer ScienceComputer Science (R0)