レベル: 中級 Rob Cutlip, Software and Solutions Architect, FIT Team, IBM China Development Lab Matthew Notowidigdo, IBM Extreme Blue Technical Intern, FIT Team, IBM China Development Lab
2002年 8月 01日 B2B対話の主要な課題はアプリケーション統合とデータ交換です。データ交換を行いやすくするために、EDIやRosettaNetからebXMLやWebサービスにいたるまで、さまざまなB2B交換プロトコルが考案されています。このシリーズの第1回で、RobはIBM CrossWorlds製品とコラボレーション開発プロセスを紹介しました。今回の記事で、彼とMatt NotowidigdoはWebサービスを使用して、企業の壁を超えてCrossWorldsコラボレーションの適用範囲を拡張します。
IBM CrossWorlds環境の復習
第1回でRobはIBM CrossWorldsアーキテクチャーを紹介しました。IBM CrossWorldsアーキテクチャーは、
Interchange Server (ICS) がハブとして処理環境をサポートするハブ・アンド・スポーク・トポロジーになっています。このアーキテクチャーは、コラボレーションのための、マルチスレッド化されたJavaテクノロジー・ベースの実行フレームワークです。InterchangeサーバーはWindowsおよびUNIXプラットフォーム上の独自のJVMで稼動し、エラー処理やイベント・スケジューリングなどのサービスを提供します。
CrossWorlds System Manager (CSM) は、システムおよび構成の管理サービスを提供します。
Central Repository は、ICSのためのメタデータおよび相互参照データのリポジトリー・サービスとして機能する、関係データ・ストアです。
CrossWorldsコネクター は、ICSにおけるコラボレーションでアプリケーション接続を行えるようにします。コラボレーション開発ツールは、開発用のUMLベースのビジネス・プロセス・モデル化ツールを提供します。
図1. IBM CrossWorldsのトポロジー
IBM CrossWorlds環境で提供される基本エンティティーには、コラボレーション、ビジネス・オブジェクト、マップ、およびコネクターが含まれます。CrossWorlds開発環境には、以下のものが含まれます。
-
コラボレーション
- ビジネス・プロセス・ロジックが組み込まれています。コラボレーションはInterchanger Server (ハブに相当します) 内で実行され、アクション、データ移動、および処理エンティティーを調整するビジネス・プロセスを記述します。データ・コラボレーション交換はビジネス・オブジェクトの形式で行われます。
-
ビジネス・オブジェクト
- データ交換を容易にするためのエンティティーです。ビジネス・オブジェクトはメッセージとして考えることができます。アプリケーションに関連したビジネス・オブジェクトは、アプリケーション固有のビジネス・オブジェクト (ASBO) と呼ばれます。汎用的なビジネス・オブジェクトはICS内に存在します。一般には、アプリケーション間で転送されるそれぞれのビジネス・オブジェクトには、マップが関連付けられている必要があります。
-
マップ
- データ変換を行うJavaコードです。データ変換では、ソース・ビジネス・オブジェクトから宛先ビジネス・オブジェクトへの属性の変更を指定します。
-
コネクター
- アプリケーションとCrossWorldsコラボレーションの間の接続を行えるようにします。コネクターはコネクター・コントローラーとコネクター・エージェントからなります。コネクター・コントローラーは、コラボレーションとコネクター・エージェントとの間でのビジネス・オブジェクトの交換を制御します。
IBM CrossWorldsとWebサービス
IBM CrossWorlds環境は、内部および外部からのWebサービスへのアクセスをサポートします。外部のインターネットから発信された要求は、Server Access Interface経由で入力されます。コラボレーション内で発信されたWebサービス要求では、Webサービス (SOAP) コネクターが使用されます。現行のインプリメンテーションでは、Apache SOAP 2.2サーブレットが使用されます。Apache SOAP 2.2サーブレットは、IBM CrossWorldsによって生成されたプロキシー・クラスとインターフェースする、Webサーバーで実行されます。
図2. IBM CrossWorldsとWebサービス
IBM CrossWorldsアーキテクチャーの機能が強化され、インターネット経由でのアクセスをサポートするようになりました。
図2 では、SOAPをサポートするWebSphere Application Serverが、CrossWorldsで生成されたプロキシー・クラスをホストしています。着信側のServer Access Interface (SAI) APIでは、外部プロセスがInterchange Server内でコラボレーションの実行を要求できるようになっています。SAIは呼び出しによって起動するフローをサポートします。このフローは、同期式の非永続要求/応答交換をサポートします。SAIは次のようにして外部要求を処理します。
- アクセス・クライアントが起動アクセス・データを作成します。アクセス・クライアントはこれを、要求時にICSに送信します。
- アクセス・クライアントは、適切なSAIのメソッドを呼び出して、起動アクセス呼び出しをInterchange Server内のSAIに送信します。
- SAIが起動呼び出しを受信し、データ・ハンドラーを使用して必要な変換を行います。これによって生成されたビジネス・オブジェクトおよび起動アクセス・データは、コラボレーションに送信されます。
- SAIは、生成されたビジネス・オブジェクトをコラボレーションから受信します。
- SAIはアクセス応答を実行してアクセス応答データをアクセス・クライアントに戻します。これを行う前に、SAIは、データ・ハンドラーとメタ・オブジェクト・マップを使用して必要な変換を行います。
ICSからの発信側となるSOAPコネクターは、CrossWorldsコラボレーションが外部でWebサービスを呼び出すための手段を提供します。コラボレーション内でWebサービスを呼び出すための基本的なステップは、次のとおりです。
- SOAPコネクターが、ICSで実行されるコラボレーションからサービス呼び出し要求を受信します。
- そして、サービス要求メッセージの本体で提示されたビジネス・オブジェクト・データとともにSOAPデータ・ハンドラーを利用して、SOAPメッセージを作成します。
- SOAPコネクターはApache SOAP APIを使用して外部Webサービスを起動します。
- コネクターは、呼び出されたWebサービスからの応答を、SOAPデータ・ハンドラーを使用して再び変換します。
- SOAPコネクターがビジネス・オブジェクトをコラボレーションに戻します。
IBM CrossWorldsによるWebサービスの開発
ビジネス・プロセスをWebサービスとして公開する能力は、ビジネス・プロセス管理システムの要件としての重要性を増しつつあります。やがては、この作業を行う手順が容易になり、インプリメンテーションの選択肢も多様になることでしょう。現時点では、CrossWorldsにおける基本的な方法として、指定されたコラボレーションを公開してWebサービスとしてポートするために必要なコードと定義を、Web Services Generation Utilityを使用して作成するやり方があります。この記事の残りの部分では、CrossWorldsビジネス・プロセスをWebサービスとして外部に公開するために必要な、以下の基本ステップについて検討します。
- コラボレーションの起動ポートを変更して、外部に出力できるようにする
- データ・ハンドラー・メタ・オブジェクトを作成し、登録する
- Web Services Generation Utilityを実行する
- プロキシー・クラスをデプロイする
コラボレーション、ポート、およびビジネス・オブジェクトの概念については、
第1回を再読するか、CrossWorldsの文書をお調べください。
コラボレーションの起動ポートを変更して、外部に出力できるようにする
最初のステップは、コラボレーションの起動ポートを外部に公開することです。これは、図3 に示すようにCSMの内部で行われます。「Bind Port」をクリックすると図4 のような画面が表示されます。「Type」を「External」に設定してください。このポートは起動ポートであるため、着信ポートとしてのみ構成することができます。この画面をクローズした後で、プロジェクトをサーバーに保管してください。
図3. CSMにおけるコラボレーションの起動ポートの変更
図4. 外部出力するためのポートの構成
データ・ハンドラー・メタ・オブジェクトを作成し、登録する
次に、コラボレーションをWebサービスとして外部に公開するために新しいビジネス・オブジェクトを開発する必要があります。SAIはSOAPデータ・ハンドラーを呼び出して、SOAPメッセージをビジネス・オブジェクトに変換し、ビジネス・オブジェクトをSOAPメッセージに変換します。これらのタスクを実行するためには、データ・ハンドラーのメタ・オブジェクト が必要です。メタ・オブジェクトには、親構成メタ・オブジェクトと子構成メタ・オブジェクトの2つのタイプがあります。親メタ・オブジェクトには、変換情報が含まれ、関連する子メタ・オブジェクトを参照します。子メタ・オブジェクトは、ビジネス・オブジェクト、動詞 (create、retrieve、update、またはdelete)、および本体名 (例えば、getOrder) を定義します。子メタ・オブジェクトの作成は、
図5 に示すようなBusiness Object Designerツールを使用して行うことも、テキスト・ファイルからビジネス・オブジェクトを作成して行うこともできます。この結果として得られる、Requestメタ・オブジェクトおよびResponseメタ・オブジェクト用のメタ・オブジェクト定義は、設計機能から保管することも、テキスト・ファイルとして一から作成することもできます。この記事のためのZIPソースに、要求オブジェクト・ファイルのサンプルがMO_Service_SOAPToBO_Request.inとして組み込まれ、また、応答オブジェクト・ファイルのサンプルが、MO_Service_BOToSOAP_Response.inとして組み込まれています。
図5. 子メタ・オブジェクトの例
子構成メタ・オブジェクトを作成した後で、それらを適切な親構成メタ・オブジェクトに登録する必要があります。この場合の作業も、図6 に示すようにBusiness Object Designerツールで行うことも、親メタ・オブジェクト内のテキストを変更して、子メタ・オブジェクトへの参照を組み込むことによって行うこともできます。
図6. 親メタ・オブジェクトへの子メタ・オブジェクトの登録
Web Services Generation Utilityを実行する
このコラボレーションをWebサービスとして公開するためには、必要なWSDLファイルとSOAPインターフェースを作成するための一連のパラメーターを指定して、Web Services Generation Utilityを起動してください。
図7 は、CrossWorldsサーバーに接続してServer IORファイル (CrossWorldsインストール・ディレクトリーにあります) の位置を指定する方法を示しています。
図7. サーバーへの接続
CrossWorldsサーバーに接続した後で、図8 に示すように、Mimeタイプ、コラボレーション名、コラボレーション・ポート、およびプロキシー・クラス名を指定してください。デフォルトのMimeタイプはxml/soapです。これは、プロキシー・クラスに対して、SOAPメッセージをビジネス・オブジェクトに変換するために使用すべきデータ・ハンドラーを指示します。
図8. プロキシー・クラス詳細の指定
コラボレーション名は、プロキシー・クラスが呼び出す実行可能コラボレーション・オブジェクトです。前に外部プロセスからの入力を受信するために構成されたコラボレーション・ポートが、プロキシー・クラスに対し、メッセージの送信先を指定します。最後に、図9 に示すように、作成した子構成メタ・オブジェクトを「Operation Details」セクションに指定します。
図9. メタ・オブジェクトの入力
図10 は生成プロセス成功メッセージを示しています。Web Services Generation Utilityが、表示されている6つのファイルを作成します。
図10. プロセスの完了
このユーティリティーによって最初に生成されるファイルは、Web Services Description Language (WSDL) ファイル (この例ではbluebiz2.wsdl) です。このファイルは、パブリックおよびプライベートUDDIレジストリーでWebサービスを公表します。2番目に生成されるファイル (bluebiz2.xsd) は、Webサービスによって使用されるビジネス・オブジェクト用のXMLスキーマ・ファイルです。このファイルには、前に指定したメタ・オブジェクトで参照されるそれぞれのビジネス・オブジェクトの型定義が入っています。SalesOrderProcessing.cfgファイルには、プロキシー・クラスによって使用される名前と値のペアが含まれます。bluebiz2_Readme.txtファイルには、プロキシーとSOAP対応Webサーバー上のプロキシーとそのメソッドに関する、一般的なデプロイメント情報が含まれます。最後に生成されるファイルは、OrderStatus.javaとOrderStatus.classの2つのファイルです。このJavaソース・コードは、必要な場合にプロキシー・クラスのカスタマイズを容易に行えるようにするために用意されています。生成されたプロキシー・クラス (ここではOrderStatus.classで表されています) は、すぐにデプロイすることができます。これらの各ファイルのサンプルがZIPソースに含まれています。
プロキシー・クラスをデプロイする
個々のデプロイメント要件は、使用されるSOAP対応Webサーバーによって異なります。SOAP要求 (SOAP 2.2) をlistenするWebサーバーは、Javaプロキシー・クラスに対して適切な呼び出しを行えるようになっている必要があります。WebSphere Application Serverをあまり使い慣れていない場合は、
参考文献にリストされたデプロイメントに関する記事を参照することをお勧めします。IBM WebSphere Application Server用のデプロイメント対応EARファイル・アーキテクチャーを、Webサービスのコンテキストで作成するために必要なステップが記載されています。
要約
この記事では、CrossWorldsのようなビジネス・プロセス管理ツールを使用することにより、企業が物事を検討する際に、使用しているアプリケーションではなく、実行したいプロセスの見地から考えられるようになることを示しました。企業の壁を超えて広がるビジネス・プロセスが増えるにつれて、企業間でのシームレスな取引に関する要求が増大します。Webサービス・インターフェースには、これらの取引を効率の良い、標準的なものにするための、フォーマットおよびプロトコルの完全なセットが備わっています。ビジネス・プロセス管理ツールとWebサービス・インターフェースの能力と機能を強固に結合することにより、企業はe-businessから実際の利益を得ることができます。
このシリーズの次回の記事では、
図2 に示したアーキテクチャーをIBM WebSphere Business Connection Offeringsによって拡張します。Business Connection Offeringsは、複雑なビジネス・プロセス統合および取引先との間でのデータ共用に取り組むための、コスト効率の高い手段です。
ダウンロード | ファイル名 | サイズ | ダウンロード形式 |
|---|
| i-cross.zip | 4.82KB | HTTP |
参考文献
著者について  | |  | Rob Cutlipは、IBM Software Groupのソフトウェアおよびソリューション設計者です。彼は今年の夏、Research Triangle ParkでExtreme Blue プロジェクトに関する技術指導を行っています。 |
 | |  | Matt Notowidigdoは、Extreme Blueの技術インターンであり、サービス・レベル管理の問題に取り組むExtreme Blueのプロジェクト "Blue Biz" でソフトウェア・エンジニアとして働いています。 |
記事の評価
|