CORBA
[Wikipedia|▼Menu]

Common Object Request Broker Architecture(コモン オブジェクト リクエスト ブローカー アーキテクチャー、略称CORBA)とは、Object Management Group(OMG)が定義した標準規格であり、様々なコンピュータ上で様々なプログラミング言語で書かれたソフトウェアコンポーネントの相互利用を可能にする(分散オブジェクト技術)ものである。
目次

1 概要

2 主な機能・特徴

2.1 Objects by Value (OBV)

2.2 CORBA Component Model (CCM)

2.3 ポータブルなインターセプター

2.4 General InterORB Protocol (GIOP)

2.5 Data Distribution Service (DDS)

2.6 VMCID (Vendor Minor Codeset ID)


3 CorbaLoc

4 CORBA 実装例

5 OMG の商標

6 関連項目

7 参考文献

8 外部リンク

概要

CORBA では、プログラムコードをその機能や呼び出し方の情報と共に一種のカプセル化を行う。このカプセル化されたオブジェクトは、コンピュータネットワークを経由して他のプログラム(あるいは CORBA オブジェクト)から呼び出すことができる。

CORBA はインタフェース記述言語 (IDL) を使ってこのようなオブジェクトの外部インタフェースを記述する。そして、IDLから他の特定の実装言語(C++Java)への「マッピング」を行う。CORBAとしてマッピングが標準的に用意されているのは、AdaC、C++、LISPSmalltalk、Java、COBOLPL/IPython である。標準に組み込まれていないが、PerlPHPRubyVisual BasicTcl へのマッピングを実装したObject Request Brokerが存在する。

下図はCORBA基盤で生成されたコードが使われる様子を示したものである。

この図は非常に単純化してある。通常、サーバ側には Portable Object Adapter があり、呼び出しをローカルなサーバントに渡すか(負荷分散のために)他のサーバに転送する。また、サーバ側にもクライアント側にも後述するインターセプターが存在することが多い。

ユーザーに対して言語やプラットフォームに依存しない遠隔手続き呼出し (RPC) 仕様を提供する以外に、CORBAはトランザクションセキュリティに必要な一般的サービスを定義している。
主な機能・特徴
Objects by Value (OBV)

リモートオブジェクトとは別に、CORBAとRMI-IIOPはOBVの概念を定義している。オブジェクト内のメソッドのコードはデフォルトではローカルに実行される。OBVをリモートから受信する場合、必要なコードが両者に事前に備えられているか、送信側から動的にダウンロードしなければならない。このため、コードをダウンロードできるURL群の(空白で区切った)リストである Code Base が OBV を定義するレコードに含まれている。OBV はリモートメソッドを持つこともできる。

OBV は転送される際に付属して転送されるフィールドを持つことがある。そのフィールドにはOBV自体、構成リスト、木構造やグラフなどが含まれる。OBVにはクラス階層があり、多重継承や抽象クラスもある。
CORBA Component Model (CCM)

CORBA Component Model (CCM) は CORBA 仕様の追加要素である。 CORBA 3 で導入された。これはCORBAコンポーネントの標準アプリケーションフレームワークを記述したものである。それはちょうど「言語に依存しない」Enterprise JavaBeans(EJB)の拡張版である。「ポート」と呼ばれる明確な名前付きのインタフェースを通してサービスのやりとりができる実体を抽象化したものである。

CCM にはコンポーネントコンテナがあり、その中にソフトウェアコンポーネントが置かれる。コンテナは内包するコンポーネントに各種サービスを提供する。例えば、通知、認証、永続性、トランザクション管理などがある。これらは分散システムには必須のサービスであり、その実装をソフトウェアコンポーネントからコンテナに移すことによってコンポーネントの複雑さは劇的に軽減される。
ポータブルなインターセプター

ポータブルなインターセプターとは、CORBAやRMI-IIOPが使用するCORBAシステムの最重要機能の「フック」である。CORBA標準では以下のようなタイプのインターセプターを定義している:
IORインターセプターは、カレントサーバが示すリモートオブジェクトへの新たな参照の作成を調停する。

クライアントインターセプターは、クライアント側でリモートメソッドの呼び出しの調停を行う。そのオブジェクトのサーバントが同じサーバに存在すれば、そのメソッドが呼び出されるようにローカル呼び出しが調停される。

サーバインターセプターは、サーバ側のリモートメソッド呼び出しへの対応を調停する。

インターセプターは、送信されるメッセージに何らかの情報や生成したIORを付加することができる。それらの情報はリモート側の対応するインターセプターが読み取る。インターセプターは例外を送ったり、メッセージを他のターゲットに転送したりといったことも行う。
General InterORB Protocol (GIOP)

GIOPとは、Object Request Broker(ORB)同士が通信する際の抽象プロトコルである。このプロトコルに関する標準はObject Management Group(OMG)が管理保守している。GIOPアーキテクチャはいくつかの実際のプロトコルを提供している:
Internet InterORB Protocol (IIOP) - CORBA ORB 同士の通信プロトコルであり、インターネット上のGIOPの実装である。従って、GIOPメッセージとTCP/IPとの橋渡しをする。

SSL InterORB Protocol (SSLIOP) - SSL 上のIIOP。暗号化認証機能を提供する。

HyperText InterORB Protocol (HTIOP) - HTTP上のIIOP。プロキシを透過的に迂回するなどの機能がある。

その他いろいろ…

Data Distribution Service (DDS)


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:21 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef