View
214
Download
0
Tags:
Embed Size (px)
Citation preview
A Mobile Agent Approach to A Mobile Agent Approach to Process-based Dynamic Adaptation Process-based Dynamic Adaptation
of Complex Software Systemsof Complex Software Systems
Gail KaiserColumbia University
Dynamic AdaptationDynamic Adaptation Modifications in structure and behavior that can be
made to individual components, as well as sets thereof, or to the overall target system configuration, such as adding, removing or substituting components, while the system is running and without bringing it down.
Goals:– Supporting run-time software composition,– Enforcing adherence to requirements,– Ensuring uptime and quality of service of mission-
critical systems, – Recovering from and preventing faults,– Seamless system upgrading, etc.
Our ApproachOur Approach
Dispatch mobile agents to components to perform dynamic adaptation tasks
Coordinate concerted action of multiple agents on multiple components via decentralized workflow
Dynamic adaptation workflow process incorporates knowledge about the specifications and architecture of the target software system
Allows to address at runtime configuration management, deployment, validation and evolution concerns normally dealt with only at development time
Prerequisite InfrastructurePrerequisite Infrastructure
Superimpose a minimally intrusive monitoring meta-architecture on top of the target system
Introduce an adaptation feedback and feedforward control loop onto the target system, detecting and responding to the occurrence of certain conditions at and among components and connectors
Contrasted to fine-grained internal diagnostics and remedies performed in isolation by a self-assured, fault-tolerant component, aims to handle more global situations, perhaps involving heterogeneous components obtained from multiple sources (COTS, open source)
Kinesthetics eXtreme (KX)Kinesthetics eXtreme (KX)
Probes register and report low-level events indicating the behaviors/activities (or lack thereof) of the target system (via active interfaces, probelets, instrumented connectors, others)
Distributed asynchronous event bus receives probed events and propagates them (publish/subscribe) through packaging, filtering and notification facilities
Gauges describe/measure the progress of the target system, rendered as visual or textual portal panels or as data feeds into decision support
Kinesthetics eXtreme (KX)Kinesthetics eXtreme (KX)
Decision agents (human or automated) respond to gauged conditions by determining appropriate target system adaptations
Workflow engine
Actuation facilities deliver and execute any adaptation procedures
Worklets (aka Gaugents)
WorkletsWorklets
Mobile software agents support micro-workflow
Contain one or more mobile code units – worklet junctions
Worklet transparently travels from host to host, dropping off and picking up junctions
Optional origin junction returns the worklet to originating host
Worklet Virtual Machine Worklet Virtual Machine (WVM)(WVM)
Generic worklet execution platform Middleware interfaces to each host
through host-specific adaptor Tradeoff between adaptor complexity
and worklet specialization– 1st: JPython scripted worklets, heavyweight
adaptor implemented std API– 2nd: Java coded worklets, lightweight adaptor
specialized to domain/application/etc.
WorkWork[[letlet] flow] flow
HOST1
ADAPTOR1
WVM
HOST2 WVM
ADAPTOR2
ADAPTOR
WVM
Workflakes: Managing Workflakes: Managing Micro- and Macro-WorkflowMicro- and Macro-Workflow Worklets deliver junctions wrapped in
worklet jackets - scripted triggers, pre-conditions and timing for activation and repetition, exit conditions, directives to supersede, suspend, and reactivate a junction upon delivery of another, etc. (micro-workflow)
Workflakes decentralized workflow engine emits and coordinates multiple (jacketed) worklets collectively realizing the dynamic adaptation process (macro-workflow)
Separation of ConcernsSeparation of Concerns
Worklet junctions define and execute computations
Workflow modeling language defines and decentralized workflow engine enacts coordination– Specify (conditional) worklet trajectory– Generate worklet jackets– Select and instantiate worklet junctions
from worklet factory
ProcessRepository
JunctionsCatalogue
TARGET
ADAPTOR
WVM
WorkletFactory
Process Engine
Worklet Transport WVM
Probe
JACKET
Example Application: Example Application: Adaptive Interactive Adaptive Interactive Internet Team VideoInternet Team Video
Multimedia-enhanced group distance learning and collaborative work
Dispersed teams of students– Review recorded lecture videos together– Interactively carry out course assignments
Different teams members have different computing and networking capabilities– But need to view the semantically same
thing at physically same time
AI2TV Approach AI2TV Approach
Semantics-based video segmentation, indexing and compression (Prof. Kender)
Specialized mpeg encoder/decoder adapts to resource availability (Prof. Nieh)
KX monitors multimedia synchronization and continually updates gauges
Workflakes directs dynamic adaptation performed by worklets
Workflow model also guides predictive video segment caching (prefetching) based on team agendas
Multiple Workflow Levels Multiple Workflow Levels
Application-level– Coordination of group work (traditional)– Multimedia provision follows team agendas
Control-level– Process-aware components (via WVM adaptors)– Adapts behavior of the infrastructure (caching,
streaming, resource management, etc.) Reflective
– Dynamically adapt KX continual validation– “Smart Event” vocabulary, complex event
patterns, event matching and processing
Team 2
ControlsControlsControlsControlsControlsControls
KX
ControlsControls
AI2TV Infrastructure
Team 1
Worklets 2.0Worklets 2.0
Java 1.3Can push (payload) or pull (RMI or URL
ClassLoader) mobile codeDownload from
http://www.psl.cs.columbia.edu/software/download/
Workflakes 0.5?Workflakes 0.5? Initial experiment with Little-JIL/Juliette (UMass)
– Little-JIL workflow modeling notation Hierarchical workflow breakdown with coordination
relationships and qualifiers among tasks Sub-hierarchies assigned to decentralized processors (Juliette
agents) – Juliette decentralized workflow enactment
Mockup of Juliette AutomatedAgent Manages agenda and sends worklets to execute leaf tasks
Cougaar-based implementation (DARPA) under way– Logistics workflow (worklet dispatch treated as a logistics
problem)– Adaptable to other workflow paradigms– “Shell” generic Cougaar task processor is filled on request
with coordination and computational semantics by worklets– Ideal environment for integration with jacket micro-
workflow
Survivor NG IdeasSurvivor NG Ideas Need widely distributed workflow repository
– Both definition and in-process state Cougaar-based implementation relies on a
distributed blackboard/tuple space– Any task processor may be enabled to acquire
any part of the overall process– Configurable Cougaar communities
Worklets add dynamism, re-configurability, mobility to Cougaar communities– To handle contingencies and overcome faults– Need to add explicit fault-tolerance and security
policies to Workflakes enactment mechanisms
Next StepsNext Steps
That’s what we’re here to discuss