The Applied Software Systems
Rutgers, The State University of New Jersey
The scale, complexity, inherent heterogeneity and dynamics of emerging
distributed applications and computing environments (e.g. the Grid) have
resulted in application development, configuration and management complexities
that break current paradigms based on passive components and static compositions
and interactions and expose the need for a fundamental change in how these
applications are formulated, composed and managed. In fact, we have reached a
level of complexity, heterogeneity, and dynamism for which our programming
environments and infrastructure are becoming unmanageable and insecure. This has
led researchers to consider alternative programming paradigms and management
techniques that are based on strategies used by biological systems to deal with
complexity, heterogeneity and uncertainty. The approach is referred to as
autonomic computing. An autonomic computing system is one that has the
capabilities of being self-defining, self-healing, self-configuring,
self-optimizing, self-protecting, contextually aware, and open.
The overall objective of Project AutoMate
is to investigate key technologies, including programming models, frameworks, and
middleware services, to enable the development of autonomic Grid applications that
can address the challenges of complexity, dynamism, heterogeneity and uncertainty
in Grid environments. Its overall goal is to develop conceptual models and implementation architectures
that can enable the development and execution of such self-managing Grid applications. Specific issues
addressed by Project AutoMate include:
Definition of Autonomic Elements
- The definition of programming abstractions and supporting infrastructure that will
enable the definition of autonomic elements (components/services). In addition to the
interfaces exported by traditional elements, autonomic elements provide enhanced profiles
(and contracts) that encapsulate their functional, operational, and control aspects.
These aspects enhance the interfaces to export information and policies about their behavior,
resource requirements, performance, interactivity and adaptability to system and application
dynamics. Furthermore, they encapsulate sensors, actuators, access policies and a policy-engine.
Together, aspects, policies, and policy engine allow autonomic elements to consistently configure,
manage, adapt and optimize their execution.
Dynamic Composition of Autonomic Applications
- The development of 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.
Autonomic Middleware Services
- The design, development, and deployment of key services on top of the Grid middleware
infrastructure to support the policy, content and context driven execution and management
of autonomic applications. These include decentralized content-based services for coordination,
messaging, discovery, peer-to-peer multi-agent substrates and deductive engines,
service for security, access management and self-protection, etc.