ページの先頭行へ戻る
Interstage Application Server アプリケーション作成ガイド(CORBAサービス編)
Interstage

G.1.2 OLEクライアントの処理

OLEクライアントの処理の流れを以下に示します。



G.1.2.1 OLE-CORBAゲートウェイの起動

OLE-CORBAゲートウェイは、CORBA.Factoryという名前でパソコン上のRegistoryに登録されています。OLE-CORBAゲートウェイを起動するためには、Visual Basicが標準提供しているCreateObject関数を使用し、そのパラメタとしてCORBA.Factoryを指定します。


G.1.2.2 サーバアプリケーションのオブジェクトリファレンスの検索

サーバアプリケーションのオブジェクトリファレンスを検索するために、GetObject関数を使用し、そのパラメタとしてサーバアプリケーションの名前を指定します。
GetObject関数では、パラメタで指定されたサーバアプリケーション名をネーミングサービスから検索後、オブジェクトリファレンスをクライアントに通知します。サーバのアプリケーション名を指定する場合は、ネーミングサービスに登録したオブジェクト名を指定します。なお、サーバオブジェクトのIDL定義がインタフェースリポジトリに登録されている必要があります。


G.1.2.3 メソッドの実行

(1) 実行時バインディング

GetObject関数で検索したオブジェクトのメソッドを呼び出すことにより、サーバアプリケーションが持っているメソッドを呼び出すことができます。以下にクライアントのVisual Basicでのプログラミング例を示します。

Dim GW As Object                                     // OLE-CORBAゲートウェイのインスタンス
Dim calculator As Object                             // サーバのオブジェクトリファレンス
Dim a As Long                                        // 入力用変数
Dim b As Long                                        // 入力用変数
Dim exp As Object                                    // エラー設定用
Dim res As Variant                                   // 返り値用変数

Set GW = CreateObject("CORBA.Factory")               // OLE-CORBAゲートウェイの起動
Set calculator = GW.GetObject("ODdemo::calculator")  // CORBAオブジェクトの生成
a = Text1.Text                                       // 画面に入力されたデータを代入
b = Text2.Text                                       // 画面に入力されたデータを代入
Set res = calculator.calculate(a, b, exp)            // メソッドの呼び出し

(2) 事前バインディング

CORBA.Factoryオブジェクトを格納する変数をクラス型で宣言することにより、Visual Basicの事前バインディングが有効になります。事前バインディングは、従来の実行時バインディングと比べVisual Basicプログラム実行時にCORBAクラスを読み込まないため、性能向上が図れます。Visual Basicのアプリケーション開発時に、事前バインディングを使用するには、Visual Basicの“プロジェクト”メニューの“参照設定”を選択し、“ODOLE 1.0 Type Library”を有効にしてください。以下に事前バインディングのプログラミング例を示します。

Dim Factory as CORBAFactory

Set Factory = CreateObject("CORBA.Factory")