(57)【特許請求の範囲】
【請求項１】
ワークフローサーバとクライアントにネットワークを介して接続される、少なくともワークフローサーバ名とプロセス識別子を含む履歴情報を蓄積する履歴サーバの履歴情報取得方法において、
前記履歴サーバが、
前記ワークフローサーバから送付された履歴情報を受信し、履歴ＤＢに受信した該履歴情報を書き出して蓄積するステップと、
前記クライアントからの履歴情報の取得要求を受け付け、前記履歴ＤＢに蓄積されている履歴情報を読み込む蓄積履歴読込ステップと、
読み込んだ前記履歴情報に含まれるワークフローサーバ名とプロセス識別子からプロセス動作中のワークフローサーバとプロセスを特定し、プロセス動作中の該ワークフローサーバに該プロセスのローカルな履歴情報の送付を要求し、該ワークフローサーバから送付されたローカルな履歴情報を取得する動作中履歴取得ステップと、
前記蓄積履歴読込ステップで読み込んだ履歴情報と前記動作中履歴取得ステップで取得したローカルな履歴情報をマージするステップと、
マージされた履歴情報を該履歴情報の取得要求を行ったクライアントに送付するステップと、
からなることを特徴とする履歴サーバの履歴情報取得方法。
【請求項２】
ワークフローサーバとクライアントがネットワーク介して接続され、少なくともフローサーバ名とプロセス識別子を含む履歴情報を蓄積する履歴サーバにおいて、
前記ワークフローサーバから送付された履歴情報を受信し、履歴ＤＢに受信した該履歴情報を書き出して蓄積する手段と、
前記クライアントからの履歴情報の取得要求を受け付け、前記履歴ＤＢに蓄積されている履歴情報を読み込む蓄積履歴読込手段と、
読み込んだ前記履歴情報に含まれるワークフローサーバ名とプロセス識別子からプロセス動作中のワークフローサーバとプロセスを特定し、プロセス動作中の該ワークフローサーバに該プロセスのローカルな履歴情報の送付を要求し、該ワークフローサーバから送付されたローカルな履歴情報を取得する動作中履歴取得手段と、
前記蓄積履歴読込手段で読み込んだ履歴情報と前記動作中履歴取得手段で取得したローカルな履歴情報をマージする手段と、
マージされた履歴情報を該履歴情報の取得要求を行ったクライアントに送付する手段と、
を有することを特徴とする履歴サーバ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ワークフローの履歴情報取得方法及び履歴サーバの履歴情報取得方法及びワークフローの履歴情報取得システム及びワークフローサーバ及び履歴サーバに係り、特に、ワークフローシステムにおける複数のサーバ及び複数クライアントで実施されたプロセスの履歴情報の取得を行うためのワークフローシステムにおけるワークフローの履歴情報取得方法及び履歴サーバの履歴情報取得方法及びワークフローの履歴情報取得システム及びワークフローサーバ及び履歴サーバに関する。
【０００２】
詳しくは、ワークフローは、仕事の流れを定義したもの（仕事のテンプレート）、担当者（人）と仕事の内容の関係（順番）等を定義したのをプランといい、担当者と仕事の内容の関係に対応するステージを設定する。クライアント側では、設定されたプランから、プランの実態として、プロセスを実行するための情報を識別子を付与して管理するプロセスを生成する起案を行うものである。
【０００３】
このようにして生成されたワークフローを複数のユーザ及びサーバにおいて、実施する際に、システムの規模が大きくなるに従って構成されるサーバ数の増加と、クライアント数の増加が要求され、複数サーバと複数クライアントにおけるワークフローシステムの形態が増加している。このワークフローシステムは、承認、不備の日付や担当者等の履歴の情報の伝達が必須となっているため、複数のサーバに跨がるプロセスの履歴をネットワーク負荷を増大させないで各クライアント側で取得する必要がある。本発明は、このような複数のサーバに跨がるプロセスの履歴を各クライアント側で取得することが可能なワークフローシステムにおけるワークフローの履歴情報取得方法及び履歴サーバの履歴情報取得方法及びワークフローの履歴情報取得システム及びワークフローサーバ及び履歴サーバに関する。
【０００４】
【従来の技術】
図１３は、ワークフローシステムの概要を示す。
同図に用いられている各用語を説明する。
プランとは、仕事の流れを定義したものであり（仕事のテンプレート）、担当者（人）と仕事の内容の関係（順番）等を定義したものである。
【０００５】
プランにおけるステージとは、プロセスのタスクに対応し、プラン中の仕事を表す。
プロセスは、プランの実態であり、プロセスを実行するための情報を識別子を付けて管理する。
【０００６】
プロセスにおけるタスクとは、プロセス中の仕事を表し、プランのステージに対応する。
起案とは、プランからプロセスを生成する処理である。
次に、ワークフローシステムのシステム構成を説明する。
【０００７】
図１４は、従来のワークフローシステムの構成を示す。
あるネットワーク中に複数のワークフロークライアント（以下単にクライアントと記す）１０1 、１０2 と、１つのワークフローサーバ（以下単にサーバと記す）２０が接続され、サーバ２０は、プラン情報、プロセス情報、ローカル履歴情報を有するワークフローデータベース３０を有する。
【０００８】
まず、クライント１０がプランに基づいてプロセスを生成し、サーバ２０に転送する。これによりサーバ２０は、取得したプロセスをワークフローデータベース３０に格納する。
次に、サーバ２０は、先頭のタスクをカレントタスクとし、ユーザがクライアント１０からログイン（担当者名）すると、サーバ２０は、カレントタスクの担当者とユーザ名が一致するプロセスについてその旨をユーザに通知する。サーバ２０から通知されたクライアント１０は、カレントタスクの処理を実行する。クライアント１０による実行が完了すると、カレントタスクを次のタスクに変更する。さらに、タスクの処理を完了すると、そのタクスに関連している担当者や日付等を履歴情報としてワークフローデータベース３０にローカルな情報として保存しておく。プロセス中の最後のタスクが終了すると、当該プロセスを終了する。
【０００９】
図１５は、従来の複数のサーバに跨がるワークフローシステムの構成を示す。
従来において、複数のサーバ２０1 、２０2 、２０3 及び履歴サーバ５０がネットワーク４０1 、４０2 を介して接続されている。
このようなシステムにおいて連携してタスクを処理する場合には、例えば、クライアント１０1 によりタスクの処理が完了すると、当該クライアント１０1 を統括するサーバ２０1 は、ローカルなワークフローデータベース３０1 にタスク単位にクライアント１０1 が処理した履歴をリアルタイムに書き込むと共に、ネットワーク４０上に接続されている履歴サーバ５０にもクライアント１０1 が処理した履歴情報をタスク単位にリアルタイムにネットワーク４０1 を介して転送する。
【００１０】
これは、あるプロセスがネットワークに跨がって他のサーバに接続されるクライアントで当該プロセスのタスクが処理される場合に、ネットワークを介した前段のクライアントの履歴情報が必要となる。このため、前段で処理したクライアントを接続するサーバから履歴情報を、ネットワークを介して履歴サーバにタスク単位にリアルタイムで転送し、書き込みを行う。
【００１１】
図１５の例では、クライアント１０1 が処理したタスク単位の履歴情報をサーバ２０1 がローカルなワークフローデータベース３０1 に格納すると共に、リアルタイムにネットワーク４０1 を介して履歴サーバ５０に履歴情報を転送する。これにより、履歴サーバ５０は、当該サーバに接続されている履歴データベース５５にリアルタイムにクライアント１０1 の履歴情報を書き込む。
【００１２】
これにより、クライアント１０2 が、クライアント１０1 が処理したプランを連携して処理する場合には、クライアント１０2 が履歴サーバ５０を介して履歴データベース５５の内容を取得して、プロセスの連携処理を行う。
【００１３】
【発明が解決しようとする課題】
しかしながら、上記従来の複数サーバ及びクライアントで構成されるワークフローシステムでは、あるクライアントのタスク処理が行われる毎に、ネットワークを介して履歴サーバに履歴情報を転送しているため、ネットワークの負荷が増大することにより、応答時間に影響を与え、レスポンスの低下を招いている。即ち、１つのサーバにおいて、例えば４つのタスクを実行した場合には、各タスク毎に履歴サーバに履歴情報を転送するため、４回の転送が必要となる。
【００１４】
本発明は、上記の点に鑑みなされたもので、複数のサーバ及び複数のクライアントのワークフローシステムにおけるネットワーク負荷を増大させずに、ワークフロー履歴情報の取得が可能なワークフローの履歴情報取得方法及び履歴サーバの履歴情報取得方法及びワークフローの履歴情報取得システム及びワークフローサーバ及び履歴サーバを提供することを目的とする。
【００１５】
【課題を解決するための手段】
本発明は、ワークフローサーバとクライアントにネットワークを介して接続される、少なくともワークフローサーバ名とプロセス識別子を含む履歴情報を蓄積する履歴サーバの履歴情報取得方法において、
履歴サーバが、
ワークフローサーバから送付された履歴情報を受信し、履歴ＤＢに受信した該履歴情報を書き出して蓄積するステップと、
クライアントからの履歴情報の取得要求を受け付け、履歴ＤＢに蓄積されている履歴情報を読み込む蓄積履歴読込ステップと、
読み込んだ履歴情報に含まれるワークフローサーバ名とプロセス識別子からプロセス動作中のワークフローサーバとプロセスを特定し、プロセス動作中の該ワークフローサーバに該プロセスのローカルな履歴情報の送付を要求し、該ワークフローサーバから送付されたローカルな履歴情報を取得する動作中履歴取得ステップと、
蓄積履歴読込ステップで読み込んだ履歴情報と動作中履歴取得ステップで取得したローカルな履歴情報をマージするステップと、
マージされた履歴情報を該履歴情報の取得要求を行ったクライアントに送付するステップと、からなる。
【００１６】
本発明は、ワークフローサーバとクライアントがネットワーク介して接続され、少なくともフローサーバ名とプロセス識別子を含む履歴情報を蓄積する履歴サーバにおいて、
ワークフローサーバから送付された履歴情報を受信し、履歴ＤＢに受信した該履歴情報を書き出して蓄積する手段と、
クライアントからの履歴情報の取得要求を受け付け、履歴ＤＢに蓄積されている履歴情報を読み込む蓄積履歴読込手段と、
読み込んだ履歴情報に含まれるワークフローサーバ名とプロセス識別子からプロセス動作中のワークフローサーバとプロセスを特定し、プロセス動作中の該ワークフローサーバに該プロセスのローカルな履歴情報の送付を要求し、該ワークフローサーバから送付されたローカルな履歴情報を取得する動作中履歴取得手段と、
蓄積履歴読込手段で読み込んだ履歴情報と動作中履歴取得手段で取得したローカルな履歴情報をマージする手段と、
マージされた履歴情報を該履歴情報の取得要求を行ったクライアントに送付する手段と、
を有する。
【００２５】
本発明によれば、履歴情報の蓄積は、タスクを実行したサーバ自体でローカルに蓄積する他、サーバが移行する時点で、当該サーバの履歴情報を一括して履歴サーバに転送することにより、ネットワーク負荷が低減する。
【００２６】
また、本発明によれば、リンクを張り付けることにより、履歴サーバにアクセスすることによって、現在どのサーバが連携タスクを実行しているかを把握することができる。
また、本発明によれば、最後の連携タスクが終了した際に、当該タスクを実行したサーバからプロセス終了であることを履歴サーバに通知することにより、クライアントから履歴情報を取得する場合には、履歴サーバにのみアクセスすればよい。
【００２７】
また、本発明によれば、連携終了タスクの実行を契機として、履歴情報を履歴サーバに蓄積することにより、蓄積された履歴情報のみで起案されたプロセスの履歴が完結し、各クライアントからの履歴要求時において、複数のサーバに接続する必要がない。
【００２８】
また、本発明によれば、履歴サーバにおいて、各サーバから受信した履歴情報を蓄積しておき、現在動作中であるサーバの履歴情報をリンク情報を辿って取得し、蓄積されている履歴情報とマージして、履歴情報の要求元に転送することが可能であるため、履歴サーバに蓄積されている履歴情報のみならず、現在実行中のサーバの履歴情報をも取得できるため、例えば、移動元サーバから移動先であり、現在実行中のサーバの状況も把握することが可能となる。
【００２９】
【発明の実施の形態】
最初に、本発明の情報取得処理の概要を説明する。
図１は、本発明の処理の概要を説明するための図である。
同図に示すシステムでは、複数のサーバ１００Ａ，サーバ１００Ｂ，サーバ１００Ｃ、１つの履歴サーバ２００及び複数のクライアント４００Ａ，４００Ｂ，４００Ｃがネットワーク３００Ａ，３００Ｂを介して接続されている。なお、履歴サーバ２００は、ワークフローサーバとしての機能をも有するように設計してもよい。また、複数のサーバ及び複数のクライアントのそれぞれの機能は、計算機上でプログラムを実行することで実現する。
【００３０】
同図における処理を説明する。
以下に示すアルファベット記号と、同図中のアルファベット記号は対応するものとする。
（ａ）  各サーバ１００上において、定期的または、不定期に全てのプロセスをチェックしてカレントタスクのクライアントが『連携タスク』になっているタスクを抽出する。
【００３１】
（ｂ）  カレントタスク（先頭のタスク）のクライアントが『連携タスク』を抽出したサーバを抽出サーバとし、連携で必要とするプラン情報、プロセス情報、ローカルな履歴情報を抽出する。抽出したプラン情報及びプロセス情報を、指定された移動先サーバに情報を一括して転送する。ローカルな履歴情報は、起案時情報（起案サーバ名と起案プロセス識別子）を付加して履歴サーバ２００に転送する。移動先サーバに転送したプラン情報、プロセス情報により、移動先サーバでのプロセスの引継ぎの情報となる。
【００３２】
（ｃ）  履歴サーバ２００は、定期的または、不定期に履歴があるかをチェックして、情報をサーバ１００から受信する。受信したローカルな履歴情報を履歴データベースに起案サーバ名と起案プロセス識別子で蓄積する。
（ｄ）  各サーバにおいて、定期的または、不定期に連携情報があるかをチェックして情報を受信する。受信したプラン情報、プロセス情報に基づいて新しいプロセスの起案処理を行い、連携タスクの次のタスクにカレントタスクを移動させる。この処理を契機として、リンク情報として生成サーバ名と起案プロセス識別子を履歴情報として履歴サーバ２００に転送する。
【００３３】
（ｅ）  履歴サーバ２００では、受信した履歴情報を履歴データベースの既存の履歴情報に追加して蓄積することにより、移動元サーバと移動先サーバのリンク付けを実施する。
（ｆ）  カレントタスクのクライアントが『連携終了』（連携終了タスクがカレントタスク）となると、連携終了処理を行ったサーバのプロセスのローカルな履歴情報を履歴最終情報として履歴サーバ２００に送る。
【００３４】
（ｇ）  履歴サーバ２００では、受信した履歴情報を蓄積済の履歴情報に追加して蓄積することにより履歴の終了情報を蓄積する。
図２は、本発明のシステム構成図である。
同図に示すシステムは、複数のワークフローサーバ（以下、単にサーバと記す）１００Ａ、１００Ｂと複数のワークフロークライアント（以下、単にクライアントと記す）４００Ａ，４００Ｂ、履歴サーバ２００がネットワーク３００を介して接続されている。
【００３５】
サーバ１００は、ワークフロー処理部１１０、連携処理部１２０、履歴送信部１３０、連携情報受信部１４０、連携情報送信部１５０、連携終了処理部１６０、及びローカル履歴記憶部１７０から構成される。
また、以下の説明において、転送される情報として、連携情報と履歴情報、起案時情報がある。連携情報は、プラン情報、プロセス識別子、カレントタスク情報、終了したタスク情報から構成される。
【００３６】
また、履歴情報は、プロセス識別子、カレントタスク、日付、作業者、実行処理、抽出サーバ名、生成サーバ名等から構成される。
また、起案情報は、起案サーバ名、起案プロセス識別子からなる。
以下に各部の動作を説明する。
【００３７】
ワークフロー処理部１１０は、連携タスク及び連携終了タスクのクライアントとなる。また、サーバにおけるワークフローにおけるプロセスの連携処理部１２０で起案または、生成されたタスクを実行し、その操作履歴を連携処理部１２０に渡すと共に、ローカル履歴記憶部１７０に書き込む。
【００３８】
次に、連携処理部１２０の処理を説明する。
図３は、本発明のサーバの連携処理部の動作のフローチャートである。
ステップ１２１）  定期的または、不定期にカレントタスクのクライアントが『連携タスク』の抽出を待機する。
【００３９】
ステップ１２２）  『連携タスク』を抽出できた場合にはステップ１２３に移行し、まだ、抽出できない場合にはステップ１２１に移行する。
ステップ１２３）  『連携タスク』からプラン情報、プロセス毎に一意に付与されているプロセス識別子、カレントタスク情報、終了したタスク情報等を抽出する。
【００４０】
ステップ１２４）  前段のサーバの履歴情報として、タスクが処理された日付、処理した担当者名等を抽出する。
ステップ１２５）  プラン情報、プロセス情報を連携情報送信部１５０に渡す。
【００４１】
ステップ１２６）  新たなプロセスが起案された時点における起案サーバ名及び起案プロセス識別子を起案時情報として抽出する。
ステップ１２７）  抽出した起案時情報と履歴情報を履歴送信部１３０に渡す。
【００４２】
ステップ１２８）  履歴送信部１３０の送信処理が完了したら、プロセスを終了させる。
次に、履歴送信部１３０の処理を説明する。
図４は、本発明のサーバの履歴送信部の動作のフローチャートである。
【００４３】
ステップ１３１）  定期的または、不定期に連携処理部１２０からの履歴情報の到着を待機する。
ステップ１３２）  履歴情報が到着したら、ステップ１３３に移行し、まだ到着しない場合は、ステップ１３１に移行する。
【００４４】
ステップ１３３）  履歴情報を送信する履歴サーバに接続する。
ステップ１３４）  履歴情報をファイルとして接続されているサーバに送信する。
ステップ１３５）  送信が完了したら、送信完了を呼出し元の連携処理部１２０に通知する。
【００４５】
次に、連携情報受信部１４０の動作について説明する。
図５は、本発明のサーバの連携情報受信部の動作のフローチャートである。
ステップ１４１）  定期的または、不定期に他のサーバからの連携情報の受信を待機する。
【００４６】
ステップ１４２）  連携情報を受信した場合にはステップ１４３に移行し、まだ、受信していない場合にはステップ１４１に移行し、受信を待機する。
ステップ１４３）  ファイル形式で受信した連携情報のプラン情報から新しいプロセスを起案（生成）する。
【００４７】
ステップ１４４）  現サーバ名と新しく起案したプロセス識別子を抽出する。
ステップ１４５）  抽出した起案時の情報と履歴情報を履歴送信部１３０に転送する。
ステップ１４６）  受信したプラン情報から連携タスクの次のタスクにカレントタスクを位置づける。
【００４８】
ステップ１４７）  受信処理が完了したら、呼び出し元のサーバに受信完了を通知する。
次に、連携情報送信部１５０の処理を説明する。
図６は、本発明のサーバの連携情報送信部の動作のフローチャートである。
【００４９】
ステップ１５１）  定期的または、不定期に連携処理部１２０からの連携情報の到着を待機する。
ステップ１５２）  連携情報が到着したらステップ１５３に移行し、まだ到着しない場合には、ステップ１５１に移行する。
【００５０】
ステップ１５３）  連携情報を送信するサーバに接続する。
ステップ１５４）  プラン情報及びプロセス情報を送信情報として複数のファイルとして、接続されているサーバに送信する。
ステップ１５５）  送信が完了したら、送信完了を呼び出し元の連携処理部１２０に通知する。
【００５１】
次に、連携終了処理部１６０の処理を説明する。
図７は、本発明のサーバの連携終了処理部の動作のフローチャートである。
ステップ１６１）  定期的または、不定期にカレントタスクのクライアントが『連携終了タスク』の抽出を待機する。
【００５２】
ステップ１６２）  『連携終了タスク』を抽出した場合にはステップ１６３に移行し、まだ、抽出されない場合にはステップ１６１に移行する。
ステップ１６３）  当該サーバのローカルな履歴情報を抽出する。
ステップ１６４）  起案時情報を抽出し、抽出された履歴情報を履歴送信部１３０に渡す。
【００５３】
ステップ１６５）  履歴送信部１３０の送信処理が終了したら、プロセスを終了させる。
履歴サーバ２００は、履歴受信部２１０、履歴蓄積処理部２２０から構成され、当該サーバ２００には、履歴データベース２３０が接続される。
【００５４】
図８は、本発明の履歴サーバの動作のフローチャートである。
ステップ２１１）  履歴受信部２１０は、定期的または、不定期にサーバ１００から送信される履歴情報を待機する。
ステップ２１２）  履歴受信部２１０が履歴情報を受信した場合にはステップ２１３に移行し、まだ、受信できない場合にはステップ２１１に移行する。
【００５５】
ステップ２１３）  履歴蓄積処理部２２０は、履歴受信部２１０がファイルとして受信した履歴情報を抽出する。
ステップ２１４）  履歴蓄積処理部２２０は、起案時情報に基づいて履歴データベース２３０を検索する。
【００５６】
ステップ２１５）  また、履歴蓄積処理部２２０は、  履歴データベース２３０に既存情報が存在すれば、受信した履歴情報を追加書き込みする。
ステップ２１６）  履歴蓄積処理部２２０は、履歴データベース２３０に既存情報が存在しない場合には、起案時情報を設定し、受信した履歴情報を新たに書き込む。
【００５７】
ステップ２１７）  履歴蓄積処理部２２０は、履歴データベース２３０への蓄積が完了したら、送信元のサーバに受信完了を通知する。
次に、履歴サーバ２００に対して、クライアント４００から履歴情報を要求した場合の処理を説明する。
【００５８】
図９は、本発明の履歴サーバからクライアントに履歴情報の提供を行う場合の処理を説明するための図であり、図１０は、本発明の履歴情報提供動作のフローチャートである。
ステップ３０１）  クライアント４００Ａは、履歴取得アプリケーション４２０を起動し、クライアント送受信処理部４１０において、起案サーバ名及び起案プロセス識別子を用いて要求情報を生成する。
【００５９】
ステップ３０２）  クライアント送受信処理部４１０は、当該クライアント４００Ａを包含するサーバ１００Ａを介して、履歴サーバに接続し、起案サーバ名及び起案プロセス識別子を用いて履歴情報の要求を行う。
ステップ３０３）  履歴サーバ２００のサーバ送受信処理部２４０において、当該履歴情報の要求を受信し、履歴取得処理部２５０に転送する。これにより、履歴取得処理部２５０は、履歴サーバ２００の履歴データベース２３０に蓄積されている履歴情報を起案サーバ名と起案プロセス識別子に基づいて検索する。
【００６０】
ステップ３０４）  検索した結果、対象となる蓄積履歴情報が履歴データベース２３０に存在しない場合には、サーバ間の移動が実施されていないことを示すため、ステップ３０７に移行する。蓄積履歴情報が存在する場合には、ステップ３０５に移行する。
【００６１】
ステップ３０５）  履歴取得処理部２５０は、履歴データベース２３０から取得した履歴を保持する。
ステップ３０６）  取得した履歴がプロセスにおける連携終了タスクの履歴である最終履歴であるかを判定し、最終履歴ではない場合には、ステップ３０７に移行し、最終履歴である場合にはステップ３１０に移行する。
【００６２】
ステップ３０７）  履歴取得処理部２５０は、プロセス途中の処理タスクの生成（起案）処理が行われた生成履歴を取り出し、当該生成履歴からプロセス処理中のサーバ（図９の例では、サーバ１００Ｃ）に接続する。また、履歴情報が存在しない場合は、プロセス処理中のサーバ（図９の例ではサーバ１００Ａ）に接続する。
【００６３】
ステップ３０８）  接続したサーバ（図９の例では、サーバ１００Ｃ）から当該サーバのローカルな履歴を取得する。各サーバでは、ローカルな履歴をローカルなローカル履歴記憶部１７０にそれぞれ処理毎に格納しているため、当該ローカル履歴記憶部１７０から当該サーバがローカルな履歴を読み出して履歴サーバ２００に送信する。
【００６４】
ステップ３０９）  履歴サーバ２００の履歴取得処理部２５０は、プロセス処理中のサーバ（図９の例では、サーバ１００Ｃまたは、サーバ１００Ａ）から取得した履歴情報と履歴データベース２３０から取得して保持している蓄積履歴情報とをマージする。
【００６５】
ステップ３１０）  履歴サーバ２００のサーバ送受信処理部２４０は、マージされた履歴情報を履歴要求発行元のクライアント４００Ａにファイル送信する。
ステップ３１１）  クライアント４００Ａのクライアント送受信処理部４１０は、履歴サーバ２００から履歴情報を取得すると、受信完了通知を履歴サーバ２００に送信する。
【００６６】
ステップ３１２）  クライアント送受信処理部４１０は、履歴取得アプリケーション４２０に対して取得した履歴情報を渡す。これにより、履歴取得アプリケーションにおいて、履歴情報の表示処理等を行う。
【００６７】
【実施例】
以下、図面と共に本発明の実施例を説明する。
最初に、複数のサーバに対して、図１に基づいてプラン上のステージを連携タスクとして連携するサーバに配置する例を説明する。
【００６８】
図１１は、本発明の一実施例のプラン情報の例を示す。
同図に示すプラン情報は、プラン名（申請処理Ａ）、ステージ番号、ステージ名、担当者、仕事内容等が定義される。
図１２は、本発明の一実施例のプロセス情報の例を示す。
【００６９】
同図に示すプロセス情報は、プラン名、プロセス識別子、カレントタスク番号、処理順序、タスク名、担当者、仕事内容、履歴情報、実行処理種別等から構成される。カレントタスク番号は、プロセス情報が転送される毎に先頭となるタスク番号（タスク名）が設定されるものとする。
【００７０】
当該プロセス情報は、図１１に示すプラン情報から生成されるためのもので、１つのプロセスに対して一意に指定されたプロセス識別子が付与される。
上記のように、設定されたプラン情報及びプロセス情報を図１に示す各サーバに割り当てる。プロセス情報の処理順序に従って、“ＳＴＡＲＴ”（プロセス開始）、“タスクＡ”、“タスクＢ”をサーバ１００Ａに、“タスクＣ”をサーバ１００Ｂに、“タスクＤ”をサーバ１００Ｃにそれぞれ割当て、“連携タスクＡ”をサーバ１００Ａとサーバ１００Ｂに、“連携タスクＢ”をサーバ１００Ｂとサーバ１００Ｃに、“連携終了タスク”をサーバ１００Ｃにそれぞれ割り当てる。
次に、上記のようにタスクが各サーバに配置されたものとして、図１に示す各タスク処理を順次説明する。
【００７１】
（１）  サーバ１００Ａ、図１の例では、先頭の処理として“タスクＡ”が存在するので、ワークフロー処理部１１０において、まず、タスクＡを実行する。タスクＡの実行が９７年１月１１日に終了したため、ローカル履歴記憶部１７０に当該日付とタスク名を格納する。次に、“タスクＡ”終了後、“タスクＢ”が存在するので、サーバ１００Ａは引き続いて“タスクＢ”を処理し、その処理日付とタスク名をローカル履歴記憶部１７０に格納する。
【００７２】
（２）  サーバ１００Ａにおいて、連携処理部１２０は、プロセス情報か『連携タスクＡ』を抽出する。当該連携タスクＡの情報からプラン名（申請処理Ａ）、プロセス識別子（ＰＲ−Ａ）、カレントタスク情報（次のタスク処理であるタスクＣ）、終了したタスク情報（タスクＡ，タスクＢ）、さらに、履歴情報として、プロセス開始（ＳＴＡＲＴ：９７．１．１０）、終了したタスクの処理日（タスクＡ：９７，１，１１，タスクＢ：９７，１，１１）、処理した担当者名（ＳＴＡＲＴ：ａａ，タスクＡ：ｂｂ，タスクＢ：ｃｃ）を取得する。
これにより、連携処理部１２０は、プラン情報及びプロセス情報からなる連携情報を連携情報送信部１５０に転送する。さらに、起案時情報として、起案サーバ名（サーバ１００Ａ）と起案プロセス識別子（ＰＲ−Ａ１）を抽出し、上記で取得した履歴情報と共に、履歴送信部１３０に転送する。
【００７３】
連携情報送信部１５０は、連携処理部１２０から取得した連携情報（プラン情報、プロセス情報）を送信する次のサーバ（サーバ１００Ｂ）にネットワーク３００Ａを介して送信する。
また、履歴送信部１３０からネットワーク３００Ａを介して履歴サーバ２００の履歴受信部２１０が履歴情報を受信すると、当該履歴情報を履歴データベース２３０に格納する。
【００７４】
（３）  次に、サーバ１００Ｂに制御が移行すると、サーバ１００Ｂの連携情報受信部１４０は、受信した連携情報から新しいプロセスを起案し、サーバ名（サーバ１００Ｂ）とプロセス識別子（ＰＲ−Ｂ１）を抽出し、履歴送信部１３０に転送する。これにより、履歴送信部１３０は、履歴情報として、サーバ名（サーバ１００Ｂ），プロセス識別子（ＰＲ−Ｂ１）、履歴（生成）を履歴サーバ２００に送信する。
【００７５】
さらに、連携情報受信部１４０は、サーバ１００Ａから受信した連携情報のプラン情報から連携タスクＡの次のタスクである“タスクＣ”にカレントタスクを位置付ける。従って、この時のプロセス情報のカレントタスク番号は、“タスクＣ”となる。
【００７６】
（４）  サーバ１００Ｂは、上記のサーバ１００Ａが“タスクＡ”、“タスクＢ”を行った方法により、タスク処理を行い、次に連携している“連携タスクＢ”の処理を行う。
（５）  次に、サーバ１００Ｂからサーバ１００Ｃに制御が移行すると、サーバ１００Ｃは、上記と同様の方法、“タスクＤ”をカレントタスクとして処理する。
【００７７】
（６）  サーバ１００Ｃの連携終了処理部１６０は、“タスクＤ”の処理が終了すると、“連携タスク終了”を抽出する。これにより、サーバ１００Ｃにおける起案時情報（プラン情報、プロセス識別子、サーバ名）と履歴情報（日付、実行処理タスク名、抽出サーバ名、生成サーバ名等）をタスク単位に履歴送信部１３０に転送する。これにより、履歴送信部１３０は、それらの情報を履歴サーバ２００に転送する。
【００７８】
次に、クライアント４００Ａから履歴サーバ２００に対して履歴取得要求を発行し、履歴サーバ２００から履歴情報を取得する例を図９に基づいて説明する。
まず、クライアント４００Ａは、履歴取得アプリケーション４２０を起動して、クライアント送受信処理部４１０から起案サーバ名（サーバ１００Ａ）、起案プロセス識別子（ＰＲ−Ａ１）を履歴取得要求として、サーバ１００Ａに転送する。これにより、サーバ１００Ａは、当該履歴取得要求を履歴サーバ２００に送信する。
【００７９】
これにより、履歴サーバ２００のサーバ送受信処理部２４０は、当該履歴取得要求の起案サーバ名（サーバ１００Ａ）、起案プロセス識別子（ＰＲ−Ａ１）を用いて履歴データベース２３０を検索する。このとき、当該プロセス識別子のプロセスは、連携終了タスクまで至っていないため、図９に示す情報のみが履歴データベース２３０に蓄積されている。従って、履歴取得処理部２５０は、現在蓄積されている
抽出履歴（サーバＡとプロセスＩＤ：ＰＲ−Ａ１）
生成履歴（サーバＢとプロセスＩＤ：ＰＲ−Ｂ１）
抽出履歴（サーバＢとプロセスＩＤ：ＰＲ−Ｂ１）
生成履歴（サーバＣとプロセスＩＤ：ＰＲ−Ｃ１）
を取得すると共に、現在プロセス処理中のサーバ１００Ｃに対して、履歴を要求する。これにより、サーバ１００Ｃは、現在までのローカル履歴記憶部１７０に格納されている履歴情報（処理中履歴とプロセスＩＤ：ＰＲ−Ｃ１）を送信する。
【００８０】
これにより、履歴取得処理部２５０は、上記の蓄積履歴にサーバ１００Ｃから取得した履歴情報をマージして、
抽出履歴（サーバＡとプロセスＩＤ：ＰＲ−Ａ１）
生成履歴（サーバＢとプロセスＩＤ：ＰＲ−Ｂ１）
抽出履歴（サーバＢとプロセスＩＤ：ＰＲ−Ｂ１）
生成履歴（サーバＣとプロセスＩＤ：ＰＲ−Ｃ１）
処理中履歴（サーバＣとプロセスＩＤ：ＰＲ−Ｃ１）
を生成して、履歴情報として、サーバ１００Ａを介してクライアント４００Ａに送信する。
【００８１】
なお、上記の実施例において、連携情報としてプロセス情報の他にプラン情報を併せて送信するのは、プロセス情報が実行形態（バイナリコード）であり、プラン情報を実行するサーバマシンの形態に変換し実行するためのものであるのに対して、プラン情報は、サーバを跨ぐプロセスを処理する場合にサーバマシンの種々の仕様を意識せずに各サーバに渡すことが可能なソースコードで生成されている。従って、異なるサーバにおいて個々にプラン情報からプロセス情報に変換して、タスクを実行することができる。
【００８２】
なお、本発明は、上記の実施例に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。
【００８３】
【発明の効果】
第１及び第７の発明によれば、クライアントが生成したプランに基づくプロセスが複数のサーバに跨がる場合に、移動元と移動先のサーバ間において連携処理を行うプロセス上の位置を連携ステージとして設定しておくことにより、確実な連携処理を行うことが可能である。
【００８４】
第２及び第８の発明によれば、各クライアントが実施したタスク単位に、従来のようにリアルタイムに履歴を履歴サーバに転送せず、サーバが移動元サーバから移動先サーバに制御が移行するタイミングで履歴サーバに転送することにより、ネットワーク負荷を軽減することができ、ワークフローシステム全体の応答時間に影響を与えることがない。
【００８５】
第３及び第１０の発明によれば、連携処理を行う際に、移動元サーバから移動先サーバに制御が移動した際に、新しいプロセスを生成したサーバの情報を履歴サーバに蓄積しておくことにより、移動元サーバと移動先サーバのリンク付けが可能となり、履歴情報を取得する際に、起案サーバ名とプロセス識別子を与えるのみで、リンクした一連のプロセスの履歴情報を取得することができるため、グローバルな履歴情報として管理することができる。従って、クライアントからの履歴要求時に、まだ、タスクが完了していないサーバへの接続が可能となるため、以降に示す第６及び第１３の発明における、動作中のサーバへのアクセスが容易に行うことができる。
【００８６】
第５及び第１２の発明によれば、プロセスの連携処理の終了処理を行った場合に、プロセス終了を履歴サーバに転送することにより、蓄積された履歴情報だけで起案されたプロセスの履歴が完結する。従って、先頭のタスクから最後の連携終了タスクまでを履歴サーバに転送することにより、履歴データベースでは、一連のプロセスの履歴を完結することが可能であるため、クライアントが履歴情報取得要求を発行し、当該要求に対応する履歴情報を取得したとき、起案からプロセス完了までの一連の履歴を把握することができるため、クライアントからの履歴要求時に他のサーバへ接続して検索する処理が不要となる。
【００８７】
第６及び第１３の発明によれば、クライアントから履歴サーバに履歴情報取得要求が発行された際に、もし、プロセスが完了していない場合、つまり、未だ動作中のサーバがある場合には、既に履歴データベースに蓄積されている履歴情報に、動作中のサーバの履歴を取得してマージして、クライアントに返却することにより、プロセスが完結していなくとも、現時点におけるプロセスの実行状態を把握することが可能となる。
【図面の簡単な説明】
【図１】本発明の処理の概要を説明するための図である。
【図２】本発明のシステム構成図である。
【図３】本発明のサーバの連携処理部の動作のフローチャートである。
【図４】本発明のサーバの履歴送信部の動作のフローチャートである。
【図５】本発明のサーバの連携情報受信部の動作のフローチャートである。
【図６】本発明のサーバの連携情報送信部の動作のフローチャートである。
【図７】本発明のサーバの連携終了処理部の動作のフローチャートである。
【図８】本発明の履歴サーバの動作のフローチャートである。
【図９】本発明の履歴サーバから取得要求元のクライアントに履歴情報の提供を行う場合を説明するための図である。
【図１０】本発明の履歴情報提供動作のフローチャートである。
【図１１】本発明の一実施例のフラン情報の例である。
【図１２】本発明の一実施例のプロセス情報の例である。
【図１３】ワークシステムの概要を示す図である。
【図１４】従来のワークフローシステムの構成図である。
【図１５】従来の複数サーバに跨がるワークフローシステムの構成図である。
【符号の説明】
１００  ワークフローサーバ
１１０  ワークフロー処理部
１２０  連携処理部
１３０  履歴送信部
１４０  連携情報受信部
１５０  連携情報送信部
１６０  連携終了処理部
２００  履歴サーバ
２１０  履歴受信部
２２０  履歴蓄積処理部
２３０  履歴データベース
２４０  サーバ送受信処理部
２５０  履歴取得処理部
３００  ネットワーク
４００  クライアント
４１０  クライアント送受信処理部
４２０  履歴取得アプリケーション
【図１】
0003842360.tif 000002
【図２】
0003842360.tif 000003
【図３】
0003842360.tif 000004
【図４】
0003842360.tif 000005
【図５】
0003842360.tif 000006
【図６】
0003842360.tif 000007
【図７】
0003842360.tif 000008
【図８】
0003842360.tif 000009
【図９】
0003842360.tif 000010
【図１０】
0003842360.tif 000011
【図１１】
0003842360.tif 000012
【図１２】
0003842360.tif 000013
【図１３】
0003842360.tif 000014
【図１４】
0003842360.tif 000015
【図１５】
0003842360.tif 000016