译文
译自西班牙语原文,以原文为规范文本。 状态:草稿,待人工审校。如有歧义,以西班牙语原文为准。
层与环:划分职责¶
ASILO 0.1 现行的说明性指南。名称与编号属于所声明的配置。
一层把若干职责归在一起,并声明它的依赖。在这一模型中,每个环表示一层; 环的编号不授予信任、特权或隔离。当 ASILO-R-002 适用时—— 即声明采用 ASILO、且包含多个模块或包的系统——需要声明所选的模型。只有单个模块的系统则记录 这一条件。该要求并不规定统一的层数或编号。
一个示意模型,不强制编号¶
| 部分 | 职责 | 类比 |
|---|---|---|
| 核心 | 纯粹的类型与规则,不访问网络、文件或框架。 | 工作规则。 |
| 契约或端口 | 描述如何发起一次交互。 | 连接的形状与尺寸。 |
| 适配器 | 实现具体的交互,并转换其错误。 | 针对某一具体设施的连接件。 |
| 应用或组合 | 为某个用例选择并连接所需的部件。 | 设施的装配。 |
配置还可以进一步拆分领域与类型,使用其他的层或名称,并细化各项检查。 这一示意模型既不确立也不认可某个具体的技术配置。
flowchart TD
accTitle: ASILO:职责与依赖
accDescr: 应用依赖端口,即交互契约;数据库、网络或界面适配器实现这些端口,端口使用核心中的规则与纯类型。虚线表示应用在组合阶段连接适配器。
A["应用:组合系统"] -->|依赖| P["端口:交互契约"]
D["适配器:数据库、网络或界面"] -->|实现| P
P -->|使用其类型| N["核心:规则与纯类型"]
A -.->|在组合时连接| D
SVG 图:ASILO:职责与依赖 · 可编辑的 Mermaid 源文件。
实线箭头表示依赖或对契约的实现。虚线箭头表示应用在组合时连接适配器。 契约使用核心的类型;核心无需了解具体的适配器。这不是权限图,也不是进程隔离图。
需要分别检查的内容¶
- 依赖:某一部分不导入被禁止的层。
- 契约:格式错误的输入会被拒绝,并给出明确定义的结果。
- 授权:读取权限不允许写入,也不允许访问其他资源。
- 撤销:被收回的授权不再可用。
- 影响:一次拒绝不会产生被禁止的操作。
工具、环境与证据属于配置以及被评估的实现。 避免把导入检查当作上述所有控制的证明。
环视图:配置的一种可视化资源¶
以 SVG 打开这些环。由中心向外依次是 纯粹的规则与类型、交互契约、具体机制和组合。本页的 Mermaid 依赖图把这些层命名为 核心、端口、适配器与应用。圆环只表示视觉上的分组;并不表示某一层有权对另一层采取行动。 依赖要看 Mermaid 图中的箭头,而不是与中心的距离。
与已接受要求的关系¶
ASILO-R-002 要求:当系统包含多个模块或包并声明采用 ASILO 时,声明其模型及依赖方向。 单模块系统则记录这一条件。 环是本指南中一种可能的示意;配置会指明所选的模型及其检查。 本指南不规定环的数量,也不修改 ASILO 0.1。
背景与其他领域¶
参见该模型的来源,以区分保护环、端口与适配器、Onion 架构和整洁架构。 跨学科类比解释遏制、调节与证据。 领域与情境是与层数不同的另一类划分。