服务管理器

[English]

概述

brookesia_service_manager 是 ESP-Brookesia 的服务管理框架核心组件,统一提供服务生命周期管理、函数注册与事件分发、本地调用和事件订阅等能力。

特性

  • 生命周期管理:集中式管理服务初始化、启动、停止与反初始化流程。

  • 本地调用:在进程内直接调用服务函数,不依赖网络传输。

  • 统一函数与事件模型:提供函数定义、注册、分发与事件订阅机制。

  • 线程安全调度:可通过本地运行器与任务调度机制实现并发安全执行。

  • 解耦集成:应用代码通过统一 API 调用服务,不依赖具体服务实现细节。

通信架构

应用通过 ServiceManager 绑定服务后,直接通过 ServiceBase 和服务 helper 访问函数与事件注册表,调用链路短、性能高,并且不需要网络通信。

flowchart TD
    A["App / 用户代码"]
    B["**ServiceManager**<br/>· 服务发现<br/>· 生命周期协调<br/>· 绑定入口"]
    C["**ServiceBinding**<br/>· 持有服务引用<br/>· 提供访问封装<br/>· 管理调用上下文"]
    D["**ServiceBase**<br/>· 服务实例基类<br/>· 函数与事件容器<br/>· 权限检查入口"]
    E["**函数注册表**<br/>· 命名函数<br/>· 参数 schema<br/>· 同步/异步执行"]
    F["**事件注册表**<br/>· 事件名称<br/>· 订阅者列表<br/>· 通知派发"]

    A -->|"bind()"| B
    B -->|"返回 binding"| C
    C -->|"get_service()"| D
    D -->|"注册函数"| E
    D -->|"注册事件"| F

模块介绍

服务运行层

服务运行层负责服务生命周期管理、调用与事件执行调度和依赖绑定,核心由 ServiceBaseServiceManagerLocalTestRunner 构成。

API 参考

函数系统

函数系统用于定义服务可调用接口、校验调用参数并分派到具体处理函数,核心包含函数定义模型和函数注册表。

API 参考

事件系统

事件系统用于描述事件结构、校验事件数据并将事件分发到本地订阅者。

API 参考

通用

通用模块定义服务管理器中复用的通用类型和宏,为其他模块提供公共基础能力。

API 参考