A Framework to Test Autonomic Containers Brittany Parsons and Ronald Stevens

Download Report

Transcript A Framework to Test Autonomic Containers Brittany Parsons and Ronald Stevens

A Framework to Test Autonomic
Containers
Brittany Parsons and Ronald Stevens
July 6, 2006
REU Sponsored by NSF
Outline of Presentation
1. What are we trying to accomplish?
2. What is an Autonomic Container?
3. What is the architecture of an Autonomic
Container?
4. What testing tools are being used for this
project?
5. Future Work
2
1. What are we trying to
accomplish?
 In this project, we are trying to address a
way to test autonomic systems.
 In order to create an application simple
enough to test autonomic characteristics,
we have come up with the idea of an
autonomic container.
3
2. What is an Autonomic Container?
 An Autonomic Container is a data
structure that can be dynamically changed
during run time.
 A container a is structure used for object
holding or collecting.
 It must contain the four characteristics of
Autonomic Computing: self healing, self
protecting, self optimizing, and self
configuring.
4
Testing within the Autonomic Manager
 In order to properly test an Autonomic
Container, we would like to implement a
test set up in the autonomic element.
 Taking knowledge already known about
Autonomic Computing, we would like to
add to the existing architecture.
5
Touchpoint Manager for an
Autonomic Computing System
Analyze
Monitor
Plan
Knowledge
Execute
Autonomic Manager
Sensors
Effectors
Managed Element
6
Touchpoint Manager for an
Autonomic Container
Analyze
Monitor
Plan
Knowledge
Execute
Autonomic Manager
Sensors
Effectors
Managed Element
Test Controller
7
Touchpoint Manager for an
Autonomic Container
Analyze
Monitor
Plan
Knowledge
Execute
Autonomic Manager
Sensors
Effectors
Managed Element
Test Monitor
Test Controller
8
Touchpoint Manager for an
Autonomic Container
Analyze
Plan
Test Analyzer
Monitor
Knowledge
Execute
Autonomic Manager
Sensors
Effectors
Managed Element
Test Monitor
Test Controller
9
Touchpoint Manager for an
Autonomic Container
Analyze
Plan
Test Planner
Test Analyzer
Monitor
Knowledge
Execute
Autonomic Manager
Sensors
Effectors
Managed Element
Test Monitor
Test Controller
10
Touchpoint Manager for an
Autonomic Container
Analyze
Plan
Test Planner
Test Analyzer
Monitor
Knowledge
Execute
Autonomic Manager
Sensors
Effectors
Managed Element
Test Monitor
Test Executor
(Runner)
Test Controller
11
Completed Autonomic Container
Touchpoint Manager
Analyze
Test Analyzer
Monitor
Plan
Test Planner
Knowledge
Test Monitor
Test Controller
Execute
Test Executor
Autonomic Manager
Sensors
Effectors
Managed Element
12
3. Architecture of an Autonomic Container
Test
Repository
TCO Data
(a) ME State Info
Test Analyzer
Test Planner
(b) TCO Policy
3. InitTSAnalysis()
TCO
Evaluator
(c) TCO Data
(d) Templated
Base TC’s
TC
Generator
(a), (e)
(e) Current TS
TS
Analyzer
State
Analyzer
updated (e)
(f) TSched Policy
5.
AnalyzeTS
Complete
4. Analyze
TS()
ME State Info
2.
7.
Test Monitor
GetStateME()
Test Coordinator
6.
Cr
Cr
e
e
In
e
at
e
at
it
T
Te
Te
P
st
P
st
n
SA
al
n
la
()
n
la
y
s
si
Co
l
mp
Co
et
l
mp
e
et
Test
Scheduler
e
Test Executer
8. InitTest()
TC Runner
GetStateME
Complete
1. Init
Validation()
ME State Info
Managed Element
11. Test
Complete
9.
Code
Profiler
10. Test() Profiling
Info
Copy of Managed Element
13
Application
Our Contribution
 We are in charge of working on the
managed element and the test executer.
 For the Autonomic Container, we need to
be able to make a copy of the managed
element that will run parallel to the original
element.
 During runtime, the copy of the element
will be tested on and updated as the
original element is updated.
14
 When a change is requested, the contents
of the managed element copy are
switched with the original element.
15
Implementation of an Autonomic
Container
 In order to implement the Autonomic
Container, we need a simple application to
run.
 The simple application we have chosen to
run is a stack.
 This stack is a simple data structure
written in Java that contains the functions
push, pop, and resize.
16
4. What testing tools are being used for
this project?
 To test this project we will be using two
testing tools. They are JUnit and the
Rational Functional Tester.
17
What is JUnit?
 JUnit is a unit testing framework for Java.
 JUnit is part of a family of unit testing
frameworks [1]
 PyUnit (Python language version)
 fUnit (Fortran language version)
 CPPUnit (C++ language version)
 Collectively referred to as xUnit
frameworks.
18
What is Rational Functional Tester?
 An automated functional and regression
testing tool for testing and GUI
development that can be used with Java
and Microsoft VisualStudio
 Can be used with web-based applications
19
Demonstration
20
Sources
 [1] Wikipedia – JUnit
http://en.wikipedia.org/wiki/JUnit
 [2] IBM – Rational Functional Tester
http://www-306.ibm.com/software/awdtools/tester/functional/
21