(57)【要約】  本システムは、実施された一連の業務イベントを時系列に並べたプロセスインスタンスを生成する手段を各々有する複数のプロセスサーバと、イベントデータをイベントデータ格納部から順次読み出し、複数のプロセスサーバのいずれかに割り振るマスタサーバとを有する。そして、マスタサーバが複数のプロセスサーバにプロセスインスタンスの保持状況を問い合わせ、問い合わせに対する応答からプロセスインスタンスのマージ先を決定し、マージ指示を出力する。そして、マージ元のプロセスサーバは、マージ指示に係るイベントデータをマージ先に送信し、マージ先のプロセスサーバは、イベントデータを受信し、プロセスインスタンスに当該イベントデータをマージする。
2010018637.tif 000002
【特許請求の範囲】
【請求項１】
実施された一連の業務イベントを時系列に並べたプロセスインスタンスを生成する手段を各々有する複数のプロセスサーバと、
イベント名と処理時刻と前記プロセスインスタンスを識別するための識別子とを含み且つ前記業務イベントに関するイベントデータをイベントデータ格納部から順次読み出し、前記複数のプロセスサーバのいずれかに割り振るマスタサーバと、
を有し、
前記マスタサーバは、
前記イベントデータ格納部から読み出した前記イベントデータに含まれる前記識別子に対応するプロセスインスタンスの保持状況の問い合わせを前記複数のプロセスサーバに出力する手段と、
前記複数のプロセスサーバから前記問い合わせに対する応答を受信し、前記問い合わせに係るプロセスインスタンスを保持している第１プロセスサーバが複数存在するか判断する手段と、
前記第１プロセスサーバが複数存在する場合、前記第１プロセスサーバの中から前記問い合わせに係るプロセスインスタンスのマージ先となる第２プロセスサーバを決定する手段と、
前記第２プロセスサーバの情報と前記問い合わせに係るプロセスインスタンスの前記識別子とを含むマージ指示を前記第１プロセスサーバに出力する手段と、
を有し、
前記複数のプロセスサーバの各々は、
前記イベントデータを含む前記プロセスインスタンスを前記識別子に対応して格納するプロセスインスタンスデータ格納部と、
前記マスタサーバから前記問い合わせを受信した場合、前記プロセスインスタンスデータ格納部を前記問い合わせに係る前記識別子で検索し、当該問い合わせに係るプロセスインスタンスの有無を前記マスタサーバに応答する手段と、
前記マスタサーバから前記マージ指示を受信し且つ自身が前記第２プロセスサーバ以外の前記第１プロセスサーバである場合、前記マージ指示に含まれる前記識別子に係る前記イベントデータを前記マージ指示に含まれる前記第２プロセスサーバに出力する手段と、
他のプロセスサーバから前記イベントデータを受信した場合、前記プロセスインスタンスデータ格納部に格納され且つ当該イベントデータと同一の前記識別子に対応するプロセスインスタンスに当該イベントデータをマージするマージ手段と、
を有する業務フロー分散処理システム。
【請求項２】
前記マージ手段は、
マージ完了通知を前記イベントデータの送信元に出力する手段
を有し、
前記複数のプロセスサーバの各々は、
前記第２プロセスサーバから前記マージ完了通知を受信した場合、前記マージ指示に対応するプロセスインスタンスを前記プロセスインスタンスデータ格納部から削除する手段
をさらに有する請求項１記載の業務フロー分散処理システム。
【請求項３】
前記複数のプロセスサーバの各々は、
前記プロセスインスタンスデータ格納部に格納されている各前記プロセスインスタンスについて、当該プロセスインスタンスからハッシュ値を計算し、記憶装置に格納する手段
をさらに有する請求項１記載の業務フロー分散処理システム。
【請求項４】
前記複数のプロセスサーバの各々は、
同一の前記ハッシュ値毎に当該ハッシュ値に係る前記プロセスインスタンスの件数を計数する手段
をさらに有する請求項３記載の業務フロー分散処理システム。
【請求項５】
前記マスタサーバは、
前記複数のプロセスサーバの各々から前記ハッシュ値を取得し、同一の前記ハッシュ値毎に当該ハッシュ値に係る前記プロセスインスタンスの件数を計数する手段
をさらに有する請求項３記載の業務フロー分散処理システム。
【請求項６】
実施された一連の業務イベントを時系列に並べたプロセスインスタンスを前記プロセスインスタンスを識別するための識別子と対応して格納するプロセスインスタンスデータ格納部を各々有する複数のプロセスサーバと、イベント名と処理時刻と前記識別子とを含み且つ前記業務イベントに関するイベントデータをイベントデータ格納部から順次読み出し、前記複数のプロセスサーバのいずれかに割り振るマスタサーバとを有するシステムにおいて実行される業務フロー分散処理方法であって、
前記マスタサーバにより、前記イベントデータ格納部から読み出した前記イベントデータに含まれる前記識別子に対応するプロセスインスタンスの保持状況の問い合わせを前記複数のプロセスサーバに出力するステップと、
前記プロセスサーバにより、前記マスタサーバから前記問い合わせを受信した場合、前記プロセスインスタンスデータ格納部を前記問い合わせに係る前記識別子で検索し、当該問い合わせに係るプロセスインスタンスの有無を前記マスタサーバに応答するステップと、
前記マスタサーバにより、前記複数のプロセスサーバから前記問い合わせに対する応答を受信し、前記問い合わせに係るプロセスインスタンスを保持している第１プロセスサーバが複数存在するか判断するステップと、
前記マスタサーバにより、前記第１プロセスサーバが複数存在する場合、前記第１プロセスサーバの中から前記問い合わせに係るプロセスインスタンスのマージ先となる第２プロセスサーバを決定するステップと、
前記マスタサーバにより、前記第２プロセスサーバの情報と前記問い合わせに係るプロセスインスタンスの前記識別子とを含むマージ指示を前記第１プロセスサーバに出力するステップと、
前記プロセスサーバにより、前記マスタサーバから前記マージ指示を受信し且つ自身が前記第２プロセスサーバ以外の前記第１プロセスサーバである場合、前記マージ指示に含まれる前記識別子に係る前記イベントデータを前記マージ指示に含まれる前記第２プロセスサーバに出力するステップと、
前記プロセスサーバにより、他のプロセスサーバから前記イベントデータを受信した場合、前記プロセスインスタンスデータ格納部に格納され且つ当該イベントデータと同一の前記識別子に対応するプロセスインスタンスに当該イベントデータをマージするステップと、
を含む業務フロー分散処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、業務フローを生成する技術に関し、より詳しくは複数のサーバに処理を分散させて業務フローを生成する技術に関する。
【背景技術】
【０００２】
例えば企業などにおいて用いられている業務システムで生成されたデータを収集・解析することにより業務フローを自動的に生成する技術が既に知られている。この技術によれば、業務の流れを可視化することができる。
【特許文献１】特開２００５−１１５４９４
【特許文献２】特開平８−９５８７４
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来技術では、処理負荷を分散させるような構成については考慮されておらず、例えば複数のサーバの各々でプロセスインスタンスを分散して生成するような構成は存在しない。【０００４】
従って、本技術の目的は、複数のサーバの各々で完全なプロセスインスタンスを分散して生成できるようにすることである。
【課題を解決するための手段】
【０００５】
本業務フロー分散処理システムは、実施された一連の業務イベントを時系列に並べたプロセスインスタンスを生成する手段を各々有する複数のプロセスサーバと、イベント名と処理時刻とプロセスインスタンスを識別するための識別子とを含み且つ業務イベントに関するイベントデータをイベントデータ格納部から順次読み出し、複数のプロセスサーバのいずれかに割り振るマスタサーバとを有する。そして、上で述べたマスタサーバは、イベントデータ格納部から読み出したイベントデータに含まれる識別子に対応するプロセスインスタンスの保持状況の問い合わせを複数のプロセスサーバに出力する手段と、複数のプロセスサーバから問い合わせに対する応答を受信し、問い合わせに係るプロセスインスタンスを保持している第１プロセスサーバが複数存在するか判断する手段と、第１プロセスサーバが複数存在する場合、第１プロセスサーバの中から問い合わせに係るプロセスインスタンスのマージ先となる第２プロセスサーバを決定する手段と、第２プロセスサーバの情報と問い合わせに係るプロセスインスタンスの識別子とを含むマージ指示を第１プロセスサーバに出力する手段とを有する。さらに、上で述べた複数のプロセスサーバの各々は、イベントデータを含むプロセスインスタンスを識別子に対応して格納するプロセスインスタンスデータ格納部と、マスタサーバから問い合わせを受信した場合、プロセスインスタンスデータ格納部を問い合わせに係る識別子で検索し、当該問い合わせに係るプロセスインスタンスの有無をマスタサーバに応答する手段と、マスタサーバからマージ指示を受信し且つ自身が第２プロセスサーバ以外の第１プロセスサーバである場合、マージ指示に含まれる識別子に係るイベントデータをマージ指示に含まれる第２プロセスサーバに出力する手段と、他のプロセスサーバからイベントデータを受信した場合、プロセスインスタンスデータ格納部に格納され且つ当該イベントデータと同一の識別子に対応するプロセスインスタンスに当該イベントデータをマージするマージ手段とを有する。
【図面の簡単な説明】
【０００６】
【図１】図１は、プロセスサーバの処理負荷を分散させた場合の問題を説明するための図である。
【図２】図２は、プロセスサーバの処理負荷を分散させた場合の問題を説明するための図である。
【図３】図３は、プロセスインスタンスの件数を集計する場合の処理を説明するための図である。
【図４】図４は、実施の形態に係る業務フロー分散処理システムの概要を示す図である。
【図５】図５は、イベントデータ格納部に格納されるデータの一例を示す図である。
【図６】図６は、実施の形態に係る業務フロー分散処理システムの全体の流れを説明するための図である。
【図７】図７は、実施の形態に係る業務フロー分散処理システムの全体の流れを説明するための図である。
【図８】図８は、実施の形態に係る業務フロー分散処理システムの全体の流れを説明するための図である。
【図９】図９は、実施の形態に係る業務フロー分散処理システムの全体の流れを説明するための図である。
【図１０】図１０は、実施の形態に係る業務フロー分散処理システムの全体の流れを説明するための図である。
【図１１】図１１は、実施の形態に係る業務フロー分散処理システムの全体の流れを説明するための図である。
【図１２】図１２は、実施の形態に係る業務フロー分散処理システムの全体の流れを説明するための図である。
【図１３】図１３は、実施の形態に係る業務フロー分散処理システムの全体の流れを説明するための図である。
【図１４】図１４は、実施の形態に係る業務フロー分散処理システムの全体の流れを説明するための図である。
【図１５】図１５は、実施の形態に係る業務フロー分散処理システムの全体の流れを説明するための図である。
【図１６】図１６は、実施の形態に係る業務フロー分散処理システムの全体の流れを説明するための図である。
【図１７】図１７は、実施の形態に係る業務フロー分散処理システムの全体の流れを説明するための図である。
【図１８】図１８は、実施の形態に係る業務フロー分散処理システムの全体の流れを説明するための図である。
【図１９】図１９は、マスタサーバの処理フローを示す図である。
【図２０】図２０は、マスタサーバの処理フローを示す図である。
【図２１】図２１は、マスタサーバの処理フローを示す図である。
【図２２】図２２は、プロセスサーバの処理フローを示す図である。
【図２３】図２３は、プロセスサーバの処理フローを示す図である。
【図２４】図２４は、プロセスサーバの処理フローを示す図である。
【図２５】図２５は、プロセスサーバの処理フローを示す図である。
【図２６】図２６は、プロセスサーバの処理フローを示す図である。
【図２７】図２７は、コンピュータの機能ブロック図である。
【発明を実施するための最良の形態】
【０００７】
例えば図１に示すように、実施された一連の業務イベントを時系列に並べたプロセスインスタンスを生成するプロセスサーバを複数設け（図１では、プロセスサーバＡ及びＢ）、プロセスサーバの処理負荷を分散させることが考えられる。この場合、マスタサーバが、所定の条件に応じて各プロセスサーバに適切に処理を振り分ける必要がある。例えば、図１では、受注ＩＤをキーにしてプロセスインスタンスを生成するようになっているため、マスタサーバは、同一の受注ＩＤを有する業務イベント（例えば、受注、生産、出荷など）を、特定のプロセスサーバに振り分ける必要がある。しかし、例えばプロセスサーバに障害が発生し、一時的に利用不可になると、図２に示すように、同一の受注ＩＤを有する業務イベントが複数のプロセスサーバに分散してしまい、完全なプロセスインスタンス（図２の例では、「受注」−「生産」−「出荷」）を生成することができない。【０００８】
一方で、例えば業務フローの分析などにおいて、プロセスインスタンスの発生件数の集計を行っている。なお、プロセスインスタンスの同一性を判断する際には、プロセスインスタンス間で業務イベントの並びを比較するとなると時間がかかるため、図３に示すように、プロセスインスタンス毎にハッシュ値を計算し、ハッシュ値に従ってプロセスインスタンス間の同一性を判断する。これは、プロセスインスタンスにおける業務イベントの並びが同じであれば、算出されるハッシュ値も同じ値となるからである。しかし、上で述べたように、完全なプロセスインスタンスを生成することができないため、正しい集計結果を得ることができない場合がある。【０００９】
そこで、本実施の形態では、図４に示すような構成を採用する。以下、本技術の一実施の形態に係る業務フロー分散処理システムについて説明する。図４では、例えば社内ＬＡＮ（Local Area Network）のようなネットワーク１には、マスタサーバ３と、複数のプロセスサーバ５（図４では５Ａ及び５Ｂ）とが接続されている。なお、図示していないが、業務システムなども接続されている。【００１０】
マスタサーバ３は、業務システムにおいて実施された業務イベントに関するイベントデータを格納するイベントデータ格納部３１と、定期的に又は任意のタイミングにてイベントデータ格納部３１からイベントデータを抽出するイベントデータ抽出部３３と、各プロセスサーバ５にプロセスインスタンス（以下、フローデータと呼ぶ場合もある）の保持状況の問い合わせやハッシュ値の取得を行う問い合わせ部３５と、イベントデータ抽出部３３により抽出されたイベントデータの送信先を決定するなどの処理を実施する格納先決定部３７とを有する。【００１１】
プロセスサーバ５Ａは、マスタサーバ３からのイベントデータを受信するイベントデータ受信部５１と、フローデータを生成するなどの処理を実施するフローデータ処理部５３と、フローデータ処理部５３により生成されたフローデータを格納するフローデータ格納部５５と、フローデータのマージを行うマージ処理部５７とを有する。なお、図４では図示していないが、プロセスサーバ５Ｂも、プロセスサーバ５Ａと同様の構成を有する。【００１２】
図５にイベントデータ格納部３１に格納されるデータの一例を示す。図５の例では、イベントデータ格納部３１には、レコード番号（Ｎｏ．）の列と、イベント名の列と、プロセスインスタンスを識別するための識別子（ＩＤ）の列と、処理日時の列とが含まれる。なお、イベントデータ格納部３１には、業務システム（図示せず）から収集したデータが登録される。収集処理自体は、本技術の主要部分ではないため、これ以上述べない。【００１３】
次に、図６乃至図１８を用いて、図４に示した業務フロー分散処理システムの全体の流れを説明する。なお、イベントデータ格納部３１には、図５に示したようなデータが格納されているものとする。また、説明の便宜上、プロセスサーバ５が２台（プロセスサーバ５Ａ及び５Ｂ）の場合を例として説明するが、３台以上の場合も基本的には同様の処理となる。まず、マスタサーバ３のイベントデータ抽出部３３は、定期的又は任意のタイミングにてイベントデータ格納部３１から未処理のイベントデータを抽出する（図６：ステップ（１））。ここでは、レコード番号１（図５）のイベントデータ（イベント名「受注」、ＩＤ「Ｐ０１」）が抽出される。そして、マスタサーバ３の問い合わせ部３５は、イベントデータからＩＤ（Ｐ０１）を抽出し（ステップ（２））、当該ＩＤ（Ｐ０１）に係るフローデータの保持状況の問い合わせをプロセスサーバ５Ａ及び５Ｂに出力する（ステップ（３））。【００１４】
そして、プロセスサーバ５Ａ及び５Ｂの各々のフローデータ処理部５３は、マスタサーバ３からＩＤ（Ｐ０１）に係るフローデータの保持状況の問い合わせを受信し、問い合わせに係るＩＤ（Ｐ０１）でフローデータ格納部５５を検索する（ステップ（４））。そして、プロセスサーバ５Ａ及び５Ｂの各々のフローデータ処理部５３は、ＩＤ（Ｐ０１）に係るフローデータを保持しているか否かを応答する（ステップ（５））。なお、ここでは、プロセスサーバ５Ａもプロセスサーバ５ＢもＩＤ（Ｐ０１）に係るフローデータを保持していないため、保持していない旨を応答する。そして、マスタサーバ３の問い合わせ部３５は、問い合わせに対する応答をプロセスサーバ５Ａ及び５Ｂから受信する。【００１５】
図７の説明に移行して、マスタサーバ３の格納先決定部３７は、イベントデータの送信先を決定する（図７：ステップ（６））。なお、詳細は後で説明するが、問い合わせに係るフローデータを保持しているプロセスサーバ５が存在しない場合には、全てのプロセスサーバ５の中からイベントデータの送信先を決定する。また、問い合わせに係るフローデータを保持しているプロセスサーバ５が１台である場合には、当該プロセスサーバ５をイベントデータの送信先として決定する。さらに、問い合わせに係るフローデータを保持しているプロセスサーバ５が複数存在する場合には、当該フローデータを保持しているプロセスサーバ５の中からフローデータのマージ先を決定する。なお、ここでは、プロセスサーバ５Ａが送信先として決定されたものとする。そして、マスタサーバ３の格納先決定部３７は、イベントデータ（イベント名「受注」、ＩＤ「Ｐ０１」）をプロセスサーバ５Ａに送信する（ステップ（７））。プロセスサーバ５Ａのフローデータ処理部５３は、マスタサーバ３からのイベントデータを受信する。そして、当該イベントデータを含むフローデータを生成し、フローデータ格納部５５に格納する（ステップ（８））。【００１６】
図８の説明に移行して、マスタサーバ３のイベントデータ抽出部３３は、イベントデータ格納部３１から次のイベントデータを抽出する（図８：ステップ（９））。ここでは、レコード番号２（図５）のイベントデータ（イベント名「受注」、ＩＤ「Ｐ０２」）が抽出される。そして、マスタサーバ３の問い合わせ部３５は、イベントデータからＩＤ（Ｐ０２）を抽出し（ステップ（１０））、当該ＩＤ（Ｐ０２）に係るフローデータの保持状況の問い合わせをプロセスサーバ５Ａ及び５Ｂに出力する（ステップ（１１））。【００１７】
そして、プロセスサーバ５Ａ及び５Ｂの各々のフローデータ処理部５３は、マスタサーバ３からＩＤ（Ｐ０２）に係るフローデータの保持状況の問い合わせを受信し、問い合わせに係るＩＤ（Ｐ０２）でフローデータ格納部５５を検索する（ステップ（１２））。そして、プロセスサーバ５Ａ及び５Ｂの各々のフローデータ処理部５３は、ＩＤ（Ｐ０２）に係るフローデータを保持しているか否かを応答する（ステップ（１３））。なお、ここでは、プロセスサーバ５Ａもプロセスサーバ５ＢもＩＤ（Ｐ０２）に係るフローデータを保持していないため、保持していない旨を応答する。そして、マスタサーバ３の問い合わせ部３５は、問い合わせに対する応答をプロセスサーバ５Ａ及び５Ｂから受信する。【００１８】
図９の説明に移行して、マスタサーバ３の格納先決定部３７は、イベントデータの送信先を決定する（図９：ステップ（１４））。ここでは、プロセスサーバ５Ｂが送信先として決定されたものとする。そして、マスタサーバ３の格納先決定部３７は、イベントデータ（イベント名「受注」、ＩＤ「Ｐ０２」）をプロセスサーバ５Ｂに送信する（ステップ（１５））。プロセスサーバ５Ｂのフローデータ処理部５３は、マスタサーバ３からのイベントデータを受信する。そして、当該イベントデータを含むフローデータを生成し、フローデータ格納部５５に格納する（ステップ（１６））。【００１９】
図１０の説明に移行して、マスタサーバ３のイベントデータ抽出部３３は、イベントデータ格納部３１から次のイベントデータを抽出する（図１０：ステップ（１７））。ここでは、レコード番号３（図５）のイベントデータ（イベント名「生産」、ＩＤ「Ｐ０１」）が抽出される。そして、マスタサーバ３の問い合わせ部３５は、イベントデータからＩＤ（Ｐ０１）を抽出し（ステップ（１８））、ＩＤ（Ｐ０１）に係るフローデータの保持状況の問い合わせをプロセスサーバ５Ａ及び５Ｂに出力する（ステップ（１９））。なお、ステップ（１９）の時点において、プロセスサーバ５Ａは、一時的に利用できない状態（例えば障害発生など）になっているものとする。【００２０】
そして、プロセスサーバ５Ｂのフローデータ処理部５３は、マスタサーバ３からＩＤ（Ｐ０１）に係るフローデータの保持状況の問い合わせを受信し、問い合わせに係るＩＤ（Ｐ０１）でフローデータ格納部５５を検索する（ステップ（２０））。そして、プロセスサーバ５Ｂのフローデータ処理部５３は、ＩＤ（Ｐ０１）に係るフローデータを保持しているか否かを応答する（ステップ（２１））。ここでは、プロセスサーバ５ＢはＩＤ（Ｐ０１）に係るフローデータを保持していないため、保持していない旨を応答する。なお、プロセスサーバ５Ａは、一時的に利用できない状態であるため、プロセスサーバ５Ａからの応答はない。そして、マスタサーバ３の問い合わせ部３５は、問い合わせに対する応答をプロセスサーバ５Ｂから受信する。【００２１】
図１１の説明に移行して、マスタサーバ３の格納先決定部３７は、イベントデータの送信先を決定する（図１１：ステップ（２２））。ここでは、プロセスサーバ５Ｂが送信先として決定されたものとする。そして、マスタサーバ３の格納先決定部３７は、イベントデータ（イベント名「生産」、ＩＤ「Ｐ０１」）をプロセスサーバ５Ｂに送信する（ステップ（２３））。プロセスサーバ５Ｂのフローデータ処理部５３は、マスタサーバ３からのイベントデータを受信する。そして、当該イベントデータを含むフローデータを生成し、フローデータ格納部５５に格納する（ステップ（２４））。すなわち、ＩＤ（Ｐ０１）に係るフローデータが、プロセスサーバ５Ａ及び５Ｂに分散されて格納された状態となる。【００２２】
図１２の説明に移行して、マスタサーバ３のイベントデータ抽出部３３は、イベントデータ格納部３１から次のイベントデータを抽出する（図１２：ステップ（２５））。ここでは、レコード番号４（図５）のイベントデータ（イベント名「配送」、ＩＤ「Ｐ０１」）が抽出される。そして、マスタサーバ３の問い合わせ部３５は、イベントデータからＩＤ（Ｐ０１）を抽出し（ステップ（２６））、ＩＤ（Ｐ０１）に係るフローデータの保持状況の問い合わせをプロセスサーバ５Ａ及び５Ｂに出力する（ステップ（２７））。なお、ステップ（２７）の時点において、プロセスサーバ５Ａは、利用可能な状態に回復しているものとする。【００２３】
そして、プロセスサーバ５Ａ及び５Ｂの各々のフローデータ処理部５３は、マスタサーバ３からＩＤ（Ｐ０１）に係るフローデータの保持状況の問い合わせを受信し、問い合わせに係るＩＤ（Ｐ０１）でフローデータ格納部５５を検索する（ステップ（２８））。そして、プロセスサーバ５Ａ及び５Ｂの各々のフローデータ処理部５３は、ＩＤ（Ｐ０１）に係るフローデータを保持しているか否かを応答する（ステップ（２９））。ここでは、プロセスサーバ５Ａもプロセスサーバ５ＢもＩＤ（Ｐ０１）に係るフローデータを保持しているため、保持している旨を応答する。そして、マスタサーバ３の問い合わせ部３５は、問い合わせに対する応答をプロセスサーバ５Ａ及び５Ｂから受信する。【００２４】
図１３の説明に移行して、マスタサーバ３の格納先決定部３７は、フローデータのマージ先を決定する（図１３：ステップ（３０））。ここでは、プロセスサーバ５Ａがマージ先として決定されたものとする。そして、マスタサーバ３の格納先決定部３７は、ＩＤ（Ｐ０１）に係るフローデータのマージ指示をプロセスサーバ５Ｂに送信する（ステップ（３１））。なお、マージ指示には、ＩＤ及びマージ先のプロセスサーバ５の情報が含まれる。プロセスサーバ５Ｂのマージ処理部５７は、マスタサーバ３からのマージ指示を受信する。そして、プロセスサーバ５Ｂのマージ処理部５７は、マージ指示に含まれるＩＤ（Ｐ０１）に係るフローデータをフローデータ格納部５５から読み出し、プロセスサーバ５Ａに送信する（ステップ（３２））。なお、フローデータではなく、ＩＤ（Ｐ０１）に係るイベントデータを送信するようにしてもよい。【００２５】
そして、プロセスサーバ５Ａのマージ処理部５７は、プロセスサーバ５ＢからＩＤ（Ｐ０１）に係るフローデータ（又はイベントデータ）を受信し、自身の保持しているフローデータにマージする（ステップ（３３））。そして、プロセスサーバ５Ａのマージ処理部５７は、マージ完了通知をプロセスサーバ５Ｂに送信する（ステップ（３４））。【００２６】
そして、プロセスサーバ５Ｂのマージ処理部５７は、プロセスサーバ５Ａからマージ完了通知を受信し、フローデータ格納部５５からＩＤ（Ｐ０１）に係るフローデータ（又はイベントデータ）を削除する（ステップ（３５））。すなわち、ＩＤ（Ｐ０１）に係るフローデータが、プロセスサーバ５Ａにのみ格納された状態となる。【００２７】
図１４の説明に移行して、マスタサーバ３の格納先決定部３７は、ステップ（２５）にて抽出したイベントデータ（イベント名「配送」、ＩＤ「Ｐ０１」）をプロセスサーバ５Ａに送信する（図１４：ステップ（３６））。そして、プロセスサーバ５Ａのフローデータ処理部５３は、マスタサーバ３からのイベントデータを受信し、ＩＤ（Ｐ０１）に係るフローデータを更新する（ステップ（３７））。具体的には、当該イベントデータの業務イベントをＩＤ（Ｐ０１）に係るフローデータに追加する。【００２８】
図１５の説明に移行して、マスタサーバ３のイベントデータ抽出部３３は、イベントデータ格納部３１から次のイベントデータを抽出する（図１５：ステップ（３８））。ここでは、レコード番号５（図５）のイベントデータ（イベント名「生産」、ＩＤ「Ｐ０２」）が抽出される。そして、マスタサーバ３の問い合わせ部３５は、イベントデータからＩＤ（Ｐ０２）を抽出し（ステップ（３９））、ＩＤ（Ｐ０２）に係るフローデータの保持状況の問い合わせをプロセスサーバ５Ａ及び５Ｂに出力する（ステップ（４０））。【００２９】
そして、プロセスサーバ５Ａ及び５Ｂの各々のフローデータ処理部５３は、マスタサーバ３からＩＤ（Ｐ０２）に係るフローデータの保持状況の問い合わせを受信し、問い合わせに係るＩＤ（Ｐ０２）でフローデータ格納部５５を検索する（ステップ（４１））。そして、プロセスサーバ５Ａ及び５Ｂの各々のフローデータ処理部５３は、ＩＤ（Ｐ０２）に係るフローデータを保持しているか否かを応答する（ステップ（４２））。ここでは、プロセスサーバ５Ａは、ＩＤ（Ｐ０２）に係るフローデータを保持していないため、保持していない旨を応答する。一方、プロセスサーバ５Ｂは、ＩＤ（Ｐ０２）に係るフローデータを保持しているため、保持している旨を応答する。そして、マスタサーバ３の問い合わせ部３５は、問い合わせに対する応答をプロセスサーバ５Ａ及び５Ｂから受信する。【００３０】
図１６の説明に移行して、マスタサーバ３の格納先決定部３７は、イベントデータの送信先を決定する（図１６：ステップ（４３））。なお、ＩＤ（Ｐ０２）に係るフローデータを保持しているのが、プロセスサーバ５Ｂのみであるため、プロセスサーバ５Ｂを送信先として決定する。そして、マスタサーバ３の格納先決定部３７は、イベントデータ（イベント名「生産」、ＩＤ「Ｐ０２」）をプロセスサーバ５Ｂに送信する（ステップ（４４））。プロセスサーバ５Ｂのフローデータ処理部５３は、マスタサーバ３からのイベントデータを受信し、ＩＤ（Ｐ０２）に係るフローデータを更新する（ステップ（４５））。具体的には、当該イベントデータの業務イベントをＩＤ（Ｐ０２）に係るフローデータに追加する。【００３１】
図１７の説明に移行して、マスタサーバ３のイベントデータ抽出部３３は、イベントデータ格納部３１から次のイベントデータを抽出する（図１７：ステップ（４６））。ここでは、レコード番号６（図５）のイベントデータ（イベント名「生産」、ＩＤ「Ｐ０２」）が抽出される。そして、マスタサーバ３の問い合わせ部３５は、イベントデータからＩＤ（Ｐ０２）を抽出し（ステップ（４７））、ＩＤ（Ｐ０２）に係るフローデータの保持状況の問い合わせをプロセスサーバ５Ａ及び５Ｂに出力する（ステップ（４８））。【００３２】
そして、プロセスサーバ５Ａ及び５Ｂの各々のフローデータ処理部５３は、マスタサーバ３からＩＤ（Ｐ０２）に係るフローデータの保持状況の問い合わせを受信し、問い合わせに係るＩＤ（Ｐ０２）でフローデータ格納部５５を検索する（ステップ（４９））。そして、プロセスサーバ５Ａ及び５Ｂの各々のフローデータ処理部５３は、ＩＤ（Ｐ０２）に係るフローデータを保持しているか否かを応答する（ステップ（５０））。ここでは、プロセスサーバ５Ａは、ＩＤ（Ｐ０２）に係るフローデータを保持していないため、保持していない旨を応答する。一方、プロセスサーバ５Ｂは、ＩＤ（Ｐ０２）に係るフローデータを保持しているため、保持している旨を応答する。そして、マスタサーバ３の問い合わせ部３５は、問い合わせに対する応答をプロセスサーバ５Ａ及び５Ｂから受信する。【００３３】
図１８の説明に移行して、マスタサーバ３の格納先決定部３７は、イベントデータの送信先を決定する（図１８：ステップ（５１））。なお、ＩＤ（Ｐ０２）に係るフローデータを保持しているのが、プロセスサーバ５Ｂのみであるため、プロセスサーバ５Ｂを送信先として決定する。そして、マスタサーバ３の格納先決定部３７は、イベントデータ（イベント名「生産」、ＩＤ「Ｐ０２」）をプロセスサーバ５Ｂに送信する（ステップ（５２））。プロセスサーバ５Ｂのフローデータ処理部５３は、マスタサーバ３からのイベントデータを受信し、ＩＤ（Ｐ０２）に係るフローデータを更新する（ステップ（５３））。具体的には、当該イベントデータの業務イベントをＩＤ（Ｐ０２）に係るフローデータに追加する。そして、プロセスサーバ５Ａ及び５Ｂの各々は、フローデータ毎にハッシュ値を計算する。なお、プロセスサーバ５Ａ及び５Ｂの各々は、例えばマスタサーバ３からの要求に応じて各フローデータに係るハッシュ値をマスタサーバ３に送信するようにしてもよい。【００３４】
このように、本業務フロー分散処理システムでは、なんらかの理由で同一ＩＤの業務イベントが複数のプロセスサーバ５に分散されても、その後自動的にマージするので、結果として複数のプロセスサーバ５の各々で完全なプロセスインスタンスを分散して生成することができる。また、プロセスインスタンス間の同一性をハッシュ値により判断することができ、正しい集計結果を得ることができる。【００３５】
以上のような処理を実施することにより、なんらかの理由で同一ＩＤの業務イベントが複数のプロセスサーバ５に分散されても、その後自動的にマージされるため、結果として複数のプロセスサーバ５の各々で完全なプロセスインスタンスを分散して生成することができるようになる。【００３６】
次に、図１９乃至図２６を用いて、上で説明した処理を実施するためのマスタサーバ３及びプロセスサーバ５の処理をより詳細に説明する。図１９及び図２１に、マスタサーバ３の処理フローを示す。まず、図１９及び図２０を用いて、イベントデータを抽出した際の処理を説明する。なお、マスタサーバ３は、定期的又は任意のタイミングにて図１９及び図２０に示すような処理を実施する。【００３７】
まず、イベントデータ抽出部３３は、イベントデータ格納部３１に未処理のイベントデータが格納されているか判断する（図１９：ステップＳ１）。イベントデータ格納部３１に未処理のイベントデータが格納されていなければ（ステップＳ１：Ｎｏルート）、処理を終了する。一方、イベントデータ格納部３１に未処理のイベントデータが格納されている場合（ステップＳ１：Ｙｅｓルート）、イベントデータ抽出部３３は、イベントデータ格納部３１から未処理のイベントデータを抽出する（ステップＳ３）。そして、イベントデータ抽出部３３は、イベントデータからＩＤを抽出する（ステップＳ５）。そして、問い合わせ部３５が、抽出ＩＤを含むフローデータ問い合わせ要求を各プロセスサーバ５に送信する（ステップＳ７）。【００３８】
その後、問い合わせ部３５は、プロセスサーバ５からの応答を受信すると、全てのプロセスサーバ５から応答を受信したか否か判断する（ステップＳ９）。いずれかのプロセスサーバ５からの応答を未だ受信していない場合（ステップＳ９：Ｎｏルート）、ステップＳ９の処理に戻り、プロセスサーバ５からの応答の受信待ちとなる。一方、全てのプロセスサーバ５から応答を受信した場合（ステップＳ９：Ｙｅｓルート）、端子Ａを介してステップＳ１１（図２０）の処理に移行する。なお、例えばあるプロセスサーバ５が一時的に利用できない状態となっている場合には、当該プロセスサーバ５から応答は送信されない。したがって、いずれかのプロセスサーバ５からの応答を未だ受信していない場合であっても、一定時間経過した場合には、端子Ａを介してステップＳ１１（図２０）の処理に移行する。【００３９】
図２０の説明に移行して、端子Ａの後、格納先決定部３７は、抽出ＩＤに対応するフローデータを保持しているプロセスサーバ５があるか判断する（図２０：ステップＳ１１）。抽出ＩＤに対応するフローデータを保持しているプロセスサーバ５がなければ（ステップＳ１１：Ｎｏルート）、格納先決定部３７は、全てのプロセスサーバ５の中から格納先を決定する（ステップＳ１３）。例えば、前回格納先としたプロセスサーバ５を記憶しておき、順番で格納先を変更するようにしたり、問い合わせに対する応答と共にフローデータ格納部５５のデータ量を返すようにして、データ量の少ないプロセスサーバ５を格納先として決定したりする。なお、適切に分散できる方式であれば、他の方式を採用してもよい。そして、格納先決定部３７は、格納先となるプロセスサーバ５にイベントデータを送信する（ステップＳ１５）。その後、端子Ｂを介してステップＳ１（図１９）の処理に戻る。【００４０】
一方、ステップＳ１１において、抽出ＩＤに対応するフローデータを保持しているプロセスサーバ５があると判断された場合（ステップＳ１１：Ｙｅｓルート）、格納先決定部３７は、抽出ＩＤに対応するフローデータを保持しているプロセスサーバ５が複数あるか判断する（ステップＳ１７）。抽出ＩＤに対応するフローデータを保持しているプロセスサーバ５が１台の場合（ステップＳ１７：Ｎｏルート）、格納先決定部３７は、抽出ＩＤに対応するフローデータを保持しているプロセスサーバ５を格納先として決定する（ステップＳ１９）。その後、ステップＳ１５の処理に移行し、格納先となるプロセスサーバ５にイベントデータを送信する。【００４１】
一方、ステップＳ１７において、抽出ＩＤに対応するフローデータを保持しているプロセスサーバ５が複数あると判断された場合（ステップＳ１７：Ｙｅｓルート）、格納先決定部３７は、抽出ＩＤに対応するフローデータを保持しているプロセスサーバ５の中からマージ先を決定する（ステップＳ２１）。例えば、問い合わせに対する応答と共にフローデータ格納部５５のデータ量を返すようにして、データ量の少ないプロセスサーバ５をマージ先として決定したりする。なお、適切に分散できる方式であれば、他の方式を採用してもよい。そして、格納先決定部３７は、抽出ＩＤ及びマージ先となるプロセスサーバ５の情報を含むフローデータマージ指示を、抽出ＩＤに対応するフローデータを保持しているプロセスサーバ５に送信する（ステップＳ２３）。その後、ステップＳ１５の処理に移行し、格納先となるプロセスサーバ５にイベントデータを送信する。【００４２】
次に、図２１を用いて、集計に関連する処理を説明する。なお、マスタサーバ３は、定期的又は任意のタイミングにて図２１に示すような処理を実施する。まず、問い合わせ部３５は、各プロセスサーバ５にハッシュ値取得要求を送信する（図２１：ステップＳ２５）。そして、問い合わせ部３５は、各プロセスサーバ５からハッシュ値を受信する（ステップＳ２７）。そして、問い合わせ部３５は、同一ハッシュ値毎に、当該ハッシュ値に係るフローデータの件数を計数し、集計結果を記憶装置に格納する（ステップＳ２９）。集計結果は、必要に応じてユーザなどに出力する。【００４３】
図２２乃至図２６に、プロセスサーバ５の処理フローを示す。まず、図２２を用いて、マスタサーバ３からイベントデータを受信した際の処理を説明する。イベントデータ受信部５１は、マスタサーバ３からイベントデータを受信し（図２２：ステップＳ３１）、一旦記憶装置に格納する。そして、フローデータ処理部５３が、イベントデータからＩＤを抽出する（ステップＳ３３）。そして、フローデータ処理部５３は、抽出ＩＤに対応するフローデータがフローデータ格納部５５に格納されているか判断する（ステップＳ３５）。抽出ＩＤに対応するフローデータが格納されている場合（ステップＳ３５：Ｙｅｓルート）、抽出ＩＤに対応するフローデータを読み出し、受信したイベントデータの業務イベントを当該フローデータ追加する（ステップＳ３７）。一方、抽出ＩＤに対応するフローデータがフローデータ格納部５５に格納されていなければ（ステップＳ３５：Ｎｏルート）、受信したイベントデータの業務イベントを含むフローデータを新たに生成する（ステップＳ３９）。そして、フローデータ処理部５３は、ステップＳ３７又はステップＳ３９の処理の後、フローデータをフローデータ格納部５５に格納する（ステップＳ４１）。具体的には、ステップＳ３７において業務イベントを追加した後のフローデータ、又は、ステップＳ３９において生成したフローデータを格納する。また、フローデータ処理部５３は、当該フローデータからハッシュ値を計算し（ステップＳ４３）、フローデータと対応して格納する。その後、処理を終了する。【００４４】
次に、図２３を用いて、マスタサーバ３からフローデータ問い合わせ要求を受信した際の処理を説明する。フローデータ処理部５３は、マスタサーバ３からフローデータ問い合わせ要求を受信し（図２３：ステップＳ５１）、フローデータ問い合わせ要求からＩＤを抽出する（ステップＳ５３）。そして、フローデータ処理部５３は、抽出ＩＤを基にフローデータ格納部５５を検索し（ステップＳ５５）、抽出ＩＤに対応するフローデータが格納されているか判断する（ステップＳ５７）。抽出ＩＤに対応するフローデータが格納されている場合（ステップＳ５７：Ｙｅｓルート）、フローデータ処理部５３は、フローデータを保持している旨の応答をマスタサーバ３に送信する（ステップＳ５９）。一方、抽出ＩＤに対応するフローデータが格納されていなければ（ステップＳ５７：Ｎｏルート）、フローデータ処理部５３は、フローデータを保持していない旨の応答をマスタサーバ３に送信する（ステップＳ６１）。そして、処理を終了する。【００４５】
次に、図２４を用いて、マスタサーバ３からフローデータマージ指示を受信した際の処理を説明する。マージ処理部５７は、マスタサーバ３からフローデータマージ指示を受信し（図２４：ステップＳ７１）、フローデータマージ指示からＩＤ及びマージ先のプロセスサーバ５の情報を抽出する（ステップＳ７３）。なお、図示していないが、自身がマージ先のプロセスサーバ５として指定されている場合には、以降の処理をスキップし、処理を終了する。そして、マージ処理部５７は、抽出ＩＤに対応するフローデータをフローデータ格納部５５から読み出し、マージ先のプロセスサーバ５に送信する（ステップＳ７５）。なお、フローデータを送信するのではなく、当該フローデータを生成するために用いたイベントデータを送信するようにしてもよい。その後、マージ処理部５７は、マージ先のプロセスサーバ５からのマージ完了通知の受信待ちとなる。マージ先のプロセスサーバ５からマージ完了通知を受信した場合（ステップＳ７７：Ｙｅｓルート）、マージ処理部５７は、フローデータ格納部５５から抽出ＩＤに対応するフローデータを削除する（ステップＳ７９）。その後処理を終了する。【００４６】
一方、一定時間経過してもマージ先のプロセスサーバ５からマージ完了通知を受信しなかった場合、又は、マージ先のプロセスサーバ５からエラー通知を受信した場合（ステップＳ７７：Ｎｏルート）、ステップＳ７９の処理をスキップし、処理を終了する。すなわち、なんらかの理由でマージできなかった場合には、フローデータはフローデータ格納部５５から削除されない。【００４７】
次に、図２５を用いて、他のプロセスサーバ５からフローデータ（又はイベントデータ）を受信した際の処理を説明する。マージ処理部５７は、他のプロセスサーバ５からフローデータ（又はイベントデータ）を受信し（図２５：ステップＳ９１）、一旦記憶装置に格納する。また、マージ処理部５７は、フローデータからＩＤを抽出する（ステップＳ９３）。そして、マージ処理部５７は、抽出ＩＤに対応するフローデータがフローデータ格納部５５に格納されているか判断する（ステップＳ９５）。抽出ＩＤに対応するフローデータがフローデータ格納部５５に格納されている場合（ステップＳ９５：Ｙｅｓルート）、マージ処理部５７は、フローデータ格納部５５から抽出ＩＤに対応するフローデータを読み出し、受信したフローデータとマージする（ステップＳ９７）。具体的には、他のプロセスサーバ５からのフローデータに含まれるイベントデータの業務イベントを処理日時に従って自身のフローデータに追加する。そして、マージ処理部５７は、マージ後のフローデータをフローデータ格納部５５に格納する（ステップＳ９９）。また、フローデータ処理部５３は、マージ後のフローデータからハッシュ値を計算し（ステップＳ１０１）、マージ後のフローデータと対応して格納する。そして、マージ処理部５７は、マージ完了通知をフローデータの送信元に送信する（ステップＳ１０３）。その後、処理を終了する。【００４８】
一方、ステップＳ９５において、抽出ＩＤに対応するフローデータがフローデータ格納部５５に格納されていないと判断された場合（ステップＳ９５：Ｎｏルート）、マージ処理部５７は、マージ対象となるフローデータが存在しないため、エラー通知をフローデータの送信元に送信する（ステップＳ１０５）。そして、処理を終了する。【００４９】
次に、図２６を用いて、集計に関連する処理を説明する。なお、プロセスサーバ５は、定期的又は任意のタイミングにて図２６に示すような処理を実施する。フローデータ処理部５３は、フローデータに対応して格納されているハッシュ値を読み出し、同一ハッシュ値毎に当該ハッシュ値に係るフローデータの件数を計数し、集計結果を記憶装置に格納する（図２６：ステップＳ１１１）。また、フローデータ処理部５３は、マスタサーバ３からハッシュ値取得要求を受信したか判断する（ステップＳ１１３）。ハッシュ値取得要求を受信している場合（ステップＳ１１３：Ｙｅｓルート）、フローデータに対応して格納されているハッシュ値を読み出し、マスタサーバ３に送信する（ステップＳ１１５）。その後、処理を終了する。一方、ハッシュ値取得要求を受信していなければ（ステップＳ１１３：Ｎｏルート）、ステップＳ１１５の処理をスキップし、処理を終了する。【００５０】
以上のような処理を実施することにより、なんらかの理由で同一ＩＤの業務イベントが複数のプロセスサーバ５に分散されても、その後自動的にマージすることができ、結果として複数のプロセスサーバ５の各々で完全なプロセスインスタンスを分散して生成することができるようになる。また、正しい集計結果を得ることができるようになる。【００５１】
以上本技術の一実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上で説明したマスタサーバ３及びプロセスサーバ５の機能ブロック図は必ずしも実際のプログラムモジュール構成に対応するものではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。【００５２】
また、格納先及びマージ先を決定する方式は、上で述べた方式に限られない。例えば、フローデータ格納部５５のデータ量に応じて、問い合わせに対する応答を遅らせるようにし、最も早く応答を返してきたプロセスサーバ５を格納先又はマージ先として決定するようにしてもよい。また、例えば、マスタサーバ３において、各プロセスサーバ５に対して過去に割り振ったイベントデータのＩＤをテーブルなどに記憶しておき、割り振った数の少ないプロセスサーバ５を格納先又はマージ先として決定するようにしてもよい。さらに、例えば、前回マージ指示を送信してから所定期間内であれば、当該マージ指示に係るマージ元及びマージ先のプロセスサーバ５は、マージ処理中であるため、格納先又はマージ先の候補から外すようにしてもよい。【００５３】
また、上では、イベントデータを抽出した後に、フローデータの保持状況の問い合わせを行っていたが、例えば、一時的に利用不可のプロセスサーバ５があった場合、マスタサーバ３が、当該プロセスサーバ５が復帰するまでの間に割り振りを行ったイベントデータのＩＤを記憶しておき、復帰後に当該プロセスサーバに対して、記憶したＩＤに係るフローデータの保持状況の問い合わせを行うようにしてもよい。【００５４】
また、上では、各プロセスサーバ５が、マスタサーバ３にハッシュ値を送信していたが、ハッシュ値の代わりに、ステップＳ１１１において集計した各フローデータの件数をマスタサーバ３に送信するようにしてもよい。この場合、マスタサーバ３は、各プロセスサーバ５からの、フローデータの件数を集計し、全体の集計結果を求めるようにすればよい。【００５５】
以上本実施の形態をまとめると以下のようになる。【００５６】
本業務フロー分散処理システムは、実施された一連の業務イベントを時系列に並べたプロセスインスタンスを生成する手段を各々有する複数のプロセスサーバと、イベント名と処理時刻とプロセスインスタンスを識別するための識別子とを含み且つ業務イベントに関するイベントデータをイベントデータ格納部から順次読み出し、複数のプロセスサーバのいずれかに割り振るマスタサーバとを有する。そして、上で述べたマスタサーバは、イベントデータ格納部から読み出したイベントデータに含まれる識別子に対応するプロセスインスタンスの保持状況の問い合わせを複数のプロセスサーバに出力する手段と、複数のプロセスサーバから問い合わせに対する応答を受信し、問い合わせに係るプロセスインスタンスを保持している第１プロセスサーバが複数存在するか判断する手段と、第１プロセスサーバが複数存在する場合、第１プロセスサーバの中から問い合わせに係るプロセスインスタンスのマージ先となる第２プロセスサーバを決定する手段と、第２プロセスサーバの情報と問い合わせに係るプロセスインスタンスの識別子とを含むマージ指示を第１プロセスサーバに出力する手段とを有する。さらに、上で述べた複数のプロセスサーバの各々は、イベントデータを含むプロセスインスタンスを識別子に対応して格納するプロセスインスタンスデータ格納部と、マスタサーバから問い合わせを受信した場合、プロセスインスタンスデータ格納部を問い合わせに係る識別子で検索し、当該問い合わせに係るプロセスインスタンスの有無をマスタサーバに応答する手段と、マスタサーバからマージ指示を受信し且つ自身が第２プロセスサーバ以外の第１プロセスサーバである場合、マージ指示に含まれる識別子に係るイベントデータをマージ指示に含まれる第２プロセスサーバに出力する手段と、他のプロセスサーバからイベントデータを受信した場合、プロセスインスタンスデータ格納部に格納され且つ当該イベントデータと同一の識別子に対応するプロセスインスタンスに当該イベントデータをマージするマージ手段とを有する。【００５７】
このようにすれば、なんらかの理由で同一ＩＤの業務イベントが複数のプロセスサーバに分散されても、自動的にマージすることができ、各プロセスサーバは、完全なプロセスインスタンスを生成することができる。【００５８】
また、上で述べたマージ手段は、マージ完了通知をイベントデータの送信元に出力する手段を有する場合もある。そして、上で述べた複数のプロセスサーバの各々は、第２プロセスサーバからマージ完了通知を受信した場合、マージ指示に対応するプロセスインスタンスをプロセスインスタンスデータ格納部から削除する手段をさらに有するようにしてもよい。【００５９】
このようにすれば、マージが完了するまで、マージ元のプロセスサーバにおけるプロセスインスタンスは削除されないため、マージ漏れをなくすことができる。【００６０】
さらに、上で述べた複数のプロセスサーバの各々は、プロセスインスタンスデータ格納部に格納されている各プロセスインスタンスについて、当該プロセスインスタンスからハッシュ値を計算し、記憶装置に格納する手段をさらに有するようにしてもよい。【００６１】
また、上で述べた複数のプロセスサーバの各々は、同一のハッシュ値毎に当該ハッシュ値に係るプロセスインスタンスの件数を計数する手段をさらに有するようにしてもよい。【００６２】
また、上で述べたマスタサーバは、複数のプロセスサーバの各々からハッシュ値を取得し、同一のハッシュ値毎に当該ハッシュ値に係るプロセスインスタンスの件数を計数する手段をさらに有するようにしてもよい。【００６３】
なお、本業務フロー分散処理システムは、プログラムが上記処理をハードウエアに実行させることによって実現可能であり、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。また、ネットワークを介してディジタル信号にて頒布される場合もある。なお、処理途中のデータについては、コンピュータのメモリ等の記憶装置に一時保管される。【００６４】
なお、マスタサーバ３及びプロセスサーバ５は、図２７のようなコンピュータ装置であって、メモリ２５０１（記憶装置）とＣＰＵ２５０３（処理装置）とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施の形態における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。必要に応じてＣＰＵ２５０３は、表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ２５０１に格納され、必要があればＨＤＤ２５０５に格納される。本技術の実施の形態では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【図１】
2010018637.tif 000003
【図２】
2010018637.tif 000004
【図３】
2010018637.tif 000005
【図４】
2010018637.tif 000006
【図５】
2010018637.tif 000007
【図６】
2010018637.tif 000008
【図７】
2010018637.tif 000009
【図８】
2010018637.tif 000010
【図９】
2010018637.tif 000011
【図１０】
2010018637.tif 000012
【図１１】
2010018637.tif 000013
【図１２】
2010018637.tif 000014
【図１３】
2010018637.tif 000015
【図１４】
2010018637.tif 000016
【図１５】
2010018637.tif 000017
【図１６】
2010018637.tif 000018
【図１７】
2010018637.tif 000019
【図１８】
2010018637.tif 000020
【図１９】
2010018637.tif 000021
【図２０】
2010018637.tif 000022
【図２１】
2010018637.tif 000023
【図２２】
2010018637.tif 000024
【図２３】
2010018637.tif 000025
【図２４】
2010018637.tif 000026
【図２５】
2010018637.tif 000027
【図２６】
2010018637.tif 000028
【図２７】
2010018637.tif 000029
【国際調査報告】
2010018637.tif 000030
2010018637.tif 000031
2010018637.tif 000032
2010018637.tif 000033