https://github.com/hiforce/lattice
概述
本文档对 Lattice 框架进行了技术介绍。Lattice 是一个轻量级的业务扩展调用系统,旨在高效地组织和管理复杂的业务定制。Lattice 提供模块化架构,并具备动态发现、加载和执行业务扩展的机制。
目的和范围
Lattice旨在解决复杂企业应用程序中业务定制管理的难题。它提供了一种结构化的方法来定义、发现和执行业务扩展,同时保持清晰的关注点分离并避免代码重复。
正如项目主 POM 文件中所述:“Lattice 是一个功能强大、轻量级的业务扩展调用框架。通过使用 Lattice 框架,可以高效地组织和管理复杂的业务定制。”pom.xml12-15
本概述涵盖了 Lattice 框架的高级架构和核心概念。有关特定组件的详细信息,请参阅其各自的文档页面。
框架架构
Lattice 采用模块化架构,围绕几个关键组件构建:
高级系统架构
Lattice框架由四个主要模块组成:
- lattice-model:包含定义扩展框架的核心数据结构和接口。
- lattice-runtime:实现了用于发现和执行扩展的运行时系统。
- lattice-tools:提供用于构建时处理、配置加载和动态类加载的实用程序。
- lattice-remote:通过 RPC 机制实现扩展的远程执行。
核心概念
Lattice 的构建围绕着几个关键概念展开,这些概念构成了它的扩展模型:
Lattice框架中的关键实体包括:
- 业务:代表可能需要定制的业务领域或场景。
- 产品:业务领域内相关功能的集合。
- 用例:需要特定功能的具体业务用例。
- 功能:定义扩展程序可以执行哪些操作的功能接口。
- 扩展:在特定业务环境中实际实现某项功能。
该框架遵循基于模板的方法,其中业务、产品和用例通过规范对象来定义,这些规范对象构成了扩展点的结构。
执行模型
Lattice 运行时通过结构化流程管理扩展的发现、加载和执行:
执行流程通常包括:
- 初始化 Lattice 运行时,注册所有能力、业务、产品和用例
- 应用程序代码通过委托调用功能
- 代表根据业务上下文发现适用的扩展
- 执行业务逻辑的扩展程序
- 结果汇总后返回给应用程序。
集成能力
Lattice旨在与多种常用框架和技术集成:
Lattice 支持与以下系统集成:
- Spring框架:用于依赖注入和组件管理
- Apache Dubbo:用于分布式环境中的远程过程调用
- Maven:用于构建时处理和元数据生成
- 动态加载:用于运行时加载扩展 JAR 文件
构建工具和配置
Lattice 提供构建时工具,用于扫描、分析和注册扩展:
入门
要在项目中使用 Lattice,请包含核心依赖项:
<dependency> <groupId>org.hiforce.lattice</groupId> <artifactId>lattice-model</artifactId> <version>${version.lattice}</version> </dependency> <dependency> <groupId>org.hiforce.lattice</groupId> <artifactId>lattice-runtime</artifactId> <version>${version.lattice}</version> </dependency>
有关晶格框架具体组成部分的更多详细信息,请参阅:
Framework Structure
The Lattice framework follows a layered architecture with clear separation of concerns:
| Layer | Module | Purpose |
| Model | lattice-model | Core data structures and interfaces |
| Runtime | lattice-runtime | Extension discovery and execution |
| Tools | lattice-tools | Build-time and runtime utilities |
| Remote | lattice-remote | Remote execution capabilities |
This modular approach allows developers to use only the components they need, providing flexibility in how the framework is incorporated into applications.