5

スタンドアロンアプリの配布に取り組んでいます。アプリの各インスタンスは、クエリを送受信できる必要があります。

要件:

  1. 言語 - C++
  2. スケール - 小さい。一度に 5 つのインスタンスの場合があります
  3. プラットフォームに依存しない
  4. データ転送量が多いことが予想される(最悪の場合生画像)

レジストリ サービスを実行する必要があるため、RPC は使用したくありません。CORBA と SOAP はオーバーヘッドが大きすぎると思います。カスタムプロトコルを使用することにしましたが、もっと良いものがあるかどうか聞きたいだけです.

ありがとう。

4

6 に答える 6

6

Protocol Buffersは、C++ でサポートされ、クロスプラットフォームで、高パフォーマンスを実現するように設計されており、ぴったりのように思えます。

于 2009-07-27T18:38:13.757 に答える
5

MPIはこのために作成されたもので、Corba などよりも確かに使いやすいです。
また、小規模な分散アプリが非常に大規模な分散アプリになると、MPI は拡張されます!

于 2009-07-27T18:40:14.547 に答える
4

http POSTを使用してみませんか?

  • 必要に応じて軽量(ソケットを開き、POST文字列を送信)、または堅牢性が必要な場合はhttpライブラリを使用します。
  • サーバーサイドでのアクセス許可の管理が簡単(apacheまたはiisを使用するだけ)
  • 組み込みのロギング(Webサーバー側)
  • スケーリングの問題はありません(Webサーバーはこれらの問題を解決しました)
  • 通常、システムはhttpソケットのアクセス許可を必要としません(xpはrawソケットのアクセス許可を必要とします)。
  • フィールドとデータを識別するためのキーと値のペア。
  • Firefoxプラグインを使用してテストできます。
  • 速度が問題になる場合は、タイムアウトを簡単に設定して再送信できます。
  • ほとんどの場合、デフォルトでhttpが許可されているため、ファイアウォールについて心配する必要はありません。
  • ポートスニファを使用してデバッグするのは簡単です。
  • すべてのサーバー側コードとほとんどのクライアント側コードはあなたのために書かれています。
于 2009-07-27T18:45:00.357 に答える
3

アプリケーションに実際に埋め込まれた小さな Web サーバーで HTTP プロトコルを使用することをお勧めします。これは非常に簡単に機能し、組み込み可能な優れた Web サーバーがたくさんあります。個人的にはMongooseをお勧めします。

于 2009-07-27T18:52:17.737 に答える
3

Spread Toolkitを見てみたいと思います。それは C ですが、C++ バインディングが存在し、独自のバインディングを作成するのも簡単です。あなたのものは、私がそれを使用して大成功を収めたいくつかのプロジェクトのように聞こえます (ただし、バインディングはありません)。

プロジェクトのウェブサイトから:

Spread は、ローカルおよびワイド エリア ネットワーク全体の障害に対して回復力のある高性能メッセージング サービスを提供するオープン ソース ツールキットです。Spread は、分散アプリケーションの統合メッセージ バスとして機能し、高度に調整されたアプリケーション レベルのマルチキャスト、グループ通信、およびポイント ツー ポイント サポートを提供します。Spread サービスは、信頼性の高いメッセージングから、配信保証付きの完全に順序付けされたメッセージまでさまざまです。

Spread は、メンバーのさまざまなサブセット間で高い信頼性、高性能、および堅牢な通信を必要とする多くの分散アプリケーションで使用できます。このツールキットは、非同期ネットワークの困難な側面をカプセル化し、信頼性が高くスケーラブルな分散アプリケーションの構築を可能にするように設計されています。

Spread は、ユーザー アプリケーションがリンクされるライブラリ、プロセッサ グループの一部である各コンピュータで実行されるバイナリ デーモン、およびさまざまなユーティリティおよびデモ プログラムで構成されます。

Spreadが提供するサービスと利点の一部:

  • 信頼性と拡張性に優れたメッセージングとグループ通信。
  • 非常に強力でシンプルな API により、分散アーキテクチャの構築が簡素化されます。
  • 使用、展開、および保守が簡単です。
  • 1 つのローカル エリア ネットワークから複雑なワイド エリア ネットワークまで、高度にスケーラブルです。
  • メンバーのセットが異なる何千ものグループをサポートします。
  • マシンの障害、プロセスのクラッシュと回復、およびネットワークのパーティションとマージが発生した場合でも、メッセージの信頼性を有効にします。
  • メッセージの信頼性、順序付け、および安定性の保証の範囲を提供します。
  • 堅牢性と高性能を重視。
  • 中央障害点のない完全に分散されたアルゴリズム。

これらすべてに基づいて、複雑なものに違いなく、小さなプロジェクトにとってはおそらくやり過ぎのように聞こえることは承知していますが、実際にはそうではありません。基本的な使用法は本当に単純です。ツールキットが解決する問題は本質的に非常に難しいため、確かに内部は複雑です。しかし、TCP を広く使用しているにもかかわらず、TCP が実際にどのように機能するかを確認したことがないように、少なくともそこを見る必要はありませんでした。

(いいえ、私はこのプロジェクトのために働いているわけではありません。ただの幸せなユーザーです。)

于 2009-07-27T19:40:16.143 に答える
1

deltavsoftからRCFを評価することをお勧めします。これは、c ++アプリケーション用に調整されており、無料であるため、適切に聞こえます。

http://deltavsoft.com/w/

于 2011-10-20T00:36:18.730 に答える