Abstract
REST (REpresentational State Transfer), relying on resources as its architectural unit, is currently a popular architectural choice for building Web-based applications. It is shown that design patterns—good solutions to recurring design problems—improve the design quality and facilitate maintenance and evolution of software systems. Antipatterns, on the other hand, are poor and counter-productive solutions. Therefore, the detection of REST (anti)patterns is essential for improving the maintenance and evolution of RESTful systems. Until now, however, no approach has been proposed. In this paper, we propose SODA-R (Service Oriented Detection for Antipatterns in REST), a heuristics-based approach to detect (anti)patterns in RESTful systems. We define detection heuristics for eight REST antipatterns and five patterns, and perform their detection on a set of 12 widely-used REST APIs including BestBuy, Facebook, and DropBox. The results show that SODA-R can perform the detection of REST (anti)patterns with high accuracy. We also found that Twitter and DropBox are not well-designed, i.e., contain more antipatterns. In contrast, Facebook and BestBuy are well-designed, i.e., contain more patterns and less antipatterns.
Chapter PDF
Similar content being viewed by others
References
Bennett, K., Layzell, P., Budgen, D., Brereton, P., Macaulay, L., Munro, M.: Service-based Software: The Future for Flexible Software. In: Proceedings of Seventh Asia-Pacific Software Engineering Conference, pp. 214–221 (2000)
Daigneau, R.: Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services. Addison-Wesley (November 2011)
Demange, A., Moha, N., Tremblay, G.: Detection of SOA Patterns. In: Basu, S., Pautasso, C., Zhang, L., Fu, X. (eds.) ICSOC 2013. LNCS, vol. 8274, pp. 114–130. Springer, Heidelberg (2013)
Edwards, M.: Service Component Architecture (SCA). OASIS, USA (April 2011)
Erl, T.: SOA Design Patterns. Prentice Hall PTR (January 2009)
Erl, T., Carlyle, B., Pautasso, C., Balasubramanian, R.: SOA with REST: Principles, Patterns & Constraints for Building Enterprise Solutions with REST. The Prentice Hall Service Technology Series from Thomas Erl. (2012)
Fielding, R.T.: Architectural Styles and the Design of Network-based Software Architectures. PhD thesis (2000)
Fredrich, T.: RESTful Service Best Practices: Recommendations for Creating Web Services (May 2012)
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.) Service Oriented Computing. LNCS, vol. 7636, pp. 1–16. Springer, Heidelberg (2012)
Nayrolles, M., Moha, N., Valtchev, P.: Improving SOA Antipatterns Detection in Service Based Systems by Mining Execution Traces. In: 20th Working Conference on Reverse Engineering, pp. 321–330 (October 2013)
Palma, F., Nayrolles, M., Moha, N., Guéhéneuc, Y.G., Baudry, B., Jézéquel, J.M.: SOA Antipatterns: An Approach for their Specification and Detection. International Journal of Cooperative Information Systems 22(04) (2013)
Pautasso, C.: Some REST Design Patterns (and Anti-Patterns) (October 2009), http://www.jopera.org/node/442
Penta, M.D., Santone, A., Villani, M.L.: Discovery of SOA Patterns via Model Checking. In: 2nd International Workshop on Service Oriented Software Engineering: In Conjunction with the 6th ESEC/FSE Joint Meeting, IW-SOSWE 2007, pp. 8–14. ACM, New York (2007)
RFC2822: Internet Message Format by Internet Engineering Task Force. Technical report (2001)
Seinturier, L., Merle, P., Rouvoy, R., Romero, D., Schiavoni, V., Stefani, J.B.: A Component-Based Middleware Platform for Reconfigurable Service-Oriented Architectures. Software: Practice and Experience 42(5), 559–583 (2012)
Tilkov, S.: REST Anti-Patterns (July 2008), http://www.infoq.com/articles/rest-anti-patterns
Tilkov, S.: RESTful Design: Intro, Patterns, Anti-Patterns (December 2008), http://www.devoxx.com/
Vinoski, S.: Serendipitous Reuse. IEEE Internet Computing 12(1), 84–87 (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Palma, F., Dubois, J., Moha, N., Guéhéneuc, YG. (2014). Detection of REST Patterns and Antipatterns: A Heuristics-Based Approach. In: Franch, X., Ghose, A.K., Lewis, G.A., Bhiri, S. (eds) Service-Oriented Computing. ICSOC 2014. Lecture Notes in Computer Science, vol 8831. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-45391-9_16
Download citation
DOI: https://doi.org/10.1007/978-3-662-45391-9_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-662-45390-2
Online ISBN: 978-3-662-45391-9
eBook Packages: Computer ScienceComputer Science (R0)