Solaris 8 のソフトウェア開発 (追補)

企業レベルでの相互運用性

Java IDL および RMI-IIOP

J2SE 1.3.0 には、CORBA 技術をサポートする重要な拡張機能が 2 つ追加されています。Java 言語で書かれた運用 CORBA IDL コンパイラとRMI over IIOP (RMI-IIOP) APIです。CORBA Interface Definition Language (IDL) は、分散システム用のインタフェースだけを定義する言語です。CORBA はインタフェースの定義に中立的な言語を使用しているため、複数の言語をサポートすることができます。標準 Java 言語バインドに言語的に中立的な CORBA IDL をコンパイルする IDL コンパイラが Java 2 SDK Standard Edition に組み込まれたのは、これが初めてです。これらの言語バインドは Java IDL Object Request Broker (ORB) と連携して、Java プログラミング言語で従来の CORBA プログラミングをサポートします。

Java プラットフォームのバージョン 1.1 から、Remote Method Interface (RMI) のおかげで、プログラマは分散環境のインタフェースを直接 Java 言語で書くことができるようになりましたが、RMI は独自の通信プロトコルを使用していたため、プログラマは RMI を使用するときに、他の言語で書かれたオブジェクトとの通信能力を断念しなければなりませんでした。RMI-IIOP では Java IDL ORB が使用されているため、標準の CORBA 通信プロトコルである Internet InterORB Protocol (IIOP) を RMI と一緒に使用することができます。すべての通信に IIOP が使用されているため、C++ などの他言語で書かれたオブジェクトも、RMI-IIOP 分散オブジェクトと通信できます。さらに RMI は、Java プログラミング言語のインタフェースを CORBA IDL へマップ (対応付け) するときの CORBA 標準として認められました。他の言語でのプログラミングをやりやすくするため、CORBA 標準 IDL は RMI が有効なクラスから生成することができます。既存の RMI プログラムは、通常はわずかな変更で、IIOP プロトコルを使用するように変換できます。

RMI-IIOP では RMI のプログラミングのしやすさに加えて、他言語で書かれたソフトウェアと JavaIDL の CORBA 準拠の通信が可能です。RMI プログラマは多少の制限事項に従えば、CORBA の IIOP 通信機能を使用して、あらゆる種類のクライアントとでも通信できるようになりました。クライアントが全体を Java プログラミング言語で書いたものでも、他の CORBA に準拠している言語で書かれたコンポーネントで構成されたものでも、通信が可能です。

Java Naming and Directory Interface (JNDI) API

J2SE 1.3.0 の新しい Java Naming and Directory Interface (JNDI) API を使用すると、開発者は Java プログラミング言語で書かれたアプリケーションに、ネーミング機能およびディレクトリ機能が追加できます。JNDI の開発目的は、特定のネーミングサービスやディレクトリサービスの実装に依存することなく、異種混在の企業のネーミングサービスおよびディレクトリサービスにシームレスに接続することです。したがって、新規のサービス、拡大中のサービス、すでに展開済みのサービスなど、さまざまなサービスに一貫した方法でアクセスできます。この業界標準のインタフェースを使用すれば、開発者は J2SE 1.3.0 で強力かつ移植性がある、ディレクトリが使用可能なアプリケーションの構築が可能になります。

JNDI アーキテクチャは、API と Service Provider Interface (SPI) で構成されています。Java アプリケーションはこの API を使用して、さまざまなネーミングサービスやディレクトリサービスにアクセスします。SPI では、さまざまなネーミングサービスやディレクトリサービスを透過的にプラグインできるため、Java アプリケーションがサービスにアクセスできるようになります。J2SE 1.3.0 のリリースの JNDI には、次のサービスにアクセスできる、サービスプロバイダが同梱されています。