云计算中基于数据流图的微服务划分方法
Data Flow Graph Based on Microservice Partitioning Method in Cloud Computing
DOI: 10.12677/CSA.2021.1112309, PDF,    国家自然科学基金支持
作者: 钱峥远, 王 顺, 曾国荪*:同济大学计算机科学与技术系,上海;国家高性能计算机工程技术中心同济分中心,上海
关键词: 云计算容器化微服务数据流图微服务划分Cloud Computing Containerized Microservices Data Flow Diagram Decomposition of Microservice
摘要: 容器化微服务架构是当前云计算开发的主要形式,将业务功能合理地划分为多个微服务是先决条件。因此,本文开展微服务自动划分方法研究。以数据流图作为划分基础,定义图中的分支、存储交互和普通计算三类节点,增加对数据流的频度级以及长度级的描述,重点关注数据流图中“始和终”两两外部实体间的正常处理流程。通过对数据流图中的处理流程进行遍历搜索,得到高业务内聚性的潜在微服务划分,进一步对处理流程进行分割与合并,减少微服务划分的功能模块冗余和服务间通信开销,最后得到高内聚、低耦合、少冗余的微服务划分结果。ERP应用实例分析,验证了本文划分方法的正确性,微服务运行结果相较于单体服务性能上有明显的提升。
Abstract: Containerized microservice architecture is the main form of cloud computing development at present. Dividing the business functions into multiple microservices reasonably is a prerequisite. Therefore, this paper carries out a research on automatic microservice partitioning method. In this paper, based on the division of the data flow diagram (DFD), the method defines the store interaction nodes, branch nodes and common computing nodes. It also increases the description of data flows in DFD, which contains frequency level and the length level. The method uses data flow diagram and focuses on the normal processing flows between source and target external entities. By searching normal processing flows, the method can get potential microservice decomposition with high business cohesion. Then the method splits and merges the potential microservice decomposi-tion to reduce functional module redundancy of microservices and communication overhead between microservices. Finally, the method gets the results of microservice partitioning with high cohesion, low coupling and little redundancy. Through the application verification on partitioning of basic ERP system, the correctness of the partitioning method in this paper and the high performance of microservice partitioning results are proved.
文章引用:钱峥远, 王顺, 曾国荪. 云计算中基于数据流图的微服务划分方法[J]. 计算机科学与应用, 2021, 11(12): 3060-3069. https://doi.org/10.12677/CSA.2021.1112309

参考文献

[1] Balalaie, A., Heydarnoori, A. and Jamshidi, P. (2016) Microservices Architecture Enables Devops: Migration to a Cloud-Native Architecture. IEEE Software, 33, 42-52. [Google Scholar] [CrossRef
[2] 陈韶健. Spring Cloud微服务架构实战[M]. 北京: 电子工业出版社, 2020: 7-9.
[3] 尹为强. 微服务容器化开发实战[M]. 北京: 电子工业出版社, 2020: 4-8.
[4] Thönes, J. (2015) Microservices. IEEE Software, 32, 116. [Google Scholar] [CrossRef
[5] 欧阳荣彬, 王倩宜, 龙新征. 基于微服务的数据服务框架设计[J]. 华中科技大学学报(自然科学版), 2016, 44(z1): 126-130.
[6] Mohsen, A. and Amjad, I. (2016) Requirements Rec-onciliation for Scalable and Secure Microservice (De)composition. 2016 IEEE 24th International Requirements Engi-neering Conference Workshops, Beijing, 12-16 September 2016, 68-73. [Google Scholar] [CrossRef
[7] 冯志勇, 徐砚伟, 薛霄, 陈世展. 微服务技术发展的现状与展望[J]. 计算机研究与发展, 2020, 57(5): 1103-1122.
[8] Escobar, D., Cardenas, D., Amarillo, R., et al. (2016) Towards the Understanding and Evolution of Monolithic Applications as Microservices. 2016 XLII Latin American Computing Conference (CLEI), Valparaiso, 10-14 October 2016, 1-11. [Google Scholar] [CrossRef
[9] Schermann, G., Cito, J. and Leitner, P. (2015) All the Services Large and Micro: Revisiting Industrial Practice in Services Computing. International Conference on Service-Oriented Computing, Goa, 16-19 November 2015, 36-47. [Google Scholar] [CrossRef
[10] Baresi, L., Garriga, M. and Renzis, A.D. (2017) Microservices Identification through Interface Analysis. 6th European Conference on Service-Oriented and Cloud Computing, Oslo, 27-29 September 2017, 19-33. [Google Scholar] [CrossRef
[11] Tugrul, A. and Yunus, E.S. (2017) Policy Enforcement upon Software Based on Microservice Architecture. 2017 IEEE 15th International Conference on Software Engineering Re-search, Management and Applications (SERA), London, 7-9 June 2017, 283-287. [Google Scholar] [CrossRef
[12] Mazlami, G., Cito, J. and Leitner, P. (2017) Extraction of Mi-croservices from Monolithic Software. 2017 IEEE 24th International Conference on Web Service, Honolulu, 25-30 June 2017, 524-531. [Google Scholar] [CrossRef
[13] Merson, P. and Yoder, J. (2020) Modeling Micro-services with DDD. 2020 IEEE International Conference on Software Architecture Companion, Salvador, 16-20 March 2020, 7-8. [Google Scholar] [CrossRef
[14] 钟陈星, 李杉杉, 张贺, 章程. 限界上下文视角下的微服务粒度评估[J]. 软件学报, 2019, 30(10): 3227-3241.
[15] 张海藩. 软件工程导论[M]. 北京: 清华大学出版社, 1998: 40-47.