应用科学学报 ›› 2020, Vol. 38 ›› Issue (5): 761-778.doi: 10.3969/j.issn.0255-8297.2020.05.008
• 智能计算新技术 • 上一篇
代飞1, 刘国志1, 李章2, 莫启3, 李彤4
收稿日期:
2020-06-17
发布日期:
2020-10-14
通信作者:
代飞,博士,教授,研究方向为服务计算、软件过程和业务过程管理.E-mail:daifei@swfu.edu.cn
E-mail:daifei@swfu.edu.cn
基金资助:
DAI Fei1, LIU Guozhi1, LI Zhang2, MO Qi3, LI Tong4
Received:
2020-06-17
Published:
2020-10-14
摘要: 微服务是一种新型架构风格,受到了工业界和学术界的广泛关注.微服务架构通过高内聚的微服务和轻量级的通信机制能有效地解决单体系统难于维护和扩展等问题.采用系统评价方法,从微服务架构、通信、挑战三方面分析和概况了该领域的最新进展和研究现状.首先系统地比较了单体架构、面向服务架构(service oriented architecture,SOA)和微服务结构;其次概述了微服务间的通信;最后讨论了微服务面临的技术挑战.
中图分类号:
代飞, 刘国志, 李章, 莫启, 李彤. 微服务技术:体系结构、通信和挑战[J]. 应用科学学报, 2020, 38(5): 761-778.
DAI Fei, LIU Guozhi, LI Zhang, MO Qi, LI Tong. Microservices: Architecture, Communication, and Challenges[J]. Journal of Applied Sciences, 2020, 38(5): 761-778.
[1] Fowler M, Lewis J. Microservices[EB/OL].[2014-3-25]. http://martinfowler.com/articles/microservices.html. [2] Balalaie A, Heydarnoori A, Jamshidi P. Microservices architecture enables DevOps:migration to a cloud-native architecture[J]. IEEE Software, 2016, 33(3):42-45. [3] Thönes J. Microservices[J]. IEEE Software, 2015, 32(1):113-115. [4] Newman S. Building microservices:designing fine-grained systems[M]. Beijing:O'Reilly Media, 2015. [5] Knoche H, Hasselbring W. Using microservices for legacy software modernization[J]. IEEE Software, 2018, 35(3):44-49. [6] Rademacher F, Sorgalla J, Sachweh S. Challenges of domain-driven microservice design:a model-driven perspective[J]. IEEE Software, 2018, 35(3):36-43. [7] Pahl C, Brogi A, Soldani J, et al. Cloud container technologies:a state-of-the-art review[J]. IEEE Transactions on Cloud Computing, 2019, 7(3):677-692. [8] 钟陈星, 李杉杉, 张贺, 等. 限界上下文视角下的微服务粒度评估[J]. 软件学报, 2019, 30(10):3227-3324. Zhong C X, Li S S, Zhang H, et al. Microservice granularity evaluation from the perspective of bounded context[J]. Journal of Software, 2019, 30(10):3227-3324. [9] Pahl C, Jamshidi P. Microservices:a systematic mapping study[C]//Proceedings of the 6th International Conference on Cloud Computing and Services Science, Rome, Italy, 2016:137-146. [10] Krylovskiy A, Jahn M, Patti E. Designing a smart city internet of things platform with microservice architecture[C]//Proceedings of the 3rd International Conference on Future Internet of Things and Cloud, Rome, 2015:25-30. [11] Zhou H, Chen M, Lin Q, et al. Overload control for scaling wechat microservices[C]//Proceedings of the ACM Symposium on Cloud Computing (SoCC'18), Association for Computing Machinery, New York, NY, USA, 2018, 149-161. [12] Zhou X, Peng X, Tao X, et al. Poster:benchmarking microservice systems for software engineering research[C]//2018 IEEE/ACM 40th International Conference on Software Engineering:Companion (ICSE-Companion), Gothenburg, 2018:323-324. [13] Deb A. Application delivery service challenges in microservices-based applications[EB/OL].[2016-3-31]. https://www.thefabricnet.com/application-delivery-service-challenges-inmicroservices-based-applications. [14] Larrucea X, Santamaria I, Colomo-Palacios R, et al. Microservices[J]. IEEE Software, 2018, 35(3):96-100. [15] Papazoglou M P, Traverso P, Dustdar S, et al. Service-oriented computing:state of the art and research challenges[J]. Computer, 2007, 40(11):38-45. [16] Ebert C, Gallardo G, Hernantes J, et al. DevOps[J]. IEEE Software, 2016, 33(3):94-100. [17] Trihinas D, Tryfonos A, Dikaiakos M D, et al. DevOps as a service:pushing the boundaries of microservice adoption[J]. IEEE Internet Computing, 2018, 22(3):65-71. [18] Dragoni N, Giallorenzo S, Lafuente A L, et al. Microservices:yesterday, today, and tomorrow[C]//Proceedings of the Present and Ulterior Software Engineering. Springer, Cham, 2017:195-216. [19] Kholy M E, Fatatry A E. Framework for interaction between databases and microservice architecture[J]. IT Professional, 2019, 21(5):57-63. [20] Francesco P D, Malavolta I, Lago P. Research on architecting microservices:trends, focus, and potential for industrial adoption[C]//Proceedigns of the IEEE International Conference on Software Architecture (ICSA), Gothenburg, 2017:21-30. [21] Pereira-Vale A, Márquez G, Astudillo H, et al. Security mechanisms used in microservices-based systems:a systematic mapping[C]//Proceedings of the XLV Latin American Computing Conference (CLEI), Panama, Panama, 2019:1-10. [22] Santana C, Alencar B, Prazeres C. Microservices:a mapping study for internet of things solutions[C]//Proceedings of the IEEE 17th International Symposium on Network Computing and Applications (NCA), Cambridge, MA, 2018:1-4. [23] Vinoski S. CORBA:integrating diverse applications within distributed heterogeneous environments[J]. IEEE Communications Magazine, 1997, 35(2):46-55. [24] Brown A W, Wallnau K C. The current state of CBSE[J]. IEEE Software, 1998, 15(5):37-46. [25] Cerny T, Donahoo M J, Trnka M. Contextual understanding of microservice architecture:current and future directions[J]. ACM SIGAPP Applied Computing Review, 2018, 17(4):29-45 [26] Al-Debagy O, Martinek P. A comparative review of microservices and monolithic architectures[C]//Proceedings of the IEEE 18th International Symposium on Computational Intelligence and Informatics (CINTI), Budapest, Hungary, 2018:000149-000154. [27] Papazoglou M P. Service-oriented computing:concepts, characteristics and directions[C]//Proceedings of the Fourth International Conference on Web Information Systems Engineering, Rome, Italy, 2003:3-12. [28] Mazlami G, Cito J, Leitner P. Extraction of microservices from monolithic software architectures[C]//Proceedings of the IEEE International Conference on Web Services (ICWS), 2017:524-531. [29] Lauretis L D. From monolithic architecture to microservices architecture[C]//Proceedings of the IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW), Berlin, Germany, 2019:93-96. [30] Taibi D, Lenarduzzi V, Pahl C. Processes motivations and issues for migrating to microservices architectures:an empirical investigation[J]. IEEE Cloud Computing, 2017, 4(5):22-32. [31] Fan C, Ma S. Migrating monolithic mobile application to microservice architecture:an experiment report[C]//Proceeding of the IEEE International Conference on AI & Mobile Services (AIMS), Honolulu, HI, 2017:109-112. [32] Munaf R M, Ahmed J, Khakwani F, et al. Microservices architecture:challenges and proposed conceptual design[C]//Proceedings of the International Conference on Communication Technologies (ComTech), Rawalpindi, Pakistan, 2019:82-87. [33] Wei Y, Blake M B. Service-oriented computing and cloud computing:challenges and opportunities[J]. IEEE Internet Computing, 2010, 14(6):72-75. [34] Merkel D. Docker:lightweight Linux containers for consistent development and deployment[J]. Linux Journal, 2014(239):76-90. [35] Nagothu D, Xu R, Nikouei S Y, et al. A microservice-enabled architecture for smart surveillance using blockchain technology[C]//Proceedings of the IEEE International Conference on Smart Cities Conference (ISC2), Kansas City, MO, USA, 2018:1-4. [36] Hasselbring W, Steinacker G. Microservice architectures for scalability, agility and reliability in E-commerce[C]//Proceedings of the IEEE International Conference on Software Architecture Workshops (ICSAW), Gothenburg, 2017:243-246. [37] 郝庭毅, 吴恒, 吴国全, 等. 面向微服务架构的容器级弹性资源供给方法[J]. 计算机研究与发展, 2017, 54(3):597-608. Hao T Y, Wu H, Wu G Q, et al. Container level flexible resource supply method for microservice architecture[J]. Computer Research and Development, 2017, 54(3):597-608. (in Chinese) [38] Bass L, Weber I, Zhu L. DevOps:a software architect's perspective[M]. New Jersey:Addison-Wesley Professional, 2015. [39] Zhou X, Peng X, Xie T, et al. Delta debugging microservice systems with parallel optimization[J]. IEEE Transactions on Services Computing, 2019. doi:10.1109/TSC.2019.2919823 [40] 王子勇, 王焘, 张文博, 等. 一种基于执行轨迹监测的微服务故障诊断方法[J]. 软件学报, 2017, 28(6):1435-1454. Wang Z Y, Wang D, Zhang W B, et al. A microservice fault diagnosis method based on execution trajectory monitoring[J]. Journal of Software, 2017, 28(6):1435-1454. (in Chinese) [41] Petrasch R. Model-based engineering for microservice architectures using enterprise integration patterns for inter-service communication[C]//Proceedings of the 14th International Joint Conference on Computer Science and Software Engineering (JCSSE), Nakhon Si Thammarat, 2017:1-4. [42] Rajkumar R, Gagliardi M, Lui S. The real-time publisher/subscriber inter-process communication model for distributed real-time systems:design and implementation[C]//Proceedings of the Real-Time Technology and Applications Symposium, Chicago, IL, USA, 1995:66-75. [43] Dai F, Chen H, Qiang Z, et al. Automatic analysis of complex interactions in microservice systems[J]. Complexity, 2020:1-12. [44] Dai F, Mo Q, Qiang Z, et al. A Choreography analysis approach for microservice composition in cyber-physical-social systems[J]. IEEE Access, 2020, 8:53215-53222. [45] Mohammed A. Asynchronous communication in Microservices[EB/OL].[2019-08-16]. https://medium.com/@aamermail/asynchronous-communication-in-microservices-14d301b9016. [46] Ye L, Luo Y, Nagata M. XML based message queuing[C]//Proceedings of the IEEE International Conference on Systems, Man and Cybernetics, 2000:2034-2039. [47] Akroun L, Salaün G. Automated verification of automata communicating via FIFO and bag buffers[J]. Formal Methods in System Design, 2018, 52(3):260-276. [48] Basu S, Bultan T. On deciding synchronizability for asynchronously communicating systems[J]. Theoretical Computer Science, 2016, 656:60-75. [49] Li L, Chou W. Design and describe rest API without violating rest:a petri net based approach[C]//Proceedings of the IEEE International Conference on Web Services, 2011:508-515. [50] Murayama D, Mizuno S, Fujii A. Distributed synchronization over RESTful Web API[C]//Proceedings of the 18th International Conference on Network-Based Information Systems, Taipei, 2015:195-198. [51] Hong X J, Yang H S, Kim Y H. Performance analysis of restful API and RabbitMQ for microservice web application[C]//Proceedings of the International Conference on Information and Communication Technology Convergence (ICTC), 2018:257-259. [52] Ollite I, Mohamudally N. Performance analysis of a 2-tier caching proxy system for mobile RESTful services[C]//Proceedings of the International Conference on Computer as a Tool (EUROCON), Salamanca, 2015:1-7. [53] Belqasmi F, Singh J, Melhem S Y B, et al. Soap-based vs. restful web services:a case study for multimedia conferencing[J]. IEEE Internet Computing, 2012, 16(4):54-63. [54] Mulligan G, Gracanin D. A comparison of SOAP and REST implementations of a service based interaction independence middleware framework[C]//Proceedings of the 2019 Winter Simulation Conference (WSC), 2019:1423-1432. [55] Wagh K, Thool R. A comparative study of soap vs rest web services provisioning techniques for mobile host[J]. Journal of Information Engineering and Applications, 2012, 2(5):12-16. [56] Vinoski S. Advanced message queuing protocol[J]. IEEE Internet Computing, 2016, 10(6):87-89. [57] Saint-Andre P. Extensible messaging and presence protocol (XMPP):core[R/OL]. IETF RFC 6120[2020-06-07]. http://www.rfc-editor.org/info/rfc6120. [58] Saint-Andre P. Extensible messaging and presence protocol (XMPP):instant messaging and presence[R/OL]. IETF RFC 6121[2020-06-08]. http://www.rfc-editor.org/info/rfc6121. [59] Saint-Andre P. Extensible messaging and presence protocol (XMPP):address format[R/OL]. IETF RFC 7622[2020-06-08]. http://www.rfc-editor.org/info/rfc7622. [60] Ecma International. The JSON data interchange format[R/OL]. Ecma-404[2020-06-08]. http://www.ecma-international.org/publications/standards/Ecma-404.htm. [61] Brayt. The JavaScript object notation (JSON) data interchange format[R/OL]. IEEE RFC 715[2020-06-08]. https://www.rfc-editor.org/info/rfc7159. [62] Sefid-Dashti B, Babamir S M. Toward extending apache thrift open source to alleviate SOAP service consumption[C]//Proceedings of the 2nd International Conference on Open Source Software Computing (OSSCOM). 2016:1-6. [63] Google. Google protocol buffers:Google's data interchange format:documentation and open source release[R/OL].[2020-06-08]. http://code.google.com/p/protobuf/. [64] Sill A. The design and architecture of microservices[J]. IEEE Cloud Computing, 2016, 3(5):76-80. [65] Maeda K. Performance evaluation of object serialization libraries in XML, JSON and binary formats[C]//Proceedings of the Second International Conference on Digital Information and Communication Technology and it's Applications (DICTAP), 2012:177-182. [66] Larisa S, Mazzara M, Montesi F, et al. Data-driven workflows for microservices:genericity in jolie[C]//Proceedings of the IEEE 30th International Conference on Advanced Information Networking and Applications (AINA), 2016:430-437. [67] Killalea T. The hidden dividends of microservices[J]. Communications of the ACM, 2016, 59:42-45. [68] Villamizar M, Ochoa L, Castro H, et al. Cost comparison of running web applications in the cloud using monolothic, microservice, and aws lambada architecture[C]//Proceedings of the Service Oriented Computing and Applications, 2017, 11:233-247. [69] Granchelli G, Cardarelli M, Francesco P D. MicroART:a software architecture recovery tool for maintaining microservice-based systems[C]//Proceedings of the IEEE International Conference on Software Architecture Workshops (ICSAW), 2017:298-302. [70] Costa C H, Filho J, Maia P H M, et al. Sharding by Hash partitioning. A database scalability pattern to achieve evenly sharded database clusters[C]//Proceedings of the International Conference on Enterprise Information Systems, 2015, [71] Esposito C, Castiglione A, Choo K R. Challenges in delivering software in the cloud as microservices[J]. IEEE Cloud Computing, 2016, 3(5):10-14. [72] Sun Y, Nanda S, Jaeger T. Security-as-a-service for microservices-based cloud applications[C]//Proceedings of the IEEE 7th International Conference on Cloud Computing Technology and Science, Vancouver, BC, 2015:50-57. [73] Hassan S, Bahsoon R. Microservices and their design tradeoffs:a self-adaptive roadma[C]//Proceedings of the IEEE International Conference on Services Computing, SCC, 2016:813-818. [74] Zhou X, Peng X, Xie T, et al. Fault analysis and debugging of microservice systems:industrial survey, benchmark system, and empirical study[J]. IEEE Transactions on Software Engineering, 2018. doi:10.1109/TSE.2018.2887384. [75] Zhou X, Peng X, Xie T, et al. Delta debugging microservice systems[C]//Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering (ASE 2018), 2018:802-807. [76] Reflections on SOA and microservices[C]//Proceedings of the 4th International Conference on Enterprise Systems (ES), Melbourne, Australia, 2017:60-67. [77] Balalaie A, Heydarnoori A, Jamshidi P. Migrating to cloud-native architectures using microservices:an experience report[C]//Advances in Service-Oriented and Cloud Computing, 2016:201-215. |
[1] | 高华, 王安帮, 王云才. 经典物理层高速密钥分发研究进展[J]. 应用科学学报, 2020, 38(4): 507-519. |
[2] | 王健, 陈诗. 基于传统光纤的涡旋光复用通信研究进展[J]. 应用科学学报, 2020, 38(4): 559-578. |
[3] | 折胜飞, 梅林, 周振宇, 侯超奇, 郭海涛. 空间光通信用耐辐照掺铒/铒镱共掺光纤研究进展[J]. 应用科学学报, 2020, 38(4): 579-594. |
[4] | 乔丽君, 杨强, 柴萌萌, 卫晓晶, 张建忠, 徐红春, 张明江. 混沌半导体激光器研究进展[J]. 应用科学学报, 2020, 38(4): 595-611. |
[5] | 郝腾飞, 石暖暖, 李伟, 祝宁华, 李明. 多波段线性调频傅里叶域锁模光电振荡器[J]. 应用科学学报, 2020, 38(4): 640-646. |
[6] | 迟楠, 牛文清, 贾俊连, 哈依那尔. 基于抗非线性SVM的几何整形可见光通信系统[J]. 应用科学学报, 2020, 38(4): 647-658. |
[7] | 王孟轩, 张胜, 王月, 雷霆, 杜渂. 改进的CRNN模型在警情文本分类中的研究与应用[J]. 应用科学学报, 2020, 38(3): 388-400. |
[8] | 张雨欣, 李熙, 宋杨, 李长辉. 基于“珞珈一号”夜光遥感影像的粤港澳大湾区城市空间形态分析[J]. 应用科学学报, 2020, 38(3): 466-477. |
[9] | 赵春柳, 李嘉丽, 徐贲, 龚华平, 王东宁. 光纤微腔法布里-珀罗干涉传感器研究进展[J]. 应用科学学报, 2020, 38(2): 226-259. |
[10] | 耿优福, 李学金. 基于微结构光纤的温度传感器研究[J]. 应用科学学报, 2020, 38(2): 260-278. |
[11] | 陈嘉庚, 刘庆文, 赵双祥, 何祖源. 波长编码型光纤传感器高精度解调技术研究进展[J]. 应用科学学报, 2020, 38(2): 279-295. |
[12] | 赵云鹤, 刘云启. 少模光纤长周期光栅——从模式转换到高灵敏度光纤传感[J]. 应用科学学报, 2020, 38(2): 310-338. |
[13] | 杨亚南, 李一鸣, 聂力海, 张宁, 赵来平. 跨地域分布数据中心高成本效益的任务调度[J]. 应用科学学报, 2019, 37(6): 859-874. |
[14] | 刘烊佚, 苏成利, 施惠元, 李平, 薄桂华. 基于PFC-PID算法的无线高温加热炉温度控制系统[J]. 应用科学学报, 2019, 37(6): 875-886. |
[15] | 李松斌, 杨洁, 刘鹏, 王凌睿. 基于关联网络模型的H.264/AVC运动矢量调制信息隐藏检测方法[J]. 应用科学学报, 2019, 37(5): 663-672. |
阅读次数 | ||||||
全文 |
|
|||||
摘要 |
|
|||||