290 likes | 538 Views
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
E N D
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)
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
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