Variability Management meets Microservices: Six Challenges of Re-Engineering Microservice-Based Webshops
Wesley K. G. Assunção, Rio de Janeiro, Brazil
Jacob Krüger, University of Toronto, Canada
Willian D. F. Mendonça,Federal University of Paraná, Brazil
A microservice implements a small unit of functionality that it
provides through a network using lightweight protocols. So, microservices can be combined to fulfill tasks and implement features
of a larger software system—resembling a variability mechanism
in the context of a software product line (SPL). Microservices and
SPLs have similar goals, namely facilitating reuse and customizing,
but they are usually employed in different contexts. Any developer
who has access to the network can provide a microservice for any
task, while SPLs are usually intended to implement features of a
single domain. Due to their different concepts, using microservices
to implement an SPL or adopting SPL practices (e.g., variability
management) for microservices is a challenging cross-area research
problem. However, both techniques can complement each other,
and thus tackling this problem promises benefits for organizations
that employ either technique. In this paper, we reason on the importance of advancing in this direction, and sketch six concrete
challenges to initiate research, namely (1) feature identification,
(2) variability modeling, (3) variable microservice architectures, (4)
interchangeability, (5) deep customization, and (6) re-engineering
an SPL. We intend these challenges to serve as a starting point for
future research in this cross-area research direction—avoiding that
the concepts of one area are reinvented in the other.
Variability management: re-engineering microservices with delta-oriented software product lines
Maya R. A. Setyautami, Hafiyyan Sayyid Fadhlillah, Daya Adianto, Ichlasul Affan, Ade Azurat
SPLC 2020 Solution
Combining microservices and software product line engineering (SPLE) is a challenge in variability management. This paper proposes a solution to that challenge by re-engineering existing webshop systems into a product line application. We first perform feature identification to analyze the features of subject systems. We introduce a mechanism that models the variability and designs a software product line architecture based on existing features. We use a UML diagram with the UML-DOP profile to abstract microservice variability in SPLE. Then, a transformation into a product line application is conducted to generate running applications based on selected features. We utilize a preliminary framework of microservice variability based on delta-oriented programming. Solution paper
Can microservice-based online-retailers be used as an SPL?: a study of six reference architectures
Benjamin Benni, Sébastien Mosser, Jean-Philippe Caissy, Yann-Gaël Guéhéneuc
SPLC 2020 Solution
Microservices are deployable software artifacts that combine a set of business features and expose them to other microservices. Ideally, the reuse and interchanging of microservices should be easy as they are supposed to be independent of each other, both conceptually and technologically. Selecting a service to fulfill a given feature (e.g., managing a cart in a website) recalls the way Software Product Lines (SPL) allow variability. However, in practice, interchanging microservices requires knowing the features that the services propose, how they communicate with other services and their types. In this work, we propose to analyze service dependencies as feature dependencies, at the feature, structural, technological, and versioning level, to assess the interchangeability of services. We analyze six community-selected use-cases and report that services are non-interchangeable systematically. Solution paper