6

私は新しいハードウェアデバイス用のソフトウェアを作成しています。これは、あらゆる種類の新しいサードパーティアプリケーションが必要に応じてアクセスできるようにするためのものです。

ソフトウェアは、ハードウェアデバイスをサポートするサードパーティのゲームやアプリケーションがポーリングできるネイティブプロセス(C ++)になります。これらのサードパーティアプリは、サブスクライブベースでネイティブプロセスからイベントを受信できる必要があります。そのため、ネイティブプロセスとは別に、サードパーティの開発者が簡単に接続できるようにアプリに埋め込むために選択する可能性のあるすべてのプラットフォーム/言語(Java、C ++、Pythonなど)用の「コネクタ」ライブラリも提供します。それらによって書かれる必要のある余分なコードはほとんどないデバイスに。すべてのデスクトップ/ラップトップOSプラットフォームをターゲットにし、公開する機能についてかなり良いアイデアを持っていますが、理想的には行き詰まりすぎないようにします(つまり、クライアントとサーバーの両方からエレガントにスケーラブルにしたい)視点)。

今後の信頼性、パフォーマンス、保守性、クロスプラットフォーム/言語の柔軟性、開発のしやすさの順に求めています。

何を使うべきですか?

CORBA、MessagePack-RPC、Thrift、または他の何か完全に?

(ライセンスのためにICEを省略しました)

4

4 に答える 4

4

ThriftまたはMessagePackは、今後の最良のオプションです。どちらも洗練された軽量であり、プロセスに多くの待ち時間を追加しません。彼らはほとんどの一般的な言語をサポートしており、活発な開発を行っています。現段階では個人的には節約したいのですが、メッセージパックは多くの機能を約束しているようです。

倹約は私たちが望むほどウィンドウに優しいものではないかもしれませんが、人々はそれをウィンドウで使用しています。これは、ウィンドウの節約のためのスターターガイドです。 http://wiki.apache.org/thrift/ThriftInstallationWin32Windows ではThriftコンパイラのインストールと取得のみが面倒な場合があります。生成されたファイルの使用は、選択した言語によって異なります。多くの言語は、thriftライブラリをインポートしてファイルを実行するための優れたサポートを備えています。(Javaは非常に簡単で、MAVENアーティファクトです)

利用可能なRPCフレームワークで利用可能なRPCフレームワークに関する議論がありますか?

私によると、CORBAは古くて面倒で非常に重いです。

于 2010-09-12T10:06:17.020 に答える
2

古くて重いものがあなたを先延ばしにしないなら、時代遅れは間違いなくそうすべきです。とにかく、最近Google Protocol Buffersを使用していることをお伝えできますが、非常に使いやすいです。

開発者の観点からは、GPBをビルドするだけで(実際にはそれほど難しくはありません)、ソースファイルが生成されます。最終結果は、クロスプラットフォームのバイナリメッセージトランスポートメッセージパッシングインターフェイスです(MPIのような機能ではなく、XMLと制限されたRMIを考えてください)。

これをWindowsで使用して、同じソフトウェアを実行しているArmベースのLinuxシステム(組み込みArmのTS-7​​200)と通信します。私の知る限り、それは多くの言語と互換性があります。

于 2010-08-26T12:41:26.383 に答える
1

CORBAは、拡張性が非常に悪いにもかかわらず、現在私のシステムで機能する唯一の無料の「RPC」です。ThriftはまだWindowsに対応していません。MessagePack-RPCはまだ開発中ですが、まだすべての言語とOSで利用できるわけではありません。CORBAがエレガントにスケーラブルであったなら、おそらくまったく時代遅れになることはなかっただろう。

プロトコルバッファとメッセージングは​​機能します。すべてのプラットフォーム/言語に対してクライアントとサービスの両方の実装を開発する必要があります。また、非常にスケーラブルです。私はこれを決めました。

于 2010-08-27T16:55:33.683 に答える
0

私は現在、HospitalManagerプロジェクトにApacheThriftを使用しています。多くの分野でCORBAよりも優れており、軽量で実装と理解がはるかに簡単であることは言うまでもありません。Thriftの学習曲線は、CORBAと比較して確かに微妙ですが、Thriftのドキュメントは最悪のものです。

Obj-CおよびJavaクライアントが接続するRubyThriftサーバーを使用しています。Thriftパーサーまたは「コンパイラー」は、冗長すぎますが、必要な言語のソースファイルを生成するのに非常に優れています。CORBAは本当に時代遅れであり、将来的には新しいテクノロジーを実装しない可能性があるため、新しいプロジェクトを開始する場合は、ThriftまたはGoogle ProtoBuffsの実装を確実に検討します。もちろん、CORBAをターゲットとする脆弱性やエクスプロイトは多くありません。まだ開発中ではないのでパッチを適用し、新しいプロジェクトに深刻なセキュリティホールを提示します。

Thriftは、C ++、Java、Python、PHP、Ruby、Erlang、Perl、Haskell、C#、Objective-C、JavaScript、Node.js、Smalltalk、OCaml、Delphiなどの多くのプログラミング言語をサポートしています。プロジェクトの目的では、複数の言語をサポートすることが重要だと思います。

于 2013-11-21T13:50:36.160 に答える