Java Autonomic Agent Framework
with Self-Testing
Andrew Diniz da Costa
Camila Nunes
[email protected]
[email protected]
Roadmap
• Motivation
• Related Works
• Proposal
• Challenges
• Conclusions
© LES/PUC-Rio
2
Motivation
• Many strategies have been proposed to address the
problems associated with managing increasingly complex
computing systems.
• IBM’s Autonomic Computing (AC) paradigm is one such
strategy
• Researchers have been heavily investigating many areas of
AC systems but there remains a lack of development in the
area of testing these systems at runtime.
© LES/PUC-Rio
3
Motivation
• Dynamic self-configuration, self-healing, self-optimizing, and
self-protecting features of autonomic systems require that
validation be an integral part of these types of systems.
• Some works revealed that one of the most dormant areas of
AC research is the dynamic validation of these selfmanaging systems.
– Quality of service
– Trust of self-adaptation
© LES/PUC-Rio
4
Motivation
• There were not works found that apply self-test with SMA
frameworks.
• Offer support to apply self-test in agents of software
• Define new control-loops with test.
© LES/PUC-Rio
5
Related Work (1)
• The control loop is defined as:
– Monitoring mechanisms
– Diagnosis mechanisms
– Adaptation strategies
• A prototype implementation consists of a pre-processing
and a generation step.
• Pre-processing test:
– Identify possible integration problems
– Generate test cases for revealing integration problems
– Design suitable recovery actions
• Applications
– World-Weather
– Virtual-Store
– Personal-Mobility-Manager (PMM)
Denaro, G., Pezze, M., and Tosi, D. 2007. Designing Self-Adaptive Service-Oriented Applications. In
Proceedings of the Fourth international Conference on Autonomic Computing (June 11 - 15, 2007).
International Conference on Autonomic Computing. IEEE Computer Society, Washington, DC.
© LES/PUC-Rio
6
Related Work (1)
Application
Service
Mismatches
Test Cases
Adapters
World-Weather
1
1
1
1
Virtual-store
3
11
24
11
PMM
7
24
66
24
© LES/PUC-Rio
7
Related Work (2)
• Propose a methodology for testing AC System using copies
of managed resources
Stevens, R., Parsons, B., and King, T. M. 2007. A self-testing autonomic container. In Proceedings of the
45th Annual Southeast Regional Conference (Winston-Salem, North Carolina, March 23 - 24, 2007). ACMSE 45. ACM, New York, NY, 1-6.
© LES/PUC-Rio
8
Related Work (3)
• Metrics and Evaluation
– Quality of Service (QoS)
– Cost
– Granularity and Flexibility
– Failure avoidance
– Degree of Autonomy
– Time to adapt and reaction time
– Stabilization
• These metrics are more general than other
Evaluation Issues in Autonomic Computing. International Workshop on Agents and Autonomic Computing
and Grid Enabled Virtual Organizations (AAC-GEVO’2004). LNCS.
© LES/PUC-Rio
9
Proposal
•
Extend the JAAF to apply self-testing.
•
Define an activity of Test that can be used in different control loops.
•
Propose a new control loop.
•
Define attributes of quality.
•
The framework offers support to:
– Define which test cases to execute
• Integration with JUnit, RFT
– Input data (pool)
– Execution of the test cases
– Output data (log)
– Decide what to do
•
Measurement
© LES/PUC-Rio
10
New Control Loop
Self-Adaptation
Layer
TDL
QSDL
Selection of
test cases
(1)
(3)
Execution
Data for testing
(quality of service)
(2)
Output Log
Tester
Decision
Analyze
Collect
Effector
Collect
Data
© LES/PUC-Rio
Format
11
“Selection of Test Cases” Activity
• Test Definition Language (TDL)
TDL file
<testcases>
<setTestCase version=“1.0” type=“JUnit” context=“travel” priority=“1”>
<testcase classname=“SumUnit.class” priority=“1”>
<testcase classname=“MultUnit.class” priority=“2”>
<testcase classname=“DivUnit.class” priority=“3”>
</setTestCase>
<setTestCase version=“1.0” type=“RFT” context=“travel” priority= “2”>
<testcase classname=“reportRFT.class” priority=“1”>
<testcase classname=“warningRFT.class” priority=“2”>
<testcase classname=“printRFT.class” priority=“3”>
</setTestCase>
...
</testcases>
© LES/PUC-Rio
12
“Data for Testing” Activity
• Quality of Service Definition Language (QSDL file)
QSDL file
<contexts>
<context version=“1.0” name=“travel”>
<data name=“cost” value=“2000”>
<data name=“flexible” value=“String”>
<data name=“complexity” value=“3”>
</context>
<context version=“2.0” name=“travel”>
<data name=“cost” value=“1000”>
<data name=“flexible” value=“Double”>
<data name=“complexity” value=“2”>
</context>
...
</contexts>
© LES/PUC-Rio
13
Class Diagram
© LES/PUC-Rio
14
Case Study
• Virtual Market Place
• Using OWL-S
• Searching a domain more real
© LES/PUC-Rio
15
Challenges
• Measurement in control loops*
– Impact of the adaptation
• Norms with self-testing
• Reputation with self-testing
© LES/PUC-Rio
16
Conclusion
• Self-testing is an area without a lot of works.
• Interactions within our testing framework by implementing
the self-management characteristics such as self-healing,
self-protection and self-optimization.
• Investigate the use of safe adaptation methods.
© LES/PUC-Rio
17
The End
Download

Engenharia de Software Fidedigno - (LES) da PUC-Rio