bea ホーム | 製品 | dev2dev | support | askBEA
BEA Logo Tuxedo
 ドキュメントのダウンロード   サイトマップ   用語集 
検索
0

Tuxedo CORBA idltojava コンパイラ

 Previous Next Contents Index View as PDF  

idltojava コンパイラの概要

BEA Tuxedo 製品の CORBA 環境では、Object Management Group (OMG) によって定義されている業界標準の Object Management Group (OMG) インターフェイス定義言語 (IDL) とインターネット ORB 間プロトコル (IIOP) を使用して、CORBA Java クライアントおよび CORBA Java 共同クライアント/サーバが BEA Tuxedo ドメイン内の CORBA オブジェクトのオペレーションを呼び出すことができます。

CORBA オブジェクトにアクセスできる CORBA Java クライアントおよび CORBA Java 共同クライアント/サーバを構築するには、OMG IDL ファイルを Java クライアント・スタブおよびスケルトン・ファイルに変換するツールである BEA idltojava コンパイラが必要です。idltojava コンパイラは、BEA Tuxedo ソフトウェアに含まれています。

ここでは、以下の内容について説明します。

 


BEA idltojava コンパイラの入手先

idltojava コンパイラの BEA 版は、BEA Tuxedo CD-ROM に含まれています。BEA Tuxedo ソフトウェアをインストールすると、idltojava コンパイラは TUXDIR¥bin に格納されます。

 


BEA 版 idltojava コンパイラと Sun Microsystems, Inc. 版の相違

BEA Tuxedo 製品で提供される idltojava コンパイラには、Sun Microsystems, Inc. によるオリジナルの idltojava コンパイラにはない機能の改良、拡張、および追加が複数含まれています。ここでは、BEA Tuxedo 製品に含まれているコンパイラの変更点の概要を説明します。BEA Tuxedo 製品で提供される idltojava コンパイラを使用する方法の詳細については、「idltojava コマンドの使用」を参照してください。

次に、BEA Tuxedo 版の idltojava コンパイラの相違点を示します。

 


IDL とは

インターフェイス定義言語 (IDL) は、何らかのプログラミング言語で記述されたプログラムまたはオブジェクトと未知の言語で記述されたほかのプログラムとを通信できるようにする言語を指す一般的な用語です。分散オブジェクト技術では、新しいオブジェクトは任意のプラットフォーム環境に送信可能であるだけでなく、その環境で実行されるための方法を発見する機能を備えている必要があります。たとえば、ORB はインターフェイス定義言語を使用して 1 つのオブジェクト・プログラムと別のオブジェクト・プログラム間の通信を「仲介 (ブローカ) する」プログラムの一例です。

すべての CORBA オブジェクトは IDL インターフェイスをサポートします。IDL インターフェイスはオブジェクトの型を定義します。1 つのインターフェイスは、1 つまたは複数のほかのインターフェイスから継承することができます。IDL の構文は Java または C++ の構文と類似しており、IDL ファイルは機能的には C++ のヘッダ・ファイルに相当しますが CORBA でのプログラミング言語に依存しません。IDL は各プログラミング言語にマップされて、その言語からオブジェクト・インターフェイスへのアクセスを可能にします。Java IDL を使用すれば、IDL のインターフェイスは idltojava コンパイラで Java に変換可能になります。各 IDL インターフェイスについて、idltojava コンパイラは Java インターフェイスおよび必要な .java ファイルを、クライアント・スタブおよびサーバ・スケルトンも含めて生成します。

IDL インターフェイスは、クライアントからアクセス可能なオペレーション、例外、および型付き属性 (値) のセットを宣言します。各オペレーションには、名前、パラメータ、結果、および例外を定義するシグニチャがあります。リスト0-1 に、BEA Tuxedo 製品に含まれている Simpapp サンプル・アプリケーションの Simple インターフェイスの IDL を示します。

コード リスト 0-1 Simpapp サンプル・アプリケーションの IDL インターフェイス

#pragma prefix "beasys.com"
interface Simple
{
//文字列を小文字に変換 (新しい文字列を返す)
string to_lower(in string val);
     //文字列を大文字に変換 (置換)
void to_upper(inout string val);
};
interface SimpleFactory
{
Simple find_simple();
};

 


Java IDL とは

Java IDL は、OMG IDL と特別に異なる種類のインターフェイス定義言語 (IDL) ではありません。同じ IDL を idltojava コンパイラでコンパイルすれば CORBA 互換の Java ファイルが生成され、C++ ベースのコンパイラを使用すれば CORBA 互換の C++ ファイルが生成されます。IDL に対して使用するコンパイラによって、相違点が生じます。OMG によって、IDL と C++ のマッピングだけでなく IDL と Java のマッピングも確立されています。特定のプログラミング言語ベースのコンパイラは、OMG CORBA によるプログラミング言語へのマッピングに基づいてコードを生成します。

BEA Tuxedo 製品では、独自の「ブランド」の Java IDL が用意されています。つまり、BEA Tuxedo 製品では、CORBA オブジェクトにアクセスする機能を備えた CORBA Java クライアントおよび CORBA Java 共同クライアント/サーバの構築に必要なすべてのコンポーネントが提供されています。BEA Tuxedo 製品の主要なコンポーネントについては、「CORBA オブジェクトへのアクセス」を参照してください。

 


CORBA オブジェクトへのアクセス

idltojava コンパイラを使用すると、2 種類のアプリケーションを構築できます。

CORBA Java クライアントおよび CORBA Java 共同クライアント/サーバは、インターネット ORB 間プロコトル (IIOP) を使用して、BEA Tuxedo 製品のアプリケーション・トランザクション・モニタ・インターフェイス (ATMI) と通信します。BEA 製品の ATMI 環境は、CORBA Java サーバ・オブジェクトのホスティングをサポートしていません。

注記 共同クライアント/サーバは、コールバック・オブジェクトとして利用される CORBA サーバ・オブジェクトをインプリメントするクライアントです。リモート共同クライアント/サーバのサーバ機能は、BEA Tuxedo CORBA サーバのサーバ機能よりも大幅にぜい弱です。共同クライアント/サーバの詳細については、『BEA Tuxedo CORBA サーバ間通信』を参照してください。

BEA Tuxedo 製品では、CORBA オブジェクトにアクセスする機能を備えた CORBA Java クライアントおよび CORBA Java 共同クライアント/サーバの構築に必要なすべてのコンポーネントが提供されています。主要なコンポーネントは、次のとおりです。

CORBA Java クライアントおよび CORBA Java 共同クライアント/サーバは、以下のものからオブジェクト・リファレンスを取得します。

オブジェクト・リファレンスを取得した後で、クライアントはオブジェクト・リファレンスを適切な型にナロー変換する必要があります。IDL は継承をサポートします。継承の階層のルートは、IDL では Object、Java では org.omg.CORBA.Object です。(org.omg.CORBA.Object は、java.lang.Object のサブクラスです)。一部のオペレーション、たとえば名前のルックアップや非文字列化では、org.omg.CORBA.Object が返されるので、idltojava コンパイラで生成されたヘルパ・クラスを利用して必要な派生型にナロー変換してください。Java ランタイムが CORBA オブジェクトの型を常に正確に認識できるとは限らないので、CORBA オブジェクトは明示的にナロー変換される必要があります。

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy