Similarities at analysis, design and implementation levels in software are great opportunities for reuse. When such similarities are not exploited, they can lead to repetitions in software (also called 'clones'). Sometimes clones manifest as repeating similarity patterns consisting of clone fragments. We call them 'structural clones'. Most clones negatively affect software maintenance, but clones may also have benefits. We believe that the lack of a holistic approach to unify and reuse clones without losing their benefits is behind the high levels of cloning in today s software. This book takes on the cloning problem in web application domain. It describes a holistic 'clone management' approach that uses meta-programming to counter negative effects of clones (notably, on maintainability), while preserving and leveraging their positive aspects (notably, their reuse potential).