プロセス・サービスは、さまざまなサービスを連携してひとつのビジネス・ロジックとして処理手順を実行するためのエンジンです。プロセス・サービスによって、ビジネス・ロジックをサービスの集合体として実装することで、より適切な仕事の流れ(ビジネス・プロセス)の選択を可能にします。つまりプロセス・サービスは、ビジネス・プロセスを構成するサービス・コンポーネントをより効果的・効率的なサービスで置き換えることを簡単にするので、オンデマンド・ビジネスの実現にとって極めて重要なコンポーネントとして位置づけることができます。プロセス・サービスを実行するエンジンとして提供されているオペレーティング環境がWebSphere Process Serverです。
WebSphere Process ServerはWebSphere Application Server(WAS)の最上位製品として位置づけられ、WAS V6の持つ基本的な環境と、SOAを支える各種サービス、ビジネス・プロセスを実行するための各種の実行エンジンから成り立っています。
WebSphere Process Serverが扱うサービスには、ビジネスに直結する巨視的なロジックと、ビジネスには直結しないけれどもオペレーティング環境が提供するレベルの微視的なロジックなどがあります。ビジネス・プロセスを実装するためには、さまざまなサービスを統合することになります。それがSOAの考え方です。このサービスはさまざまな種類と粒度を持っており、人が対話的に判断する業務、データベース・サービス、既存のアプリケーションによるサービス、外部企業のシステムが提供するサービスなどの巨視的なサービスから、データ変換サービス、コード変換サービス、メッセージ・ルーティング・サービス、Webサービスのインターフェイスを持つテクノロジー・アダプターなどのより微視的(IT的)なサービスまで全てがWebSphere Process Serverが実行を制御できるサービスです。
プロセスをデザインし実行する手順は、次のようになります。
1.
WebSphere Business Modelerでビジネス・プロセスを作成する(成果物はBPELとして出力される)
ビジネス・プロセスをエンジン上で動かすためには、まずビジネス・プロセスをデザインする必要があります。そのデザインを元にビジネス・プロセス・エンジンは複数のサービスを決められた手順で実行していきます。ビジネス・プロセスをデザインするためのツールとして提供されている製品がWebSphere Business Modelerです。
図2 WebSphere Business Modeler
WebSphere Business Modelerは、Eclipse 3.0ベースのGUI環境を提供しています。(ちなみにWebSphere製品の開発環境は全てEclipseベースに統一されています)
この製品を使うユーザーはビジネス・アナリストが対象とされています。もちろん、IT的な定義も必要ですので最初はIT技術者と協業することが必要ですが、プロセスの定義になればビジネス・ロジックに集中して開発を進めることができます。
非常に便利な機能としてコストやワークロードの詳細なシミュレーションができるようになっており、プロセス開発の途中や実稼働後のプロセス改善の際に、より効率的なプロセスのデザインに変更することができます。
さらに、モデリングの最中に設定された各種ビジネス指標やKPI(Key Performance Indicator)は、WebSphere Business MonitorにてIMPORTすることができ、実稼働時に監視対象とすることができます。
実稼働時のデータを採取して、状況をリアルタイムでモニターすることができます。ビジネス・プロセスが動いている中でリアルタイムに問題に対するアクションをとることができるのです。同時に、収集した結果の統計的データはWebSphere Business Modelerに再度フィードバックされ、ビジネス・プロセス・モデルの見直しに利用することができ、オンデマンド・ビジネスの最適化を進めることができます。
WebSphere Business Modelerから出力されたBPELに基づき、実際に稼働するモジュールやサービスを関係づけ、出来上がったモジュールをプロセス・サーバーで実行できるモジュールを作成するツールがWebSphere Integration Developerです。WebSphere Integration Developerで完成したモジュールを、実行エンジンであるWebSphere Process Serverにデプロイ(配置)することによってビジネス・プロセスが実行できるようになります。
図5 WebSphere Integration DeveloperのBPELエディター
WebSphere Integration Developerは、WebSphere Process Serverにて実行するモジュールを開発するツールですので、BPEL以外にも、開発担当者がビジネス・プロセスを実装するためのツールが揃っています。
それらのツールで実装するものは、ビジネス・プロセスに必須である人間系の作業を定義するヒューマン・タスク、イベント・ドリブンなプロセスを定義するビジネス・ステート・マシン、日付/時刻によって処理が変更されるようなビジネス・ルール、プロセス間を流れるデータ(ビジネス・オブジェクト)のマッピングやフォーマット変換、ルーティングを行なうメディエーション・サービスなどです。
WebSphere Process Serverでは、サービスをビジネス・プロセスとして統合するためにいくつかのテクノロジーを用いています。特徴的なものをリストアップしておきましょう。
BPEL
WebSphere Process Serverは、BPEL(Business Process Execution Language) 2.0をサポートします。BPELはプロセスを記述するための標準言語で、WebSphere Business Modelerの成果物であるビジネス・プロセスをEXPORTするとBPEL文書が出力されます。また、WebSphere Integration DeveloperにはBPELエディターが用意されており、下図のようなエレメントをドラッグ・アンド・ドロップで配置し関係付けることによってビジネス・プロセスを完成することができます。
SDO(Service Data Objects)は、IBMとBEAによって提唱された汎用のプログラミング・モデルです。このデータ・オブジェクトはさまざまなデータ・アクセス・モデルの差異を吸収するので、プログラマーはアクセス方法(JDBC、JAX-RPC、JMSなど)やメッセージのトランスポート(XML、SOAP、JMSなど)を意識することなしに扱うことができます。
ESB
Enterprise Services Busのことです。ESBという言葉は標準技術を採用したデータ(サービス・リクエストなど)の通り道という概念です。ESBに求められる機能は、さまざまなプロトコルに対応したメッセージの変換やルーティングですが、これをメディエーション(仲介)機能ということがあります。例えばWebSphere Process Serverは、メディエーション機能を提供する製品として発表されているWebSphere ESBの機能も含んでいます。このWebSphere ESBでは、フォーマット変換やデータベースのLook up、条件によるルーティングなど機能別のプリミティブが提供されています。WebSphere Process Serverでメディエーション機能を使うには、このプリミティブを組み合わせたSCAモジュールを生成することになります。このSCAモジュールを呼び出すことで、SDOのフォーマット変換やデータベースのLook up、条件によるルーティングなどを実装することができます。