可组合架构 - DZone

23-01-15 banq

本文讨论可组合应用程序架构的概念和架构模式。

在一个组织中进行软件选择的基本假设已经发生了变化。虽然原则、政策和指导方针是相同的,但在大多数情况下,以下因素对产品、技术和开发的选择有直接影响。
  • 一个组织内现有的技能
  • 所选技能在市场上的可用性
  • 保护在基础设施、知识产权、人力资源方面的现有投资
  • 所选产品/技术如何与现有的IT环境打交道
  • 当然,还有其他有形的好处,如总拥有成本、投资回报率、上市时间等。

让我们来了解一下可组合架构的实质内容。每个架构都是由领域和映射到领域的能力组成的。每个能力都可以由一个或多个解决方案组件来完成,反之亦然。

可组合的架构并不偏离上述领域分解的原则,它只是在组件的组成上有所不同,以实现所需的业务领域功能。

整个架构围绕着可变性原则展开。它的意思是,可变性可以发生在技术层或功能能力上。

案例
让我们以风险管理框架为例,作为一个领域。这个领域涉及到客户的各种要素,如以下内容:

  • 了解你的客户
  • 财务匹配性分析
  • 欺诈分析
  • 关系分析

这些分析中的每一项都需要被执行,以使客户有资格进入金融机构。这些能力可以根据技术和功能组件(乐高积木)而有所不同,这些组件是针对每个领域堆积起来的。

架构风格演变
架构风格已经走过了漫长的道路,从整体式绿屏应用程序到现在的可组合架构。每种风格都有额外的优势和复杂性。

目前,选择的风格是基于微服务的架构,它提供了灵活性、敏捷性和更快的上市时间。然而,微服务架构风格在每个域中临时包含/排除功能方面缺乏可组合性。

所有这些架构风格都不提供可组合的功能,但是,通过微服务架构提供增加顺序的灵活性可提供最大的灵活性和敏捷性。

对可组合架构的需求更多是业务和市场驱动,而不是技术驱动。

在目前的情况下,颠覆性创新的规模大小不一。例如,基于 AI、ICR 的 KYC 是 KYC 领域的一项创新,而像 元宇宙 这样的东西是一种大规模的颠覆性创新,可能不是可组合架构的候选者。


可组合架构的关键原则
可组合架构是一种完整的、全新的技术创新,是在流行的微服务架构之上的增量创新。如上一节所述,可组合架构能够为特定域添加或排除临时功能,而不会影响架构的模块化或服务编排。
需要遵循两个基本原则:

  • API 优先:  API成为提供和使用业务功能的基本理念
  • 即时编排绑定:编排过程在运行时以发现服务的方式被发现。编排需要存储在持久性或内存中的数据库中(图数据库是一个不错的选择,因为它可以描述序列以及备用路径)。


可组合服务:逻辑解决方案视图
使用可组合服务构建的更大解决方案包含以下核心框架功能:

1、可组合的决策服务 
确定和驱动适用于特定上下文下特定用例的功能的一组基础规则。 
推动这一决策的广泛因素包括:

  • 功能能力之间的相互依赖
  • 功能能力的顺序
  • 业务属性:KPI、成本、风险
  • 背景方面,包括当前和以前的验证/评估状态、客户概况和行为属性、生态系统参数、备用数据等。


2、动态可组合性点
这些是可组合决策服务应用的基本点,通常是服务连接/可组合性层的一部分。
布线需要动态的级别将取决于特定的用例,通常是以下类型:

  1. 服务的动态连接基于同一域区域内的一组业务属性和规则——这类似于决策树,具有不同程度的复杂性。
  2. 高级场景可以利用 AI 功能来驱动组合(例如,历史客户行为数据/替代数据可以确定视频 KYC 是强制性的)
  3. 跨域可组合性(类型 A 或类型 B,但涵盖跨不同领域的功能)



可组合服务:解决方案实现视图
图数据库对于模拟不同对象/实体之间的连接非常有用。在这种情况下,对象/实体是通过不同机制(API、事件驱动、其他)连接的微服务本身。这种方法在有许多服务/API 具有复杂的相互关系(每个关系由不同的属性驱动)需要连接在一起的情况下可能很有用。

替代方法可能是利用规则引擎或 AI-ML 模型来推动可组合性。

可组合架构模式
以下部分解释了一种代表性的架构模式以及如何实现可组合架构。以下是架构模式的关键组件:

  • 微应用—— 数字场景中的典型事件生成器
  • 事件主干—— 事件主干处理整个事件检测、传播和处理
    • 通道服务—— 实现通道特定实现的 BFF 服务
    • SOR: 记录系统
    • 事件处理—— 将技术事件转换为业务事件的事件处理引擎
    • 事件主题—— 为不同目的传播的不同主题
    • Event store—— 时间序列数据库,帮助实现交易补偿
    • 事件动作关联—— 名称值存储,其中事件映射到要执行的动作,就是否需要调用特定 API 或启动流程编排而言
  • API网关
    • 领域服务—— 包装业务功能的所有领域服务
    • API 注册中心 ——API 发现注册中心
  • 可组合编织
    • 编排注册表—— 该注册表有助于根据“事件操作关联”组件提供的业务事件发现需要触发的流程。
    • 编排绑定器—— 该组件在运行时绑定 API 编排,以便为编排提供灵活性。对流程编排的任何更改都映射到此处,以便实现必要的可组合性。这会生成传播到编排执行引擎的基于 BPMN 的执行脚本。
    • 编排执行—— 该组件监视编排执行的状态并管理流程的状态。它是流程的运行时组件,就像流程引擎一样,但轻巧且适合用途。
    • 编排补偿—— 这是在由于多种原因导致流程失败时编排回滚所需的框架。
    • 通知—— 通知组件将编排状态传递给事件主题,以便订阅者可以使用它。


 

1