9.2 KiB
Raw Blame History

Requirements Document

Introduction

本文档定义了机房远程控制系统中查看 AMT 设备硬件配置信息的需求。该功能允许系统管理员通过 Intel AMT 技术远程查询设备的硬件配置,包括 CPU 型号、内存插槽使用情况、内存大小、硬盘信息等,无需物理接触设备即可获取详细的硬件清单。

Glossary

  • Hardware_Info_Service: 负责查询和管理 AMT 设备硬件信息的系统组件
  • CIM: Common Information Model通用信息模型DMTF 定义的标准化管理信息模型
  • WS-Management: Web Services for Management基于 Web 服务的管理协议
  • AMT_Device: 支持 Intel AMT 技术的设备
  • Hardware_Inventory: 硬件清单,包含设备的所有硬件组件信息
  • Memory_Module: 内存模块,代表一条物理内存条
  • Storage_Device: 存储设备,代表硬盘或 SSD
  • Processor: 处理器,代表 CPU

Requirements

Requirement 1: 硬件信息查询入口

User Story: 作为系统管理员,我希望能够从设备列表中选择一个设备并查看其硬件配置,以便了解设备的硬件规格。

Acceptance Criteria

  1. WHEN 用户查看设备列表THEN THE Frontend SHALL 在每个设备行显示"查看硬件信息"按钮或链接
  2. WHEN 用户点击"查看硬件信息"按钮THEN THE Frontend SHALL 向后端发送硬件信息查询请求
  3. WHEN 查询请求发送THEN THE Frontend SHALL 显示加载状态指示器
  4. WHEN 后端返回硬件信息THEN THE Frontend SHALL 显示硬件配置详情页面或弹窗
  5. WHEN 查询失败THEN THE Frontend SHALL 显示友好的错误提示信息

Requirement 2: CPU 信息查询

User Story: 作为系统管理员,我希望能够查看设备的 CPU 型号和规格,以便了解设备的处理能力。

Acceptance Criteria

  1. WHEN 查询硬件信息THEN THE Hardware_Info_Service SHALL 通过 WS-Management 查询 CIM_Processor 类
  2. WHEN 获取 CPU 信息THEN THE Hardware_Info_Service SHALL 提取 CPU 型号Name 或 Family
  3. WHEN 获取 CPU 信息THEN THE Hardware_Info_Service SHALL 提取 CPU 核心数NumberOfCores
  4. WHEN 获取 CPU 信息THEN THE Hardware_Info_Service SHALL 提取 CPU 主频MaxClockSpeed
  5. WHEN 显示 CPU 信息THEN THE Frontend SHALL 以清晰的格式展示 CPU 型号、核心数和主频

Requirement 3: 内存信息查询

User Story: 作为系统管理员,我希望能够查看设备的内存配置,包括插槽使用情况和总容量,以便规划内存升级。

Acceptance Criteria

  1. WHEN 查询硬件信息THEN THE Hardware_Info_Service SHALL 通过 WS-Management 查询 CIM_PhysicalMemory 类
  2. WHEN 获取内存信息THEN THE Hardware_Info_Service SHALL 列出所有已安装的内存模块
  3. WHEN 获取内存模块信息THEN THE Hardware_Info_Service SHALL 提取每个模块的容量Capacity
  4. WHEN 获取内存模块信息THEN THE Hardware_Info_Service SHALL 提取每个模块的插槽位置DeviceLocator 或 BankLabel
  5. WHEN 显示内存信息THEN THE Frontend SHALL 显示总内存容量和每个插槽的使用情况

Requirement 4: 存储设备信息查询

User Story: 作为系统管理员,我希望能够查看设备的硬盘配置,包括硬盘数量、容量和类型,以便管理存储资源。

Acceptance Criteria

  1. WHEN 查询硬件信息THEN THE Hardware_Info_Service SHALL 通过 WS-Management 查询 CIM_DiskDrive 或 CIM_MediaAccessDevice 类
  2. WHEN 获取存储设备信息THEN THE Hardware_Info_Service SHALL 列出所有已安装的存储设备
  3. WHEN 获取存储设备信息THEN THE Hardware_Info_Service SHALL 提取每个设备的容量Capacity
  4. WHEN 获取存储设备信息THEN THE Hardware_Info_Service SHALL 提取每个设备的型号Model 或 Caption
  5. WHEN 显示存储设备信息THEN THE Frontend SHALL 显示每个硬盘的容量、型号和序号

Requirement 5: 系统基本信息查询

User Story: 作为系统管理员,我希望能够查看设备的基本系统信息,以便识别设备型号和制造商。

Acceptance Criteria

  1. WHEN 查询硬件信息THEN THE Hardware_Info_Service SHALL 通过 WS-Management 查询 CIM_ComputerSystem 类
  2. WHEN 获取系统信息THEN THE Hardware_Info_Service SHALL 提取系统制造商Manufacturer
  3. WHEN 获取系统信息THEN THE Hardware_Info_Service SHALL 提取系统型号Model
  4. WHEN 获取系统信息THEN THE Hardware_Info_Service SHALL 提取系统序列号SerialNumber如果可用
  5. WHEN 显示系统信息THEN THE Frontend SHALL 在硬件信息页面顶部显示系统基本信息

Requirement 6: 硬件信息缓存

User Story: 作为系统管理员,我希望系统能够缓存硬件信息,以便快速查看而不必每次都重新查询。

Acceptance Criteria

  1. WHEN 成功查询硬件信息THEN THE Backend SHALL 将硬件信息存储到数据库
  2. WHEN 用户再次查看硬件信息THEN THE Backend SHALL 首先返回缓存的硬件信息
  3. WHEN 显示缓存的硬件信息THEN THE Frontend SHALL 显示信息的最后更新时间
  4. WHEN 用户请求刷新硬件信息THEN THE Backend SHALL 重新查询设备并更新缓存
  5. WHEN 硬件信息超过一定时间(如 24 小时THEN THE Frontend SHALL 提示用户信息可能已过期

Requirement 7: 错误处理和降级方案

User Story: 作为系统管理员,我希望即使某些硬件信息无法获取,系统也能显示可用的信息,以便获得部分硬件配置。

Acceptance Criteria

  1. WHEN 查询某个硬件组件失败THEN THE Hardware_Info_Service SHALL 继续查询其他组件
  2. WHEN 某个硬件信息不可用THEN THE Frontend SHALL 显示"信息不可用"或"不支持"标识
  3. WHEN 设备不支持某个 CIM 类THEN THE Backend SHALL 记录日志并返回部分可用信息
  4. WHEN 查询超时THEN THE Backend SHALL 返回已获取的部分信息
  5. WHEN 所有查询都失败THEN THE Frontend SHALL 显示清晰的错误消息和可能的原因

Requirement 8: 硬件信息展示界面

User Story: 作为系统管理员,我希望硬件信息以清晰、易读的方式展示,以便快速了解设备配置。

Acceptance Criteria

  1. WHEN 显示硬件信息THEN THE Frontend SHALL 使用分组或标签页组织不同类型的硬件信息
  2. WHEN 显示硬件信息THEN THE Frontend SHALL 使用图标或颜色区分不同的硬件组件
  3. WHEN 显示内存或存储容量THEN THE Frontend SHALL 自动转换为合适的单位MB、GB、TB
  4. WHEN 显示硬件信息THEN THE Frontend SHALL 提供导出功能(如导出为 CSV 或 PDF
  5. WHEN 显示硬件信息THEN THE Frontend SHALL 提供打印友好的视图

Requirement 9: 批量硬件信息查询

User Story: 作为系统管理员,我希望能够批量查询多个设备的硬件信息,以便生成硬件清单报告。

Acceptance Criteria

  1. WHEN 用户在设备列表中选择多个设备THEN THE Frontend SHALL 显示"批量查询硬件信息"按钮
  2. WHEN 用户点击批量查询THEN THE Backend SHALL 异步查询所有选中设备的硬件信息
  3. WHEN 批量查询进行中THEN THE Frontend SHALL 显示查询进度(已完成/总数)
  4. WHEN 批量查询完成THEN THE Frontend SHALL 显示汇总报告或导出为 Excel 文件
  5. WHEN 批量查询中某些设备失败THEN THE Frontend SHALL 标记失败的设备并显示错误原因

Requirement 10: AMT SDK 集成

User Story: 作为开发人员,我希望系统能够正确使用 Intel AMT SDK 查询硬件信息,以便获取准确的硬件数据。

Acceptance Criteria

  1. WHEN 查询硬件信息THEN THE Backend SHALL 使用 Intel AMT SDK 的 WS-Management 接口
  2. WHEN 构建查询THEN THE Backend SHALL 使用正确的 CIM 类名和命名空间
  3. WHEN 解析查询结果THEN THE Backend SHALL 正确处理 CIM 对象的属性
  4. WHEN 查询失败THEN THE Backend SHALL 捕获并记录 SDK 异常信息
  5. WHEN 设备使用 HTTPSTHEN THE Backend SHALL 正确处理自签名证书

Technical Notes

CIM 类参考

根据 DMTF CIM 标准和 Intel AMT 支持,以下 CIM 类可用于查询硬件信息:

  • CIM_Processor: CPU 信息

    • Name: 处理器名称
    • Family: 处理器系列
    • MaxClockSpeed: 最大时钟频率MHz
    • NumberOfCores: 核心数
    • NumberOfLogicalProcessors: 逻辑处理器数
  • CIM_PhysicalMemory: 物理内存信息

    • Capacity: 容量(字节)
    • BankLabel: 内存插槽标签
    • DeviceLocator: 设备位置
    • Speed: 内存速度MHz
    • MemoryType: 内存类型DDR3、DDR4 等)
  • CIM_DiskDriveCIM_MediaAccessDevice: 存储设备信息

    • Capacity: 容量(字节)
    • Model: 型号
    • Caption: 描述
    • InterfaceType: 接口类型SATA、NVMe 等)
  • CIM_ComputerSystem: 系统信息

    • Manufacturer: 制造商
    • Model: 型号
    • Name: 系统名称
    • TotalPhysicalMemory: 总物理内存

注意事项

  1. 不是所有 AMT 设备都支持所有 CIM 类,需要做好降级处理
  2. 某些硬件信息可能需要特定的 AMT 版本支持
  3. 查询硬件信息可能比较耗时,建议使用异步处理
  4. 硬件信息通常不会频繁变化,适合缓存