65、迈向用户驱动的网络物理系统:原理、架构与策略

迈向用户驱动的网络物理系统:原理、架构与策略

1. 网络物理系统的计算视角

从计算的角度来看,网络物理系统(CPS)可以被视为在物理世界中具有输入和输出的计算系统。将 CPS 元素视为计算元素,使得软件工程概念(如面向对象开发和高级流程架构)不仅可以应用于软件的逻辑机器,还可以应用于物理机器。

2. 用户干预网络物理系统的解决方案
2.1 终端用户开发(EUD)

终端用户最清楚自己需要什么样的应用和服务。EUD 包括允许软件系统用户作为非专业软件开发人员创建、修改或扩展软件制品的方法、技术和工具。终端用户编程(EUP)是任何计算机用户都可以执行的编程,与专业编程不同,EUP 的目标主要是为个人而非公众使用生成程序。

2.2 终端用户开发混搭应用

EUP 和混搭应用被认为是在物联网(IoT)环境中管理数据、呈现和功能的推动因素。物联网将产生大量分布式流数据,这些数据可以使用称为链接流数据的 RDF 数据模型进行建模,并用作物联网混搭应用的数据源。在企业混搭应用的愿景中,混搭方法被移植到公司内部网,使企业成员能够以创新、创造价值的方式组合公司的内部服务。

在企业环境中,主要有两种情况:
- 专家开发人员使用混搭工具为终端用户快速交付应用,终端用户不直接参与混搭应用的构建,但受益于新应用更短的周转时间。
- 专家开发人员以非开发人员用户更容易使用和组合的格式创建服务,并提供一个工具让任何人都可以创建自己的混搭应用。

2.3 用户驱动 EUD 的工具

有支持为信息源创建反应式应用的解决方案,如事件 - 条件 - 动作(ECA)规则匹配服务,它可以实现简单条件语句的链接。普适环境下的 EUP 工具专注于简化输入语言或基于隐喻的图形用户界面的使用,旨在为用户简化应用的使用。基于事件和规则的方法,如普适交互式编程(PiP),也被开发用于使终端用户能够在普适环境中自定义个人空间。

3. 网络物理系统的架构
3.1 面向服务的架构

面向服务的架构框架是 CPS 的三层架构,包括物理层、网络层和服务层。WebMed 是一种面向服务的中间件架构,支持物理设备、计算元素和其他软件服务的利用,它特别关注将底层物理设备的功能直接带到应用开发层,并使用服务导向原则将其与非物理设备服务链接起来。动态虚拟环境架构也被开发用于支持面向服务的控制方法,使用户能够通过网络上的虚拟(家庭)环境直观地控制物理环境中的设备。

3.2 基于事件的架构

基于事件 - 动作和分层的 CPS 架构将事件分离到不同的层,并支持复合事件条件的表示。

3.3 REST 风格的架构

CPS 的 REST 风格架构包含一个基于 REST 架构风格的智能网关,它提供了一种统一、高效和标准化的方式与物理设备进行交互。应用程序可以使用任何支持 HTTP 的编程语言轻松地在异构设备上构建。然而,REST 风格的架构基于拉式交互模型,不太适合用于与智能设备进行监控通信的建模。

3.4 跨智能空间应用的架构

为跨智能空间应用的终端用户编程开发的架构,使终端用户能够基于不同智能空间的功能和信息开发应用。在该架构中,智能空间被理解为语义信息代理(SIB),它是一个轻量级(RDF)数据库,负责信息的存储、共享和管理,并为用户和存储的语义信息提供添加、删除、查询和订阅功能。跨智能空间应用架构基于多个黑板(即智能空间),使连接到智能空间的实体之间能够进行信息交换。

4. 用户干预对网络物理系统架构的要求

用户干预 CPS 的实现对架构提出了特殊要求:
- 底层架构和实现问题应向用户隐藏,用户只需专注于干预,而无需考虑底层 CPS 的架构或实现问题。
- 用户与系统的干预应以可控的方式进行,干预应类似于与其他系统的交互,并且在运行时以可控的方式进行,不会对 CPS、其用户或其监控或控制的物理现象造成损害。新的用户界面应一致创建,以确保一致性和清晰度。
- 必须确保只有授权用户才能在 CPS 及其支持的服务和应用中进行用户干预,并且用户执行的干预是经过授权的。

5. 示例:用户驱动的网络物理生产系统

用户驱动的 CPS 可以由 CPS 元素和支持服务组成。CPS 元素可以提供控制、监控和配置功能,支持服务可以是支持 CPS 使用的应用或服务,例如提供信息获取、处理、利用和可视化的功能。

5.1 CPS 元素

以一个网络物理生产系统为例,它包含三个 CPS 元素:
- 3D 打印机:可以配置为使用不同材料生产 3D 物品。
- 喷漆机:为生产的物品喷涂所需的颜色。
- 存储和检索机:能够包装生产的物品、将其存储到仓库并从仓库中检索物品。

5.2 支持服务

该系统为终端用户提供了应用和服务:
- 变更产品应用:终端用户可以使用该应用配置系统以生产具有指定质量水平的所需物品。
- 监控服务:这是一个 Web 服务,从不同的 CPS 元素获取信息,并提供有关 3D 打印可用材料数量和生产物品存储状态的监控信息。

5.3 CPS 段

用户干预基于一个 CPS 段,该段定义了用户干预的目标。在这个例子中,网络物理生产系统的三个元素都包含在 CPS 段中。

5.4 干预驱动程序

干预驱动程序可以提供以下用于用户干预的模块:
| 模块名称 | 功能描述 |
| ---- | ---- |
| 快照 API | 用于获取用户干预所需的信息,如用户界面描述、配置参数和现成的脚本。 |
| 控制 API | 允许通过可用的用户界面直接控制 CPS 元素。 |
| 配置 API | 实现 CPS 元素的远程配置。 |
| 执行 API | 实现 CPS 元素中命令的远程执行。 |
| EUD API | 使 CPS 元素及其支持服务的功能和信息可用于终端用户开发。 |

5.5 用户干预工具

用户干预工具能够处理 CPS 段,并执行集中式用户干预,影响 CPS 段的行为以及利用 CPS 段元素的功能和信息。

5.6 智能空间环境

用户干预工具和干预驱动程序连接到智能空间,可以向智能空间发布信息、查询信息和订阅信息。使用干预驱动程序的 API 可以基于智能空间的发布 - 订阅机制,使用户干预工具能够向驱动程序发送请求并接收响应。

mermaid 流程图如下:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;

    A(选择目标元素):::process --> B(准备用户干预):::process
    B --> C(用户干预):::process
    C --> D(部署用户干预):::process

用户干预过程包括四个步骤:
1. 选择目标元素 :产生一个 CPS 段,定义用户干预的目标。
2. 准备用户干预 :可能需要停用 CPS 段的元素,或者只需获取 CPS 段元素的快照,快照中包含的信息取决于用户干预的类型。
3. 用户干预 :终端用户的行动旨在影响 CPS 段元素的行为,产生用户干预描述。
4. 部署用户干预 :将用户干预描述作为输入,可能验证干预操作的正确性,停用目标元素,部署接受的更改,最后激活目标元素。

迈向用户驱动的网络物理系统:原理、架构与策略

6. 用户驱动的网络物理系统策略
6.1 网络物理系统行为的用户干预策略

为了影响网络物理系统(CPS)内信息和功能的提供,有以下不同策略:

  • 集中式用户干预 :意味着对 CPS 或其子系统中的元素进行协调利用。例如用户发起的 CPS 重置,将 CPS 元素设置为初始状态。但在实践中,CPS 重置难以实现,因为必须以可控方式进行,且不能丢失重要信息。同时,网络断开和 CPS 元素故障可能会阻止远程重置。集中式用户干预需要 CPS 元素搜索和选择机制来生成 CPS 段,其生成可基于以下因素:
    • 终端用户的兴趣
    • CPS 元素的状态,即搜索需要用户干预的元素
    • 用户配置文件和用户偏好
    • 用户任务(例如搜索终端用户任务中所需的元素)
    • 使用上下文(例如搜索在确定的使用上下文中所需的元素)

此外,还需要集中机制来影响 CPS 段元素的行为,并利用其功能和信息。

  • 元素中心的用户干预 :指终端用户一次只关注影响一个 CPS 元素的行为。例如,终端用户使用配置工具修改所选元素的配置参数,或者使用基于规则的 CPS 元素结合规则编辑器,定义所选元素对周围环境事件的反应。

在 CPS 段中进行用户干预有以下三种方式:
| 干预方式 | 描述 |
| ---- | ---- |
| 直接与 CPS 段交互 | 终端用户使用可用的监控方法和控件,立即看到 CPS 段行为的变化。CPS 段的快照可以包含用于与段内元素直接交互的用户界面描述。例如,用户界面描述可以定义一个界面,为终端用户提供 CPS 段元素状态变化的信息,并允许用户激活或停用 CPS 及其部分,或将 CPS 重置为初始或安全状态。 |
| 参数化配置 CPS 段 | 通常,用户对 CPS 的干预只是微调,基于一组配置参数和更新机制,将配置参数更新到 CPS 段的元素中。元素可以提供预定义的配置参数,帮助终端用户将元素设置为默认状态或所需模式,这些参数可以在 CPS 段的快照中提供。 |
| 执行脚本 | 使用脚本来定义一组操作,从 CPS 元素获取信息,根据获取的信息生成配置参数,并最终将系统设置为所需状态,以更好地满足终端用户的需求。CPS 段的快照可以包含段内元素中可用的现成脚本。例如,在前面提到的网络物理生产系统示例中,有一个脚本可以从 3D 打印机获取表面质量信息,然后根据该信息设置喷漆机的喷漆参数。脚本的执行可以基于集中式或分布式执行,即远程在 CPS 段的元素(CPS 元素和支持服务模块)中执行。 |

6.2 支持服务行为的用户干预策略

为了使终端用户能够影响基于 CPS 的应用和服务中信息和功能的提供,有以下解决方案:

  • 支持服务的参数化配置 :当只需为终端用户的需求配置支持服务的小细节时,这种微调可以基于重新配置服务的参数,将其设置为所需状态。

  • 支持服务的终端用户开发 :在 CPS 领域,非常需要终端用户开发,因为很难编写现成的应用或服务来利用所有可能的元素配置的功能和信息。终端用户如果有动力为日常生活创建应用和服务,需要终端用户编程工具来降低应用和服务开发的复杂性,并抽象底层 CPS 的架构和实现细节。

终端用户开发的步骤如下:
1. 选择 CPS 元素和支持服务,该选择可以自动化,例如使用搜索机制帮助终端用户搜索任务所需的功能或信息,这一步产生一个 CPS 段,为终端用户开发提供起点。
2. 拍摄快照,其中包含 CPS 段元素的干预驱动程序的 EUD API。
3. 终端用户使用适当的 EUD 工具读取快照中的 EUD API,并创建一个新脚本(执行序列),定义在创建的应用或服务中执行的操作,以及在脚本中产生和利用的信息。脚本的创建可以基于现有脚本(如果不是从头开始开发)和命令导向编程方法,该方法包括三个主要步骤:
- 选择执行分支
- 添加命令
- 定义输入

命令导向编程产生的脚本可以在目标系统中执行,它定义了命令序列和命令输出与输入之间的信息链。

  • 支持服务的扩展 :终端用户有一个希望扩展以满足自身需求的应用或服务。例如,终端用户有一个新的 CPS 元素(如智能手表),它提供了用户界面(如显示和控制)功能,可以改善现有服务的用户体验。终端用户通过终端用户开发来扩展服务,以利用新 CPS 元素的功能和信息。

  • 支持服务的缩减 :终端用户有一个支持服务,它提供了重要功能,但也有一些用户不主动使用的功能。为了提高可用性,终端用户使用 EUD 工具隐藏这些不必要的功能。

mermaid 流程图如下:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;

    A(选择 CPS 元素和支持服务):::process --> B(拍摄快照):::process
    B --> C(使用 EUD 工具创建脚本):::process
    C --> D(执行脚本):::process

综上所述,通过了解这些用户干预策略和方法,可以更好地实现用户驱动的网络物理系统,满足终端用户的多样化需求,提高系统的灵活性和可用性。在实际应用中,需要根据具体情况选择合适的策略和方法,确保用户干预的有效性和安全性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值