An Empirical Analysis on Web Service Anti-pattern Detection Using a Machine Learning Framework

Web Services are application components characterised by interoperability, extensibility, distributed application development and service oriented architecture. A complex distributed application can be developed by combing several third-party web-services. Anti-patterns are counter-productive and poor design and practices. Web-services suffer from a multitude of anti-patterns such as God object Web service and Fine grained Web service. Our work is motivated by the need to build techniques for automatically detecting common web-services anti-patterns by static analysis of the source code implementing a web-service. Our approach is based on the premise that summary values of object oriented source code metrics computed at a web-service level can be used as a predictor for anti-patterns. We present an empirical analysis of 4 data sampling techniques to encounter the class imbalance problem, 5 feature ranking techniques to identify the most informative and relevant features and 8 machine learning algorithms for predicting 5 different types of anti-patterns on 226 real-world web-services across several domains. We conclude that it is possible to predict anti-patterns using source code metrics and a machine learning framework. Our analysis reveals that the best performing classification algorithm is Random Forest, best performing data sampling technique is SMOTE and the best performing feature ranking method is OneR.

[1]  W. Marsden I and J , 2012 .

[2]  Yann-Gaël Guéhéneuc,et al.  Soda: A Tool Support for the Detection of SOA Antipatterns , 2013, ICSOC Workshops.

[3]  Eric. Newcomer,et al.  Understanding SOA with Web Services , 2004 .

[4]  Jean-Marc Jézéquel,et al.  Soa Antipatterns: an Approach for their Specification and Detection , 2013, Int. J. Cooperative Inf. Syst..

[5]  Yann-Gaël Guéhéneuc,et al.  Specification and Detection of SOA Antipatterns in Web Services , 2014, ECSA.

[6]  Haibo He,et al.  Learning from Imbalanced Data , 2009, IEEE Transactions on Knowledge and Data Engineering.

[7]  Jaroslav Král,et al.  Popular SOA Antipatterns , 2009, 2009 Computation World: Future Computing, Service Computation, Cognitive, Adaptive, Content, Patterns.

[8]  Alejandro Zunino,et al.  Anti-pattern free code-first web services for state-of-the-art Java WSDL generation tools , 2013, Int. J. Web Grid Serv..

[9]  Jaroslav Král,et al.  The Most Important Service-Oriented Antipatterns , 2007, International Conference on Software Engineering Advances (ICSEA 2007).

[10]  Marouane Kessentini,et al.  Search-Based Web Service Antipatterns Detection , 2017, IEEE Transactions on Services Computing.

[11]  Huan Liu,et al.  Toward integrating feature selection algorithms for classification and clustering , 2005, IEEE Transactions on Knowledge and Data Engineering.

[12]  Wei-Yin Loh,et al.  A Comparison of Prediction Accuracy, Complexity, and Training Time of Thirty-Three Old and New Classification Algorithms , 2000, Machine Learning.

[13]  Sanjiva Weerawarana,et al.  Unraveling the Web services web: an introduction to SOAP, WSDL, and UDDI , 2002, IEEE Internet Computing.

[14]  Natalia Juristo Juzgado,et al.  Replication of Software Engineering Experiments , 2010, LASER Summer School.

[15]  M. Alvesson,et al.  Ways of constructing research questions: gap-spotting or problematization? , 2011 .

[16]  Jean-Marc Jézéquel,et al.  Specification and Detection of SOA Antipatterns , 2012, 2014 IEEE International Conference on Software Maintenance and Evolution.

[17]  Chris F. Kemerer,et al.  Towards a metrics suite for object oriented design , 2017, OOPSLA '91.

[18]  Guy Lapalme,et al.  Performance Measures in Classification of Human Communications , 2007, Canadian Conference on AI.

[19]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[20]  Alejandro Zunino,et al.  Detecting WSDL bad practices in code-first Web Services , 2011, Int. J. Web Grid Serv..

[21]  Barbara A. Kitchenham,et al.  The role of replications in empirical software engineering—a word of warning , 2008, Empirical Software Engineering.

[22]  Yue Kun,et al.  Underlying Techniques for Web Services: A Survey , 2004 .