(57)【特許請求の範囲】
【請求項１】
ワークフロー管理装置と、サービス状態管理装置と、少なくとも１つのサービス提供装置とを備えるワークフロー管理システムであって、
前記少なくとも１つのサービス提供装置は、前記サービス状態管理装置にメンテナンス情報を定期的に送信し、
前記ワークフロー管理装置は、利用者端末から所定のサービスに係るサービス要求情報を受信した場合、前記サービス状態管理装置に、前記サービスに係るトランザクション情報を送信し、
前記サービス状態管理装置は、前記トランザクション情報を受信した場合、該トランザクション情報及び前記メンテナンス情報に基づき、トランザクションの実行可否を判定し、該トランザクションが実行不可の場合、実行不可通知を前記ワークフロー管理装置に送信し、
前記ワークフロー管理装置は、前記実行不可通知を受信した場合、前記所定のサービスが実行不可であると判定することを特徴とし、
前記サービス状態管理装置は、前記トランザクションが実行可能と判定した場合、前記少なくとも１つのサービス提供装置にヘルスチェック要求を送信し、
前記少なくとも１つのサービス提供装置は、前記ヘルスチェック要求を受信した場合、ヘルスチェック結果を、前記サービス状態管理装置を介して前記ワークフロー管理装置に送信し、
前記ワークフロー管理装置は、前記ヘルスチェック結果を受信した場合、該ヘルスチェック結果に基づき、前記所定のサービスの実行可否を判定するワークフロー管理システム。
【請求項２】
前記ワークフロー管理装置は、前記所定のサービスの実行可否の判定の結果、サービスが実行可能と判定した場合、前記少なくとも１つのサービス提供装置にサービス提供要求を送信し、
前記所定のサービスの実行可否の判定の結果、サービスが実行不可能と判定した場合、サービス実行不可通知を利用者端末に送信することを特徴とする、請求項１に記載のワークフロー管理システム。
【請求項３】
ワークフロー管理装置と、サービス状態管理装置と、少なくとも１つのサービス提供装置とを備えるワークフロー管理方法であって、
前記少なくとも１つのサービス提供装置は、前記サービス状態管理装置にメンテナンス情報を定期的に送信するステップと、
前記ワークフロー管理装置は、利用者端末から所定のサービスに係るサービス要求情報を受信した場合、前記サービス状態管理装置に、前記サービスに係るトランザクション情報を送信するステップと、
前記サービス状態管理装置は、前記トランザクション情報を受信した場合、該トランザクション情報及び前記メンテナンス情報に基づき、トランザクションの実行可否を判定し、該トランザクションが実行不可の場合、実行不可通知を前記ワークフロー管理装置に送信するステップと、
前記ワークフロー管理装置は、前記実行不可通知を受信した場合、前記所定のサービスが実行不可であると判定するステップと、
を含むワークフロー管理方法であって、
前記判定するステップにおいて前記サービス状態管理装置が、前記トランザクションを実行可能と判定した場合、前記少なくとも１つのサービス提供装置にヘルスチェック要求を送信するステップと、
前記少なくとも１つのサービス提供装置は、前記ヘルスチェック要求を受信した場合、ヘルスチェック結果を、前記サービス状態管理装置を介して前記ワークフロー管理装置に送信するステップと、
前記ワークフロー管理装置は、前記ヘルスチェック結果を受信した場合、該ヘルスチェック結果に基づき、前記所定のサービスの実行可否を判定するステップと、
を含むことを特徴とするワークフロー管理方法。
【請求項４】
前記ワークフロー管理装置は、前記所定のサービスの実行可否の判定の結果、サービスが実行可能と判定した場合、前記少なくとも１つのサービス提供装置にサービス提供要求を送信し、
前記所定のサービスの実行可否の判定の結果、サービスが実行不可能と判定した場合、サービス実行不可通知を利用者端末に送信することを特徴とする、請求項３に記載のワークフロー管理方法。
【請求項５】
ワークフロー管理装置と、サービス状態管理装置と、少なくとも１つのサービス提供装置とを備えるワークフロー管理システムにおけるサービス状態管理装置であって、
前記少なくとも１つのサービス提供装置から、メンテナンス情報を定期的に受信するサービス提供装置状態取得部と、
前記ワークフロー管理装置から所定のサービスに係るトランザクション情報を受信する通信部と、
前記トランザクション情報及び前記メンテナンス情報に基づき、トランザクションの実行可否を判定し、該トランザクションが実行不可の場合、実行不可通知を前記ワークフロー管理装置に送信するサービス提供装置状態取得部と、
を備えるサービス状態管理装置であって、
前記サービス提供装置状態取得部が前記トランザクションを実行可能と判定した場合、前記少なくとも１つのサービス提供装置にヘルスチェック要求を送信するヘルスチェック処理部と、
ヘルスチェック結果を受信し、前記ワークフロー管理装置に送信するヘルスチェック送受信部と、
を備えることを特徴とするサービス状態管理装置。
【請求項６】
ワークフロー管理装置と、サービス状態管理装置と、少なくとも１つのサービス提供装置とを備えるワークフロー管理システムにおけるワークフロー管理装置であって、
利用者端末から所定のサービスに係るサービス要求情報を受信するサービス要求受信部と、
前記サービス状態管理装置に、前記サービスに係るトランザクション情報を送信する通信部と、
前記トランザクション情報に基づき前記サービス状態管理装置から、実行不可通知を受信した場合、前記所定のサービスが実行不可であると判定するサービス状態チェック部と、
を備えるワークフロー管理装置であって、
前記サービス状態チェック部はさらに、前記サービス状態管理装置から、ヘルスチェック結果を受信し、該ヘルスチェック結果に基づき、前記所定のサービスの実行可否を判定することを特徴とするワークフロー管理装置。
【請求項７】
前記ワークフロー管理装置は、前記所定のサービスの実行可否の判定の結果、サービスが実行可能と判定した場合、前記少なくとも１つのサービス提供装置にサービス提供要求を送信し、
前記所定のサービスの実行可否の判定の結果、サービスが実行不可能と判定した場合、サービス実行不可通知を利用者端末に送信することを特徴とする、請求項６に記載のワークフロー管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークフロー管理システム、ワークフロー管理方法、サービス状態管理装置、及びワークフロー管理装置に関する。
【背景技術】
【０００２】
ワークフロー管理システムとは、業務における処理を作業の流れとしてビジネスプロセスを定義し、それに従って作業通知や作業遷移をワークフローエンジンによって制御するものである（例えば非特許文献１）。このワークフロー管理システムにおけるエラー対策技術として、ロールバック処理を最小化するセーブポイントやワークフローの実行順序を最適化することでエラーによるコストを最小化する技術が存在する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】“Workflow Engine API”3003、Oracle、[ｏｎｌｉｎｅ][２０１２年３月２９日検索]、インターネット、<URL:http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/workflow.102/B19235-01/T341351T341380.htm>
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のエラー対策技術では、エラー発生時の補償トランザクションにかかるコストを最小化できるものの、サービス提供装置が計画的または突発的なシステム停止により稼働していない場合には、補償トランザクションが発生してしまうリスク、及び補償トランザクションによる計算負荷の増大の問題があった。
【０００５】
従って、上記のような問題点に鑑みてなされた本発明の目的は、サービス提供装置のシステム停止によりワークフローが途中で中断して補償トランザクションが発生するリスクを低減することができるワークフロー管理システム、ワークフロー管理方法、サービス状態管理装置、及びワークフロー管理装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために本発明に係るワークフロー管理システムは、ワークフロー管理装置と、サービス状態管理装置と、少なくとも１つのサービス提供装置とを備えるワークフロー管理システムであって、前記少なくとも１つのサービス提供装置は、前記サービス状態管理装置にメンテナンス情報を定期的に送信し、前記ワークフロー管理装置は、利用者端末から所定のサービスに係るサービス要求情報を受信した場合、前記サービス状態管理装置に、前記サービスに係るトランザクション情報を送信し、前記サービス状態管理装置は、前記トランザクション情報を受信した場合、該トランザクション情報及び前記メンテナンス情報に基づき、トランザクションの実行可否を判定し、該トランザクションが実行不可の場合、実行不可通知を前記ワークフロー管理装置に送信し、前記ワークフロー管理装置は、前記実行不可通知を受信した場合、前記所定のサービスが実行不可であると判定することを特徴とし、前記サービス状態管理装置は、前記トランザクションが実行可能と判定した場合、前記少なくとも１つのサービス提供装置にヘルスチェック要求を送信し、前記少なくとも１つのサービス提供装置は、前記ヘルスチェック要求を受信した場合、ヘルスチェック結果を、前記サービス状態管理装置を介して前記ワークフロー管理装置に送信し、前記ワークフロー管理装置は、前記ヘルスチェック結果を受信した場合、該ヘルスチェック結果に基づき、前記所定のサービスの実行可否を判定する。
【０００７】
また、本発明に係るワークフロー管理方法は、ワークフロー管理装置と、サービス状態管理装置と、少なくとも１つのサービス提供装置とを備えるワークフロー管理方法であって、前記少なくとも１つのサービス提供装置は、前記サービス状態管理装置にメンテナンス情報を定期的に送信するステップと、前記ワークフロー管理装置は、利用者端末から所定のサービスに係るサービス要求情報を受信した場合、前記サービス状態管理装置に、前記サービスに係るトランザクション情報を送信するステップと、前記サービス状態管理装置は、前記トランザクション情報を受信した場合、該トランザクション情報及び前記メンテナンス情報に基づき、トランザクションの実行可否を判定し、該トランザクションが実行不可の場合、実行不可通知を前記ワークフロー管理装置に送信するステップと、前記ワークフロー管理装置は、前記実行不可通知を受信した場合、前記所定のサービスが実行不可であると判定するステップと、を含むワークフロー管理方法であって、前記判定するステップにおいて前記サービス状態管理装置が、前記トランザクションを実行可能と判定した場合、前記少なくとも１つのサービス提供装置にヘルスチェック要求を送信するステップと、前記少なくとも１つのサービス提供装置は、前記ヘルスチェック要求を受信した場合、ヘルスチェック結果を、前記サービス状態管理装置を介して前記ワークフロー管理装置に送信するステップと、前記ワークフロー管理装置は、前記ヘルスチェック結果を受信した場合、該ヘルスチェック結果に基づき、前記所定のサービスの実行可否を判定するステップと、を含むことを特徴とする。
【０００８】
また、本発明に係るサービス状態管理装置は、ワークフロー管理装置と、サービス状態管理装置と、少なくとも１つのサービス提供装置とを備えるワークフロー管理システムにおけるサービス状態管理装置であって、前記少なくとも１つのサービス提供装置から、メンテナンス情報を定期的に受信するサービス提供装置状態取得部と、前記ワークフロー管理装置から所定のサービスに係るトランザクション情報を受信する通信部と、前記トランザクション情報及び前記メンテナンス情報に基づき、トランザクションの実行可否を判定し、該トランザクションが実行不可の場合、実行不可通知を前記ワークフロー管理装置に送信するサービス提供装置状態取得部と、を備えるサービス状態管理装置であって、前記サービス提供装置状態取得部が前記トランザクションを実行可能と判定した場合、前記少なくとも１つのサービス提供装置にヘルスチェック要求を送信するヘルスチェック処理部と、ヘルスチェック結果を受信し、前記ワークフロー管理装置に送信するヘルスチェック送受信部と、を備えることを特徴とする。
【０００９】
また、本発明に係るワークフロー管理装置は、ワークフロー管理装置と、サービス状態管理装置と、少なくとも１つのサービス提供装置とを備えるワークフロー管理システムにおけるワークフロー管理装置であって、利用者端末から所定のサービスに係るサービス要求情報を受信するサービス要求受信部と、前記サービス状態管理装置に、前記サービスに係るトランザクション情報を送信する通信部と、前記トランザクション情報に基づき前記サービス状態管理装置から、実行不可通知を受信した場合、前記所定のサービスが実行不可であると判定するサービス状態チェック部と、を備えるワークフロー管理装置であって、前記サービス状態チェック部はさらに、前記サービス状態管理装置から、ヘルスチェック結果を受信し、該ヘルスチェック結果に基づき、前記所定のサービスの実行可否を判定することを特徴とする。
【発明の効果】
【００１０】
本発明におけるワークフロー管理システム、ワークフロー管理方法、サービス状態管理装置、及びワークフロー管理装置によれば、サービス提供装置のシステム停止によりワークフローが途中で中断して補償トランザクションが発生するリスクを低減することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係るワークフロー管理システムのブロック図である。
【図２】制御シナリオテーブルの例である。
【図３】メンテナンス情報テーブルの例である。
【図４】ヘルスチェックステータステーブルの例である。
【図５】本発明の一実施形態に係るワークフロー管理システムの動作を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について説明する。
【００１３】
（実施の形態）
図１は本発明の一実施形態に係るワークフロー管理システムのブロック図である。本発明の一実施形態に係るワークフロー管理システムは、利用者端末１と、ワークフロー管理装置１００と、複数のサービス提供装置（２００Ａ〜２００Ｎ）と、サービス状態管理装置３００とを備える。これらはネットワークを介して接続されている。なお、図１におけるワークフロー管理システムは、サービス提供装置を複数備える例を示しているがこれに限られず、サービス提供装置を、１つのみ備える構成であってもよい。
【００１４】
利用者端末１は、所定のワークフローに係るサービス要求情報を、ワークフロー管理装置１００に送信する。また利用者端末１は、ワークフロー管理装置１００から、所定のサービスの提供を受ける。
【００１５】
ワークフロー管理装置１００は、サービス要求受信部１０１と、制御シナリオ取得部１０２と、制御シナリオデータベース（ＤＢ）１０３と、ワークフロー実行制御部１０４と、サービス状態問い合わせ送信部１０５と、サービス状態受信部１０６と、サービス状態チェック部１０７と、サービス提供部１０８と、通信部１０９とを備える。
【００１６】
サービス要求受信部１０１は、利用者端末１から、通信部１０９を介してサービス要求情報を受けると、該サービス要求情報を制御シナリオ取得部１０２に渡す。
【００１７】
制御シナリオ取得部１０２は、サービス要求受信部１０１からサービス要求情報を受けた場合、制御シナリオＤＢ１０３から所定の制御シナリオを取得する。制御シナリオとは、所定のサービスを行うためのトランザクションの組合せである。制御シナリオ取得部１０２は、サービス要求情報に基づき、所定の制御シナリオを特定する。そして制御シナリオ取得部１０２は、特定した制御シナリオに係る制御シナリオテーブル含まれる所定の情報、具体的には呼出サービス提供装置ＩＤと平均所要時間を含む情報（以下、トランザクション情報という。）をワークフロー実行制御部１０４に渡す。
【００１８】
制御シナリオＤＢ１０３には、本ワークフロー管理システムにより提供するサービスに対応する制御シナリオを含む制御シナリオテーブルが格納される。
【００１９】
図２は、制御シナリオＤＢ１０３に格納される、あるサービスに対応する制御シナリオテーブルの一例である。制御シナリオテーブルは、所定のサービスを行うためのトランザクション情報を備える。具体的には制御シナリオテーブルは、実行トランザクションＩＤと、サービス提供装置ＩＤ及びＩＰアドレスの組合せと、平均所要時間とを備える。トランザクションＩＤとは、本システムにおいて、トランザクションを一意に特定するための識別子である。サービス提供装置ＩＤとは、本システムにおいてサービス提供装置を一意に特定するための識別子である。ＩＰアドレスとは、サービス提供装置に割当てられたネットワーク上の番地を表す番号である。平均所要時間とは、対応するトランザクションＩＤに係るトランザクションを実行するのに要する平均的な所要時間である。なお、サービス提供装置２００Ａ〜２００Ｎのサービス提供装置ＩＤは、夫々“１００１”〜“１０１９”であり、ＩＰアドレスは夫々“１２３．４５６．７８１．００１”〜“１２３．４５６．７８１．０１９”であるものとして説明する。
【００２０】
ワークフロー実行制御部１０４は、制御シナリオ取得部１０２からトランザクション情報を受けた場合、ワークフローすなわちトランザクションを実行する。ここでワークフロー実行制御部１０４は、各トランザクションの実行前に、全ての未処理トランザクションに含まれるサービス提供装置の状態問い合わせを、サービス状態問い合わせ送信部１０５により行う。具体的にはワークフロー実行制御部１０４は、制御シナリオ取得部１０２から受けたトランザクション情報を、サービス状態問い合わせ送信部１０５に渡す。
【００２１】
サービス状態問い合わせ送信部１０５は、ワークフロー実行制御部１０４から、トランザクション情報を受けた場合、サービス状態をサービス状態管理装置３００に問い合わせる。具体的にはサービス状態問い合わせ送信部１０５は、トランザクション情報を、通信部１０９を介して、サービス状態管理装置３００に送信する。
【００２２】
サービス状態受信部１０６は、通信部１０９から後述するヘルスチェックステータステーブルを受けて、サービス状態チェック部１０７に渡す。
【００２３】
サービス状態チェック部１０７は、サービス状態受信部１０６より、サービス提供装置（２００Ａ〜２００Ｎ）に係るヘルスチェックステータステーブルを取得する。そしてサービス状態チェック部１０７は、当該ヘルスチェックチェックステータステーブル、すなわちヘルスチェック結果に基づき、所定のサービスの実行可否を判定する。具体的には、サービス状態チェック部１０７は、ヘルスチェックステータステーブルにおいて“応答無し”のサービス提供装置が一つも無ければ、所定のサービスを実行可能と判定する。一方、サービス状態チェック部１０７は、ヘルスチェックステータステーブルにおいて“応答無し”であるサービス提供装置が一つでもあれば、所定のサービスを実行不可と判定する。実行可能と判定した場合は、サービス状態チェック部１０７は、サービス提供部１０８にサービス実行処理を要求する。実行不可と判断した場合には、サービス状態チェック部１０７は、サービス提供部１０８にサービス提供不可通知処理を要求する。
【００２４】
またサービス状態チェック部１０７は、サービス状態管理装置３００から実行不可通知を、通信部３０４を介して受信した場合、所定のサービスが実行不可であると判定する。この場合、サービス状態チェック部１０７は、サービス提供部１０８にサービス提供不可通知処理を要求する。
【００２５】
サービス提供部１０８は、サービス状態チェック部１０７から、サービス提供不可通知処理の要求を受けた場合、利用者端末１にサービス実行不可通知を送信する。またサービス提供部１０８は、サービス状態チェック部１０７からサービス実行処理の要求を受けると、サービス提供要求を、各サービス提供装置（２００Ａ〜２００Ｎ）に、通信部１０９を介して送信する。またサービス提供部１０８は、サービス提供要求に対応する返却を、通信部１０９を介して受信する。そしてサービス提供部は、当該返却に基づき、利用者端末１に所定のサービスを提供する。
【００２６】
通信部１０９は、サービス状態問い合わせ送信部１０５、サービス提供部１０８より依頼を受けて、データの種類に応じて利用者端末１、サービス状態管理装置３００に情報を送信する。また、利用者端末１、サービス状態管理装置３００から情報を受信し、データ種類に応じて、サービス状態受信部１０６、サービス提供部１０８に受信したデータを渡す。
【００２７】
サービス提供装置２００Ａは、メンテナンス情報取得部２０１と、通信部２０３と、メンテナンス情報送信部２０２と、メンテナンス情報データベース（ＤＢ）２０４とを備える。
【００２８】
メンテナンス情報取得部２０１は、定期的に自装置のメンテナンス情報をメンテナンス情報ＤＢ２０４から取得し、メンテナンス情報送信部２０２に渡す。具体的にはメンテナンス情報取得部２０１は、タイマー（不図示）等により、所定時間の経過を判定し、所定時間毎に自装置のメンテナンス情報をメンテナンス情報ＤＢ２０４から取得し、メンテナンス情報送信部２０２に渡す。
【００２９】
メンテナンス情報送信部２０２は、メンテナンス情報取得部２０１より、メンテナンス情報を受け取り、通信部２０３に送信を要求する。
【００３０】
通信部２０３は、メンテナンス情報送信部２０２の要求に基づき、メンテナンス情報をサービス状態管理装置３００に定期的に送信する。また通信部２０３は、サービス状態管理装置３００からのヘルスチェックを受信する。また通信部２０３は、ヘルスチェックを受信した場合、ヘルスチェック結果をサービス状態管理装置３００に返却する。
【００３１】
メンテナンス情報ＤＢ２０４は、自装置のメンテナンス情報を保持する。図３は、メンテナンス情報ＤＢ２０４に格納されたメンテナンス情報の例である。メンテナンス情報は、好ましくはテーブルの形式（メンテナンス情報テーブル）により格納される。図３に示すメンテナンス情報テーブルには、サービス提供装置ＩＤと、該サービス提供装置ＩＤに係るメンテナンス情報が対応付けて格納される。メンテナンス情報は、メンテナンス開始日時と、メンテナンス完了日時と、該当期間状況とを含む。例えば、サービス提供装置ＩＤ“１００１”に関し、メンテナンス開始日時“１２／０３ ２４：００”、メンテナンス完了日時“１２／０４ ０７：００”、該当期間状況“利用不可”が格納される。すなわち１２／０３ ２４：００〜１２／０４ ７：００の期間中においては、サービス提供装置ＩＤ“１００１”に係るサービス提供装置２００Ａは、サービス提供することができないことを示す。なお該当期間状況は、“特定サービス利用不可”等であってもよい。これは、メンテナンス期間において、特定のサービスのみが利用不可であることを意味する。
【００３２】
サービス提供装置２００Ｂ〜２００Ｎの構成は、サービス提供装置２００Ａと同一であるため、説明は省略する。
【００３３】
サービス状態管理装置３００は、サービス提供装置状態取得部３０１と、ヘルスチェック処理部３０２と、メンテナンス情報入力部３０３と、通信部３０４と、サービス状態問い合わせ受信部３０５と、メンテナンス情報受信部３０６と、サービス状態送信部３０７と、ヘルスチェック送受信部３０８と、サービス提供装置データベース（ＤＢ）３０９とを備える。
【００３４】
サービス提供装置状態取得部３０１は、サービス状態問い合わせ受信部３０５からトランザクション情報を受ける。またサービス提供装置状態取得部３０１は、サービス提供装置ＤＢ３０９から、トランザクション情報に含まれるサービス提供装置ＩＤのメンテナンス情報を取得する。そしてサービス提供装置状態取得部３０１は、取得したトランザクション情報及びメンテナンス情報に基づき、トランザクションの実行可否を判定する。具体的にはサービス提供装置状態取得部３０１は、現在時刻からトランザクションの平均所要時間の期間（以下、トランザクション期間）が、該トランザクションに係るサービス提供装置のメンテナンス期間と重なるか否かに基づき、重ならない場合は、トランザクション実行可能と判定する。一方、トランザクション期間が該トランザクションに係るサービス提供装置のメンテナンス期間と重なる場合は、サービス提供装置状態取得部３０１はトランザクション実行不可と判定する。
【００３５】
そしてサービス提供装置状態取得部３０１は、トランザクション実行可能と判定した場合、ヘルスチェック処理部３０２にヘルスチェック処理を要求する。一方サービス提供装置状態取得部３０１は、トランザクション実行不可と判定した場合、実行不可通知をワークフロー管理装置１００に送信する。
【００３６】
また、サービス提供装置状態取得部３０１は、ヘルスチェック処理部３０２からヘルスチェックステータステーブルを受け取り、サービス状態送信部３０７を介して、ワークフロー管理装置１００に送信する。
【００３７】
ヘルスチェック処理部３０２は、サービス提供装置状態取得部３０１の要求に基づき、トランザクションに含まれるサービス提供装置（２００Ａ〜２００Ｎ）のヘルスチェック送信をヘルスチェック送受信部３０８に要求する。またヘルスチェック処理部３０２は、ヘルスチェック送受信部３０８から各ヘルスチェック結果を受けて、ヘルスチェックステータステーブルを生成し、サービス提供装置状態取得部３０１に渡す。
【００３８】
図４は、ヘルスチェックステータステーブルの例である。ヘルスチェックステータステーブルは、サービス提供装置ＩＤと、該サービス提供装置ＩＤに係るサービス提供装置のステータスを備える。ステータスは、“稼動中”または“応答無し”の２値である。各サービス提供装置は、ステータスが“稼動中”の時には、サービスを提供可能である。一方、各サービス提供装置は、ステータスが“応答無し”の時には、サービスを提供不可能である。
【００３９】
メンテナンス情報入力部３０３は、メンテナンス情報受信部３０６から、メンテナンス情報を受け取り、サービス提供装置ＤＢ３０９に格納する。
【００４０】
通信部３０４は、サービス状態送信部３０７、ヘルスチェック送受信部３０８の要求に基づき、データの種類に応じてワークフロー管理装置１００、サービス提供装置（２００Ａ〜２００Ｎ）に情報を送信する。また、ワークフロー管理装置１００、サービス提供装置（２００Ａ〜２００Ｎ）から情報を受信し、データの種類に応じて、サービス状態問い合わせ受信部３０５、メンテナンス情報受信部３０６、ヘルスチェック送受信部３０８に処理を要求する。
【００４１】
サービス状態問い合わせ受信部３０５は、ワークフロー管理装置１００から、通信部３０４を介してトランザクション情報を受信する。そしてサービス状態問い合わせ受信部３０５は、受信したトランザクション情報を、サービス提供装置状態取得部３０１へ渡す。
【００４２】
メンテナンス情報受信部３０６は、通信部３０４から、各サービス提供装置（２００Ａ〜２００Ｎ）のメンテナンス情報を受けて、メンテナンス情報入力部３０３へ渡す。
【００４３】
サービス状態送信部３０７は、サービス提供装置状態取得部３０１より、メンテナンス情報、ヘルスチェックステータステーブルを受けて、それぞれの送信を通信部３０４に要求する。
【００４４】
ヘルスチェック送受信部３０８は、ヘルスチェック処理部３０２の要求に基づき、ヘルスチェックの送信を、通信部３０４を介してサービス提供装置（２００Ａ〜２００Ｎ）に送信する。またヘルスチェック送受信部３０８は、通信部３０４を介してヘルスチェック結果を受け取り、ヘルスチェック処理部３０２に渡す。
【００４５】
サービス提供装置データベースＤＢ３０９は、各サービス提供装置（２００Ａ〜２００Ｎ）のメンテナンス情報を保持する。
【００４６】
次に、本発明の一実施形態に係るワークフロー管理システムについて、図５に示すフローチャートによりその動作を説明する。なおここでは、サービス提供装置はサービス提供装置２００Ａ及びサービス提供装置２００Ｂのみを用いる例を示すが、これに限られない。
【００４７】
はじめに各サービス提供装置（２００Ａ、２００Ｂ）のメンテナンス情報取得部２０１は、定期的に自装置のメンテナンス情報をメンテナンス情報ＤＢ２０４から取得し、メンテナンス情報送信部２０２に渡す。具体的にはメンテナンス情報取得部２０１は、タイマー（不図示）等により、所定時間の経過を判定する（ステップＳ１Ａ、ステップＳ１Ｂ）。所定時間経過した場合、メンテナンス情報取得部２０１は、自装置のメンテナンス情報をメンテナンス情報ＤＢ２０４から取得し、メンテナンス情報送信部２０２に渡す。メンテナンス情報送信部２０２は、メンテナンス情報取得部２０１より、メンテナンス情報を受け取り、通信部２０３に送信を要求する。そして通信部２０３は、メンテナンス情報送信部２０２の要求に基づき、メンテナンス情報をサービス状態管理装置３００に送信する（ステップＳ２Ａ、ステップＳ２Ｂ）。
【００４８】
続いてサービス状態管理装置３００のメンテナンス情報受信部３０６は、通信部３０４から、各サービス提供装置（２００Ａ、２００Ｂ）のメンテナンス情報を受けて、メンテナンス情報入力部３０３へ渡す。メンテナンス情報入力部３０３は、メンテナンス情報受信部３０６から、メンテナンス情報を受け取り、サービス提供装置ＤＢ３０９に格納する（ステップＳ３Ａ、ステップＳ３Ｂ）。
【００４９】
一方ステップＳ１Ａ及びステップＳ１Ｂにおいて、所定時間が経過していない場合は、各サービス提供装置（２００Ａ、２００Ｂ）は、ステップＳ２Ａ、ステップＳ２Ｂ及びステップＳ３Ａ、ステップＳ３Ｂをスキップする。サービス提供装置２００Ａ及び２００Ｂは、ステップＳ１Ａ及びステップＳ１Ｂ〜ステップＳ２Ａ及びステップＳ２Ｂを繰り返し行い、定期的にメンテナンス情報を取得、送信する。
【００５０】
続いて利用者端末１は、所定のワークフローに係るサービス要求情報を、ワークフロー管理装置１００に送信する（ステップＳ４）。
【００５１】
続いてワークフロー管理装置１００のサービス要求受信部１０１は、利用者端末１から、通信部１０９を介してサービス要求情報を受けると、該サービス要求情報を制御シナリオ取得部１０２に渡す。制御シナリオ取得部１０２は、サービス要求受信部１０１からサービス要求情報を受けると、制御シナリオＤＢ１０３から所定の制御シナリオを取得する。そして制御シナリオ取得部１０２はトランザクション情報をワークフロー実行制御部１０４に渡す。
【００５２】
そしてワークフロー実行制御部１０４は、制御シナリオ取得部１０２からトランザクション情報を受けた場合、ワークフロー、すなわちトランザクションを実行する。ここでワークフロー実行制御部１０４は、各トランザクションの実行前に、全ての未処理トランザクションに含まれるサービス提供装置の状態問い合わせを、サービス状態問い合わせ送信部１０５により行う。具体的にはワークフロー実行制御部１０４は、制御シナリオ取得部１０２から受けたトランザクション情報を、サービス状態問い合わせ送信部１０５に渡す。
【００５３】
そしてサービス状態問い合わせ送信部１０５は、ワークフロー実行制御部１０４から、トランザクション情報を受けた場合、サービス状態をサービス状態管理装置３００に問い合わせる。具体的にはサービス状態問い合わせ送信部１０５は、トランザクション情報を、通信部１０９を介して、サービス状態管理装置３００に送信する（ステップＳ５）。サービス状態管理装置３００のサービス状態問い合わせ受信部３０５は、ワークフロー管理装置１００から、通信部３０４を介してトランザクション情報を受信する。そしてサービス状態問い合わせ受信部３０５は、受信したトランザクション情報を、サービス提供装置状態取得部３０１へ渡す。サービス提供装置状態取得部３０１は、サービス状態問い合わせ受信部３０５からトランザクション情報を受ける。
【００５４】
続いてサービス提供装置状態取得部３０１は、サービス提供装置ＤＢ３０９から、トランザクション情報に含まれるサービス提供装置ＩＤのメンテナンス情報を取得する。そしてサービス提供装置状態取得部３０１は、取得したトランザクション情報及びメンテナンス情報に基づき、トランザクションの実行可否を判定する（ステップＳ６）。具体的にはサービス提供装置状態取得部３０１は、現在時刻からトランザクションの平均所要時間の期間（以下、トランザクション期間）が、該トランザクションに係るサービス提供装置のメンテナンス期間と重なるか否かに基づき、重ならない場合は、トランザクション実行可能と判定する。一方、トランザクション期間が該トランザクションに係るサービス提供装置のメンテナンス期間と重なる場合は、サービス提供装置状態取得部３０１はトランザクション実行不可と判定する。トランザクション実行不可と判定した場合、ステップＳ７に進む。一方、トランザクション実行可能と判定した場合、ステップＳ９Ａ及びステップＳ９Ｂに進む。
【００５５】
ステップＳ６において、サービス提供装置状態取得部３０１がトランザクション実行不可と判定した場合、サービス提供装置状態取得部３０１は、実行不可通知をワークフロー管理装置１００に送信する（ステップＳ７）。
【００５６】
ワークフロー管理装置１００のサービス状態チェック部１０７は、サービス状態管理装置３００から実行不可通知を、通信部３０４を介して受信した場合、所定のサービスが実行不可であると判定する。そしてサービス状態チェック部１０７は、サービス提供部１０８にサービス提供不可通知処理を要求する。サービス提供部１０８は、サービス状態チェック部１０７から、サービス提供不可通知処理の要求を受けた場合、利用者端末１にサービス実行不可通知を送信する（ステップＳ８）。
【００５７】
一方、ステップＳ６においてサービス提供装置状態取得部３０１がトランザクション実行可能と判定した場合、サービス提供装置状態取得部３０１は、ヘルスチェック処理部３０２にヘルスチェック処理を要求する。
【００５８】
ヘルスチェック処理部３０２は、サービス提供装置状態取得部３０１の要求に基づき、トランザクションに含まれるサービス提供装置（２００Ａ、２００Ｂ）のヘルスチェック送信をヘルスチェック送受信部３０８に要求する。ヘルスチェック送受信部３０８は、ヘルスチェック処理部３０２の要求に基づき、ヘルスチェックの送信を、通信部３０４を介してサービス提供装置（２００Ａ、２００Ｂ）に送信する。またヘルスチェック送受信部３０８は、通信部３０４を介してヘルスチェック結果を受け取り、ヘルスチェック処理部３０２に渡す（ステップＳ９Ａ、ステップＳ９Ｂ）。
【００５９】
続いてヘルスチェック処理部３０２は、ヘルスチェック送受信部３０８から各ヘルスチェック結果を受けて、ヘルスチェックステータステーブルを生成する（ステップＳ１０）。そしてヘルスチェック処理部３０２は、作成したサービス提供装置状態取得部３０１に渡す。
【００６０】
続いてサービス提供装置状態取得部３０１は、ヘルスチェック処理部３０２からヘルスチェックステータステーブルを受け取り、サービス状態送信部３０７を介して、ワークフロー管理装置１００にヘルスチェックステータステーブルを送信する（ステップＳ１１）。
【００６１】
続いてワークフロー管理装置１００のサービス状態受信部１０６は、通信部１０９から後述するヘルスチェックステータステーブルを受けて、サービス状態チェック部１０７に渡す。サービス状態チェック部１０７は、サービス状態受信部１０６より、サービス提供装置（２００Ａ、２００Ｂ）に係るヘルスチェックステータステーブルを取得する。そしてサービス状態チェック部１０７は、当該ヘルスチェックチェックステータステーブル、すなわちヘルスチェック結果に基づき、所定のサービスの実行可否を判定する（ステップＳ１２）。所定のサービスが実行不可と判定した場合、ステップＳ１３に進み、所定のサービスが実行可能と判定した場合、ステップＳ１４Ａ及びステップＳ１４Ｂに進む。
【００６２】
ステップＳ１２において所定のサービスが実行不可と判定した場合、サービス状態チェック部１０７は、サービス提供部１０８にサービス提供不可通知処理を要求する。サービス提供部１０８は、サービス状態チェック部１０７から、サービス提供不可通知処理の要求を受けた場合、利用者端末１にサービス実行不可通知を送信する（ステップＳ１３）。
【００６３】
ステップＳ１２において所定のサービスが実行可能と判定した場合、サービス状態チェック部１０７は、サービス提供部１０８にサービス実行処理を要求する。サービス提供部１０８は、サービス状態チェック部１０７からサービス実行処理の要求を受けると、サービス提供要求を、各サービス提供装置（２００Ａ、２００Ｂ）に、通信部１０９を介して送信する。またサービス提供部１０８は、サービス提供要求に対応する返却を、通信部１０９を介して受信する（ステップＳ１４Ａ、ステップＳ１４Ｂ）。そしてサービス提供部１０８は、当該返却に基づき、利用者端末１に所定のサービスを提供する（ステップＳ１５）。
【００６４】
このように本発明によれば、ワークフロー管理装置１００又はサービス状態管理装置３００が、トランザクションごとにサービス提供装置の状態を逐次チェックすることで、サービス提供装置のシステム停止によりワークフローが途中で中断して補償トランザクションが発生するリスクを低減することができ、不要な計算負荷を避けることができる。また利用者には中断可能性の低いサービスを提供することができる。
【００６５】
なお、図２において、制御シナリオテーブルは呼出サービス提供装置ＩＤ及びＩＰアドレスの組合せを含むとしたがこれに限られず、制御シナリオテーブルは、呼出サービス提供装置ＩＤ又はＩＰアドレスのいずれか１つを含むようにしてもよい。すなわち、所定のトランザクションに係るサービス提供装置が特定できる、少なくとも１つの情報が格納されていればよい。
【００６６】
本発明を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。従って、これらの変形や修正は本発明の範囲に含まれることに留意されたい。例えば、各手段、各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の手段やステップ等を１つに組み合わせたり、或いは分割したりすることが可能である。
【符号の説明】
【００６７】
１  利用者端末
１００  ワークフロー管理装置
１０１  サービス要求受信部
１０２  制御シナリオ取得部
１０３  制御シナリオデータベース
１０４  ワークフロー実効制御部
１０５  トランザクション情報送信部
１０６  サービス状態受信部
１０７  サービス状態チェック部
１０８  サービス提供部
１０９  通信部
２００Ａ〜２００Ｎ  サービス提供装置
２０１  メンテナンス情報取得部
２０２  メンテナンス情報送信部
２０３  通信部
２０４  メンテナンス情報データベース
３００  サービス状態管理装置
３０１  サービス提供装置状態取得部
３０２  ヘルスチェック処理部
３０３  メンテナンス情報入力部
３０４  通信部
３０５  サービス様態問い合わせ受信部
３０６  メンテナンス情報受信部
３０７  サービス状態送信部
３０８  ヘルスチェック送受信部
３０９  サービス提供装置データベース
【図１】
0005805582.tif 000002
【図２】
0005805582.tif 000003
【図３】
0005805582.tif 000004
【図４】
0005805582.tif 000005
【図５】
0005805582.tif 000006