CORBA
Common Object Request Broker Architecture
共通オブジェクト・リクエスト・ブローカ・アーキテクチャ仕様書(The Common Object Request Broker:Architecture and Specification)の略で,オブジェクト指向の標準化団体であるOMG(Object Management Group)が規定した分散オブジェクト通信機構の共通仕様。標準化された分散オブジェクト環境で,異なるプログラミング言語で記述されたサーバプログラムに統一されたクライアントへのインタフェースを提供する。
CORBAでは,
① オブジェクトのインタフェースを共通に記述するためのインタフェース定義言語(IDL:Interface Definition Language),
② プログラム言語でアプリケーションを記述するための言語マッピング,
③ オブジェクトの生成やリクエストの配信をはじめとする各種サービスを提供するコンポーネント機能とインタフェース(ORB:Object Request Broker),
④ オブジェクト間通信のためのプロトコルの仕様,
が定められている。
国内外の有力ベンダ・ソフトウェアハウスから,UNIXやWindowsNTといった主要OS上で動作するCORBA準拠製品が出荷されている。これらCORBA準拠製品を使用することで,ハードウェアやOSの違いを意識することなく,オブジェクト指向でAPを開発できる。
◆ 《FAPO(Foreign Application Proxy Object)》
CORBAを利用できないAPとの間の通信機能を実現するモジュール。
FAPOはRDTPからみると,一般のAPと同じようにアプリケーションとして動作し,サーバごとに存在する(図)。CORBA上のオブジェクトとして実装されたクライアントが起動側となる場合,クライアントはRDTPの要求送信APIを利用してFAPOにデータ転送を依頼する。依頼を受信したFAPOは,ftpもしくはsendmail(データ送信のみ可能)を利用してデータ転送を実行する。このとき転送データの圧縮・伸長,コード変換等のフィルタプログラムをデータ転送の前処理,後処理として実行できる。データ転送の実行結果は,RDTPを介してクライアントに返却される。逆に,CORBA上のオブジェクトとして実装されたサーバが応答側となる場合,FAPOはftpもしくはsendmail(データ受信のみ可能)を監視してデータ転送の完了を検出する。完了を検出したら,RDTPの要求送信APIを利用してサーバにデータ転送完了を通知する。