![]() |
![]() |
![]() |
![]() |
![]() |
一般に、使用可能なインタフェースと操作用のOMG IDLファイルは、アプリケーション設計者からクライアント・プログラマに提供されます。この項では、Basicサンプル・アプリケーション用のOMG IDLを示します。リスト2-1に、次のインタフェースを定義するunivb.idlファイルを示します。
静的起動と動的起動の概要は、「静的起動と動的起動」を参照してください。以後、このトピックでは、CORBAクライアント・アプリケーションで静的起動を使用することを選択したものとして説明を進めます。動的起動を使用することを選択した場合は、「動的起動インタフェースの使い方」を参照してください。CORBA C++クライアント・アプリケーションを作成する場合は、idlコマンドを使用してOMG IDLファイルをコンパイルし、インタフェースに必要なファイルを生成します。次に、idlコマンドの構文を示します。idl idlfilename(s)IDLコンパイラは、クライアント・スタブ(idlfilename_c.cpp)と、C++プログラミング言語からクライアント・スタブを使用するために必要なすべてを記述したヘッダー・ファイル(idlfilename_c.h)を生成します。これらのファイルは、CORBAクライアント・アプリケーションにリンクする必要があります。さらに、IDLコンパイラはCORBAオブジェクトの操作のシグネチャを含んだスケルトンを生成します。生成されるスケルトン情報は、idlfilename_s.cppファイルとidlfilename_s.hファイルに格納されます。CORBAクライアント・アプリケーションの開発中、この情報はサーバー・ヘッダー・ファイルとスケルトン・ファイルを参照するのに役立ちます。
• JDKバージョン1.2を使用する場合は、idltojavaコマンドを使用してOMG IDLファイルをコンパイルできます。idltojavaコマンドの詳細は、JDKバージョン1.2のドキュメントを参照してください。
•
• Javaプログラミング言語からクライアント・スタブを使用するために必要なすべてを記述したCORBAヘルパー・クラス(interfaceHelper.java)とCORBAホルダー・クラス(interfaceHolder.java)。OMG IDLで定義された各例外は、例外クラスとそのヘルパー・クラスおよびホルダー・クラスを定義することに注意してください。コンパイルされた.classファイルは、CORBAクライアント・アプリケーションのCLASSPATHに存在する必要があります。また、idltojavaコマンドまたはIDLコンパイラはCORBAオブジェクトの操作のシグネチャを含んだスケルトンを生成します。生成されたスケルトン情報は、_interfaceImplBaseファイルに格納されます。以降の項では、Basicサンプル・アプリケーションのクライアント・アプリケーションの一部を使用して、これらのステップについて説明します。Basicサンプル・アプリケーションの詳細は、『CORBA Universityサンプル・アプリケーション・ガイド』を参照してください。Basicサンプル・アプリケーションは、Oracle Tuxedoソフトウェア・キットの次のディレクトリに格納されています。drive:\tuxdir\samples\corba\university\basic一般に、ORBidは指定されず、インストール時に指定されたデフォルトのORBidが使用されます。ただし、CORBAクライアント・アプリケーションが実行されているマシンでCORBAサーバー・アプリケーションも実行されており、CORBAクライアント・アプリケーションが別のOracle Tuxedoドメインのサーバー・アプリケーションにアクセスする場合は、デフォルトORBidをオーバーライドする必要があります。そのためにはORBidをBEA_IIOPとしてハードコードするか、コマンド行でORBidを_ORBid BEA_IIOPとして渡します。CORBAクライアント・アプリケーションは、Bootstrapオブジェクトを作成します。IIOPリスナー/ハンドラのリストは、パラメータとして提供されるか、TOBJADDR Javaプロパティまたはアプレット・プロパティを介して提供されます。1つのIIOPリスナー/ハンドラは、次のように指定されます。IIOPリスナー/ハンドラがTOBJADDRを介して提供される場合、コンストラクタの2番目の引数はnullにできます。IIOPリスナー/ハンドラのホストとポートの組合せは、UBBCONFIGファイルに定義されます。Bootstrapオブジェクトに対して指定されるホストとポートの組合せは、Oracle TuxedoドメインのUBBCONFIGファイルのISLパラメータと完全に一致する必要があります。ホストとポートの組合せの形式の他に、大文字、小文字も一致する必要があります。アドレスが一致しない場合、Bootstrapオブジェクトの呼出しは失敗し、次のメッセージがログ・ファイルに記録されます。たとえば、UBBCONFIGファイルのISLパラメータでネットワーク・アドレスが//TRIXIE::3500として指定されている場合、Bootstrapオブジェクトで//192.12.4.6.:3500または//trixie:3500と指定すると接続が失敗します。UNIXシステムで大文字/小文字の区別を調べるには、ホスト・システムでuname -nコマンドを使用します。Window 2000で大文字、小文字の区別を調べるには、「ネットワーク」コントロール・パネルを使用します。Tobj_Bootstrap* bootstrap = new Tobj_Bootstrap(orb, “//host:port”);ここでthisはJavaアプレットの名前です1つのOracle Tuxedoドメインに、複数のIIOPリスナー/ハンドラを含めることができます。複数のIIOPリスナー/ハンドラのあるOracle Tuxedoドメインにアクセスする場合は、Host:Portの組合せのリストをBootstrapオブジェクトに提供します。Bootstrapコマンドの2番目のパラメータが空の文字列の場合、BootstrapオブジェクトはOracle Tuxedoドメインに接続するまでこのリストを参照します。また、IIOPリスナー/ハンドラのリストは、TOBJADDRで指定することもできます。
注意: サード・パーティ・クライアントORBでは、CORBA Interoperable Naming Service (INS)メカニズムを使用して、Oracle Tuxedoドメインおよびそのサービスへのアクセスを取得することもできます。CORBA INSを使用すると、サード・パーティ・クライアントORBは、自身のresolve_initial_references()関数を使用してOracle Tuxedoドメインによって提供されるCORBAサービスにアクセスし、標準OMG IDLから生成されたスタブを使用してドメインから返されたインスタンスを処理できます。Interoperable Naming Serviceの詳細な使用方法は、『CORBAプログラミング・リファレンス』を参照してください。CORBAクライアント・アプリケーションは、CORBAアプリケーションのサービスを提供する環境オブジェクトへの初期参照を取得する必要があります。Bootstrapオブジェクトのresolve_initial_references操作を呼び出すと、FactoryFinder、InterfaceRepository、SecurityCurrent、TransactionCurrent、NotificationService、Tobj_SimpleEventsServiceおよびNameService環境オブジェクトの参照を取得できます。この操作に渡される引数は、目的のオブジェクト参照の名前を含む文字列です。CORBAクライアント・アプリケーションで使用する環境オブジェクトについてのみ初期参照を取得する必要があります。CORBAクライアント・アプリケーションは、CORBAオブジェクトのオブジェクト参照をファクトリから取得します。ファクトリは、別のCORBAオブジェクトのオブジェクト参照を返し、自身をファクトリとして登録する任意のCORBAオブジェクトです。CORBAクライアント・アプリケーションは、ファクトリの操作を呼び出して特定のタイプのCORBAオブジェクトへのオブジェクト参照を取得します。ファクトリを使用するには、CORBAクライアント・アプリケーションで必要なファクトリを見つけることができる必要があります。FactoryFinderオブジェクトは、そのために役立ちます。FactoryFinderオブジェクトの機能の詳細は、「CORBAクライアント・アプリケーションの開発概念」を参照してください。次のC++とJavaの例では、FactoryFinder find_one_factory_by_idメソッドを使用して、Basicサンプル・アプリケーションのCORBAクライアント・アプリケーションで使用されるRegistrarオブジェクトのファクトリを取得する方法を示します。次のC++とJavaの例では、Registrarオブジェクトのファクトリを取得して、そのオブジェクトのget_courses_details()メソッドを呼び出す方法を示します。CORBA C++クライアント・アプリケーションを作成する場合、buildobjclientコマンドを使用してCORBAクライアント・アプリケーションの実行可能ファイルを生成します。このコマンドは、静的起動を使用するインタフェースのクライアント・スタブ、関連付けられるヘッダー・ファイル、および標準のOracle Tuxedoライブラリを組み合せてクライアント実行可能ファイルを生成します。buildobjclientコマンドの構文については、『Oracle Tuxedoコマンド・リファレンス』を参照してください
注意: CORBAクライアント・アプリケーションの実行可能ファイルを生成するには、buildobjclientコマンドを使用する必要があります。CORBAクライアント・アプリケーションとして動作するには、CORBAサーバー・アプリケーションが現在のOracle TuxedoドメインのBootstrapオブジェクトを取得する必要があります。CORBAサーバー・アプリケーションのBootstrapオブジェクトは、TP::Bootstrap (CORBA C++クライアント・アプリケーションの場合)を介してすでに使用可能になっています。CORBAサーバー・アプリケーションは、FactoryFinderオブジェクトを使用して、CORBAクライアント・アプリケーションのリクエストを満たすCORBAオブジェクトのファクトリを検索します。Java Plug-Inがインストールされていない場合は、JDK1.2 Plug-in (jre12-win32.exe)とHTML Converterツール(htmlconv12.zip)をダウンロードおよびインストールする必要があります。どちらの製品も、java.sun.com/products/pluginから入手できます。また、java.sun.com/products/plugin/1.2/docsにある『Java Plug-In HTML Specification』を読む必要があります。この仕様には、Webページ作成者がブラウザのデフォルトJavaランタイム環境ではなくJava Plug-inを使用して既存のJDK 1.2アプレットを実行するために必要な、既存のHTMLコードの変更内容が説明されています。Internet ExplorerまたはNetscape NavigatorがアプレットのHTMLページを参照しているときにJava Plug-Inが自動的に起動するようにするには、HTML仕様のOBJECTタグとEMBEDタグを使用します。HTML Converterツールを使用してアプレットをHTMLに変換した場合、これらのタグは自動的に挿入されます。OBJECTタグとEMBEDタグの詳細な使用方法は、java.sun.com/products/plugin/1.2/docs/tags.htmlを参照してください。