Worklets - Columbia CS

A Mobile Agent Approach to
Process-based Dynamic Adaptation
of Complex Software Systems
Gail Kaiser
Columbia University
Dynamic 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 missioncritical systems,
– Recovering from and preventing faults,
– Seamless system upgrading, etc.
Our 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
Infrastructure



Superimpose a minimally intrusive monitoring metaarchitecture 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)

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)

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)
Worklets

Mobile software agents support microworkflow
 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
(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.
Work[let] flow
H
O
S
T1
A
D
A
P
T
O
R1
WVM
H
O
S
T2
A
D
A
P
T
O
R2
A
D
A
P
T
O
R
WVM
WVM
Workflakes: Managing
Micro- 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 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
Process
Repository
Probe
T
A
R
G
E
T
A
D
A
P
T
O
R
Process Engine
J
A
C
K
E
T
WVM
Worklet Transport
WVM
WorkletFactory
Junctions
Catalogue
Example Application:
Adaptive Interactive
Internet 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

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

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
KX
Controls
Controls
Controls
Controls
Controls
AI2TV Infrastructure
Team 1
Team 2
Controls
Controls
Worklets 2.0
Java 1.3
 Can push (payload) or pull (RMI or URL
ClassLoader) mobile code
 Download from
http://www.psl.cs.columbia.edu/software/do
wnload/

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 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 Steps

That’s what we’re here to discuss