2009-12-31 50 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使用。這其實很不錯。