180 likes | 621 Views
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. Roadmap. Motivation Related Works Proposal Challenges Conclusions. Motivation.
E N D
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
Roadmap • Motivation • Related Works • Proposal • Challenges • Conclusions © 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. © 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 © 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. © 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. 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
Related Work (1) © 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. © 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. © 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 © LES/PUC-Rio
New Control Loop Self-Adaptation Layer TDL QSDL (3) Selection of test cases Execution (1) Data for testing (quality of service) Output Log (2) Tester Decision Analyze Collect Effector Collect Data Format © 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 © 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 © LES/PUC-Rio
Class Diagram © LES/PUC-Rio
Case Study • Virtual Market Place • Using OWL-S • Searching a domain more real © LES/PUC-Rio
Challenges • Measurement in control loops* • Impact of the adaptation • Norms with self-testing • Reputation with self-testing © 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. © LES/PUC-Rio