CORBA

共通オブジェクト・リクエスト・ブローカー・アーキテクチャー (CORBA) は、ベンダーに依存しない分散コンピューティングの公開仕様です。 これは、オブジェクト管理グループ (OMG) により公開されます。

ほとんどのアプリケーションは、ネットワーク上で相互に通信するために、 各種のプラットフォームおよびオペレーティング・システム上にさまざまなオブジェクトを必要とします。 CORBA により、Internet Inter-ORB Protocol (IIOP) を使用して、オブジェクトがこのような方法で相互運用できるようになります。 使用可能な操作、およびそれらを呼び出すために必要な構文をオブジェクトが理解できるようにするために、 インターフェース定義言語 (IDL) が使用されます。 IDL はプログラミング言語に依存せず、 オブジェクト間の相互運用性を向上させます。

アプリケーション開発者は、オブジェクトを定義するときに、他の側面も定義します。 それらの側面には、全体的な階層内のオブジェクトの位置、 オブジェクト属性、および可能な操作が含まれます。 次に、 それらの側面はすべて、IDL に記述されます。 その後、その記述は IDL コンパイラーを使用して、 実装に変換されます。 例えば、IDLJ は、Java™ 言語用の IDL コンパイラーであり、IDL 記述を Java ソース・コードに変換します。 ここでの利点は、オブジェクト実装が IDL 定義によってカプセル化 されていることです。 相互運用したい他のオブジェクトはすべて、 共有 IDL を使用して定義されたメカニズムを使用して相互運用できます。

開発者は、IDL を使用してオブジェクトの階層、属性、および操作を定義することで、 この相互運用性を可能にします。 次に、IDL コンパイラー (Java の場合は IDLJ など) を使用して、プログラミング言語の実装に定義をマップします。 オブジェクトの実装は、カプセル化されます。 オブジェクトのクライアントには、その外部 IDL インターフェースのみが表示されます。 OMG は、IDL から多くの共通プログラミング言語 (C、C++、Java など) へのマッピングの仕様を作成しています。

CORBA 仕様の根幹を成すのは、オブジェクト・リクエスト・ブローカー (ORB) です。 ORB では、クライアント・オブジェクトからリモート・オブジェクトに要求を経路指定します。 その後、ORB は必要な宛先に応答を返します。 Java には、IIOP を使用して通信する ORB の実装が含まれています。