Com and XPCOM as a Solution to Bamboo's Versioning Problem
Abstract
Bamboo is a systems toolkit that is primarily concerned with supporting performance-critical applications that must run continuously for extremely long periods of time. Bamboo supports this by managing the loading and unloading of executable code into and out of process memory at runtime. Thus, as application requirements change over time, obsolete code can be replaced without having to restart the application. This technique's flexibility has already been demonstrated, but fails in one critical way. Although the C++ programming language standard defines a consistent syntax, it fails to specify a consistent binary encapsulation. Thus, if the executable code for a C++ base class is dynamically replaced, it is very likely that its in memory layout differs from before and therefore incompatible with whatever derived classes may exist. The only recourse is to recompile and reload the derived classes as well. Component Object Model (COM) and Cross Platform Object Model (XPCOM) solve C++'s weakness by enforcing a complete separation of a class's interface from its implementation. This thesis demonstrates support for dynamic versioning of Bamboo C++ modules using COM and XPCOM.
Document Details
- Document Type
- Technical Report
- Publication Date
- Mar 01, 2000
- Accession Number
- ADA378430
Entities
People
- Mithat Daglar
Organizations
- Naval Postgraduate School