我们有一个需要与企业软件系统交互的嵌入式设备。
企业系统当前使用许多不同的机制在其组件之间进行通信:ODBC、RPC、基于 TCP/IP 的专有协议,并且正在转向 .Net 实现的 Web 服务。
嵌入式设备运行 *nix 风格,所以我们正在研究最好的交互机制是什么。
通讯要求如下:
有没有人在 SO-land 有任何其他建议?
编辑:史蒂文的回答给了我最新的指示。谢谢大家!
我们有一个需要与企业软件系统交互的嵌入式设备。
企业系统当前使用许多不同的机制在其组件之间进行通信:ODBC、RPC、基于 TCP/IP 的专有协议,并且正在转向 .Net 实现的 Web 服务。
嵌入式设备运行 *nix 风格,所以我们正在研究最好的交互机制是什么。
通讯要求如下:
有没有人在 SO-land 有任何其他建议?
编辑:史蒂文的回答给了我最新的指示。谢谢大家!
您可以定义使用 HTTPS(根据定义使用 TCP/IP)的 RESTful 服务,并且能够传输任意数量的数据。
REST 优于 SOAP 的优势在于 REST 更简单。它可以使用 JSON 而不是更简单的 XML。
它的开销比 SOAP 协议少。
你不能只使用 SSL over TCP 吗?
如果您有某种 *nix(我猜?它是 QNX 或嵌入式 linux,对吗?)它应该可以通过以太网、USB 和 RS232 开箱即用地工作。保持简单。
32mb 对于这项任务来说已经足够了。我会分配 2 到 4 mb 的内存用于网络和加密(代码 + 数据)。
目前还不清楚为什么要将它与 SOAP 之类的远程过程调用协议联系起来。还有其他你没有提到的要求吗?
不过,一般来说,使用普通的基于 Web 的服务可以很容易地处理这类事情。您可以获得用 C 编写的非常轻量级的 http 处理器;有关其中一些的比较,请参阅此 Wikipedia 文章。然后一个 REST 接口就可以正常工作了。也有将 USB 视为 TCP 连接的网络接口。
如果您必须能够通过 RS232 运行,您可能想看看其他地方;在这种情况下,像 sftp 这样的东西可能会做得更好。或者编写一个可以在加密连接上运行的简单应用层协议。
如果您打算使用 RS232 连接您的应用程序,我假设您将使用 PPP 将设备连接到互联网。但是,您建议传输的数据量有些令人担忧。大多数 RS232 连接限制为 115200 波特,忽略 TCP/IP/PPP 帧所需的开销将产生最多每秒 11,000 字节的传输速率。这意味着至少需要大约 2800 秒或 46 分钟才能进行您想要的任何传输。