Mark Grechanik Ph.D., University of Texas at Austin
PERLATO Project
© Copyright Mark Grechanik 2012
Summary RulE Management Platforms (REMPs) allow software engineers to represent programming logic as conditional sentences that relate statements of facts (i.e., rules). REMP applications are pervasive, they are used by many major companies, various government agencies and organizations; for example, they are used to check for fraud for 90% of all credit card transactions in the USA as these transactions take place. The market for REMP engines alone is estimated to be growing at the annual rate of 10.5%, reaching \$1 Billion worldwide. A fundamental problem of REMPs lies at the intersection of performance, adaptability and reliability of rule-driven applications. In today’s rapidly changing business requirements, software adaptability is critical element that ensures success. REMPs provide software adaptability by burying the complexity of rule invocation in REMP engines and enabling stakeholders to concentrate on business aspects of highly modular rules. Naturally, rule-driven applications should exhibit excellent performance, since REMP engines should be able to invoke highly modular rules in parallel in response to asserting different facts. In reality, it is a hard and open problem to parallelize the execution of rules, since it leads to the loss of reliability and adaptability of rule-driven applications. Our research on enhancing Performance and rEliability of RuLe-driven ApplicaTiOns (PERLATO) is a three-pronged research program for enhancing performance and reliability of rule-driven applications while maintaining their adaptability, a main benefit of using REMPs. As part of PERLATO, we create, evaluate and deploy: 1) new theories, algorithms and techniques for automatically obtaining models that approximate executions of rule-driven applications, thus paving a way for effective and efficient concurrency analysis tools; 2) a novel way in which feedback can be designed for REMPs to penetrate their layers to optimize the core of REMP for better performance of specific rule-driven applications, and 3) a novel use of rule scheduling to both enhance the performance and ensure reliability of the rule-driven applications. Our preliminary results indicate that this problem is finally solvable and ripe for success. Our preliminary results show that possible races can be detected statically among rules, and we created an algorithm for automatically preventing these races inside the REMP engine. Next, we use sensitivity analysis to find better schedules among simultaneously executing rules to improve the overall performance of the application. We implemented our solution for JBoss Drools and we evaluated it on three applications. The results suggest that our solution is effective, since we achieved over 225% speedup on average.                          Downloads and Experimental Results To reproduce results of our experiments with our solution for PERLATO, you need to obtain the following components and execute steps. Subject applications that we used in our experiments can be obtained from Sourceforge. The code for different components of JBoss Drools with PERLATO is available from the Dropbox, The results of experiments with subject application are available here.   People PERLATO was created at the Advanced Research In Software Engineering (ARISE) lab at the Department of Computer Science of the University of Illinois at Chicago where Mark Grechanik leads a research team. B.M. Mainul Hossain             and            Mark Grechanik Emails: mainul.raju[at]yahoo.com   and  drmark[at]uic.edu. Acknowledgments We thank Andrea Bonisiol, a graduate student of UIC and Politecnico di Milano who was co-supervised by Mark Grechanik and Carlo Ghezzi and who worked on the initial version of the analysis engine. We also thank Chen Fu from Microsoft who contributed to the earlier discussions and worked with Andrea on the static analysis engine.