BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > WebLogic Integration > B2B トピック > B2B Intgration ロジック プラグイン プログラミング ガイド > ロジック プラグインの作成と追加(非推奨) |
B2B Intgration ロジック プラグイン プログラミング ガイド
|
ロジック プラグインの作成と追加(非推奨)
以下の節では、WebLogic Integration でロジック プラグインを開発する方法について説明します。
ロジック プラグインについて
以下の節では、ロジック プラグイン、および関連する概念について説明します。
ロジック プラグインの概要
注意: カスタムロジック プラグインは本リリースの WebLogic Integration では非推奨となりました。代わりとなる機能については、『BEA WebLogic Integration リリース ノート.』を参照してください。
ロジック プラグインは、B2B エンジンを通過するビジネス メッセージに対して特殊な処理を実行する Java クラスです。ロジック プラグインは、WebLogic Integration プロバイダまたはトレーディング パートナによって、カスタム サービスとして開発されます。
ロジック プラグインは、WebLogic Integration B2B システムを通過するビジネス メッセージのパスに沿った重要な場所にルールおよびビジネス ロジックを挿入します。ロジック プラグインは、WebLogic Integration でビジネス プロトコルが作成されるときに作成される Java クラスのインスタンスです。ロジック プラグインは、トレーディング パートナの配信チャネルが起動されたときにアクティブ化され、メッセージが B2B エンジンを通過するときに呼び出されます。
ロジック プラグインは、ビジネス プロトコルに個別に対応します。ロジック プラグインでは、特定のビジネス プロトコルを使用して交換されるメッセージのみが処理されます。たとえば、あるプラグインが XOCP プロトコルと関連付けられている場合、そのプラグインは XOCP ビジネス メッセージのみを処理します。
ロジック プラグインが処理するタスク
WebLogic Integration では、サポートされるビジネス プロトコルに対してルータ ロジック プラグインおよびフィルタ ロジック プラグインが提供されています。ルーティング機能やフィルタ機能の他に、カスタム ロジック プラグインがさまざまなサービスを実行できます。たとえば、請求処理が目的であれば、トレーディング パートナから送信されるメッセージの数をカスタム ロジック プラグインでトラッキングできます。
次の表は、ロジック プラグインによって実行されるタスクの種類を示します。
チェーン ルータとフィルタには、ビジネス メッセージがルータとフィルタを通過するときに実行される任意の数のロジック プラグインがあります。同一のビジネス プロトコルを共有する複数のロジック プラグインは、ロジック プラグイン チェーンとして順に並べられます。 チェーンの中で、ロジック プラグインは実行時に順番に処理されます。1 つのロジック プラグインの実行が完了すると、チェーン内の次のプラグインがアクティブ化されます。連続するロジック プラグインのそれぞれが、B2B エンジンでビジネス メッセージが処理される間に共有メッセージ情報に加えられた任意の変更を参照できます。 注意: チェーン内のロジック プラグインの位置は、WebLogic Integration B2B Console を使用してリポジトリでコンフィグレーションされます。詳細については、『B2B Integration Administration Console オンライン ヘルプ』を参照してください。 次の図は、ルータにある XOCP ロジック プラグインのチェーンの例を示します。 図3-1 XOCP ルータ チェーンの例
ルーティング機能やフィルタ機能を提供しないカスタム ロジック プラグインもルータまたはフィルタ ロジック プラグイン チェーンの一部でなければならない点に注意してください。この例では、チェーンに 4 つのロジック プラグインがあり、次の表に示されている順番で処理されます。
この例では、XOCP ビジネス メッセージのみがこの XOCP ルータ チェーンにあるロジック プラグインをトリガします。非XOCP ビジネス メッセージ(たとえば RosettaNet や cXML メッセージ)は、それらを扱うビジネス プロトコルと関連付けられているルータ チェーンで別個に処理されます。 システム ロジック プラグインとカスタム ロジック プラグイン ビジネス メッセージを処理するための標準的なサービスを提供するために、WebLogic Integration B2B では以下のロジック プラグインが用意されています。
システム ロジック プラグインを使用する他に、WebLogic Integration 上に構築されたトレーディング パートナは独自のロジック プラグインを開発して専用のサービスを用意することができます。各ロジック プラグインは、ロジック プラグイン API を実装する Java クラスです。詳細については、ロジック プラグインのプログラミング ステップを参照してください。
ロジック プラグイン API
WebLogic Integration で提供されるロジック プラグイン API を使用して、WebLogic Integration B2B アプリケーションでは以下のことが可能になります。
次の表は、ロジック プラグイン API の各コンポーネントを示します。詳細については、『BEA WebLogic Integration Javadoc』を参照してください。
ロジック プラグインについてのルールおよびガイドライン
ロジック プラグインは以下のルールおよびガイドラインに従う必要があります。
ロジック プラグインの開発と管理
カスタム ロジック プラグインを実装するには、開発のタスクと管理のタスクを組み合わせる必要があります。以下のステップで、必要な手順を説明します。
ロジック プラグインのプログラミング ステップ
この節では、ロジック プラグインのコードに関して実行する必要があるプログラミング ステップを説明します。ロジック プラグインはビジネス メッセージを各自の方法で処理しますが、すべてのロジック プラグインが実行しなければならないタスクもあります。
ロジック プラグインを実装するには、以下のステップを完了してください。
この節で引用されるコード例は、次のようなロジック プラグインからのものです。
手順 1 : 必要なパッケージをインポートする
少なくとも、ロジック プラグインは以下のパッケージをインポートする必要があります。
SentMsgCounter.java ファイルから引用された以下のリストは、必要なパッケージをインポートする方法を示します。
コード リスト 3-1 必要なパッケージのインポート
import java.util.Hashtable;
import com.bea.b2b.protocol.*;
import com.bea.b2b.protocol.messaging.*;
import com.bea.eci.logging.*;
import javax.naming.*;
import javax.sql.DataSource;
// このパッケージは DB プールへのアクセスに必要
import java.sql.*;
手順 2 : PlugIn インタフェースを実装する
ロジック プラグインは com.bea.b2b.protocol.PlugIn インタフェースを実装する必要があります。次のリストに例を示します。
コード リスト 3-2 PlugIn インタフェースの実装
public class SentMsgCounter implements PlugIn
{
...
}
手順 3 : 例外処理モデルを指定する
以下の場合に、PlugInException が送出されます。
ロジック プラグインに指定された例外処理モデルは、例外が送出された場合に何が起きるかを決定します。ロジック プラグインは、exceptionProcessingModel メソッドを実装して、次の表に示される戻り値のうち 1 つを指定する必要があります。
ビジネス メッセージが拒絶された場合、次の処理をどうするかは、メッセージと関連付けられているサービス品質の指定だけでなくビジネス プロトコルにも依存します。たとえば、メッセージを送信した B2B アプリケーションにメッセージ配信の失敗が通知されたら、アプリケーションはビジネス メッセージの再送を試みます。 次のリストは、SentMsgCounter プラグインの exceptionProcessingModel メソッドの実装を示します。 コード リスト 3-3 例外処理モデルの指定 手順 4 : process メソッドを実装する ビジネス メッセージを処理するために、ロジック プラグインは process メソッドを実装する必要があります。このメソッドには、ビジネス メッセージのメッセージ エンベロープを唯一のパラメータとして指定できます。次のリストは、SentMsgCounter クラスでの process メソッドの実装の冒頭を示します。ここでは、メッセージ プロパティを格納するために後で使用される変数が定義されています。 コード リスト 3-4 process メソッドの実装 注意: ビジネス メッセージを処理するとき、ロジック プラグインはメッセージ エンベロープのみを変更できます。ビジネス メッセージ自体は変更できません。 手順 5 : メッセージ エンベロープからビジネス メッセージを取得する ロジック プラグインでビジネス メッセージの内容を調べる必要がある場合は、MessageEnvelope インスタンスの getMessage メソッドを呼び出して、ビジネス メッセージを Message オブジェクトとして取得する必要があります。 次のリストでは、SentMsgCounter クラスが getMessage メソッドを呼び出してメッセージ エンベロープからビジネス メッセージを取得します。 コード リスト 3-5 メッセージ エンベロープからビジネス メッセージを取得 手順 6 : ビジネス メッセージを検証する ロジック プラグインは、あるメッセージが処理されるべき有効なビジネス メッセージであるか、あるいは無視できるシステム メッセージであるかを判別することもできます。ビジネス メッセージを検証するために、ロジック プラグインでは Message インスタンスの isBusinessMessage メソッドを呼び出すことができます。次のリストでは、SentMsgCounter クラスで isBusinessMessage メソッドが使用されています。 コード リスト 3-6 ビジネス メッセージの検証 手順 7 : ビジネス メッセージのプロパティを取得する ロジック プラグインは、ビジネス メッセージの特定のプロパティを取得するために MessageEnvelope または Message インスタンスで必要なメソッドを呼び出すことができます。次のリストでは、SentMsgCounter クラスが、メッセージの送信元である会話と関連付けられている会話定義の名前、ビジネス メッセージの送信側の名前、および受信側トレーディング パートナの名前を取得しています。 コード リスト 3-7 ビジネス メッセージのプロパティの取得 手順 8 : ビジネス メッセージを処理する ロジック プラグインは、ビジネス メッセージから必要な情報を取得し、処理することができます。たとえば、SentMsgCounter プラグインは、収集したメッセージ統計で請求処理データベースを更新します。 管理タスク 管理者がリポジトリにロジック プラグイン定義を追加するには、WebLogic Integration B2B Console の [ロジック プラグイン] タブで以下のタスクを実行します。
public int exceptionProcessingModel()
{
return EXCEPTION_CONTINUE;
}public void process(MessageEnvelope mEnv) throws PlugInException
{
String sender, conversation;
String tRecipient;
Connection conn = null;
Statement stmt = null;
Message bMsg = null;
...
}if((bMsg = mEnv.getMessage())== null)
{
throw new PlugInException("message is NULL");
}if (bMsg.isBusinessMessage())
{
...
}conversation= bMsg.getConversationType().getName();
sender = mEnv.getSender();
tRecipient = mEnv.getRecipient();
管理タスクの詳細については、『B2B Integration 管理ガイド』および『B2B Integration Administration Console オンライン ヘルプ』を参照してください。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |