Evaluating REST architectures - Approach, tooling and guidelines

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.

[1]  Samisa Abeysinghe RESTful PHP Web Services , 2008 .

[2]  N. H. Lassing,et al.  On software architecture analysis of flexibility, Complexity of changes: Size isn't everything , 1999 .

[3]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[4]  Shari Lawrence Pfleeger,et al.  Principles of survey research part 2: designing a survey , 2002, SOEN.

[5]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[6]  Julio Cesar Sampaio do Prado Leite,et al.  On Non-Functional Requirements in Software Engineering , 2009, Conceptual Modeling: Foundations and Applications.

[7]  S. Oishi How to Conduct In-Person Interviews for Surveys , 2002 .

[8]  John W. Creswell,et al.  Research Design: Qualitative, Quantitative, and Mixed Methods Approaches , 2010 .

[9]  Ralf Klamma,et al.  Today's Top "RESTful" Services and Why They Are Not RESTful , 2012, WISE.

[10]  Henry Muccini,et al.  Software architecture-based analysis and testing: a look into achievements and future challenges , 2013, Computing.

[11]  Antonio Iera,et al.  The Internet of Things: A survey , 2010, Comput. Networks.

[12]  Shari Lawrence Pfleeger,et al.  Principles of survey research: part 5: populations and samples , 2002, SOEN.

[13]  Mário Zenha Rela,et al.  Automated Reliability Prediction from Formal Architectural Descriptions , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[14]  J. Keung,et al.  Integration of RESTfulBP with BDIM decision making , 2010, Middleware Posters '10.

[15]  John Domingue,et al.  Investigating Web APIs on the World Wide Web , 2010, 2010 Eighth IEEE European Conference on Web Services.

[16]  Barry Boehm,et al.  Characteristics of software quality , 1978 .

[17]  Muhammad Ali Babar,et al.  Comparison of scenario-based software architecture evaluation methods , 2004, 11th Asia-Pacific Software Engineering Conference.

[18]  H. Vincent Poor,et al.  Privacy-security tradeoffs in reusable biometric security systems , 2010, 2010 IEEE International Conference on Acoustics, Speech and Signal Processing.

[19]  รศ.ดร.ธีรศักดิ์ อุ่นอารมย์เลิศ,et al.  Research Design: Qualitative, Quantitative, and Mixed Method Approaches , 2016 .

[20]  Zongjie Wang,et al.  Research on three-layered metadata model for oil-gas data integration , 2011, 2011 IEEE International Conference on Cloud Computing and Intelligence Systems.

[21]  Naomi B. Robbins,et al.  Design of Diverging Stacked Bar Charts for Likert Scales and Other Applications , 2014 .

[22]  Liming Zhu,et al.  An Architectural Style for Process-Intensive Web Information Systems , 2010, WISE.

[23]  Lida Xu,et al.  The internet of things: a survey , 2014, Information Systems Frontiers.

[24]  Thomas Erl,et al.  SOA Principles of Service Design , 2007 .

[25]  Heiko Koziolek,et al.  Performance evaluation of component-based software systems: A survey , 2010, Perform. Evaluation.

[26]  Leonard J. Bass,et al.  Scenario-Based Analysis of Software Architecture , 1996, IEEE Softw..

[27]  Paulo F. Pires,et al.  Towards an IoT ecosystem , 2013, SESoS.

[28]  Fanny Andalia,et al.  Implementation of Analytical Hierarchy Process On Airplane Ticket Booking Application Selection With Software Quality Requirements and Evaluation ISO / IEC 25010 : 2011 , 2018 .

[29]  Rick Kazman,et al.  Evaluating Software Architectures: Methods and Case Studies , 2001 .

[30]  Kai Petersen,et al.  Systematic Mapping Studies in Software Engineering , 2008, EASE.

[31]  Erik Sundvall,et al.  Applying representational state transfer (REST) architecture to archetype-based electronic health record systems , 2013, BMC Medical Informatics and Decision Making.

[32]  Shari Lawrence Pfleeger,et al.  Principles of survey research: part 3: constructing a survey instrument , 2002, SOEN.

[33]  Savas Parastatidis,et al.  REST in Practice - Hypermedia and Systems Architecture , 2010 .

[34]  Paulo F. Pires,et al.  Towards a View-Based Process for Designing and Documenting RESTful Service Architectures , 2015, ECSA Workshops.

[35]  Robert F. DeVellis,et al.  Scale Development: Theory and Applications. , 1992 .

[36]  Vlad Trifa,et al.  Towards physical mashups in the Web of Things , 2009, 2009 Sixth International Conference on Networked Sensing Systems (INSS).

[37]  Shari Lawrence Pfleeger,et al.  Principles of survey research part 4: questionnaire evaluation , 2002, SOEN.

[38]  Cesare Pautasso,et al.  REST: From Research to Practice , 2011 .

[39]  Tore Dybå,et al.  Evidence-Based Software Engineering for Practitioners , 2005, IEEE Softw..

[40]  Cesare Pautasso,et al.  RESTful business process management in the cloud , 2013, 2013 5th International Workshop on Principles of Engineering Service-Oriented Systems (PESOS).

[41]  Frank Leymann,et al.  A Model-Driven Approach for REST Compliant Services , 2014, 2014 IEEE International Conference on Web Services.

[42]  Philipp Slusallek,et al.  XML3DRepo: a REST API for version controlled 3D assets on the web , 2013, Web3D '13.

[43]  Daniela E. Damian,et al.  Selecting Empirical Methods for Software Engineering Research , 2008, Guide to Advanced Empirical Software Engineering.

[44]  Elisabet Estévez-Estévez,et al.  Resource management support for SCA based distributed applications , 2014, Proceedings of the 2014 IEEE Emerging Technology and Factory Automation (ETFA).

[45]  John Ebert SOA with REST: principles, patterns & constraints for building enterprise solutions with REST by Thomas Erl, Benjamin Carlyle, Cesare Pautasso, Raj Balasubramanian , 2013, SOEN.

[46]  Cesare Pautasso,et al.  REST: Advanced Research Topics and Practical Applications , 2014 .

[47]  Sam Ruby,et al.  RESTful Web Services , 2007 .

[48]  Antony Tang,et al.  Modeling constraints improves software architecture design reasoning , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[49]  S. Makki The Integration and Interoperability Issues of Legacy and Distributed Systems , 2006, 2006 Seventh International Conference on Web-Age Information Management Workshops.

[50]  Paulo F. Pires,et al.  Evaluating a Representational State Transfer (REST) Architecture: What is the Impact of REST in My Architecture? , 2014, 2014 IEEE/IFIP Conference on Software Architecture.

[51]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

[52]  Cheng-Han Tsai,et al.  An objective concept for evaluating service oriented architecture , 2011, 2011 Eighth International Conference on Fuzzy Systems and Knowledge Discovery (FSKD).

[53]  Eduardo Machado Gonçalves,et al.  Automatic Identification of Reusable Software Development Assets: Methodology and Tool , 2007, 2007 IEEE International Conference on Information Reuse and Integration.

[54]  Alexander Becker,et al.  Towards a holistic framework for describing and evaluating business benefits of a service oriented architecture , 2009, 2009 13th Enterprise Distributed Object Computing Conference Workshops.

[55]  Aris Castillo,et al.  Developing an Android based learning application for mobile devices , 2012, 2012 6th Euro American Conference on Telematics and Information Systems (EATIS).

[56]  Liming Zhu,et al.  Resource-Oriented Architecture for Business Processes , 2008, 2008 15th Asia-Pacific Software Engineering Conference.

[57]  Juan Manuel Dodero,et al.  ReST-Based Web Access to Learning Design Services , 2008, IEEE Transactions on Learning Technologies.

[58]  T. E. Dinero Scale development. , 1996, Journal of health & social policy.

[59]  Stefan Kugele,et al.  A concept for generating simplified RESTful interfaces , 2013, WWW '13 Companion.

[60]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

[61]  Banani Roy,et al.  Methods for Evaluating Software Architecture: A Survey , 2008 .

[62]  Rick Kazman,et al.  The architecture tradeoff analysis method , 1998, Proceedings. Fourth IEEE International Conference on Engineering of Complex Computer Systems (Cat. No.98EX193).

[63]  Xiao-jun Wang Metrics for Evaluating Coupling and Service Granularity in Service Oriented Architecture , 2009, 2009 International Conference on Information Engineering and Computer Science.

[64]  Brian Sletten Resource-Oriented Architecture Patterns for Webs of Data , 2013, Resource-Oriented Architecture Patterns for Webs of Data.

[65]  Jan Bosch,et al.  Scenario-based software architecture reengineering , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

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

[67]  Barbara Kitchenham,et al.  Procedures for Performing Systematic Reviews , 2004 .

[68]  Sam Newman,et al.  Building microservices - designing fine-grained systems, 1st Edition , 2015 .

[69]  Morris A. Swertz,et al.  OntoCAT -- simple ontology search and integration in Java, R and REST/JavaScript , 2011, BMC Bioinformatics.

[70]  Robert Daigneau,et al.  Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services , 2011 .

[71]  Shari Lawrence Pfleeger,et al.  Principles of survey research: part 1: turning lemons into lemonade , 2001, SOEN.

[72]  Daniel Pakkala,et al.  A survey of methods and approaches for reliable dynamic service compositions , 2013, Service Oriented Computing and Applications.

[73]  Phil Bianco Evaluating a Service-Oriented Architecture , 2007 .

[74]  Olinda de Barraza,et al.  Developing an Android based learning application for mobile devices , 2012, 2012 6th Euro American Conference on Telematics and Information Systems (EATIS).

[75]  Mark Klein,et al.  Applicability of General Scenarios to the Architecture Tradeoff Analysis Method , 2001 .

[76]  Bojan Cukic,et al.  Proactive Model-Based Performance Analysis and Security Tradeoffs in a Complex System , 2014, 2014 IEEE 15th International Symposium on High-Assurance Systems Engineering.

[77]  Ralph Deters,et al.  Using a Cloud-Hosted Proxy to support Mobile Consumers of RESTful Services , 2011, ANT/MobiWIS.

[78]  Mohamed Jmaiel,et al.  System of systems software architecture description using the ISO/IEC/IEEE 42010 standard , 2017, SAC.

[79]  Wu Chou,et al.  Infoset for Service Abstraction and Lightweight Message Processing , 2009, 2009 IEEE International Conference on Web Services.

[80]  Bill Burke RESTful Java with JAX-RS , 2009 .

[81]  Robert C. Martin Clean Code - a Handbook of Agile Software Craftsmanship , 2008 .

[82]  Roy Fielding,et al.  Architectural Styles and the Design of Network-based Software Architectures"; Doctoral dissertation , 2000 .

[83]  Steve Vinoski REST Eye for the SOA Guy , 2007, IEEE Internet Computing.