BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA
 ドキュメントのダウンロード   サイト マップ   用語集 
検索

BPM プラグイン プログラミング ガイド

 前 次 目次 索引 PDFで表示  

BPM プラグイン開発の概要

注意: WebLogic Integration は、BPM 機能を拡張するために利用できるプラグイン フレームワークをサポートします。このプラグイン フレームワークは、BPM の本来の機能を拡張する場合に限り使用します。BPM を外部アプリケーションやシステムと統合する目的で、このプラグイン フレームワークを使用しないでください。その場合には、ビジネス オペレーションとして BPM から呼び出される EJB または Application Integration (AI) アダプタのいずれかを使用します。

この章では、Business Process Management (BPM) プラグインとその開発の概要について説明します。この章の内容は以下のとおりです。

 


プラグインとは

プラグインは、実行時にロード可能な Java クラスで構成され、Business Process Management (BPM) の機能と WebLogic Integration の機能を拡張します。

プラグインを使用することにより、次の BPM ワークフロー コンポーネントの設計または実行時動作を変更できます。

たとえば、WebLogic Integration Studio にある標準の 開始ノード トリガ メソッドを使用するよりも、電子メール メッセージなど、XML ではないイベントを送信することにより、ビジネス プロセスの実行をトリガしたほうがよい場合があります。これは、開始ノードの動作を拡張するプラグインを設計し、この新しい非 XML トリガに対するサポートを導入することにより実現できます。

次の図に、開始ノードの設計および実行時動作を変更するプラグインの例を示します。この図は、[開始のプロパティ] ダイアログ ボックスのプラグイン定義領域を示しています。

図1-1 プラグイン の例 : 開始ノード


 

この例について説明します。

注意: 前の図に示されている開始ノード プラグインの詳細については、BPM プラグイン サンプルを参照してください。

 


BPM によりプラグイン開発をサポートする方法

ビジネス プロセスの設計、実行、およびモニタのための標準フレームワーク以外に、WebLogic Integration は BPM 機能のためのプラグイン フレームワークをサポートしています。このフレームワークにより、既存のソフトウェアのカスタマイズするプラグインを作成し、他の製品や技術との強力でシームレスな統合を達成できます。

次の図に、BPM アーキテクチャ全体の中での BPM プラグイン フレームワークを示します。

図1-2 BPM プラグイン フレームワーク


 

この図では次の点に注目してください。

次の節で、この 2 つのコンポーネントについて説明します。

プロセス エンジンの役割の詳細については、『BPM クライアント アプリケーション プログラミング ガイド』の「Business Process Management API による開発」の「WebLogic Integration プロセス エンジン」を参照してください。

Plug-In Manager

Plug-in Manager は、WebLogic Integration プロセス エンジンの専用パーツであり、次の図に示すように、プラグインのコンフィグレーション、設計および実行時管理をサポートします。

図1-3 Plug-In Manager


 

Plug-in Manager は、ロードされたプラグイン、およびこれらのプラグインと WebLogic Integration プロセス エンジンや BPM クライアントとの対話を監視し、プラグイン関連のすべてのリクエストをルーティングします。

たとえば、Plug-in Manager でコンフィグレーションと設計を担当するサブセットには、次の機能があります。

たとえば、Plug-in Manager で実行時を担当するサブセットには、次の機能があります。

プラグインを設計する場合、Plug-in Manager の管理機能にアクセスするには、次のセッション EJB を使用します。

これらの EJB は、次の節で説明する プラグイン API の一部です。

プラグイン API

BPM API は、コンフィグレーション、設計、およびプロセス エンジンとデプロイされたプラグインとの間の実行時対話をサポートします。

プラグイン API は、次の表で説明するように、2 つのセッション EJB、実行時管理クラスのセット、および 1 つのパッケージで構成されています。

表1-1 BPM プラグイン API コンポーネント

コンポーネント

説明

com.bea.wlpi.server.plugin.PluginManager

ワークフローの実行時にプラグインの実行時管理を提供するステートレス セッション EJB

com.bea.wlpi.server.plugin.PluginManagerCfg

プラグインのコンフィグレーション管理および設計管理を提供するステートレス セッション EJB

com.bea.wlpi.server.plugin.*

ワークフロー実行中にプラグインの実行時管理を行うクラス

com.bea.wlpi.common.plugin

値オブジェクト クラスなど、クライアントおよびプロセス エンジンの機能を提供するパッケージ。

このパッケージのすべてのメンバーは、クライアントとプロセス エンジン間でやりとりを行えるようにシリアライズされる。


 

注意: BPM API の詳細については、『BPM クライアント アプリケーション プログラミング ガイド』または『BEA WebLogic Integration Javadoc』を参照してください。

 


デプロイされたプラグインを BPM が検出する方法

WebLogic Server でプラグインをパッケージし、それをセッション EJB としてデプロイするだけで、BPM ユーザはプラグインを利用できるようになります。

プロセス エンジンや BPM クライアントでのインストレーションが必要ないにもかかわらず、BPM がデプロイされたプラグインとその実装詳細を検出できるのは、プラグインにより BPM に対して次の機能が提供されるからです。

プラグインの検出

プロセス エンジンは、起動時に、プラグインの com.bea.wlpi.server.plugin.PluginHome ホーム インタフェースに基づき、JNDI を介してプラグインを検出します。すべてのプラグイン Bean は、PluginHome をそのホーム インタフェースとして使用する必要があります。

PluginHome インタフェースの詳細については、プラグイン ホーム インタフェースを参照してください。

ライフサイクル タスクの管理

プラグインが検出されると、Plug-in Manager は次のタスクを実行します。

前述の各ライフサイクル メソッドは、プラグイン Bean により実装する必要のあるリモート インタフェース メソッドです。詳細については、プラグイン リモート インタフェースを参照してください。

プラグイン実装へのアクセス

プラグインは、各コンポーネントに次のクラスを実装し、設計クライアントに対してその機能を定義する必要があります。

BPM 設計クライアント(Studio など)へのプラグインのインストレーションは必要ないので、設計クライアントはプラグインが定義する具体的なクラスに関する知識を持っていません。設計クライアントでのリモート クラス ロードをサポートするために、引数を必要としないパブリック コンストラクタを実装するのはプラグインの責任です。

設計クライアントでのリモート クラス ロードは次のように行われます。

たとえば、プラグイン の例 : 開始ノードの図では、ユーザが [注文開始] イベントを開始ノードのトリガとして選択すると、Plug-in Manager は、プラグイン パネル クラス StartNodePanel をロードします。このクラスは、引数のないコンストラクタを使用して、Studio クライアントによりインスタンス化されます。その後、Studio クライアントは、[開始のプロパティ] ダイアログ ボックスにプラグイン GUI コンポーネントを表示します。

実行時のプラグインの実行(コンテキストの引き渡し)

プラグイン実行特性を定義するには、プラグイン コンポーネントのための実行時インタフェースを実装する必要があります。実行時、プラグインはコンテキスト引き渡しと呼ばれるプロセスを使用して、プロセス エンジンやクライアントと通信します。Plug-in Manager は、プラグイン コンポーネント実行時インタフェースのインスタンスを取得し、そのインスタンスにコンテキストを渡します。

各コンテキスト インタフェースは、Plug-in Manager に対する制限付きアクセスを提供することにより、プラグインが独自のアプリケーション ロジックの実行と管理を行い、BPM 実行時環境にプラグイン インスタンス データを導入できるようにします。

実行時インタフェースの実装方法の詳細については、プラグインの実行を参照してください。コンテキスト インタフェースの実装方法の詳細については、プラグイン実行時コンテキストの使い方を参照してください。

 


BPM プラグイン開発タスク

BPM プラグインを開発するには、まず、必要なプラグイン クラスおよびインタフェースを定義するセッション EJB を作成してから、このセッション EJB を WebLogic Server 上でパッケージ化およびデプロイする必要があります。

次の手順の中で、BPM プラグイン開発タスクについてさらに詳しく説明します。

注意: 次に説明する手順を実行するだけでなく、プラグイン開発の基礎に説明されているプラグイン開発の基本的タスクも確認しておいてください。

手順 1 :

設計時および実行時のカスタマイズ要件を確認します。

プラグインを使用することにより、次のワークフロー コンポーネントの設計時および実行時の動作を変更できます。

プラグイン サンプルには、一般的なプラグイン シナリオを表わすプラグイン クラスのセットがあります。詳細については、BPM プラグイン サンプルを参照してください。

手順 2 :

プラグイン セッション EJB を定義します。

  1. javax.ejb.SessionBean インタフェース メソッドを実装します。たとえば、次のようなメソッドがあります。
    ejbActivate()
    ejbPassivate()
    ejbRemove()
    setSessionContext(SessionContext ctx)

  2. com.bea.wlpi.server.plugin.PluginHome ホーム インタフェースの ejbCreate() メソッドを実装します。

    ホーム インタフェースは、com.bea.wlpi.server.plugin.PluginHome インタフェースを介して BPM プラグイン フレームワークにより定義されています。BPM ホーム インタフェースの詳細については、プラグイン ホーム インタフェースを参照してください。

    注意: この時点で、ホーム インタフェース メソッドの表に説明されているように、ejbCreate() メソッドの実装時に Studio インタフェース ビューのためのカスタム プラグイン アイコンを設定できます。

  3. com.bea.wlpi.server.plugin.Plugin リモート インタフェース メソッドを実装します。

    リモート インタフェースは、com.bea.wlpi.server.plugin.Plugin インタフェースを介して BPM プラグイン フレームワークにより定義されています。BPM リモート インタフェースの詳細については、プラグイン リモート インタフェースを参照してください。

    注意: この時点で、リモート インタフェース プラグイン情報メソッドの表に説明されているように、getPluginCapabilitiesInfo() メソッドの実装時に、プラグイン コンポーネント値オブジェクトを定義し、アクション ツリー(プラグイン アクションを定義する場合)をカスタマイズする必要があります。

この手順の詳細については、プラグイン セッション EJB の定義を参照してください。

手順 3 :

プラグイン コンポーネントを定義します。

  1. プラグイン データ インタフェースを実装し、プラグイン データの読み取りと保存に使用されるメソッドを定義します。

  2. 設計クライアント内でプラグイン GUI コンポーネントを表示するためのプラグイン パネル クラスを定義します。

  3. 実行時実行特性を定義するためのプラグイン実行時コンポーネント クラスを定義します。

この手順の詳細については、プラグイン コンポーネントの定義を参照してください。

手順 4 :

通知管理を設定します。

この手順の詳細については、プラグイン通知の使い方を参照してください。

手順 5 :

着信プラグイン イベントを処理するためのイベント ハンドラを実装および登録します。

この手順の詳細については、プラグイン イベントの処理を参照してください。

手順 6 :

必要に応じて、プラグイン コンフィグレーション要件をカスタマイズし、プラグインを管理します。

この手順の詳細については、プラグインの管理を参照してください。

手順 7 :

プラグインのコンテキスト依存オンライン ヘルプを開発します。

この手順の詳細については、プラグイン オンライン ヘルプの定義を参照してください。

手順 8 :

すべてのプラグイン Java クラスを EJB JAR ファイルおよび WAR ファイルにパッケージ化し、プラグインをデプロイします。

この手順の詳細については、プラグインのデプロイメントを参照してください。

 


BPM プラグイン サンプル

このソフトウェアに用意されている BPM プラグイン サンプルは、一般的なプラグイン シナリオを示したプラグイン クラスのセットを提供します。このサンプルには、Plug-in Order Processing と Plug-in Order Fulfillment という 2 つのワークフロー テンプレートも入っており、いずれも SAMPLES_HOME/integration/samples/bpm_api/plugin/sample_plug_in.jar ファイルに格納されています。

注意: プラグイン サンプルは、『WebLogic Integration BPM ユーザーズ ガイド』の「Business Process Management とサンプル ワークフローの紹介」に詳しく説明されている一般的な Web ベースの発注シナリオにおおむね基づいています。

次の図に、プラグイン サンプル ワークフロー テンプレートと、追加されたプラグインを示します。

図1-4 プラグイン サンプル ワークフロー テンプレート


 

前述のサンプルは、次を表しています。

注意: 一般的な例の一部として提供されている Order Processing Trigger ワークフロー テンプレート(『WebLogic Integration BPM ユーザーズ ガイド』参照)がプラグインにより使用されるのではなく、Plug-in Order Processing ワークフロー テンプレートがプラグイン定義 XML イベントを介してトリガされます。

このプラグイン サンプルからの抜粋は、このドキュメントの各所で使用されています。BPM プラグイン サンプルとそのディレクトリ構造の詳細、およびサンプルのインポート方法と実行方法については、BPM プラグイン サンプルを参照してください。一般的な Web ベースの受注シナリオの詳細については、『WebLogic Integration BPM ユーザーズ ガイド』を参照してください。

注意: 前述の図では、カスタマイズされたプラグイン プロパティが含まれていることを示すため、開始ノードおよびイベント ノードの右上すみに次のカスタム アイコンが表示されています。

このようなアイコンは、Studio インタフェース ビューが有効な場合に表示されます。インタフェース ビューを有効にする方法の詳細については、『WebLogic Integration Studio ユーザーズ ガイド』の「Studio インタフェースの使用法」を参照してください。

リモート プラグイン オブジェクト インタフェースを作成するときにカスタム プラグイン アイコンを指定する方法については、プラグイン ホーム インタフェースに説明されている create() メソッドを参照してください。

 

ページの先頭 前 次