a framework to test autonomic containers brittany parsons and ronald stevens july 6, 2006 reu...
TRANSCRIPT
A Framework to Test Autonomic A Framework to Test Autonomic ContainersContainers
Brittany Parsons and Ronald StevensBrittany Parsons and Ronald Stevens
July 6, 2006July 6, 2006
REU Sponsored by NSFREU Sponsored by NSF
22
Outline of PresentationOutline of Presentation
1.1. What are we trying to accomplish?What are we trying to accomplish?
2.2. What is an Autonomic Container?What is an Autonomic Container?
3.3. What is the architecture of an Autonomic What is the architecture of an Autonomic Container?Container?
4.4. What testing tools are being used for this What testing tools are being used for this project?project?
5.5. Future WorkFuture Work
33
1. What are we trying to 1. What are we trying to accomplish?accomplish?
In this project, we are trying to address a In this project, we are trying to address a way to test autonomic systems.way to test autonomic systems.
In order to create an application simple In order to create an application simple enough to test autonomic characteristics, enough to test autonomic characteristics, we have come up with the idea of an we have come up with the idea of an autonomic container.autonomic container.
44
2. What is an Autonomic Container?2. What is an Autonomic Container?
An Autonomic Container is a data An Autonomic Container is a data structure that can be dynamically changed structure that can be dynamically changed during run time.during run time.
A container a is structure used for object A container a is structure used for object holding or collecting.holding or collecting.
It must contain the four characteristics of It must contain the four characteristics of Autonomic Computing: self healing, self Autonomic Computing: self healing, self protecting, self optimizing, and self protecting, self optimizing, and self configuring.configuring.
55
Testing within the Autonomic ManagerTesting within the Autonomic Manager
In order to properly test an Autonomic In order to properly test an Autonomic Container, we would like to implement a Container, we would like to implement a test set up in the autonomic element.test set up in the autonomic element.
Taking knowledge already known about Taking knowledge already known about Autonomic Computing, we would like to Autonomic Computing, we would like to add to the existing architecture.add to the existing architecture.
66
Autonomic Manager
Managed Element
Monitor
Plan
Execute
Analyze
Knowledge
Sensors Effectors
Touchpoint Manager for an Touchpoint Manager for an Autonomic Computing SystemAutonomic Computing System
77
Autonomic Manager
Managed Element
Monitor
Plan
Execute
Analyze
Knowledge
Sensors Effectors
Touchpoint Manager for an Touchpoint Manager for an Autonomic ContainerAutonomic Container
Test Controller
88
Autonomic Manager
Managed Element
Monitor
Plan
Execute
Analyze
Knowledge
Sensors Effectors
Touchpoint Manager for an Touchpoint Manager for an Autonomic ContainerAutonomic Container
Test Monitor
Test Controller
99
Autonomic Manager
Managed Element
Monitor
Plan
Execute
Analyze
Knowledge
Sensors Effectors
Touchpoint Manager for an Touchpoint Manager for an Autonomic ContainerAutonomic Container
Test Monitor
Test Analyzer
Test Controller
1010
Autonomic Manager
Managed Element
Monitor
Plan
Execute
Analyze
Knowledge
Sensors Effectors
Touchpoint Manager for an Touchpoint Manager for an Autonomic ContainerAutonomic Container
Test Monitor
Test Analyzer Test Planner
Test Controller
1111
Autonomic Manager
Managed Element
Monitor
Plan
Execute
Analyze
Knowledge
Sensors Effectors
Touchpoint Manager for an Touchpoint Manager for an Autonomic ContainerAutonomic Container
Test Monitor
Test Analyzer Test Planner
Test Executor (Runner)
Test Controller
1212
Completed Autonomic Container Completed Autonomic Container Touchpoint ManagerTouchpoint Manager
Autonomic Manager
Managed Element
Monitor
Plan
Execute
Analyze
Knowledge
Sensors Effectors
Test Analyzer
Test Monitor
Test Planner
Test ExecutorTest Controller
1313
3. Architecture of an Autonomic Container3. Architecture of an Autonomic Container
Test Monitor
Managed Element
Application
ME State Info
Test Coordinator GetStateME()
Copy of Managed Element
GetStateME Complete
ME State Info
Test Analyzer
TCO Evaluator
TS Analyzer
State Analyzer
4. Analyze TS()
5. AnalyzeTS Complete
1. InitValidation()
(a), (e)
(a) ME State Info
(b) TCO Policy
(c) TCO Data
(d) Templated Base TC’s (e) Current TS
(f) TSched Policy
Test Planner
TC Generator
Test Scheduler
Test Executer
TC Runner Code Profiler
2. CreateTestPlan()
3. InitTSAnalysis()
6. InitTSAnalysis Complete
updated (e)
Test Repository
7. CreateTestPlan Complete
8. InitTest()
10. Test()11. TestComplete
9.
ProfilingInfo
TCO Data
1414
Our ContributionOur Contribution
We are in charge of working on the We are in charge of working on the managed element and the test executer.managed element and the test executer.
For the Autonomic Container, we need to For the Autonomic Container, we need to be able to make a copy of the managed be able to make a copy of the managed element that will run parallel to the original element that will run parallel to the original element. element.
During runtime, the copy of the element During runtime, the copy of the element will be tested on and updated as the will be tested on and updated as the original element is updated.original element is updated.
1515
When a change is requested, the contents When a change is requested, the contents of the managed element copy are of the managed element copy are switched with the original element.switched with the original element.
1616
Implementation of an Autonomic Implementation of an Autonomic ContainerContainer
In order to implement the Autonomic In order to implement the Autonomic Container, we need a simple application to Container, we need a simple application to run. run.
The simple application we have chosen to The simple application we have chosen to run is a stack.run is a stack.
This stack is a simple data structure This stack is a simple data structure written in Java that contains the functions written in Java that contains the functions push, pop, and resize. push, pop, and resize.
1717
4. What testing tools are being used for 4. What testing tools are being used for this project?this project?
To test this project we will be using two To test this project we will be using two testing tools. They are JUnit and the testing tools. They are JUnit and the Rational Functional Tester.Rational Functional Tester.
1818
What is JUnit?What is JUnit?
JUnit is a unit testing framework for Java.JUnit is a unit testing framework for Java. JUnit is part of a family of unit testing JUnit is part of a family of unit testing
frameworks [1]frameworks [1] PyUnit (Python language version)PyUnit (Python language version) fUnit (Fortran language version)fUnit (Fortran language version) CPPUnit (C++ language version)CPPUnit (C++ language version)
Collectively referred to as xUnit Collectively referred to as xUnit frameworks.frameworks.
1919
What is Rational Functional Tester?What is Rational Functional Tester?
An automated functional and regression An automated functional and regression testing tool for testing and GUI testing tool for testing and GUI development that can be used with Java development that can be used with Java and Microsoft VisualStudio and Microsoft VisualStudio
Can be used with web-based applicationsCan be used with web-based applications
2020
DemonstrationDemonstration
2121
SourcesSources
[1] Wikipedia – JUnit[1] Wikipedia – JUnithttp://en.wikipedia.org/wiki/JUnithttp://en.wikipedia.org/wiki/JUnit
[2] IBM – Rational Functional Tester[2] IBM – Rational Functional Testerhttp://www-306.ibm.com/software/awdtools/tester/functional/http://www-306.ibm.com/software/awdtools/tester/functional/