![]() |
![]() |
|
|
ActiveX クライアント・アプリケーションの作成
ここでは、次の内容について説明します。
ActiveX クライアント・アプリケーションを開発する前に理解しておく必要がある概念については、「ActiveX クライアント・アプリケーションの概念」を参照してください。
ActiveX クライアント・アプリケーションの開発プロセスの概要
ActiveX クライアント・アプリケーションの作成手順は次のとおりです。
このプロセスの各手順については、以降の節で詳しく説明します。
ActiveX クライアント・アプリケーションの BEA Tuxedo 開発環境には、以下のものが含まれます。
idl2ir
コマンド。OMG IDL に定義されているインターフェイス定義をインターフェイス・リポジトリにロードします。
BEA Application Builder
BEA Application Builder は、CORBA オブジェクトの ActiveX ビューを作成する開発ツールです。BEA Application Builder は、BEA ActiveX Client への主要なユーザ・インターフェイスです。Application Builder を使用すると、デスクトップ・アプリケーションで使用可能な CORBA オブジェクトを選択し、その CORBA オブジェクトの ActiveX ビューと、その ActiveX ビューをクライアント・マシンにデプロイするためのパッケージを作成できます。
ActiveX ビューを使用するには、CORBA オブジェクトのインターフェイスをインターフェイス・リポジトリにロードします。次に、CORBA インターフェイスの ActiveX バインディングを作成します。バインディングは、CORBA オブジェクトと ActiveX のインターフェイスを定義します。ActiveX クライアント・アプリケーションと生成されたバインディングの組み合わせにより、オブジェクトの ActiveX ビューが作成されます。
BEA Application Builder とその機能については、Application Builder のグラフィカル・ユーザ・インターフェイス (GUI) に統合されているオンライン・ヘルプを参照してください。
ステップ 1: オートメーション環境オブジェクトのインターフェイス・リポジトリへのロード
オートメーション環境オブジェクトをインターフェイス・リポジトリにロードして、ActiveX クライアント・アプリケーションがそれらのオブジェクトのインターフェイス定義を使用できるようにします。MS-DOS プロンプトで、次のコマンドを入力して OMG IDL ファイル (TOBJIN.idl
) をインターフェイス・リポジトリにロードします。
prompt> idl2ir -D _TOBJ -I
drive
:\tuxdir\includedrive
:\tuxdir\include\tobjin.idl
ステップ 2: CORBA インターフェイスのインターフェイス・リポジトリへのロード
CORBA オブジェクトの ActiveX ビューを作成する前に、CORBA オブジェクトのインターフェイスをインターフェイス・リポジトリにロードしておく必要があります。CORBA オブジェクトのインターフェイスがインターフェイス・リポジトリにロードされていない場合、BEA Application Builder の [Services] ウィンドウにそれらが表示されません。目的の CORBA インターフェイスが [Services] ウィンドウに表示されない場合は、 idl2ir
コマンドを使用して、CORBA を定義する OMG IDL をインターフェイス・リポジトリにロードします。idl2ir
コマンドの構文は次のとおりです。
idl2ir [
repositoryfile.idl] file.idl
idl2ir
コマンドの詳細については、『BEA Tuxedo コマンド・リファレンス』を参照してください。
「CORBA クライアント・アプリケーションの作成」には、すべての CORBA University サンプル・アプリケーションの開始点となるサンプル OMG IDL ファイルが示されています。この OMG IDL ファイルに基づいて、次の CORBA インターフェイスが BEA Application Builder ウィンドウに表示されます。
RegistrarFactory
Registrar
CourseSynopsisEnumerator
University サンプル・アプリケーションの詳細については、『BEA Tuxedo CORBA University サンプル・アプリケーション』を参照してください。
ステップ 3: インターフェイス・リポジトリのサーバ・アプリケーションの起動
ActiveX クライアント・アプリケーションは、実行時にインターフェイス・リポジトリから CORBA オブジェクトのインターフェイス定義を読み取り、それらをオートメーション・オブジェクトに変換します。このため、インターフェイス・リポジトリのサーバ・プロセスを起動して、インターフェイス定義を使用可能にする必要があります。インターフェイス・リポジトリのサーバ・プロセスを起動するには、UBBCONFIG
ファイルを使用します。
注記 システム管理者が既にこのステップを実行している場合もあります。
BEA Tuxedo ドメインの UBBCONFIG
ファイルで、インターフェイス・リポジトリのサーバ・アプリケーション、TMIFRSVR
が起動しているかどうかをチェックします。UBBCONFIG
ファイルには、以下のエントリが存在します。
TMIFRSVR
SRVGRP = SYS_GRP
SRVID = 6
RESTART = Y
MAXGEN = 5
GRACE = 3600
また、IIOP リスナ/ハンドラを起動する ISL
パラメータが指定されていることを確認します。UBBCONFIG
ファイルには、以下のエントリが存在します。
ISL
SRVGRP = SYS_GRP
SRVID = 5
CLOPT = "-A -- -n //TRIXIE:2500"
ここで、TRIXIE
はホスト (サーバ) システムの名前で、2500
はポート番号です。
サーバ・アプリケーションの起動と ISL
パラメータの指定については、『BEA Tuxedo アプリケーションの設定
ステップ 4: CORBA インターフェイスの ActiveX バインディングの作成
ActiveX クライアント・アプリケーションが CORBA オブジェクトにアクセスするには、CORBA オブジェクトのインターフェイスの ActiveX バインディングを生成する必要があります。CORBA インターフェイス用の ActiveX バインディングを作成するには、BEA Application Builder を使用します。
CORBA インターフェイス用の ActiveX バインディングを作成するには、次の手順に従います。
[Domain] の [Logon] ウィンドウが表示されます。
UBBCONFIG
ファイルの ISL
パラメータで指定したホ
スト名とポート番号を入力します。UBBCONFIG
ファイルで使用されている大
文字、小文字をそのまま入力する必要があります。
BEA Application Builder の [Logon] ウィンドウが表示されます。
BEA Application Builder は、以下の処理を行います。
tuxdir
\TypeLibraries に格納されます。
タイプ・ライブラリの名前は、DI
modulename_interfacename
.tlb
です。
これで、ActiveX クライアント・アプリケーションから ActiveX ビューを使用できます。
Application Builder の機能の詳細については、BEA Application Builder のグラフィカル・ユーザ・インターフェイス (GUI) に統合されているオンライン・ヘルプを参照してください。
ステップ 5: ActiveX バインディングのタイプ・ライブラリのロード
ActiveX クライアント・アプリケーションを記述する前に、CORBA インターフェイスの ActiveX バインディングが定義されているタイプ・ライブラリを開発ツールにロードしておく必要があります。タイプ・ライブラリをロードするには、使用する開発ツールの説明に従います。
たとえば Visual Basic の場合、使用可能なタイプ・ライブラリのリストを取得するには、[プロジェクト] メニューの [参照設定] オプションを選択します。次に、そのリストから目的のタイプ・ライブラリを選択します。
デフォルトでは、BEA Application Builder は生成されたすべてのタイプ・ライブラリを \tuxdir
\TypeLibraries
に格納します。CORBA インターフェイスの ActiveX バインディング用のタイプ・ライブラリは、次の形式を取ります。
DImodulename_interfacename.tlb
ステップ 6: ActiveX クライアント・アプリケーションの記述
ActiveX クライアント・アプリケーションは、以下の処理を行う必要があります。
以下の節では、Basic サンプル・アプリケーションの ActiveX クライアント・アプリケーションの一部を使用して、これらのステップについて説明します。Basic サンプル・アプリケーションについては、『BEA Tuxedo CORBA University サンプル・アプリケーション』を参照してください。Basic サンプル・アプリケーションは、BEA Tuxedo ソフトウェア・キットの次のディレクトリに格納されています。
drive:
\tuxdir
\samples
\corba
\university
\basic
オートメーション環境オブジェクト、ファクトリ、および CORBA オブジェクトの ActiveX ビューの宣言のインクルード
実行時のエラーを防ぐため、以下のオブジェクト型を宣言する必要があります。
次の例は、Bootstrap オブジェクトと FactoryFinder オブジェクト、Registrar オブジェクトの ActiveX ビュー用のファクトリ、および Registrar オブジェクトの ActiveX ビューを宣言する Visual Basic コードです。
\\Declare Bootstrap object\\
Public objBootstrap As DITobj_Bootstrap
\\Declare FactoryFinder object\\
Public objFactoryFinder As DITobj_FactoryFinder
\\Declare factory object for Registrar Object\\
Public objRegistrarFactory As DIUniversityB_RegistrarFactory
\\Declare the ActiveX view of the Registrar object\\
Public objRegistrar As DIUniversityB_Registrar
BEA Tuxedo ドメインとの通信の確立
ActiveX クライアント・アプリケーションを記述する場合、以下の 2 つのステップで BEA Tuxedo ドメインとの通信を確立します。
次の Visual Basic サンプルは、CreateObject
オペレーションを使用して Bootstrap オブジェクトを作成する方法を示したものです。
Set objBootstrap = CreateObject("Tobj.Bootstrap")
次に、Bootstrap オブジェクトを初期化します。Bootstrap オブジェクトを初期化する場合、次のように、対象の BEA Tuxedo ドメインの IIOP リスナ/ハンドラのホストとポートを指定します。
objBootstrap.Initialize "//
host:port
"
IIOP リスナ/ハンドラのホストとポートの組み合わせは、UBBCONFIG
ファイルの ISL
パラメータで定義されます。Bootstrap オブジェクトに対して指定するホストとポートの組み合わせは、この ISL
パラメータと完全に一致する必要があります。ホストとポートの組み合わせの形式のほかに、大文字、小文字も一致する必要があります。アドレスが一致しない場合、Bootstrap オブジェクトの呼び出しは失敗し、次のメッセージがログ・ファイルに記録されます。
Error: Unofficial connection from client at <tcp/ip address/<portnumber>
たとえば、UBBCONFIG
ファイルの ISL
パラメータでネットワーク・アドレスが //TRIXIE::3500
として指定されている場合、Bootstrap オブジェクトで //192.12.4.6.:3500
または //trixie:3500
と指定すると接続が失敗します。
BEA Tuxedo ドメインには、複数の IIOP リスナ/ハンドラが存在できます。複数の IIOP リスナ/ハンドラを使用して BEA Tuxedo ドメインにアクセスする場合、host:port
の組み合わせのリストを Bootstrap オブジェクトに提供します。Bootstrap オブジェクトは、BEA Tuxedo ドメインに接続するまでこのリストを参照します。また、IIOP リスナ/ヘッダのリストは、TOBJADDR
環境変数に指定することもできます。
複数の BEA Tuxedo ドメインにアクセスする場合、アクセスする BEA Tuxedo ドメインごとに Bootstrap オブジェクトを作成する必要があります。
FactoryFinder オブジェクトへの初期リファレンスの取得
ActiveX クライアント・アプリケーションは、自身にサービスを提供するオブジェクトへの初期リファレンスを取得する必要があります。Bootstrap オブジェクトを使用すると、FactoryFinder オブジェクト、SecurityCurrent オブジェクト、TransactionCurrent オブジェクト、NotificationService オブジェクト、Tobj_SimpleEventsService オブジェクト、および NameService オブジェクトへのリファレンスを取得できます。このオペレーションに受け渡す引数は、目的のオブジェクトの progid
を含む文字列です。ActiveX クライアント・アプリケーションで使用するオブジェクトの初期リファレンスだけを取得する必要があります。
次の Visual Basic サンプルは、Bootstrap オブジェクトを使用して FactoryFinder オブジェクトへのリファレンスを取得する方法を示したものです。
Set objFactoryFinder = objBootstrap.CreateObject("Tobj.FactoryFinder")
ファクトリを使用した ActiveX ビューの取得
ActiveX クライアント・アプリケーションは、CORBA オブジェクトの ActiveX ビューへのインターフェイス・ポインタをファクトリから取得します。ファクトリは、別の CORBA オブジェクトへのオブジェクト・リファレンスを返す任意の CORBA オブジェクトです。ActiveX クライアント・アプリケーションは、ファクトリのオペレーションを呼び出して特定のタイプの CORBA オブジェクトへのオブジェクト・リファレンスを取得します。ファクトリを使用するには、ActiveX クライアント・アプリケーションは必要なファクトリを検索できなければなりません。FactoryFinder オブジェクトは、そのために役立ちます。FactoryFinder オブジェクトの機能の登録については、「ファクトリと FactoryFinder オブジェクト」を参照してください。
CreateObject
関数を使用して FactoryFinder オブジェクトを作成し、次に FactoryFinder オブジェクトのメソッドの 1 つを使用してファクトリを検索します。FactoryFinder オブジェクトには以下のメソッドがあります。
find_factories()
入力キーに完全に一致するファクトリのシーケンスを返します。
find_one_factory()
入力キーに一致する 1 つのファクトリを返します。
find_factories_by_id()
名前コンポーネントの ID フィールドが入力引数に一致するファクトリのシーケンスを返します。
find_one_factory_by_id()
ファクトリの CORBA 名前コンポーネントの ID フィールドが入力引数に一致する 1 つのファクトリを返します。
次の Visual Basic のサンプルでは、FactoryFinder find_one_factory_by_id()
メソッドを使用して、Basic サンプル・アプリケーションのクライアント・アプリケーションで使用される Registrar オブジェクトのファクトリを取得する方法を示します。
Set objRegistrarFactory = objBsFactoryFinder.find_one_factory_by_id
("RegistrarFactory")
Set objRegistrar = RegistrarFactory.find_registrar
ActiveX ビューのオペレーションの呼び出し
ActiveX ビューのオペレーションを呼び出すには、ファクトリへのポインタとオペレーションで必要な引数を受け渡します。
次の Visual Basic のサンプルは、ActiveX ビューのオペレーションを呼び出す方法を示したものです。
'Get course details from the Registrar object'
aryCourseDetails = objRegistrar.get_course_details(aryCourseNumbers)
ステップ 7: ActiveX クライアント・アプリケーションのデプロイ
ActiveX クライアント・アプリケーションをほかのクライアント・マシンに配布するには、デプロイメント・パッケージを作成する必要があります。デプロイメント・パッケージには、クライアント・アプリケーションが CORBA オブジェクトの ActiveX ビューを使用するために必要なすべてのデータ (バインディング、タイプ・ライブラリ、登録情報など) が含まれています。デプロイメント・パッケージは自動登録を行う ActiveX コントロールで、ファイル拡張子は.ocx
です。
ActiveX ビューのデプロイメント・パッケージを作成するには、次の手順に従います。
確認ウィンドウが表示されます。
デフォルトでは、デプロイメント・パッケージは \tuxdir
\Packages
に格納されます。
![]() |
![]() |
![]() |
|
Copyright © 2001, BEA Systems, Inc. All rights reserved.
|