CORBAテクニカル・アーティクル

     前  次    新規ウィンドウで目次を開く  新規ウィンドウで索引を開く  PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

CORBAプログラミング・モデル

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

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

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

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

 


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

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

グループ名

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

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

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

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

 


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

The CORBA model provides a more flexible approach to developing distributed applications. The CORBA model:

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

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

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

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


  先頭に戻る       前  次