1. A method of integrating software components comprising: providing an application integration model capable of adapting to different environments by dynamically using different software components at application runtime, wherein the software components are categorized into different stages, the stages being indicative of when the software components are to be loaded and executed within an application by the application integration model; and employing the application integration model to assemble software components into the application within a runtime environment.