首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到19条相似文献,搜索用时 203 毫秒
1.
丁丹  彭鑫  郭晓峰  张健  吴毅坚 《软件学报》2020,31(11):3461-3480
作为云原生应用的一种典型形态,微服务架构已经在各种企业应用系统中被广泛使用.在企业实践中,许多微服务都是在单体架构的遗留系统基础上通过微服务拆分和改造形成的,其中的拆分决策(特别是数据库拆分)对于微服务系统的质量有着很大的影响.目前,单体系统的微服务拆分决策主要依赖于人的主观经验,整个过程成本高、耗时长、结果不确定性很高.针对这一问题,提出一种场景驱动、自底向上的单体系统微服务拆分方法.该方法以场景驱动的方式,通过动态分析获取单体遗留系统运行时的方法调用和数据库操作信息,然后基于数据表之间的关联分析生成数据库拆分方案,接着再自底向上进行搜索,产生相应的代码模块拆分方案.基于这种方法,实现了一个原型工具MSDecomposer,将拆分过程可视化,并支持多种维度的反馈调整策略.基于多个开源软件系统进行了案例研究,研究结果表明,该方法能够显著加快微服务拆分决策的速度,减轻开发人员的决策负担,得到的拆分结果是合理的.  相似文献   

2.
李杉杉  荣国平  高邱雅  邵栋 《软件学报》2021,32(5):1284-1301
近年来,微服务架构已经成为软件工程领域比较流行的架构风格,其天然支持DevOps和持续交付以及可伸缩性、可扩展性好等特性,驱动着业界实践者纷纷向微服务架构迁移.然而,采用微服务架构也面临诸多挑战,其中最关键的是缺乏自动化、一体化的解决方案来高效支持面向微服务的拆分设计以及候选微服务架构的评估.为了应对该挑战,对已有的数...  相似文献   

3.
作为Serverless架构的一种典型形态,函数即服务(function as a service,FaaS)架构将业务抽象为细粒度的函数,并且提供弹性的自动伸缩等自动化运维功能,能够大幅降低运维成本.当前,许多在线服务系统中的一些高并发、高可用、灵活多变的业务(如支付、红包等)都已经迁移到了FaaS平台上,但是大量传统单体应用还是难以利用FaaS架构的优势.针对这一问题,提出了一种基于动态和静态分析的单体应用FaaS改造方法.该方法针对指定的单体应用API,通过动态分析和静态分析相结合的方式识别并剥离其实现代码和依赖,然后按照函数模板完成代码重构.针对函数在高并发场景下的冷启动问题,该方法利用基于IO多路复用的主从多线程Reactor模型优化了函数模板,提高了单个函数实例的并发处理能力.基于该方法实现了针对Java语言的原型工具Codext,在开源Serverless平台OpenFaaS上,面向4个开源单体系统进行了实验验证.  相似文献   

4.
基于面向服务架构的遗留系统再设计方法   总被引:1,自引:0,他引:1  
提出了一种遗留系统再设计的方法,应用改进的层次聚类算法构建遗留代码,能够方便地将代码取出以构建Web服务.该方法支持服务鉴别和服务包装,通过改造有用的遗留代码,经济有效地将遗留系统迁移到面向服务架构中.最后利用上述技术,成功地再现了一个分布式并行计算平台的再设计过程.  相似文献   

5.
随着信息化时代的发展,业务系统越发庞大复杂,系统开发及维护面临着巨大的挑战. 针对这一问题,提出基于微服务架构的统一应用开发平台,重点介绍了平台的微服务架构设计、基于平台的业务系统实现. 通过引入微服务构建和分布式服务注册等相关技术,平台实现了生成微服务工程的标准开发框架,解决传统单体架构应用庞大而带来的研发周期长,难以快速响应用户需求等问题,为业务系统的开发提供了有效支撑.  相似文献   

6.
针对中小企业业务流程不规范和变化差异大等特点,指出现有软件定制技术面临的挑战.在SOA和MDA基础上,提出服务模型驱动的架构(SMDA),阐述服务模型和服务模板的概念,设计基于SMDA的软件定制技术平台框架;描述服务抽象和服务模板构造过程,构造一种基于XML的服务模板标记语言,以描述和配置企业应用系统的基本信息需求和个性化定制需求,并通过具体实例展示SMDA架构在软件快速重构与定制中的有效性和实用性.  相似文献   

7.
对单体系统进行微服务划分能有效缓解单体架构中系统冗余、难以维护等问题,但是现有的微服务划分方法未能充分利用微服务架构的属性信息,导致服务划分结果的合理性不高.文中给出了一种基于微服务架构的服务划分方法.该方法通过系统服务与属性的关联信息来构建实体-属性关系图,然后结合微服务架构的特征信息与目标系统的需求信息制定服务划分规则,量化两类顶点之间的关联信息,生成实体-属性加权图,最后应用加权的GN算法自动地实现系统的微服务划分.实验结果表明,该方法在服务划分的时效性上有较大提升,并且生成的微服务划分方案在评估指标上的表现更好.  相似文献   

8.
《软件》2016,(5):93-97
本文首先分析传统的单体架构进而解释微服务架构以及分布式环境下四层架构,详细分析了迁移需解决的关键问题如服务间通信机制、数据最终一致性等;然后分析了分布式系统核心问题和Dev Ops基本原则,以此为设计依据提出微服务架构基础设施总体设计,并且对其关键组件如服务注册与发现、持续交付平台、服务网关的实施提出具体方案;最后针对微服务架构基础设施在运维管理中的应用场景进行了探讨,说明了微服务架构设计思想优于单体架构设计思想。  相似文献   

9.
刘扬  李亚芬  王普 《计算机工程》2011,37(1):39-40,44
提出一个基于模型驱动架构(MDA)的测试用例生成框架,其中,平台无关的系统模型通过水平转换成平台无关的测试模型,平台无关的测试模型通过竖直转换生成相应的测试用例。利用MDA转换工具ATL和MOFScript制定相应的转换规则作用于元模型,使测试者只须提供源模型和测试数据即可生成相应的测试用例。  相似文献   

10.
基于业务服务的企业遗留系统集成框架   总被引:1,自引:1,他引:1  
企业应用集成(EAI)是当前企业进行业务扩展的一项主要技术,基于SOA实现EAI面临着一个重要的问题,如何将遗留系统无缝地连接到不断变化的新业务需求中.利用面向服务的架构来解决企业遗留系统应用集成.结合业务服务的概念和传统企业应用集成解决方案,讨论了基于业务服务的遗留系统应用集成框架,使用IBM平台对一个遗留销售系统集成案例进行了实现.  相似文献   

11.

The microservice architecture has gained remarkable attention in recent years. Microservices allow developers to implement and deploy independent services, so they are a naturally effective architecture for continuously deployed systems. Because of this, several organizations are undertaking the costly process of manually migrating their traditional software architectures to microservices. The research in this paper aims at facilitating the migration from monolithic software architectures to microservices. We propose a framework which enables software developers/architects to migrate their software systems more efficiently by helping them remodularize the source code of their systems. The framework leverages model-driven reverse engineering to obtain a model of the legacy system and reinforcement learning to propose a mapping of this model toward a set of microservices.

  相似文献   

12.
为有效提升基于微服务架构的遗留软件系统重构的自动化水平,根据存在依赖关系的两个类所操作的资源数据之间存在着一定相关性的原则,提出了一种资源约束下基于类依赖关系的微服务识别方法。首先,根据遗留软件程序中的类依赖关系构建类依赖关系图,并设置每个类的资源实体标签;然后,设计了基于资源实体标签的类依赖关系图划分算法,用以划分原软件系统和得到候选微服务;最后,合并依赖程度较高的候选微服务,从而得到最终的微服务集合。基于GitHub的4个开源项目的实验结果表明,所提方法具有高于90%的微服务划分准确率,证实了同时考虑不同类之间的依赖关系和资源约束对于微服务识别是合理和有效的。  相似文献   

13.
为有效提升基于微服务架构的遗留软件系统重构的自动化水平,根据存在依赖关系的两个类所操作的资源数据之间存在着一定相关性的原则,提出了一种资源约束下基于类依赖关系的微服务识别方法。首先,根据遗留软件程序中的类依赖关系构建类依赖关系图,并设置每个类的资源实体标签;然后,设计了基于资源实体标签的类依赖关系图划分算法,用以划分原软件系统和得到候选微服务;最后,合并依赖程度较高的候选微服务,从而得到最终的微服务集合。基于GitHub的4个开源项目的实验结果表明,所提方法具有高于90%的微服务划分准确率,证实了同时考虑不同类之间的依赖关系和资源约束对于微服务识别是合理和有效的。  相似文献   

14.
针对传统单体式架构在线教育平台存在灵活性较低、可拓展性和稳定性不足等问题,设计了一种基于微服务架构的在线教育平台.首先,该在线教育平台采用Spring Cloud框架来搭建微服务;然后,利用Nacos组件和其他微服务组件搭建项目基础环境;同时还选取MyBatis-Plus框架作为持久层的框架;最后利用Vue.js框架搭...  相似文献   

15.
Large Internet companies like Amazon, Netflix, and LinkedIn are using the microservice architecture pattern to deploy large applications in the cloud as a set of small services that can be independently developed, tested, deployed, scaled, operated, and upgraded. However, aside from gaining agility, independent development, and scalability, how microservices affect the infrastructure costs is a major evaluation topic for companies adopting this pattern. This paper presents a cost comparison of a web application developed and deployed using the same scalable scenarios with three different approaches: 1) a monolithic architecture, 2) a microservice architecture operated by the cloud customer, and 3) a microservice architecture operated by the cloud provider. Test results show that microservices can help reduce infrastructure costs in comparison with standard monolithic architectures. Moreover, the use of services specifically designed to deploy and scale microservices, such as AWS Lambda, reduces infrastructure costs by 70% or more, and unlike microservices operated by cloud customers, these specialized services help to guarantee the same performance and response times as the number of users increases. Lastly, we also describe the challenges we faced while implementing and deploying microservice applications, and include a discussion on how to replicate the results on other cloud providers.  相似文献   

16.
针对煤矿监控类软件开发面临版本混乱、重复开发、维护困难,软件的定制化修改导致不同煤矿监控软件之间的通信变得困难等问题,提出了一种采用微服务架构的煤矿监控类软件开发框架。基于微服务架构,通过规范化开发流程、简化技术栈优化煤矿监控类软件的开发流程;将基础业务固化在开发框架中,专有业务通过微服务的方式进行加载运行,减少了基础代码的重复编码工作,并使得专有业务可以重用;沙盒运行方式让微服务的部署不受运行环境影响,部署方便,跨平台移植性强,微服务托管平台可对微服务进行统一的版本管理。实际应用结果表明:采用微服务架构的煤矿监控类软件通过将常用功能拆分为微服务,可以最大程度减少软件功能的重复开发,微服务的数据存储效率比现有垂直架构更高,使用Docker镜像部署,软件安装过程更为便捷,为监控类软件开发提供了一种更为高效的开发方式。  相似文献   

17.
相对于传统单块架构,微服务框架具有技术选型灵活、独立按需扩展、可用性高等优点,更适合当前互联网时代需求. 但微服务架构的应用也会引入新的问题,如跨进程通讯、服务注册发现、分布式Session管理等. 本文在对传统框架和微服务框架进行分析比较的基础上,给出了微服务框架的一种实现方案. 该方案设计了微服务框架的功能架构,对微服务框架引入的关键问题给出了解决方案. 采用该实现方案进行业务系统开发,开发人员只需要关注微服务内部业务功能的开发,微服务之间的注册、发现、监控和Session管理由微服务框架完成,简化了系统开发的难度,提高开发效率.  相似文献   

18.
微服务组合领域尚处于未成熟阶段,需要更完善的解决方案,因此设计了一个基于变更事件驱动的微服务组合平台。该平台相比现有的解决方案,在领域特定语言层面上支持细粒度数据访问控制,并进一步丰富了语言表现力。引入Spring Cloud Netflix生态系统,解决平台中微服务不能动态部署的问题,提高了健壮性。对于触发微服务组合的事件,增加了对Web资源的变更检测,即对XML文档的内容和结构2个层面的比较,并对现有的XML文档内容层面的比较方法进行优化,综合考虑了内容和结构的相似度度量。实验结果表明,该微服务组合平台更加完善、丰富,注重私隐保护,容错性更强,在算法时间效率上亦有提升。  相似文献   

19.
伴随着云计算的快速发展,海量数据等业务需求的处理无法只依赖单体应用程序。微服务软件架构模式以其模块化、可扩展、高可用的应用优势为应用程序的开发带来了新的设计思路。容器是基于共享Linux内核、面向应用的一种新兴的轻量级虚拟化技术,以Docker为代表的容器技术为微服务提供了理想的载体。同时,以Kubernetes为代表的容器编排工具则极大地简化了容器化微服务创建、集成、部署、运维的整个流程。在开发和运维向“面向容器”的转变中,会带来数量庞大且关系复杂的服务组合,此时微服务的创建与部署则变得尤为重要。从易用性角度出发,提供了一种容器编排的可视化方法,实践分析显示,利用此方法进行的微服务部署不仅为研发人员提供了友好型服务创建界面,而且还便利了服务创建过程,提高了开发效率。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号