1.2 クライアント/サーバー開発のCORBA手法
CORBAモデルは、分散アプリケーションを開発するためのより柔軟なアプローチを提供します。CORBAモデル:
- アプリケーションのクライアント部分とサーバー部分がはっきりと分離されます
CORBAクライアント・アプリケーションでは処理をリクエストする方法のみが理解され、CORBAサーバー・アプリケーションではクライアントからリクエストされたタスクを遂行する方法のみが理解されています。このような分離のおかげで、クライアント・アプリケーションがサーバー・アプリケーションにタスクの遂行を要求する方法に影響を与えることなく、サーバーでタスクを遂行する方法を変更できます。
- アプリケーションが、オペレーションと呼ばれる特定のタスクを実行できる複数のオブジェクトに論理的に分割されます
CORBAは、分散オブジェクト・コンピューティング・モデルに基づいています。このモデルでは、分散コンピューティング(クライアントとサーバー)の概念とオブジェクト指向コンピューティング(オブジェクトとオペレーションをベースとする)の概念が結合されます。
オブジェクト指向コンピューティングにおいて、オブジェクトはアプリケーションを構成するエンティティであり、オペレーションはそれらのオブジェクトでサーバーが実行できるタスクです。たとえば銀行業務アプリケーションでは、顧客口座のオブジェクトと、預け入れ、引き出し、および残高照会のオペレーションを利用できます。
- リモート・マシンまたはローカル・マシンのアプリケーションとデータをやり取りするためのデータ・マーシャリングが提供されます
たとえば、CORBAモデルでは必要に応じてビッグ・エンディアンまたはリトル・エンディアン用に自動的に形式変換が行われます。データ・マーシャリングの説明については、前の項を参照してください。
- ネットワーク・プロトコル・インタフェースがアプリケーションから隠蔽されます
CORBAモデルではすべてのネットワーク・インタフェースが処理されます。アプリケーションで認識されるのはオブジェクトだけです。アプリケーションは複数の異なるマシンで動作できます。その理由は、すべてのネットワーク・インタフェース・コードがORBによって処理され、異なるネットワーク・プロトコルをサポートするマシンに後からデプロイされる場合でもアプリケーションではネットワーク関連のどのような変更も必要としないからです。
図1-2 Object Request Broker (ORB)

CORBAでは、クライアント・アプリケーションとサーバー・アプリケーションの媒介としてORBが定義されています。ORBでは、クライアントのリクエストが適切なサーバー・アプリケーションに転送され、サーバーのレスポンスがリクエスト元のクライアント・アプリケーションに返されます。ORBを使用することで、クライアント・アプリケーションではサーバー・アプリケーションの位置またはサーバーがリクエストを満たす方法を知らなくてもサービスをリクエストできます。
CORBAモデルのクライアント・アプリケーションでは、どのようなリクエストが可能なのか、およびどのようにリクエストを行うことができるのかを知っているだけで十分です。サーバーまたはデータ形式の細かな実装は必要ありません。サーバー・アプリケーションは、リクエストを満たすことができれば十分です。クライアント・アプリケーションにデータを返す方法について知っている必要はありません。
つまり、プログラマは、クライアント・アプリケーションがサーバー・アプリケーションにタスクの遂行を要求する方法に影響を与えることなく、サーバーでタスクを遂行する方法を変更できます。たとえば、クライアント・アプリケーションとサーバー・アプリケーションのインタフェースが変更されないかぎり、クライアント・アプリケーションに変更を加えることなくサーバー・アプリケーションの実装を拡張したり、新しい実装を開発したりできます。また、サーバー・アプリケーションはそのままに新しいクライアント・アプリケーションを作成することも可能です。
親トピック: CORBAプログラミング・モデル