Abstract
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.
Chapter PDF
Similar content being viewed by others
Keywords
References
Acceleo code generator tool, http://www.acceleo.org/
Eclipse modeling framework project, http://www.eclipse.org/modeling/emf/
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)
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)
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)
Chappell, D.: Introducing SCA (2007), http://www.davidchappell.com/articles/introducing_sca.pdf
Daigneau, R.: Service Design Patterns. Addison-Wesley (2011)
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)
Erl, T.: SOA Design Patterns. Prentice Hall PTR (2009)
Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley Professional (2002)
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)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns - Elements of Reusable Object-Oriented Software. Addison-Wesley (1994)
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)
Hansen, M.D.: SOA Using Java Web Services. Prentice Hall (2007)
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)
Hohpe, G., Easy, C.: SOA Patterns New Insights or Recycled Knowledge. Tech. rep. (2007)
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)
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)
Milanovic, N.: Service Engineering Design Patterns. In: Second IEEE Intl. Symp. on Service-Oriented System Eng., pp. 19–26 (October 2006)
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)
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)
Rotem-Gal-Oz, A.: SOA Patterns. Manning Publications (2012)
Schulte, R.W., Natis, Y.V.: Service Oriented Architectures, Part 1. Tech. rep., Gartner (1996)
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)
Tsantalis, N., Chatzigeorgiou, A., Stephanides, G., Halkidis, S.: Design Pattern Detection Using Similarity Scoring. IEEE Trans. on Soft. Eng. 32(11), 896–909 (2006)
Winkler, W.E.: String Comparator Metrics and Enhanced Decision Rules in the Fellegi-Sunter Model of Record Linkage (November 1989)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Demange, A., Moha, N., Tremblay, G. (2013). Detection of SOA Patterns. In: Basu, S., Pautasso, C., Zhang, L., Fu, X. (eds) Service-Oriented Computing. ICSOC 2013. Lecture Notes in Computer Science, vol 8274. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-45005-1_9
Download citation
DOI: https://doi.org/10.1007/978-3-642-45005-1_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-45004-4
Online ISBN: 978-3-642-45005-1
eBook Packages: Computer ScienceComputer Science (R0)