@IT|@IT自分戦略研究所|QA@IT|イベントカレンダー+ログ | ||
Loading
|
@IT > Webサービスを実現するhp netaction > 第3回 Webサービスのビジネスロジックを容易に構築 |
|
|
|
2002/2/16
これまでの2回にわたってWebサービスの実現に必要な機能やプラットフォームを紹介してきたが、今回はWebサービスのビジネスロジックの構築にふれる。HP Process Manager interactive(以下PMi)は、柔軟なビジネスロジックの実装を実現するフレームワークである。ビジネスロジック実装のためのフレームワークなので、もちろん通常のWebアプリケーション構築の基盤としても有効なソリューションだ。では、PMiの機能と特徴について、説明していこう。
Webサービスの目標の1つに、個別のサービスを組み合わせて、目的となるサービスを構築できる点がある。つまり、新しいサービスの追加や、異なるサービスへの組み替えが柔軟に行えることで、迅速にビジネスの要求にこたえるサービスを構築できるのが、Webサービスを利用する大きなメリットであるわけだ。 上述のような、インタラクティブなプロセスの連携、つまりはサービスのプラグ・アンド・プレイを実現するのがPMiである。PMiは、Webサービスのプラグ&プレイを実現するための開発ツールと実行環境から構成されている。 ところで、Webサービスのプラグ&プレイを実現するためには、以下の要素を満たしたツールが必要になる。PMiはこれらの要素を満たしている。
PMiは、Beansなどで作成されたサービスを自由に組み合わせることができる。具体的には、GUI上でドローツールを使い、ビジュアルにプロセスを組み合わせる作業を行う。定義された内容はXMLとして保存され、実行環境がそれを解釈し、定義に沿ってプロセスを実行していくわけだ。 PMiでアプリケーションを構築する場合の最大の特徴は、アプリケーションのフローのロジックと、実際のコードを分離することができる点だ。前述のように設定したフローはJavaプログラムに変換されるのではなく、XMLのまま利用される。この特徴により、Javaコードを変更することなく、GUI操作のみでアプリケーションのフローを変更できる。そのため、例えば、支払い処理での流れの中で一定の金額以上のものは、新たにクレジットカードの処理を追加するというようなことを比較的簡単に行うことができるわけだ。
ここまでで、PMiがサービスの柔軟な連携を実現することで、サービスのプラグ&プレイを通じたプロセスの作成を実現することをご理解いただけたと思う。次は、PMiのさらに具体的な構成要素と構築の様子について触れてみたい。
PMiは、Webページのフローもプログラミングなしでビジュアルに定義できる。さらには、Webブラウザからの入力値によって処理の分岐を行うことも可能だ。また、ほかのシステムとの接続は、サービスプロバイダによって実現する。サービスプロバイダを利用すると、Webサービスや既存のアプリケーション・サービスを組み合わせて、1つのビジネスロジックを構築できる。 これらの容易な構築を実現するPMiのシステムは、以下の要素で構成されている。 ●プロセスディファイナ ●プロセスエンジン ●サービスプロバイダ ●インタラクティブサーバ PMiはearパッケージとして提供されるので、J2EEサーバに配置するだけでよい。その後、JDBCの接続設定、レポジトリ用スキーマの作成や、JNDIへのプロバイダなどの登録作業を行う。
次にPMiを利用して実際のシステムを構築する場合の手順の概要を説明しよう。PMiが技術的にどのような構成になっているのか、またどのような特徴があるのかを、これらの説明を通じてより深く理解することができるはずだ。 ●GUIでのデータとプロセス(処理フロー)の定義 Workノード上にはサービスと呼ばれるものを指定して、プロセスデータアイテムから入力用データと出力用データを指定する。Workノードには、ユーザがWebを経由して操作を行うインタラクティブノードと、それ以外のサービスプロバイダが任意の処理を実行するノードの2種類がある。ただし、プロセスエンジン側からみると、どちらのタイプのノードも、データアイテムを出力して、処理の結果(Webの入力、またはシステムのレスポンス)をデータアイテムに戻してもらうという位置づけになる。 Routeノードでは、すでに入っているプロセスデータアイテムの値や、任意のWorkノードのステータスなどを用いて条件文を利用し、条件分岐、リセットなどができる。またプロセスを分岐後、並行して実行することも可能である。
またプロセスはサブプロセスとして再定義を行うことができるため、よく使うようなビジネスプロセスを事前に定義しておけば、異なるシステムから簡単に再利用することが可能だ。 以下は、あるWebシステムのフローをPMiで定義した例である。
●インタラクティブ画面の作成(HTML、JSP、サーブレットの作成) フローの定義が終わったら、次にユーザーが入力を行う画面を作成する。Web画面に必要な要素は以下のとおりだ。
これらの情報はInteractive APIを利用すればGet/Setが可能なので、HTMLやJSPなどを利用して画面を作成する。またPostメソッドを受け取り、プロセスエンジンとデータをやりとりするためのサーブレットなどを作成する。 もちろんあらかじめ用意されているインタラクティブサーバを利用し、プログラミングなしで画面作成を行うこともできる。これはサーブレットとして実装されているので、Postメソッドでデータアイテムを渡すだけでよい。また出力画面は、XMLフォーマットにて表示すべきデータアイテムとIDが渡されるので、必要な情報を生成するようなXSL作成すればHTMLを生成することができる。このときに呼ばれるXSLは、Workノードで指定したサービス名のものが自動的に呼ばれるため、状況によって異なる画面を出力することができる。 また、HTML生成にJSPを利用したAPIのサンプル実装も用意されているので、これらを利用すると比較的簡単に画面を作成することができる。 ●各種アプリケーション・サービスの作成(または既存のコンポーネントを利用)と接続 各種サービスへの接続も、シンプルな方法で実装することができる。まずプロセスディファイナからWorkノードでどの種類のサービスプロバイダにアクセスするかを指定する。そして、データアイテムをSetメソッドで渡し、実行してほしいメソッドを指定して、返値をGetで受け取りデータアイテムに格納するというような設定を行う。これらの設定をXMLで記述し指定の場所におくだけで、それぞれのコンポーネント利用することができる。その後の実際の処理はそれぞれのコンポーネントが行う。 以下は、JavaBeanプロバイダを経由してDBLookupというBeanを呼ぶXMLの例だ。
JMSの場合は対象となるキューなどをXMLにて設定し、プロセスエンジンから出力されるXML形式のデータアイテムを、指定したメッセージフォーマットにXSLで変換することができる。参考までに、アーキテククチャを下図に示す。
そのほかの技術的な特徴として、Webブラウザの戻るボタンを押されたときの自動対応(プロセスの巻き戻し)やプロセスの監査機能(プロセスの統計) などの便利な機能が用意されている。 以上の説明で分るように、Web画面とプロセスエンジン、エンジンとサービスプロバイダ間のインターフェイスがすべてXMLで構成されているため、プロセス自体の定義もふくめて、柔軟に変更しやすいシステムを構築することが可能となる。 ◆ 製品版のリリースは 2002年4月を予定している。 それまでは、HPのWebサイトで詳細な情報を入手することができる。また、ユーザー登録すれば、e-mailで最新の情報を受け取ることができる。 ぜひ以下のWebサイトにアクセスして、PMiとHPのWebサービス構築のミドルウェア群の情報を入手してほしい。
|
|