Windowsで実行されているC++のクライアント/サーバーアプリケーションで作業します。サーバー自体は、構成に応じて「マネージャー」実行可能ファイルで構成され、1回生成され、「ワーカー」実行可能ファイルは1〜29回生成されます。
comは、クライアントと「マネージャー」プロセスの間、「マネージャー」プロセスと「ワーカー」プロセスの間(構成するには、データをプロセスに送信します)、および一部の「ワーカー」プロセスの間です。ちなみに、ワーカープロセスとは、スーパーパフォーマンスのためにまったく同じジョブを並行して実行するプロセスを意味するものではありません。プロセスはすべて異なる構成で、異なるジョブを実行し、パフォーマンスは実際には問題ではありません。ここでのいくつかのプロセスでの分離は、安定性に関するものです。
今、私はそれをすべて行うためにどのネットワークライブラリを選択すべきかわかりません。
私はboost::asioを知っています、私はブーストとその特定のスタイルに精通していますが、私のチームの他のメンバーはそうではないのではないかと心配しています。また、zeroMqを使用するようにアドバイスされました。そして、私は彼らの長所と短所を持つ他のいくつかを見てきました。しかし、私は少し迷っています!
zeroMqを使用すると、asioのプロクターを失うと思いますか?それで、ある意味でそれはそれがより低いレベルであると感じますか?一方で、パブリッシュ/サブスクライブなど、私たちには役に立たないと思う機能を提供します。
これらのライブラリはいずれも、シリアル化の部分で役立ちません(交換されるデータは異種です)。私はグーグルプロトコルバッファがこの点で私たちを助けることができると思っていました、それは周りにすべてのライブラリがない限りですか?
漠然と検討した他の選択肢は、Corba、amqpです。前者は不器用で、私たちはそれに反対するようにアドバイスされています。後者は過度に複雑に感じます。(?)
何かアドバイスはありますか?