0

CORBA 機能の 1 つを使用できるようにしたいと考えています。つまり、CORBA クライアントが CORBA サーバー上で関数を実行し、関数に引数を渡し、関数の戻り値を受け取るようにしたいと考えています。でも、もっとシンプルな別のプロトコルを使いたいのですが...そんなものはありますか?

ドキュメンテーションとチュートリアルを読んでいるうちに、CORBA は重く、実装と管理が難しいと感じました。

上記の機能は別のプロトコルに存在しますか?

編集:現在の回答に基づいて質問を明確にするために
、サーバーもクライアントもまだ実装していません。私のクライアントは、サーバー上で関数を実行し、引数を渡し、戻り値を受け取ることができる必要があります。他のどのプロトコルがそれを行うことができるのだろうか? もっとシンプルに?ありがとう。

4

2 に答える 2

5

CORBA クライアントが CORBA サービスと話している場合、それ以外のことをどのように話せると思いますか?

どの CORBA 機能を使用したいですか?

このクライアントとサーバーは既にお持ちですか、それとも実装方法を考えているだけですか?

IDL があれば、なぜ実装がそれほど難しいのかわかりません。ツールを使用して、残りの作業を支援します。また、プロトコルに関係なく管理が難しくなります。よりシンプルになると想像しているものは何ですか?

HTTP ベースのプロトコルのために CORBA を捨てることを検討します。CORBA が実質的に姿を消したのには理由があります。それは、シンプルでオープンな勝利です。HTTP ベースのサービスは、選択した言語 (Java、C#、またはその他) で実装でき、HTTP 接続を確立できる任意のクライアントと通信できます。まだ設計段階にある場合、それは価値があります。

于 2012-04-26T02:16:49.843 に答える
-1

このトピックは古いですが、私は 2 セントを与えようとします。

CORBA は、分散オブジェクト コンピューティング ミドルウェアを開発するための標準的なミドルウェア アーキテクチャです。したがって、オブジェクトはシステムのプリミティブです。高レベル ビューでは、クライアントは別のコンピューター (サーバー) にあるオブジェクトのメソッドを呼び出し、そのオブジェクトがクライアント自体にあるかのように結果を取得します。つまり、RPC を行う方法です。

低レベルの観点では、クライアントでメソッドが呼び出されると、サーバー上のオブジェクトを識別するために使用される他の多くのフィールドとともに、すべてのパラメーターがメッセージに配置されます。このメッセージはサーバーに送信され、サーバーはメッセージを読み取り、指定されたオブジェクトのメソッドを呼び出します。メソッドの結果は、クライアントに送り返されるメッセージに書き込まれます。

CORBA の GIOP プロトコル (メッセージ形式) を使用して実行できることは、HTTP プロトコルを使用した RESTful アプローチを使用して実行することもできます。同様に、すべてのメソッド引数を HTTP POST メッセージ (または、目的に応じて GET メッセージ) に配置し、そのメッセージを HTTP サーバーに送信するクライアントを作成できます。HTTP サーバーは、メッセージをサービスに配信します。 HTTP 応答にカプセル化されてからクライアントに送り返される応答を返します。

分散オブジェクトと RESTful サービスには概念上の違いがありますが、どちらも同じことを行います。つまり、クライアント サーバー通信です。両者の違いは、コミュニケーションの方法にあります。CORBA は IDL (Interface Description Language の略) で動作します。この IDL は、使用可能なすべてのメソッド、引数として渡されるデータの型、または応答として返されるデータの型などを含むオブジェクト インターフェイスを記述します。次に、この IDL を使用して、コードと一緒にコンパイルできるスタブを生成します。これらのスタブは、厄介なメッセージのシリアル化と通信コードをすべて処理します。

ただし、RESTful サービスは IDL を使用しません。HTTP は単純なプロトコルであるため、さまざまな言語 (Java、C++、C#、Python、Ruby、Lua、Erlang、 Haskell、Scheme、...)

IDL ベースのアプローチの欠点は、オブジェクト インターフェイスが変更されるたびにすべてのクライアントのスタブを再生成する必要があることです。これをやりすぎると、頭痛の種になる可能性があります。このアプローチによって主張される利点は、メッセージに対してコンパイラベースの静的チェックを行うことができることです。

代替手段については、最近では他にも多くの RPC スタイルの通信プロトコルがあります。SOAP は非常に有名な代替手段であり、多くの人が CORBA とは対照的に使用することを好みます。その他のオープン ソース RPC プロトコルには、Google の Protocol Buffers、Apache Thrift、Apache Avro、Message Pack などがあります。

これらのトピックについてより多くの洞察を得るには、RPC と分散システムについてよく勉強する必要があります。少しでも光を当てることができれば幸いです。

于 2013-06-18T09:54:11.267 に答える