9.2 KiB
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
- WHEN 用户查看设备列表,THEN THE Frontend SHALL 在每个设备行显示"查看硬件信息"按钮或链接
- WHEN 用户点击"查看硬件信息"按钮,THEN THE Frontend SHALL 向后端发送硬件信息查询请求
- WHEN 查询请求发送,THEN THE Frontend SHALL 显示加载状态指示器
- WHEN 后端返回硬件信息,THEN THE Frontend SHALL 显示硬件配置详情页面或弹窗
- WHEN 查询失败,THEN THE Frontend SHALL 显示友好的错误提示信息
Requirement 2: CPU 信息查询
User Story: 作为系统管理员,我希望能够查看设备的 CPU 型号和规格,以便了解设备的处理能力。
Acceptance Criteria
- WHEN 查询硬件信息,THEN THE Hardware_Info_Service SHALL 通过 WS-Management 查询 CIM_Processor 类
- WHEN 获取 CPU 信息,THEN THE Hardware_Info_Service SHALL 提取 CPU 型号(Name 或 Family)
- WHEN 获取 CPU 信息,THEN THE Hardware_Info_Service SHALL 提取 CPU 核心数(NumberOfCores)
- WHEN 获取 CPU 信息,THEN THE Hardware_Info_Service SHALL 提取 CPU 主频(MaxClockSpeed)
- WHEN 显示 CPU 信息,THEN THE Frontend SHALL 以清晰的格式展示 CPU 型号、核心数和主频
Requirement 3: 内存信息查询
User Story: 作为系统管理员,我希望能够查看设备的内存配置,包括插槽使用情况和总容量,以便规划内存升级。
Acceptance Criteria
- WHEN 查询硬件信息,THEN THE Hardware_Info_Service SHALL 通过 WS-Management 查询 CIM_PhysicalMemory 类
- WHEN 获取内存信息,THEN THE Hardware_Info_Service SHALL 列出所有已安装的内存模块
- WHEN 获取内存模块信息,THEN THE Hardware_Info_Service SHALL 提取每个模块的容量(Capacity)
- WHEN 获取内存模块信息,THEN THE Hardware_Info_Service SHALL 提取每个模块的插槽位置(DeviceLocator 或 BankLabel)
- WHEN 显示内存信息,THEN THE Frontend SHALL 显示总内存容量和每个插槽的使用情况
Requirement 4: 存储设备信息查询
User Story: 作为系统管理员,我希望能够查看设备的硬盘配置,包括硬盘数量、容量和类型,以便管理存储资源。
Acceptance Criteria
- WHEN 查询硬件信息,THEN THE Hardware_Info_Service SHALL 通过 WS-Management 查询 CIM_DiskDrive 或 CIM_MediaAccessDevice 类
- WHEN 获取存储设备信息,THEN THE Hardware_Info_Service SHALL 列出所有已安装的存储设备
- WHEN 获取存储设备信息,THEN THE Hardware_Info_Service SHALL 提取每个设备的容量(Capacity)
- WHEN 获取存储设备信息,THEN THE Hardware_Info_Service SHALL 提取每个设备的型号(Model 或 Caption)
- WHEN 显示存储设备信息,THEN THE Frontend SHALL 显示每个硬盘的容量、型号和序号
Requirement 5: 系统基本信息查询
User Story: 作为系统管理员,我希望能够查看设备的基本系统信息,以便识别设备型号和制造商。
Acceptance Criteria
- WHEN 查询硬件信息,THEN THE Hardware_Info_Service SHALL 通过 WS-Management 查询 CIM_ComputerSystem 类
- WHEN 获取系统信息,THEN THE Hardware_Info_Service SHALL 提取系统制造商(Manufacturer)
- WHEN 获取系统信息,THEN THE Hardware_Info_Service SHALL 提取系统型号(Model)
- WHEN 获取系统信息,THEN THE Hardware_Info_Service SHALL 提取系统序列号(SerialNumber,如果可用)
- WHEN 显示系统信息,THEN THE Frontend SHALL 在硬件信息页面顶部显示系统基本信息
Requirement 6: 硬件信息缓存
User Story: 作为系统管理员,我希望系统能够缓存硬件信息,以便快速查看而不必每次都重新查询。
Acceptance Criteria
- WHEN 成功查询硬件信息,THEN THE Backend SHALL 将硬件信息存储到数据库
- WHEN 用户再次查看硬件信息,THEN THE Backend SHALL 首先返回缓存的硬件信息
- WHEN 显示缓存的硬件信息,THEN THE Frontend SHALL 显示信息的最后更新时间
- WHEN 用户请求刷新硬件信息,THEN THE Backend SHALL 重新查询设备并更新缓存
- WHEN 硬件信息超过一定时间(如 24 小时),THEN THE Frontend SHALL 提示用户信息可能已过期
Requirement 7: 错误处理和降级方案
User Story: 作为系统管理员,我希望即使某些硬件信息无法获取,系统也能显示可用的信息,以便获得部分硬件配置。
Acceptance Criteria
- WHEN 查询某个硬件组件失败,THEN THE Hardware_Info_Service SHALL 继续查询其他组件
- WHEN 某个硬件信息不可用,THEN THE Frontend SHALL 显示"信息不可用"或"不支持"标识
- WHEN 设备不支持某个 CIM 类,THEN THE Backend SHALL 记录日志并返回部分可用信息
- WHEN 查询超时,THEN THE Backend SHALL 返回已获取的部分信息
- WHEN 所有查询都失败,THEN THE Frontend SHALL 显示清晰的错误消息和可能的原因
Requirement 8: 硬件信息展示界面
User Story: 作为系统管理员,我希望硬件信息以清晰、易读的方式展示,以便快速了解设备配置。
Acceptance Criteria
- WHEN 显示硬件信息,THEN THE Frontend SHALL 使用分组或标签页组织不同类型的硬件信息
- WHEN 显示硬件信息,THEN THE Frontend SHALL 使用图标或颜色区分不同的硬件组件
- WHEN 显示内存或存储容量,THEN THE Frontend SHALL 自动转换为合适的单位(MB、GB、TB)
- WHEN 显示硬件信息,THEN THE Frontend SHALL 提供导出功能(如导出为 CSV 或 PDF)
- WHEN 显示硬件信息,THEN THE Frontend SHALL 提供打印友好的视图
Requirement 9: 批量硬件信息查询
User Story: 作为系统管理员,我希望能够批量查询多个设备的硬件信息,以便生成硬件清单报告。
Acceptance Criteria
- WHEN 用户在设备列表中选择多个设备,THEN THE Frontend SHALL 显示"批量查询硬件信息"按钮
- WHEN 用户点击批量查询,THEN THE Backend SHALL 异步查询所有选中设备的硬件信息
- WHEN 批量查询进行中,THEN THE Frontend SHALL 显示查询进度(已完成/总数)
- WHEN 批量查询完成,THEN THE Frontend SHALL 显示汇总报告或导出为 Excel 文件
- WHEN 批量查询中某些设备失败,THEN THE Frontend SHALL 标记失败的设备并显示错误原因
Requirement 10: AMT SDK 集成
User Story: 作为开发人员,我希望系统能够正确使用 Intel AMT SDK 查询硬件信息,以便获取准确的硬件数据。
Acceptance Criteria
- WHEN 查询硬件信息,THEN THE Backend SHALL 使用 Intel AMT SDK 的 WS-Management 接口
- WHEN 构建查询,THEN THE Backend SHALL 使用正确的 CIM 类名和命名空间
- WHEN 解析查询结果,THEN THE Backend SHALL 正确处理 CIM 对象的属性
- WHEN 查询失败,THEN THE Backend SHALL 捕获并记录 SDK 异常信息
- WHEN 设备使用 HTTPS,THEN 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_DiskDrive 或 CIM_MediaAccessDevice: 存储设备信息
- Capacity: 容量(字节)
- Model: 型号
- Caption: 描述
- InterfaceType: 接口类型(SATA、NVMe 等)
-
CIM_ComputerSystem: 系统信息
- Manufacturer: 制造商
- Model: 型号
- Name: 系统名称
- TotalPhysicalMemory: 总物理内存
注意事项
- 不是所有 AMT 设备都支持所有 CIM 类,需要做好降级处理
- 某些硬件信息可能需要特定的 AMT 版本支持
- 查询硬件信息可能比较耗时,建议使用异步处理
- 硬件信息通常不会频繁变化,适合缓存