6

OS:リナックス。

組み込みシステムに Web インターフェイスを実装する方法を探しています。現在、シェル (テキスト ベース) があり、デバイスを照会するためのコマンドの小さなセットが実装されています。

私はWeb開発が初めてです。質問は次のとおりです。

  1. どの Web サーバーを使用する必要がありますか? (開発環境で apache を起動し、CGI を使用していくつかのページを取得しようとしましたが、これは組み込みシステムには適切な選択ではないようです)

  2. CGI を使用していると仮定すると、CGI とメイン アプリの間でデータを渡すためにどのような戦略を使用できますか? MainApp にスレッドを作成して、CGI スクリプトからのクエリを処理するつもりでした。このスレッドは MainApp のインターフェイスを呼び出し、データを取得して CGI に渡します。

4

5 に答える 5

9

私たちは組み込みシステムでLighttpdを使用しています。これは小さく、統合が非常に簡単です。AppWebのような埋め込みに特化した機能を備えた専用の Web サーバーもありますが、これも非常に優れた製品だと思います。

メイン アプリケーションと CGI の間の通信には、ソケット、または組み込みプラットフォームで利用可能な場合は System V メッセージ キューを使用できます。SYSV メッセージ キューの利点は、使用と管理が非常に簡単で、キュー内のメッセージがアプリケーションの再起動後も存続することですが、(select() できないなどの) いくつかの癖もあります。

于 2009-12-31T09:54:54.983 に答える
4

Web サーバーとしての別の選択肢はthttpdです。工業製品でうまく使用しています。

CGI とメイン アプリケーション ソケット間の通信は正しい選択です。

于 2010-01-02T01:03:22.357 に答える
0

openwrt で JUCI を使用します。これは、クライアント ブラウザーで実行され、JSON REST API を介して Web サーバーと通信する JavaScript で記述されています。バックエンドは任意の言語で実装できますが、システム バス (ubus) に接続する C で記述された再利用可能なコンポーネントを使用します。これは、関連するサービスが、cli と REST API の両方で使用できる ubus を介して機能を公開することを意味します。それは実際にはかなりいいです。

于 2015-06-24T12:41:15.133 に答える
0

組み込み機器向けの軽量 CGI である LuCI を使用しています。実は無線ルーターのオープンソースプロジェクトであるopenwrt用です。

サーバーは uhttpd で、軽くて強力です。

CGI スクリプトは Lua で、そのインタープリタは 10k 以下で、デリケートですよね? そして、それは C によって開発され、強力な C と通信できます。

これが私の提案です。

于 2015-01-29T05:57:36.893 に答える
0

使用しなければならない Web サーバーはありませんが、組み込みには apache よりも優れた選択肢がいくつかあります。Apache は組み込み用に設計されており、サイズが大きく低速です。

CGIはお勧めしません。実行が遅く、開発が遅いです。私が開発者の 1 人である Appweb について話すことができます。Appweb には 2 つの優れた Web フレームワークがあります。

  • Appweb のサーバー側 Javascript フレームワークである Ejscript
  • MVC C言語のWebファームワークであるESP

ESP は非常に高速で、コントローラーを URL に簡単にバインドできます。Ejscript はより大きく、より広範なクラス ライブラリを備えています。どちらも組み込み用に設計されています。どちらも CGI よりもはるかに優れており、CGI よりも 20 倍以上高速に実行されます。

于 2012-11-29T00:42:51.777 に答える