IBM®
本文へジャンプ
    Japan [変更]    ご利用条件
 
 
検索範囲検索:    
    ホーム    製品    サービス & ソリューション    サポート & ダウンロード    マイアカウント    
skip to main content

developerWorks Japan  >  Sample IT projects  >

IBM CrossWorldsによるビジネス・プロセス統合: 第1回 コラボレーション開発への招待

developerWorks
ページオプション

JavaScript を要するドキュメントオプションは表示されません

原文はこちら

原文はこちら


レベル: 初級

Rob Cutlip, Software and Solutions Architect, FIT Team, IBM China Development Lab 

2002年 5月 01日

B2Bのコラボレーション (共同作業) が成功するためには、企業が運用する複数のアプリケーションが、社内と社外の両方で協調的に機能することが必要です。つまり、これらのアプリケーションがデータを交換し合い、関係するすべての人々に分かる形でデータを保管する必要があります。IBMのソリューション設計者Rob Cutlipはこの記事で、IBM CrossWorldsの製品を使用して、アプリケーションではなくビジネス・プロセスを統合することにより、コラボレーションを成功させる方法を示します。

B2Bの相互作用のための主要な課題は、アプリケーションの統合とデータ交換です。データ交換を行いやすくするために、EDIやRosettaNetからebXMLやWebサービスにいたるまで、さまざまなB2B交換プロトコルが考案されています。CrossWorldsコラボレーションが取り組んでいるのは、より大きな課題、つまり、ビジネス・プロセス統合を介して異種のアプリケーションを相互作用させ、データ交換させるという要求です。コラボレーションは、アプリケーション統合ではなくビジネス・プロセス統合を行うことによって機能します。

ここで言うコラボレーション とは、CrossWorlds Interchange Serverの中で実行されて、ビジネス・プロセスの記述に使用される、ソフトウェア・モジュールのことです。CrossWorldsの中核には処理ルーチンがあります。コラボレーションには、緩やかに結合された分散ビジネス・プロセスをインプリメントし、アプリケーション間でビジネス・オブジェクトの形によるデータ交換を容易に行うためのロジックが含まれています。コラボレーションは、B2Bの交換をサポートする、異種システムを統合するために必要なビジネス・プロセス・ロジックを処理します。

この記事では、IBM CrossWorldsのアーキテクチャー、ランタイム環境、およびコラボレーション開発プロセスについて手短に検討します。今後の記事では、コラボレーション開発プロセスについて深く掘り下げ、サービス・プロバイダー市場などの実際の環境でコラボレーションがどのように機能するのかについて、詳しく検討します。

CrossWorldsのハブ・アンド・スポーク・アーキテクチャー

図1に示すIBM CrossWorldsアーキテクチャーは、 Interchange Server (ICS) がハブとして処理環境をサポートする、ハブ・アンド・スポーク・トポロジーになっています。このアーキテクチャーは、コラボレーションのための、マルチスレッド化されたJavaテクノロジー・ベースの実行フレームワークです。InterchangeサーバーはWindowsおよびUnixプラットフォーム上の独自のJVMで稼動し、エラー処理やイベント・スケジューリングなどのサービスを提供します。 CrossWorlds System Manager (CSM) は、システムおよび構成の管理サービスを提供します。 Central Repository は、ICSのためのメタデータおよび相互参照データのリポジトリー・サービスとして機能する、関係データ・ストアです。CrossWorldsコネクターは、ICSにおけるコラボレーションでアプリケーション接続を行えるようにします。コラボレーション開発ツールは、開発用のUMLベースのビジネス・プロセス・モデル化ツールを提供します。


図1. CrossWorldsのハブ・アンド・スポーク・トポロジー




上に戻る


CrossWorldsのランタイム環境

CrossWorlds環境で提供される基本エンティティーには、コラボレーション、ビジネス・オブジェクト、マップ、およびコネクターが含まれます。CrossWorlds開発環境には、以下のものが含まれます。

コラボレーション
ビジネス・プロセス・ロジックが組み込まれています。コラボレーションはInterchanger Server (ハブに相当します) 内で実行され、アクション、データ移動、および処理エンティティーを調整するビジネス・プロセスを記述します。データ・コラボレーション交換はビジネス・オブジェクトの形式で行われます。
ビジネス・オブジェクト
データ交換を容易にするためのエンティティーです。ビジネス・オブジェクトはメッセージとして考えることができます。アプリケーションに関連したビジネス・オブジェクトは、アプリケーション固有のビジネス・オブジェクト (ASBO) と呼ばれます。一般的なビジネス・オブジェクトはICS内に存在します。一般的には、アプリケーション間で転送されるそれぞれのビジネス・オブジェクトには、マップが関連付けられている必要があります。
マップ
データ変換を行うJavaコードです。データ変換では、ソース・ビジネス・オブジェクトから宛先ビジネス・オブジェクトへの属性の変更を指定します。
コネクター
アプリケーションとCrossWorldsコラボレーションの間の接続を行えるようにします。コネクターはコネクター・コントローラーとコントローラー・エージェントからなります。コネクター・コントローラーは、コラボレーションとコントローラー・エージェントとの間でのビジネス・オブジェクトの交換を制御します。

図2. CrossWorldsコラボレーションのランタイム・アーキテクチャー




上に戻る


基本的なコラボレーション開発ステップ

コラボレーション、ビジネス・プロセス、およびコンポーネント再利用を開発する際には、次の2つのことを忘れないでください。CrossWorldsコラボレーションは、異種のアプリケーション間の仲介を行います。例えば、図2のアプリケーションAとアプリケーションBは、相手側をまったく意識しません。コラボレーションだけがデータ変換と調整を行うようになっているため、統合はアプリケーション・レベルではなくビジネス・プロセス・レベルで行われます。

CrossWorldsはコンポーネント再利用のモデルです。CrossWorldsとともに配布される、Process Designerツール (コラボレーション・テンプレートおよびサポート・マップ)、ビジネス・オブジェクト、およびコネクターを使用することにより、最小限のコーディングでコラボレーションを迅速に構築することができます。

図3は、コラボレーション開発に関連する4つの主要なステップ (および、かなり標準的に使用されている5番目のステップであるデプロイメント) を示しています。これらのステップについて、以下で詳しく説明します。


図3. コラボレーション開発プロセスの概要

ステップ1. コラボレーション・プロセスを設計する

最初のステップは、高レベルのプロセス設計です。このステップには、システム要件の分析と関連するビジネス・プロセスの識別が含まれます。ビジネス・プロセスをサポートすることのできるコラボレーション・テンプレートがすでに使用可能になっているかどうか、またカスタム・フローが必要かどうかを評価する必要もあります。最後に、コラボレーションの構築に使用するビジネス・オブジェクト、マップ、およびコネクターを識別する必要があります。

ステップ2: ビジネス・オブジェクト定義を設計し、構築する

2番目のステップは、ビジネス・オブジェクト定義の設計および構築です。ビジネス・オブジェクトは、ビジネス・オブジェクト定義のインスタンスです。ビジネス・オブジェクトは実行時に作成またはインスタンス化されます。これらはICSリポジトリーに保管されません。ビジネス・オブジェクト定義は、情報 (CustomerまたはInvoiceなど)、およびさまざまなタイプ (例えば、顧客名や顧客番号) を定義する属性を指定します。この定義では、サポートされる動詞 (create、retrieve、update、およびdeleteなど) も指定します。図4の例は、提供されているATPテンプレートに従っています。


図4. ビジネス・オブジェクト定義

ビジネス・オブジェクトは、メッセージとして考えることができます。ビジネス・オブジェクトには、 アプリケーション固有のビジネス・オブジェクト (ASBO) と一般的なビジネス・オブジェクト (GBO) の2つの種類があります。ASBOには、コネクター・エージェントによって特定のアプリケーションに移動したりアプリケーションから取り出されたりするデータが含まれます。GBOは、再利用を行いやすくするためにコラボレーションで使用される一般オブジェクトです。GBOには、会社名や連絡先情報などのアプリケーション固有の情報は含まれません。ASBOおよびGBOのデータ・フィールドは、マップを使用して関連付けられます。コラボレーションに送られてくるASBOデータ・フィールドはGBOデータ・フィールドにマップされます。CrossWorldsコラボレーションから送り出される場合、プロセスは繰り返され、GBOデータ・フィールドは、そのアプリケーションに関連したASBOにマップされます。CrossWorldsは、製品とともに配布されるコラボレーション・テンプレートと関連したビジネス・オブジェクトを提供します。多くの場合、小規模な変更を加えるだけでこれを再利用することができます。

ステップ3: コラボレーションを構築する

次に、コラボレーションを構築します。コラボレーションは、Javaで書かれた、ビジネス・プロセスを記述するソフトウェア・モジュールです。これらのコラボレーションはICS環境で稼働します。コラボレーション・オブジェクトはランタイム・オブジェクトです。コラボレーション・テンプレートは、CrossWorldsリポジトリー内に置かれるエンティティーです。テンプレートは、さまざまなコラボレーションを作成するためにコピーおよび再利用することのできる、実行不能なコード断片です。これには、いくつかのステップが関連しています。

  • コラボレーション・テンプレートの作成およびプロパティーの編集

    一般には、コラボレーション・テンプレートの独自のコピーを作成し、必要に応じてプロパティーを編集します。図5に示すように、コラボレーション・テンプレートのプロパティー、ポート、およびトリガー情報は、Process Designerツールを使用して変更することができます。


    図5: テンプレートと関連付けられたプロパティー

    コラボレーション・テンプレートが実行可能なコラボレーション・オブジェクトとなるのは、テンプレートのポートが結合されているときだけです。コラボレーション・テンプレートは、ポート、プロパティー、およびシナリオの、3つの主要コンポーネントからなります。

    ポート は、コラボレーションの外界に対するインターフェースです。コラボレーション・テンプレート内におけるポートは、実行時にコラボレーション・オブジェクトが受信したり作成したりするビジネス・オブジェクトを表す変数になっています。これらは、アプリケーション・コネクター、コラボレーション・グループを形成する他のコラボレーション、またはサーバー・アクセス・インターフェースに結合されます。 サーバー・アクセス・インターフェース (SAI) は、ICSがインターネット経由で情報にアクセスできるようにするための方法の1つです。SAIへのポート結合は、外部ポート結合と見なされます。CrossWorldsとともに、広く使用されているアプリケーション用の多数のアプリケーション・コネクターが同梱されています。コラボレーションは、これらのポートまたはインターフェースを介してビジネス・オブジェクトを送受信します。

    プロパティー は、コラボレーションの実行時の振る舞いを決定できるようにするもので、標準プロパティーまたはコラボレーション固有のプロパティーに分類することができます。標準プロパティーは、一般にはすべてのコラボレーションで使用可能なプロパティーです。標準プロパティーはフィルター操作、エラー処理、および同期を行います。

  • シナリオおよびアクティビティー・ダイアグラムをインプリメントする。

    シナリオ は、特定のビジネス・プロセスをインプリメントするコードをコラボレーションに組み込みます。シナリオによって実行される操作として一般的なものは、ビジネス・オブジェクトの取得と操作です。


    図6. ATPコラボレーション・テンプレートの同期ロジックのためのアクティビティー・ダイアグラム

    図6のアクティビティー・ダイアグラムは、シナリオをグラフィックで表現したものです。アクティビティー・ダイアグラムは、アクション、実行フロー、および外部呼び出しからなり、それらはすべて標準UMLベースのエレメントです。開発者はProcess DesignerツールのDiagram Symbolsツールバーから新規エレメントをドラッグ・アンド・ドロップすることができます。

  • エラー処理およびメッセージ処理をインプリメントする

    エラー処理は、CrossWorldsコラボレーション開発を含むすべてのプログラム開発で重要な意味を持ちます。UMLシナリオ・ダイアグラムにおけるそれぞれのアクション・ノードには、正常パスと障害パスの両方がなければなりません。障害パスは、分かりやすいメッセージを出して、障害終了ノードで終了する必要があります。

  • コード・フラグメントをカスタマイズする

    図7は、実際のJavaコードがコラボレーションでどのように使用されるのかを示しています。ここでは、 Initialize Variable というアクション・ノードがフォアグラウンドでオープンするようになっています。すべてのアクション・ノードには、ラベル・セクション、記述セクション、およびコード・フラグメント・セクションが関連付けられています。ユーザーは、新規のアクション・エレメントを作成してコーディングすることも、既存のアクション・ノードにあるコード・フラグメントを変更することもできます。すべてのコード変更が完了した後で、Process Designerを使用してコラボレーションをコンパイルしてください。コラボレーションのコンパイルが正常に行われると、残りのルーチン・テストおよびデプロイメントのステップを行えるようになります。


    図7. Initialize Variableのアクション・ノードに関連付けられたコード

CrossWorldsの開発ツール

コラボレーション開発に使用されるProcess Designer は、コネクター、ビジネス・オブジェクト、およびコラボレーションを定義するグラフィック・ツールです。

コラボレーションおよびマップの開発に使用されるTest Connector は、すべてのコネクターのエミュレーターとして機能します。これは、コラボレーションおよびマップの振る舞いをテストするために使用されます。

Map Designer は、マッピング用のデータ変換を指定するためのグラフィック・ツールです。

Relationship Designer は、オブジェクトのタイプ間の関係を定義します。Map Designerは、データを変換する際にこれらの定義を使用します。

Connector Development Toolkit は、CrossWorlds互換コネクターを開発するためのクラス・ライブラリーとユーティリティーのセットです。

Web Services Generation Utility (WSGenUtility) は、Webサービス開発をサポートするWSDLファイルとSOAPプロキシーを生成します。

コラボレーションに関する若干の補足事項:

  • コラボレーションはトランザクションの振る舞いをサポートします。
  • コラボレーション・オブジェクトは、相互に結合されてコラボレーション・グループを形成することがあります。コラボレーションをグループにまとめることにより、プログラミング・ロジックをモジュラー化しやすくなります。大規模で複雑なグループに組み合わせる前に、ユニットを個別に構築してテストすることができます。これらのグループにより、いわゆる付け足し式開発 が行いやすくなります。このように、コラボレーション・グループを使用すると、既存のコラボレーションへの追加が容易になります。
  • Interchange Serverは、複数のコラボレーションを、別個のスレッドで実行できるようにします。また、同一コラボレーションのマルチスレッド化もサポートします。ただし、どのような場合でも、コラボレーションは単一方向に流れます。例えば、購入注文コラボレーションでは、応答に注文確認コラボレーションを使用する必要があります。



上に戻る


要約

この記事では、IBM CrossWorldsアーキテクチャーを高レベルな視点で眺めました。また、CrossWorldsビジネス・プロセス・フローを使用して異種の分散アプリケーションを緩やかに結合するためのランタイム環境について検討しました。Process Designerツールを使用することにより、ビジネス・プロセス・コラボレーションのプログラマチックな作成が簡単に行えること、コラボレーション・テンプレートを使用して開発プロセスを高速化できることを示しました。提供される多くのコラボレーション (CrossWorldsとともに配布される関連のマップ、ビジネス・オブジェクト、コネクター) のいずれかを使用することにより、ビジネス・プロセス統合を定型化することができます。今後の記事では、この記事で示した基礎の上に増築を行い、コラボレーションをプログラマチックに相互作用させ、事業の範囲を拡張したりB2B統合を行いやすくしたりするためにWebサービスを活用する方法を検討します。また、IBMのWebSphereオファリングを使用して、企業およびサービス提供者をシームレスで簡単にB2B統合する方法についても説明します。



著者について

Rob Cutlip氏は、IBM Software Groupのソフトウェアおよびソリューション設計者です。最近6年間は、最高のe-businessソリューションの構築に専念しています。著述家であり、発明家であり、またときとして好人物でもあるRobは、Fortune 500に含まれる企業で、技術者および管理者として15年の経験を積んでいます。




記事の評価


サイト改善のため、ご意見をお寄せください。こちらのフォームからお願いいたします。



 


 


不充分・不完全である大変素晴らしい
 


この記事を共有する

del.icio.us del.icio.us newsing newsing FC2ブックマーク FC2ブックマーク
Choix! Choix! ニフティクリップ ニフティクリップ Yahoo!ブックマーク Yahoo!ブックマーク
MM/memo MM/memo CZブックマーク CZブックマーク livedoorクリップ livedoorクリップ
はてなブックマーク はてなブックマーク Buzzurl(バザール) Buzzurl(バザール)




上に戻る


    日本IBMについて プライバシー お問い合わせ