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.
   110   111   112   113   114   115   116   117   118   119   120