Project AutoMate investigates autonomic solutions that are inspired by biological
systems and deals with similar challenges of complexity, dynamism,
heterogeneity and uncertainty. The goal is to realize systems and applications
that are capable of managing (i.e., configuring, adapting, optimizing,
protecting, healing) themselves. Project AutoMate aims at developing conceptual
models and implementation architectures that can enable the development
and execution of such self-managing Grid applications. Specifically,
it investigates programming models, frameworks and middleware services
that support the definition of autonomic elements, the development of autonomic
applications as the dynamic and opportunistic composition of these
autonomic elements, and the policy, content and context driven definition,
execution and management of these applications. Project AutoMate builds on
three fundamental concepts:
Separation of policy from mechanism distilling out the aspects of components and enabling them to orchestrate a repertoire of mechanisms for responding to the heterogeneity and dynamics, both of the applications and the Grid infrastructure. The policies that drive these mechanisms are specified separately. Examples of mechanisms are alternative numerical algorithms, domain decompositions, and communication protocols; an example of a policy is to select a latency-tolerant algorithm when network load is above certain thresholds.
Context, constraint and aspect based composition techniques applied to applications and middleware as an alternative to the current ad-hoc processes for translating the application's dynamic requirements for functionality, performance, quality of service, into sets of components and Grid resource requirements.
Dynamic, proactive, and reactive component management to optimize resource utilization and application performance in situations where computational characteristics and/or resource characteristics may change. For example, if adaptive mesh refinement increases computational costs, we may negotiate to obtain additional resources or to reduce resolution, depending on resource availability and user preferences.
A schematic of the overall architecture is presented on
the Figure shown below.
AutoMate is composed of the following components:
Accord Programming Layer: The Accord
programming layer extends existing distributed programming models and frameworks to
addresses the definition, execution and runtime management of autonomic elements,
as well as the formulation of autonomic applications as the dynamic and opportunistic
composition of these elements.
Rudder Coordination Layer: The Rudder
coordination layer provides a coordination framework and agent-based deductive
engine to support autonomic behaviors. The coordination framework defines protocols
and mechanisics builds on a scalable implementation of a decentralized tuple space.
The deductive engine is composed of element, system and compostion agents and supports
the collective decision making.
Meteor/Pawn Middleware Layer: The Meteor
middleware substrate provides a content-based middleware with support for content-based
routing, discovery and associative messaging. It includes the Squid routing and discovery
engine and the ARMS messaging substrate. The Pawn
peer-to-peer messaging layer provides higher level messaging abstractions in a decentralized
Sesame Access Management Layer: The Sesame
access control engine is composed of access control agents and provides dynamic context-aware
Project AutoMate also includes the DAIS
cooperative-protection services and the Discover
collaboratory services for collaborative monitoring, interaction and control, which
are not described in this paper. Additionally, AutoMate portals provide users with
secure, pervasive (and collaborative) access to the different entities. Using these
portals users can access resource, monitor, interact with, and steer components,
compose and deploy applications, congure and deploy rules. The key components
are described in the following sections.