Automating Middleware Configuration and Specializations via Model-based Aspect-Oriented Software Development
Distributed computing infrastructures, such as middleware and virtual machines, are designed to be highly flexible and feature-rich to support a wide range of applications and product lines in multiple domains. Applications with stringent quality of service (QoS) demands (e.g., latency, fault tolerance, and throughput), however, find this feature richness and flexibility to be a source of excessive memory footprint overhead and a lost opportunity to optimize for significant performance gains. To alleviate this tension, a key objective is to specialize the middleware, which comprises removing the sources of excessive generality while simultaneously optimizing the required features of middleware functionality in an automated fashion. This thesis provides three main contributions to research to make a highly specialized middleware. First, it illustrates about the modeling language we developed to compose and configure systems. Secondly, it demonstrates an approach to middleware specialization using aspects oriented programming. Third, it discusses our approach of automating middleware specialization by integrating our model-based tool and aspect-oriented software development techniques. It also describes our investigations into discovering various secondary and crosscutting concerns in metadata management for large-scale distributed data storage. We describe how we have applied aspect-oriented technique to address these crosscutting concerns in metadata management for a high performance distributed storage framework.