Copyright © 2020-2026 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
Web of Things 适用于多个物联网领域, 包括智能家居、工业、智慧城市、零售和 健康应用,在这些领域中使用 W3C WoT 标准可以 简化由来自多个厂商和生态系统的设备组合而成的 物联网系统的开发。WoT 工作组已经 制定并持续制定若干规范,以 处理这些领域的需求。
本用例和需求文档旨在收集 来自各个领域、由各种利益相关方贡献的 新 IoT/WoT 用例。随后可以使用这些用例 为 W3C WoT 工作组中的标准化工作 提供需求动机。此外,本文档还以用户故事的形式定义了 通用的高层需求,其中每个用户故事都将一个动机(通常是 一个或多个用例)、特定利益相关方,以及可由 WoT 规范支持或定义的具体 功能或属性联系起来。
本节描述本文档在其 发布时的状态。当前 W3C 出版物的列表以及本技术报告的最新修订版可在 W3C 标准和草案 索引中找到。
本文档由 Web of Things 兴趣 组作为 小组说明发布,使用 说明轨道。
本小组说明获得 Web of Things 兴趣组认可,但未获得 W3C 本身或其 成员认可。
W3C 专利 政策 不对本文档附带任何许可要求或承诺。
本文档受 2025 年 8 月 18 日 W3C 流程文档管辖。
万维网联盟(W3C)已经发布 Web of Things (WoT) Architecture [wot-architecture] 和 Web of Things (WoT) Thing Description (TD) [wot-thing-description] 作为正式的 W3C 推荐标准,以及相关的 规范,例如 Web of Things (WoT) Discovery [wot-discovery]。这些规范能够轻松地 跨物联网平台和应用进行集成,并且 近期章程继续扩大了它们的适用性。
自该小组成立以来,WoT IG 一直在收集用例, 以更好地理解为在全球范围内实现 物联网(IoT)服务互操作性所需的功能。 这些用例收集于此。为了更清晰地 定义通用需求,它们已通过一组用户故事进行补充, 这些用户故事试图记录 规范中特定功能背后的动机。
本文档收集并描述用于未来 WoT 标准中标准化工作的新用例和 需求(以用户故事的形式)。在可能的情况下,我们 还记录了当前标准已经在何处 满足所列用户故事。
本文档包含描述由多位作者贡献的用户故事和用例的 章节。其意图是,在必要时, 将在本文档未来修订版中添加更多用户故事和用例。
本文档中的用例集合可以分为 两类:
只要可能,就应使用 WoT Security and Privacy Guidelines [wot-security] 中定义的 术语来识别利益相关方。为方便起见,这些 术语列于 此处,但请参阅该文档以获得完整定义:
在收集用例时识别出以下其他利益相关方和角色, 或者它们是在其他 WoT 文档中定义的:
用户故事以单句形式提供需求的高层摘要, 该句描述利益相关方 (谁有此需求)、技术需求(他们需要什么; 一种能力或条件;功能),以及功能 需求(他们为什么需要它;目的或动机;用例)。 这些通常以如下句子形式表述: "作为 谁,我需要 什么,以便我能够 为什么。" 为清晰起见,以下用户故事 将每个部分拆分到列表中。每个用户故事还将 另外识别一个或多个用例(或用例 类别),以确立所识别能力的 动机。能力对应于其他技术规范中的 功能集合。
TD 中的可重用连接描述。
更好地描述诸如 MQTT 和 WebSockets 等 面向连接的协议。
在未使用默认术语的情况下简化 TD, 或避免冗余
至少有三个子问题构成了此功能的动机:
application/json,否则就需要在
每个 form 中重复。
表达来自我设备的数据在 二进制协议(例如 Modbus、Profinet 等)中的字节顺序
TD 消费者能够与我的 设备通信
表达来自没有事件通知的设备的轮询速率限制 (例如 Modbus、Profinet 等)
TD 消费者能够使用合适的 轮询速率
应缓解使用 WoT 协议绑定并意图 未经授权访问 WoT 资产的远程攻击方法。
访问控制、身份验证和授权 机制。
WoT 设备和服务的网络接口 应为每种协议支持适当的安全机制。
防止对 WoT 资产的未经授权恶意访问。
应缓解使用由 WoT Thing Description 描述的 暴露 WoT 接口,并意图 未经授权访问 WoT 资产的远程攻击方法。
访问控制、身份验证和授权 机制。
WoT 设备和服务的网络接口 应为每种协议支持适当的安全机制。
防止对 WoT 资产的未经授权恶意访问。
控制并管理对 WoT 资产的访问,以防止 未经授权的攻击者滥用。
能够将对 WoT 资产的访问限制为特定的 已认证用户,并验证其使用 特定资产的权限。
WoT 服务(例如目录 服务和自描述)的架构应允许在 发布任何信息之前进行身份验证和授权检查。
防止对 WoT 资产的未经授权恶意使用。
防止恶意攻击者对 WoT 服务发起 拒绝服务攻击,从而阻止授权用户的 合法使用。
即使遭受恶意网络攻击, 也能确保授权用户访问 WoT 服务的能力。
攻击者可能试图阻止其他 用户访问 WoT 服务,例如向 设备发送大量请求,使其忙于处理而无法 响应其他授权用户。设备 实现应实现最佳实践以 缓解这些攻击。
WoT 服务始终可供授权 用户使用。
防止 WoT 服务被用于对其他服务发起 分布式拒绝服务攻击。
防止 WoT 服务被用于分布式拒绝 服务攻击。
WoT 设备不会被恶意用于阻止 对其他服务的访问。
WoT 接口的描述(例如 TD 中的描述)应 准确,并应防止未经授权第三方进行修改, 以避免欺骗、重定向和 其他攻击。
能够防止 WoT TD 被未经授权地 修改。
WoT TD 的修改不能被用于欺骗或 重定向攻击。
防止未经授权第三方截获机密设备元数据, 以避免泄露可能被用于策划攻击 或推断私人信息的信息。
能够将对元数据(例如 Thing Description)的访问限制为仅授权用户。
未经授权的用户不能使用机密元数据来 策划攻击,或推断关于 用户、设备所有者或其他利益相关方的私人信息。
在授予访问权限之前,应确认与 系统用户相关的数据,例如身份或 访问权。
能够确认 系统用户数据的准确性(真实性),例如访问权 或 身份。
在某些情况下,可能需要对系统服务进行匿名访问。 在这种情况下,应有一种 仅验证访问权的机制,例如 持有者令牌,而用户身份则 单独确认。
不会向冒充授权 系统用户的未认证攻击者提供对系统的 未经授权访问。
系统用户的身份和其他私人信息, 包括在可能的情况下他们正在访问哪些服务, 应保持机密。
能够维护 系统用户数据的机密性。
通常不应向第三方透露用户身份, 并且在某些情况下甚至不应向 设备透露(例如使用身份验证/身份与 授权能力的分离)。 还应具备机制,以防止第三方看到 系统 用户正在访问哪些服务。
关于 系统用户的私人信息不会 暴露给未经授权的第三方。
对于所有通信,包括元数据(例如 TD)的传输, 应提供用于防止未经授权第三方 截获和/或修改的缓解措施。
能够保护通信,使其不能被 未经授权第三方截获或修改
这可以由加密通信通道支持, 其前提是对通信中 授权参与者进行身份验证。 加密通信还需要确保通信的完整性; 它不仅通常不应让未经授权方 读取通信,还应使他们无法在 不被检测到的情况下修改通信。
攻击者不能通过操纵授权通信来 获取机密信息或访问 WoT 资产
支持对等(自标识)、本地(网络 段)和全局(互联网范围)发现
发现应包括在多个规模上发现 设备的能力。规模应同时包括 本地网络(例如单个子网上, 如 LAN)和互联网规模发现(例如 发现由城市提供的服务)。 即使实现需要不同机制,在不同规模 发现的设备和服务也应通过通用发现 抽象进行整合。
可以定位 IoT 服务和设备,并独立于网络 位置检索它们的描述。
支持通过第三方服务发现
发现应包括通过第三方服务(例如 目录服务)发现设备的能力。
支持休眠设备、棕地设备 (其接口可由 WoT 描述,但其设计中 不包含显式、内置支持的设备)、小型设备 (由于能力原因不能自描述的设备)、跨网络发现 (出于可扩展性和安全原因,小型设备可能不希望 在本地网络之外被直接发现),以及对集合进行搜索。
与 WoT Scripting API 中的发现支持兼容
应在 WoT Scripting API 中提供一个 API, 以便能够访问 WoT Discovery 功能。
WoT 消费者可以动态查找并访问可用 WoT 服务的 WoT TD。
支持各种形式的查询,包括关键词、 模板和语义查询,以过滤结果。
在发现设备和服务时,尤其是在 互联网规模上,访问所有可访问 设备的元数据(Thing Description)并不可行。 相反,需要使用合适的条件 选择一个合适的子集。
发现可以扩展到大量设备和 服务。
支持空间查询和限于子网的查询。
发现的一项基本过滤能力 应包括按位置过滤,以便只发现 物理上附近的设备。 在某些情况下,限于子网的发现可作为这种能力的 代理,例如智能家居通常会 将所有设备放在单个子网上, 并且将搜索限制到该子网可以接受, 以将搜索限制到该特定家庭。然而,更 通常地,较大的建筑物和机构可能 有多个子网,并且在智慧城市等用例中, 需要显式地将搜索限制到特定 地理区域或语义区域(例如一个具名 街区、建筑物的特定楼层)。 在某些情况下,搜索还可能被限制到 一个不在用户物理邻近范围内的区域, 例如用户在出行前查看另一个城市的天气, 或城市仪表板按街区检查污染状况。
互联网规模的搜索可以限制到 特定位置附近或其内部的一组对象(该位置可以是 也可以不是用户的位置)。
支持可以跨越子网或多个 目录服务的查询。
发现机制应足够灵活, 能够跨越并组合来自多个 子网的发现结果。某些在 LAN 上可接受的机制, 例如广播,通常不适合用于 大规模互联网。目录服务是 支持此能力的一种方式。
可以实现独立于网络 分段的设备发现。
可扩展到大型 TD 数据库。
发现应适用于具有数百、数千 甚至数百万设备和服务的大型系统。 还需要若干其他能力来 支持大规模应用,包括跨越网络段的能力, 以及在源头按搜索条件过滤结果的能力。 在许多情况下,例如具有有限或 计量带宽的小型请求设备,大型 系统向请求者发送目录中所有可能 设备的所有元数据是不可接受的。
可以访问并管理非常大型的 IoT 设备和服务系统。
同时支持动态和静态元数据(TD)。
有些元数据是固定的,有些会频繁变化, 对“频繁”的定义取决于具体情况。 发现机制应足够灵活, 能够支持更新,并在请求时通知订阅者发生了变化。 如果变化非常频繁, 应有某种方式向用户指出 应直接从设备或服务访问该数据, 而不是通过元数据访问。某些 数据(例如位置)可能既可以是静态的, 也可以是动态的。这种特定形式的元数据 对过滤条件也很有用。发现 机制应适用于更新频率的各种规模。
不经常变化的数据可以高效存储, 而会变化的数据可以及时更新。
支持显式删除 TD。
当元数据(TD)远程存储在 发现系统中时,应能够删除 过时或不正确的元数据。也可能 需要支持删除以支持隐私 目标。删除应在请求发出后 尽快进行,并且应能够在 发现操作之后执行 删除操作。不过,删除操作应受到 保护,以便只有元数据的授权所有者 能请求删除该元数据。
过时、不正确或私有的元数据在不再需要 或不再适当时可以被删除。
支持对元数据的访问控制。
当设备或服务的元数据存储在 第三方目录服务中时,可能需要对其进行 更新、管理、修改或删除。此类 操作应只能由已认证 且被授权的实体执行,例如那些 最初在目录服务中创建条目的实体。 如果元数据存储在设备上, 那么对该信息的更新也应 受合适的访问控制约束,类似于 固件更新的访问控制。
可以维护元数据的完整性
自动清理不再 可访问或活动的设备的 TD。
存储在第三方 目录服务中的元数据(TD)应具有有限生命周期, 如果该生命周期未由授权实体 (例如最初创建 元数据记录的实体或其委托方)延长, 则应自动删除。
可以删除过时元数据,节省空间并 避免尝试访问不活动的设备和 服务。
与 IETF CoRE Resource Directories 和 CoRE Link Format 对齐。
应能够使用 IETF 定义的机制, 例如 CoRE Resource Directories,来 发现 WoT 资源,包括 Thing Description 和 Thing Description Directory。
IETF CoRE 和 WoT 生态系统可以共存,并且 可以从符合 IETF CoRE 的 系统中发现 WoT 资源。
WoT TD 应可通过多种现有 发现机制访问
存在许多现有发现机制,WoT 应与它们协同工作,并且也应可扩展 到新的发现机制。可以通过将现有非 WoT 发现机制用作“首次接触”或 “引介”机制来实现这一点,该机制解析为 一个 URL,然后可用于访问 WoT 特定的 发现机制。以这种方式支持的现有发现机制 应包括但不限于 DNS-SD、DNS-SRV、DHCP、 QR 码和 Bluetooth 信标。通常, 应能够使用任何返回 URL 的机制作为 “引介”机制。
WoT 系统可以与现有和新的 发现机制互操作,包括适用于 不同网络规模的机制。
支持已知的最佳机密性方法。
详细的 WoT 元数据,例如 WoT TD(Thing Description),不应对未经授权的 网络参与者可见。这可以通过 仅经由具有适当加密的基于 HTTP 的网络 API 提供 WoT TD 来实现,从而使传输 至少能像现有 Web API 一样受到保护。请注意,这仅适用于 WoT 发现的第二阶段“探索”。 “引介”阶段不受保护, 但也被禁止直接分发 WoT 元数据。
WoT 元数据(TD)可以受到保护,避免未经授权的 访问。
支持已知的最佳身份验证方法。
详细的 WoT 元数据,例如 WoT TD(Thing Description),不应提供给 未认证的请求者。这可以通过仅经由 基于 HTTP 的网络 API 提供 WoT TD, 并结合适当的身份验证和加密来实现, 以便访问元数据的 WoT 接口至少能像现有 Web API 一样受到保护。 请注意,这仅适用于 WoT 发现的第二阶段, “探索”。“引介”阶段不受保护, 但也被禁止直接分发 WoT 元数据。
WoT 元数据(TD)只提供给已认证的 请求者。
支持不会泄露用户身份的 身份验证和授权机制。
在请求者身份并不重要的情况下, 应能够使用匿名的身份验证机制, 以保护其隐私。众所周知的 Web 技术, 例如持有者令牌,可用于此目的。请注意, 这不适用于“引介”,而仅适用于 WoT Discovery 的第二个“探索”阶段。 某些引介机制可能无法保护隐私, 如果隐私至关重要,则应避免使用这些机制。 至少会有一种不泄露请求者身份的 引介机制可用。
可以在保护隐私的同时访问 WoT 服务和元数据。
支持设备和信息生命周期、信任 管理以及访问控制
在保护隐私和机密性的同时, 向系统添加和从系统移除设备的过程 尽可能简单
仅将 TD 和其他元数据分发给 已认证和已授权的实体。
可以维护隐私和机密性
不要向未授权实体泄露 TD、其他元数据或查询。
可以维护隐私和机密性
对 Thing 和服务进行简单的自动发现, 尽量少甚至无需人工交互。
自动化系统可以使用发现进行系统 管理,并且实现尽可能直接
在适当时支持人工身份验证(例如配对按钮 按压)。
新设备可以在家庭环境中轻松且安全地 加入
即使用户存在感官或运动限制, 也应能够发现设备。
存在感官或运动限制的用户可以使用 WoT 系统
应支持替代形式的发现,以 处理不同的无障碍和用例需求。
系统可以适应不同用户的需求
传感器:
执行器:
其他设备:
奶牛养殖在饲喂、挤奶、繁育和粪肥处理, 以及畜舍内外环境条件的控制和管理方面 需要大量劳动。特别是,挤奶占处理一头奶牛 总工作时间的 40% 以上。
近年来,乳品行业的先进国家已经引入 使用各种 IoT 设备和装备的基于 IoT 的 自动挤奶系统,以减少挤奶劳动。配备 IoT 设备和装备(例如传感器、高性能摄像头、 激光设备和机械臂)的自动挤奶系统(AMS) 可以执行整个挤奶流程,包括识别进入 挤奶箱的奶牛、清洗乳房、挤奶、收集、 灭菌、储存和乳成分分析。与管道式、 鱼骨式、串列式机器等传统方法不同, AMS 具有解决奶牛场劳动力短缺问题的优势, 因为它能将劳动力分配到挤奶之外的任务。 此外,AMS 可以提高牛奶生产力和质量, 同时降低奶牛疾病发生率。
AMS 生成以下数据,并且这些数据需要 与用于其他目的的数据(例如饲喂、分娩、 疾病控制和生长控制)以有机关系进行管理, 以便为奶牛场建立综合生产和运营管理 策略。
当奶牛进入挤奶箱时,安装在挤奶室中的 对象标识器会从 RFID 标签、QR 码或 条码中识别出奶牛 ID。通过这种方式, 可以基于 AMS 管理的历史数据(例如 挤奶次数或奶产量)更系统地进行挤奶。
然后,3D 摄像头、激光设备和传感器 准确识别乳房位置,机械臂快速将 挤奶杯连接到乳房以进行挤奶。在挤奶 前后,应进行清洁和消毒,以去除 任何污染物和细菌。安装在挤奶杯中的 传感器会测量挤奶过程中的经过时间和 奶产量。
此外,会分析牛奶的成分,即脂肪、 蛋白质、乳糖等含量,并将分析结果 传输到 AMS,以便管理牛奶质量以及 奶牛的疾病和健康状态。挤奶后,牛奶会被 送入具有冷却能力的奶罐,以保持牛奶新鲜。 AMS 收集整个挤奶过程中生成的数据,并 分析这些数据以制定奶牛场的牛奶生产策略。 农民或奶牛场管理员可以通过网页或移动 app 监控挤奶过程。
自动化系统应设计为最小化人工干预;然而, 为了应对紧急情况,具备直接控制 AMS 的 能力更为理想。
RFID 读取器/标签、挤奶杯、机械臂、 牛奶成分分析仪和传感器等设备和装备, 通过有线或无线网络连接到安装在奶牛场的 网关,即控制器。控制各种执行器并传输 数据的网关通过互联网连接到云系统。 因此,奶牛场中的所有设备和装备都可以 通过云端访问和控制。云端利用 AI 和大数据等 技术来分析从 AMS 传输的数据。分析结果 可以共享和分发给所有利益相关方,并可作为 创建各种新服务的基础信息,以提高奶牛场的 生产力和便利性。
本用例未指定任何具体安全事项需求。 任何定义良好的安全管理机制都可以应用于 本用例。
除农民外,农场工人、服务 提供方、制造商、 农产品消费者、第三方公司和政府部门等 各种利益相关方也参与奶牛场运营。 AMS 运营期间生成的各种类型和特征的数据 可以共享和分发给一个或多个利益相关方。
因此,必须根据数据类型、特征和使用目的 系统地管理数据访问权。通过这样做,可以保护 农民的经验、诀窍以及独特农业知识或 技术,并确保奶牛场的竞争力。
需要有线或无线通信链路来交换 AMS 运行 生成的数据,以及用于控制 IoT 设备和装备的 命令。为了避免干扰奶牛的自由移动和 其他农业工作,建议使用无线通信链路。
AMS 数据应以与设备类型和制造商无关的 通用格式交付和存储,并应以标准化方式 表达,以便进行基于 AI 的分析和处理。
通常,安装在奶牛场中的网关(即控制器) 会收集数据并通过网络传输到外部云端。 网关还会将从云端接收到的控制命令通过 网络传递给各种执行器。然而,如果由于 瓶颈、网关与云端之间的断开连接,或由于 云端内部处理时间过长而发生数据丢失或延迟, 则可能难以执行高效且可靠的挤奶操作。 为了解决这些问题,建议应用边缘计算技术, 以维持执行包括挤奶在内的农业工作的 基本功能。
正在引入基于 IoT 和 AI 的动物健康管理技术, 以克服在许多牲畜群生活的狭小空间中 将患病牲畜与其他牲畜分离的困难。 这有助于通过监测其行为和健康状态,并在预计 或发生疾病时作出快速且适当的响应,从而安全地 维护牲畜。
基于 IoT 和 AI 的动物健康管理技术在监测牲畜健康、 预防疾病以及早期检测疾病方面发挥重要作用。 通过这项技术,可以通过收集和分析牲畜的生物信号, 例如体温、心率和呼吸,并设定正常范围,实时监测 牲畜的健康状态。如果检测到异常数据,它会向农民 发送警报,以采取适当措施。
此外,AI 技术可用于预测牲畜的健康状态。通过使用 AI 模型分析牲畜健康状态与疾病发生之间的关系, 可以提供关于健康状态的预测结果,以采取预防措施。
这种基于 IoT 和 AI 的动物健康管理技术,对于通过 监测牲畜健康状态、采取预防措施并提供早期响应来 维护牲畜健康、提高生产力和最小化疾病发生非常有用。
总体而言,牲畜健康管理涉及数据采集、 传输、处理、分析和决策制定的复杂系统。 通过使用它,可以改善牲畜健康,防止疾病传播, 并提高生产力。牲畜健康管理可以从数据流角度 描述如下。
(数据采集)牲畜健康管理的数据从被监测的牲畜和 畜舍中采集。这些数据可以包括各种类型的生理数据, 例如体温、心率、呼吸率和粪便排出量,以及环境数据, 例如温度、湿度和空气质量。
(数据处理)数据随后在边缘设备上进行预处理, 然后发送到云服务器。预处理步骤可以包括清洗数据、 压缩数据,并执行基础分析以减少需要传输的数据量。
(数据传输)收集的数据会传输到云服务器进行分析。 这通常使用 Bluetooth、Wi-Fi、RFID 或蜂窝网络等 无线通信技术完成。
(数据分析)云服务器使用机器学习算法和 AI 模型来分析 从传感器和可穿戴设备收集的数据。分析可以包括识别模式、 预测未来健康风险,以及检测疾病或病症的早期迹象。
(决策制定)基于数据分析结果,牲畜健康管理服务提供方 或具有洞察力的兽医可以就牲畜的护理和治疗作出决策。 这可以包括采取预防措施以降低疾病或病症风险、 给药,或将患病牲畜与其余畜群隔离。 此外,牲畜健康管理服务提供方或兽医会建立反映分析结果的 牲畜健康管理计划。
露地智慧农业覆盖相当大的区域,与空间有限的 温室不同,需要各种类型的农业机械,例如拖拉机、 联合收割机、除草机和农药喷洒机。然而,由于 农业机械成本通常较高,高效运行和管理机械对于 节省操作所需成本和劳动非常重要。
为了高效管理农业机械,农民首先需要制定农业工作计划, 该计划反映每个作物生长阶段所需的农业工作类型、 所需估计时间、每项农业工作所需的机械类型和数量。 通过实施已制定的农业工作计划,农民可以使用机械在 尽可能短的时间内完成所需农业工作。此外,IoT 连接的 机械可以共享农业工作的实时进度状态,并在必要时 添加额外闲置机械,以缩短农业工作所需时间。
安装在农业机械上的各种类型传感器设备会收集与 田地环境条件和作物生长状态相关的数据。收集的数据 通过基于 AI 的分析,用于制定最佳生产管理策略并 优化(更新)农业工作计划,以提高农户生产力 (便利性、运行成本)。农民可以随时随地通过 Web 或 移动设备监测农业机械的运行状态和农业工作的进度, 并且在农业计划变更或设备故障时传输适当指令。
通过对各种数据进行系统化管理,例如最佳农业工作计划、 机械运行状态、农业工作执行结果,以及故障或损坏历史, 可以实现农业机械的高效管理。该数据可以基于 AI 和 大数据技术进行分析,以制定最佳生产管理策略。 通过这一系列流程,可以提高农场生产力。
农民或农业机械管理服务提供方基于农田位置、 所需农业工作类型、执行农业工作所需时间、所需 农业机械类型及其可用性,以及过去农业工作执行历史等 数据,制定农业工作计划。农业工作计划的制定至关重要, 因为它是以尽可能低的成本高效运行和管理农业机械的基础。 为了制定农业工作计划,必须反映农民需求,并在必要时 纳入农业专家组或专家系统的咨询结果。系统还可以考虑 当地天气条件和预报等因素,包括历史条件,例如累积降水量。 机械管理也可以考虑预测事件,例如可能需要维护或修理。
根据已制定的农业工作计划,部署必要的农业机械并执行 相应的农业工作。在农业工作过程中,农业机械收集并报告其 运行状态、故障或损坏发生情况、农业工作执行状态及其结果, 以及农田和作物生长状态给农场运营系统。农场运营系统可以 实时监测农业工作进度,并修改农业工作计划,以立即部署 尚未部署或很快可以完成分配农业工作的机械,从而提高 农场农业机械的运行效率。
农场运营系统综合分析收集的数据,并将其用于更新现有 农业工作计划和优化生产管理策略,以提高农场生产力。 收集和分析的数据可以与服务提供方、农业机械制造商和 维护公司等利益相关方共享。基于共享数据,服务提供方可以 提高农业机械管理服务的质量,而农业机械制造商和维护公司 可以利用这些数据生产和维护针对农民所需农业工作优化的 农业机械。此外,农民可以通过 Web 或移动设备监测农业工作的 进度状态和结果。
管理移动设备和传感器的智慧城市, 包括被动移动传感器包、包裹、 车辆和自主机器人,其中它们的位置 需要动态确定。
智慧城市需要跟踪大量移动 设备和传感器。位置信息可以 与物流或车队管理系统集成。 需要一个具有通用网络接口的可重用 地理定位模块,以纳入这些不同的 应用。对于户外应用,可以使用 GPS, 但在室内可能会使用其他地理定位技术, 例如 WiFi 三角定位或基于视觉的 导航(SLAM)。因此,地理定位 信息应与技术无关。
注:即使在室内,我们也更倾向于使用 “geolocation”一词,而不是 “localization”,以避免与语言本地化混淆。
以下之一:
注:系统应能够通知消费者位置发生变化。 这可由其他系统用于实现地理围栏。 这可能需要额外参数,例如在发送通知之前 设备可移动的最大距离,或更新之间的 最大时间间隔。通知可以通过多种方式发送, 其中一些可能不是传统的推送机制 (例如,可以使用电子邮件)。对于 地理围栏应用,设备不必知道围栏边界; 这些边界可由单独的系统管理。
智慧城市需要观察在车队或物流管理系统 语境中使用的大量移动设备的物理位置, 或者在仪表板应用中将传感器数据放置到 地图上。这些系统还可能包括地理围栏 通知和地图绘制(可视化跟踪) 能力。
高分辨率时间戳可以与缓存操纵结合使用, 以访问受保护的内存区域,如 SPECTRE 漏洞利用中所示。某些地理定位 API 和技术 可以返回高分辨率时间戳,这可能是潜在问题。 最终这些问题将在缓存架构中得到处理, 但在此期间,一种变通方法是人为限制 时间戳的分辨率。
当位置与可能关联到特定个人的设备一起使用时, 例如手机或车辆,位置通常被视为私人信息, 因为它可用于跟踪该个人,并推断其活动 或其关联对象(如果同时跟踪多人)。 因此,在敏感语境中访问地理位置的 API 通常受到限制,并且只有在确认用户许可后 才允许访问。
目前没有单一标准化的语义词汇来表示 位置数据。位置数据可以是点数据、 路径、区域或体积对象。位置信息可以 使用多个标准表达,但 TD 中的位置数据 或 IoT 设备返回的数据的读取者必须能够 无歧义地描述位置信息。
地理定位数据既有动态应用(移动传感器返回的数据), 也有静态应用(固定安装位置)。 对于动态位置数据,用于注解数据 schema 的 一些推荐词汇会很有用。对于静态位置数据, 可包含在 TD 本身中的元数据标准格式 会很有用。
请注意,精度和时间是适用于 各类传感器的问题,而不仅仅是地理定位。 然而,GPS 这种特定地理定位技术很特殊, 因为它也是准确时间的来源。
管理大量设备的智慧城市,这些设备的数据 需要在语境中可视化和理解。
利益相关方包括:
为了促进智慧城市规划和决策, 智慧城市仪表板界面使城市管理者能够 实时查看和可视化整个城市的所有传感器数据, 并且数据会标识其地理来源位置。
执行器可以包括机器人;对于这些执行器, 可能会向机器人发出命令,使其移动到新位置、 投放或拾取传感器包等。不过,它也可以包括 其他类型的执行器,例如防洪闸、交通信号灯、 灯光、标志牌等。例如,在电子公告牌上发布 公共消息可能是通过仪表板可完成的一项任务。
传感器可以包括用于环境以及人群和交通管理的传感器 (密度计数、热成像摄像头、车速等)。机器人、 其他执行器和传感器的状态、数据可视化,以及 (可选)历史比较。
仪表板将包括地图绘制功能。地图绘制意味着需要 每个执行器和传感器的位置数据,这些数据可以通过 地理定位传感器(例如 GPS)获取,或在安装期间 静态分配。
本用例还包括来自摄像头的图像以及 实时图像和数据流。
来自大量且种类繁多的传感器的数据 需要整合到单个数据库中并进行 规范化,然后放置在时间和空间中,最后 进行可视化。
用户,即负责制定规划决策的城市管理成员, 会看到适合规划决策的地图可视化数据。
变体:
示例流程:
一个服务或用户向已知 Middle-Node 的发现端点 发送一个(SPARQL)查询(该端点可以由 GUI 包装)。 Middle-Node 首先会通过检查注册在该 Middle-Node 中的 IoT 设备的 Thing Descriptions 来尝试回答查询。 然后,如果查询需要进一步发现,或者未能成功回答, Middle-Node 会将查询转发给其 *已知* 的 Middle-Node。 递归地,Middle-Node 将尝试回答查询和/或将查询转发给其 已知的 Middle-Node。当某个 Middle-Node 能够回答查询时, 它会将部分查询答案转发回前一个 Middle-Node。 最后,当发现任务完成时,前一个 Middle-Node 会合并所有 部分查询答案,生成统一视图(可以是同步或异步的)。本用例涉及博物馆等节能文化空间中 可信 IoT 实体的语义建模。
如今,由于全球电力需求不断增长, 节能问题已经引起研究界的兴趣。 人们认为,为满足其日常负载需求以提供服务, 公共和工业建筑会产生过度能源使用。 因此,开发节能建筑的必要性可能被证明是有益的。 尤其是,建筑能效的提升会带来建筑能源管理系统 (BEMS)。
BEMS 目标包括但不限于:在文化空间节能语境中,尤其是在博物馆空间中应用 BEMS,是一个正在发展的近期研究兴趣。 对博物馆中隔离保存的艺术品和古代物件的保护和保存, 导致需要持续监测温度、湿度和 CO2 等环境因素 与室内条件。这种监测涉及 Internet of Things (IoT) 实体,它们可被视为 BEMS 的组成部分,用于在不: a) 牺牲人类室内参观体验和舒适水平,以及 b) 牺牲艺术品保护和保存的情况下减少能源消耗。
所呈现用例的目标是勾勒并强调以下知识表示需求:通过对此知识进行推理,可以识别有趣展品和 能源相关观察(基于感测访客与展品的接近程度, 以及观察展品灯亮度水平)。
例如,如果某个展品的灯亮度水平为“medium”, 且展品附近有两个以上访客,则该观察会被分类为 a) 有趣展品观察,以及 b) 高能级观察, 这意味着该观察所涉及展品的灯光能源(光)水平 必须提升到高。此外(另一个示例),如果展品的 灯亮度水平为“medium”,且其附近少于两个访客, 则将其分类为低能级观察,这意味着该观察所涉及 展品的灯光能源(光)水平必须调为低。这些示例表明, 必须对所观察展品的灯光(能源)水平进行变化 (降低或升高)。
Web of Things Thing Description (WoT TD): 表示 IoT 实体信任(可信 things、一般可信 IoT 实体, 即设备、人、流程、数据)。Kotis 等人提供了一个 IoT-trust 相关知识表示(OWL)示例: https://github.com/KotisK/IoTontos/blob/master/Ontologies/IoT/IoT-trust-onto-v06.owl (或 https://i-lab.aegean.gr/kotis/Ontologies/IoT/IoT-trust-onto-v06.owl)。
相关文章:Kotis, K., I. Athanasakis, and G. A. Vouros, "Semantically Enabling IoT Trust to Ensure and Secure Deployment of IoT Entities", Int. J. of Internet of Things and Cyber-Assurance, vol. 1, issue 1: Inderscience, pp. 3-21, 2018. (http://www.inderscience.com/storage/f596810317421112.pdf)
properties 属性,
这是一个用于应用特定信息的非规范性 JSON Object
(不要与 TD 的 properties 混淆,
后者是 PropertyAffordance 实例的 Map)
在运营智能建筑时,聚合并管理这些建筑中 异构设备提供的所有数据仍然需要大量人工工作。 除了依赖多种协议进行数据采集的障碍外, 所采集的数据通常缺少有关其位置和目的的 上下文信息和元数据。通常,每个使用 建筑 things 数据的服务或应用都需要关于其内容和 语境的信息,例如:
随着在建筑整个生命周期中越来越多地使用 基于模型的数据交换(通常称为 Building Information Modeling (BIM))(Sacks et al., 2018),可以获得一个经过整理的数据来源, 用来描述建筑本身,其中包括建筑拓扑,例如结构化为 场地、楼层和空间等。
自动追踪建筑中的数据及其相关 things, 尤其可以简化 Building Automation and Control Systems (BACS) 以及 Heating Ventilation and Air-Conditioning (HVAC) 服务在调试、运行、维护和改造期间的 配置和操作。为应对这些挑战,建筑专家仍然使用 元数据和命名约定,这些内容被人工实现到 Building Management Systems (BMS) 数据库中,以标注 数据和 things。thing 的一个重要属性是其在建筑拓扑中的 位置,以及其相关数据产生或使用的位置。例如, 这适用于某个空间的温度传感器、某个区域的温度设定点、 HVAC 组件的混合风门叶片执行器等。此外, things 的其他属性也值得关注,例如成本或特定制造商数据。 一个困难尤其在于缺少一种标准化方式来自动创建、链接和 共享这些信息。相反,制造商、服务提供方和用户会为各自目的 引入自己的元数据。作为解决方案,Web of Things (WoT) Thing Description (TD) 旨在提供 things 之间的规范化和 语法互操作性。
为支持这一工作,本用例的动机在于需要增强 智能建筑中 things 之间的语义互操作性,并为它们提供 指向建筑信息的上下文链接。这些建筑信息通常来自 BIM 模型。本用例基于 Web of Data 技术,并复用 Linked Building Data 领域中可用的 schema。它应作为 Internet of Building Things (IoBT) 中许多应用的 用例模板。
本用例的目标是展示自动化工作流的潜力,并处理 智能建筑领域中观察到的数据异构性。这些示例展示了 将 WoT TD 与从 BIM 获取的上下文数据相结合的潜在收益。
本用例基于 Open Smart Home Dataset,该数据集引入了一个 住宅公寓的 BIM 模型,并结合了典型智能家居传感器所作的观测。 我们用其中一些项目的 Thing Descriptions 扩展该数据集。 所考虑公寓厨房中温度传感器的相应 Thing Description 如下:
{
"id": "https://w3id.org/ibp/osh/OpenSmartHomeDataSet#TemperatureSensor",
"@context": [
"https://www.w3.org/2019/wot/td/v1",
{
"osh": "https://w3id.org/ibp/osh/OpenSmartHomeDataSet#",
"bot": "https://w3c-lbd-cg.github.io/bot/#",
"sosa": "http://www.w3.org/ns/sosa/",
"om": "http://www.ontology-of-units-of-measure.org/resource/om-2/",
"ssns": "https://www.w3.org/TR/vocab-ssn/",
"brick": "https://brickschema.org/schema/Brick#",
"schema": "http://schema.org"
}
],
"title": "TemperatureSensor",
"description": "Kitchen Temperature Sensor",
"@type": ["sosa:Sensor", "brick:Zone_Air_Temperature_Sensor", "bot:element"],
"@reverse": {
"bot:containsElement": {
"@id": "osh:Kitchen"
}
},
"securityDefinitions": {
"basic_sc": {
"scheme": "basic",
"in": "header"
}
},
"security": [
"basic_sc"
],
"properties": {
"Temperature": {
"type": "number",
"unit": "om:degreeCelsius",
"forms": [
{
"href": "https://kitchen.example.com/temp",
"contentType": "application/json",
"op": "readproperty"
}
],
"readOnly": true,
"writeOnly": false
}
},
"sosa:observes": {
"@id": "osh:Temperature",
"@type": "sosa:ObservableProperty"
},
"ssns:hasSystemCapability": {
"@id": "osh:SensorCapability",
"@type": "ssns:SystemCapability",
"ssns:hasSystemProperty": {
"@type": ["ssns:MeasurementRange"],
"schema:minValue": 0.0,
"schema:maxValue": 40.0,
"schema:unitCode": "om:degreeCelsius"
}
}
}
其中,传感器测量范围的上下文信息使用 SSNS schema 指定。 thing TemperatureSensor 的位置信息基于 Building Topology Ontology (BOT) 提供,这是由 W3C Linked Building Data Community Group (W3C LBD CG) 开发的一个最小本体,用于在语义 Web 中描述 建筑拓扑。此外,对应执行器的 thing description 如下所示。
{
"id": "https://w3id.org/ibp/osh/OpenSmartHomeDataSet#TemperatureActuator",
"@context": [
"https://www.w3.org/2019/wot/td/v1",
{
"osh": "https://w3id.org/ibp/osh/OpenSmartHomeDataSet#",
"bot": "https://w3c-lbd-cg.github.io/bot/#",
"sosa": "http://www.w3.org/ns/sosa/",
"ssn": "http://www.w3.org/ns/ssn/",
"brick": "https://brickschema.org/schema/Brick#"
}
],
"title": "TemperatureActuator",
"description": "Kitchen Temperature Actuator",
"@type": ["sosa:Actuator", "brick:Zone_Air_Temperature_Setpoint", "bot:element"],
"@reverse": {
"bot:containsElement": {
"@id": "osh:Kitchen"
}
},
"securityDefinitions": {
"basic_sc": {
"scheme": "basic",
"in": "header"
}
},
"security": [
"basic_sc"
],
"actions": {
"TemperatureSetpoint": {
"forms": [
{
"href": "https://kitchen.example.com/tempS"
}
]
}
},
"ssn:forProperty": {
"@id": "osh:Temperature",
"@type": "sosa:ActuatableProperty"
}
}
所考虑的场景与 BACS 中温度传感器的更换有关。 定位 things 的拓扑信息,例如 温度 传感器,可用于自动调试新更换的传感器, 并将其链接到现有控制算法。为此,需要合适传感器和 执行器的标识符,例如可以通过 SPARQL 查询。 这里的查询使用了 Brick schema v1.1 [Brick] 中对 传感器的一些额外分类。
PREFIX bot: <https://w3id.org/bot>
PREFIX brick: <https://brickschema.org/schema/Brick#>
PREFIX osh: <https://w3id.org/ibp/osh/OpenSmartHomeDataSet#>
SELECT ?sensor ?actuator
WHERE{
?space a bot:Space .
?space bot:containsElement ?sensor .
?space bot:containsElement ?actuator .
?sensor a brick:Zone_Air_Temperature_Sensor .
?actuator a brick:Zone_Air_Temperature_Setpoint .
}
类似地,也可以通过基于 HTTP 协议构建的 REST API 获取这些数据。下面是一个应用 REST 风格的示例端点,用于获取特定空间名称的相同信息:
GET "https://server.example.com/api/locations?space=osh:Kitchen&sensorType=brick:Zone_Air_Temperature_Sensor&actuatorType=brick:Zone_Air_Temperature_Setpoint"
API response:
{
"location": {
"site": {
"id": "https://w3id.org/ibp/osh/OpenSmartHomeDataSet#Site1",
"name": "Site1"
},
"building": {
"id": "https://w3id.org/ibp/osh/OpenSmartHomeDataSet#Building1",
"name": "Building1"
},
"zone": null,
"storey": {
"id": "https://w3id.org/ibp/osh/OpenSmartHomeDataSet#Level2",
"name": "Level2"
},
"space": {
"id": "https://w3id.org/ibp/osh/OpenSmartHomeDataSet#Kitchen",
"name": "Kitchen"
},
"sensors": [
"https://w3id.org/ibp/osh/OpenSmartHomeDataSet#TemperatureSensor"
],
"actuators": [
"https://w3id.org/ibp/osh/OpenSmartHomeDataSet#TemperatureActuator"
]
}
在此示例查询中,REST 端点使用 OpenAPI specification 定义,并由 RESTful 服务器提供。服务器与底层后端 存储之间需要数据绑定,此处后端存储是包含相关本体 (osh、bot、ssn、brick……)的三元组存储。 该数据绑定依赖于与上面所示类似的 SPARQL 查询。 因此,该端点可以向使用自定义 JSON 而非三元组的 目标应用交付信息。类似实现也可以使用 GraphQL 完成。
智能建筑中的另一个相关用例,与意外行为、错误和 故障的检测有关,它将极大受益于协调一致的 thing descriptions 和附加的位置信息。此类故障检测的一个示例 是基于规则的传感器值监控。适用于传感器的一条通用规则是, 观测值保持在传感器的测量范围内。同样,在上述维护情况下, 传感器会被更换。
配置故障检测规则的某个 agent 可以从传感器的 TD (见上文)获取测量范围,以获得配置上述规则所需的参数。 同样,可使用检索此信息(schema:minValue/ schema:maxValue)的 查询或 API 调用来更新 传感器 所提供值的上限和下限。
智能建筑中的安全非常重要。特别是,访问控制需要被妥善保护。 这也适用于数据访问,数据访问可以使用现有安全方案 (API Keys、OAuth2……)来保护。此外,从某些观察中, 例如用电量,可能会间接给出如家中是否有人等线索。 因此,必须定义并妥善处理安全需求。
如果传感器观测可以与个人匹配,隐私考虑事项可能成为关注点。 建筑所有者、管理者和用户有责任为其数据定义自己的 隐私策略,并在必要时共享必要同意。
无障碍是建筑领域中的主要关注点。 也存在以电子格式提供无障碍数据的工作。 W3C LBD CG 正在与 W3C Linked Data for Accessibility Community Group 联系。
由于建筑行业是全球性行业,国际化是一个关注点。 这也体现在一些工作中,例如上方示例中使用的 BOT 提供多达 16 种不同语言的多语言标签,包括英语、 法语和中文。
在这些环境中,设备通常不是商用现成 IoT 设备, 而是“成套单元”和其他“低层级”设备,它们代表 更大的系统执行物理任务:泵、风机、变频驱动器、 变风量箱和冷水机组都是示例。此类设备使用电线、 管道、风管和其他机制相互连接。传感器、执行器以及 其他数据源和汇被关联到这些子系统中的设备。 通过某种数字控制系统,它们中继关于设备当前行为、 状态和性能,以及建筑子系统所接触物质和介质属性的 遥测数据。
这些系统的描述建立在标准化且广为人知的建筑子系统中 设备和其他装置名称之上非常重要。依赖通用术语不足以 以广泛一致且可解释的方式区分不同种类的系统和 不同种类的设备。研究和实践表明,必须建立共同术语, 才能降低开发和部署触及信息物理系统内部的数据驱动 应用所需成本。
为支持此用例,WoT 描述应描述建筑子系统中存在的 网络化设备及其数据能力。这些能力应与设备所作用的 物质或介质属性相关。例如,智能恒温器的 API 可能将 “mode”呈现为只读属性。“Mode”通常指恒温器 “要求”的内容,例如制冷、制热、风扇; 这通常以数值形式捕获。该 mode 由 HVAC 设备读取, 例如屋顶机组,随后执行所需调节。mode 属性的 WoT 描述应允许确定 mode 属性的值可能会影响 建筑中其他设备和实体的哪些属性。在此示例中, mode 属性表示应表明 mode 属性会间接影响与恒温器控制的 设备相连房间中的空气温度。
示例:异常区域检测
“异常区域”是建筑中通过比其他区域更频繁地要求制热或制冷 来驱动需求的区域。检测异常区域的一种简单方法是观察那些 持续高于或低于其设定点超过某个 delta 的区域 (这些区域可能由多个房间组成)。以下 SPARQL 查询使用 Brick 来识别与末端单元关联的送风温度设定点和传感器, 并识别这些末端单元所服务的区域。
PREFIX brick: <http://brickschema.org/schema/Brick#>
SELECT ?term ?zone ?sat ?sp WHERE {
?term a brick:Terminal_Unit .
?zone a brick:HVAC_Zone .
?sat a brick:Supply_Air_Temperature_Sensor .
?sp a brick:Supply_Air_Temperature_Setpoint .
?term brick:feeds ?zone .
?term brick:hasPoint ?sat, ?sp .
}
示例:测量冷却盘管前后的温度
一种常见的故障检测和诊断操作是检测损坏或性能不足的 冷却盘管。它们是冷冻水流经的中空回路; 这些回路被放置在气流中以冷却空气。 冷冻水流经盘管的过程由阀门控制。为了判断盘管是否损坏 或性能不足,需要测量盘管之前和之后的 空气温度。如果在阀门打开时,盘管之后的温度 没有明显低于盘管之前的温度,则盘管可能存在故障。
PREFIX brick: <http://brickschema.org/schema/Brick#>
SELECT ?ahu ?mat ?sat ?pos ?room WHERE {
?ahu a brick:AHU .
?sat a brick:Supply_Air_Temperature_Sensor .
?mat a brick:Mixed_Air_Temperature_Sensor .
?ccv a brick:Cooling_Valve .
?pos a brick:Position_Sensor .
?room a brick:Room .
?ahu brick:hasPoint ?mat, ?sat .
?ahu brick:hasPart ?ccv .
?ccv brick:hasPoint ?pos .
?ahu brick:feeds+/brick:hasPart? ?room .
}
一个非常有用的功能是对设备状态、警报和其他多值属性的 标准枚举进行语义描述。一个示例是上文恒温器 mode 的数值编码 (例如“0 表示关闭”,“1 表示一阶段 制热”等)。
许多语义在制造商和型号之间是标准的,因为它们描述的是 用户必须能够访问的已知且行业标准的属性,但这些属性以 不同方式编码。能够引用标准化错误码、设备状态等, 将极大推动以供应商无关方式处理数据。
工业制造的生产线由多台机器组成,其中每台机器都包含 用于各种数值的传感器。单台机器故障可能导致产品缺陷 或整条生产线停止。
大数据分析能够识别整个生产工厂多条生产线之间, 以及多个工厂之间的行为模式。
此分析结果可用于优化原材料消耗、检查生产线和 工厂状态,以及预测并防止故障状况。
一家公司拥有多个工厂,每个工厂包含 多条生产线。示例包括生产线和环境传感器。 这些设备从多个传感器收集数据,并将此信息 传输到云端。传感器数据存储在云端,可使用 机器学习/AI 进行可视化和分析。
云服务允许管理单个设备和设备组。组合来自多个设备的 数据流,可以轻松概览用户领域中所有连接设备的状态。
在许多情况下,存在同类设备组,因此跨设备聚合数据 可以用于识别异常或预测即将发生的停机。
云服务允许管理单个设备和设备组,并可帮助识别异常状况。 为此,用户可以定义一组规则,基于这些规则向用户发出警报 或触发设备上的动作。
这能够及早检测待发生问题,并降低机器停机、质量问题或 对环境或人类生命造成威胁的风险。它提高生产效率, 改善生产物流(例如原材料交付和生产产出)。
将多个设备集成并互连到通用零售工作流 (即交易日志)中,可在多个层面显著改善零售业务运营。 它带来运营可见性,包括消费者行为和环境信息, 这些以前无法以有意义的方式实现或不可行。
它显著加快了运营问题根因分析流程,并简化了 零售商的工作。
注 1:系统应能够将发热检测通知 消费者(例如安保人员)。这可以是电子邮件、 SMS,或某种其他机制,例如 MQTT 发布。
注 2:在所有捕获图像的情况下, 都适用隐私考虑事项。
为统计目的统计唯一个人也会很有用, 但不一定要基于识别特定人员。 这样做是为了避免多次统计同一个人。
生理闭环控制(Physiological Closed-Loop Control, PCLC)设备是一组新兴技术,它们使用来自 生理传感器的反馈,自主操纵生理变量, 通过通常由临床医生提供的治疗来实现。
没有 PCLC 的临床场景。一名患有终末期肾衰竭的 老年女性接受标准胰岛素输注方案来管理血糖, 但未提供葡萄糖。她的血糖降至 33, 随后在给予葡萄糖后反弹至 200 以上。 这种场景几十年来未曾改变。
在 ICU 中实现 PCLC 的期望状态。一名患者正在接受 IV 胰岛素输注,并持续监测血糖。输注泵速率 根据实时测得的血糖水平自动调整,以维持血糖值 处于目标范围。如果患者的葡萄糖水平没有对 胰岛素给药变化作出适当响应,临床工作人员会收到警报。
医疗设备之间不会自主交互(监护仪、呼吸机、 IV 泵等)。上下文丰富的数据难以获取。 用于减少医疗错误和提高效率的技术和标准 尚未在手术室或家庭中实现。
近年来,研究人员在开发用于机械通气、 麻醉给药应用等的 PCLC 设备方面取得进展。 尽管有这些前景和潜在收益,将 PCLC 设备从 实验台 转化到床边方面的成功仍然有限。将 PCLC 设备提升到人体临床试验所需水平的关键挑战是 风险管理,以确保设备可靠性和安全性。
美国食品药品监督管理局(FDA)将 PCLC 设备可能引入的 新危害分为三类。除了临床因素(例如传感器有效性和 可靠性、患者间和患者内生理变异性)以及 可用性/人为因素(例如态势感知丧失、错误和操作失误)之外, 还存在工程挑战,包括鲁棒性、可用性和集成问题。
互联且可动态组合的医疗系统的安全考虑事项至关重要, 不仅因为诸如 [HIPAA] 这样的法律有强制要求, 也因为安全攻击可能对患者造成严重的安全后果。 系统需要支持自动验证系统组件是否按临床语境中的 预期用途使用,这些组件是否真实并被授权在该环境中使用, 是否已获得医院生物医学工程人员批准,以及是否满足 监管安全性和有效性需求。
出于安全和安全性原因,符合 ICE F2761-09(2013) 的医疗设备之间绝不直接交互。 所有交互均通过应用进行协调和控制。
尽管 TLS 等传输级安全对外部攻击者提供了合理保护, 但它们不能为同一受保护链路内发生的数据流提供 细粒度访问控制机制。传输级安全也不够灵活, 无法在安全性和性能之间取得平衡。广泛使用的 传输级安全解决方案的另一个问题是缺少多播支持。
MDIRA provides requirements and implementation guidance for MDIRA-compliant systems focused on trauma and critical care in austere environments and traditional clinical environments. Johns Hopkins University Applied Physics Laboratory (JHU-APL) lead a research project in collaboration with US military to develop a framework of autonomous / closed loop prototypes for military health care which are dual use for the civilian healthcare system.
预期数据包括数字显微镜产生的 2D 和 3D 流及其录制内容。 这些流可能包含描述数据瞬时放大倍率和时间尺度的元数据。 预期数据还包括服务产生的输出流。例如,这些流可以包含 注解数据。
关于视频流注解,可以使用带有唯一标识边界框的 次级视频轨,或更复杂的轮廓线,在其上定义空间区域以便 附加语义数据,例如元数据或注解,并使用其他次级轨。 类似方法也可用于基于点云和基于网格的动画。
混合现实协作空间使用户能够可视化数据并与之交互, 并能够从多个地点共同完成共享任务和项目。
数字显微镜可以通过 WoT 架构和标准从混合现实协作空间 访问和使用。数字显微镜因此可用于整个生物医学、 科学和教育领域。来自数字显微镜的数据可以由服务处理, 以产生对用户有用的输出。用户可以选择并配置一个或多个 此类服务,并将流式数据或录制内容通过它们路由, 以便在混合现实协作空间中使用结果数据。用户可以创建 此类服务的图或网络。服务也可以回传到数字显微镜, 以控制其机制和设置。同时处理数字显微镜数据并回传控制 此类设备的服务,可用于为用户提供自动对焦、放大和跟踪。
可通过使用计算机视觉相关服务提供的输出数据, 为数字显微镜内容动态生成多模态用户界面。 此类动态多模态用户界面可以为用户提供通过指向和 使用口语自然语言来精确指明希望聚焦、放大或跟踪 哪些内容的手段。例如,数字显微镜可以正在放大并流式传输活体动物细胞的 2D 或 3D 图像。该数据可以由提供计算机视觉相关注解的服务 处理,为细胞的各个部分打标签:细胞核、高尔基体、 核糖体、内质网、线粒体等等。生成的带有算法注解的 可视内容随后可由用户交互。用户可以通过指向和使用 口语自然语言,精确指明他们希望数字显微镜聚焦、 放大或跟踪活体动物细胞的哪些部分。
当前 WoT 标准或构建块尚未处理的需求包括 3D 数字显微镜数据及其录制内容的流式传输协议和格式。 虽然数字显微镜可以使用各种现有协议和格式流式传输视频, 但其他形式的 3D 数据和动画(例如点云和网格)的 流式传输可以通过建议来促进。
用户可以选择并配置一个或多个服务,并将来自数字显微镜的 数据流通过它们路由,以便在混合现实协作空间中使用 结果数据。此外,服务可以设计为回传并控制数字显微镜的 机制和设置。当前 WoT 标准或构建块尚未处理的需求包括 一种互连服务的手段。也许服务可以利用 WoT 架构, 并被描述为 WoT things,或虚拟设备,提供包括在它们之间 建立数据连接的功能。
智慧城市:管理道路、公共交通和通勤、 自动驾驶和人工驾驶车辆、运输跟踪和控制系统、 路线信息系统、通勤和公共交通、车辆、 按需交通、自动驾驶车队、车辆信息和控制系统、 基础设施共享和支付系统、智能停车、智能车辆 服务、应急监测等。
运输公司:管理航运、航空货运、铁路 货运和最后一公里配送运输系统, 包括自动化系统。
通勤者:出行即服务、预订系统、路线 规划、拼车、自动驾驶、自助式 基础设施等。
提供用于描述交通运输相关服务和解决方案的 通用词汇,这些词汇可以跨子类别复用, 以便不同利益相关方拥有的各种系统之间 更容易互操作。
Thing models 可以在许多子领域中定义, 以帮助多个系统之间的集成或互通。
通过增强垂直系统之间的互操作性,可以在 全球层面优化货物运输。
家庭智能设备根据电视节目表现行为。
电视中的 Hybridcast 应用会为智能家居设备 发出关于电视节目的信息。(Hybridcast 是一种 日本综合广播-宽带系统。Hybridcast 应用是 在 Hybridcast TV 上运行的 HTML5 应用。)
Hybridcast Contact 应用接收这些信息并控制 智能家居设备。
作为设备消费者,我希望能够处理来自任何符合 某类设备的设备的数据。
我希望得到保证:我能够正确地与符合该设备类别的 Thing 的所有 affordances 交互。同一描述的不同实现之间 不应存在行为歧义。
我希望将其开箱即用地集成到我现有场景中, 即几乎不需要配置任务。
Web of Things 最强大的特性之一是 Thing Descriptions (TDs) 能够提供和 抽象接口的能力。当设备能力变化、设备供应商 被更换,或新的计算能力可用时,这种抽象可以保持不变。
“Virtual Thing”指符合某个 TD 的设备的软件模拟。 该 TD 描述由软件根据输入生成的 affordances, 这些输入可能与同一 TD 所定义的物理 thing 相似, 也可能并不相似。
这些输入最常见(但并非总是)指数据流, 当用智能软件(AI)检查这些数据流时,该软件将能够 模仿实际物理设备通常会提供的 properties、actions 和 events。
在一个简单情况下,软件可以解释来自新门传感器产品 (可能来自新制造商)的数据,并模仿旧设备支持的 actions、properties 和 events。这种能力允许消费软件保持不变, 并与生态系统中引入新设备造成的变动隔离。 消费软件将继续使用原始 Thing Description 作为 接口定义。
在更复杂的情况下,可以在软件中处理数据流, 以模仿物理设备。此类“virtual things”允许感测硬件 得到升级(在这种情况下升级为视频摄像头设备), 而无需强制完全重写为消费原始 Thing Description 而构建的软件。也可以使用数据流来模仿多个 “virtual things”,并在旧 Thing Descriptions 旁边 支持新的 Thing Descriptions。
能够将现有 Thing Descriptions 用作 “virtual things”的抽象,将使拥有设备资产的人 在维护其资产中的软件和硬件时节省大量时间和精力。
预期结果:
零售商希望在新能力可用时避免重写软件的费用, 并希望即使在引入新的、更强大的 TD 时, 仍能维护现有功能。
视频摄像头产生的数据流可以经过处理, 以模仿用现有 TD 定义的各种“virtual things”。 其中一个 TD 是“door sensor”。视频数据流可被 处理以识别门何时打开或关闭,并且处理软件可以在门 打开或关闭时发出“doorOpen”布尔事件, 也可以在门打开时间过长时发出 “doorOpenPastLimit”事件。任何设计为理解原始 门传感器 TD 的消费软件都将继续与这种更高级的 摄像头硬件配合工作,从而消除零售管理的后勤挑战并 降低成本。
数字孪生是机器、车辆、机器人、 传感器等物理资产的虚拟表示。使用数字孪生可以让企业 分析其物理资产,以实时排除故障、预测未来问题、 最小化停机时间,并执行仿真以创造新的业务机会。
数字孪生也可称为 twin 或 shadow。 数字孪生技术可称为设备虚拟化。
数字孪生可位于边缘或云端。
各种设备,例如传感器、机器、车辆、 生产线、工业机器人。
位于边缘或云端的数字孪生平台。
虚拟孪生是物理设备或资产的表示。 虚拟孪生使用一个模型,该模型包含已观察和期望的 属性值,并且还使用设备行为的语义模型。
间歇性连接:应用可能无法连接到物理资产。 在这种场景中,应用必须能够检索最后已知状态, 并控制其他资产的运行状态。
协议抽象:通常,设备使用各种协议和方法连接到 IoT 网络。从用户角度看,这种复杂性不应影响 其他业务应用,例如企业资源规划(ERP)应用。
业务规则:用户可以在语义模型中指定 某个 property 的正常运行范围。 可以声明式地定义业务规则,并可在边缘或 设备上自动调用 actions。
示例:在一组互联车辆中,用户监测一组运行参数, 例如燃油水平、位置、速度等。 基于语义的虚拟孪生模型使用户能够判断 运行参数是否处于正常范围。当条件超出范围时, 用户可以采取适当 actions。
在预测孪生中,数字孪生实现使用机器学习技术 构建用于预测的分析或统计模型。它无需涉及机器的 原始设计者。这不同于基于物理的模型,后者是静态的、 复杂的、不能适应不断变化的环境,并且只能由机器的 原始设计者创建。
数据分析师可以很容易地基于对机器的外部观察创建模型, 并可以根据用户需求开发多个模型。该模型考虑整个 业务场景,并生成用于分析和预测的上下文数据。
当模型检测到机器的未来问题或未来状态时, 用户可以预防或为其做准备。用户可以使用预测孪生 模型从上下文机器数据中确定趋势和模式。 该模型有助于解决业务问题。
在孪生投影中,预测和洞察与后端业务 应用集成,使 IoT 成为业务流程的组成部分。 当投影与业务流程集成时,它们可以触发补救性 业务工作流。
预测数据提供对机器运行的洞察。 将这些洞察投影到后端应用基础设施中,使业务应用能够 与 IoT 系统交互并转变为智能系统。
本用例涉及多个用户场景。
智能家居环境中的一个示例是,基于传感器数据, 例如阳光、人员存在、日历和时钟等,自动控制 家庭中的灯、空调、供暖和窗帘。
在工业环境中,各个执行器和生产设备使用不同协议。 示例包括 MQTT [MQTT]、OPC UA [OPC UA]、Modbus [Modbus]、 Fieldbus 等。从这些设备收集数据,例如为了支持 数字孪生或大数据用例,需要一个“Agent”在这些协议之间桥接。 为了提供互操作性并降低该 agent 的实现复杂度, 所有互操作设备都需要支持一组共同的(最小和最大) 需求。
就设备互操作性而言,智慧城市环境与工业场景类似。 但设备有所不同,包括智能交通灯、交通监测、 人流计数器、摄像头。
当今许多支持 IoT 的家庭设备可以提供类似功能 (例如音频/视频播放),仅在用户界面的某些方面有所不同。 本用例将允许用户在房间之间移动时,持续与特定应用交互, 并将用户界面自动切换到用户当前位置可用的一组设备。
另一方面,某些设备可以具有特定能力和用户界面, 可用于向更大上下文添加信息,而该上下文可被其他应用和 设备复用。这推动了将一个应用分布到不同设备上的需求, 以根据使用上下文实现更适合用户且更有意义的交互。 这两个方面都为探索应用使用分布式多模态界面的用例 提供了理由。
智能家居中可控制设备数量的增加,造成了以一致且有用的方式 控制所有可用服务的问题。通过传感器和直接用户输入收集的信息 构建共享上下文,将改善对用户意图的识别,从而简化交互。
此外,用户可以根据设备类型、信任等级以及特定任务所需的 交互类型,选择多种输入机制。
智能家居功能(窗帘、灯光、空调等)通过一个 多模态界面控制,该界面由房屋本身内置的模态 (例如语音和手势识别)以及用户个人设备上可用的模态 (例如智能手机触摸屏)组合而成。 系统可以自动适应特定用户的偏好,或在多人同时存在时 进入更复杂的交互。
房屋周围各种设备中内置的传感器可以充当输入模态, 向家庭馈送信息并影响其行为。例如,健身房中的灯光和 温度可以随着健身设备记录的锻炼强度增加而动态调整。 同一数据也可以提高或降低用户移动设备或家庭媒体系统播放的 音乐曲目的音量和节奏。
OAuth 2.0 是一种授权协议,因其在多个 Web 服务中的使用而广为人知。 它使第三方应用能够代表资源所有者或代表自身,获得对 HTTP 服务的 受限访问。该协议定义了以下参与者:
scope
授权 client 的中介。
这些参与者可以映射到 WoT 实体:
TO DO:检查 OAuth 2.0 规范,以准确确定 Resource Owner 是如何定义的。它是资源的实际所有者 (例如运行 Web 服务器),还是只是具有访问该资源权利的人?
OAuth 2.0 协议指定了一个授权层, 将 client 与 resource owner 分离。该协议的基本步骤 概括在下图中:
+--------+ +---------------+
| |--(A)- Authorization Request ->| Resource |
| | | Owner |
| |<-(B)-- Authorization Grant ---| |
| | +---------------+
| |
| | +---------------+
| |--(C)-- Authorization Grant -->| Authorization |
| Client | | Server |
| |<-(D)----- Access Token -------| |
| | +---------------+
| |
| | +---------------+
| |--(E)----- Access Token ------>| Resource |
| | | Server |
| |<-(F)--- Protected Resource ---| |
+--------+ +---------------+
步骤 A 和 B 定义了所谓的 authorization grant type 或 flow。 这里需要认识到的是,并非所有这些交互都打算通过网络协议发生。 在某些情况下,可能意图通过用户界面与人进行交互。 OAuth2.0 定义了 4 种基本流程以及一种扩展机制。 其中最常见的是:
code
implicit
password(resource owner 的)
client(client 的 credentials)
此外,IoT 感兴趣的一个特定扩展是 device flow。
关于 OAuth 2.0 协议的更多信息可见
IETF
RFC6749。除流程外,OAuth 2.0 还支持 scopes。
Scopes 是可附加到 tokens 的标识符。
它们可用于将授权限制到 API 中的特定角色或 actions。
每个 token 携带一组 scopes,并且当尝试交互时可以检查这些 scopes;
如果 token 不包含交互所需的 scope,则可以拒绝访问。
本文档描述了每个 OAuth 2.0 授权流程的相关用例。
对于每个 OAuth 2.0 flow,都有一个对应的用例变体。 我们还纳入实验性的“device”flow 供考虑。
code
当终端用户希望直接与被消费的 thing 交互,或将其授权 授予远程设备时,该协议有一个自然应用。事实上,来自 RFC6749
这意味着 code flow 只能在 resource owner 至少一次 直接与 WoT consumer 交互时使用。典型场景包括:
下图展示了适配到 WoT 习惯用语和实体后的协议步骤。 在此场景中,WoT Consumer 已读取某个 Remote Device 的 Thing Description,并希望访问其受 OAuth 2.0 code flow 保护的一个 WoT Affordance。
+-----------+
+----------+ | |
| Resource | | Remote |
| Owner | | Device +<-------+
| | | | |
+----+-----+ +-----------+ |
^ |
| |
(B) |
+------------+ Client Identifier +---------------+ |
| ------(A)-- & Redirection URI ---->+ | |
| User- | | Authorization | |
| Agent ------(B)-- User authenticates --->+ Server | |
| | | | |
| ------(C)-- Authorization Code ---<+ | |
+---+----+---+ +---+------+----+ |
| | ^ v |
(A) (C) | | |
| | | | |
^ v | | |
+---+----+---+ | | |
| |>-+(D)-- Authorization Code ---------' | |
| WoT | & Redirection URI | |
| Consumer | | |
| |<-+(E)----- Access Token -------------------' |
+-----+------+ (w/ Optional Refresh Token) |
v |
| |
+-----------(F)----- Access WoT --------------------------------+
Affordance
注意,步骤 (A)、(B) 和 (C) 在通过 User-Agent 时 被拆分为两部分。
device
device flow(IETF RFC 8628)
是 code flow 面向无浏览器和输入受限设备的变体。
与其父流程类似,它要求 resource owner 与 WoT consumer
之间存在密切交互。因此,此流程的用例与 code authorization
grant 相同,但限制在所有没有丰富手段与 resource owner
交互的设备上。不过,不同于 code,
RFC 8628 明确说明该协议的参与者之一是与
browser 交互的 end-user(即便
section-6.2
简要描述了使用 companion app 和 BLE 进行认证),如下
(略作改编)图所示:
+----------+
| |
| Remote |
| Device |
| |
+----^-----+
|
| (G) Access WoT Affordance
|
+----+-----+ +----------------+
| +>---(A)-- Client Identifier ---v+ |
| | | |
| +<---(B)-- Device Code, ---<+ |
| | User Code, | |
| WoT | & Verification URI | |
| Consumer | | |
| | [polling] | |
| +>---(E)-- Device Code --->+ |
| | & Client Identifier | |
| | | Authorization |
| +<---(F)-- Access Token ---<+ Server |
+-----+----+ (& Optional Refresh Token) | |
v | |
: | |
(C) User Code & Verification URI | |
: | |
^ | |
+-----+----+ | |
| End User | | |
| at +<---(D)-- End user reviews --->+ |
| Browser | authorization request | |
+----------+ +----------------+
值得注意:
client credential
Client Credentials grant type 由 clients 用于在 end-user 上下文之外获取 access token。来自 RFC6749:
因此,client credential grant 可用于:
Client Credentials flow 如下图所示。注意 Resource Owner 并不存在。
+----------+
| |
| Remote |
| Device |
| |
+----^-----+
|
| (C) Access WoT Affordance
^
+----+-----+ +---------------+
| | | |
| +>--(A)- Client Authentication --->+ Authorization |
| WoT | | Server |
| Consumer +<--(B)---- Access Token ---------<+ |
| | | |
| | +---------------+
+----------+
注:client credentials 通常使用外部服务分发,
该服务由人类用于注册特定应用。例如,
npm cli 有一个 companion dashboard,
开发者可在其中请求生成一个 token,然后将其传递给 cli。
该 token 用于验证 npm packages 在注册表中的
发布过程。其他示例包括 Docker cli 和 OpenId Connect
Client Credentials。
implicit
已弃用 来自 OAuth 2.0 Security Best Current Practice:
上述 RFC 建议改用带 Proof Key for Code Exchange (PKCE) 的
code flow。
implicit flow 最初设计用于通常在浏览器内实现的 public clients
(即 javascript clients)。由于 code 是基于重定向的流程,
且它要求与 resource owner 的 user-agent 直接交互。
不过,它获取 token 所需步骤更少,因为 token 会直接在
authentication request 中返回(见下图)。
考虑到 WoT 上下文,该流程与 code grant
没有特别大的差异,并可用于相同场景。
注:即使 implicit flow 已弃用,
现有服务仍可能在使用它。
+----------+
| Resource |
| Owner |
| |
+----+-----+
^
|
(B)
+----------+ Client Identifier +---------------+
| ------(A)-- & Redirection URI --->+ |
| User- | | Authorization |
| Agent ------(B)-- User authenticates -->+ Server |
| | | |
| +<---(C)--- Redirection URI ----<+ |
| | with Access Token +---------------+
| | in Fragment
| | +---------------+
| +----(D)--- Redirection URI ---->+ Web-Hosted |
| | without Fragment | Client |
| | | Resource |
| (F) +<---(E)------- Script ---------<+ |
| | +---------------+
+-+----+---+
| |
(A) (G) Access Token
| |
^ v
+-+----+---+ +----------+
| | | Remote |
| WoT +>---------(H)--Access WoT--------->+ Device |
| Consumer | Affordance | |
| | +----------+
+----------+
resource owner password
已弃用 来自 OAuth 2.0 Security Best Current Practice:
为完整起见,下面报告该 diagram flow。
+----------+
| Resource |
| Owner |
| |
+----+-----+
v
| Resource Owner
(A) Password Credentials
|
v
+-----+----+ +---------------+
| +>--(B)---- Resource Owner ------->+ |
| | Password Credentials | Authorization |
| WoT | | Server |
| Consumer +<--(C)---- Access Token ---------<+ |
| | (w/ Optional Refresh Token) | |
+-----+----+ +---------------+
|
| (D) Access WoT Affordance
|
+----v-----+
| Remote |
| Device |
| |
+----------+
device flow 的内容。
Actors(表示物理人员或人员群体 (公司))
Manufacturer 服务提供方 Network Provider (对于 WoT 用例可能是透明的)设备 所有者(用户)Others?Roles:
根据用例,一个 actor 可以有多个 roles,例如安全维护者。Roles 可以被委托。以下类别将共享共同属性的用例分组。 在 User Story 的定义中,可以引用用例 类别作为动机,而不是(或除了) 具体用例。
提供公共服务。误用可能导致无法为 其他用户提供支持。
处理个人或机密信息。误用可能 泄露可识别个人身份的信息(PII)或 敏感业务信息。
误用有可能造成人身伤害。
误用有可能造成财务损失,或损害 业务运营或声誉。
简化 TD 构建流程,有助于减轻 TD 编写者和生成器的任务。
非常感谢 W3C 员工以及 W3C Web of Things Interest Group (WoT IG) 和 Working Group (WoT WG) 的所有其他活跃 参与者,感谢他们的支持、技术投入和 建议,这些促成了本文档的改进。 Cristiano Aguzzi、Luca Barbato、Ben Francis、Ege Korkan、Daniel Peintner、Jan Romann 和 Josh Thomas 也 为本文档的最新重组作出了贡献, 包括提交 User Stories 和测试 User Story 流程。
特别感谢所有用例描述的作者(按 字母顺序)对本文档作出的贡献:
特别感谢 W3C 的 Dr. Kazuyuki Ashimura, 感谢他对 WoT Use Cases Task Force 工作的持续帮助和支持。
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in: