Project AutoMate

The Applied Software Systems Laboratory (TASSL)
CADASRAIP, Rutgers, The State University of New Jersey



Introduction/Motivation

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.

Objectives

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.