Fig 1 - uploaded by Artem Polyvyanyy
Content may be subject to copyright.
Architecture of enterprise and microservices systems.

Architecture of enterprise and microservices systems.

Source publication
Conference Paper
Full-text available
We present heuristics that help to identify suitable consumer-oriented parts of enterprise systems which could be re-engineered as microservices. Our approach assesses the key structural and behavioural properties common to both enterprise and microservice systems, as needed to guide a microservices discovery process and coherently assess restructu...

Contexts in source publication

Context 1
... section describes the essential properties of a target system architecture that comprise an enterprise system (ES) and a microservice (MS) system, which is depicted in Fig. 1. This architecture will be used in our MS discovery approach (detailed in Section 3). The architecture reflects a unified software structure for both an ES and MS system, since a proper system migration from an ES to MS system is an incremental process in which the most prominent components are extracted and remodularized as MSs first ...
Context 2
... unified software structure for both an ES and MS system, since a proper system migration from an ES to MS system is an incremental process in which the most prominent components are extracted and remodularized as MSs first [1]. Such remodularized MSs run in a cloud setting and are integrated with the 'backend' enterprise system as depicted in the Fig. 1. The software structure of an ES (e.g., an ERP system) consists of a set of selfcontained modules (e.g., software components) drawn from different subsystems (e.g., production management), deployed on a specific execution platform. Modules consist of a set of functions (e.g., software classes) and each function consists of a number of ...

Similar publications

Chapter
Full-text available
Microservices have been introduced to industry as a novel architectural design for software development in cloud-based applications. This development has increased interest in finding new methodologies to migrate existing enterprise systems into microservices to achieve desirable performance characteristics such as high scalability, high availabili...

Citations

... By AI technique Among the AI-based techniques, a wide variety of algorithms have been employed to migrate towards microservices ( Baresi et al. 2017] Considering unsupervised techniques, the NSGA-II genetic algorithm is employed by the two studies in the category [Liu et al. 2022, Jin et al. 2021, while topic detection algorithms such as LDA [Pigazzini et al. 2019, Brito et al. 2021 Kamimura et al. 2018, Nunes et al. 2019, Kalia et al. 2021, Gysel et al. 2016, Matias et al. 2020, Ren et al. 2018, Sellami et al. 2022, Brito et al. 2021, Li et al. 2022, Bajaj et al. 2020, Trabelsi et al. 2022, Eski and Buzluca 2018, Cao and Zhang 2022, Mazlami et al. 2017, De Alwis et al. 2018 63.0% ...
... In this phase, operation documentation such as OpenAPI specifications [Al-Debagy and Martinek 2019, Baresi et al. 2017] and hardware resource dependencies [Li et al. 2022] might be required as input to perform the migration. On the other hand, a dynamic aspect of a running monolith might be represented as log traces [Kalia et al. 2021, Liu et al. 2022, Jin et al. 2021, Ren et al. 2018, Cao and Zhang 2022, Matias et al. 2020, De Alwis et al. 2018, hardware utilization metrics [Li et al. 2022] or web access logs [Bajaj et al. 2020]. Source control-based inputs include repositories and Git history of commits. ...
... Percentage [Brito et al. 2021, Kalia et al. 2021, Liu et al. 2022, Jin et al. 2021, Eski and Buzluca 2018, Mazlami et al. 2017, Matias et al. 2020, Kamimura et al. 2018, Nunes et al. 2019, Pigazzini et al. 2019, Sellami et al. 2022, Trabelsi et al. 2022, Nitin et al. 2022, De Alwis et al. 2018, Mathai et al. 2022 Class Implementation 68.1% [Li et al. 2022, Ren et al. 2018 ...
Conference Paper
Full-text available
The popularity of microservices architecture has been increasing considerably because of its capacity to alleviate monolithic architecture issues. Nonetheless, the migration of monolith systems to microservices is a complex task. This work aims to analyze and characterize the state of the art on migrating monolithic applications towards microservices (semi-) automatically using Artificial Intelligence (AI) techniques by applying a systematic mapping methodology. Results showed that clustering is the preferred IA technique to decompose a monolith, cited by 63% out of the 22 reviewed studies. Moreover, the most prevailing input type used in migration techniques was source code (36.4%).
... Effective diagnostic techniques are essential for problem resolution, and versioning allows governance over microservices' evolution [87]. Some studies explore the application of heuristics for tasks like defect diagnosis and performance optimization [88]. Recent empirical studies offer valuable insights into addressing the challenges and best practices for microservice identification and management, which are vital for a successful transition from a monolithic system to microservices. ...
... Although individual tools demonstrate promising results [8], [101], [110], none can claim to be 100 % effective in resolving their target problem. With the emergence of machine learning approaches as potential solutions to key microservices identification issues [3], [23], [47], [88], questions arise regarding the suitability of current approaches for user adoption, their applicability to all issues, and the need for performance enhancements before widespread tool adoption (UC-3). Fuzzy and ambiguous intent (UC-4) and the rapid evolution of software services using microservices, such as IoT devices, present challenges in the evolution of microservices [10], [107]. ...
Article
Full-text available
Modernizing monolithic systems through microservices architectures (MSAs) promises significant benefits in terms of scalability, agility, and cloud adoption. However, this transition hinges on accurate and efficient microservices identification, a complex area of research still in its evolution. This systematic literature review delves into this challenge by exploring three critical questions: First, we examine how the field of microservices identification has evolved over time, analyzing publication trends, categorizing existing research, and mapping out different research objectives and methodologies employed. Second, we dive into the current state-of-the-art, showcasing cutting-edge methodologies and tools developed to address microservices identification challenges. We highlight promising approaches while identifying potential limitations. Third, we unveil both existing hurdles and future challenges in this domain, painting a comprehensive picture of the obstacles and opportunities that lie ahead. Our findings illuminate key areas demanding further attention, including the need for more automated and accurate identification tools, standardized evaluation benchmarks, and a deeper understanding of the human factors involved in successful transitions. By addressing these critical gaps, we aim to pave the way for smoother and more effective modernization of monolithic systems through microservices adoption.
... This decomposition is sometimes focused on supporting migration engineers in the identification of microservice candidates by analysing the application's domain [18], [19], [20]. Other techniques involve analysing the source code [21], [22], [23], [24], execution traces [25], and version related information [26], [27]. ...
Article
Full-text available
Microservices architecture has gained significant traction, in part owing to its potential to deliver scalable, robust, agile, and failure-resilient software products. Consequently, many companies that use large and complex software systems are actively looking for automated solutions to decompose their monolith applications into microservices. This paper rigorously examines 35 research papers selected from well-known databases using a Systematic Literature Review (SLR) protocol and snowballing method, extracting data to answer the research questions, and presents the following four contributions. First, the Monolith to Microservices Decomposition Framework (M2MDF) which identifies the major phases and key elements of decomposition. Second, a detailed analysis of existing decomposition approaches, tools and methods. Third, we identify the metrics and datasets used to evaluate and validate monolith to microservice decomposition processes. Fourth, we propose areas for future research. Overall, the findings suggest that monolith decomposition into microservices remains at an early stage and there is an absence of methods for combining static, dynamic, and evolutionary data. Insufficient tool support is also in evidence. Furthermore, standardised metrics, datasets, and baselines have yet to be established. These findings can assist practitioners seeking to understand the various dimensions of monolith decomposition and the community's current capabilities in that endeavour. The findings are also of value to researchers looking to identify areas to further extend research in the monolith decomposition space.
... structural information as decomposition reasoning. Meanwhile, the metric-based method, as demonstrated by previous works, uses structural properties such as coupling [37], [39], [40], service granularity [41], size [42], and cohesion [43]. ...
Article
Full-text available
The migration of monolithic applications to the cloud is a popular trend, with microservice architecture being a commonly targeted architectural pattern. The motivation behind this migration is often rooted in the challenges associated with maintaining legacy applications and the need to adapt to rapidly changing business requirements. To ensure that the migration to microservices is a sound decision for enhancing maintainability, designers must carefully consider the underlying factors driving this software architecture migration. This study proposes a set of software architecture metrics for evaluating the maintainability of microservice architectural designs for monolith to microservice architecture migration. These metrics consider various factors, such as coupling, complexity, cohesion, and size, which are crucial for ensuring that the software architecture remains maintainable in the long term. Drawing upon previous product quality models that share similar design properties with microservice, we have derived maintainability metrics that can help measure the quality of microservice architecture. In this work, we introduced our first version of structural metrics for measuring the maintainability quality of microservice architecture concerning its cloud-native characteristics. This work allows us to get early feedback on proposed metrics before a detailed evaluation. With these metrics, designers can measure their microservice architecture quality to fully leverage the benefits of the cloud environment, thus ensuring that the migration to microservice is a beneficial decision for enhancing the maintainability of their software architecture applications.
... Other techniques also used to identify microservices are domain engineering and domain-driven design (DDD) (Josélyne et al., 2018;Krause et al., 2020), COSMIC function points (Vural, Koyuncu & Misra, 2018), functional decomposition (Tyszberowicz et al., 2018;Baresi, Garriga & De Renzis, 2017), class-based extraction model (Mazlami, Cito & Leitner, 2017), data flow-driven decomposition algorithm (Chen, Li & Li, 2017), functional partitioning through heuristics and microservices discovery algorithms (De Alwis et al., 2018), process mining (Taibi & Syst, 2019), and service cutter, a method for decomposing a service (Gysel et al., 2016). ...
Article
Full-text available
Microservices is an architectural style for service-oriented distributed computing, and is being widely adopted in several domains, including autonomous vehicles, sensor networks, IoT systems, energy systems, telecommunications networks and telemedicine systems. When migrating a monolithic system to a microservices architecture, one of the key design problems is the “microservice granularity definition”, i.e., deciding how many microservices are needed and allocating computations among them. This article describes a semantic grouping algorithm (SEMGROMI), a technique that takes user stories, a well-known functional requirements specification technique, and identifies number and scope of candidate microservices using semantic similarity of the user stories’ textual description, while optimizing for low coupling, high cohesion, and high semantic similarity. Using the technique in four validation projects (two state-of-the-art projects and two industry projects), the proposed technique was compared with domain-driven design (DDD), the most frequent method used to identify microservices, and with a genetic algorithm previously proposed as part of the Microservices Backlog model. We found that SEMGROMI yields decompositions of user stories to microservices with high cohesion (from the semantic point of view) and low coupling, the complexity was reduced, also the communication between microservices and the estimated development time was decreased. Therefore, SEMGROMI is a viable option for the design and evaluation of microservices-based applications. The proposed semantic similarity-based technique (SEMGROMI) is part of the Microservices Backlog model, which allows to evaluate candidate microservices graphically and based on metrics to make design-time decisions about the architecture of the microservices- based application.
... The main disadvantage of the above three methods is that they all require prior knowledge to conduct the identification, which makes the automation of the transition impossible. Further, building upon existing business object and system structural definitions, Alwis et al. (2018) presented heuristics for microservices discovery by function splitting. Chen proposed a semi-automate microservices identification method driven by data flow. ...
Article
Full-text available
As a new software design paradigm, microservices structure an application as a collection of services that are independently deployable and loosely coupled. A key step of migrating non‐microservices‐based systems to microservices‐based systems is the identification of microservices in the target application. Traditional approaches to identify microservices, however, usually suffer from lack of full automation and low effectiveness. This paper puts forward an expert system to identify microservices automatically from legacy systems by leveraging the similarity of RESTful APIs. The system consists of three major parts. The first part calculates the candidate topic similarity and the response message similarity of APIs, and the overall similarity is obtained through their combination. Afterwards, the second part constructs a graph of API similarities with API as the node and the overall similarity as the weight. The third part employs a graph‐based clustering algorithm to identify candidate microservices from the API similarity graph. Experiments conducted on open‐source projects demonstrate the effectiveness of our system.
... Finally, it is worth mentioning that there is a variety of works in the literature to identify microservices using other strategies [8] (e.g., API specifications [41], analysis of legacy monolithic systems [42] and functional decomposition [43]), but these will not be explored here as they are considered out of scope of our approach. ...
Article
Full-text available
Domain-driven design is one of the most used approaches for identifying microservice architectures, which should be built around business capabilities. There are a number of documentation with principles and patterns for its application. However, despite its increasing use there is still a lack of systematic approaches for creating the context maps that will be used to design the microservices. This article presents BPM2DDD, a systematic approach for identification of bounded contexts and their relationships based on the analysis of business processes models, which provide a business view of an organisation. We present an example of its application in a real business process, which has also be used to perform a comparative application with external analysts. The technique has been applied to a real project in the department of transport of a Brazilian state capital, and has been incorporated into the software development process employed by them to develop their new system.
... Reference Paper Migration to Microservices [6], [7], [11], [12], [14], [16], [19], [20], [24], [28], [29], [34], [35], [36], [40], [43], [45] Migration to Microservices and Quality [1], [5], [8], [9], [13], [15], [18], [21], [22], [23], [25], [26], [27], [30], [31], [37], [39], [41], [42], [44], [46], [47], [48], [49], [50], [51], [52], [53], [54], [55], [56], [57], [58], [59] Migration to Cloud [3] Migration to Cloud and Quality [4], [33] Migration to Cloudbased Microservices [32], [38] Migration to Cloudbased Microservices and Quality [10], [17] Table II maps each accepted paper to the proper category. Note that the highlighted papers in the Migration to Microservices and Quality entry analyse the quality aspect only in the assessment of the identified microservices. ...
... Scalability, performance, and availability were addressed by two papers (P12, P21). P12 presented discovery techniques that help identifying the appropriate parts of consumer-oriented business systems that could be redesigned as microservices with desired characteristics such as high cohesion, low coupling, high scalability, high availability, and high processing efficiency (De Alwis et al., 2018). They proposed microservice discovery algorithms and heuristics. ...
Article
Full-text available
Background Microservices are an architectural approach of growing use, and the optimal granularity of a microservice directly affects the application’s quality attributes and usage of computational resources. Determining microservice granularity is an open research topic. Methodology We conducted a systematic literature review to analyze literature that addresses the definition of microservice granularity. We searched in IEEE Xplore, ACM Digital Library and Scopus. The research questions were: Which approaches have been proposed to define microservice granularity and determine the microservices’ size? Which metrics are used to evaluate microservice granularity? Which quality attributes are addressed when researching microservice granularity? Results We found 326 papers and selected 29 after applying inclusion and exclusion criteria. The quality attributes most often addressed are runtime properties ( e.g. , scalability and performance), not development properties ( e.g. , maintainability). Most proposed metrics were about the product, both static (coupling, cohesion, complexity, source code) and runtime (performance, and usage of computational resources), and a few were about the development team and process. The most used techniques for defining microservices granularity were machine learning (clustering), semantic similarity, genetic programming, and domain engineering. Most papers were concerned with migration from monoliths to microservices; and a few addressed green-field development, but none address improvement of granularity in existing microservice-based systems. Conclusions Methodologically speaking, microservice granularity research is at a Wild West stage: no standard definition, no clear development—operation trade-offs, and scarce conceptual reuse ( e.g ., few methods seem applicable or replicable in projects other than their initial proposal). These gaps in granularity research offer clear options to investigate on continuous improvement of the development and operation of microservice-based systems.
... In Java Enterprise Edition (JEE) applications, which are the focus of our work, these techniques face challenges in dealing with dynamic language features, such as reflection, dynamic class loading, context, and dependency injections. In contrast, dynamic techniques (e.g., [12,19,23,35]) capture runtime dependencies and thus avoid the imprecision problems. However, a common challenge that still exists for both static and dynamic analysis is computing the alignment of classes and their dependencies with the business functionalities of the application, which is a primary concern in industrial practice. ...
... The time dimension considers temporal relations and co-occurrence relations among classes extracted from runtime call traces (collected by executing use cases). Existing techniques in the areas of software repackaging [35,49] and microservice extraction [12,23,24] analyze direct call relations only. We enhance those approaches in two ways. ...
... Their approach first performs function atom generation, applying hierarchical clustering based on occurrences of classes in execution traces [24] followed by the application of a genetic algorithm to merge such atoms. De Alwis et al. [12] propose an approach that recommends microservices at the level of class methods. For recommendations, they rely on execution traces generated from use cases and database tables. ...