1. A method for implementing a process using component software, comprising: determining at runtime a characteristic associated with the process to be implemented by a software component, wherein stateless and stateful versions of the software component are available to implement the process; invoking either the stateless or stateful version of the software component to implement the process based on the characteristic.