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.