1. A method comprising: in a network, storing components in a first server; storing a list of the components in a second server; requesting, by an application residing in a client, a component matching particular functional requirements from the list; and determining where to execute the requested component according to resource information.