A Comprehensive Microservice Extraction Approach Integrating Business Functions and Database Entities

Deepali Bajaj, Anita Goel, Suresh Gupta
{"title":"A Comprehensive Microservice Extraction Approach Integrating Business Functions and Database Entities","authors":"Deepali Bajaj, Anita Goel, Suresh Gupta","doi":"10.34028/iajit/21/1/3","DOIUrl":null,"url":null,"abstract":"Cloud application practitioners are building large-scale enterprise applications as microservices, to leverage scalability, performance, and availability. Microservices architecture allows a large monolithic application to be split into small, loosely coupled services. A service communicates with other services using lightweight protocols such as RESTful APIs. Extracting microservices from the monolith is a challenging task and is mostly performed manually by system architects based on their skills. This extraction involves both: 1) Partitioning of business logic, 2) Partitioning of database. For partitioning of business logic, the existing research studies focus on decomposition by considering the dependencies in the application at the class-level. However, with the passage of time, monolith application classes outgrow their size defying the Single Responsibility Principle (SRP). So, there is a need to consider the code within the classes when identifying microservices. Current studies also lack the partitioning of database and ignore the mapping of Database Entities (DE) to the microservices. In this paper, we present a Comprehensive Microservice Extraction Approach (CMEA) that considers: 1) Both classes and their methods to define and refine microservices, 2) Associate the DE to microservices using newly devised eight guiding rules handling ownership conflicts. This approach has been applied to three benchmark web applications implemented in Java and one in-house application implemented in both Java and Python. Our results demonstrate better or similar software quality attributes in comparison to the existing related studies. CMEA improves software quality attributes by 22%. System architects can easily identify microservices along with their DE using our approach. The CMEA is generic and language-independent so it can be used for any application","PeriodicalId":161392,"journal":{"name":"The International Arab Journal of Information Technology","volume":"75 4","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2024-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"The International Arab Journal of Information Technology","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.34028/iajit/21/1/3","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Cloud application practitioners are building large-scale enterprise applications as microservices, to leverage scalability, performance, and availability. Microservices architecture allows a large monolithic application to be split into small, loosely coupled services. A service communicates with other services using lightweight protocols such as RESTful APIs. Extracting microservices from the monolith is a challenging task and is mostly performed manually by system architects based on their skills. This extraction involves both: 1) Partitioning of business logic, 2) Partitioning of database. For partitioning of business logic, the existing research studies focus on decomposition by considering the dependencies in the application at the class-level. However, with the passage of time, monolith application classes outgrow their size defying the Single Responsibility Principle (SRP). So, there is a need to consider the code within the classes when identifying microservices. Current studies also lack the partitioning of database and ignore the mapping of Database Entities (DE) to the microservices. In this paper, we present a Comprehensive Microservice Extraction Approach (CMEA) that considers: 1) Both classes and their methods to define and refine microservices, 2) Associate the DE to microservices using newly devised eight guiding rules handling ownership conflicts. This approach has been applied to three benchmark web applications implemented in Java and one in-house application implemented in both Java and Python. Our results demonstrate better or similar software quality attributes in comparison to the existing related studies. CMEA improves software quality attributes by 22%. System architects can easily identify microservices along with their DE using our approach. The CMEA is generic and language-independent so it can be used for any application
整合业务功能和数据库实体的综合微服务提取方法
云应用程序从业人员正在以微服务的形式构建大型企业应用程序,以充分利用可扩展性、性能和可用性。微服务架构允许将大型单体应用程序拆分为小型、松散耦合的服务。服务使用 RESTful API 等轻量级协议与其他服务通信。从单体中提取微服务是一项具有挑战性的任务,大多由系统架构师根据自身技能手动完成。这种提取涉及两个方面:1)业务逻辑分区;2)数据库分区。对于业务逻辑的分区,现有的研究侧重于通过考虑类级应用中的依赖关系来进行分解。然而,随着时间的推移,单体应用类的规模会不断扩大,从而违背单一责任原则(SRP)。因此,在识别微服务时,需要考虑类内的代码。目前的研究还缺乏数据库分区,忽略了数据库实体(DE)与微服务的映射。在本文中,我们提出了一种全面的微服务抽取方法(CMEA),它考虑到了以下几点:1)同时使用类及其方法来定义和完善微服务;2)使用新设计的八条处理所有权冲突的指导规则将数据库实体与微服务关联起来。这种方法已应用于三个用 Java 实现的基准网络应用程序和一个用 Java 和 Python 实现的内部应用程序。与现有的相关研究相比,我们的研究结果表明了更好或相似的软件质量属性。CMEA 将软件质量属性提高了 22%。使用我们的方法,系统架构师可以轻松识别微服务及其 DE。CMEA 是通用的,与语言无关,因此可用于任何应用程序。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信