SOMCA Inria Associate Team
The SOMCA associate team is a colloboration between the Spirals Inria team (Lille, France) and the UQÀM LATECE team (Montréal, Canada). The objective of this colloboration is to propose a novel methodology to support the runtime detection and correction of Service-Oriented Architecture anti-patterns in Mobile and Cloud Applications.
Self-Optimization of service-oriented architectures for Mobile and Cloud Applications
Service-Oriented Architecture (SOA) is an architectural style that is becoming broadly adopted as it offers the ability to develop low-cost, flexible, and scalable distributed systems by composing legacy services. This architectural style allows developers to build a wide range of Service-oriented Distributed Systems (SDS), from business systems to Cloud-based systems through mobile systems—Google, Amazon, eBay, PayPal, NetFlix, and FedEx being representative examples of this kind of distributed systems. Nonetheless, the emergence of such large systems raises several scientific challenges. Indeed, like any other complex software system, SDS have to continuously evolve in order to fit new user requirements and new execution contexts.The changes made to accommodate new user requirements and execution contexts may degrade the design and, consequently, the Quality of Service (QoS) of these systems. This often results in the appearance of design defects, also known as anti-patterns. Whereas design patterns are good solutions to common recurring design problems that software engineers face when designing and developing systems, anti-patterns are bad solutions to common design problems and correspond to defects related to the degradation of the architectural properties of SDS. Moreover, anti-patterns resulting from these changes hinder the maintenance and evolution of SDS, not only contributing to the technical debts but also incurring additional costs to the project.
Furthermore, in the case of Software-as-a-Service (SaaS) and mobile apps, the presence of anti- patterns inevitably leads to resource leaks (CPU, memory, battery, etc.), thus preventing the deployment of sustainable solutions.
The detection and correction of these defects are thus critical activities to improve the design and the QoS of SDS, in order to ease and speed up both maintenance and evolution tasks assigned to software engineers. However, current methods and techniques for the detection and correction of anti-patterns in SDS are still in their infancy, as one can assess the questionable performances of existing systems and the fragility they can exhibit. Beyond the technological complexity of the underlying platforms, we believe that addressing this challenge requires to combine expertise in software engineering and distributed systems in order to correlate symptoms collected at runtime with the software artefacts being developed (source code, configuration files, architecture descriptions, etc.).
- Laurence DUCHIEN, professor, Université Lille 1 and Inria, France
- María GÓMEZ, PhD student, Inria and Université Lille 1, France
- Geoffrey HECHT, PhD student, UQÀM, Canada and Université Lille 1, France
- Philippe MERLE, senior researcher, Inria and Université Lille 1, France
- Hafedh MILI, professor, LATECE director, UQÀM, Canada
- Naouel MOHA, professor, LATECE associate director, UQÀM, Canada — coordinator
- Francis PALMA, PhD student, UQÀM and École Polytechnique de Montréal, Canada
- Romain ROUVOY, associate professor, Université Lille 1 and Inria, France — coordinator
- Lionel SEINTURIER, professor, Université Lille 1 and Inria, France
- Guy TREMBLAY, professor, LATECE researcher and department chair, UQÀM, Canada
The long-term goal of this research program is to propose a novel and innovative methodology embodied in an software platform, to support the runtime detection and correction of SOA anti-patterns in large-scale SDS in order to continuously optimize their QoS. One originality of this program lies in the dynamic nature of the SOA environment and the application on emerging frameworks for embedded and distributed systems (e.g., Android/iOS for mobile devices, PaaS/SaaS for Cloud environments), and in particular mobile systems interacting with remote services hosted on the Cloud. To achieve this goal, we propose to follow a three-step methodology targeting three objectives :
Objective 1 : Identify and specify SOA anti-patterns. From an initial body of selected SaaS and mobile apps, we will identify the representative design-time and runtime features characterising software defects in SDS. These features will be then classified and organized in a taxonomy that will identify defect symptoms as combinations of these features and correlate them to anti- patterns. The challenge is to provide an open taxonomy that can accommodate the diversity of technologies and languages that are used to develop SDS. This initial study will therefore focus on exploring a wide diversity of software services that are available on the Internet to identify SOA anti-patterns and to formalize their specification. Furthermore, this taxonomy will be implemented as a distributed service-oriented platform that we will jointly develop in order to collect the metrics of a large body of SDS and analyzes their potential symptoms.
Objective 2 : Develop an approach to detect automatically, at runtime, SOA anti-patterns. The second objective will build on the distributed service-oriented platform and it includes the development of an approach to detect, at runtime, anti-patterns in SDS, enabling software engi- neers to continuously evaluate the design and QoS of their SDS. We will develop an approach to generate automatically detection procedures from the specifications of the anti-patterns, defined in the previous step, to detect at runtime SOA anti-patterns. The detection procedures will be integrated in a distributed control loop that will analyze the software artefacts associated to the SDS, monitor QoS dimensions and infer potential symptoms, continuously. Here, the originality of this approach will lie in the combination of design-time metrics with runtime sensors to map resource leaks to software artefacts.
Objective 3 : Develop an approach to suggest refactorings and automatically, at runtime, correct SOA anti-patterns. The third objective consists of enhancing the detection approach with an approach to reduce and fix SOA anti-patterns by suggesting refactorings, enabling software engineers to improve the design and QoS of their SDS. As in the detection, the approach will be applied in different SOA technologies and may differ depending on the SOA technology of interest. By promoting such a capability, the solution will bridge the gap between the design-time and runtime phases of a distributed system, thus enabling a continuous evolution of SDS.
Future of the associate team
The SOMCA associate team has been created in January 2014 and we apply this year for its renewal for a second term of three years. With the objective to pursue and maintain the collaboration, we hired this year one PhD student, Sarra HABCHI, who will start in October at Inria and we are currently hiring another PhD student at UQAM, who will start in January 2017. Both students will be co-supervised by Naouel MOHA and Romain ROUVOY. Thanks to these two PhD theses in co-supervision, we expect to be as much-if not more-productive as we did these last three years with the PhD thesis of Geoffrey HECHT. Moreover, we will strengthen the associate team with two external collaborators, Bram ADAMS, professor at École Polytechnique de Montréal and Yves LE TRAON, professor at the University of Luxembourg. Bram ADAMS is an expert on software release engineering and green software. Yves LE TRAON is expert on software security with a focus on software testing. Indeed, both energy and security are non-functional properties that we plan to evaluate, together with privacy, as part of the next three years in collaboration with Bram ADAMS and Yves LE TRAON. While Naouel MOHA will be a visiting professor at the University of Luxembourg from November 2016, Romain ROUVOY has already established a research collaboration with the team of Yves LE TRAON, supported by the Région Haut de France. During the next three years, we will consider machine learning approaches to learn, from a large corpus of mobile apps, design patterns and antipatterns as well as their implications on non-functional properties, thus going beyond the standard concerns of software maintenance and evolution.
Analyzing structural antipatterns in mobile applications
Participants : B. ADAMS, L. DUCHIEN, M. GÓMEZ, G. HECHT, N. MOHA, R. ROUVOY, L. SEINTURIER
As part of the PhD thesis of Geoffrey HECHT (UQAM & Inria / University of Lille 1), and María GÓMEZ (Inria / University of Lille 1), we have been working on the optimizations of mobile applications at large, focusing on the study of Android applications. More specifically, we built a dataset of 3,553 Android apps and 3,568 versions that we used as a testbed for our experiments. All these mobile apps have been statically analyzed using the PAPRIKA tool to extract their software architecture in a graph-oriented database, which is composed of 100,000,000+ nodes, 320,000,000+ properties and 346,000,000+ edges, representing a volume of 136 GB of data to explore. This dataset is made available to the research community for comparison or to perform other experiments. Thanks to PAPRIKA, we investigated i) the presence of object-oriented and Android-specific antipatterns in mobile apps, ii) the evolution of antipatterns along versions of mobile apps, and iii) the impact of antipatterns on the UI performance and energy consumption. In the latter case, we complemented PAPRIKA with a dynamic analysis toolchain that can automate and repeat the evaluation of the impact of antipatterns by reproducing indefinitely application scenarios and measuring their impact on runtime properties. Based on these studies, we have been proposing several code fixes, which can be automatically applied through the integration of the Spoon library, which is currently developed within the SPIRALS project-team. In parallel of these results, we recently initiated another activity on replicating our approach to study iOS applications. Beyond the comparison of Android and iOS ecosystems with regards to software quality issues, we also intend to investigate if changing the programming language (from Objective-C to Swift) impacts the quality of software developments.
Analyzing contractual antipatterns in cloud- and service-based systems
Participants : Y-G. GUÉHÉNEUC, P. MERLE, N. MOHA, F. PALMA, F. PETRILLO
We have worked on the quality of Cloud systems. In particular, we investigated the individual and the combined impact of Cloud patterns in a RESTful systems deployed in the cloud. Moreover, we analyzed the quality of REST APIs for Cloud Computing by identifying the best practices implemented. However, we found that these best practices are scattered in the literature and they have not be studied systematically on real-world APIs. Consequently, we surveyed the literature and compiled a catalog of 73 best practices in the design of REST APIs making APIs more understandable and reusable. Then, we performed a study of three different and well-known REST APIs from 3 cloud providers to investigate how their APIs are offered and accessed.
As part of the PhD thesis of Francis PALMA (UQAM & École Polytechnique de Montréal), we collaborated on the detection of antipatterns in service-oriented (SO) systems, while taking into account the dynamic runtime environment of these systems. We evaluated the design and quality of service (QoS) of SO systems through the detection of SO patterns and antipatterns. We proposed novel approaches for the specification and detection of SO antipatterns and patterns in SO systems relying on different SO technologies, namely SCA (Service Component Architecture), REST, and Web Services. The OW2 FRASCATI platform developed by the SPIRALS project-team has been used as an underlying platform to perform the analysis of SO systems.
SoftwareWe created an organization on the GITHUB platform, which is dedicated to the software developments that have been initiated as part of this associate team : https://github.com/SOMCA
More specifically, we can report on three key software toolkits that we developed as part of the SOMCA associate team:
- is a software toolkit to statically analyze mobile applications at large. PAPRIKA can analyze mobile applications based on their source code or their bytecode (using the SOOT library) and maps the software architecture of these applications into a bag of graphs representing the key concepts of the uploaded applications. Then, PAPRIKA automatically extracts the associated code metrics (lines of code, complexity, etc.) and computes the appropriate membership functions that can be used during the detection of mobile antipatterns. In particular, PAPRIKA provides a query language that integrates the concepts of Fuzzy Logic to cope with the uncertainty of subjective antipatterns (e.g., long methods or complex class). The current version of PAPRIKA succeeds to find structural antipatterns across thousands of mobile applications and allows the correction of a subset of antipatterns (using the SPOON library).
- DUNE & HOTPEPPER
- are software toolkits to dynamically analyze mobile applications. DUNE and HOTPEPPER propose to run developed-defined or randomly-defined user scenarios that maximise the number of activated antipatterns to evaluate their impact on UI performance and energy consumption, respectively. These tools sit in a continuous integration process in order to continuously inform the developer about the side-effects of new code changes. DUNE and HOTPEPPER therefore correlates the online measurements with scenario actions under different conditions. For example, DUNE explores the diversity of mobile devices (models, brands, OS versions, etc.) to investigate the impact of such contextual conditions on the performance of the mobile application under test. Collected metrics are automatically processed by these approaches to identify outliers and isolate the specific conditions and actions which trigger such performance and energy degradations (or improvements).
- is a Service Oriented Framework For Analysis, publicly available upon request, for evaluating and enhancing the quality of service oriented (SO) systems (SCA, Web Services, REST, etc.). Concretely, SOFA integrates several novel approaches for the specification and the automatic detection of SO antipatterns and patterns in SO systems relying on different SO technologies, namely SCA (Service Component Architecture), REST (REpresentational State Transfer), and Web Services. These approaches rely on state-of-the-art techniques and on the FraSCAti platform, developed by the SPIRALS project-team, to handle the dynamic nature of the SO environment and its various underlying technologies. We showed also empirically that the services satisfying patterns require less maintenance and evolution effort than other services, while the opposite is true for antipatterns.
Exchanges between the two research group
- Regular visits of G. HECHT in both teams due to his co-funded PhD thesis between UQAM and University of Lille 1 (16 months in France and 24 months in Canada),
- Visit of SPIRALS team by N. MOHA in May 2014 (Discussion on G. HECHT's progress - 1 week),
- Visit of SPIRALS team by F. PALMA in November 2014 (Collaboration with P. MERLE - 2 weeks),
- Visit of SPIRALS team by N. MOHA in November 2014 (Collaboration with R. ROUVOY and P. MERLE - 1 day),
- Visit of SPIRALS team by H. MILI in April 2015 (Seminar and meetings to identify opportunities for cooperation - 1 day),
- Visit of SPIRALS team by N. MOHA in May 2015 (Work on a funding proposal - 1 day),
- Visit of the LATECE team by R. ROUVOY in July 2015 (Collaboration on a journal paper - 1 week),
- Multiple visits of the LATECE team by M. GÓMEZ between July and October 2015 as part of her research internship with B. ADAMS in École Polytechnique de Montréal (Collaboration on a conference paper to be submitted - 3 months),
- Visit of SPIRALS team by H. MILI in April 2016 (Seminar and follow-up - 1 day),
- Visit of SPIRALS team by F. PETRILLO in June 2016 (Collaboration with P. MERLE - 2 weeks),
- Visit of the LATECE team by P. MERLE in August 2016 (Collaboration on a journal paper to be submitted - 2 weeks),
- Visit of SPIRALS team by N. MOHA in March 2016 (Work on a funding proposal - 1 day);
- Two other visits are planned by N. MOHA and G. HECHT by the end of the year.
- G. Hecht, B. Jose-Scheidt, C. De Figueiredo, N. Moha, F. Khomh. An Empirical Study of the Impact of Cloud Patterns on Quality of Service. In 6th International Conference on Cloud Computing Technology and Science (CloudCom'14). AR:17,8%. https://hal.inria.fr/hal-01088298
- F. Palma, L. An, F. Khomh, N. Moha, Y.-G. Guéhéneuc. Investigating the Change-Proneness of Service Patterns and Antipatterns. In 7th IEEE International Conference on Service-Oriented Computing and Applications (SOCA'14). AR:26%. Best paper award. https://hal.inria.fr/hal-01373626
- F. Palma, J. Dubois, N. Moha, Y.-G. Guéhéneuc. Detection of REST Patterns and Antipatterns: A Heuristics-Based Approach. In 12th International Conference on Service Oriented Computing (ICSOC'14). AR:13,9% / CORE:A.
- F. Palma, N. Moha, G. Tremblay, Y.-G. Guéhéneuc. Specification and Detection of SOA Antipatterns in Web Services. In 8th European Conference on Software Architecture (ECSA'14) AR:21,33% / CORE:A. https://hal.inria.fr/hal-01373629
- M. Gomez, M. Martinez, M. Monperrus, R. Rouvoy. When App Stores Listen to the Crowd to Fight Bugs in the Wild. In 37th International Conference on Software Engineering, track on New Ideas and Emerging Results (ICSE-NIER'15). AR:18% / CORE:A / Software Systems (scholar):#1. https://hal.inria.fr/hal-01105173
- M. Gomez, R. Rouvoy, M. Monperrus, L. Seinturier. A Recommender System of Buggy App Checkers for App Store Moderators. In 2 ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft'15). AR:16,6%. https://hal.inria.fr/hal-01117376
- F. Palma, J. González Huerta, N. Moha, Y-G. Guéhéneuc, G. Tremblay, Are RESTful APIs Well-designed? Detection of Linguistic (Anti)patterns. In 13 International Conference on Service Oriented Computing (ICSOC'15). AR:16% / CORE:A. https://hal.inria.fr/hal-01373632
- G. Hecht, B. Omar, R. Rouvoy, N. Moha, L. Duchien, Tracking the Software Quality of Android Applications along their Evolution. In 30th IEEE/ACM International Conference on Automated Software Engineering (ASE'15). AR:20,7% / CORE:A / Software Systems (scholar):#14. https://hal.inria.fr/hal-01178734
- M. Gomez, R. Rouvoy, B. Adams, L. Seinturier. Mining Test Repositories for Automatic Detection of UI Performance Regressions in Android Apps. In 13th IEEE International Conference on Mining Software Repositories (MSR'16). AR:27% / Software Systems (scholar):#11. https://hal.inria.fr/hal-01280784
- G. Hecht, N. Moha, R. Rouvoy. An Empirical Study of the Performance Impacts of Android Code Smells. In 3rd IEEE/ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft'16). AR:22,6%. https://hal.inria.fr/hal-01276904
- M. Gomez, R. Rouvoy, B. Adams, L. Seinturier. Reproducing Context-sensitive Crashes of Mobile Apps using Crowdsourced Monitoring. In IEEE/ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft'16). AR:22,6%. https://hal.inria.fr/hal-01276926
- F. Petrillo, P. Merle, N. Moha, Y.-G. Guéhéneuc. Are REST APIs for Cloud Computing Well-Designed? An Exploratory Study. In 14th International Conference on Service Oriented Computing (ICSOC'16). AR:21% / CORE:A. https://hal.inria.fr/hal-01352738