A system enabling computing to be provided as a packaged product or as a
remote resource to users. Computing is delivered as a product or a
resource by providing dynamic computing environments to users based on
users' choices of virtual components (hardware, software or network
components). A customer can choose the components and configure a
computing environment. The system packages this environment and makes it
available for users to compute. A service provider can use the system to
create computing environments, automatically, on demand and thus
providing computing as a remote resource to customers. The system
monitors the usage of the customers and they are billed accordingly. In
either case users can carry out their computing activity remotely using a
client device such as a web browser.