爱思维尔

系统与软件杂志

第150卷,2019年4月,第77-97页
系统与软件杂志

微服务架构:一个系统的映射研究

https://doi.org/10.1016/j.jss.2019.01.001获取权限和内容

摘要

上下文

A微服务体系结构由一组小服务组成,每个服务在自己的进程中运行,并使用轻量级机制进行通信。关于使用微服务进行架构设计的许多方面仍有待探索,现有的研究还远未明确。

目的

我们的目标是从以下几个角度识别、分类和评估微服务架构的最新技术:出版趋势、研究重点和行业采用的潜力。

方法

我们应用系统制图方法论。我们严格选择了103项初步研究,并对其定义和应用了一个分类框架,以提取关键信息用于后续分析。我们综合了所获得的数据,并给出了最新技术的清晰概述。

结果

这项工作有助于(i)a分类框架对于微服务架构的研究,(ii)a系统图对当前该领域的研究,(iii)对工业界采用研究成果的潜力进行评估,以及(iv)讨论新兴的调查结果和影响为了将来的研究。

结论

这项研究提供了一个坚实的,严格的,可复制的关于微服务架构的现状的图片。它的研究结果对该领域的研究人员和实践者都有好处。

介绍

亚马逊、Netflix、LinkedIn、Spotify、SoundCloud和其他公司(Fowler、Lewis、Villamizar、Garcés、Castro、Verano、Salamanca、Casallas、Gil,2015、Yahia、Réveillère、Bromberg、Chevalier、Cadot,2016)已将其应用程序向微服务架构(MSA)发展。对于微服务架构风格,最为公认的定义是Fowler和Lewis(2014)提供的定义,他们将其描述为一种将单个应用程序开发为一组小服务的方法,每个服务都在自己的进程中运行,并与轻量级机制(通常是HTTP资源API)通信.

近年来,微服务体系结构风格从研究的角度受到了极大的关注。然而,时至今日,对于研究人员和实践者来说,很难对现有的微服务架构研究解决方案有一个清晰的认识。这个目标本文旨在描述当前的技术现状,以了解微服务架构的科学研究。

为了实现这一目标,我们设计并进行了系统的制图研究方法论具体来说,我们从532篇可能相关的论文中选取了103篇初步研究,我们严格定义了一个分类框架,对微服务架构的研究成果进行了分类,并将其应用于103项初步研究。最后,我们综合所获得的数据,以清楚地概述使用微服务进行架构设计的现状。此外,我们还评估了微服务架构的研究成果如何可能被转移到工业项目中并被采用。这种评估可以起到参考框架的作用,使研究成果更顺利地转化为实践。

主要贡献本研究包括:

一个可重用的框架,用于分类、比较和评估特定于微服务的体系结构解决方案、方法和技术(例如,策略、模式、样式、视图、模型、参考体系结构或体系结构语言);

最新的微服务架构的最新地图;

评估现有微服务架构研究成果在工业上的应用潜力;

以证据为基础的讨论新兴的研究趋势、模式和差距,以及它们对未来微服务架构研究的影响。

这项研究是我们先前关于微服务架构研究的扩展版本(Di Francesco et al.,2017b)。本研究增加的创新之处在于:(i)将一套初级研究从71个条目扩展到103个条目,因为现在我们涵盖的出版物一直到2017年5月初;(ii)对提取的数据进行了更深入的阐述,(三)分类框架各参数间潜在交互作用的正交分析;(四)多年来的研究趋势分析。

这个观众本研究由两部分组成(i)研究人员有兴趣研究微服务体系结构风格,以及(ii)从业者愿意理解和采纳现有的微服务架构研究。

本文的其余部分安排如下。在第2节中,我们将提供有关使用微服务进行架构设计的基本概念。在第三部分,我们提出了研究的设计。详细的结果在4个结果-发表趋势(RQ1),5个结果-研究焦点(RQ2)和6中报告。第7节讨论了研究的正交发现。对有效性和相关工作的威胁分别在第8节和第9节中描述。第10节结束论文。

节代码段

用微服务架构

虽然没有一个特定的定义被广泛接受,但是Lewis和Fowler提供了一个流行的定义,他们将微服务架构风格定义为将单个应用程序开发为小的每个服务都在自己的进程中运行并与轻量级机制,通常是HTTP资源API(Fowler和Lewis,2014)。微服务架构风格的经常性特征是:(i)围绕业务组织系统

研究设计

在本研究中,我们遵循了系统制图研究的既定指南(Petersen,Vakkalanka,Kuzniarz,2015,Kitchenham,Brereton,2013)。在这一部分中,我们介绍了我们研究设计的关键方面。

结果-出版趋势(RQ1)

在本节中,我们将介绍我们在分析微服务架构的出版趋势时获得的结果。为了全面了解本主题出版物的数量和类型,在本节中,我们将考虑所有选定出版物,而不考虑我们在搜索和选择过程中执行的组合步骤(见第3.2节)。更具体地说,为了回答RQ1,我们考虑了总共119个初级研究,其中包括这两个

结果-研究重点(RQ2)

如第3.3节所述,与RQ2相关的分类框架部分已系统定义。在这个过程之后,我们得到了两个与微服务架构相关的主要研究类别,即研究范围(见第5.1节)和对架构的支持(见第5.2节)。

获得的结果(RQ3)

准备程度技术成熟度的整体评估(1995)由技术成熟度定义n其中1 ≤ n ≤ 9.地平线2020欧盟委员会在2014/2015年工作计划中采用了这一措施。7我们对每一个初级研究的TRL进行了分类,以强调

正交结果

表2给出了我们的横向分析结果。在这一阶段的研究中,我们首先自动计算出我们分类框架中每一个可能的参数对的列联表。然后,我们合作创建并讨论了一组37个潜在的相关见解。我们反复分析在上一步中创建的每个潜在的相关细节,以检查其列联表是否确实证实或否定了其相关的

有效性威胁

2015年,Petersen等人。(2015)创建了客观评估系统制图研究质量的检查表。在这种情况下,得分可以计算为研究中采取的行动数量与检查表中行动总数的比率。在我们的案例中,我们得到了65%的分数,远远高于文献中的大多数系统研究,这些研究的分布中值为33%,绝对最大值为48%。然而,与以往一样,对有效性的威胁

相关工作

Pahl等人对微服务进行了系统的绘图。2014年至2015年的21项主要研究(Pahl和Jamshidi,2016年)。对该领域的研究方向进行了分类,突出了研究者所考虑的相关视角。我们的研究与Pahl和Jamshidi(2016)的不同之处在于:(i)我们采用更全面的搜索过程,考虑到截至2017年的任何一年发布的研究,扩展其搜索字符串,并补充

结论

遵循Dragoni等人的建议。(2016),本研究的目的是提供调查微服务研究贡献之间关系的广泛调查具体地说,我们对103项主要研究进行了系统的绘图,并对微服务架构的最新技术进行了清晰的概述。我们从三个主要的角度对微服务架构的研究进行了调查:出版趋势、研究重点和潜力

保罗·迪弗朗西斯科是意大利拉奎拉格兰萨索科学研究所计算机科学博士生。他的研究兴趣是软件工程、软件体系结构和模型驱动工程。他的博士研究集中在基于微服务的体系结构上,研究体系结构恢复、体系结构建模以及将遗留应用程序迁移到微服务的技术。2012年,他获得了拉奎拉大学计算机科学硕士学位

工具书类(三十九)

  • A。伯格迈尔等等。

    云建模语言系统综述

    ACM计算机。苏尔夫。(CSUR)

    (2018年)
  • 科伯恩,A.,2007。六角形。。。
  • Di Francesco,P.,马拉沃尔塔,I.,拉戈,P.,2017a。复制包。。。。
  • P。迪弗朗西斯科等等。

    微服务架构研究:趋势、焦点和工业应用的潜力

    软件架构(ICSA),2017 IEEE国际会议

    (2017年)
  • P。迪弗朗西斯科等等。

    向微服务架构迁移:一项产业调查

    2018IEEE软件架构国际会议,ICSA 2018,美国西雅图,2018年4月30日-5月4日

    (2018年)
  • Dragoni,N.,Giallorenzo,S.,Lafuente,A.L.,Mazzara,M.,Montesi,F.,Mustafin,R.,萨芬娜,L.,2016年。微服务:。。。
  • M。法齐奥等等。

    云计算中微服务调度中存在的问题

    IEEE云计算。

    (2016年)
  • Fowler,M.,Lewis,J.,2014。微服务是这个新架构术语的定义。。。。
  • M、 L。贾切里等等。

    用e3语言引出软件过程模型

    ACM传输。软。工程方法学。(托塞姆)

    (1998年)
  • 引用人(103)

    • 基于移动web的测量实验研究现状

      2022年,信息和软件技术
    • restapi设计分析与实证研究

      2022年,阮建学/软件杂志
    向右上箭头查看Scopus上所有引用的文章

    保罗·迪弗朗西斯科是意大利拉奎拉格兰萨索科学研究所计算机科学博士生。他的研究兴趣是软件工程、软件体系结构和模型驱动工程。他的博士研究集中在基于微服务的体系结构上,研究体系结构恢复、体系结构建模以及将遗留应用程序迁移到微服务的技术。2012年,他获得了拉奎拉大学(意大利)和Mälardalens Högskola(瑞典)的计算机科学硕士双学位,作为全球软件工程欧洲硕士计划(GSEEM)的一部分。在完成硕士研究后,在攻读博士学位之前,他是一家工业公司的架构师和开发人员,然后是一名IT咨询自由职业者。2015年,他获得了拉奎拉大学的研究资助。更多信息请访问http://www.paolodifrancesco.com.

    帕特丽夏·拉戈是阿姆斯特丹维利大学(Vrije Universiteit Amsterdam)软件工程的全职教授,她领导着计算机科学系的软件和服务(S2)研究小组。她的研究方向是软件架构和软件质量,特别强调可持续性。她拥有都灵理工大学控制和计算机工程博士学位,以及意大利比萨大学计算机科学硕士学位。她是软件工程和绿色IT的计算机科学硕士课程的发起人和协调人,以及绿色实验室的联合创始人,绿色实验室是研究人员、学生和公司合作测量软件解决方案的能量足迹和对软件质量的影响的地方。她是IEEE ICSA、ECSA和ICT4S系列会议指导委员会的成员、ifip2.10软件架构工作组成员、基于服务系统的ifip2.14工作组成员和荷兰绿色软件知识网络成员。更多信息请访问www.cs.vu.nl/~帕特里夏.

    伊万诺·马拉沃尔塔是荷兰阿姆斯特丹维利大学的助理教授。他的研究主要集中在数据驱动的软件工程、移动开发的软件工程、软件体系结构、模型驱动工程(MDE)和机器人技术。他正在应用经验方法来评估软件工程领域的实践和趋势。他是项目委员会成员和他感兴趣领域的国际会议和期刊的评论员。他在国际期刊和同行评审的国际会议论文集上发表了80多篇论文。他于2012年获得拉奎拉大学计算机科学博士学位。他是ACM和IEEE、阿姆斯特丹数据科学和VERSEN的成员。更多信息请访问http://www.ivanomalavolta.com.

    查看全文