【问题标题】:How to architecture, design a RESTful device controller?如何架构、设计一个 RESTful 设备控制器?
【发布时间】:2010-03-04 10:23:40
【问题描述】:

我们正计划为银行机器开发设备控制器。该控制器将直接嵌入在机器上,其想法是为此使用带有 Linux 的现成 ARM 板。

我们希望将 API 作为 RESTful Web 服务提供。 可能我们必须将控制器上的软件至少分为 3 层:Web 服务接口、业务逻辑、设备控制逻辑(这甚至可能在不同的硬件上运行)。

出于性能原因,业务逻辑和设备控制逻辑可能会在 C++ 中实现。

不,我们有一些疑问的是: 使用哪些技术/编程语言来实现 RESTful Web 服务?

网络服务器 (lighttpd)、FastCgi、C++ 可能是性能方面的最佳解决方案,而且因为 ARM 板上的资源有限。但缺点可能是实现并不像 Python、Ruby、Java 等一些“现代”语言那么容易。 我们公司的 C++ 技能很多,Java 一点点,Python、Ruby 一点技能都没有。

有人对这种架构有任何经验吗?
Python 和 Ruby 如何在这么小的系统上执行?
有在嵌入式系统上使用 RESTful API 的经验吗? (网络上没有太多关于此的内容)

感谢您的意见

【问题讨论】:

  • 非常不错,一台可以通过网络访问的ATM机。准备好堵住所有的安全漏洞,包括第三方库和操作系统提供的漏洞。这对 Crackers 来说似乎是一个很好的挑战。
  • @Thomas Matthews:我们不是在谈论 ATM,这些机器不会在互联网上,而是在银行专用网络上

标签: c++ rest embedded device


【解决方案1】:

在过去,第一个 cgi 是二进制文件(主要是在 C 中),所以用 C/C++ 编写一些 CGI 不是问题。

在创建一个 RESTful API 后,只会影响脚本的行为方式,例如读取 url 和 VERB 会触发任何代码。

所以我建议你挖掘一些关于 C/C++ CGI 编程的资源,可能还有一些库,以方便访问 POST/GET 变量和解码。

【讨论】:

    【解决方案2】:

    我同意 RageZ;用 C 编写服务器端并不难。Eugene Eric Kim 有一个“旧”CGI 库:http://www.eekim.com/software/cgihtml/index.html

    考虑到它的年龄,它可能对其他东西没有大量依赖。

    使用 CGI,将脚本放在某个路径上相当容易,例如 /my/service,然后在 PATH_INFO 环境变量上调度,该变量将为您提供附加到上下文路径的任何内容。因此

    /my/service/a/b 将产生 /a/b

    如果您需要高性能并且负担得起占用空间,您还可以使用 Apache 并编写一个模块(这也不是特别难)。

    当然,FastCGI 也会表现得非常好。

    一月

    【讨论】:

      猜你喜欢
      • 2011-02-11
      • 1970-01-01
      • 2013-05-14
      • 1970-01-01
      • 2023-03-17
      • 2023-03-24
      • 2015-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多