Building orchestrated microservice systems using declarative business processes
- PDF / 1,848,007 Bytes
- 26 Pages / 595.276 x 790.866 pts Page_size
- 62 Downloads / 181 Views
ORIGINAL RESEARCH PAPER
Building orchestrated microservice systems using declarative business processes Davi Monteiro1
· Paulo Henrique M. Maia2 · Lincoln S. Rocha3 · Nabor C. Mendonça4
Received: 17 March 2020 / Revised: 4 July 2020 / Accepted: 3 August 2020 © Springer-Verlag London Ltd., part of Springer Nature 2020
Abstract The microservices architecture style proposes a solution for efficiently scaling computational resources and solving other problems presented in the traditional monolithic architecture. Despite providing benefits, microservices bring challenges when there is a need to manage business processes that expand across the boundaries of an individual microservice. Traditional approaches such as workflows are not suitable to manage business processes in microservice systems, and existing solutions have limitations in dealing with the dynamic location of microservices. To fill that gap, this work proposes the use of declarative business processes to facilitate the modeling and execution of microservice orchestration from the perspective of data flow processes. To this end, we use Beethoven, a platform composed of a reference architecture, and a domainspecific language for expressing microservice communication flows. Finally, we demonstrate the feasibility of Beethoven in orchestrating an existing microservice application and assess its impact on the performance of the orchestrated application. Keywords Reference architecture · Domain-specific language · Microservice orchestration · Microservice composition · Declarative business process
1 Introduction Monolithic software systems are constructed as a single logical unit that encapsulates business functionalities, which share the same computational resources (e.g., memory space, CPU, and database). This architectural style has been used widely by companies since it provides a uniform and standardized codebase written in the same programming language that facilitates software engineers to address a large number of cross-cutting concerns such as logging, security features, and exception handling using aspect-oriented programming [25]. However, monolithic applications increasingly suffer from maintainability, testability, and scalability issues. In this realm, the microservices architecture (MSA) can help to alleviate these problems as each service is sup-
B
Davi Monteiro [email protected]
1
Lero, the Irish Software Research Centre, University of Limerick, Limerick, Ireland
2
State University of Ceará (UECE), Fortaleza, CE, Brazil
3
Federal University of Ceará (UFC), Fortaleza, CE, Brazil
4
University of Fortaleza (UNIFOR), Fortaleza, CE, Brazil
posed to exhibit well-defined functionality, high modularity, and, most importantly, each service should be able to evolve independently [13,29,40]. Precisely, the microservice architecture is an architectural style for building a single application as a collection of fine-grained and autonomous services, each one running in its process and communicating through lightweight mechanisms [29]. This
Data Loading...