Project

Back to overview

API-ACE: Analytics-based Continuous Design and Evolution of Microservice APIs

Applicant Pautasso Cesare
Number 184692
Funding scheme Project funding (Div. I-III)
Research institution Istituto del Software (SI) Facoltà di scienze informatiche
Institution of higher education Università della Svizzera italiana - USI
Main discipline Information Technology
Start/End 01.03.2020 - 29.02.2024
Approved amount 490'100.00
Show all

Keywords (6)

Software Architecture; Microservices; API; Analytics; API Design; API Evolution

Lay Summary (German)

Lead
Mit dem Eintritt in das Zeitalter der Kontinuität sind serviceorientierte Softwaresysteme nicht nur für den Rest der Welt offen, sondern es wird auch erwartet, dass sie sich kontinuierlich weiterentwickeln, um mit den sich ändernden Anforderungen Schritt zu halten und sich an ihre dynamische Umgebung anzupassen. Dieses Projekt konzentriert sich auf ein kritisches Element solcher Systeme, die Schnittstelle oder API, die die interne Implementierung von ihren Konsumenten entkoppelt. Das Projekt wird sich mit dem Problem befassen, dass APIs sich zusammen mit dem Rest der Architektur weiter verändern, aber das dies zunehmend schwierig und teuer wird, insbesondere wenn sichergestellt werden muss, dass jeder Teil solcher System weiterhin ein hohes Maß von Änderungen durchläuft, die kontinuierlich ausgerollt werden, mit vielen Releases pro Tag.
Lay summary

Ziel des  Projekts ist es, einen neuartigen datengetriebenen Ansatz für das Design und die Entwicklung von Microservice-APIs zu entwickeln, bei dem die Erwartungen von API-Designern kontinuierlich gegenüber der tatsächlichen Nutzung der API durch die Verbraucher validiert werden können.

Um dies zu erreichen, ist ein tieferes Verständnis der APIs und der entsprechenden Designprozesse erforderlich, damit die Auswirkungen jeder Entscheidung auf die Qualität der resultierenden Architektur abgeschätzt werden können. Durch die Fokussierung auf APIs können wir die Komplexität der damit verbundenen Probleme reduzieren, was zuvor noch nicht versucht wurde. Diese Zielsetzungen werden mittels strenger und präziser Spezifikation in Modellen erreicht, sowie durch Algorithmen, um diese Modelle automatisiert in anspruchsvollen Analysen und Prüfungen zu verwenden. Die Ergebnisse diese Analysen und Prüfungen ermöglichen es, die Rückkopplungsschleife zum API-Designer zu schließen, indem Qualitätsmängel automatisch erkannt und Redesign-Empfehlungen automatisch vorgeschlagen werden.

Obwohl das Projekt auf vielen verwandten Arbeiten in naheliegenden Themengebieten aufbauen kann, ist es nur durch die aktuellen Fortschritte in verteilten System-API-Konzepten und -Methoden, in kontinuierlichen Release-Methoden, und Prüfungs- und Analytikmethoden heute möglich, eine kontinuierliche Feedback-Schleife für API-Design und -Redesign zu erforschen. Um dies zu erreichen, werden aber neue Grundlagen in den Bereichen API- und API-Qualitätsmodellierung, API-Analytik, API-Konsistenz- und -Qualitäts-Überprüfungen, Auffinden von API-Qualitätsdefekten und API-Redesign-Empfehlungen benötigt, die dieses Projekt plant, zu liefern.
Direct link to Lay Summary Last update: 25.06.2019

Lay Summary (English)

Lead
As we enter the age of continuity, service-oriented software systems are not only open towards the rest of the world, but are expected to continuously evolve to deal with changing requirements and adapt to their dynamic environment. This project will focus on the critical element of such systems, the interface or API, which decouples the internal implementation from its consumers. The project will address the problem that APIs continue to change together with the rest of the architecture, but this becomes increasingly difficult and expensive, especially when having to ensure that each part of the system can continue to independently undergo a high frequency stream of changes, supported by continuous delivery processes handling many releases a day.
Lay summary

The objective of the project is to establish a novel data-driven approach to the design and evolution of microservice APIs where the expectations of API designers can be continuously validated against the actual usage of the API by the consumers.

To do so, a deeper understanding of APIs and the corresponding design processes is required so that the impact of each decision on the quality of the resulting architecture can be estimated. Focusing on APIs will allow us to reduce the complexity of the problems involved, which has not been attempted before. These goals will be reached by rigorous specification in models, as well as algorithms to use the models in sophisticated automated analytics and checks. The results of the analytics and checks will enable closing the feedback loop to the API designer by automatically detecting quality defects and making redesign recommendations.

While the project can build on a rich set of related works in various related areas, only recent advances in distributed system API concepts and methods, continuous release methods, and checking methods and analytics make it possible to study support for a continuous design and redesign feedback loop at the API level. For this new foundations and foundational methods in API and API quality modelling, API analytics, API consistency and quality checking, API quality defect detection, and API redesign recommendations are needed, which this project plans to deliver.

Direct link to Lay Summary Last update: 25.06.2019

Responsible applicant and co-applicants

Employees

Name Institute

Abstract

As we enter the age of continuity, service-oriented software systems are not only open towards the rest of the world, but are expected to continuously evolve to deal with changing requirements and adapt to their dynamic environment and unpredictable workloads. This project will focus on the critical element of such systems, the interface (or API), which decouples the internal implementation of every microservice from its consumers. The project will focus on the needs of designers of microservice APIs who attempt to balance consumer requirements against service implementation constraints by exposing the minimal and simplest possible surface to connect the two. While different API design strategies have been proposed (such as consumer-driven contracts or API-first design), there is a tendency to assume APIs will freeze just before the corresponding microservice is deployed into production. In reality APIs continue to change together with the rest of the microservice architecture, but their safe evolution becomes increasingly difficult and expensive, especially when having to ensure that each microservice can continue to independently undergo a high frequency stream of changes, supported by continuous delivery processes handling many releases a day. The objective of the API-ACE project is to establish a novel data-driven approach to the design and evolution of microservice APIs where the expectations of API designers can be continuously validated against the actual usage of the API by their consumers. To do so, a deeper understanding of APIs and the corresponding design processes is required so that the impact of each decision on the quality of the resulting architecture can be estimated. Focusing on APIs will allow us to reduce the complexity of the problems involved as modeling APIs will allow to abstract away implementation details of each microservice without removing the information (e.g., the behavior of consumers interacting with the API) necessary to study the relationship between critical API design decisions and the corresponding API qualities affecting the entire microservice architecture. In more detail, we plan to address the following research questions in our studies:How can API quality aspects be rigorously specified?How can API qualities be quantified beyond relying on manually created estimates?How can API qualities be checked in a rapid release context both within the delivery pipeline and at runtime? How can such checks be specified against a formal model of the API?How can a continuous feedback loop supporting the re-design of microservice APIs be established supported by a rich set of API quality indicators, design heuristics and guidances to fix quality defects?Answering these research questions in this project will require us to introduce a holistic model of APIs, integrating structural, behavioral and quality aspects and rigorously specifying them to obtain a precise and accurate representation of APIs invoked using synchronous calls as well as the ones exchanging asynchronous events or producing and consuming infinite data streams. To better quantify API qualities we will establish the foundations of novel API analytics delivering a rich set of quality metrics and indicators, and supporting the automatic reconstruction of models by mining actual API usage logs. All critical quality issues will be further formally specified as structural constraints or temporal properties, and we will develop novel static and dynamic analysis methods so that they can be transparently and automatically checked either in the delivery pipeline or at runtime. The outcome of both API analytics and checks will identify or indicate quality defects. These will enable us to close the feedback loop by mapping detected quality defects back to the formal models of the API, so that these can be contextualized and intuitively understood by human API designers. In addition, we will research the foundation for API redesign recommendations making use of established patterns and best practices.
-