Given our desire to make the Reflective Transaction Framework efficient and portable, we were not willing to make its design critically dependent on fast IPC. Instead, we have structured the transaction adapters in the Reflective Transaction Framework as a library that is linked in with an application. No external communication of any kind is involved in the application servicing of an transaction event. An implication of this is, of course, that we have to trust applications not to damage transaction adapter data structures and vice versa.
A less obvious implication is that different applications can not share access to the same transaction adapter data structures. Such sharing would enable applications to dynamically coordinate and exchange run-time information through shared transaction adapters. This inability to share transaction adapter data structures is not a significant limitation for implementing current extended transaction models, because they support only restricted forms of highly structured cooperation. But it may be a legitimate concern for applications that wish to allow more dynamic run-time forms of cooperation based on an awareness of other active transactions. It is possible, however, to achieve this functionality, at the cost of portability, by linking the Reflective Transaction Framework library with the TP monitor code, thus enabling all applications access to a shared set of adapter data structures. Once we have extensively tested our prototype, we will investigate this option further and, in addition, measure the communications overhead of implementing the Reflective Transaction Framework as a separate process which applications access through IPC.