Metaman - The Metadata Manager

As software systems become increasingly complex, more powerful tools are required to manage that complexity and ensure the resulting software is efficient and secure. Metaman is a research project focusing on saving and organizing program metadata within the software development toolchain.

Metaman is a Meta-data man-ager, which gathers information collected by the development toolchain, organizes and collates the information and makes it available to all tools that can use it.

Structure

Metaman integrates with the software build system. Information gathered by various build tools are sent to metaman. Then other tools can query metaman for information about the program. Metaman takes an egalitarian approach to integrating into the software toolchain. Instead of forcing tool authors to conform to a complicated system, Metaman integrates into to build system so that only tools that need to store or query additional information need to access Metaman.

http://www.cs.virginia.edu/~dww4s/images/mm_structure.png

The current prototype version of Metaman integrates with the Scons build system. Scons internally tracks build dependencies, and so Metaman leverages the DAG built by Scons to track at keep up-to-date the assocated metadata, built as separate XML files.

Applications

The Metaman project focuses on improving software dynamic translation (SDT) in four key areas:

Papers

Metaman: System-wide Metadata Management by Daniel Williams and Jack W. Davidson to appear in the Workshop on Binary Instumentation and Applications, December 2009.

Using Program Metadata to Support SDT in Object-Oriented Applications by Daniel Williams, Jason D. Hiser, Jack W. Davidson. To appear in the Fourth Workshop on the Implementation, Compilation, Optimization, of Object-Oriented Languages, Programs and Systems (ICOOOLPS'09).


http://www.cs.virginia.edu/~dww4s/images/metaman.png
Author:Dan Williams (dan_williams@cs.virginia.edu)
Last update:12-07-09