The role of limitations and SLAs in the API industry

As software architecture design is evolving to a microservice paradigm, RESTful APIs are being established as the preferred choice to build applications. In such a scenario, there is a shift towards a growing market of APIs where providers offer different service levels with tailored limitations typically based on the cost. In this context, while there are well established standards to describe the functional elements of APIs (such as the OpenAPI Specification), having a standard model for Service Level Agreements (SLAs) for APIs may boost an open ecosystem of tools that would represent an improvement for the industry by automating certain tasks during the development such as: SLA-aware scaffolding, SLA-aware testing, or SLA-aware requesters. Unfortunately, despite there have been several proposals to describe SLAs for software in general and web services in particular during the past decades, there is an actual lack of a widely used standard due to the complex landscape of concepts surrounding the notion of SLAs and the multiple perspectives that can be addressed. In this paper, we aim to analyze the landscape for SLAs for APIs in two different directions: i) Clarifying the SLA-driven API development lifecycle: its activities and participants; 2) Developing a catalog of relevant concepts and an ulterior prioritization based on different perspectives from both Industry and Academia. As a main result, we present a scored list of concepts that paves the way to establish a concrete road-map for a standard industry-aligned specification to describe SLAs in APIs.

[1]  Niall Murphy,et al.  Site Reliability Engineering: How Google Runs Production Systems , 2016 .

[2]  Jian Pei,et al.  Mining API patterns as partial orders from source code: from usage scenarios to specifications , 2007, ESEC-FSE '07.

[3]  Antonio Ruiz Cortés,et al.  Towards SLA-Driven API Gateways , 2015 .

[4]  Thomas Ledoux,et al.  A Language Support for Cloud Elasticity Management , 2014, 2014 14th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing.

[5]  Trong Duc Nguyen,et al.  Complementing global and local contexts in representing API descriptions to improve API retrieval tasks , 2018, ESEC/SIGSOFT FSE.

[6]  Asit Dan,et al.  Web services agreement specification (ws-agreement) , 2004 .

[7]  Luigi Lo Iacono,et al.  Guidelines for adopting frontend architectures and patterns in microservices-based systems , 2017, ESEC/SIGSOFT FSE.

[8]  Rocco De Nicola,et al.  SLAC: A Formal Service-Level-Agreement Language for Cloud Computing , 2014, 2014 IEEE/ACM 7th International Conference on Utility and Cloud Computing.

[9]  Jorge Bernardino,et al.  An Analysis of Public REST Web Service APIs , 2018, IEEE Transactions on Services Computing.

[10]  Antonio Ruiz Cortés,et al.  An Analysis of RESTful APIs Offerings in the Industry , 2017, ICSOC.

[11]  Francesco Torelli,et al.  SLA★: An abstract syntax for Service Level Agreements , 2010, 2010 11th IEEE/ACM International Conference on Grid Computing.

[12]  Manfred Reichert,et al.  RALph: A Graphical Notation for Resource Assignments in Business Processes , 2015, CAiSE.

[13]  Mohamed Mohamed,et al.  rSLA: A Service Level Agreement Language for Cloud Services , 2016, 2016 IEEE 9th International Conference on Cloud Computing (CLOUD).

[14]  Antonio Ruiz-Cortés,et al.  Governify for APIs: SLA-driven ecosystem for API governance , 2019, ESEC/SIGSOFT FSE.

[15]  M. Anwar Hossain,et al.  From the Service-Oriented Architecture to the Web API Economy , 2016, IEEE Internet Computing.

[16]  Luciano Baresi,et al.  A comparison framework for runtime monitoring approaches , 2017, J. Syst. Softw..

[17]  Miryung Kim,et al.  Augmenting stack overflow with API usage patterns mined from GitHub , 2018, ESEC/SIGSOFT FSE.

[18]  Antonio Ruiz-Cortés,et al.  Automated Validation of Compensable SLAs , 2018, IEEE Transactions on Services Computing.

[19]  Manuel Resinas,et al.  Modeling Service Level Agreements with Linked USDL Agreement , 2017, IEEE Transactions on Services Computing.

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

[21]  Alfonso Fuggetta,et al.  Fostering Collaboration through API Economy: The E015 Digital Ecosystem , 2016, 2016 IEEE/ACM 3rd International Workshop on Software Engineering Research and Industrial Practice (SER&IP).

[22]  Asit Dan,et al.  A Service Level Agreement Language for Dynamic Electronic Services , 2003, Electron. Commer. Res..