CORBAの概念

分散コンピューティングでは、ネットワークに接続された複数のコンピュータを使って、クライアントプロセスからサーバプロセスに対して処理の要求を行い、その結果を得る。その結果、クライアントとサーバのプロセスは、密接に関連することになり、お互いに相手を理解しないとアプリケーションの開発や変更ができないことになる。

そこで、CORBAではクライアントとサーバを分離して、相互に他方に影響を及ぼすことなく変更ができるようにしている。つまり、クライアントは要求する方法だけを知っていて、サーバは要求に対して行う処理だけを知っていればよい。

このため、CORBAでは、クライアントとサーバの間にブローカーという通信可能な層を追加し、リクエストというメッセージを交換することで実現している。このリクエストを実行するために、IDL(インタフェース定義言語)を用いて、インターフェースの定義ファイルを作成しておく。

リクエストを発行するオブジェクトの実体であるインスタンスを識別するために、クライアント側でオブジェクトリファレンスが利用される。また、サーバには、クライアントからのリクエストに応えるためのメソッド群が存在し、これをインプリメンテーションと呼んでいる。

OMA参照モデル

CORBA環境における、構成要素間の関係を定義するためにOMA(Object Management Architecture)は図1に示すように5つの要素から構成されている。

図1 OMA参照モデル

・アプリケーション・オブジェクト
アプリケーションを構成するオブジェクトで、アプリケーション開発者が作成する。
 
・ドメイン・オブジェクト
特定の業務分野ごとに利用可能なオブジェクト群である。
 
・ファシリティ・オブジェクト
特定の業務分野に関係なく、アプリケーションを開発するために利用可能なオブジェクト群。これには、ドキュメント制御の統合、データベースのアクセス、ファイルの印刷、分散環境での同期制御などのファシリティがある。
 
・ORB(Object Request Broker)
分散したオブジェクト間の通信を行うためのソフトウェアバスを提供する。
 
共通オブジェクト・サービス
CORBAを実現するために必要な機能を提供するオブジェクト群である。主な機能は、オブジェクトの作成、アクセス制御、オブジェクトリファレンスとの連結など。オブジェクトサービスの仕様であるCommon Object Services Specification,Vol1(COSS1)に基づいて、OMGのメンバー企業が各種のオブジェクトサービスを作成している。
 
 

ORB

 
ORBは、クライアント/サーバーの形態をとるために分散オブジェクトに関する環境を提供する。
この環境を実現するために、以下のような基本コンポーネントを組み合わせて利用している。
 

図2 CORBAアーキテクチャ

 
・ORBコア
ORBのカーネルで、各要素間のコミュニケーションなどの基本的なサービスを提供する。
・インターフェース・リポジトリ
IDLで定義されたインターフェースのパラメータの型や戻り値などを定義したオブジェクト群。
・動的起動インターフェース
起動を行うために必要なインターフェース情報をインターフェース・リポジトリから取得し、リクエストを生成する。
・ORBインターフェース
ORBの基本的な機能を提供する。
・オブジェクト・アダプタ
サーバ・オブジェクトの生成、消滅、オペレーションの起動などを行う。
・インプリメンテーション・オブジェクト
オブジェクトの生成や位置を知るために必要な情報を格納する。
・IDL
異なるプログラム言語で実装されたクライアント/サーバ間で、クライアントからサーバにあるオブジェクトのオペレーションを遠隔起動するために、インターフェースを記述する言語である。
 
(この詳しい説明は、基本コンポーネントのページを参照)

オブジェクトの連結

ORBを用いたシステムでは、オブジェクト間の呼び出しを「名前」で行う。オブジェクトの位置情報は、CORBAが管理しているので、呼び出す側のオブジェクトAは、呼び出し側のオブジェクトBの位置をORBに問い合わせる。ORBがオブジェクトBの位置を回答すると共に、オブジェクトBの存在するサーバが稼働状態にない場合は、そのサーバーを起動する。

オブジェクトAは、受信した位置情報を用いてオブジェクトBとの間にセッションを張る。

CORBAの機能

(1)分散オブジェクト管理機能

(2)データベース管理機能

(3)その他

CORBAメニュー 工事中

ご意見、ご感想は臼井までお願いします。mailto:yosimi-u@is.aist-nara.ac.jp