【问题标题】:How to implement web services on an embedded device?如何在嵌入式设备上实现 Web 服务?
【发布时间】:2023-03-10 04:50:01
【问题描述】:

我们有一个需要与企业软件系统交互的嵌入式设备。

企业系统目前使用许多不同的机制在其组件之间进行通信:ODBC、RPC、基于 TCP/IP 的专有协议,并且正在转向 .Net 实现的 Web 服务。

嵌入式设备运行 *nix 风格,因此我们正在研究最佳交互机制是什么。

通讯的要求是:

  • 必须通过 TCP/IP 运行。
  • 还必须通过 RS-232 或 USB 运行。
  • 必须是安全的(例如 HTTPS 或 SSL)。
  • 必须能够传输约 32MB 的数据。

    Our current best option is gSOAP.

    有没有人在 SO-land 有任何其他建议?

    编辑: Steven 的回答给了我最新的指导。谢谢大家!

  • 【问题讨论】:

      标签: linux security soap embedded gsoap


      【解决方案1】:

      您可以定义使用 HTTPS(根据定义使用 TCP/IP)并能够传输任意数量的数据的 RESTful 服务。

      REST 优于 SOAP 的优势在于 REST 更简单。它可以使用 JSON 而不是更简单的 XML。

      它的开销比 SOAP 协议少。

      【讨论】:

        【解决方案2】:

        您不能只使用基于 TCP 的 SSL 吗?

        如果您有某种 *nix(我猜?它是 QNX 或嵌入式 linux,对吗?)它应该可以通过以太网、USB 和 RS232 开箱即用地工作。保持简单。

        32mb 的内存足够完成这项任务。我会分配 2 到 4 mb 的内存用于网络和加密(代码 + 数据)。

        【讨论】:

        • 尼尔斯,谢谢。是的,通过 TCP 的 SSL 可以工作。我们只是想要更多的结构,而不仅仅是在加密线上进行“bit-banging”。
        【解决方案3】:

        目前还不清楚为什么要将它与 SOAP 之类的远程过程调用协议联系起来。还有其他你没有提到的要求吗?

        不过,一般来说,这类事情使用普通的基于 Web 的服务很容易处理。您可以获得用 C 编写的非常轻量级的 http 处理器; see this Wikipedia article 用于比较其中的一些。然后一个 REST 接口就可以正常工作了。也有将 USB 视为 TCP 连接的网络接口。

        如果您必须能够通过 RS232 运行,您可能想看看其他地方;在这种情况下,像 sftp 这样的东西可能会做得更好。或者编写一个可以在加密连接上运行的简单应用层协议。

        【讨论】:

        • 谢谢,查理! SOAP 的建议是因为这是我们正在适应的企业架构将事物挂在一起的方式。它会让我们的嵌入式设备看起来像另一个盒子。至于网络服务器,我们已经研究过 Boa、mini_httpd 和 thttpd。迷你是当前的选择。
        • 啊!好吧,如果您正在处理一个现有的 SOAP 应用程序,那会改变一切。不过,RS232 部分让我担心——如果您必须拥有 RS232,您将如何通过它提供 HTTP?
        • 关于 HTTP/RS232 的好问题!我们正在等待一个并行项目的结果,该项目需要做类似的事情(RS232 与现有设备通信),一旦我们到达那里,我们也会对其进行分类。
        【解决方案4】:

        如果您打算使用 RS232 连接您的应用程序,我假设您将使用 PPP 将设备连接到互联网。但是,您建议传输的数据量有些令人担忧。大多数 RS232 连接被限制为 115200 波特,忽略 TCP/IP/PPP 帧所需的开销将产生最多 11,000 字节/秒的传输速率。这意味着至少需要大约 2800 秒或 46 分钟才能进行您想要的任何传输。

        【讨论】:

        • 谢谢,约翰!我同意,RS232 不是进行数据传输的最佳方式,但我们需要能够适应旧系统,这是旧系统通信的一种方式。
        猜你喜欢
        • 2014-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-13
        • 2011-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多