コラボレーションの概要

コラボレーション とは、ビジネス・プロセスを記述するソフトウェア・モジュールで、IBM InterChange Server Express (ICS) の中で実行されます。

ビジネス・プロセスとは、アプリケーション統合のビジネス・ロジックを含むプログラムです。コラボレーションは、さまざまなタイプの Java 操作を実行することができます。しかし、ほとんどの場合、コラボレーションはビジネス・オブジェクトに対して以下の操作を実行します。

表 1 に示すように、コラボレーションはリポジトリー定義とランタイム・オブジェクトという 2 つの構成要素から成るエンティティーです。

表 1. コラボレーションの構成要素
リポジトリー・エンティティー ランタイム・オブジェクト
コラボレーション・テンプレート コラボレーション・オブジェクト

コラボレーションをインストールするときには、コラボレーション・テンプレート をインストールします。コラボレーション・テンプレートにはコラボレーションの実行ロジックがすべて含まれますが、コラボレーションをすぐに実行できるわけではありません。コラボレーションを実行するには、最初にテンプレートから コラボレーション・オブジェクト を作成する必要があります。コラボレーション・オブジェクトを実行可能にするには、コラボレーション・オブジェクトをコネクターまたは別のコラボレーション・オブジェクトにバインドしてから他の構成プロパティーを指定することにより、コラボレーション・オブジェクトを構成します。

注:
コラボレーションが IBM WebSphere Business Integration Server Express システムのコンポーネントとして機能する仕組みの概要については、「システム・インプリメンテーション・ガイド」を参照してください。このセクションでは、コラボレーションの開発方法の観点からコラボレーションの定義について説明します。

本書では、コラボレーション・テンプレートとコラボレーション・オブジェクトを区別する必要がない限り、どちらも単にコラボレーションと呼びます。

コラボレーション・テンプレート

コラボレーションは、コラボレーション・テンプレートとして開始されます。

コラボレーション・テンプレートとは、コラボレーションの中のロジックの仕様です。コラボレーション・テンプレートは Process Designer Express ツールを使用して定義します。このツールは、該当する情報を System Manager に格納します。コラボレーション・テンプレートの開発には以下のステップが含まれます。

コラボレーション・テンプレートの作成

コラボレーションを開発する際、Process Designer Express というツールを使用してコラボレーション・テンプレートを開発します。Process Designer Express には使いやすいグラフィカル・ユーザー・インターフェース (GUI) が用意されています。このためプログラムを開発するために通常必要となるコーディングの多くが不要になります。このインターフェースを使用すると、変数を宣言したりコード・フラグメントを記述するなどの作業が容易になります。Business Integration Express には、開発プロセスを促進する汎用コラボレーション・テンプレートも用意されています。Process Designer Express を使用すると、標準的なプログラム言語のプログラムを記述するよりも簡単にコラボレーション・テンプレートを開発できます。しかし、コラボレーション開発の最終的な結果は Java クラスの形式のプログラムです。

Process Designer Express は、配置までコラボレーション・テンプレート情報を System Manager に保管します。コラボレーションが配置されると、コラボレーション情報が InterChange Server Express で使用可能になり、コラボレーションがトリガー・イベントを受信したときにこの情報にアクセスできます。Process Designer Express の詳細については、Process Designer Express の概要を参照してください。

コラボレーション・テンプレートの構築

Process Designer Express を使用してコラボレーション・テンプレートを構築するには、以下の 2 段階の開発プロセスを実行します。

アクティビティー・ダイアグラムの作成

コラボレーション・テンプレートは、以下の 2 つの要素から成ります。

図 1 に、アクティビティー・ダイアグラムの例を示します。

図 1. アクティビティー・ダイアグラム


アクティビティー・ダイアグラムの基本単位は アクションで、長方形で表されます。

アクションでコラボレーションの作業単位を指定し、Java コード・フラグメントの作成および保管に使用されます。

アクティビティー・ダイアグラムは、実行時に可能な振る舞いをすべて表現します。図 1 のアクティビティー・ダイアグラムには複数の実行経路があります。実行経路 は、一連のシンボルとリンクによって表され、一番上の開始シンボルから一番下の終了シンボルまで流れます。

複数の出力リンクを持つシンボルは決定ノードで、コラボレーションが複数のロジック経路のうちいずれの経路に進むかを決定するポイントです。

Java コード・フラグメントの実装

各アクションには、Java プログラム言語のコード・フラグメント (アクティビティー定義 と呼ばれる) が含まれており、開発者は機能ブロックの形式でこのコード・フラグメントにさらにカスタム・コードを追加できます。Process Designer Express は、生成するコラボレーション・テンプレート・コードにアクティビティー定義を埋め込み、コラボレーション・オブジェクトが実行されるときに、コラボレーション・フローの一部としてその生成したコードを実行します。

必要であれば、カスタム・アクティビティー定義を追加できます。以下のことができます。

コラボレーション・テンプレートのコンパイル

コラボレーション・テンプレートの定義を完了すると、つまりそのシナリオを定義し、アクティビティー・ダイアグラムを構築し、コード・フラグメントをカスタマイズして、メッセージ・ファイルを作成すると、テンプレート全体をコンパイルします。コラボレーション・コンパイル・プロセスでは、コラボレーション・ランタイムが使用する 3 種類のファイル (.class、.java、および .txt) が作成されます。

コラボレーションをコンパイルすると、これらのファイルは System Manager 内のユーザーの統合コンポーネント・ライブラリー (ICL) プロジェクトに自動的に作成されます。コラボレーション・オブジェクトをサーバーに配置すると、これらのファイルは productDir¥collaborations ディレクトリーに自動的に移動されます。表 2 に、ファイルと、コンパイルおよび配置後の場所を示します。

表 2. コラボレーション・ファイル
ファイル・タイプ 説明 ロケーション
.class
コンパイル時に Process Designer Express によって生成される最終的な実行可能クラス・ファイルです。 コンパイル後:

ICLProject¥Templates¥Classes

配置後:

classes¥UserCollaborations

.java
コード生成時に Process Designer Express によって作成されるソース・コード・ファイルです。 コンパイル後:

ICLProject¥Templates¥Src

配置後:

classes¥UserCollaborations

.txt
開発時にテンプレートに追加したすべてのメッセージ・テキストを含むメッセージ・ファイルです。
コンパイル後:

ICLProject¥Templates¥messages

配置後:

¥messages

要確認

メッセージを変更するときは必ず Process Designer を使用し、メッセージ・テキスト・ファイルを直接変更することは絶対に行わないでください。コラボレーションが配置された後、このファイルはランタイム環境で使用されます。これを直接変更すると、エラーが発生する場合があります。

コラボレーション・テンプレートをコンパイルすると、System Manager を使用してコラボレーション・オブジェクトを作成し、これらのオブジェクトとテンプレートを InterChange Server Express に配置することができます。「WebSphere InterChange Server システム・インプリメンテーション・ガイド」を参照してください。

コラボレーション・オブジェクト

コラボレーション・テンプレートにはコラボレーションの実行ロジックが含まれますが、コラボレーションを実行する前に以下のステップを行う必要があります。

  1. コラボレーション・オブジェクトを作成します。

    コラボレーション・オブジェクトは、コラボレーション・テンプレートのインスタンスです。

    コラボレーション・オブジェクトを作成するには、System Manager を使用します。

  2. コラボレーション・オブジェクトを構成します。

    コラボレーション・オブジェクトは、構成後に実行可能になります。コラボレーション・オブジェクトを構成するには、そのオブジェクトをコネクターまたは別のコラボレーション・オブジェクトにバインドします。その後、他の構成プロパティーを指定します。

    コラボレーション・オブジェクトが対話するオブジェクトを指定するプロセスのことをバインディング と呼びます。

    コラボレーション・オブジェクトは、以下の要素にバインドできます。

System Manager を使用してコラボレーション・オブジェクトを作成および構成する方法の詳細については、「WebSphere InterChange Server システム・インプリメンテーション・ガイド」を参照してください。

図 2 に、テンプレート OrderStatus から OrderStat というコラボレーション・オブジェクトを作成する方法を示します。

図 2. コラボレーション・オブジェクトの作成


OrderStatus コラボレーション・テンプレートは 2 つの定義済みポートと共に作成されています。これらのポートは、コラボレーション・オブジェクトがそのソース・オブジェクトおよび宛先オブジェクトと通信するときに使用されます。OrderStat コラボレーション・オブジェクトの構成の一環として、2 つの外部オブジェクトにオブジェクトをバインドします。図 3 では、OrderStat コラボレーション・オブジェクトが SAP コネクターと Vantive コネクターにバインドされています。

図 3. コネクターにバインドされたコラボレーション・オブジェクト


コラボレーション・オブジェクトをバインドし構成すると、System Manager を使用してランタイム環境でテストして配置できます。コラボレーション・オブジェクトは、単一スレッドまたはマルチスレッドで実行されるように構成できます。1 つのスレッドは 1 つのトリガー・イベントを扱います。

複数のトリガー・イベントを並行処理させるためには、コラボレーション・オブジェクトをマルチスレッド・モードで実行してください。

長期存続ビジネス・プロセスとしてのコラボレーション

コラボレーション・オブジェクトは長期存続ビジネス・プロセスとして配置でき、ビジネス・プロセス間の非同期通信が可能になります。この結果、ビジネス・プロセスをより長い期間にすることができます。 長期存続ビジネス・プロセスでは、イベント・フロー・コンテキスト (グローバル・テンプレートや Process Designer Express で作成されたポート変数およびビジネス・オブジェクト変数、実行時ワークフロー情報を含む) はサービス呼び出しの間持続します。

非同期インバウンドおよび同期サービス呼び出しで長期存続ビジネス・プロセスのパラメーターをさらに定義するために、サービス呼び出しタイムアウト値を指定できます。

コラボレーション・オブジェクトを長期存続ビジネス・プロセスとして使用する計画がある場合は、それに応じてコラボレーション・テンプレートを構成する必要があります。コラボレーション・テンプレートを作成する前に、長期存続ビジネス・プロセスの設計を参照してください。テンプレートを設計後、長期存続ビジネス・プロセスをサポートするのに必要な特別な構成タスクの詳細については、コラボレーション・テンプレートの構築を参照してください。

コラボレーションと WebSphere Business Integration Express システム

WebSphere Business Integration Express システムでは、ビジネス・オブジェクトを使用して、1 つのアプリケーションから別のアプリケーションに、データとアクションの要求を伝達します。コラボレーション・オブジェクトの中のシナリオが特定のビジネス・オブジェクトとアクション (動詞) を受け取ると、コラボレーションの実行が開始されます。ビジネス・オブジェクトと動詞のこの組み合わせをコラボレーションが受け取ることにより、シナリオの実行が開始されます。この組み合わせを、フロー・トリガー と呼びます。

コラボレーションの開発者は、コラボレーション・テンプレートの設計部分として、各シナリオのフロー・トリガーとして機能するビジネス・オブジェクト (と動詞) を指定します。さらに、コラボレーション・オブジェクトの構成部分として、コラボレーションの受信ポートをフロー・トリガー用の特定のソースにバインドします。コラボレーションが受け取るフロー・トリガーのタイプは、フロー・トリガーを受信ポートに送信するソースのタイプによって決まります。

表 3 に示すように、フロー・トリガーのタイプは、複数あるタイプのうち、受信ビジネス・オブジェクトのソースに基づいて決まります。

表 3. フロー・トリガーのタイプ
フロー・トリガー 受信ビジネス・オブジェクトのソース
トリガー・イベント コネクターまたは別のコラボレーション
トリガー・アクセス呼び出し アクセス・クライアント (ICS 内のサーバー・アクセス・インターフェースを経由)

注:
アクセス・クライアントとは、サーバー・アクセス・インターフェース API を通じてコラボレーションの実行を要求できる外部プロセスです。詳細については、「アクセス開発ガイド」を参照してください。

フロー・トリガーの代表的なソースはコネクターです。そのため、用語「トリガー・イベント」はコラボレーションの受信ビジネス・オブジェクトを意味することがよくあります。例えば、「テンプレート定義」ウィンドウには、「ポートおよびトリガー・イベント」というタブがあります。このタブからは、コラボレーション・ポートを定義し、トリガー・イベントをシナリオに割り当てることができます。このタブとタブ内の関連タブのタイトルには「トリガー・イベント」という用語が含まれていますが、このタブは、トリガー・イベントとトリガー・アクセス呼び出しという 2 種類のフロー・トリガーの割り当てを扱います。シナリオがコネクターからビジネス・オブジェクトを受け取るときには、そのフロー・トリガーはトリガー・イベントです (タブ名が示すとおりです)。しかしシナリオがアクセス・クライアントからビジネス・オブジェクトを受け取るときには、フロー・トリガーはトリガー・アクセス呼び出しです。後者の場合にも、「ポートおよびトリガー・イベント」テーブルを使用して、シナリオにトリガー・アクセス呼び出しを割り当てます。

コラボレーションのフロー・トリガーのタイプは、次に示すように実際にコラボレーション・オブジェクトのポートが構成されるまでは決まりません。

コラボレーション・オブジェクトの構成方法の詳細については、「WebSphere InterChange Server システム・インプリメンテーション・ガイド」を参照してください。「テンプレート定義」ウィンドウの「ポートおよびトリガー・イベント」タブの詳細については、"ポートおよびトリガー・イベントの定義 (「ポートおよびトリガー・イベント」タブ)"を参照してください。

Copyright IBM Corp. 2004