ポート

コラボレーションは、ポートと呼ばれる外部へのインターフェースのセットを持っています。コラボレーション・テンプレートでは、各ポートはコラボレーション・オブジェクトが実行時に受信または作成するビジネス・オブジェクトを表す変数です。 例えば、顧客サービス管理アプリケーションにおいてある事象 (case) の終結によって起動される、仮想の Service Billing コラボレーションを考えてみましょう。このコラボレーションは、顧客レコード・アプリケーションから顧客の契約 (Contract) をビジネス・オブジェクトとして取り出し、契約にある情報を使用して会計アプリケーションに送り状 (Invoice) ビジネス・オブジェクトを送信します。

このようなコラボレーションは、対話するコネクターに 1 つずつ、計 3 つのポートを使用します。図 19 に示すように、各ポートは特定のタイプのビジネス・オブジェクトに関連付けられています。

図 19. Service Billing コラボレーションのポート


構成時に、管理者はテンプレートのポートを含むコラボレーション・オブジェクトを作成します。管理者は、その特定のコラボレーション・オブジェクトのポートをバインドして、各ポートをコネクターまたは別のコラボレーション・オブジェクトに関連付けます。 Retrieve 動詞を受け入れるテンプレートを持つコラボレーションでは、ポートを外部 として構成できるので、トリガー・ビジネス・オブジェクトをアクセス要求 (サーバー・アクセス・インターフェースの外部呼び出し) から受信できます。

ポートはバインドされたエンティティー間の通信を可能にするので、コラボレーション・オブジェクトはビジネス・プロセスを起動するビジネス・オブジェクトを受信でき、また要求および応答としてビジネス・オブジェクトを送受信できます。

図 20 に示す仮想コラボレーションでは、起動するポートが Case ビジネス・オブジェクトを外部プロセスからの呼び出しとして受信するようバインドされ、他のポートは Contract ビジネス・オブジェクトおよび Invoice ビジネス・オブジェクトを使用するコネクターにバインドされています。

図 20. コネクターにバインドされているポート


例えば、コンピューターの場合はさまざまなハードウェア・インターフェースがあります。コンピューターにスピーカーやモニターなどの周辺装置を接続するには、コンピューターのインターフェースの形状に合うケーブルやワイヤーを接続します。コラボレーション・ポートの「形状」とは、ビジネス・オブジェクトが通過できるタイプを指します。コンピューター・ケーブルが形状の合うインターフェースにしか接続できないように、管理者がポートをバインドできるのは、特定のタイプのビジネス・オブジェクトをサポートするコネクターに限られます。

同一タイプのビジネス・オブジェクトをサポートするポートを持つ 2 つのコラボレーションは、バインドできます。図 21 は、Item ビジネス・オブジェクトをサポートするポートでバインドされた 2 つのコラボレーション・オブジェクトを示しています。

図 21. 2 つのコラボレーション・オブジェクトのバインド


ポート名は、ポートでサポートされる、コラボレーションのビジネス・オブジェクトの役割を示すことがよくあります。例えば、コラボレーションが顧客情報を受信して契約情報を生成する場合、そのポートは「InCustomer and OutContract」と呼ぶことができます。

動的サービス呼び出し

コラボレーションは、明示的バインディングによりサービス呼び出しをインプリメントします。これは、コラボレーション・テンプレートからコラボレーションを開発する際に、既知の宛先 (コネクターや別のコラボレーションなど) に接続するようにコラボレーションのサービス呼び出しを構成する必要があることを意味します。明示的バインディングは静的であり、これは、ポートの割り当てが変更された場合、コラボレーション・オブジェクトを使用できるようにするには、コラボレーション・オブジェクトを InterChange Server に再配置する必要があることを意味します。また、コラボレーションは、すべてのポートがバインドされるまで配置できません。

InterChange Server には、動的サービス呼び出しを使用可能にする API が組み込まれています。これにより、コラボレーションは、コラボレーション開発時に事前定義されなかった、明示的にバインドされていない宛先に対するサービス呼び出しを行うことができます。動的サービス呼び出し API は コンシューマーに関する必要な詳細情報をすべて取得するため、コラボレーションは多数のコネクターと相互作用することが可能であり、コネクターの数とタイプは動的に変更することができます。動的サービス呼び出しを受信するためのコラボレーションを作成するときは、System Manager ツールでポートをバインドする際にインバウンド・ポートを外部ポートとしてバインドし、コラボレーションが外部ポートを介してトリガー・ビジネス・オブジェクトを受信できるようにする必要があります。API は、クライアントの名前やタイプなど、クライアントに関する基本的な情報を渡すことができます。また、API は、ソース・アダプター情報を使用して、サービス要求の送信先を 判別することもできます。動的サービス呼び出し API は同期です。

動的サービス呼び出し API を使用すると、ツールの必要なしに動的サービス・バインディングが可能になります。API および関連するパラメーター・セットをコラボレーション・テンプレート内で使用する場合、既存のコラボレーションに対する変更と影響は最小限ですみます。API 自体は、例外を処理したり、障害時の振る舞いを定義することはないので、これらの問題は、コラボレーション・テンプレートで処理する必要があります。また、API は、トランザクション・サポートの補正などのサービス品質を提供しません。API の詳細については、「コラボレーション開発ガイド」を参照してください。

動的サービス呼び出しでは、以下のサポートは制限されるか、またはサポートされません。

Copyright IBM Corp. 1997, 2004