Page 115 - 《软件学报》2021年第5期
P. 115
晋武侠 等:基于多源特征空间的微服务可维护性评估 1339
在利用系统的源代码、修订历史、运行轨迹等多源数据,从模块性、功能性、可修改性、交互复杂性等角度评
估微服务(包括候选服务)的可维护性.实验初步验证了本文方法的有效性.提供的方法和工具为微服务拆分设
计决策提供一定参考,有助于识别潜在的存在可维护问题的微服务.
未来将扩展实验对象进一步验证本文方法,完善 MicroEvaluator 工具.其次,将分析同步和异步调用方式对
微服务代码可维护性的影响.同步调用的实现方式相对简单,但会造成请求处理延时;异步调用实现方式相对复
杂,但可减少处理延时.不同的同步调用(或异步调用)的实现范式可能也会对理解、调试、维护微服务代码带来
不同影响.此外,本文方法目前只针对单体仓库(Mono-Repo,即所有微服务集中在同一个代码库上)的微服务系
统,未来将研究多体仓库(Multi-Repo,即每个微服务有各自的代码库)微服务可维护性评估.
References:
[1] Ahmad A, Babar MA. A framework for architecture-driven migration of legacy systems to cloud-enabled software. In: Proc. of the
WICSA 2014 Companion Volume. 2014. 1−8.
[2] Chen R, Li S, Li Z. From monolith to microservices: A dataflow-driven approach. In: Proc. of the Asia-Pacific Software
Engineering Conf. (APSEC). IEEE, 2017. 466−475.
[3] Ding D, Peng X, Guo XF, Zhang J, Wu YJ. Scenario-driven and bottom-up microservice decomposition for monolithic systems.
Ruan Jian Xue Bao/Journal of Software, 2020,31(11):3461−3480 (in Chinese with English abstract). http://www.jos.org.cn/1000-
9825/6031.htm [doi: 10.13328/j.cnki.jos.006031]
[4] Gysel M, Kölbener L, Giersche W, Zimmermann O. Service cutter: A systematic approach to service decomposition. In: Proc. of
the European Conf. on Service-oriented and Cloud Computing. Springer-Verlag, 2016. 185−200.
[5] Mazlami G, Cito J, Leitner P. Extraction of microservices from monolithic software architectures. In: Proc. of the IEEE Int’l Conf.
on Web Services (ICWS). 2017. 524−531.
[6] Jin W, Liu T, Cai Y, Kazman R, Mo R, Zheng Q. Service candidate identification from monolithic systems based on execution
traces. IEEE Trans. on Software Engineering, 2019. Early Access. [doi: 10.1109/TSE.2019.2910531]
[7] Jin W, Liu T, Zheng Q, Cui D, Cai Y. Functionality-oriented microservice extraction based on execution trace clustering. In: Proc.
of the IEEE Int’l Conf. on Web Service (ICWS). IEEE, 2018. 211−218.
[8] Fritzsch J, Bogner J, Wagner S, Zimmermann A. Microservices migration in industry: Intentions, strategies, and challenges. In:
Proc. of the 2019 IEEE Int’l Conf. on Software Maintenance and Evolution (ICSME). 2019. 481−490.
[9] Bogner J, Wagner S, Zimmermann A. Automatically measuring the maintainability of service-and microservice-based systems: A
literature review. In: Proc. of theof the 27th Int’l Workshop on Software Measurement and 12th Int’l Conf. on Software Process
and Product Measurement. 2017. 107−115.
[10] Zhong CX, Li SS, Zhang H, Zhang C. Evaluating granularity of microservices-oriented system based on bounded context. Ruan
Jian Xue Bao/Journal of Software, 2019,30(10):3227−3241 (in Chinese with English abstract). http://www.jos.org.cn/1000-9825/
5797.htm [doi: 10.13328/j.cnki.jos.005797]
[11] Li S, Zhang H, Jia Z, Li Z, Zhang C, Li J, Gao Q, Ge J, Shan Z. A dataflow-driven approach to identifying microservices from
monolithic applications. Journal of Systems and Software, 2019,157:Article No.110380. [doi: 10.1109/APSEC.2017.53]
[12] Martin RC, Martin M. Agile Principles, Patterns, and Practices in C#. Prentice Hall PTR, 2006.
[13] Jonas F, Bogner J, Zimmermann A, Wagner S. From monolith to microservices: A classification of refactoring approaches. In: Proc.
of the Int’l Workshop on Software Engineering Aspects of Continuous Development and New Paradigms of Software Production
and Deployment. 2018. 128−141.
[14] Taibi D, Systä K. A decomposition and metric-based evaluation framework for microservices. In: Proc. of the Int’l Conf. on Cloud
Computing and Services Science. Springer-Verlag, 2019. 133−149.
[15] Mo R, Cai YF, Kazman R, Feng Q. Assessing an architecture’s ability to support feature evolution. In: Proc. of the IEEE Int’l Conf.
on Program Comprehension. ACM, 2018. 297−307.
[16] Baldwin CY, Clark KB, Clark KB. Design Rules: The Power of Modularity, Vol.1. MIT Press, 2000.
[17] Jin W, Cai Y, Kazman R, Zheng Q, Cui D, Liu T. ENRE: A tool framework for extensible eNtity relation extraction. In: Proc. of
the IEEE/ACM 41st Int’l Conf. on Software Engineering: Companion Proceedings (ICSE-Companion). 2019. 67−70.
[18] Mo R, Cai Y, Kazman R, Xiao L, Feng Q. Decoupling level: A new metric for architectural maintenance complexity. In: Proc. of
the Int’l Conf. on Software Engineering (ICSE). 2016. 499−510.