2010-12-07 12 views
1

C言語で書かれたWebサーバーをデバイスに埋め込むプロジェクトを進めています。要件は、Webサービス(SOAP/JSON-RPC)をサポートする必要があり、ARMプロセッサと互換性がある必要があります。特定の製品の提案または最初に見える場所SOAP/JSON-RPCベースのWebサービスをサポートし、ARMプロセッサーと互換性のあるオープンソースのC組み込みWebサーバー

+0

どのようなOSですか?あなたはどのくらいのRAMを使用しなければなりませんか? 4MBのRAM + 1GBのディスクスペース(SDカード)では、私はDebian Linux + Lighttpdをうまく使いました。 – slebetman

+0

@slebetman:ありがとうございました。私たちはLinux 2.6xを使用する予定で、デバイス上のRAMは256 MBと言われています。これはARMベースのプロセッサーを持っています。 –

+0

ああ、あなたは好きなWebサーバーを使うことができます。 SOAP/JSON-RPCの処理は、実際にはサービスを実装するために選択したプログラミング言語とフレームワークの関数です。 CGIアプリケーションで高いスループットが必要な場合は、メモリオーバーヘッドが低い(実際には256MBの)オーバーヘッドが必要な場合はlighttpdを、Apache2またはNginxをお勧めします。 – slebetman

答えて

1

説明:256MB RAMのLinuxベースのプラットフォームでは、基本的に好きなWebサーバーを使用できます。 256MBのRAMは、デバイスを標準の埋め込み領域からサーバ空間に移動させます。

Linuxコミュニティがうまくサポートしているため、ARMサポートについて心配する必要はありません。 Debianが正式にサポートしているアーキテクチャの1つです。私はDebianとlighttpdを実行しているARM上で32MBのRAMしか持たないハードウェアでいくつかのWebサーバーを実行しています。

トップ3最も人気のあるWebサーバ(と、それはあなたが問題を持っている場合は、簡単にグーグルできることを意味しますので、人気が非常に重要である):

  • lighttpdの - RAM使用量に関する非常に軽いそれがシングルスレッドであるため、 CPU使用率も非常に軽いです。欠点は、それがシングルスレッドであるため、ヘビー級のCPU集約型CGIアプリケーションを実行しようとすると応答が遅くなることです。

  • Apache2 - RAM使用量が多い。 Apacheのデフォルトの動作モードは、重い負荷を処理するためにスレッドを可能な限り長く保つことです。これは、睡眠中のプロセスでRAMを使い果たしたときのほとんどの時間を意味します。しかし、重い荷物を処理する必要がある場合、これは良いことです。頑丈なCGIアプリケーションに適しています。

  • Nginx - ブロック上の新しい子供。 lighttpdやApacheのように文書化されていない(現時点では、明らかに文書化は時間が経つにつれて改善する)が、人々は両方の性能を上回っていると言っている。これはApache2のようにマルチスレッドですが、lighttpdのような非ブロック化であるため、両方の世界で最高の性能を発揮します。一般にApache2よりも少ないRAMしか使用せず、少なくともApache2よりも優れていないと実行します。私の唯一の本当の欠点はドキュメンテーションです。

1

リソースが実際に不足している場合は、MongooseまたはlibsoupGLibを使用)のような埋め込みWebサーバーライブラリを検討してください。ただし、SOAPやXML解析などのサービスは一般的にリソースがかなり重いことに注意してください。

+0

ありがとうございます。あなたがMongooseを経験した経験があるかどうか聞いてみたいと思います。 –

+1

私は外見を持っていましたが、実際にはもっと小型で持ち運び可能なものを望んでいました。自分の実装(http://code.google.com/p/openpgm/source/browse/trunk/openpgm/pgm/http.c) –

関連する問題