Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes...

18
Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes [email protected] [email protected]

Transcript of Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes...

Page 1: Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes andrew@les.inf.puc-rio.br camila@les.inf.puc-rio.br.

Java Autonomic Agent Framework with Self-Testing

Andrew Diniz da Costa

Camila Nunes

[email protected]

[email protected]

Page 2: Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes andrew@les.inf.puc-rio.br camila@les.inf.puc-rio.br.

2© LES/PUC-Rio

Roadmap

• Motivation

• Related Works

• Proposal

• Challenges

• Conclusions

Page 3: Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes andrew@les.inf.puc-rio.br camila@les.inf.puc-rio.br.

3© LES/PUC-Rio

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.

Page 4: Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes andrew@les.inf.puc-rio.br camila@les.inf.puc-rio.br.

4© LES/PUC-Rio

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 self-managing systems.

– Quality of service

– Trust of self-adaptation

Page 5: Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes andrew@les.inf.puc-rio.br camila@les.inf.puc-rio.br.

5© LES/PUC-Rio

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.

Page 6: Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes andrew@les.inf.puc-rio.br camila@les.inf.puc-rio.br.

6© LES/PUC-Rio

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. InProceedings of the Fourth international Conference on Autonomic Computing (June 11 - 15, 2007).International Conference on Autonomic Computing. IEEE Computer Society, Washington, DC.

Page 7: Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes andrew@les.inf.puc-rio.br camila@les.inf.puc-rio.br.

7© LES/PUC-Rio

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

Page 8: Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes andrew@les.inf.puc-rio.br camila@les.inf.puc-rio.br.

8© LES/PUC-Rio

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). ACM-

SE 45. ACM, New York, NY, 1-6.

Page 9: Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes andrew@les.inf.puc-rio.br camila@les.inf.puc-rio.br.

9© LES/PUC-Rio

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.

Page 10: Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes andrew@les.inf.puc-rio.br camila@les.inf.puc-rio.br.

10© LES/PUC-Rio

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

Page 11: Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes andrew@les.inf.puc-rio.br camila@les.inf.puc-rio.br.

11© LES/PUC-Rio

New Control Loop

Collect Data

Format

Collect

Analyze

Effector

Self-AdaptationLayer

Decision

Tester

Selection of test cases

Data for testing(quality of service)

Execution

Output Log

(1)

(2)

(3)QSDLTDL

Page 12: Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes andrew@les.inf.puc-rio.br camila@les.inf.puc-rio.br.

12© LES/PUC-Rio

“Selection of Test Cases” Activity

• Test Definition Language (TDL)

<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>

TDL file

Page 13: Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes andrew@les.inf.puc-rio.br camila@les.inf.puc-rio.br.

13© LES/PUC-Rio

“Data for Testing” Activity

• Quality of Service Definition Language (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>

QSDL file

Page 14: Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes andrew@les.inf.puc-rio.br camila@les.inf.puc-rio.br.

14© LES/PUC-Rio

Class Diagram

Page 15: Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes andrew@les.inf.puc-rio.br camila@les.inf.puc-rio.br.

15© LES/PUC-Rio

Case Study

• Virtual Market Place

• Using OWL-S

• Searching a domain more real

Page 16: Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes andrew@les.inf.puc-rio.br camila@les.inf.puc-rio.br.

16© LES/PUC-Rio

Challenges

• Measurement in control loops*

– Impact of the adaptation

• Norms with self-testing

• Reputation with self-testing

Page 17: Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes andrew@les.inf.puc-rio.br camila@les.inf.puc-rio.br.

17© LES/PUC-Rio

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.

Page 18: Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes andrew@les.inf.puc-rio.br camila@les.inf.puc-rio.br.

The End