A Component Based Programming Framework for Autonomic ApplicationsHua Liu, Manish Parashar, and Salim HaririICAC ‘04
John OttoWi06 CS 395/495 Autonomic Computing Systems
Outline Pervasive wide-area distributed computing
ManagementExisting frameworksAccord
Autonomic Application CharacteristicsApplication ContextComponent DefinitionDynamic Composition
Example: Forest Fire Application Current Project State Final Thoughts
Management: Challenges
Heterogeneous resourcesPhysical location, connectivity methodHardware functionalitySoftware interface
UncertaintyDynamismFailures 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
ManagementExisting frameworksAccord
Autonomic Application CharacteristicsApplication ContextComponent DefinitionDynamic Composition
Example: Forest Fire Application Current Project State Final Thoughts
Component-based Frameworks
ExamplesCORBA – related to Interface Definition
LanguageCCA – Common Component ArchitectureJavaBeans – Java Component Architecture
Pros: separate interface from implementation
Cons: no self-management of components
Service-based Frameworks
ExamplesWeb services (e.g. XML-RPC?)Grid service model
Pros: little prior knowledge required Cons
Rigid behavior, no customizationGrid service model requires reliable
accessibility
Outline Pervasive wide-area distributed computing
ManagementExisting frameworksAccord
Autonomic Application CharacteristicsApplication ContextComponent DefinitionDynamic Composition
Example: Forest Fire Application Current Project State Final Thoughts
Accord Programming Framework
Builds on Grid model Allows definition of
Autonomic componentsTheir respective behaviors Interactions between components
Uses dynamic rules, defined at run-time, to organize components
Outline Pervasive wide-area distributed computing
ManagementExisting frameworksAccord
Autonomic Application CharacteristicsApplication ContextComponent DefinitionDynamic 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
ManagementExisting frameworksAccord
Autonomic Application CharacteristicsApplication ContextComponent DefinitionDynamic Composition
Example: Forest Fire Application Current Project State Final Thoughts
Component Definition
Extends traditional component modelSpecified interfacesContext 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 rulesControl 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
ManagementExisting frameworksAccord
Autonomic Application CharacteristicsApplication ContextComponent DefinitionDynamic 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 replacementNew component registrationOld component deactivation (quiescent state)
Allowable because connectivity is not required
State transferNew 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 rulesRule agents (autonomic elements) can create
new interactions based on application contextUsers can adjust rules used by autonomic
elements at run-time to change application function without restarting the system
Outline Pervasive wide-area distributed computing
ManagementExisting frameworksAccord
Autonomic Application CharacteristicsApplication ContextComponent DefinitionDynamic 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
ManagementExisting frameworksAccord
Autonomic Application CharacteristicsApplication ContextComponent DefinitionDynamic Composition
Example: Forest Fire Application Current Project State Final Thoughts
Requisite Performance Metrics
Outline Pervasive wide-area distributed computing
ManagementExisting frameworksAccord
Autonomic Application CharacteristicsApplication ContextComponent DefinitionDynamic 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 ApplicationsHua Liu, Manish Parashar, and Salim HaririICAC ‘04
John OttoWi06 CS 395/495 Autonomic Computing Systems