Service Oriented Framework For Analysis

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


Objectives (2014-2016)

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.

Scientific Results

Analyzing structural antipatterns in mobile applications


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


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.


We created an organization on the GITHUB platform, which is dedicated to the software developments that have been initiated as part of this associate team :

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


  1. 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%.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. M. Gomez, R. Rouvoy, M. Monperrus, L. Seinturier. A Recommender System of Buggy App Checkers for App Store Moderators. In 2$^{nd}$ ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft'15). AR:16,6%.
  7. 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$^{th}$ International Conference on Service Oriented Computing (ICSOC'15). AR:16% / CORE:A.
  8. 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.
  9. 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.
  10. 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%.
  11. 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%.
  12. 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.


Logo Logo