Detection of SOA Patterns

  • Anthony Demange
  • Naouel Moha
  • Guy Tremblay
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8274)


The rapid increase of communications combined with the deployment of large scale information systems lead to the democratization of Service Oriented Architectures (SOA). However, systems based on these architectures (called SOA systems) evolve rapidly due to the addition of new functionalities, the modification of execution contexts and the integration of legacy systems. This evolution may hinder the maintenance of these systems, and thus increase the cost of their development. To ease the evolution and maintenance of SOA systems, they should satisfy good design quality criteria, possibly expressed using patterns. By patterns, we mean good practices to solve known and common problems when designing software systems. The goal of this study is to detect patterns in SOA systems to assess their design and their Quality of Service (QoS). We propose a three steps approach called SODOP (Service Oriented Detection Of Patterns), which is based on our previous work for the detection of antipatterns. As a first step, we define five SOA patterns extracted from the literature. We specify these patterns using “rule cards”, which are sets of rules that combine various metrics, static or dynamic, using a formal grammar. The second step consists in generating automatically detection algorithms from rule cards. The last step consists in applying concretely these algorithms to detect patterns on SOA systems at runtime. We validate SODOP on two SOA systems: Home-Automation and FraSCAti that contain respectively 13 and 91 services. This validation demonstrates that our proposed approach is precise and efficient.


Service Oriented Architecture Patterns Specification and Detection Software Quality Quality of Service (QoS) Design 


  1. 1.
    Acceleo code generator tool,
  2. 2.
    Eclipse modeling framework project,
  3. 3.
    Antoniol, G., Fiutem, R., Cristoforetti, L.: Design Pattern Recovery in Object-Oriented Software. In: 14th IEEE Intl. Conf. on Prog. Comprehension, pp. 153–160 (June 1998)Google Scholar
  4. 4.
    Banker, R.D., Datar, S.M., Kemerer, C.F., Zweig, D.: Software complexity and maintenance costs. Comm. of the ACM 36(11), 81–94 (1993)CrossRefGoogle Scholar
  5. 5.
    Basili, V., Briand, L., Melo, W.: A validation of object-oriented design metrics as quality indicators. IEEE Transactions on Software Engineering 22(10), 751–761 (1996)CrossRefGoogle Scholar
  6. 6.
    Chappell, D.: Introducing SCA (2007),
  7. 7.
    Daigneau, R.: Service Design Patterns. Addison-Wesley (2011)Google Scholar
  8. 8.
    De Lucia, A., Deufemia, V., Gravino, C., Risi, M.: Improving Behavioral Design Pattern Detection through Model Checking. In: 14th European Conf. on Soft. Maintenance and Reengineering, pp. 176–185. IEEE Comp. Soc. (March 2010)Google Scholar
  9. 9.
    Erl, T.: SOA Design Patterns. Prentice Hall PTR (2009)Google Scholar
  10. 10.
    Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley Professional (2002)Google Scholar
  11. 11.
    Galster, M., Avgeriou, P.: Qualitative Analysis of the Impact of SOA Patterns on Quality Attributes. In: 12th Intl. Conf. on Quality Software, pp. 167–170. IEEE (August 2012)Google Scholar
  12. 12.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns - Elements of Reusable Object-Oriented Software. Addison-Wesley (1994)Google Scholar
  13. 13.
    Guéhéneuc, Y.G., Antoniol, G.: DeMIMA: A Multilayered Approach for Design Pattern Identification. IEEE Trans. on Soft. Eng. 34(5), 667–684 (2008)CrossRefGoogle Scholar
  14. 14.
    Hansen, M.D.: SOA Using Java Web Services. Prentice Hall (2007)Google Scholar
  15. 15.
    Heuzeroth, D., Holl, T., Hogstrom, G., Löwe, W.: Automatic design pattern detection. In: Intl. Symp. on Micromechatronics and Human Science, pp. 94–103. IEEE Comp. Soc. (2003)Google Scholar
  16. 16.
    Hohpe, G., Easy, C.: SOA Patterns New Insights or Recycled Knowledge. Tech. rep. (2007)Google Scholar
  17. 17.
    Hu, L., Sartipi, K.: Dynamic Analysis and Design Pattern Detection in Java Programs. In: 20th Intl. Conf. on Soft. Eng. and Data Eng., pp. 842–846 (2008)Google Scholar
  18. 18.
    Ka-Yee Ng, J., Guéhéneuc, Y.G., Antoniol, G.: Identification of Behavioral and Creational Design Patterns through Dynamic Analysis. In: 3rd Intl. Work. on Progr. Comprehension through Dynamic Analysis, pp. 34–42. John Wiley (2007)Google Scholar
  19. 19.
    Milanovic, N.: Service Engineering Design Patterns. In: Second IEEE Intl. Symp. on Service-Oriented System Eng., pp. 19–26 (October 2006)Google Scholar
  20. 20.
    Moha, N., Palma, F., Nayrolles, M., Conseil, B.J., Guéhéneuc, Y.-G., Baudry, B., Jézéquel, J.-M.: Specification and Detection of SOA Antipatterns. In: Liu, C., Ludwig, H., Toumani, F., Yu, Q. (eds.) ICSOC 2012. LNCS, vol. 7636, pp. 1–16. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  21. 21.
    Oman, P., Hagemeister, J.: Metrics for assessing a software system’s maintainability. In: Proc. Conf. on Soft. Maint., pp. 337–344. IEEE Comp. Soc. Press (1992)Google Scholar
  22. 22.
    Rotem-Gal-Oz, A.: SOA Patterns. Manning Publications (2012)Google Scholar
  23. 23.
    Schulte, R.W., Natis, Y.V.: Service Oriented Architectures, Part 1. Tech. rep., Gartner (1996)Google Scholar
  24. 24.
    Seinturier, L., Merle, P., Fournier, D., Dolet, N., Schiavoni, V., Stefani, J.B.: Reconfigurable SCA Applications with the FraSCAti Platform. In: 2009 IEEE Intl. Conf. on Services Computing, pp. 268–275. IEEE Computer Society (September 2009)Google Scholar
  25. 25.
    Tsantalis, N., Chatzigeorgiou, A., Stephanides, G., Halkidis, S.: Design Pattern Detection Using Similarity Scoring. IEEE Trans. on Soft. Eng. 32(11), 896–909 (2006)CrossRefGoogle Scholar
  26. 26.
    Winkler, W.E.: String Comparator Metrics and Enhanced Decision Rules in the Fellegi-Sunter Model of Record Linkage (November 1989)Google Scholar
  27. 27.
    Yousefi, A., Sartipi, K.: Identifying distributed features in SOA by mining dynamic call trees. In: 27th IEEE Intl. Conf. on Soft. Maint., pp. 73–82. IEEE (September 2011)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Anthony Demange
    • 1
  • Naouel Moha
    • 1
  • Guy Tremblay
    • 1
  1. 1.Département d’informatiqueUniversité du Québec à MontréalCanada

Personalised recommendations