EGL インターフェース

EGL インターフェースを使用すると、EGL サービス、Web サービス (EGL で 作成された)、または Java™ コードにアクセスできます。

このインターフェースは、一連の関数記述を組み込んだ EGL パーツです。 次の例で示すように、それぞれの関数記述には、 終了セミコロン (;)、パラメーター、および戻りの型のみが含まれています。
   Interface HelloWorld type JavaObject
     {javaName = "HelloWorld", 
      packageName = "com.ibm.examples.helloWorld"}
     
     function sayHello(name String)
					  	returns (String);
   end
コードの中で直接インターフェース・パーツを使用する代わりに、 そのパーツを基にした変数を作成します。 実行時に, 変数は以下のうちの 1 つを参照します。
インターフェースは以下の方法で使用できます。
サービスの場合
BasicInterface 型のインターフェースを使用して、未作成のサービスの 目的を定義したり、既存のサービスへのアクセスを提供したりすることができます。
  • インターフェースを使用して、組織のサービスの設計に役立てることができます。

    EGL サービスの中にコーディングしたい機能を記述するためのインターフェースを作成できます。 インターフェースが完成した後で、ユーザー自身または他の人がサービスをコーディングできます。 これを、「インターフェースを実装する」と言います。 主な意味は、サービスには、 インターフェース内に記述されたすべての機能が収められるということです。 インターフェースは、サービスが実行しなければならない一種の契約を提供します。

    インターフェースのこの使用法には、以下の利点があります。
    • サービスの開発が始まる前に、 組織内の人々がサービスに必要な操作について明確に考えるのを手助けする。
    • クライアント・コードが、サービス・パーツではなくインターフェース・パーツを基にした変数と対話する場合のように、 サービス・コードの開発中に、開発者がクライアント・アプリケーションを完了できる。

    1 つのサービスが複数のインターフェースを実装でき、 また複数のサービスが同じインターフェースを実装できます。

  • インターフェースを使用すると、開発者は、 実装の情報からはシールドされたまま、組織のサービスにアクセスできます。

    インターフェース・パーツの変数を宣言することのランタイムにおける効果は、 関連するサービス・パーツの変数を宣言することの効果と同じですが、 インターフェースを使用すると、サービス内のロジックの開示を避けることができます。 ロジックを他人から離しておくことは、競争上の理由からも適切であり (ソース・ コードを組織の外部の開発者から隠せます)、また、複雑さを減少させます (組織の 内部か外部かを問わず、開発者に、実装の詳細ではなく、サービスが提供する機能性に 集中できます)。

  • インターフェースを使用すると、 サービス実装の言語またはロケーションに関係なく、Web サービスにアクセスできます。

    組織の外部で作成された Web サービスにアクセスするには、 そのサービスへのアクセス方法を詳しく記したサービス固有の Web サービス記述言語 (WSDL) の定義が存在していなければなりません。

    WSDL 定義を EGL WSDL ウィザードへの入力データとして使用します。 これにより、コード内の変数の基礎となるサービス固有のインターフェース・パーツが作成されます。

インターフェースを介してサービスにアクセスする場合、そのインターフェースは、 サービス実装が置かれているロケーションにバインドされていなければなりません。 このバインディングには、実装へのアクセスに使用されるプロトコルについての詳細が含まれています。

通常の状態では、バインディング情報を、 「サービス・バインディング・ライブラリー」と呼ばれる特殊タイプの EGL ライブラリーで宣言された変数内に指定します。 「サービス・バインディング・ライブラリー」は、 『ServiceBindingLibrary 型のライブラリー・パーツ』で説明されています。 もう 1 つの可能性として、インターフェースがバインディングを assignment 文で受け取る場合があります。 これが可能になるのは、assignment 文の右辺にあるインターフェースまたはサービスがサービス・バインディング・ライブラリー内で宣言されている場合か、 あるいは、そのインターフェースまたはサービスがバインディングを以前の assignment 文で受け取った場合です。 3 番目の可能性は、関数パラメーターとして機能しているインターフェースが、 既にバインディングを持つ引数を受け取ることによってバインディングを受け取る場合です。

Java コードの場合

JavaObject 型の EGL インターフェースを使用すると、Java インターフェースまたはクラスで 使用できる機能の一部またはすべてにアクセスできます。 この使用法では、EGL インターフェースは Java コードのビューを提供します。

EGL インターフェースをこの方法で使用して得られる利点は、以下のとおりです。
  • Java コードの複雑さが、基盤となる Java 実装の 中にほとんど隠されるため、EGL ロジックのコーディングと保守がより容易になる。
  • EGL から Java コードにアクセスできるプログラマーの 数が最大化される。

組織のための効率的ストラテジーは、EGL および Java の両方の専門知識を持つ開発者に、 他の EGL 開発者が使用するためのインターフェース・パーツを作成するように依頼することです。 汎用のために提供されているインターフェース・パーツのリストについては、 『JavaObject 型のインターフェース』を参照してください。

EGL はインターフェースのラージ・セットを提供して、 Web 開発者が実行時に JSF ユーザー・インターフェース・コントロールにアクセスできるようにしています。例えば、ユーザーの入力に応じてテキスト・ボックスの色を変更することができます。 この機能の概要については、『JSF コンポーネント・ツリー』を参照してください。

JSF コンポーネント・ツリーと対話する場合、EGL インターフェース・ テクノロジーが EGL コード内からの Java オブジェクトのインスタンス化を 許可しない (EGL バージョン 6.0.1 現在で) という事実を無視することができます。 この問題の詳細については、 『JavaObject 型のインスタンス化および EGL インターフェース』を参照してください。

EGL インターフェースは、これ以外に EGL における以下の 2 つの Java 固有機能を補足します。
Java アクセス関数
Java アクセス関数は、EGL システム関数です。 これによって、ユーザーが作成した Java コードで、 ネイティブ Java オブジェクト およびクラス (特にネイティブ・コードの public メソッド、コンストラクター、 およびフィールド) にアクセスできます。
EGL Java ラッパー
EGL Java ラッパーは、ユーザー用に生成され、以下の実行可能 プログラム間のインターフェースとして機能する一連の Java クラスです。
  • 一方はサーブレットまたは手書きの Java プログラム
  • 他方は、EGL で生成されたプログラムまたは EJB セッション Bean
フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.