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

Tuxedo CORBA ActiveX

 Previous Next Contents Index View as PDF  

ActiveX クライアント・アプリケーションの作成

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

ActiveX クライアント・アプリケーションを開発する前に理解しておく必要がある概念については、概要を参照してください。

 


ActiveX クライアント・アプリケーションの開発プロセスの概要

ActiveX クライアント・アプリケーションの作成手順は次のとおりです。

手順

説明

1

オートメーション環境オブジェクトをインターフェイス・リポジトリにロードします。

2

ActiveX クライアント・アプリケーションからアクセスする CORBA インターフェイスがインターフェイス・リポジトリにロードされていることを確認します。必要に応じて、CORBA インターフェイス用の Object Management Group (OMG) インターフェイス定義言語 (IDL) をインターフェイス・リポジトリにロードします。

3

インターフェイス・リポジトリに対してサーバ・アプリケーションのプロセスを開始します。

4

BEA Application Builder を使用して、CORBA オブジェクトのインターフェイス用に ActiveX バインディングを作成します。

5

ActiveX バインディング用のタイプ・ライブラリを開発ツールにロードします。

6

ActiveX クライアント・アプリケーションを記述します。ここでは、基本的なクライアント・アプリケーションの作成方法を説明します。ActiveX クライアント・アプリケーションでセキュリティおよびトランザクションをインプリメントすることもできます。

7

ActiveX クライアント・アプリケーションのデプロイメント・パッケージを作成します。


 

このプロセスの各手順については、以降の節で詳しく説明します。

ActiveX クライアント・アプリケーションの BEA Tuxedo 開発環境には、以下のものが含まれます。

 


BEA Application Builder

Application Builder は、CORBA オブジェクトの ActiveX ビューを作成する開発ツールです。Application Builder は、BEA ActiveX Client への主要なユーザ・インターフェイスです。Application Builder を使用すると、デスクトップ・アプリケーションで使用可能な CORBA オブジェクトを選択し、その CORBA オブジェクトの ActiveX ビューと、その ActiveX ビューをクライアント・マシンに導入するためのパッケージを作成できます。

ActiveX ビューを使用するには、CORBA オブジェクトのインターフェイスをインターフェイス・リポジトリにロードします。次に、CORBA インターフェイスの ActiveX バインディングを作成します。バインディングは、CORBA オブジェクトと ActiveX のインターフェイスを定義します。ActiveX クライアント・アプリケーションと生成されたバインディングの組み合わせにより、オブジェクトの ActiveX ビューが作成されます。

Application Builder の起動方法については、タスクの「Application Builder の起動」を参照してください。

図2-1 で示すように、Application Builder のメイン・ウィンドウは、[Services] ウィンドウと [Workstation Views] ウィンドウの 2 つに分かれています。

図 2-1 Application Builder メイン・ウィンドウ


 

[Services] ウィンドウは、ローカル BEA Tuxedo ドメイン (BEA Tuxedo ソフトウェア・キットの一部としてインストールされている BEA Application Builder ソフトウェアの M3 ドメイン) でインターフェイス・リポジトリに含まれている CORBA モジュール、インターフェイス、およびオペレーションをすべて表示します。インターフェイス・リポジトリのすべてのインターフェイスに対してバインディングを作成できます。

[Services] ウィンドウの上部には、BEA Tuxedo ドメインで使用可能な各オブジェクト・システム用のエントリがあります。ActiveX Client は、BEA Tuxedo オブジェクト・システムのみをサポートします。オブジェクトは、インターフェイス・リポジトリで使用する同じ階層の形式で (つまり、モジュール、インターフェイス、オペレーション、およびオペレーションに含まれているパラメータとして) 表示されます。[+] 記号は、そのオブジェクトを展開すると他のオブジェクトが表示されることを示します。

[Workstation Views] ウィンドウは、CORBA インターフェイス用に作成されているすべての ActiveX バインディングを表します。CORBA インターフェイスに対するバインディングを作成するには、[Services] ウィンドウのエントリを [Workstation Views] ウィンドウにドラッグします。

Application Builder メイン・ウィンドウの詳細については、Application Builder メイン・ウィンドウを参照してください。

以下の手順は、BEA Tuxedo に付属の University サンプル・アプリケーションを用いたものです。サンプル・アプリケーションの詳細については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo CORBA University サンプル・アプリケーション』を参照してください。

 


ステップ 1: オートメーション環境オブジェクトのインターフェイス・リポジトリへのロード

オートメーション環境オブジェクトをインターフェイス・リポジトリにロードして、ActiveX クライアント・アプリケーションがそれらのオブジェクトのインターフェイス定義を使用できるようにします。MS-DOS プロンプトで、次のコマンドを入力して OMG IDL ファイル (TOBJIN.idl) をインターフェイス・リポジトリにロードします。

prompt> idl2ir -D _TOBJ -I drive:¥tuxdir¥include drive:¥tuxdir¥include¥tobjin.idl

 


ステップ 2: CORBA インターフェイスのインターフェイス・リポジトリへのロード

CORBA オブジェクトの ActiveX ビューを作成する前に、CORBA オブジェクトのインターフェイスをインターフェイス・リポジトリにロードしておく必要があります。CORBA オブジェクトのインターフェイスがインターフェイス・リポジトリにロードされていない場合、Application Builder の [Services] ウィンドウにそれらが表示されません。目的の CORBA インターフェイスが [Services] ウィンドウに表示されない場合は、 idl2ir コマンドを使用して、CORBA を定義する OMG IDL をインターフェイス・リポジトリにロードします。idl2ir コマンドの構文は次のとおりです。

idl2ir [repositoryfile.idl] file.idl

オプション

説明

repositoryfile

CORBA インターフェイスの OMG IDL ファイルを指定されたインターフェイス・リポジトリにロードします。ActiveX クライアント・アプリケーションがアクセスする BEA Tuxedo ドメインのインターフェイス・リポジトリの名前を指定します。

file.idl

CORBA インターフェイスの定義が記述されている OMG IDL ファイルを指定します。


 

idl2ir コマンドの詳細については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo コマンド・リファレンス』 を参照してください。

たとえば、University サンプル・アプリケーションの OMG IDL ファイルがインターフェイス・リポジトリにロードされている場合、以下の CORBA インターフェイスが Application Builder ウィンドウに表示されます。

 


ステップ 3: インターフェイス・リポジトリ・サーバ・アプリケーションの起動

ActiveX クライアント・アプリケーションは、実行時にインターフェイス・リポジトリから CORBA オブジェクトのインターフェイス定義を読み取り、それらをオートメーション・オブジェクトに変換します。このため、インターフェイス・リポジトリのサーバ・アプリケーションを起動して、インターフェイス定義を使用可能にする必要があります。UBBCONFIG ファイルを使用すると、インターフェイス・リポジトリに対してサーバ・アプリケーションのプロセスを開始できます。

注記 システム管理者が既にこのステップを実行している場合もあります。

BEA Tuxedo ドメインの UBBCONFIG ファイルで、インターフェイス・リポジトリのサーバ・アプリケーション、TMIFRSVR が起動しているかどうかをチェックします。UBBCONFIG ファイルには、以下のエントリが存在します。

TMIFRSVR
SRVGRP = SYS_GRP
SRVID = 6
RESTART = Y
MAXGEN = 5
GRACE = 3600

さらに、ISL/ISH を開始する ISL パラメータが指定されていることを確認します。UBBCONFIG ファイルには、以下のエントリが存在します。

ISL
SRVGRP = SYS_GRP
SRVID = 5
CLOPT = "-A -- -n //TRIXIE:2500"

ここで、TRIXIE はホスト (サーバ) システムの名前で、2500 はポート番号です。

サーバ・アプリケーションの起動、および ISL パラメータの指定の詳細については、BEA Tuxedo オンライン・マニュアルの 『BEA Tuxedo アプリケーションの設定』 を参照してください。

 


ステップ 4: CORBA インターフェイスの ActiveX バインディングの作成

ActiveX クライアント・アプリケーションが CORBA オブジェクトにアクセスするには、CORBA オブジェクトのインターフェイスの ActiveX バインディングを生成する必要があります。CORBA インターフェイス用の ActiveX バインディングを作成するには、Application Builder を使用します。

CORBA インターフェイス用の ActiveX バインディングを作成するには、次の手順に従います。

  1. [BEA Tuxedo (C++)] プログラム・グループの [BEA Application Builder] アイコンをクリックします。

    [Domain] ログオン・ウィンドウが表示されます。

  2. ログオン・ウィンドウで、UBBCONFIG ファイルの ISL パラメータで指定したホスト名とポート番号を入力します。ホスト名とポート番号は、UBBCONFIG ファイルで大文字で指定した内容と正確に一致するように入力します。

    Application Builder のログオン・ウィンドウが表示されます。

  3. 対象の CORBA インターフェイスを [Services] ウィンドウで選択して [Workstation Views] ウィンドウにドラッグするか、またはその CORBA インターフェイスを [Services] ウィンドウから切り取って [Workstation Views] ウィンドウに貼り付けます。

    Application Builder は、以下の処理を行います。

これで、ActiveX クライアント・アプリケーションから ActiveX ビューを使用できます。

 


ステップ 5: ActiveX バインディングのタイプ・ライブラリのロード

ActiveX クライアント・アプリケーションを記述する前に、CORBA インターフェイスの ActiveX バインディングが定義されているタイプ・ライブラリを開発ツールにロードしておく必要があります。タイプ・ライブラリをロードするには、使用する開発ツールの説明に従います。

たとえば Visual Basic の場合、使用可能なタイプ・ライブラリのリストを取得するには、[プロジェクト] メニューの [参照設定] オプションを選択します。次に、そのリストから目的のタイプ・ライブラリを選択します。

デフォルトでは、Application Builder は生成されたすべてのタイプ・ライブラリを ¥tuxdir¥TypeLibraries に格納します。CORBA インターフェイスの ActiveX バインディング用のタイプ・ライブラリは、次の形式を取ります。

DImodulename_interfacename.tlb

 


ステップ 6: ActiveX クライアント・アプリケーションの記述

ActiveX クライアント・アプリケーションは、以下の処理を行う必要があります。

  1. オートメーション環境オブジェクト、ActiveX ビューのファクトリ、および ActiveX ビューの宣言のインクルード

  2. BEA Tuxedo ドメインとの通信の確立

  3. Bootstrap オブジェクトの使用による FactoryFinder オブジェクトへのリファレンスの取得

  4. ファクトリの使用による ActiveX ビューへのオブジェクト・リファレンスの取得

  5. ActiveX ビューのオペレーションの呼び出し

  6. コールバックに対するオートメーション・サーバの作成

  7. ActiveX クライアント・アプリケーションのデプロイ

以下の節では、Basic University サンプル・アプリケーションの ActiveX クライアント・アプリケーションの一部を使用して、これらのステップについて説明します。

オートメーション環境オブジェクト、ファクトリ、および CORBA オブジェクトの ActiveX ビューの宣言のインクルード

実行時のエラーを防ぐため、以下のオブジェクト型を宣言する必要があります。

次の例は、Bootstrap オブジェクトと FactoryFinder オブジェクト、Registrar オブジェクトの ActiveX ビュー用のファクトリ、および Registrar オブジェクトの ActiveX ビューを宣言する Visual Basic コードです。

¥¥Bootstrap オブジェクトの宣言¥¥
Public objBootstrap As DITobj_Bootstrap
¥¥FactoryFinder オブジェクトの宣言¥¥
Public objFactoryFinder As DITobj_FactoryFinder
¥¥Registrar オブジェクトのファクトリ・オブジェクトの宣言¥¥
Public objRegistrarFactory As DIUniversityB_RegistrarFactory
¥¥Registrar オブジェクトの ActiveX ビューの宣言¥¥
Public objRegistrar As DIUniversityB_Registrar

BEA Tuxedo ドメインとの通信の確立

ActiveX クライアント・アプリケーションを記述する場合、以下の 2 つのステップで BEA Tuxedo ドメインとの通信を確立します。

  1. Bootstrap オブジェクトを作成します。

  2. Bootstrap オブジェクトを初期化します。

次の Visual Basic サンプルは、CreateObject オペレーションを使用して Bootstrap オブジェクトを作成する方法を示したものです。

Set objBootstrap = CreateObject(“Tobj.Bootstrap”)

次に、Bootstrap オブジェクトを初期化します。Bootstrap オブジェクトを初期化する場合、次のように、対象の BEA Tuxedo ドメインの ISL/ISH のホストとポートを指定します。

objBootstrap.Initialize “//host:port

ISL/ISH のホストとポートの組み合わせは、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 ドメインは、複数の ISL/ISH を持つことができます。複数の ISL/ISH を使用して BEA Tuxedo ドメインにアクセスする場合、host:port の組み合わせのリストを Bootstrap オブジェクトに提供します。Bootstrap オブジェクトは、BEA Tuxedo ドメインに接続するまでこのリストを参照します。また、ISL/ISH のリストは、TOBJADDR 環境変数に指定することもできます。

複数の BEA Tuxedo ドメインにアクセスする場合、アクセスする BEA Tuxedo ドメインごとに Bootstrap オブジェクトを作成する必要があります。

FactoryFinder オブジェクトへの初期リファレンスの取得

クライアント・アプリケーションは、自身にサービスを提供するオブジェクトへの初期リファレンスを取得する必要があります。Bootstrap オブジェクトは、FactoryFinder オブジェクト、SecurityCurrent オブジェクト、および TransactionCurrent オブジェクトへのリファレンスを取得するのに使用します。このオペレーションに受け渡す引数は、目的のオブジェクトの progid を含む文字列です。ActiveX クライアント・アプリケーションで使用するオブジェクトの初期リファレンスだけを取得する必要があります。

次の Visual Basic サンプルは、Bootstrap オブジェクトを使用して FactoryFinder オブジェクトへのリファレンスを取得する方法を示したものです。

Set objFactoryFinder = objBootstrap.CreateObject(“Tobj.FactoryFinder”)

ファクトリを使用した ActiveX ビューの取得

ActiveX クライアント・アプリケーションは、CORBA オブジェクトの ActiveX ビューへのインターフェイス・ポインタをファクトリから取得します。ファクトリは、別の CORBA オブジェクトへのオブジェクト・リファレンスを返す任意の CORBA オブジェクトです。ActiveX クライアント・アプリケーションは、ファクトリのオペレーションを呼び出して特定のタイプの CORBA オブジェクトへのオブジェクト・リファレンスを取得します。ファクトリを使用するには、ActiveX クライアント・アプリケーションは必要なファクトリを検索できなければなりません。FactoryFinder オブジェクトは、そのために役立ちます。

CreateObject 関数を使用して FactoryFinder オブジェクトを作成し、次に FactoryFinder オブジェクトのメソッドの 1 つを使用してファクトリを検索します。FactoryFinder オブジェクトには以下のメソッドがあります。

次の Visual Basic 例は、BEA Tuxedo University サンプル・アプリケーションで FactoryFinderfind_one_factory_by_id() メソッドを使用して、クライアント・アプリケーションで使用する 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)

コールバックに対するオートメーション・サーバの作成

一部のアプリケーション開発シナリオでは、ActiveX クライアント・アプリケーションが CORBA サーバ・アプリケーションからの要求に応答できるようにすることが望ましい場合があります。CORBA サーバからのコールバックの原理には、一部のイベントが発生したときにクライアント・アプリケーションに通知すること、セキュリティを検証すること、クライアントからの追加情報を取得することなどがあります。たとえば、株価をトラッキングするクライアント・アプリケーションは、指定した株価が変動したときに通知するよう CORBA サーバに要求できます。クライアントは、通知オブジェクト・リファレンスを CORBA サーバに渡してこれを実行します。サーバは、このリファレンスを基に、株価が変動したときにクライアントに通知するためにコールバックします。次に説明する、COM サーバとして機能する ActiveX クライアント・アプリケーションの開発手順は、Visual Basic で ActiveX クライアントを開発することを前提にしています。

CORBA アプリケーションに関連して COM サーバとして機能する ActiveX アプリケーションを開発するには、上記の 6 つの手順を実行します。そのうえで、Visual Basic で適切な Visual Basic クラスを作成し、CORBA インターフェイスに対する COM サーバ機能をインプリメントします。

この方法には、Visual Basic の [プロジェクト] メニューの [クラス モジュールの追加] オプションを選択して開始することなどがあります。Application Builder で作成したタイプ・ライブラリに表示された CORBA インターフェイスのオートメーション・ビューを指定するクラスに Implements 句を追加します (「ステップ 4: CORBA インターフェイスの ActiveX バインディングの作成」を参照)。たとえば、次のように入力します。

Implements ChatClient_Listener

この例は、BEA Tuxedo に付属のチャットルーム Visual Basic クライアントのサンプルから抜粋したものです。チャットルーム・サンプルは、デフォルトでは次の場所にあります。

tuxdir¥samples¥corba¥chatroom

この例では、ChatClient_Listener はインターフェイス名です。次に、プライベートな Visual Basic サブルーチンを記述し、インターフェイスに含まれる各メソッドをインプリメントします。たとえば、次のように入力します。

Private Sub ChatClient_Listener_post(ByVal from As String, 
ByVal output_line As String, Optional exceptionInfo As Variant)
MsgBox “User “ + from + “: “ + output_line
End Sub

COM オブジェクトのインスタンスの作成

COM オブジェクトをインプリメントしたので、ActiveX クライアント・アプリケーションでそのインスタンスを作成し、CORBA サービスに渡すことができます。通常の COM オブジェクトのインスタンスを作成するのと同じ方法で、これらの COM オブジェクトのインスタンスを作成します。たとえば、次のように入力します。

Dim aListener as ChatClient_Listener
Set aListener = New MyListener

New を呼び出すと、インスタンスが作成されます。上の例では、ChatClient_Listener はインターフェイス名、MyListener は、インプリメント用に作成したクラス名です。インスタンスを作成したら、CORBA メソッドへのパラメータとして指定できます。たとえば、次のように入力します。

aModerator.signon “Hansel”, aListener

ここでは、aModerator は CORBA オブジェクト、aListener は、CORBA オブジェクトが必要に応じてコールバックする COM オブジェクトです。

 


ステップ 7: ActiveX クライアント・アプリケーションのデプロイ

ActiveX クライアント・アプリケーションをほかのクライアント・マシンに配布するには、デプロイメント・パッケージを作成する必要があります。デプロイメント・パッケージには、クライアント・アプリケーションが CORBA オブジェクトの ActiveX ビューを使用するために必要なすべてのデータ (バインディング、タイプ・ライブラリ、登録情報など) が含まれています。デプロイメント・パッケージは自動登録を行う ActiveX コントロールで、ファイル拡張子は.ocx です。

ActiveX ビューのデプロイメント・パッケージを作成するには、次の手順に従います。

  1. [Workstation Views] ウィンドウから、ActiveX ビューを選択します。

  2. [Tools] の [Deploy Modules] をクリックするか、または目的のビューを右マウスボタンでクリックしてメニューから [Deploy Modules] を選択します。確認ウィンドウが表示されます。

  3. [Create] をクリックすると、デプロイメント・パッケージが作成されます。

    デフォルトでは、デプロイメント・パッケージは ¥tuxdir¥Packages に格納されます。

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy