CORBA 技術情報

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

CORBA プログラミング モデル

CORBA は、オブジェクト ベースの分散アプリケーションを作成するための仕様です。CORBA のアーキテクチャと仕様は、Object Management Group (OMG) によって開発されました。OMG は、数百社の情報システム ベンダで構成されるコンソーシアムです。CORBA の目的は、分散ソフトウェア アプリケーションをビルドおよび統合するオブジェクト指向の手法を促進することです。

CORBA 仕様では、分散アプリケーションをビルドするためのオープンで一貫性のあるモデルが提供されます。そのために、CORBA 仕様では次の事項が定義されています。

CORBA 仕様では、CORBA の実装を開発する方法が説明されています。また、アプリケーションの開発で使用するプログラミング言語のバインディングも記述されています。

CORBA アーキテクチャを使用する利点を説明するために、この節では初期のクライアント/サーバ アプリケーション開発手法と CORBA の開発手法を比較します。

 


クライアント/サーバ開発の CORBA 以前の手法

クライアント/サーバ コンピューティングは、ネットワーク接続された複数のマシンで処理を分散し、マシンのリソースをより効率的に利用できるようにするアプリケーション開発方法です。クライアント/サーバ コンピューティングのアプリケーションは、クライアント アプリケーションとサーバ アプリケーションの 2 つのパートで構成されます。通常、それらの 2 つのアプリケーションは、次の図で示されているようにネットワークで接続された異なるマシンで動作します。

クライアント アプリケーションは情報またはサービスを要求し、通常は結果を表示する手段をユーザに提供します。サーバ アプリケーションは、1 つまたは複数のクライアント アプリケーションの要求を満たし、通常は計算集中型の機能を実行します。

クライアント/サーバ モデルの主要な利点は次のとおりです。

たとえば、デスクトップ システムは、情報を表示するための使いやすいグラフィカルな環境を多くのビジネス ユーザに提供します。しかし、デスクトップ システムはディスク領域とメモリが制限される場合があり、シングル ユーザ システムであるのが普通です。より大きく、より強力なマシン システムの方が、計算集中型の機能を実行し、マルチ ユーザ アクセスと共有データベース アクセスを実現するには適しています。

したがって、通常はより規模の大きいシステムでアプリケーションのサーバ部分が実行されます。このようにして、分散したデスクトップ システムとネットワーク接続されたサーバにより、分散クライアント/サーバ アプリケーションをデプロイする完璧なコンピューティング環境が実現されます。

CORBA 以外のクライアント/サーバ手法でも異機種間ネットワークで処理を分散する手段が提供されますが、その手法には次の欠点があります。

 


クライアント/サーバ開発の CORBA 手法

CORBA モデルでは、分散アプリケーションをもっと柔軟に開発することができます。

CORBA モデルのクライアント アプリケーションでは、情報の供給源やその位置について直接知らなくても、サーバ アプリケーションに要求を送信して応答を受信することができます。CORBA 環境では、通信のためのネットワークやオペレーティング システムの情報はアプリケーションで必要としません。代わりに、クライアント アプリケーションとサーバ アプリケーションはオブジェクト リクエスト ブローカ (ORB) と通信します。次の図は、クライアント/サーバ環境の ORB を示しています。

CORBA では、クライアント アプリケーションとサーバ アプリケーションの媒介として ORB が定義されています。ORB では、クライアントの要求が適切なサーバ アプリケーションに転送され、サーバの応答が要求元のクライアント アプリケーションに返されます。ORB を使用することで、クライアント アプリケーションではサーバ アプリケーションの位置またはサーバが要求を満たす方法を知らなくてもサービスを要求できます。

CORBA モデルのクライアント アプリケーションでは、どのような要求が可能なのか、およびどのように要求を行うことができるのかを知っているだけで十分です。サーバまたはデータ形式の細かな実装は必要ありません。サーバ アプリケーションは、要求を満たすことができれば十分です。クライアント アプリケーションにデータを返す方法について知っている必要はありません。

つまり、プログラマは、クライアント アプリケーションがサーバ アプリケーションにタスクの遂行を要求する方法に影響を与えることなく、サーバでタスクを遂行する方法を変更できます。たとえば、クライアント アプリケーションとサーバ アプリケーションのインタフェースが変更されない限り、クライアント アプリケーションに変更を加えることなくサーバ アプリケーションの実装を拡張したり、新しい実装を開発したりできます。また、サーバ アプリケーションはそのままに新しいクライアント アプリケーションを作成することも可能です。


  ページの先頭       前  次