In order to open up the interface and functionality of a legacy TP monitor, we draw upon results stemming from work on computational reflection. The concept of reflection was first put forth explicitly by Brian Smith in his PhD thesis [Smi82] concerning the structure and organization of self-modifying procedures and functions, which was later summarized in a shorter paper [Smi84]. The essence of computational reflection is that a program is able to reason about its own behavior and then change it. While the concept of reflection originated in work on flexible programming language design, the notion has proven to be quite general. Over the years, researchers have incorporated the principles of reflection into a variety of application domains and software frameworks in a general move to make systems flexible [Str93,Yok92,EPT95]. This flexibility allows the systems to be compatible with other hardware, function efficiently in a range of different circumstances and clients, and support application requirements that were not considered during development. Our motivation, then, is to investigate how we might apply reflection to a modular legacy TP monitor, to attack similar challenges of flexibility in the interface and functionality.
In the remainder of this section, we first present background information on transactions and the implementation challenges presented by extended transaction models, followed by a high-level description of the TP monitor. Finally, we return to discuss how results from reflection can be applied to a legacy TP monitor.