This paper presents the Aurora architecture for network-centric applications, complementing the CORBA and WWW/Java frameworks with support for composition of services. The architecture addresses the requirements of dynamic open environments with multiple autonomous service providers. The paper presents a detailed technical design of the run-time infrastructure that enables on-demand composition of services. Aurora is based on a container framework, which provides the basis for dynamic and adaptive composition, as well as detailed monitoring and tracking. Work sessions are implemented as networks of active containers. A distinguishing feauture of Aurora is that such networks can be inspected and manipulated at run-time.