随着业务需求的复杂多变,如果通过传统的开发模式,往往需要大量的编码工作与繁琐的运维流程,不仅成本高昂,而且难以快速响应市场的变化。逻辑引擎打破了传统开发的束缚,通过界面化、易于扩展的方式,实现了业务逻辑的高效配置、调试与发布。接下来我对JVS逻辑引擎的整体架构做个详细介绍。
专业术语解释
• 逻辑:有专向的功能的,由多个原子服务拼装成的配置集合体,无需复杂的编码与运维发布,具备高效的设计结果。
图片

  • 函数公式:对数据进行加工转换,包括数据的输入、函数、数据加工的函数配置,可以通过函数数据引用 前置的服务节点输出的数据结果,形成了服务执行输入、输出的串行的信息流动的链条。
    图片
  • 执行控制:与传统的开发的概念相似,在原子服务节点之间,系统也提供了串行、并行、分支、循环等执行控制的基础能力
    图片
  • 版本管理:在服务编排的设计中,存在版本的控制,可以在多个版本之间做切换,实现设计的阶段性备份
    图片

    逻辑引擎的定位

    • 核心功能:提供界面化、易于基础能力扩展的,实时配置、调试、发布的程序设计与运行执行的环境。
    • 使用人群:具备一定技术认知的实施人员(懂一些技术的产品经理、需求经理,懂业务的技术人员等)
    • 基础价值:业务功能实现的低成本、高质量、高效率,降低对技术人员的依赖度。
    图片

    逻辑的架构图

    逻辑引擎整体构架如下图所示,包含基础的框架、能力与交互管理等模块:
    图片
    • 基础框架,采用 spring cloud 进行构建,具备分布式部署的能力,支持横向扩展业务处理节点,支持集群化部署,兜底式的同业务的并发处理能力;
    • 数据控制是逻辑引擎中的基础能力,为系统提供各种数据访问、数据计算加工、查看基础参与上下文等模式,函数式编程,支持各种函数的嵌套加工,支持动态界面化的扩展内置函数:
    图片
    • 变量管理本质上提供了有效的数据访问的能力,支持后续节点的函数加工时可以引用前置业务节点输出的结果,实现对数据加工处理,信息的串行流动,最后返回给调用方,后置节点的数据输入可以是前置业务节点的结果输出。
    • 执行调度包括多种的执行模式,串行、循环、判断等多种模式,且支持定时自动调度执行,可以通过API调用等方式通过外部请求触发。同时提供了 异常处理的方式;
    图片

  • 用户交互包括可视化的配置画布,通过拖拽的形式实现 多种服务的链接与执行,同时实现的数据的逐级流转支持历史执行的结果回放、与日志查看,便于对配置的功能进行在线调试,实时仿真,并且可以查看到执行的结果。
    图片
  • 配套管理包含逻辑执行的消息模板通知、节点的扩展管理、执行的响应指标统计等等相关功能
    图片
    在线demo:https://logic.bctools.cn
    gitee地址:https://gitee.com/software-minister/jvs-logic

软件部长
43 声望6 粉丝

软件研发行业老司机,提供些踩坑的经验而已