2009-12-31 87 views
3

操作系统:Linux。设计嵌入式系统的Web界面

我试图找到可能的方法来设计我的嵌入式系统的Web界面。 当前有一个shell(基于文本),并且实现一小组命令来查询设备。

进出口新的Web开发,我的问题是:

  1. 必须使用哪些Web服务器? (我在开发环境中获得了apache并尝试使用cgi获取一些页面,但似乎这不是嵌入式系统的正确选择)

  2. 假设我使用CGI,可以使用什么策略在CGI之间传递数据和主应用程序。 我打算在MainApp中创建一个线程来处理来自CGI脚本的查询。这个线程会调用MainApp中的接口,检索数据并将其传递给CGI。

感谢

回答

8

我们用我们的嵌入式系统Lighttpd,它的小,很容易集成。还有专门的网络服务器,特别适合嵌入,如AppWeb,在我看来这也是一个非常好的产品。

对于主应用程序和CGI之间的通信,您可以使用套接字或System V消息队列(如果嵌入式平台上可用)。 SYSV消息队列的优点是它们非常易于使用和管理,并且队列中的消息在应用程序重新启动后仍然存在,但它们也有一些怪癖(就像你不能选择())。

+0

谢谢:)我会尝试插座 – 2009-12-31 10:56:19

4

作为web服务器的另一种选择是thttpd。我在工业产品中成功使用它。

对于CGI和主应用程序套接字之间的通信是正确的选择。

+0

感谢您的答案。但我已经有了lighttpd工作和使用套接字。 – 2010-01-02 08:35:07

0

没有你必须使用的web服务器,但是比apache有更好的嵌入选择。 Apache是​​为嵌入式设计的,并且更大更慢。

我不推荐CGI。运行缓慢,发展缓慢。我可以为Appweb发言,因为我是其中一位开发人员。 Appweb有两个很好的web框架:

  • Ejscript这是Appweb
  • ESP服务器端JavaScript框架,它是一个MVC C语言的Web farmework

ESP速度非常快,可以方便地控制器与URL的绑定。 Ejscript更大,拥有更广泛的类库。两者都是为嵌入式设计的。两者都比CGI好得多,执行速度比CGI快20倍以上。

+0

你在回答这个问题的边界上,但你似乎有意在本文中忽略你是Appweb项目的开发人员。在发布任何进一步的答案之前,你确实需要阅读[自我促销常见问题](http://www.stackoverflow.com/faq#promotion)。 – 2012-11-29 00:46:11

+0

安德鲁,谢谢你的提示。我正在学习规则,并试图更好地设定我的答案。我会加入关于作为项目开发人员的披露。 – Embedthat 2012-11-29 01:18:04

0

我在LuCI工作,这是一个用于嵌入式设备的轻型CGI。其实它是openwrt这是一个无线路由器的开源项目。

该服务器是uhttpd,轻巧而强大。

CGI脚本是Lua,其解释器不超过10k,非常微妙,对吧?它由C开发,可以与C通信,功能强大。

所以这是我的建议。

0

我们在openwrt中使用JUCI。它是用JavaScript编写的,它在客户端浏览器上运行,并通过json rest api与Web服务器通信。后端可以用任何语言实现,但我们使用C语言编写的可重用组件插入系统总线(ubus)。这意味着相关服务通过ubus公开其功能,这些功能都可以通过cli和rest api使用。这其实很不错。