A technique is presented for integrating software components. The
technique includes providing an application integration model capable of
adapting to different environments by dynamically using different
software components at application runtime. The software components are
categorized into different stages, with the stages being indicative of
when the software components are to be loaded and executed within an
application by the application integration model. The technique further
includes employing the application integration model to assemble software
components into the application within a runtime environment. The
application integration model includes an application runtime driver
(ARD), which drives work flows of the application integration model
through multiple predefined application stages, and a component runtime
integration box (CRIB), which includes multiple common data structures
employed by the software components during integration into the
application.