Presents an overview of the Chameleon architecture for supporting a wide range of criticality requirements in a heterogeneous network environment. Chameleon employs ARMORs (Adaptive, Reconfigurable and Mobile Objects for Reliability) to synthesize different fault-Tolerant configurations and to maintain run-Time adaptation to changes in the fault tolerance requirements of an application. ARMORs have a flexible architecture that allows their composition to be reconfigured at run-Time, i.e.The ARMORs may dynamically adapt to changing application requirements. In this paper, we focus on the detailed description of the ARMOR architecture, including ARMOR class hierarchy, basic building blocks, ARMOR composition and use of ARMOR factories. We describe how ARMORs can be reconfigured and reengineered, and demonstrate how the architecture serves our objective of providing an adaptive software infrastructure. Our experience with an early Chameleon implementation demonstrates that the proposed ARMOR architecture provides for a highly flexible and reconfigurable software infrastructure.