System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于模型驱动架构的微服务设计方法技术_技高网

一种基于模型驱动架构的微服务设计方法技术

技术编号:40428745 阅读:6 留言:0更新日期:2024-02-20 22:50
本发明专利技术提供一种基于模型驱动架构的微服务设计方法,涉及软件工程技术领域,所述方法包括:对初始需求模型进行拓展,根据拓展需求模型划分微服务的上下文范围,获得领域模型的初步划分结果;根据所述初步划分结果生成微服务架构模型;对生成的所述微服务架构模型进行评估,并将评估结果用可视化的方式反馈给用户,并对初步划分结果进行迭代优化,获得优化后的微服务架构模型。本申请提供一个简化和加速领域模型划分的方法,从领域模型和微服务架构模型之间通过自动化的手段完成,保证过程的一致性和信息完整性,大大降低了人力成本,提高了模型评估的速度和准确性,解决了现有技术中微服务设计难度大、准确率低和效率低的技术问题。

【技术实现步骤摘要】

本专利技术涉及软件工程,特别涉及一种基于模型驱动架构的微服务设计方法


技术介绍

1、微服务架构将应用程序分解为小型、明确的服务的概念,每个服务都围绕特定的业务功能量身定制。这种细粒度的方法促进了通过完全自动化的过程独立部署每个服务,导致加速部署周期、提高可扩展性,并明确地划分服务职责。然而,微服务架构的效能取决于准确地识别合适的微服务。需要一个结构化的平衡来强调准确的服务识别的重要性,使其成为微服务实施中的一个关键成功因素。

2、在当今复杂的软件开发环境中,微服务与领域驱动设计(ddd,domain-drivendesign)的结合已经逐渐成为核心。领域驱动设计提供了一种为复杂系统进行建模和设计的策略,旨在捕捉系统的核心复杂性并建立一个与实际业务操作相匹配的模型。其中,有界上下文是微服务与领域驱动设计中的关键概念,它定义了特定的责任边界,确保在此边界内的模型是一致的。在微服务架构中,每个微服务通常都存在于一个明确定义的有界上下文中,从而确保了微服务的独立性和自治性。实体和值对象分别表示具有唯一标识的对象和无标识、不可变的对象。这些对象在微服务环境中通常会被持久化,并通过接口进行交互。而聚合和聚合根则提供了确保数据完整性和一致性的结构。聚合是一组实体和值对象,它们作为整体被持久化;聚合根是聚合内的一个实体,是外部对象与聚合互动的唯一方式。领域事件是一个关键概念,表示在领域中发生的特定事件。微服务使用领域事件与其他服务进行异步交互,避免直接的服务间调用。与此同时,存储库用于从持久层获取聚合,工厂则用于创建聚合,而服务则代表在微服务与领域驱动设计中的领域逻辑的实现。

3、微服务与领域驱动设计还建议按领域层、应用层和基础设施层来结构化系统。领域层关注核心的业务逻辑和模型,应用层则关注应用的使用场景,基础设施层则处理与外部系统的交互。在微服务架构中,这种多层架构既可以在一个服务内实现,也可以跨多个服务实现。

4、现有技术中,如说明书附图1所示,架构师在微服务的拆分中经常遵循两个核心步骤,即设计领域模型和设计微服务模型。首先,他们会设计领域模型。这通常开始于深入的需求分析,与业务持有者紧密合作,通过访谈和讨论来深入了解和收集业务需求。这样确保了所设计的模型能够真实地反映业务的核心逻辑。随后,架构师会识别系统的各个领域和职责,为每个领域建立一个明确的有界上下文,从而减少模型复杂性并确保其内部一致性。在此基础上,关键的实体和值对象以及它们之间的关系被识别和定义。同时,对于业务流程中的重要事件,也会定义相应的领域事件,为后续的微服务间通信做好准备。随后,根据领域模型,架构师会进一步设计微服务模型。这包括确定微服务的边界,通常每个有界上下文都会对应一个微服务。微服务的职责也会被明确划分,确保每个微服务都遵循单一职责原则。为了确保微服务之间的有效通信,根据领域事件和已定义的实体关系,微服务间的通信机制也会被设计出来,这可能是同步或异步的、事件驱动的等。最后,选择合适的数据持久化策略也是微服务设计的一个关键部分,为每个微服务选择最适合的数据存储方案,兼顾数据一致性、可用性和延迟等因素。

5、在进行领域驱动设计和微服务架构设计的过程中,现有的技术方法和实践至少存在以下不足之处:

6、第一、领域模型的初步划分难度大。确立一个合理的领域模型对于设计师而言是一个相当挑战性的任务。尽管业务需求可能已经被详尽地列出和描述,但将这些需求转化为一个清晰、一致和可操作的领域模型往往需要大量的时间和努力。这一过程不仅费时,而且在许多情况下效率极低,因为它需要深入的业务理解和技术见识。

7、第二、从领域模型到微服务架构模型的信息可能会缺失,很多时候,领域模型的设计者和微服务架构模型的设计者可能不是同一个人。这样的分离可能会导致信息的丢失或误解。例如,领域模型中的某些关键决策或考虑可能在转换到微服务架构模型时被忽视或误解。这不仅会增加整个设计和开发过程的时间,而且可能导致两个模型之间的不一致性和信息的不对等。

8、第三、缺乏统一的微服务模型表示方法。尽管微服务架构已经被广泛采纳和实践,但目前还没有一个公认的、标准化的方法来表示微服务模型。这使得微服务的设计和实现过程变得复杂,因为设计师必须依赖各种不同的工具和技术,这些工具和技术可能并不总是兼容或一致。

9、第四、模型评估过程费时且人力密集。在微服务设计完成后,通常需要进行模型的评估以确保其质量和准确性。但在现有的技术中,这一过程主要依赖人工完成。这不仅会消耗大量的时间和资源,而且可能导致评估结果的不一致性,因为不同的评估人员可能会有不同的判断和见解。


技术实现思路

1、有鉴于此,本专利技术实施例提供了一种基于模型驱动架构的微服务设计方法,以解决现有方法中微服务设计难度大、准确率低和效率低的技术问题。该方法包括:

2、基于需求模型获得拓展需求模型,根据所述拓展需求模型在用例图和实体图中划分微服务的上下文范围,获得领域模型的初步划分结果;

3、根据所述初步划分结果生成微服务架构模型,所述微服务架构模型包括微服务组件图、微服务内部概念类图和微服务间动态通信图;

4、对生成的所述微服务架构模型进行评估,并将评估结果用可视化的方式反馈给用户;

5、根据所述评估结果迭代调整所述初步划分结果,获得优化后的所述微服务架构模型。

6、进一步的,使用emf定义所述微服务架构模型的底层元素。

7、进一步的,所述根据所述拓展需求模型在用例图和实体图中划分微服务的上下文范围,包括:

8、基于usecasecontext在用例图中划分微服务的上下文范围,基于entitycontext在实体图中划分微服务的上下文范围。

9、进一步的,所述根据所述拓展需求模型在用例图和实体图中划分微服务的上下文范围,获得领域模型的初步划分结果,还包括:

10、根据所述需求模型将用户所参与的用例放到同一个微服务当中;

11、分别从系统序列图、契约和领域模型中提取所述用例到实体的依赖图,获得所述领域模型的所述初步划分结果;

12、根据所述初步划分结果生成所述微服务架构模型。

13、进一步的,所述根据所述初步划分结果生成微服务架构模型,包括:

14、转换所述领域模型的初步划分结果图中概念类图中的边界、实体和实体关系,获得微服务结构图;

15、生成用户调用接口和微服务间接口;

16、根据所述用户调用接口和所述微服务间接口生成微服务通信图;

17、结合所述微服务结构图和所述微服务通信图生成所述微服务结构模型。

18、进一步的,所述微服务间接口的类型包括:

19、关联实体的接口、提供访问其他微服务实体的接口和调用其他微服务的接口。

20、进一步的,生成所述微服务通信图,包括:

21、按照顺序遍历系统序列图中的所有系统操作,并获取它们对应的合本文档来自技高网...

【技术保护点】

1.一种基于模型驱动架构的微服务设计方法,其特征在于,所述方法包括:

2.根据权利要求1所述的一种基于模型驱动架构的微服务设计方法,其特征在于,所述根据所述拓展需求模型在用例图和实体图中划分微服务的上下文范围,包括:

3.根据权利要求1所述的一种基于模型驱动架构的微服务设计方法,其特征在于,所述根据所述拓展需求模型在用例图和实体图中划分微服务的上下文范围,获得领域模型的初步划分结果,还包括:

4.根据权利要求1所述的一种基于模型驱动架构的微服务设计方法,其特征在于,使用EMF定义所述微服务架构模型的底层元素。

5.根据权利要求4所述的一种基于模型驱动架构的微服务设计方法,其特征在于,所述根据所述初步划分结果生成微服务架构模型,包括:

6.根据权利要求5所述的一种基于模型驱动架构的微服务设计方法,其特征在于,所述微服务间接口的类型包括:

7.根据权利要求5所述的一种基于模型驱动架构的微服务设计方法,其特征在于,生成所述微服务通信图,包括:

8.根据权利要求1所述的一种基于模型驱动架构的微服务设计方法,其特征在于,对生成的所述微服务架构模型进行评估的指标包括:

...

【技术特征摘要】

1.一种基于模型驱动架构的微服务设计方法,其特征在于,所述方法包括:

2.根据权利要求1所述的一种基于模型驱动架构的微服务设计方法,其特征在于,所述根据所述拓展需求模型在用例图和实体图中划分微服务的上下文范围,包括:

3.根据权利要求1所述的一种基于模型驱动架构的微服务设计方法,其特征在于,所述根据所述拓展需求模型在用例图和实体图中划分微服务的上下文范围,获得领域模型的初步划分结果,还包括:

4.根据权利要求1所述的一种基于模型驱动架构的微服务设计方法,其特征在于,使用emf定义所述微服...

【专利技术属性】
技术研发人员:杨溢龙张洋李阳殷永峰张莉
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1