(57)【要約】【課題】ワークフローを連携させて構築するシステムについて、効率的な処理を実現すること。【解決手段】ワークフロー接続装置２が、呼出先ワークフロー、その呼出先ワークフロー内のワーク、および、そのワークの状態を通知条件として対応づけて通知条件記憶部に格納し、呼出先ワークフロー装置３ｂから通知されたワークの状態と、通知条件記憶部から読み取った通知条件のワークの状態とが一致するときに、通知条件を満たしたと判定し、通知条件を満たしたときに、呼出先ワークフロー装置３ｂからの呼び出しへの応答通知を呼出元ワークフロー装置３ａへと中継することを特徴とする。【選択図】図１
2008310475.tif 000002
【特許請求の範囲】
【請求項１】
ＳＯＡ（Service Oriented Architecture）に基づくサービスを実現するためのビジネスプロセス定義がインスタンス化されたワークを順に実行するワークフローについて、
呼出元ワークフローを実行する呼出元ワークフロー装置、前記呼出元ワークフローから呼び出されて開始される呼出先ワークフローを実行する呼出先ワークフロー装置、および、呼び出しへの応答通知を前記呼出先ワークフロー装置から前記呼出元ワークフロー装置へと中継するワークフロー接続装置を、通信可能に接続して構成されるワークフローシステムが実行するワークフロー連携方法であって、
前記ワークフロー接続装置が、
前記呼出先ワークフロー、その呼出先ワークフロー内のワーク、および、そのワークの状態を通知条件として対応づけて通知条件記憶部に格納し、
前記呼出先ワークフロー装置から通知されたワークの状態と、前記通知条件記憶部から読み取った前記通知条件の前記ワークの状態とが一致するときに、前記通知条件を満たしたと判定し、
前記通知条件を満たしたときに、前記呼出先ワークフロー装置からの呼び出しへの前記応答通知を前記呼出元ワークフロー装置へと中継することを特徴とする
ワークフロー連携方法。
【請求項２】
前記ワークフロー接続装置は、さらに、前記応答通知を前記呼出元ワークフロー装置へと中継する工程において、前記呼出元ワークフロー装置が処理可能なデータ形式に前記応答通知を変換することを特徴とする
請求項１に記載のワークフロー連携方法。
【請求項３】
前記呼出先ワークフロー装置は、さらに、前記呼出先ワークフローの実行結果を、他の前記呼出先ワークフロー装置からもアクセス可能な共用データベースへ出力することを特徴とする
請求項１に記載のワークフロー連携方法。
【請求項４】
前記ワークフロー接続装置は、さらに、前記応答通知を前記呼出元ワークフロー装置へと中継する工程の後に、前記通知条件を全て満たした前記呼出元ワークフロー装置に対して、前記ワークの状態の通知処理を終了するように制御することを特徴とする
請求項１に記載のワークフロー連携方法。
【請求項５】
前記ワークフローシステムは、さらに、運用装置を通信可能に接続して構成され、
前記運用装置は、前記呼出先ワークフロー装置に対して前記ワークの状態の通知工程の開始を指示し、前記ワークフロー接続装置に対して通知された前記ワークの状態について、前記通知条件を満たすか否かの判定工程、および、前記通知条件を満たす前記応答通知を前記呼出元ワークフロー装置へと中継する工程の開始を指示することを特徴とする
請求項１に記載のワークフロー連携方法。
【請求項６】
前記ワークフロー接続装置は、さらに、前記通知条件記憶部に格納する前記通知条件について、複数の前記通知条件のＡＮＤ条件、または、ＯＲ条件を示す前記演算子を複数の前記通知条件に対応づけて格納し、複数の前記通知条件を個別に判定し、その判定結果を前記演算子で示される条件で総合的に判定することを特徴とする
請求項１に記載のワークフロー連携方法。
【請求項７】
前記ワークフロー接続装置は、さらに、前記応答通知を前記呼出元ワークフロー装置へと中継する工程において、前記呼出元ワークフロー装置が実行する前記呼出元ワークフローの状態が応答待ちでないときには、応答待ちになるまで前記応答通知を保留することを特徴とする
請求項１に記載のワークフロー連携方法。
【請求項８】
前記ワークフロー接続装置は、さらに、前記呼出先ワークフロー装置から前記呼出先ワークフローの完了通知を受けたときには、前記応答通知を前記呼出元ワークフロー装置へと通知することを特徴とする
請求項１に記載のワークフロー連携方法。
【請求項９】
請求項１ないし請求項８に記載のワークフロー連携方法を、前記ワークフローシステムを構成する各コンピュータに実行させるための
ワークフロー連携プログラム。
【請求項１０】
ＳＯＡ（Service Oriented Architecture）に基づくサービスを実現するためのビジネスプロセス定義がインスタンス化されたワークを順に実行するワークフローについて、
ワークを順に実行するワークフローである呼出元ワークフローを実行する呼出元ワークフロー装置、前記呼出元ワークフローから呼び出されて開始される呼出先ワークフローを実行する呼出先ワークフロー装置、および、呼び出しへの応答通知を前記呼出先ワークフロー装置から前記呼出元ワークフロー装置へと中継するワークフロー接続装置を、通信可能に接続して構成されるワークフローシステムに用いられる前記ワークフロー接続装置であって、
前記呼出先ワークフロー、その呼出先ワークフロー内のワーク、および、そのワークの状態を通知条件として対応づけて格納する通知条件記憶部と、
前記呼出先ワークフロー装置から通知されたワークの状態と、前記通知条件記憶部から読み取った前記通知条件の前記ワークの状態とが一致するときに、前記通知条件を満たしたと判定する前記通知条件判定部と、
前記通知条件を満たしたときに、前記呼出先ワークフロー装置からの呼び出しへの前記応答通知を前記呼出元ワークフロー装置へと中継するメッセージ送信部と、を有することを特徴とする
ワークフロー接続装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークフロー連携方法、ワークフロー連携プログラム、および、ワークフロー接続装置に関する。
【背景技術】
【０００２】
企業内のシステムは、会社の事業拡大の歴史、ＩＴテクノロジーの変遷、そして事業・部門単位で予算化されシステムが構築されてきたことなど、企業の文化・成長背景によって、その時々の最善の選択を行った結果、複雑なシステム構成になってしまっているケースが多い。
【０００３】
そのようなシステムの状況とは関係なく、ビジネスは事業拡大のために、市場追従のために常に変化している。その変化に対応すべく、企業内のシステムも変化を求められるのは当然の要求である。この要求に対し、より柔軟な対応の方法として生まれたのがＳＯＡ（Service Oriented Architecture）という考え方である。
【０００４】
ＳＯＡとは、企業の各システムが実行する一連のワーク（作業処理）を束ねたワークフローごとに、Ｗｅｂサービスなどの標準化したインタフェースを設け、ほかのシステムやエンドユーザーのＷｅｂブラウザおよびクライアントソフトから、単純な手続きによってネットワーク経由で、ワークフローを呼び出せるようにするというものである。
【０００５】
なお、ワークフローは、コンピュータが、ＢＰＭＬ（Business Process Modeling Language）などで記述されたビジネスプロセス定義をインスタンス化（実行プロセス化）したものである。また、Ｗｅｂサービスのインタフェースは、ＷＳＤＬ（Web Service Definition Language）などの標準化された規格で記述されており、外部のシステムからの利用を可能にしている。
【０００６】
ＳＯＡの考え方に基づき連携させるシステムは、ＥＳＢ（Enterprise Service Bus）と直に接続する。システムは、ＥＳＢを通じて、ほかのシステムとメッセージをやり取りする。換言すると、ＥＳＢは、連携させるシステム間のメッセージのやり取りを一手に担う通り道になる。
【０００７】
なお、ＥＳＢという用語は、システムを連携させることを目的とした技術を総称するものであり、特定の仕様や標準を指すものではない。現状のＥＳＢの定義には様々なものがあるが、以下の３つの機能が最低限必要であり、これらの機能を備えるシステム基盤が狭義のＥＳＢと言える。
（１）レジストリ
（２）メッセージ・ルーティング
（３）プロトコルやデータ形式の変換
【０００８】
（１）レジストリは、連携させる各システムの情報を一元的に管理する機能である。例えば、別のシステムへのメッセージ送信をＥＳＢに依頼する際、レジストリに格納されている送り先のシステムの物理的な場所を取得することができる。よって、各メッセージ送信において、送り先のシステムの物理的な場所まで指定する必要はない。
【０００９】
（２）メッセージ・ルーティングは、レジストリに格納された各システムの情報に基づいて、仲介するメッセージを送り先のシステムに届ける機能である。ルーティングする際、メッセージ中の引数に応じて送り先を変えるといった単純な分岐処理や、あるシステムにメッセージを届けた後で次に別のシステムにも届けるという行程の設定も可能である。
【００１０】
（３）プロトコルやデータ形式の変換は、ＥＳＢは送り先のシステムに合わせて、プロトコルとデータ形式を変換する機能である。ＥＳＢでは、各システムが利用可能なプロトコルやデータ形式をレジストリで管理しており、その情報に基づいて、仲介するメッセージを送り先のシステムが解釈可能な形式に変換する。
【００１１】
非特許文献１では、互いに異なる２つのインタフェースを接続する手段として、アダプタが提案されている。アダプタは、レガシーシステムからサービスプラットフォームへの、データ変換および文字コード変換を実行する。これにより、双方からのワークフローの呼び出しを可能としている。
【非特許文献１】株式会社日立製作所、“日立ミドルウェア・プラットフォームソフトウェア総合サイト・Cosminexusサービス構成”、[online]、［平成１９年４月２７日検索］、インターネット＜ＵＲＬ：http://www.hitachi.co.jp/Prod/comp/soft1/cosminexus/products/lineup/sa/index.html＞
【発明の開示】
【発明が解決しようとする課題】
【００１２】
図９は、同期方式および非同期方式におけるワークフローの連携方式を示す説明図である。ここでは、住民が引っ越し時に役所に対して行う手続きについて、複数の役所手続きを１カ所にまとめるワンストップサービスを例に説明を行う。呼出元ワークフローは、複数の呼出先ワークフローを順に呼び出すことにより、呼出先ワークフローを連携させる。なお、呼出先ワークフローは、新たに開発するよりも、既に稼働しているレガシーシステムを活用するほうが開発費の削減などの観点で望ましい。
【００１３】
呼出先ワークフローは、１つ以上のワーク（コンピュータが実行する作業処理）を接続することで構成される。例えば、図９（ａ）の呼出先ワークフローは、３つのワーク（受付処理、課長職審査処理、部長職審査処理）を順に接続することで構成される。
【００１４】
図９（ａ）は、同期方式によるワークフロー連携を示す。既存の２つの呼出先ワークフロー（転出手続き、転入手続き）を連携させる呼出元ワークフロー（引っ越し手続き）を作成する場合を考える。同期方式では、ワークフロー呼び出しを行うと、その応答を待ってから、次の処理に進む。図中では、呼び出しや応答などの通信を点線矢印で示す。よって、転入手続きは、転出手続きが全て完了してから、実行される。これにより、転出手続きは、転入手続きの処理結果を活用することができる。
【００１５】
図９（ｂ）は、非同期方式によるワークフロー連携を示す。非同期方式では、ワークフロー呼び出しを行うと、その応答を待たずに、次の処理に進むことができる。よって、転入手続きは、転出手続きが完了していなくても、実行される。これにより、転入手続きおよび転出手続きが、並列で実行されるため、早い時間で両方の処理を完了することができる。
【００１６】
図９（ａ）の同期方式、および、図９（ｂ）の非同期方式の双方に共通する特徴として、呼出先ワークフローの応答は、呼出先ワークフローを構成するワークのうち、最後のワークが完了したときに、１回だけ通知されることである。この仕様は、ＥＳＢでは呼び出すワークフローを構成するワークごとの状態を管理していないことにより、規定されている。
【００１７】
しかし、ワークフローの内容によっては、ワークフローを連携させるときに、無駄な待ち時間が発生してしまう場合がある。例えば、転出手続きの「課長職審査処理」の処理結果として「転出証明書」が発行され、転出手続きの「部長職審査処理」の処理結果として住民票データベースへの書き換えが実行されるとする。そして、転入手続きの「受付処理」では、事前に「転出証明書」が必要であるとする。
【００１８】
もし、転出手続きの「課長職審査処理」が終了した時点で応答が発行されると、転出手続きの「部長職審査処理」の終了を待たずに、転入手続きの「受付処理」を開始することができ、効率的である。
【００１９】
しかし、図９（ａ）の同期方式では、ワークフローの途中である転出手続きの「課長職審査処理」では応答が通知されないため、転出手続きの「部長職審査処理」の終了まで応答通知が待たされてしまい、非効率である。
【００２０】
また、図９（ｂ）の非同期方式では、転出手続きの「課長職審査処理」の終了を待たずに、転入手続きの「受付処理」が開始されてしまい、「転出証明書」が発行されていないので、転入手続きが止まってしまう。
【００２１】
以上説明したように、呼出元ワークフローが、呼出先ワークフローを呼び出したときに、呼出先ワークフローから呼出元ワークフローへの呼び出しへの応答について、通知するタイミングが、呼出先ワークフローの処理完了時の１回だけであると、効率的なワークフロー連携システムの構築が困難となる場合がある。
【００２２】
特に、ワークフローを構成するワークについて、１つでも対話型ワークが存在するときには、そのワークフローの実行時間が全体的に長期間になってしまい、応答が遅れてしまう。なお、対話型ワークとは、ユーザからの入力を待つワークである。その結果として、呼出元ワークフローが処理停滞に陥ってしまう。
【００２３】
そこで、本発明は、ワークフローを連携させて構築するシステムについて、効率的な処理を実現することを、主な目的とする。
【課題を解決するための手段】
【００２４】
前記課題を解決するため、本発明は、ＳＯＡに基づくサービスを実現するためのビジネスプロセス定義がインスタンス化されたワークを順に実行するワークフローについて、呼出元ワークフローを実行する呼出元ワークフロー装置、前記呼出元ワークフローから呼び出されて開始される呼出先ワークフローを実行する呼出先ワークフロー装置、および、呼び出しへの応答通知を前記呼出先ワークフロー装置から前記呼出元ワークフロー装置へと中継するワークフロー接続装置を、通信可能に接続して構成されるワークフローシステムが実行するワークフロー連携方法であって、前記ワークフロー接続装置が、前記呼出先ワークフロー、その呼出先ワークフロー内のワーク、および、そのワークの状態を通知条件として対応づけて通知条件記憶部に格納し、前記呼出先ワークフロー装置から通知された前記ワークの状態と、前記通知条件記憶部から読み取った前記通知条件の前記ワークの状態とが一致するときに、前記通知条件を満たしたと判定し、前記通知条件を満たしたときに、前記呼出先ワークフロー装置からの呼び出しへの前記応答通知を前記呼出元ワークフロー装置へと中継することを特徴とする。その他の手段は、後記する。
【発明の効果】
【００２５】
本発明によれば、ワークフローを連携させて構築するシステムについて、効率的な処理を実現することが可能になった。
【発明を実施するための最良の形態】
【００２６】
図１は、ワークフローの連携方式を示す説明図である。図１の各ワークフローおよびその構成要素であるワークは、図９で説明したものと同じである。
【００２７】
呼出元ワークフロー（引っ越し手続き）１０２は、呼出先ワークフロー（転出手続き）１０１を呼び出すワークフロー呼び出し１０２ａおよびその応答を受け付けるワークフロー応答受付１０２ｂ、ならびに、呼出先ワークフロー（転入手続き）１０３を呼び出すワークフロー呼び出し１０２ｃおよびその応答を受け付けるワークフロー応答受付１０２ｄを順に実行する。
【００２８】
呼出先ワークフロー（転出手続き）１０１は、受付処理１０１ａ→課長職審査処理１０１ｂ→部長職審査処理１０１ｃの順に実行する。課長職審査処理１０１ｂの処理結果として「転出証明書」が発行され、部長職審査処理１０１ｃの処理結果として「住民票データベース」への書き換えが実行される。
【００２９】
呼出先ワークフロー（転入手続き）１０３は、受付処理１０３ａ→課長職審査処理１０３ｂ→部長職審査処理１０３ｃの順に実行する。なお、「転出証明書」および「住民票データベース」などの処理結果のデータは、各呼出先ワークフローで、図示しない共有データベースなどで、応答とは別ルートでやりとりされる。
【００３０】
ワークフロー接続装置２は、各呼出先ワークフローから呼出元ワークフロー１０２への、任意のタイミングでの応答通知を可能にする。なお、図中のワークフロー接続装置２は、２台記載したが、１台以上なら任意の台数としてよい。
【００３１】
まず、ワークフロー接続装置２に対して、応答通知を実行するための通知条件をあらかじめ登録しておく。次に、各呼出先ワークフローの各ワークについて、実行開始、実行中、実行終了などの状態の遷移が発生するごとに、ワークフロー接続装置２に対して、状態遷移が発生したことを毎回通知する。そして、ワークフロー接続装置２は、毎回通知される状態遷移の中から、通知条件に適合する通知を取捨選択して、呼出元ワークフロー１０２へ通知する。通知条件は、ワークフロー間の相関関係を定義したものともいえる。
【００３２】
図２は、本実施形態のワークフロー連携システムを示す構成図である。ワークフロー連携システムは、呼出元ワークフロー装置３ａ、複数の呼出先ワークフロー装置３ｂ、ワークフロー接続装置２、設定装置５、および、運用装置６が、互いにネットワーク９に接続されて構成される。
【００３３】
呼出元ワークフロー装置３ａは、複数の呼出先ワークフロー装置３ｂがそれぞれ実行するワークフローを呼び出すことにより、ワークフローを連携させる。呼び出された呼出先ワークフロー装置３ｂは、呼び出しに対する応答をワークフロー接続装置２に通知する。ワークフロー接続装置２は、あらかじめ設定された通知条件を満たす応答を呼出元ワークフロー装置３ａに転送する。設定装置５は、ワークフロー接続装置２の通知条件などの設定情報を設定する。運用装置６は、応答を通知するための制御の開始を指示する。
【００３４】
なお、複数の呼出先ワークフロー装置３ｂで、ワークフローの処理結果（例えば、図１で説明した「転出証明書」など）をやりとりするための共用データベース８が、複数の呼出先ワークフロー装置３ｂからアクセス可能に構成されている。この共用データベース８は、１台としてもよいし、複数台のデータベースを用意し、アクセス権を共用（シェアード）とすることにより構成してもよい。
【００３５】
図３は、本実施形態のワークフロー連携システムを構成する各装置の詳細を示す説明図である。
【００３６】
図３（ａ）は、呼出元ワークフロー装置３ａの構成図である。
【００３７】
呼出元ワークフロー装置３ａは、ＣＰＵ３１ａ、主記憶装置３２ａ、および、データベース３３ａから構成される。主記憶装置３２ａは、ワーク実行中の状態を一定時間ごと監視するワーク状態監視部３２１ａ、および、配備されたワークを実行し制御するワーク実行部３２２ａを構成するためのプログラムを格納する。ワーク状態監視部３２１ａは、ワークフローが生成される時点で、そのワークフローを構成するワークに対する状態監視を開始する。
【００３８】
データベース３３ａは、自装置で実行するワークフローの内容を定義したビジネスプロセス定義格納部３３１ａ、および、自装置で実行するワークフローを構成する各ワークごとの状態を格納しているワーク状態テーブル３３２ａを格納する。
【００３９】
図３（ｂ）は、呼出先ワークフロー装置３ｂの構成図である。互いに連携させる呼出先ワークフロー装置３ｂは、３台以上あってもよい。呼出先ワークフロー装置３ｂは、呼出元ワークフロー装置３ａと同様の構成であり、符号の末尾［ａ］と「ｂ」がそれぞれの構成要素の対応を示す。同様の構成とした理由は、呼出先および呼出元という役割が、所定のワークフローだけに着目した固定的なものではなく、別のワークフローに着目すると、別の役割が割り当てられることがあるためである。
【００４０】
図３（ｃ）は、ワークフロー接続装置２の構成図である。ワークフロー接続装置２は、複数分けて起動させることで負荷を軽減させてもよい。
【００４１】
ワークフロー接続装置２は、ＣＰＵ２１、主記憶装置２２、および、データベース２３から構成される。主記憶装置２２は、データ変換部２２１、通知条件判定部２２２、および、メッセージ送信部２２３を構成するためのプログラムから構成される。
【００４２】
データベース２３は、応答メッセージの通知条件を格納する通知条件テーブル２３１、各呼出先ワークフロー装置３ｂから通知されたワーク状態を統合管理するワーク状態統合テーブル２３２、および、各装置への通信を行う時に参照される通信管理テーブル２３３を格納する。
【００４３】
通知条件判定部２２２は、ワーク状態監視部３２１ｂからワーク状態テーブル３３２ｂに書き込まれた状態更新の情報が送られてくると、その情報を呼出先ワークフロー装置３ｂのホスト名と対応づけて、ワーク状態統合テーブル２３２へと書き込む。
【００４４】
通知条件判定部２２２は、ワーク状態統合テーブル２３２に書き込まれた状態更新の情報が、通知条件テーブル２３１の通知条件を満たしているか否かを評価する。通知条件を満たしたときには、データ変換部２２１が、通信管理テーブル２３３から通知先の呼出元ワークフロー装置３ａを特定し、その通知先が処理可能な形式に変換した応答メッセージを作成する。
【００４５】
メッセージ送信部２２３は、データ変換部２２１が作成した応答メッセージを呼出元ワークフロー装置３ａへ通知する。また、メッセージ送信部２２３は、通知条件が成立し、以降のワークフローの応答が別の通知条件に定義されていない呼出先ワークフロー装置３ｂに対して、応答を返したという連絡をその呼出先ワークフロー装置３ｂのワーク状態監視部３２１ｂに送ることにより、ワーク状態監視部３２１ｂ状態監視を終了させる。
【００４６】
図４は、本実施形態のワークフロー連携システムを構成する各装置の詳細を示す説明図である。なお、各装置の処理部は、独立した装置に分散させて配置してもよいし、同一の装置上に集中させて配置してもよい。
【００４７】
図４（ａ）は、設定装置５の構成図である。
【００４８】
設定装置５は、ＣＰＵ５１、主記憶装置５２、および、磁気ディスク装置５３から構成される。主記憶装置５２は、設定部５２１を構成するためのプログラムを格納する。磁気ディスク装置５３は、ワークフローの連携を行うための通信情報を定義した通信先定義ファイル５３１、および、ワークフローの状態遷移についてどのような条件でどのような制御が加えられるかを定義した通知条件定義ファイル５３２を格納する。
【００４９】
設定部５２１は、作成された通信先定義ファイル５３１、および、通知条件定義ファイル５３２を磁気ディスク装置５３に設定する。設定部５２１は、磁気ディスク装置５３に設定された各ファイルを、ワークフロー接続装置２の通知条件テーブル２３１、ワーク状態統合テーブル２３２、および、通信管理テーブル２３３内にそれぞれ登録する。
【００５０】
図４（ｂ）は、運用装置６の構成図である。
【００５１】
運用装置６は、ＣＰＵ６１および主記憶装置６２から構成される。主記憶装置６２は、ワークフロー接続装置２、および、ワーク状態監視部３２１ｂを起動および操作するための運用操作部６２１を構成するためのプログラムを格納する。
【００５２】
図５は、ワーク状態監視部３２１ｂおよびワーク実行部３２２ｂの処理概要を示す説明図である。
【００５３】
まず、ワーク実行部３２２ｂは、ワークフロー接続装置２などからワークフローの実行要求を受信すると、ビジネスプロセス定義格納部３３１ｂに格納されたビジネスプロセス定義をインスタンス化して、呼出先ワークフロー（転出手続き）１０１などのワークフローを実行する。
【００５４】
次に、ワーク状態監視部３２１ｂは、ワークフローの実行が開始されると、実行されるワークフローを構成する各ワーク間の状態遷移を監視し、状態遷移を変更として検知すると、その結果をワーク状態テーブル３３２ｂに書き込む。なお、監視のタイミングは、例えば、一定間隔である。
【００５５】
図６（ａ）は、通信管理テーブル２３３の一例を示す。通信管理テーブル２３３は、呼出先ワークフロー装置ごとに、装置の「ホスト名」、および、その装置の「ＩＰアドレス」から構成される。「ホスト名」には、呼出先ワークフロー装置を一意に特定する名称が格納される。「ＩＰアドレス」には、その装置のネットワーク上における場所をを一意に特定するＩＰアドレスが格納される。つまり、通信管理テーブル２３３は、名前解決（ＤＮＳ：Domain Name System）を実現するためのテーブルである。
【００５６】
図６（ｂ）は、ワーク状態統合テーブル２３２の一例を示す。ワーク状態統合テーブル２３２は、呼び出しに用いる各マシンの「ホスト名」と、呼出先ワークフローを特定する「呼出先ワークフローＩＤ」と、呼出先ワークフローを構成するワークを特定する「呼出先ワークＩＤ」と、そのワークＩＤで特定されるワークの状態を示す「呼出先ワーク状態」とを、互いに対応づけて格納する。なお、「ホスト名」は、図６（ａ）と図６（ｂ）とで同じ内容を示す。
【００５７】
図６（ｃ）は、通知条件テーブル２３１の一例を示す。通知条件テーブル２３１は、通知条件名を表す「通知条件名」と、呼出元のワークフローを特定する「呼出元ワークフローＩＤ」と、応答を返す際の呼出元の状態を表す「呼出元応答返却状態」と、図６（ｂ）で説明した呼出先に関する情報（「呼出先ワークフローＩＤ」、「呼出先ワークＩＤ」、「呼出先ワーク状態」）と、複数の通知条件間の関係を示す「演算子」とを互いに対応づけて格納する。
【００５８】
なお、通知条件テーブル２３１では、１行につき１つの通知条件を登録する。複数の通知条件にまたがったＡＮＤ条件またはＯＲ条件を定義するときには、「通知条件名」を複数の通知条件で同じ名称にし、かつ、「演算子」において互いの通知条件間の関係（ＡＮＤ、ＯＲ）を記述する。ＡＮＤであれば当該条件は複数における条件で必須となり、ＯＲであれば複数のうちいずれかが条件を満たす。
【００５９】
「呼出元応答返却状態」は、呼出元のワークフローの状態を示す。「応答待ち」でないときには、応答を通知せずに、「応答待ち」となるまで、通知を一時的に保留する。
【００６０】
通知条件を満たしたか否かを判定する処理は、図６（ｂ）および図６（ｃ）に記載された、呼出先に関する情報（「呼出先ワークフローＩＤ」、「呼出先ワークＩＤ」、「呼出先ワーク状態」）を互いに照合することにより、実現される。この呼出先に関する情報の組合せが、図６（ｂ）および図６（ｃ）で互いに一致したときに、通知条件を満たしたと判定する。
【００６１】
例えば、呼出先に関する情報について、２つの情報（転出ワークフロー、課長職審査ワーク）が互いに一致しているが、１つの情報（呼出先ワーク状態における「実行開始時」と「完了」）が不一致なため、この時点では通知条件を満たしていない。
【００６２】
しかし、課長職審査ワークが「実行開始時」から「完了」へと遷移し、その遷移がワーク状態統合テーブル２３２に反映されると、呼出先に関する情報について、３つの情報が互いに完全一致する。このとき、通知条件を満たしていると判断され、呼出元ワークフロー装置３ａへと「転出ワークフロー」の応答通知が返信される。
【００６３】
図７は、ワーク状態監視部３２１ｂが行う処理を示すフローチャートである。
【００６４】
まず、ワークフロー接続装置２からワークフロー連携を開始する旨の通知を受け取る（Ｓ１１）。次に、ビジネスプロセス定義格納部３３１ｂからワークフローを読み込み、主記憶装置３２ｂ上に、ワーク状態監視を行うワークフローを保持する（Ｓ１２）。そして、ワーク状態監視の対象を既に監視したワークから次に監視するワークへと変更し、ワーク状態監視の対象を決定する（Ｓ１３）。まだワークを１つも監視していないときは、最初のワークを監視対象とする。
【００６５】
ここで、ワークフロー接続装置２から監視終了の通知を受け取ったときは（Ｓ１４，Ｙｅｓ）、監視の必要が無くなったことにより、処理を終了する。これにより、監視が不要なときには、監視を中断することにより、ムダな処理量を減らすことができる。一方、監視終了の通知を受け取らないときは（Ｓ１４，Ｎｏ）、処理をＳ１５に進める。
【００６６】
そして、一定間隔でワーク状態テーブル３３２ｂを参照して監視対象のワークの状態をチェックし、前回チェック時からワーク状態の遷移により状態が更新されている場合には（Ｓ１５，Ｙｅｓ）、Ｓ１６に進む。一方、更新がされていない場合（Ｓ１５，Ｎｏ）は、Ｓ１４に処理を戻す。
【００６７】
Ｓ１５でＹｅｓのときには、Ｓ１５で検出した監視対象のワーク状態の更新をワークフロー接続装置２へ通知する（Ｓ１６）。ここで、ワークフローを構成する全てのワークの処理が終了したときには（Ｓ１７，Ｙｅｓ）、ワークフロー接続装置２へワークフローの完了通知を行う（Ｓ１８）。一方、終了していないワークが存在するときには（Ｓ１７，Ｎｏ）、処理をＳ１３に戻す。
【００６８】
図８は、ワーク状態監視部３２１ｂからワーク状態の更新を通知されたときの、ワークフロー接続装置２が行う処理を示すフローチャートである。
【００６９】
まず、監視対象のワーク状態の更新通知（Ｓ１８）をワーク状態監視部３２１ｂから受け取る（Ｓ２１）。次に、Ｓ２１で受け取ったワーク状態を、ワーク状態統合テーブル２３２へ書き込む（Ｓ２２）。
【００７０】
ここで、通知条件テーブル２３１を参照し、通知条件が成立したか否かを判定する（Ｓ２３）。まず、条件が不成立だった場合（Ｓ２３，Ｎｏ）には、ワーク状態監視部３２１ｂからの情報待ち状態となり再度Ｓ２１へと処理が戻る。一方、条件が成立した場合にはＳ２４へ進む。
【００７１】
そして、呼出元にＳ２１で受け取った応答メッセージを送信する（Ｓ２４）。なお、Ｓ２４の処理は、通知条件が成立していなくても、ワークフローが完了したときには、常に実行することとしてもよい。これは、図９に示した同期および非同期の連携方式では、ワークフローの最後に必ず応答を返すようにしている仕様との互換性を保つことを目的とする。
【００７２】
以上説明した本実施形態によれば、ワークフロー接続装置２が、呼出先ワークフローの状態遷移のうち、通知条件を満たすものについて、呼出元ワークフローに応答として通知することとした。これにより、呼出元ワークフローは、適切なタイミングで応答を受けられるので、不要な待ち時間を発生させずに、呼出先ワークフローを適切なタイミングで次々に開始することができる。よって、サービス連携における応答タイミングを柔軟に変更できる。
【００７３】
このように、応答を通知する機能をワークフロー接続装置２が専用的に実行する方式は、各呼出先ワークフローが呼出元ワークフローに対して、直接的に応答を通知するように呼出先ワークフローの内部を直接修正する方式に比べ、以下の利点がある。直接修正する方式では、呼出先ワークフローが実行した後に、新たに応答を通知する呼出先ワークフローが増えたときに、呼出先ワークフローを停止し、新規に呼出先ワークフローに対して、新たな応答先を登録することとなり、システムの稼働停止期間が発生してしまう。
【００７４】
一方、ワークフロー接続装置２を設ける方式では、ワークフロー接続装置２の通知条件に新たに応答先を増やすだけで、呼出先ワークフローを停止せずに済むため、システムの稼働停止期間が発生しない。
【図面の簡単な説明】
【００７５】
【図１】本発明の一実施形態に関するワークフローの連携方式を示す説明図である。
【図２】本発明の一実施形態に関する本実施形態のワークフロー連携システムを示す構成図である。
【図３】本発明の一実施形態に関する本実施形態のワークフロー連携システムを構成する各装置の詳細を示す説明図である。
【図４】本発明の一実施形態に関する本実施形態のワークフロー連携システムを構成する各装置の詳細を示す説明図である。
【図５】本発明の一実施形態に関するワーク状態監視部およびワーク実行部の処理概要を示す説明図である。
【図６】本発明の一実施形態に関する各テーブルの一例を示す構成図である。
【図７】本発明の一実施形態に関するワーク状態監視部が行う処理を示すフローチャートである。
【図８】本発明の一実施形態に関するワーク状態監視部からワーク状態の更新を通知されたときの、ワークフロー接続装置が行う処理を示すフローチャートである。
【図９】同期方式および非同期方式におけるワークフローの連携方式を示す説明図である。
【符号の説明】
【００７６】
２      ワークフロー接続装置
２２１  データ変換部
２２２  通知条件判定部
２２３  メッセージ送信部
２３１  通知条件テーブル
２３２  ワーク状態統合テーブル
２３３  通信管理テーブル
３ａ    呼出元ワークフロー装置
３２１ａ  ワーク状態監視部
３２２ａ  ワーク実行部
３３１ａ  ビジネスプロセス定義格納部
３３２ａ  ワーク状態テーブル
３ｂ    呼出先ワークフロー装置
３２１ｂ  ワーク状態監視部
３２２ｂ  ワーク実行部
３３１ｂ  ビジネスプロセス定義格納部
３３２ｂ  ワーク状態テーブル
５      設定装置
６      運用装置
９      ネットワーク
【図１】
2008310475.tif 000003
【図２】
2008310475.tif 000004
【図３】
2008310475.tif 000005
【図４】
2008310475.tif 000006
【図５】
2008310475.tif 000007
【図６】
2008310475.tif 000008
【図７】
2008310475.tif 000009
【図８】
2008310475.tif 000010
【図９】
2008310475.tif 000011