The emergence of computational Grids and the potential for seamless aggregation, integration and interactions has made it possible to conceive a new generation of realistic, scientific and engineering simulations of complex physical phenomena. These applications will symbiotically and opportunistically combine computations, experiments, observations, and realtime data, and will provide important insights into complex systems. Furthermore, the underlying Grid infrastructure is similarly heterogeneous and dynamic, globally aggregating large numbers of independent computing and communication resources, data stores and sensor networks. The combination of the two results in an application development, configuration and management complexities that break current paradigms based on passive components and static compositions. This projectwill make the following specific contributions: 1. Definition of Autonomous Components: We will define programming abstractions and supporting infrastructure that will enable the definition of autonomous components. Together, the aspects, policies, and policy engine allow autonomous components to consistently and securely configure, manage, adapt and optimize their execution. 2. Dynamic Composition of Autonomic Applications: We will develop mechanisms and supporting infrastructure to enable autonomic applications to be dynamically and opportunistically composed from autonomic components. The composition will be based on policies and constraints that are defined, deployed and executed at run time, and will be aware of available Grid resources (systems, services, storage, data) and components, and their current states, requirements, and capabilities. 3. Online Performance Modeling of Component-based Applications: We will investigate the formulation of predictive performance functions that hierarchically combine analytical, experimental and empirical performance models for application components and elements of the Grid. 4. Autonomic Middleware Services: The project will design, develop and deploy key services on top of the emerging Grid middleware infrastructure to support autonomic applications. One of the key requirements for autonomic behavior and dynamic compositions is the ability of the components, applications and resources (systems, services, storage, data) to interact as peers. Furthermore the components should be able to sense their environment. The project will extend the Grid middleware with (1) a peer-to-peer substrate, (2) context aware services, and (3) peer-to-peer deductive engines for composition, configuration and management of autonomic applications. An active peer-to-peer control network will combine sensors, actuators and rules to configure and tune components and their execution environment at runtime and satisfy requirements, and performance and quality of service constraints.