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