A Component Based Programming Framework for Autonomic Applications Hua Liu, Manish Parashar, and Salim Hariri ICAC ‘04 John Otto Wi06 CS 395/495 Autonomic Computing Systems
Outline Pervasive wide-area distributed computing Management Existing frameworks Accord Autonomic Application Characteristics Application Context Component Definition Dynamic Composition Example: Forest Fire Application Current Project State Final Thoughts
Management: Challenges Heterogeneous resources Physical location, connectivity method Hardware functionality Software interface Uncertainty Dynamism Failures Incomplete knowledge
Management: Requirements Separation of interface definition from implementation Separation of application computation from component interactions On-the-fly interaction programmability Self-monitoring and resource adaptation to changing application demands and system state
Outline Pervasive wide-area distributed computing Management Existing frameworks Accord Autonomic Application Characteristics Application Context Component Definition Dynamic Composition Example: Forest Fire Application Current Project State Final Thoughts
Component-based Frameworks Examples CORBA – related to Interface Definition Language CCA – Common Component Architecture JavaBeans – Java Component Architecture Pros: separate interface from implementation Cons: no self-management of components
Service-based Frameworks Examples Web services (e.g. XML-RPC?) Grid service model Pros: little prior knowledge required Cons Rigid behavior, no customization Grid service model requires reliable accessibility
Outline Pervasive wide-area distributed computing Management Existing frameworks Accord Autonomic Application Characteristics Application Context Component Definition Dynamic Composition Example: Forest Fire Application Current Project State Final Thoughts
Accord Programming Framework Builds on Grid model Allows definition of Autonomic components Their respective behaviors Interactions between components Uses dynamic rules, defined at run-time, to organize components
Outline Pervasive wide-area distributed computing Management Existing frameworks Accord Autonomic Application Characteristics Application Context Component Definition Dynamic Composition Example: Forest Fire Application Current Project State Final Thoughts
Application Context Define “common syntax and semantics” Allows definition of rules governing component interactions Extends CCA and OGSA (Open Grid Services Architecture) uses existing mechanisms for defining context
Outline Pervasive wide-area distributed computing Management Existing frameworks Accord Autonomic Application Characteristics Application Context Component Definition Dynamic Composition Example: Forest Fire Application Current Project State Final Thoughts
Component Definition Extends traditional component model Specified interfaces Context dependencies Allows self-managed operation based on rule set and constraints Interface defined by several ports…
Port-based Interface Functional port Defines inputs and outputs Control port Sensors and actuator interfaces for controlling and gaining state information about a component Operational port Rule definition interface governing actions under specified conditions Rule types…
Operational Port: Rule Types Behavior rules Control computation, algorithms based on context and input events Interaction rules Establish methods and contents of communication between components Define interaction with environment, autonomic application as a whole
Outline Pervasive wide-area distributed computing Management Existing frameworks Accord Autonomic Application Characteristics Application Context Component Definition Dynamic Composition Example: Forest Fire Application Current Project State Final Thoughts
Dynamic Composition Run-time assembly of components: “which components are composed” “how and when they interact”
Accord: Dynamic Composition Component creation and registration with AutoMate Component replacement New component registration Old component deactivation (quiescent state) Allowable because connectivity is not required State transfer New component activation
Accord: Dynamic Composition Addition of components New component creation State injection based on user-defined interaction rules State injection into related components to notify them of new component availability Deletion of components Related components delete component from interaction rules AutoMate cleans up after the deleted component
Accord: Dynamic Composition Creation/Modification/Deletion of interaction rules Rule agents (autonomic elements) can create new interactions based on application context Users can adjust rules used by autonomic elements at run-time to change application function without restarting the system
Outline Pervasive wide-area distributed computing Management Existing frameworks Accord Autonomic Application Characteristics Application Context Component Definition Dynamic Composition Example: Forest Fire Application Current Project State Final Thoughts
Example Components DSM (Data Space Manager) CRM (Computation Resource Manager) Rothermel (Simulates fire spread) WindModel (Simulates wind direction) GUI (Manages user interaction)
Component Interaction Rules
Behavior Rules
Outline Pervasive wide-area distributed computing Management Existing frameworks Accord Autonomic Application Characteristics Application Context Component Definition Dynamic Composition Example: Forest Fire Application Current Project State Final Thoughts
Requisite Performance Metrics
Outline Pervasive wide-area distributed computing Management Existing frameworks Accord Autonomic Application Characteristics Application Context Component Definition Dynamic Composition Example: Forest Fire Application Current Project State Final Thoughts
Questions and Thoughts Simply a component-based distributed application architecture, where some components measure system state and send control messages to other components—is this really innovative? What is the interface language, specifically? Demonstrates the necessary components for an autonomic framework, but I’m not convinced that it’s either innovative or robust.
A Component Based Programming Framework for Autonomic Applications Hua Liu, Manish Parashar, and Salim Hariri ICAC ‘04 John Otto Wi06 CS 395/495 Autonomic Computing Systems