アットマーク・アイティ @IT@IT自分戦略研究所QA@ITイベントカレンダー+ログ
 @IT > Webサービスを実現するhp netaction > 第3回 Webサービスのビジネスロジックを容易に構築
 
@IT[FYI]

 


Webサービスを先取りするHPからの提案
連載 Webサービスを実現するhp netaction(3)

2002/2/16

第3回 Webサービスのビジネスロジックを容易に構築
「HP Process Manager interactive」

 これまでの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の適用例

以下の図は簡単な航空券予約のサイトの例だ。プロセスを起動すると外部データベースやWebサービスを経由して、行き先の一覧を取り出し画面に出力する。次に、ユーザーが行き先を選択したら予約可能な時刻を表示する。さらに、ユーザーが時刻を選んで人数を入力すると、支払いモジュールを呼び出して終了する。このように比較的短い時間で一連の処理を行う場合にPMiが非常に有効だ。


ほかには、外部から呼び出されるWebサービス内部のビジネスロジック構築にも適用できる。クライアントからの要求に応じ、複数のプロセスを実行し結果を返すといった利用の仕方である。

 ここまでで、PMiがサービスの柔軟な連携を実現することで、サービスのプラグ&プレイを通じたプロセスの作成を実現することをご理解いただけたと思う。次は、PMiのさらに具体的な構成要素と構築の様子について触れてみたい。

容易なフロー構築を実現する要素

 PMiは、Webページのフローもプログラミングなしでビジュアルに定義できる。さらには、Webブラウザからの入力値によって処理の分岐を行うことも可能だ。また、ほかのシステムとの接続は、サービスプロバイダによって実現する。サービスプロバイダを利用すると、Webサービスや既存のアプリケーション・サービスを組み合わせて、1つのビジネスロジックを構築できる。

 これらの容易な構築を実現するPMiのシステムは、以下の要素で構成されている。

●プロセスディファイナ
 プロセスフローを定義するGUIツール。XpML形式(HPが提唱するXML)のプロセス定義ファイルを生成することができる。このXMLをプロセスエンジンに登録してプロセスを実行させる。

●プロセスエンジン
 PMiの中心となるプロセスを実行するサーバ(EJBなどで構成)。J2EEアプリケーションサーバで稼働する。プロセスの状態やデータを保持するためのレポジトリ用のDBが必要となる。プロセスエンジンとはインタラクティブAPIを介してデータのやりとりを行うことができる。

●サービスプロバイダ
 プロセスエンジンからほかのアプリケーション・サービスを実行するときに呼ばれるJavaのサーバ。JavaBeans、EJB、JMS、JDBC、そしてWebサービスの各種プロバイダが用意されており、既存のコンポーネントの利用や、メッセージング、データベースなどとの連携などを、柔軟に行うことができる。またEJBなどを介してWebサービスのコンポーネントを呼び出すことも可能である。さらにサービスプロバイダ用のAPIも公開しているため、特定のタスクを行うプロバイダを作成しておくこともできる。

●インタラクティブサーバ
 Webページを介してユーザがやりとりを行うためのサーバ。こちらを利用すると、XSLを記述するだけで、プロセスフローを実行するためのWebページを作成できる(内部的にはInteractive APIを経由しプロセスエンジンをコールしている)。

 PMiはearパッケージとして提供されるので、J2EEサーバに配置するだけでよい。その後、JDBCの接続設定、レポジトリ用スキーマの作成や、JNDIへのプロバイダなどの登録作業を行う。

PMiでのシステム構築手順

 次にPMiを利用して実際のシステムを構築する場合の手順の概要を説明しよう。PMiが技術的にどのような構成になっているのか、またどのような特徴があるのかを、これらの説明を通じてより深く理解することができるはずだ。

●GUIでのデータとプロセス(処理フロー)の定義
 まず、プロセスディファイナを利用してプロセスを定義する。プロセスは、一連のタスクを開始するStartノード、処理を行うWorkノード、分岐用のRouteノードで構成される。またPMiのプロセス全体を通じて保持したいデータをプロセスデータアイテムとして定義する。データアイテムにはString、Integer、Real(float)とそれぞれの種類の配列を保持することができる。

 Workノード上にはサービスと呼ばれるものを指定して、プロセスデータアイテムから入力用データと出力用データを指定する。Workノードには、ユーザがWebを経由して操作を行うインタラクティブノードと、それ以外のサービスプロバイダが任意の処理を実行するノードの2種類がある。ただし、プロセスエンジン側からみると、どちらのタイプのノードも、データアイテムを出力して、処理の結果(Webの入力、またはシステムのレスポンス)をデータアイテムに戻してもらうという位置づけになる。

 Routeノードでは、すでに入っているプロセスデータアイテムの値や、任意のWorkノードのステータスなどを用いて条件文を利用し、条件分岐、リセットなどができる。またプロセスを分岐後、並行して実行することも可能である。


RouteNodeの設定

 またプロセスはサブプロセスとして再定義を行うことができるため、よく使うようなビジネスプロセスを事前に定義しておけば、異なるシステムから簡単に再利用することが可能だ。

 以下は、あるWebシステムのフローをPMiで定義した例である。


Webシステムのフローを定義した例

●インタラクティブ画面の作成(HTML、JSP、サーブレットの作成)

 フローの定義が終わったら、次にユーザーが入力を行う画面を作成する。Web画面に必要な要素は以下のとおりだ。

  • Workノードで指定した出力すべきデータアイテム
  • ユーザーから受け取るデータアイテムのための入力フォームとPostメソッド
  • プロセスやユーザーを識別するためのSession Instance IDとWork Node ID

 これらの情報は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の例だ。

<?xml version="1.0" ?>
<JavaBean Name="DBLookup">
<Method Name="setLocation">
<Param DataItem="Location" />
</Method>
<Method Name="findDates">
</Method>
<Method Name="getDateList">
<Return DataItem="Date List" />
</Method>
</JavaBean>

 JMSの場合は対象となるキューなどをXMLにて設定し、プロセスエンジンから出力されるXML形式のデータアイテムを、指定したメッセージフォーマットにXSLで変換することができる。参考までに、アーキテククチャを下図に示す。


PMiのアーキテクチャ

 そのほかの技術的な特徴として、Webブラウザの戻るボタンを押されたときの自動対応(プロセスの巻き戻し)やプロセスの監査機能(プロセスの統計) などの便利な機能が用意されている。

 以上の説明で分るように、Web画面とプロセスエンジン、エンジンとサービスプロバイダ間のインターフェイスがすべてXMLで構成されているため、プロセス自体の定義もふくめて、柔軟に変更しやすいシステムを構築することが可能となる。

 製品版のリリースは 2002年4月を予定している。 それまでは、HPのWebサイトで詳細な情報を入手することができる。また、ユーザー登録すれば、e-mailで最新の情報を受け取ることができる。

 ぜひ以下のWebサイトにアクセスして、PMiとHPのWebサービス構築のミドルウェア群の情報を入手してほしい。

日本HPミドルウェア(http://www.jpn.hp.com/software/middleware/)


連載 Webサービスを実現するhp netaction
  第1回 [総論]
Webサービスの課題とその解決を探る

「Webサービスのためのミドルウェアhp netaction」
(2001/12/19)
  第2回 [プロダクトレビュー]
Simple Webサービス実現のプラットフォーム

「HP Web Services Platform」
(2002/1/22)
第3回 [プロダクトレビュー]
Webサービスのビジネスロジックを容易に構築

「HP Process Manager interactive」
(2002/2/16)
  第4回 [プロダクトレビュー]
BTPによるトランザクションの実現

「HP Web Services Transaction」
(2002/3/23)

 

 



HPがアプリケーション・サーバを無償提供、その狙いは?

HP、アプリサーバ市場で勝負へ


.NETとJavaに対応が特徴、HPのECプラットフォーム

[hp world 2001開催]端末、インフラ、e-servicesで巻き返しを図るHP

e-servicesでサービス中心のコンピューティングを実現、HP

HPが初のappサーバを発表、Webサービス市場へ本格進出

Javaの先を見据えるWebアプリサーバベンダー


製品情報INDEX

HP-ASダウンロード

問合せ先


</comment> <tr> <td bgcolor="#EEEEEE"><font size="2"><a href="javascript:KeepIt();"> <img src="/club/keepoint/images/ico_kpt.gif" alt="kee&lt;p&gt;oint保存" border="0" align="absmiddle" width="24" height="18">kee&lt;p&gt;ointで保存</a></font></td> </tr> <comment>

 
@ITトップ@IT Special インデックス会議室利用規約プライバシーポリシーサイトマップ