Self-healing Techniques for Web-based Applications: Improving the Reliability of Business Critical Applications