嵌入式Linux设备上的C ++应用程序的Web界面

时间:2013-01-02 07:30:06

标签: web-services embedded

我想在Apache托管的网页和在Raspberry PiDD-Wrt等小型Linux设备上运行的自定义C ++应用之间实现通信链接。

Raspberry Pi有一个教程here,它使用网页上的按钮来控制GPIO引脚上的LED。该示例使用MySQL作为网页和脚本之间的通信接口,脚本具有对GPIO的读/写访问权限。虽然MySQL提供了与Apache托管网页和C ++成熟/无处不在的接口的优势,但它可能会更慢并且具有更大的闪存和更大的闪存。 RAM足迹超过必要。

为了找到比MySQL更小/更快的通信链接,我有一个使用Javascript的例子,它将XML-RPC用于C ++应用程序。但是,this post回到2012年2月24日,暗示xmlrpc已经过时,可以被更现代的东西(JSON,REST)取代,但帖子缺乏关于这些方法的详细信息。

考虑的另一个选项是Wt或其他嵌入式库,但它会有一个学习曲线,Web开发人员可能不熟悉它。

我的问题是:在资源受限的设备(如Raspberry Pi或其他嵌入式Linux设备)上为自定义C ++应用实现Web界面的优秀架构是什么?

假设:

  • 首选Apache是​​因为它适合内存并且Web开发人员熟悉它。
  • 界面应该是'现代'
  • 页面是简单的文本,大约10页,90%的数据字段 是只读的,其他10%是可编辑的字段。
  • 网络服务器位于不超过3个用户的专用网络上。用户的数量是 使用安全/登录强制执行。
  • 从SD启动的嵌入式ARM平台
  • CGI(为每个事务启动进程)被假定为较慢 比必要的。 FastCGI可能没问题。

类似的问题发现没有回答我的问题:   - Language Choice for Web interface on embedded device   - Designing Web Interface for Embedded System

2 个答案:

答案 0 :(得分:0)

我使用带有快速,Socket.io,Mongojs模块的Nodejs在我的rPI上做了更多和更多

答案 1 :(得分:0)

天啊。 Apache的?你为什么要在嵌入式设备上想要这样一个矫枉过正的怪物?我建议使用较小的服务器而不是使用cgi使用rest api处理程序。一个非常轻量级的设置是将uhttpd与ubus插件一起使用,然后用C编写系统代码,并通过ubus上的json api公开它的功能。然后,您可以将Web界面与系统代码完全分离,只需提供静态html即可最大限度地减少嵌入式服务器的压力,您可以使用javascript和ajax将其转换为动态应用程序。

没有解释器,没有cgi,只有ajax和ubus后端。