Most industries and organizations use collections of tools, devices, and applications that are growing in complexity. New tools or applications may be acquired and old tools may become obsolete over time. They are often running on a variety of platforms, have different bandwidth and QoS requirements, and in most cases they cannot be accessed through a single point of entry. Moreover, some tools may require specific configurations done by technical experts. To address these issues, we propose an extensible, reliable, and simple software architecture that can hide the complexity of provisioning the network and running the tools. This paper introduces a service-oriented approach for creating an agile infrastructure to provision devices, applications, and their underlying networks. The Eucalyptus prototype is developed as an empirical application to test this approach. Eucalyptus is built on a set of generic fine-grained Web Services to manage and configure available resources, where new resources can be custom-built or imported from a third party. They can be integrated into Eucalyptus using a set of Web Service-enabled APIs. Our user community consists of architects and industrial designers. Eucalyptus can manage and configure the resources needed by geographically distributed groups of architects who need to collaborate in real time on the design of buildings, in a virtual Participatory Design Studio (PDS). Eucalyptus provides a single point of entry for the architects to access a wide variety of tools: videoconference applications, visualization services, rendering services employing parallel computers, etc. Eucalyptus provides a set of upper layer services for users to provision devices and applications running on high-speed broadband networks, as well as the commercial IP networks.