Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Evaluating REST architectures-Approach, tooling and guidelines

Published: 01 February 2016 Publication History

Abstract

We propose a guide to aid architecture evaluation activities in REST-based systems.A proof-of-concept demonstrates how the guide can help architecture evaluations.Results from a survey demonstrate the suitability and utility of the proposed guide.A Web tool was developed to facilitate the usage of the evaluation guidelines. Architectural decisions determine the ability of the implemented system to satisfy functional and quality attribute requirements. The Representational State Transfer (REST) architectural style has been extensively used recently for integrating services and applications. Its adoption to build SOA-based distributed systems brings several benefits, but also poses new challenges and risks. Particularly important among those risks are failures to effectively address quality attribute requirements such as security, reliability, and performance. A proved efficient technique to identify and help mitigate those risks is the architecture evaluation. In this paper we propose an approach, tooling, and guidelines to aid architecture evaluation activities in REST-based systems. These guidelines can be systematically used along with evaluation methods to reason about design considerations and tradeoffs. To demonstrate how the guidelines can help architecture evaluators, we present a proof of concept describing how to use the guidelines in an ATAM (Architecture Tradeoff Analysis Method) evaluation. We also present the results of a survey conducted with industry specialists who have performed architecture evaluations in real world REST-based systems in order to gauge the suitability and utility of the proposed guidelines. Finally, the paper describes a Web tool developed to facilitate the use of the evaluation guidelines.

References

[1]
U. Abelein, F. Habryn, A. Becker, Towards a holistic framework for describing and evaluating business benefits of a service oriented architecture, in: Proceedings of Enterprise Distributed Object Computing Conference Workshops, 2009, pp. 282-289.
[2]
S. Abeysinghe, Restful PHP Web Services, Packt Publishing, 2008.
[3]
T. Adamusiak, T. Burdett, N. Kurbatova, K.J. van der Velde, N. Abeygunawardena, D. Antonakaki, OntoCAT-simple ontology search and integration in Java, R and REST/JavaScript, BMC Bioinform., 12 (2011) 218.
[4]
A. Agirre, E. Estevez, M. Marcos, Resource management support for SCA based distributed applications, 2014.
[5]
L. Atzori, A. Iera, G. Morabito, The Internet of Things: A survey, Comput. Netw., 54 (2010) 2787-2805.
[6]
M.A. Babar, I. Gorton, Comparison of scenario-based software architecture evaluation methods, in: Proceedings of the 11th Asia-Pacific Software Engineering Conference, 2004, pp. 600-607.
[7]
L. Bass, P. Clements, R. Kazman, Software Architecture in Practice, Addison-Wesley, Massachusetts, 2012.
[8]
L. Bass, Klein M.H., Moreno G., Applicability of General Scenarios to the Architecture Tradeoff Analysis Method, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, Pennsylvania, 2001.
[9]
P.O. Bengtsson, J. Bosch, Scenario based software architecture reengineering, in: Proceedings of the International Conference of Software Reuse, 1998, pp. 308-317.
[10]
Berners-Lee, T., 1996. Universal Resource Identifiers-Axioms of Web Architecture Online. Available from: http://www.w3.org/DesignIssues/Axioms.html.
[11]
A. Bertolino, P. Inverardi, H. Muccini, Software architecture-based analysis and testing: a look into achievements and future challenges, Comput. J., 95 (2013) 633-648.
[12]
P. Bianco, R. Kotermanski, P. Merson, Evaluating a Service-Oriented Architecture, 2007.
[13]
B.W. Boehm, J.R. Brown, H. Kaspar, M. Lipow, G. McLeod, M. Merritt, Characteristics of Software Quality, North Holland, 1978.
[14]
B. Burke, RESTful Java with Jax-RS, O'Reilly Media, 2009.
[15]
S.R. Chidamber, C.F. Kemerer, A metrics suite for object oriented design, IEEE Trans. Softw. Eng., 20 (1994).
[16]
L. Chung, B. Nixon, E. Yu, J. Mylopoulos, Non-functional requirements in software engineering, Kluwer Academic Publishers, Boston, 2001.
[17]
P. Clements, F. Bachmann, L. Bass, D. Garlan, J. Ivers, R. Little, Documenting Software Architectures: Views and Beyond, Addison-Wesley, 2010.
[18]
P. Clements, R. Kazman, M. Klein, Evaluating Software Architectures: Methods and Case Studies, Addison-Wesley Professional, 2001.
[19]
B. Costa, P.F. Pires, F.C. Delicato, P. Merson, Evaluating a representational state transfer (REST) architecture-What is the impact of REST in my architecture?, in: Proceedings of the Eleventh Working IEEE/IFIP Conference on Software Architecture, 2014, pp. 105-114.
[20]
B. Costa, P.F. Pires, F.C. Delicato, F. Oquendo, Towards a view-based process for designing and documenting RESTful service architectures, in: Proceedings of the 2015 European Conference on Software Architecture Workshops (ECSAW '15), ACM, New York, NY, USA, 2015.
[21]
J.W. Creswell, Research Design: Qualitative, Quantitative, and Mixed Method approaches, Sage Publications, CA, 2003.
[22]
R. Daigneau, Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services, Addison-Wesley Professional, 2011.
[23]
G.T. de Cluni, T. Serrao, J.R. Monteiro Braz, T. Serrão, N. Rangel, A. Castillo, Developing an android based learning application for mobile devices, in: Proceedings of the Euro American Conference on Telematics and Information Systems (EATIS), 2012, pp. 1-7.
[24]
F.C. Delicato, P.F. Pires, T. Batista, E. Cavalcante, B. Costa, T. Barros, Towards an IoT ecosystem, in: Proceedings of the First International Workshop on Software Engineering for Systems-of-Systems (SESoS '13), ACM, New York, NY, USA, 2013, pp. 25-28.
[25]
R.F. DeVellis, Scale Development. Theory and Applications, Sage Publications, California, 2003.
[26]
J. Doboš, K. Sons, D. Rubinstein, P. Slusallek, A Steed, XML3DRepo, in: Proceedings of 18th International Conference on 3D Web Technology-Web3D '13, ACM Press, New York, 2013, pp. 47.
[27]
J.M. Dodero, E. Ghiglione, REST-based web access to learning design services, IEEE Trans. Learn. Technol., 1 (2008) 190-195.
[28]
Dukes, K.A., 2014. Likert Scale. Wiley StatsRef: Statistics Reference Online. 2014.
[29]
T. Dyba, B.A. Kitchenham, M. Jorgensen, Evidence-based software engineering for practitioners, IEEE Softw., 22 (2005) 58-65.
[30]
S. Easterbrook, J. Singer, M.-A. Storey, D. Damian, Selecting empirical methods for software engineering research, Springer, 2008.
[31]
T. Erl, SOA Principles of Service Design, Pearson Education, Boston, 2008.
[32]
T. Erl, B. Carlyle, C. Pautasso, R. Balasubramanian, H. Wilhelmsen, D. Booth, SOA with REST: Principles, Patterns & Constraints for Building Enterprise Solutions with REST, Prentice Hall, 2012.
[33]
Extended Environments Markup Language Online (2008). Available: http://www.eeml.org/.
[34]
R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, Network Working Group Request for Comments: 2616. Tech. Rep. Internet Engineering Task Force, The Internet Society, 1999.
[35]
Fielding T.F., "Architectural Styles and the Design of Network-based Software Architectures" (Ph.D. dissertation). University of California, Irvine, 2000.
[36]
J.M. Franco, R. Barbosa, M. Zenha-Rela, Automated reliability prediction from formal architectural descriptions, in: Proceedings of Joint Working IEEE/IFIP Conference on Software Architecture (WICSA) and European Conference on Software Architecture, 2012, pp. 302-309.
[37]
A. Gambi, C. Pautasso, RESTful business process management in the cloud, in: Proceedings of the International Workshop on Principles of Engineering Service-Oriented Systems (PESOS), 2013, pp. 1-10.
[38]
D. Guinard, V. Trifa, T. Pham, O. Liechti, Towards physical mashups in the Web of Things, in: Proceedings of the International Conference on Networked Sensing Systems (INSS), 2009, pp. 1-4.
[39]
M. Gulden, S. Kugele, A concept for generating simplified RESTful interfaces, in: Proceedings of the 22nd International Conference on World Wide Web companion (WWW '13 Companion), 2013, pp. 1391-1398.
[40]
F. Haupt, D. Karastoyanova, F. Leymann, B. Schroth, A model-driven approach for REST compliant services, in: Proceedings of IEEE International Conference on Web Services, 2014, pp. 129-136.
[41]
R.M. Heiberger, N.B. Robbins, Design of diverging stacked bar charts for Likert scales and other applications, J. Stat. Softw., 57 (2014) 1-32.
[42]
A. Immonen, D. Pakkala, A survey of methods and approaches for reliable dynamic service compositions, Serv. Orient. Comput. Appl., 8 (2014) 129-158.
[43]
ISO 25010:2011. Systems and software engineering-Systems and software Quality Requirements and Evaluation (SQuaRE)-System and software quality models. ISO/IEC, 2011.
[44]
ISO/IEC/IEEE 24765:2010-Systems and software engineering-Vocabulary. ISO/IEC/IEEE, 2010.
[45]
ISO/IEC/IEEE 42010:2011-Systems and software engineering-Architecture description. ISO/IEC/IEEE, 2011.
[46]
S. Jamal, R. Deters, Using a cloud-hosted proxy to support mobile consumers of RESTful services, Proc. Comput. Sci., 5 (2011) 625-632.
[47]
Kasunic, M., 2005. Designing an Effective Survey. Software Engineering Insitute. Tech. Rep. CMU/SEI-2005-HB-004, September.
[48]
R. Kazman, G. Abowd, L. Bass, P. Clements, Scenario-based analysis of software architecture, IEEE Softw., 13 (1996) 47-55.
[49]
R. Kazman, M. Klein, M. Barbacci, T. Longstaff, H. Lipson, J. Carriere, The architecture tradeoff analysis method, in: Proceedings of the International Conference on Eco-friendly Computing and Communication Systems (ICECCS), 1998, pp. 68-78.
[50]
B.A. Kitchenham, S.L. Pfleeger, Principles of survey research. Part 2: Desinging a survey, ACM SIGSOFT Softw. Eng. Notes, 26 (2001) 16-18.
[51]
B.A. Kitchenham, S.L. Pfleeger, Principles of survey research. Part 5: Populations and samples, ACM SIGSOFT Softw. Eng. Notes, 27 (2002) 17-20.
[52]
B.A. Kitchenham, S.L. Pfleeger, Principles of survey research Part 4: Questionnaire evaluation, ACM SIGSOFT Softw. Eng. Notes, 27 (2002) 20-23.
[53]
B.A. Kitchenham, S.L. Pfleeger, Principles of survey research Part 3: Constructing a survey instrument, ACM SIGSOFT Softw. Eng. Notes, 27 (2002) 20-24.
[54]
Kitchenham, B., Charters, S., 2007. Guidelines for performing systematic literature reviews in Software Engineering. Tech. Rep., Keele University/University of Durham.
[55]
Kitchenham, B.A., 2004. Procedures for performing systematic reviews. Tech. Rep., Keele University/National ICT Australia Ltd.
[56]
H. Koziolek, Performance evaluation of component-based software systems: A survey, Perform. Eval., 67 (2010) 634-658.
[57]
P.B. Kruchten, The 4+1 view model of architecture, IEEE Softw., 12 (1995) 42-50.
[58]
L. Lai, S.W. Ho, H.V. Poor, Privacy-security tradeoffs in reusable biometric security systems, in: Proceedings of the IEEE International Conference on Acoustics Speech and Signal Processing, 2010, pp. 1722-1725.
[59]
N. Lassing, D. Rijsenbrij, H.v. Vliet, On Software architecture analysis of flexibility, complexity of changes: Size isn't everything, in: Proceedings of the 2nd Nordic Software Architecture Workshop (NOSA '99), 1999.
[60]
Lewis, J., Fowler, M., (2014). Microservices Online. Available: http://martinfowler.com/articles/microservices.html.
[61]
L. Li, W. Chou, Infoset for service abstraction and lightweight message processing, in: Proceedings of the IEEE International Conference on Web Services, 2009, pp. 703-710.
[62]
Q. Lu, X. Xu, V. Tosic, J.W. Keung, L. Zhu, Integration of RESTfulBP with BDIM decision making, in: Middleware '10 Posters and Demos Track (Middleware Posters '10), ACM, New York, NY, USA, 2010.
[63]
Q. Lu, X. Xu, V. Tosic, L. Zhu, Springer Berlin HeidelbergHeidelberg, Berlin, 2012.
[64]
Z. Ma, C. Wang, Z. Wang, Research on three-layered metadata model for oil-gas data integration, in: Proceedings of IEEE International Conference on Cloud Computing and Intelligence Systems (CCIS), 2011, pp. 500-504.
[65]
S.K. Makki, The integration and interoperability issues of legacy and distributed systems, in: Proceedings of Seventh International Conference on Web-Age Information Management, 2006, pp. 21.
[66]
M. Maleshkova, C. Pedrinaci, J. Domingue, Investigating Web APIs on the World Wide Web, in: Proceedings of Eighth IEEE European Conference on Web Services, 2010, pp. 107-114.
[67]
R.C. Martin, Clean Code: A Handbook of Agile Software Craftsmanship, Pearson Education, Boston, 2009.
[68]
McCall, J., Richards, P., Walters, G., 1997. Factors in Software Quality, vol. 1-3, Italy.
[69]
J. Musgrove, B. Cukic, V. Cortellessa, Proactive model-based performance analysis and security tradeoffs in a complex system, in: Proceedings of the IEEE 15th International Symposium on High-Assurance Systems Engineering (HASE), 2014.
[70]
Musser, J., 2008. Open APIs: State of the Market. Online. Available from: http://www.infoq.com/presentations/Open-API-John-Musser.
[71]
Naab M., All architecture evaluation is not the same-Lessons learned from more than 50 architecture evaluations in industry, Software Engineering Institute, 2013.
[72]
S. Newman, Building Microservices: Designing Fine-Grained Systems, O'Reilly, 2015.
[73]
J. Nunnaly, Psychometric Theory, McGraw-Hill, New York, 1978.
[74]
OAuth Community Site (2015). Online. Available from: http://oauth.net/.
[75]
S.M. Oishi, How to Conduct In-Person Interviews for Surveys, Sage Publications, Thousand Oaks, CA, 2002.
[76]
M. Oliveira, E.M. Goncalves, K.R. Bacili, Automatic identification of reusable software development assets: Methodology and tool, in: Proceedings of the IEEE International Conference on Information Reuse and Integration, 2007, pp. 461-466.
[77]
OMA EMML (2013). Documentation Online. Available from: http://www.openmashup.org/omadocs/v1.0/index.http.
[78]
OpenID Foundation (2015). Website Online. Available from: http://openid.net/.
[79]
C. Pautasso, E. Wilde, R. Alarcon, REST: Advanced Research Topics and Practical Applications, Springer Publishing Company, 2014.
[80]
K. Petersen, R. Feldt, S. Mujtaba, M. Mattson, Systematic mapping studies in software engineering, in: Proceedings of the 12th International Conference on Evaluation and Assessment in Software Engineering (EASE'08), British Computer Society, Swinton, UK, UK, 2008, pp. 68-77.
[81]
S.L. Pfleeger, B.A. Kitchenham, Principles of survey research Part 1: Turning lemons into lemonade, ACM SIGSOFT Softw. Eng. Notes, 26 (2001) 16-18.
[82]
D. Renzel, P. Schlebusch, R. Klamma, Today's top 'RESTful' services and why they are not restful, Springer, Berlin Heidelberg, 2012.
[83]
Richardson, C., (2014). Microservices: Decomposing Applications for Deployability and Scalability Online. Available from: http://www.infoq.com/articles/microservices-intro.
[84]
L. Richardson, S. Ruby, RESTful Web Services, O'Reilly Media, Sebastopol, 2007.
[85]
Roy, B., Graham, N., 2008. Methods for Evaluating Software Architecture: A Survey. Tech. Rep., Tech Republic.
[86]
B. Sletten, Resource-Oriented Architecture Patterns for Webs of Data, Morgan & Claypool Publishers, 2013.
[87]
E. Sundvall, M. Nyström, D. Karlsson, M. Eneling, R. Chen, H. Örman, Applying representational state transfer (REST) architecture to archetype-based electronic health record systems, BMC Med. Inform. Decis. Mak., 13 (2013) 57.
[88]
A. Tang, H. van Vliet, Modeling constraints improves software architecture design reasoning, in: Proceedings of the Joint Working IEEE/IFIP Conference on Software Architecture, 2009 & European Conference on Software Architecture (WICSA/ECSA'09), 2009, pp. 253-256.
[89]
S. Vinoski, REST eye for the SOA guy, IEEE Internet Comput., 11 (2007) 82-84.
[90]
Y.H. Wang, J.C. Liao, C.H. Tsai, An objective concept for evaluating service oriented architecture, Proceedings of the Eighth International Conference on Fuzzy Systems and Knowledge Discovery, vol. 4 (2011) 2349-2353.
[91]
J. Webber, S. Parastatidis, I. Robinson, REST in Practice: Hypermedia and Systems Architecture, O'Reilly Media, Sebastopol, 2010.
[92]
E. Wilde, C. Pautasso, REST: From Research to Practice, Springer, 2011.
[93]
W. Xiao-Jun, Metrics for evaluating coupling and service granularity in service oriented architecture, in: Proceedings of the International Conference on Information Engineering and Computer Science, 2009, pp. 1-4.
[94]
X. Xu, L. Zhu, U. Kannengiesser, Y. Liu, An architectural style for process-intensive web information systems, Lect. Notes Comput. Sci., 6488 (2010) 534-547.
[95]
X. Xu, L. Zhu, Y. Liu, M. Staples, Resource-oriented architecture for business processes, in: Proceedings of the 15th Asia-Pacific Software Engineering Conference, 2008, pp. 395-402.

Cited By

View all
  • (2023)WEBAPIK: a body of structured knowledge on designing web APIsRequirements Engineering10.1007/s00766-023-00401-228:3(441-479)Online publication date: 14-Mar-2023
  • (2020)A model-driven engineering approach for the service integration of IoT systemsCluster Computing10.1007/s10586-020-03150-x23:3(1937-1954)Online publication date: 1-Sep-2020
  • (2018)A flexible data acquisition system for storing the interactions on mashup user interfacesComputer Standards & Interfaces10.1016/j.csi.2018.02.00259:C(10-34)Online publication date: 1-Aug-2018
  • Show More Cited By
  1. Evaluating REST architectures-Approach, tooling and guidelines

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image Journal of Systems and Software
    Journal of Systems and Software  Volume 112, Issue C
    February 2016
    199 pages

    Publisher

    Elsevier Science Inc.

    United States

    Publication History

    Published: 01 February 2016

    Author Tags

    1. REST
    2. Scenario-based evaluation guidelines
    3. Software architecture evaluation

    Qualifiers

    • Research-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 17 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)WEBAPIK: a body of structured knowledge on designing web APIsRequirements Engineering10.1007/s00766-023-00401-228:3(441-479)Online publication date: 14-Mar-2023
    • (2020)A model-driven engineering approach for the service integration of IoT systemsCluster Computing10.1007/s10586-020-03150-x23:3(1937-1954)Online publication date: 1-Sep-2020
    • (2018)A flexible data acquisition system for storing the interactions on mashup user interfacesComputer Standards & Interfaces10.1016/j.csi.2018.02.00259:C(10-34)Online publication date: 1-Aug-2018
    • (2017)SLA-Driven Governance for RESTful SystemsService-Oriented Computing – ICSOC 2017 Workshops10.1007/978-3-319-91764-1_30(352-356)Online publication date: 13-Nov-2017

    View Options

    View options

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media