Evaluating REST architectures—Approach, tooling and guidelinesby Bruno Costa, Paulo F. Pires, Flávia C. Delicato, Paulo Merson

Journal of Systems and Software

About

Year
2015
DOI
10.1016/j.jss.2015.09.039
Subject
Hardware and Architecture / Software / Information Systems

Text

Accepted Manuscript

Evaluating REST Architectures - Approach, Tooling and Guidelines

Bruno Costa , Paulo F. Pires , Fla´via C. Delicato , Paulo Merson

PII: S0164-1212(15)00215-0

DOI: 10.1016/j.jss.2015.09.039

Reference: JSS 9596

To appear in: The Journal of Systems & Software

Received date: 27 November 2014

Revised date: 18 September 2015

Accepted date: 30 September 2015

Please cite this article as: Bruno Costa , Paulo F. Pires , Fla´via C. Delicato , Paulo Merson , Evaluating REST Architectures - Approach, Tooling and Guidelines, The Journal of Systems & Software (2015), doi: 10.1016/j.jss.2015.09.039

This is a PDF file of an unedited manuscript that has been accepted for publication. As a service to our customers we are providing this early version of the manuscript. The manuscript will undergo copyediting, typesetting, and review of the resulting proof before it is published in its final form. Please note that during the production process errors may be discovered which could affect the content, and all legal disclaimers that apply to the journal pertain.

ACCEPTED MANUSCRIPT

AC

CE

PT

ED

M

AN

US

CR

IP

T

Highlights  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

ACCEPTED MANUSCRIPT

AC

CE

PT

ED

M

AN

US

CR

IP

T

Evaluating REST Architectures - Approach,

Tooling and Guidelines

Bruno Costa, Paulo F. Pires, Flávia C. Delicato

Department of Computer Science

Federal University of Rio de Janeiro (UFRJ)

Rio de Janeiro, Brazil {brunocosta.dsn, paulo.f.pires, fdelicato}@gmail.com

Paulo Merson

Federal Court of Accounts (TCU)

Brasília, Brazil pmerson@acm.org

Abstract—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.

Keywords- software architecture evaluation; scenario-based evaluation guidelines; REST

I. INTRODUCTION

Architectural decisions determine the ability of the implemented system to satisfy functional and quality attribute requirements. A functional requirement specifies a function that a system must be capable of performing. In turn, a quality attribute requirement (also known as ―non-functional requirement‖) qualifies the functional requirements by describing how the software will perform them [1]. For example, considering a functional requirement defined as ―in order to keep track of stock, as a store owner, he/she wants to add items back to stock when they are returned‖, some associated quality attributes may be: (i) performance, describing how long should it take to perform the task of adding the items back to stock; (ii) usability, describing how easy is the system‘s interface to the user; or (iii) security, specifying that only authorized users can perform that functionality. Since architectural decisions are among the first to be made during the software development life cycle, and they affect later stages of the development process, the impact of architectural mistakes is high. Therefore, it is important to inspect the architecture early in the development process to identify and mitigate any risks of the software solution not satisfying the quality attribute requirements. This inspection activity is referred to as software architecture evaluation [2].

Software architecture evaluation is a Software Engineering methodology composed of several activities that use as input the requirements and the architecture description. The evaluation is performed through the analysis of the design approaches and decisions present in the architecture vis-à-vis their ability to fulfil the software requirements. The architecture description typically consists of multiple architecture views and may follow, for example, the 4+1 architectural view model [3].

Among the architecture evaluation methods, scenario-based methods [4] assess the architecture based on several scenarios of interest defined by the architects, users and other stakeholders. Such scenarios are descriptions of the desired behaviour of a system under some condition regarding quality attribute. For example, a desired performance scenario for a Web-based sales system could be: ―when a user submits the purchase confirmation on the Web form the system shall perform the transaction and show the response/status message to the user in less than 5 seconds‖.

Since the nineties, several architecture evaluation methods have been proposed, such as SAAM (Scenario-based

Software Architecture Analysis Method) [5], SBAR (Scenario-based Architecture Reengineering) [6], and SAAMCS (SAAM for Complex Scenarios) [7]. Among all these methods, ATAM (Architecture Tradeoff Analysis Method) [8] has been the most widely adopted in industry and academia. Extensive literature, including several books and published case studies describe the application of ATAM. Professional training and professional certification on ATAM is also