FERRARI - Framework for Efficient Rewriting and Reification Applyining Runtime Instrumentation
Java and the Java Virtual Machine are a preferred programming language and deployment platform for many application and middleware developers. However, there is a lack of efficient development tools that help analyzing and optimizing the runtime characteristics of complex Java-based systems, and of resource management mechanisms to monitor and control the resource consumption of software components in a dynamically changing environment. In particular, prevailing tools for profiling and monitoring focus exclusively on platform-specific metrics, such as the CPU time consumption on a particular machine. Such metrics are of limited use when software components are deployed dynamically and when resource consumption policies need to be expressed in a platform-independent way. The FERRARI project will fill this gap. It proposes generic techniques for platform-independent, transparent, customizable, dynamic instrumentation in virtual execution environments, which enables new, portable profiling tools, resource management mechanisms, and fine-grained monitoring of Java-based software component in a platform-independent way. The FERRARI project will advance the state-of-the-art in bytecode instrumentation and validate the novel instrumentation techniques in the area of profiling, monitoring, and resource management.