Integration コントロールを使用する

     前  次    目次     
ここから内容

XML メタデータ キャッシュ コントロール

クラスタ内でデータを共有する

注意 : WebLogic Integration は、WebLogic Integration の使用許諾を受けた場合にのみ、BEA Workshop for WebLogic Platform で使用できます。
注意 : XML メタデータ キャッシュは、WebLogic Integration Administration Console または MBean API を使用して管理され、このキャッシュを使用することでコンソールに基づいた独自の NetUI の作成が可能になります。WebLogic Integration を使用して、XML メタデータ キャッシュ内にある XML メタデータを取得できます。

 


この節に含まれるトピック

概要 : WebLogic Integration

WebLogic Integration とその機能について説明します。

クラスタ内でキャッシュ データを共有する

キャッシュされたデータをクラスタ全体で共有し、ノードから要求されたときに利用可能にする方法を説明します。

WebLogic Integration で WebLogic Integration を作成する

WebLogic Integration 内に新しい WebLogic Integration を作成する方法を説明します。

WebLogic Integration の get メソッドについて

WebLogic Integration の get メソッドを使用して XML メタデータを取得する方法を説明します。

ビジネス プロセスで WebLogic Integration を使用する

ビジネス プロセスで WebLogic Integration を使用する方法を説明します。

サンプル : WebLogic Integration

WebLogic Integration を使用するシナリオを説明します。

概要 : WebLogic Integration

WebLogic Integration は、管理されているキーと値の組み合わせにすばやくアクセスするために使用されます。キーは String 型で、値には XML データが含まれます。WebLogic Integration を使用するソースの詳細については、http://dev2dev.bea.com/code/wli.jsp にある WebLogic Integration コード ライブラリの Weblogic Integration コード サンプルを参照してください。

WebLogic Integration をビジネス プロセスのフローで使用すると、XML メタデータ キャッシュから XML メタデータを取得できます。キャッシュのエントリは、WebLogic Integration Administration Console で管理 (追加、削除、更新) されます。または、NetUI アプリケーションなどのカスタム アプリケーションを記述してキャッシュを管理することもできます。詳細については、「クラスタ内でキャッシュ データを共有する」を参照してください。

WebLogic Integration は、主に読み取りを行う環境で使用するのに適しています。XML メタデータ キャッシュは、メタデータのコンフィグレーション以外では使用できません。これは、実行時の xml データをキャッシュするために使用されます。キャッシュのエントリの更新は、クラスタ内のすべてのキャッシュ エントリを更新する必要がある一方で読み込み操作が常にインメモリで処理されるため、コストがかかります。そのため、キャッシュ内の XML 値のサイズは通常 100KB 未満に抑えるようにします。それよりサイズが大きくても機能しますが、更新にかかるコストが増えます。XML メタデータ キャッシュはグローバルなドメイン全体のキャッシュです。キャッシュのデータは、ファイルベースで格納することにより永続的に使用できるようになります。

図 18-1 では、XML メタデータ キャッシュおよび WebLogic Integration の実装を示します。

図 18-1 WebLogic Integration 実装の概要

WebLogic Integration 実装の概要

クラスタ内でキャッシュ データを共有する

XML メタデータは、管理サーバを実行しているノードからのみキャッシュに追加できます。管理サーバは入力を受け取り、キーおよび関連付けられた XML メタデータを次の形式のファイルに格納します。

XMLMetatadaCache_<keyname>_.xml

キャッシュに追加された XML ドキュメントごとに、新しい XML メタデータ キャッシュ ファイルが作成されます。ファイルが作成されると、新しく追加された XML ドキュメントはクラスタ内のすべてのノードに伝播されます。このため、データは要求側ノードですぐに使用できるようになります。

XML メタデータ キャッシュ コントロールをクラスタ内で使用している場合に、クラスタのサーバが再起動されてサーバがオフラインの間に値が変更されると、サーバは再びオンラインになったときに変更の通知を受け取ります。

注意 : 管理サーバが停止しているときに XML メタデータ キャッシュを変更することはできません。

図 18-2 は、クラスタ内でデータが共有される様子を示します。

図 18-2 クラスタ内のデータ共有

WebLogic Integration で WebLogic Integration を作成する

新しい WebLogic Integration を作成してビジネス プロセスに追加できます。新しい WebLogic Integration を定義するには

  1. [パッケージ・エクスプローラー] ペインで、XML メタデータ キャッシュ コントロールを追加するビジネス プロセス (Process.java ファイル) をダブルクリックします。ビジネス プロセスがデザイン ビューに表示されます。
  2. データ パレットクラスタ内でデータを共有する をクリックし、ドロップダウン リストから Integration コントロールを選択して、アプリケーションの統合に使用するコントロールのリストを表示します。
注意 : データ パレット ビューが BEA Workshop for WebLogic Platform に表示されない場合は、メニュー バーArrow symbol[ウィンドウArrow symbolビューの表示Arrow symbolデータ パレット] をクリックします。
  1. XML メタデータ キャッシュを選択します。
  2. [Insert control: XML メタデータ キャッシュ] ダイアログ ボックスが表示されます。

  3. [Insert control: XML メタデータ キャッシュ] ダイアログ ボックスに以下の情報を入力します。
    • [フィールド名] に、ビジネス プロセスから新しい XML メタデータ キャッシュ コントロール インスタンスにアクセスするときに使用する変数の名前を入力します。有効な Java 識別子を入力する必要があります。
    • [挿入位置] で、フィールド名をプロセス ファイルに挿入するポイントをドロップダウン リストから選択します。
    • このコントロールをコントロール ファクトリにする場合には [これを実行時に複数のインスタンスを作成できるコントロール ファクトリにする] チェック ボックスをチェックします。コントロール ファクトリにしない場合には、このチェック ボックスのチェックをはずします。詳細については、「コントロール ファクトリ : コントロールをまとめて管理する」を参照してください。
    • [終了] をクリックします。

WebLogic Integration の get メソッドについて

WebLogic Integration には以下のメソッドが含まれます。

XmlObject get(String key)

このメソッドを使用すると、get コマンドで String 型のキーを使用してキャッシュ内の XML メタデータにアクセスできます。このメソッドの使用方法の詳細については、「ビジネス プロセスで WebLogic Integration を使用する」を参照してください。

キャッシュからドキュメントを取得できるのは、以前に Administration Console を使用してキャッシュにドキュメントを追加した場合のみです。キャッシュに XML ドキュメントを追加する方法の詳細については、http://edocs.beasys.co.jp/e-docs/wli/docs92/manage/index.html にある『WebLogic Integration ソリューションの管理』の XML メタデータ キャッシュに関する説明を参照してください。

ビジネス プロセスで WebLogic Integration を使用する

作成が終わったら、新しい WebLogic Integration をビジネス プロセスで使用できます。

ビジネス プロセスは通常、クライアント要求ノードで開始されます。このノードは、クライアントによるプロセスの要求を表します。ここでは、クライアントがプロセスの get(String key) メソッドを呼び出して、キャッシュから XML メタデータ キーを取得します。

ビジネス プロセスを設定してキャッシュから XML メタデータを取得するには、以下の作業を行います。

クライアント ノードを準備するには
  1. クライアント要求ノードを開きます。[一般的な設定] タブの [メソッド名] フィールドに、NewXMLMetadata と入力します。
  2. [追加] をクリックし、Java データ型のリストから [String] を選択します。[名前] フィールドに変数として Key1 と入力して [OK] をクリックすると、選択した内容がクライアント要求ノードに追加されます。これで、このコントロールではクライアントによって送受信される値として String 型の値を予期することが、クライアントに対して示されます。ここでの String は、XML メタデータを関連付けるキーの定義に使用されるデータ型になります。
  3. [データの受信] タブで、クライアント要求ノードのタブに割り当てる変数として String を選択します。変数の型は、変数を割り当てるパラメータに基づいて、あらかじめ定義されます。ここで指定した String は、オブジェクトの中心的な要素であるキーの値の定義に使用されるデータ型になります。
  4. クライアント要求ノードを閉じます。これで、ビジネス プロセスに get (String key) ノードを追加できるようになりました。
XML メタデータ ドキュメントを取得するには

WebLogic Integration を使用した XML メタデータ ドキュメントの取得には、以下のプロパティを使用できます。

xmlObject get(String key)

コントロールではこのプロパティを使用して、XML メタデータ キャッシュから特定のキーを取得します。

WebLogic Integration を使用してビジネス プロセスでキーを取得するには、次の手順を実行します。

  1. データ パレットから XmlObject get(String) メソッドをドラッグして、ビジネス プロセスのクライアント要求ノードの下にドロップします。
  2. get ノードをダブルクリックして、ノード ビルダの [一般的な設定] タブを表示します。
  3. [コントロール] フィールドに MyWebLogic Integration が表示され、[メソッド] フィールドで以下のメソッドが選択されていることを確認します。
  4. get(String key)
  5. [データの送信] タブを開きます。[割り当てる変数を選択します] ドロップダウン リストで [Key1(String)] を選択します。
  6. [データの受信] タブを開きます。[割り当てる変数を選択します] リストで、XML_1 という新しい変数を作成します。デフォルトでは、XMLObject データ型が選択されます。これで、XML メタデータに対する get 要求が完了しました。
  7. ウィンドウを閉じます。

以下は、add (String key) ノードのコンフィグレーションのコード例です。

public void get_metadataGet() throws Exception
{
//#START: CODE GENERATED - PROTECTED SECTION - このメソッドのこのコメントより上にはコードを安全に追加できる
// 入力変換
// メソッド呼び出しを返す
this.XML_1 = get_metadata.get(this.Key_1);
// 出力変換
// 出力の割り当て
//#END: CODE GENERATED - PROTECTED SECTION - このメソッドのこのコメントより下にはコードを安全に追加できる

サンプル : WebLogic Integration

以下のシナリオでは、ワークフロー内のビジネス プロセスで XML メタデータ キャッシュをデプロイする方法について説明します。

以下の要素が含まれます。

販売者はオークション クライアントに商品を出品し、購入者はその商品を入札します。入札が承認されると、販売者は購入者の詳細情報を要求して売買を進めます。ワークフローのさまざまな要素間の通信はルータ プロセスによって処理されます。

購入者の入札が承認されると、以下のシナリオが発生します。

  1. 販売者は購入者のメタデータを求める要求をオークション クライアントに送信します。このメタデータには、購入者の名前、住所、電話番号などの情報が含まれています。
  2. ルータは要求を調べて、その内容に基づいて購入者プロセスに必要なメタデータを問い合わせます。
  3. 購入者の情報は XML ドキュメントの形でグローバルな XML メタデータ キャッシュに格納されています。ルータは関連するキーを求める要求を購入者に送信します。
  4. ルータは購入者からキーを取得し、WebLogic Integration を使用して、必要なメタデータに対する get 要求を実行します。XML メタデータが取得されてクライアントに返されます。このイベントでは、ルータ プロセスは WebLogic Integration を追加し、get (String key) メソッドを使用して購入者の XML メタデータを取得しています。つまり、WebLogic Integration はルータ プロセスに追加されています。そのためにデータが円滑に取得されます。
注意 : 情報の転送が正常に行われるには、ルータ JPD をデプロイする前に、購入者のメタデータがキャッシュ内に格納されている必要があります。

MBean API を使用して XML メタデータ キャッシュを管理する

Configuration MBean API を使用して独自のキャッシュを作成し、そのキャッシュに対するデータの追加、取得および削除を行えます。

シングルトンの XMLCacheMBean を取得する

シングルトンの XMLCacheMBean を取得するには、次のコードを使用します。

Context ctx = new InitialContext();
MBeanHome home = (MBeanHome) ctx.lookup(MBeanHome.LOCAL_JNDI_NAME); (XMLCacheMBean) xmlCacheMBean = home.getMBean(XMLCacheMBean.SINGLETON_MBEAN_NAME, XMLCacheMBean.MBEAN_TYPE);
String key = "key1";

Configuration MBean API を使用する

Configuration MBean API で提供される以下のメソッドを使用して、XML メタデータ キャッシュに対するエントリの追加、取得、削除を行えます。

public XmlObject xmlObj = XmlObject.Factory.parse(new File(YourXmlFile)) //xmlObject を作成する

このメソッドを使用して XMLobject を作成できます。

public xmlCacheMBean.add(key, xmlObj);

このメソッドを使用して XML メタデータ キャッシュへのキーを追加できます。

public XmlObject xmlObject_get = xmlCacheMBean.get(key);

このメソッドを使用して XML メタデータ キャッシュからキーを取得できます。

public XmlObject newxmlObj = ..... //別の xmlObject を作成する

このメソッドを使用して新しい XMLObject を作成できます。

public xmlCacheMBean.update(key,newxmlObj);

このメソッドを使用して XML メタデータ キャッシュを更新できます。

public xmlCacheMBean.delete(key);

このメソッドを使用して XML メタデータ キャッシュからキーを削除できます。

public boolean keyExists = xmlCacheMBean.keyExists(key);

このメソッドを使用して、特定のキーが XML メタデータ キャッシュ内に存在するかどうかを調査できます。

public String[] allKeys = xmlCacheMBean.getAllKeys();

このメソッドを使用して、XML メタデータ キャッシュ内にあるすべてのキーのリストを取得できます。

  ページの先頭       前  次