【问题标题】:What is the type of application that communicates with hardware and devices?与硬件和设备通信的应用程序类型是什么?
【发布时间】:2021-05-27 11:37:12
【问题描述】:

我计划设计一个应用程序,其工作是管理和控制一些设备。可以通过 GUI 在设备上设置一些设置。同时这些设备会触发一些需要处理的事件(因此会有多个服务来处理事件)。与设备的通信主要通过 USB 进行,但有些设备是蓝牙和无线的。所以我将有一个用于硬件和软件服务之间通信的中间件。最后,每台设备都有一个配置设置,需要存储在某个云中,仅用于备份建议。

我想了解如何设计这个系统。关键输入数据是:

  1. 所有服务都在本地机器上运行。
  2. 硬件和服务之间存在通信。
  3. 唯一的网络主题是在云端备份数据。

我的问题是:

  1. 这个系统可以被认为是一个独立的应用程序吗?由于设备和服务之间的通信,我们可以将其称为网络应用程序吗?还是一些蓝牙和无线通信?

  2. 我们可以仅仅因为处理事件(软件或硬件事件)而假设使用事件驱动架构吗?注意:在最短的时间内(实时)处理事件很重要

一般来说,什么样的架构适合这个系统的要求? [多层,事件驱动...]以及有关相关设计模式的任何建议。

谢谢。

【问题讨论】:

    标签: design-patterns architecture communication event-driven


    【解决方案1】:

    这是一个难题。即使是经验丰富的工程师团队也很难做到这一点。它比设计模式复杂得多。但这是一个有趣的设计挑战。我创建了一个架构。我没有时间包括云备份。与其他一切相比,云计算会更容易。

    【讨论】:

    • 非常感谢 ahoffer,提供这个设计对我来说是一个很大的帮助。真的很有帮助。
    • 还有一个问题:Message Broker 使用现有的工具是否合适?有很多工具甚至是开源的,但它们都提到要在分布式系统中使用。我不确定使用实时服务来处理设备是否是正确的决定。
    • 你描述的系统是分布式系统。
    • 查找免费的开源 MQTT 代理。我没有推荐的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    • 1970-01-01
    相关资源
    最近更新 更多