A Novel Method for Live Debugging of Production Web Applications by Dynamic Resource Replacement

This paper proposes a novel methodology for enabling
debugging and tracing of production web applications without
affecting its normal flow and functionality. This method of debugging
enables developers and maintenance engineers to replace a set of
existing resources such as images, server side scripts, cascading
style sheets with another set of resources per web session. The new
resources will only be active in the debug session and other sessions
will not be affected. This methodology will help developers in tracing
defects, especially those that appear only in production environments
and in exploring the behaviour of the system. A realization of the
proposed methodology has been implemented in Java.





References:
[1] E. W. Dijkstra, Notes on Structured Programming,Editors, Academic
Press, London, pp. 1-82,1972
[2] Ehud Y. Shapiro, Algorithmic Program Debugging, MIT Press,
Cam-bridge, MA, 1983.
[3] B.Hailpern, P. Santhanam, Software debugging, testing, and
verification,IBM Systems Journal, 2002, Vol.41, Issue.1.
[4] Lewish, G. Modernizing Legacy Systems: Software Technologies,
Engineering Processes, and Business Practices. Addison-Wesley,
Boston(2003).
[5] B. Hailpern, P. Santhanam, IEEE Guide to the Use of IEEE Standard
Dictionary of Measures to Produce Reliable Software, IEEE Standard
982.2-1988, IEEE, New York (1989).
[6] R.McCauleya, .Fitzgeraldb, G.Lewandowskic, L.Murphyd, B.Simone,
L.Thomasf and C.Zanderg , emphDebugging- A Review of the literature
from an educational perspective, Computer Science Education, pages
67-92,Volume 18, No. 2,June 2008
[7] F.Tip, emphA Survey of Program Slicing Techniques,Technical Report,
CWI, Amsterdam, The Netherlands, 1994.
[8] M. Weiser, emphProgram slices: formal, psychological, and practical
investigations of an automatic program abstraction method, PhD thesis,
University of Michigan, Ann Arbor, 1979.
[9] M. Weiser, emphProgrammers use slices when debugging,
Communications of the ACM, pages 446-452 Volume 5, Issue 7
1982.
[10] 10- M. Weiser, Program slicing, IEEE Transactions on Software
Engineering, 352357, Volume 10, Issue 4 ,1984.
[11] J. Ferrante, K.J. Ottenstein, and J.D. Warren, The program dependence
graph and its use in optimization, ACM Transactions on Programming
Languages and Systems, pages 319-349, Volume 9, Issue , 1987.
[12] F. Bergeretti and B.A. Carre, Information-flow and data-flow analysis
of while-programs, ACM Transactions on Programming Languages and
Systems, 3761, Volume 7, Issue 1 ,1985.
[13] N.Rodrigues, emphComponent Identification Through Program Slicing,
Electronic Notes in Theoretical Computer Science, pages 291304 Volume
160, 8 August 2006.
[14] T.Amtoft, Slicing for modern program structures: a theory for
eliminating irrelevant loops, Information Processing Letters, Pages 45-51,
Volume 106, Issue 2, 15 April 2008.
[15] D.Qi, A.Roychoudhury, Z.Liang, and K.Vaswani, DARWIN: An
approach to debugging evolving programs,ACM Transactions on Software
Methodolgy Methodology, Volume 21, Issue 3 ,July 2012
[16] C.Zamfir, B.Kasikci, J.Kinder, E.Bugnion, G.Candea, Automated
debugging for arbitrarily long executions, In Proceedings of the 14th
USENIX conference on Hot Topics in Operating Systems (HotOS’13).
USENIX Association, Berkeley, CA, USA,Year:2013.
[17] D.Abramson, C.Chu, D.Kurniawan1, A.Searle, emphRelative debugging
in integrated development environment, SoftwarePractice and Experience
, pages1157–1183. Volume 39, Issue 14, Year 2009.
[18] J.Kabanov, JRebel Tool Demo, Electronic Notes in Theoretical Computer
Science Volume 264 Issue.14, Year 2011.
[19] JRebel Website, zeroturnaround.com/software/jrebel, 5/5/2014
[20] Servlet Filters, http://www.oracle.com/technetwork/java/filters-137243.html,
5/5/2014