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

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")