整合业务功能和数据库实体的综合微服务提取方法

Deepali Bajaj, Anita Goel, Suresh Gupta
{"title":"整合业务功能和数据库实体的综合微服务提取方法","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":"{\"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}","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

摘要

云应用程序从业人员正在以微服务的形式构建大型企业应用程序,以充分利用可扩展性、性能和可用性。微服务架构允许将大型单体应用程序拆分为小型、松散耦合的服务。服务使用 RESTful API 等轻量级协议与其他服务通信。从单体中提取微服务是一项具有挑战性的任务,大多由系统架构师根据自身技能手动完成。这种提取涉及两个方面:1)业务逻辑分区;2)数据库分区。对于业务逻辑的分区,现有的研究侧重于通过考虑类级应用中的依赖关系来进行分解。然而,随着时间的推移,单体应用类的规模会不断扩大,从而违背单一责任原则(SRP)。因此,在识别微服务时,需要考虑类内的代码。目前的研究还缺乏数据库分区,忽略了数据库实体(DE)与微服务的映射。在本文中,我们提出了一种全面的微服务抽取方法(CMEA),它考虑到了以下几点:1)同时使用类及其方法来定义和完善微服务;2)使用新设计的八条处理所有权冲突的指导规则将数据库实体与微服务关联起来。这种方法已应用于三个用 Java 实现的基准网络应用程序和一个用 Java 和 Python 实现的内部应用程序。与现有的相关研究相比,我们的研究结果表明了更好或相似的软件质量属性。CMEA 将软件质量属性提高了 22%。使用我们的方法,系统架构师可以轻松识别微服务及其 DE。CMEA 是通用的,与语言无关,因此可用于任何应用程序。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
A Comprehensive Microservice Extraction Approach Integrating Business Functions and Database Entities
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
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Cohesive Pair-Wises Constrained Deep Embedding for Semi-Supervised Clustering with Very Few Labeled Samples* Scrupulous SCGAN Framework for Recognition of Restored Images with Caffe based PCA Filtration Fuzzy Heuristics for Detecting and Preventing Black Hole Attack XAI-PDF: A Robust Framework for Malicious PDF Detection Leveraging SHAP-Based Feature Engineering Healthcare Data Security in Cloud Storage Using Light Weight Symmetric Key Algorithm
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1