(57)【要約】【課題】  サーバ装置間におけるセッションの引き渡しや復元処理等を不要にし、これによりワークフロー処理の効率の向上を図る。【解決手段】  クライアント装置ＣＬ３からサーバ装置ＳＶ３に対しセッションの実行要求を送信した場合に、このセッションの実行要求を受け取ったサーバ装置ＳＶ３が、セッション管理ファイルＤＢ１に保持されているセッションに関する情報をもとに当該セッションを所有するサーバ装置を判定する。そして、この判定の結果、上記セッションを所有するサーバ装置が他のサーバ装置ＳＶ１だった場合には、上記実行要求元のクライアント装置ＣＬ３に対し上記他のサーバ装置ＳＶ１への再接続を要求するリダイレクト要求を送信し、このリダイレクト要求に応じてクライアント装置ＣＬ３が上記他のサーバ装置ＳＶ１に対し再接続を行ってセッション実行要求を送信するようにしたものである。【選択図】      図９
2005056114.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置が、複数のサーバ装置とこれらのサーバ装置間で共有されるセッション管理ファイルとを備えるワークフロー管理システムとの間で複数回の通信を行うことで一つの仕事を実行するワークフロー処理方法であって、
前記クライアント装置から前記複数のサーバ装置の一つに対し、セッションの実行要求を送信する過程と、
前記セッションの実行要求を受け取ったサーバ装置が、前記セッション管理ファイルに保持されているセッション情報をもとに当該セッションの所有者を判定する過程と、
前記判定の結果、前記セッションの所有者が他のサーバ装置だった場合に、前記要求元のクライアント装置に対し前記他のサーバ装置への再接続を要求する過程と、
前記再接続の要求に応じ、前記クライアント装置が前記他のサーバ装置に対し再接続を行う過程と
を具備することを特徴とするワークフロー処理方法。
【請求項２】
前記ワークフロー管理システムが、複数のサーバ装置の処理負荷を管理するサーバ検索装置を備えている場合に、
前記クライアント装置から前記サーバ検索装置に対し、接続先のサーバ装置を問い合わせる過程と、
前記問い合わせに応じ、前記サーバ検索装置が所定の負荷分散アルゴリズムに従い接続先として適当なサーバ装置を決定し、決定されたサーバ装置に関する情報を前記問い合わせ元のクライアント装置に対し通知する過程と、
前記サーバ検索装置からの通知に応じ、前記クライアント装置が前記通知された接続先のサーバ装置に対しセッションの生成を要求する過程と、
前記セッションの生成要求に応じ前記サーバ装置がセッションを生成し、生成されたセッションに関する情報を要求元のクライアント装置に通知する過程と、
を、さらに具備することを特徴とする請求項１記載のワークフロー処理方法。
【請求項３】
前記クライアント装置が、所有中のセッションの識別情報を保持するキャッシュ手段を備えている場合に、
前記クライアント装置は、前記セッションの実行要求の送信に先立ち、前記キャッシュ機能に保持されているセッションの識別情報をもとにセッションの実行を要求するサーバ装置を特定する過程を、さらに備えることを特徴とする請求項１又は２記載のワークフロー処理方法。
【請求項４】
前記各サーバ装置が、生成されたセッションの識別情報を保持するキャッシュ手段を備える場合に、
前記セッションの所有者を判定する過程は、
クライアント装置から送信されたセッションの実行要求を受け取った場合に、当該セッションの識別情報が前記キャッシュ手段に保持されているか否かを判定する過程と、
前記判定の結果、前記実行要求されたセッションの識別情報が前記キャッシュ手段に保持されている場合には、当該セッションの所有者を自サーバ装置と認識する過程と、
前記判定の結果、前記実行要求されたセッションの識別情報が前記キャッシュ手段に保持されていない場合には、前記セッション管理ファイルに保持されているセッション情報をもとに当該セッションの所有者を判定する過程と
を備えることを特徴とする請求項１乃至３のいずれかに記載のワークフロー処理方法。
【請求項５】
前記ワークフロー管理システムが、前記複数のサーバ装置間で共有される再接続管理ファイルを備えている場合に、
前記セッションの実行要求を受け取ったサーバ装置が、要求元のクライアント装置に対し他のサーバ装置への再接続を要求する際に、当該再接続の対象となるセッションの情報を前記再接続管理ファイルに記憶させる過程と、
前記クライアント装置からのセッションの生成要求に応じ、新たなセッションを生成するために、過去に生成されたセッションをキャンセルする必要があるか否かを判定する過程と、
前記判定の結果、過去に生成されたセッションをキャンセルする必要がある場合に、前記再接続管理ファイルに記憶された情報をもとに再接続の対象となっていないセッションをキャンセル候補として選択する過程と、
前記選択されたセッションをキャンセルし、代わりに新たなセッションを生成する過程と、
前記生成されたセッションを表す情報を前記要求元のクライアント装置に通知する過程と
を、さらに具備することを特徴とする請求項１又は２記載のワークフロー処理方法。
【請求項６】
クライアント装置が接続される複数のサーバ装置と、これらのサーバ装置間で共有されるセッション管理ファイルとを備えるワークフロー管理システムで使用される前記サーバ装置あって、
前記クライアント装置から送信されたセッションの実行要求を受信する手段と、
前記セッションの実行要求が受信された場合に、前記セッション管理ファイルに保持されているセッション情報をもとに当該セッションの所有者を判定する手段と、
前記判定の結果、前記セッションの所有者が他のサーバ装置だった場合には、前記要求元のクライアント装置に対し前記他のサーバ装置への再接続要求を送信する手段と
を具備することを特徴とするサーバ装置。
【請求項７】
前記セッションの所有者を判定する手段は、
生成されたセッションの識別情報を保持するキャッシュ手段と、
クライアント装置から送信されたセッションの実行要求が受信された場合に、当該セッションの識別情報が前記キャッシュ手段に保持されているか否かを判定する手段と、
前記判定の結果、前記実行要求されたセッションの識別情報が前記キャッシュ手段に保持されている場合には当該セッションの所有者を自サーバ装置と認識する手段と、
前記判定の結果、前記実行要求されたセッションの識別情報が前記キャッシュ手段に保持されていない場合には、前記セッション管理ファイルに保持されているセッション情報をもとに当該セッションの所有者を判定する手段と
を備えることを特徴とする請求項６記載のサーバ装置。
【請求項８】
前記ワークフロー管理システムが、複数のサーバ装置間で共有される再接続管理ファイルをさらに備える場合に、
クライアント装置に対し他のサーバ装置への再接続要求を送信する際に、当該再接続の対象となるセッションの情報を前記再接続管理ファイルに記憶させる手段と、
クライアント装置からセッションの生成要求を受信した場合に、新たなセッションを生成するために、過去に生成されたセッションをキャンセルする必要があるか否かを判定する手段と、
前記判定の結果、過去に生成されたセッションをキャンセルする必要がある場合に、前記再接続管理ファイルの記憶情報をもとに再接続の対象となっていないセッションをキャンセル候補として選択する手段と、
前記選択されたセッションをキャンセルし、代わりに新たなセッションを生成する手段と、
前記生成されたセッションの情報を前記生成要求元のクライアント装置に通知する手段と
を、さらに具備することを特徴とする請求項６又は７記載のサーバ装置。
【請求項９】
クライアント装置が接続される複数のサーバ装置と、これらのサーバ装置間で共有されるセッション管理ファイルと、前記複数のサーバ装置の処理負荷を管理するサーバ検索装置とを備えるワークフロー管理システムで使用される前記サーバ検索装置であって、
前記クライアント装置から送信される、接続先のサーバ装置を問い合わせる要求を受信する手段と、
前記受信された問い合わせ要求に応じ、所定の負荷分散アルゴリズムに従い接続先として適当なサーバ装置を決定する手段と、
前記決定されたサーバ装置を表す情報を、前記問い合わせ元のクライアント装置に対し通知する手段と
を具備することを特徴とするサーバ検索装置。
【請求項１０】
複数のサーバ装置を備えるワークフロー管理システムに接続され、前記複数のサーバ装置との間で複数回の通信を行うことで一つの仕事を実行するクライアント装置であって、
前記複数のサーバ装置の一つに対しセッションの実行要求を送信する手段と、
前記セッションの実行要求に対し、送信先のサーバ装置から他のサーバ装置への再接続要求が到来するか否かを監視する手段と、
前記再接続要求が到来した場合に、この再接続要求に応じ前記他のサーバ装置に対し再接続を行う手段と
を具備することを特徴とするクライアント装置。
【請求項１１】
前記ワークフロー管理システムが、前記各サーバ装置の処理負荷を管理するサーバ検索装置を備える場合に、
前記サーバ検索装置に対し接続先のサーバ装置を問い合わせる手段と、
前記問い合わせに対し、前記サーバ検索装置から接続先として適当なサーバ装置が通知された場合に、通知された接続先のサーバ装置に対しセッションの生成要求を送信する手段と、
前記セッションの生成要求に応じて要求先のサーバ装置から通知されるセッション情報を受信する手段と
を、さらに具備することを特徴とする請求項１０記載のクライアント装置。
【請求項１２】
自装置が使用するセッションとこのセッションの接続先となるサーバ装置との対応関係を表す情報を保持するキャッシュ手段と、
前記セッションの実行要求の送信に先立ち、前記キャッシュ手段に保持された情報をもとに前記セッションの実行要求の送信先となるサーバ装置を特定する手段と
を、さらに具備することを特徴とする請求項１０又は１１記載のクライアント装置。
【請求項１３】
それぞれコンピュータを備えクライアント装置が接続される複数のサーバ装置と、これらのサーバ装置間で共有されるセッション管理ファイルとを備えるワークフロー管理システムの前記サーバ装置で使用されるプログラムであって、
前記クライアント装置から送信されたセッションの実行要求を受信する処理と、
前記セッションの実行要求が受信された場合に、前記セッション管理ファイルに保持されているセッション情報をもとに当該セッションの所有者を判定する処理と、
前記判定の結果、前記セッションの所有者が他のサーバ装置だった場合には、前記実行要求元のクライアント装置に対し前記他のサーバ装置への再接続要求を送信する処理と
を、前記コンピュータに実行させるサーバ装置のプログラム。
【請求項１４】
前記セッションの所有者を判定する処理は、
生成されたセッションの識別情報をキャッシュ手段に記憶させる処理と、
クライアント装置から送信されたセッションの実行要求が受信された場合に、当該セッションの識別情報が前記キャッシュ手段に記憶されているか否かを判定する処理と、
前記判定の結果、前記実行要求されたセッションの識別情報が前記キャッシュ手段に記憶されている場合には当該セッションの所有者を自サーバ装置と認識する処理と、
前記判定の結果、前記実行要求されたセッションの識別情報が前記キャッシュ手段に記憶されていない場合には、前記セッション管理ファイルに保持されているセッション情報をもとに当該セッションの所有者を判定する処理と
を、前記コンピュータに実行させる請求項１３記載のサーバ装置のプログラム。
【請求項１５】
前記ワークフロー管理システムが、複数のサーバ装置間で共有される再接続管理ファイルをさらに備える場合に、
クライアント装置に対し他のサーバ装置への再接続要求を送信する際に、当該再接続の対象となるセッションの情報を前記再接続管理ファイルに記憶させる処理と、
クライアント装置からセッションの生成要求を受信した場合に、新たなセッションを生成するために、過去に生成されたセッションをキャンセルする必要があるか否かを判定する処理と、
前記判定の結果、過去に生成されたセッションをキャンセルする必要がある場合に、前記再接続管理ファイルの記憶情報をもとに再接続の対象となっていないセッションをキャンセル候補として選択する処理と、
前記選択されたセッションをキャンセルし、代わりに新たなセッションを生成する処理と、
前記生成されたセッションの情報を前記生成要求元のクライアント装置に通知する処理と
を、前記コンピュータにさらに実行させる請求項１３又は１４記載のサーバ装置のプログラム。
【請求項１６】
クライアント装置が接続される複数のサーバ装置と、これらのサーバ装置間で共有されるセッション管理ファイルと、前記複数のサーバ装置の処理負荷をコンピュータにより管理するサーバ検索装置とを備えるワークフロー管理システムの前記サーバ検索装置で使用されるプログラムであって、
前記クライアント装置から送信される、接続先のサーバ装置を問い合わせる要求を受信する処理と、
前記受信された問い合わせ要求に応じ、所定の負荷分散アルゴリズムに従い接続先として適当なサーバ装置を決定する処理と、
前記決定されたサーバ装置を表す情報を、前記問い合わせ元のクライアント装置に対し通知する処理と
を、前記コンピュータに実行させるサーバ検索装置のプログラム。
【請求項１７】
複数のサーバ装置を備えるワークフロー管理システムに接続され、前記複数のサーバ装置との間で複数回の通信を行うことで一つの仕事をコンピュータにより実行するクライアント装置で使用されるプログラムであって、
前記複数のサーバ装置の一つに対しセッションの実行要求を送信する処理と、
前記セッションの実行要求に対し、送信先のサーバ装置から他のサーバ装置への再接続要求が到来するか否かを監視する処理と、
前記再接続要求が到来した場合に、この再接続要求に応じ前記他のサーバ装置に対し再接続を行う処理と
を、前記コンピュータに実行させるクライアント装置のプログラム。
【請求項１８】
前記ワークフロー管理システムが、前記各サーバ装置の処理負荷を管理するサーバ検索装置を備える場合に、
前記サーバ検索装置に対し接続先のサーバ装置を問い合わせる処理と、
前記問い合わせに対し、前記サーバ検索装置から接続先として適当なサーバ装置が通知された場合に、通知された接続先のサーバ装置に対しセッションの生成要求を送信する処理と、
前記セッションの生成要求に応じて要求先のサーバ装置から通知されるセッション情報を受信する処理と
を、前記コンピュータにさらに実行させる請求項１７記載のクライアント装置のプログラム。
【請求項１９】
自装置が使用するセッションとこのセッションの接続先となるサーバ装置との対応関係を表す情報をキャッシュ手段に保持させる処理と、
前記セッションの実行要求の送信に先立ち、前記キャッシュ手段に保持された情報をもとに前記セッションの実行要求の送信先となるサーバ装置を特定する処理と
を、前記コンピュータにさらに実行させる請求項１７又は１８記載のクライアント装置のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、クライアント装置が複数のサーバ装置との間で逐次的又は並列的に複数回の通信を行うことで一つの仕事を処理するワークフロー処理システムと、このシステムで使用されるサーバ装置、サーバ検索装置及びクライアント装置、並びにこれらの装置で使用されるプログラムに関する。
【背景技術】
【０００２】
ワークフローは、一つの仕事に対し複数のクライアントが次々と関与することが特徴である。このため、ワークフロー処理システムでは、ある仕事に関連する「状態」が保持される。そのため、負荷分散装置を使用した場合、複数のクライアントからの要求が複数のサーバ装置に公平に振り分けられた場合、この状態（仕事）が存在するサーバ装置（電子計算機）とは異なる他のサーバ装置に割り振られてしまうことがある。
【０００３】
このため、ワークフローにおける負荷分散においては、仕事を達成するために行われる各通信（リクエスト）において、前回と異なるサーバ装置に通信（リクエスト）が割り当てられた場合、その仕事に関連する状態を保持するサーバ装置から、新しい割当先のサーバ装置との間でこの状態を共有するか又は引き渡す必要がある。また、複数のサーバ装置に対しリクエストの要求が同時に来た場合に、データの不整合が生じないようにする必要がある。
【０００４】
以下、複数の通信を束ねる単位をセッションと呼び、またある仕事に関連する状態をセッション情報と呼ぶことにする。セッション情報とは、例えばセッション識別子、サーバ識別子、セッションに付随する情報を含む。また、セッションはクライアントの要求に基づきサーバ装置内で生成・実行されるものとする。
【０００５】
そこで、従来では例えば次のような各種システムが提案されている。  
第１の提案は、セッション情報を複数の電子計算機間で共有する必要がある分野において、あるセッションに関連した通信が前回と異なる電子計算機に割り当てられた場合に、セッション情報を新たな電子計算機に引き継ぐものである（例えば、特許文献１を参照。）。このため、通信ごとにセッション情報を電子計算機間で交換する必要があり、ネットワークの負荷が増大すると共に転送に伴う処理が必要となり、処理効率が悪い。また、負荷分散におけるクライアントの役割は、２回目の処理要求を発行する際に、電子計算機から返却されたサーバ識別子に基づいて前回の接続対象との違いを判断し、接続先を決定するものであり、セッション情報は複数の電子計算機間で情報交換される。
【０００６】
第２の提案は、上記第１の提案の処理効率を改善するもので、有限のセッション情報の組み合わせに対して符号を割り当て、その符号のみを復元するものである（例えば、特許文献２を参照。）。しかし、この提案では、セッションに関連付けて保持する情報が既知でなければならず、かつ予め符号を割り当てておく必要があるため、任意の情報を関連付けることができない。
【０００７】
【特許文献１】特開２０００−１６３３６９
【０００８】
【特許文献２】特開２００２−３３４０５７
【発明の開示】
【発明が解決しようとする課題】
【０００９】
要するに、従来のワークフロー処理システムは以下のような課題を有している。  
第１に、他のサーバ装置の処理能力に空きがあるにも拘わらず、特定のサーバ装置の処理不足により、利用者にサービスが提供できない点。  
第２に、ある通信（リクエスト）が、前回と異なるサーバ装置に割り当てられた場合に、セッション情報の保存、復元又は転送等を行わなければならないため、処理効率が劣化する点。  
新しい割当先のサーバ装置上においてセッション情報の復元処理を行っている最中に、新たな通信要求が元のサーバ装置に発生した場合、処理に矛盾が発生する点。
【００１０】
この発明は上記事情に着目してなされたもので、その目的とするところは、サーバ装置間におけるセッションの引き渡しや復元処理等を不要にし、これによりワークフロー処理効率の向上を図ったワークフロー処理方法とこの方法を実現するためのサーバ装置、サーバ検索装置及びクライアント装置、並びにこれらの装置で使用されるプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するためにこの発明は、クライアント装置が、複数のサーバ装置とこれらのサーバ装置間で共有されるセッション管理ファイルとを備えるワークフロー管理システムとの間で複数回の通信を行うことで一つの仕事を実行する際に、上記クライアント装置から上記複数のサーバ装置の一つに対しセッションの実行要求を送信し、このセッションの実行要求を受け取ったサーバ装置が、上記セッション管理ファイルに保持されているセッションに関する情報をもとに当該セッションの所有者を判定する。そして、この判定の結果、上記セッションの所有者が他のサーバ装置だった場合には、上記実行要求元のクライアント装置に対し上記他のサーバ装置への再接続を要求し、この再接続の要求に応じてクライアント装置が上記他のサーバ装置に対し再接続を行うようにしたものである。
【００１２】
したがってこの発明によれば、クライアント装置によるセッションの実行要求が前回の要求時とは異なるサーバ装置へ伝送された場合には、クライアント装置からセッションを所有する他のサーバ装置に対し再接続、つまりリダイレクトが実行される。このため、サーバ装置は他のサーバ装置間でセッションの引き渡しや復元処理を行う必要がなくなり、これによりワークフローの処理効率を高めることが可能となる。
【００１３】
またこの発明は、クライアント装置が新たなセッションの生成を要求する際に、サーバ検索装置に対し接続先のサーバ装置を問い合わせる。そして、この問い合わせに応じ、サーバ検索装置が所定の負荷分散アルゴリズムに従い接続先として適当なサーバ装置を決定し、決定されたサーバ装置に関する情報を前記問い合わせ元のクライアント装置に対し通知する。そして、クライアント装置は上記通知された接続先のサーバ装置に対しセッションの生成を要求することを特徴とする。  
このようにすることで、クライアント装置から発生する新規のセッション生成要求は、サーバ検索装置の負荷分散処理により複数のサーバ装置に均等に割り当てられる。このため、他のサーバ装置の処理能力に余裕があるにも拘わらず、特定のサーバ装置にセッションが集中し、この結果クライアントにサービスを提供できなくなると云った不具合は解消される。
【００１４】
さらにこの発明は、クライアント装置に、所有中のセッションの識別情報を保持するキャッシュ手段を設け、セッションの実行要求の送信に先立ち、このキャッシュ機能に保持されているセッションの識別情報をもとにセッションの実行を要求するサーバ装置を特定することも特徴とする。  
このようにすると、クライアント装置は、一度接続が確立されたセッションの実行を要求する際には、サーバ検索装置への問い合わせを省略して、サーバ装置に対し即時セッションの実行要求を送信することが可能となり、これにより通信処理やサーバ検索処理に要するオーバヘッドが削減されて、ワークフロー処理の効率向上が図られる。
【００１５】
さらにこの発明は、各サーバ装置に、生成されたセッションの識別情報を保持するキャッシュ手段を設け、クライアント装置から受け取ったセッションの識別情報が上記キャッシュ手段に保持されているか否かを先ず判定する。この判定の結果、上記セッションの識別情報がキャッシュ手段に保持されている場合には当該セッションの所有者を自サーバ装置と認識し、一方上記セッションの識別情報がキャッシュ手段に保持されていない場合には、セッション管理ファイルに保持されているセッション情報をもとに当該セッションの所有者を判定するようにしたものである。  
このようにすることで、クライアント装置から要求されたセッションがサーバ装置内のキャッシュに記憶されていない場合にのみ、セッション管理ファイルが検索されることになる。このため、セッションの実行要求が到来するごとに常にセッション管理ファイルを検索する場合に比べ、セッションを所有するサーバ装置を特定するための処理を簡単化してサーバ装置の処理負担を軽減することができる。
【００１６】
さらにこの発明は、複数のサーバ装置間で共有される再接続管理ファイルをさらに設け、サーバ装置がクライアント装置に対し他のサーバ装置への再接続を要求する際に、当該再接続の対象となるセッションの情報を上記再接続管理ファイルに記憶させる。そして、クライアント装置からの新規のセッション生成要求に対し、過去に生成されたセッションをキャンセルする必要がある場合に、上記再接続管理ファイルに記憶された情報をもとに再接続の対象となっていないセッションをキャンセル候補として選択する。そして、この選択されたセッションをキャンセルし、代わりに新たなセッションを生成して、この生成されたセッションを表す情報を要求元のクライアント装置に通知するようにしたものである。  
このようにすると、サーバ装置において、リダイレクト中のセッションがキャッシュアウトされることはなくなる。このため、クライアント装置がサーバ装置に対しセッション実行要求を送信した場合に発生するリダイレクトの回数は最大１回に抑制されることになり、この結果通信処理のオーバヘッドが削減される。
【発明の効果】
【００１７】
要するにこの発明によれば、サーバ装置間におけるセッションの引き渡しや復元処理等を不要にし、これによりワークフロー処理効率の向上を図ったワークフロー処理方法とこの方法を実現するためのサーバ装置、サーバ検索装置及びクライアント装置、並びにこれらの装置で使用されるプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１８】
（第１の実施形態）  
図１は、この発明に係わるワークフロー処理システムの第１の実施形態を示す概略構成図である。このシステムは、複数のクライアント装置ＣＬ１〜ＣＬｎを、複数のサーバ装置ＳＶ１〜ＳＶｍに対し通信ネットワークＮＷを介して接続可能とすると共に、サーバ検索装置ＳＳ及びセッション管理ファイルＤＢ１を設けたものである。
【００１９】
サーバ検索装置ＳＳは、上記各クライアント装置ＣＬ１〜ＣＬｎから通信ネットワークＮＷを介してアクセス可能となっている。そして、クライアント装置ＣＬ１〜ＣＬｎから接続先となるサーバ装置ＳＶ１〜ＳＶｍの位置についての問い合わせが到来した場合に、上記接続先をラウンドロビン法等の負荷分散アルゴリズムに従いサーバ装置ＳＶ１〜ＳＶｍに均等に振り分ける。なお、負荷分散アルゴリズムとしては、他にランダム法や負荷状況に応じた振り分け法（Dirk Slama,Jason Garbis, Perry Russel著、株式会社東洋情報システム＋ＮＴＴ情報流通プラットフォーム研究所訳  株式会社ピアソン・エデュケーション  Enterprise CORBAISBN4-89471-151-6）を使用可能である。
【００２０】
セッション管理ファイルＤＢ１は、通信ネットワークＮＷを介して上記サーバ装置ＳＶ１〜ＳＶｍ間で共有されるもので、サーバ装置ＳＶ１〜ＳＶｍにおいて使用されるセッションの各々について、セッションを各サーバ装置ＳＶ１〜ＳＶｍが一意に識別することが可能なセッション識別子に対応付けて当該セッションを使用するサーバ装置の識別情報（サーバ識別子）と、セッションに関連しアプリケーションにより利用される情報（セッション情報）を記憶する。図４にその記憶情報の一例を示す。
【００２１】
ところで、クライアント装置ＣＬ１〜ＣＬｎは例えばパーソナル・コンピュータからなるもので、次のように構成される。図２はその構成を示す機能ブロック図である。すなわち、中央処理ユニット（ＣＰＵ：Central Processing Unit）１１を備える。このＣＰＵ１１には、バス１２を介してプログラムメモリ１３と、データメモリ１４と、キャッシュメモリＣＣ１〜ＣＣｎと、通信インタフェース１６と、入出力インタフェース１７がそれぞれ接続されている。
【００２２】
データメモリ１４は、記憶媒体として例えばハードディスクまたはＲＡＭを使用したもので、各種処理の過程において種々のデータを一時保存するために使用される。キャッシュメモリＣＣ１〜ＣＣｎはＦＩＦＯ、ＬＲＵ、ＬＩＬＯ等を使用するもので、サーバ装置ＳＶ１〜ＳＶｍから割り当てられたセッションと当該セッションの所有者となるサーバ装置との対応関係を表す情報を保存する。
【００２３】
通信インタフェース（通信Ｉ／Ｆ）１６は、ＣＰＵ１１の制御の下、サーバ検索装置ＳＳ及びサーバ装置ＳＶ１〜ＳＶｍとの間で、通信ネットワークＮＷにより規定される通信プロトコル、例えばＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）に従い通信を行う。入出力インタフェース１７は、ＣＰＵ１１の制御の下、入力部１８及び表示部１９との間の情報入力及び表示処理を行う。
【００２４】
プログラムメモリ１３には、この発明に係わる制御プログラムとして、サーバ検索制御プログラム１３ａと、セッション生成・実行要求制御プログラム１３ｂと、再接続制御プログラム１３ｃが格納されている。
サーバ検索制御プログラム１３ａは、新規のセッションの生成を要求する際に、接続先となるサーバ装置の位置をサーバ検索装置ＳＳに問い合わせ、この問い合わせに対しサーバ検索装置ＳＳから通知される接続先サーバ情報を受信する。
【００２５】
セッション生成・実行要求制御プログラム１３ｂは、上記サーバ検索装置ＳＳから通知される接続先サーバ情報に応じ、指定されたサーバ装置に対する接続処理を行ってセッション生成要求を送信する。そして、この生成要求に対しサーバ装置から通知されるセッションに関する情報を受信し、受信されたセッションに関する情報、つまりセッション識別子と接続先サーバ装置の識別子とを相互に対応付けてキャッシュメモリＣＣ１〜ＣＣｎに保持させる。またセッション生成・実行要求制御プログラム１３ｂは、セッションを実行する際に、上記キャッシュメモリＣＣ１〜ＣＣｎに保存されているセッションに関する情報をもとにサーバ装置に対しセッション実行要求を送信する。
【００２６】
再接続制御プログラム１３ｃは、上記セッション実行要求の送信後にサーバ装置からのリダイレクト要求の到来を監視する。そして、リダイレクト要求が受信された場合に、キャッシュメモリＣＣ１〜ＣＣｎの記憶情報をこのリダイレクト要求により指定された新たなサーバ装置とセッションとの対応関係を表す情報に書き換えた後、上記新たなサーバ装置に対し再接続を行ってセッション実行要求を送信する。
【００２７】
一方、サーバ装置ＳＶ１〜ＳＶｍは次のように構成される。図３はその構成を示す機能ブロック図である。サーバ装置ＳＶ１〜ＳＶｍも上記クライアント装置ＣＬ１〜ＣＬｎと同様に中央処理ユニット（ＣＰＵ：Central Processing Unit）２１を備える。このＣＰＵ２１には、バス２２を介してプログラムメモリ２３と、データメモリ２４と、キャッシュメモリＳＣ１〜ＳＣｎと、通信インタフェース２６がそれぞれ接続されている。
【００２８】
データメモリ２４は、記憶媒体として例えばハードディスクまたはＲＡＭを使用したもので、ワークフロー処理の過程において生成される種々のデータを一時保存するために使用される。キャッシュメモリＳＣ１〜ＳＣｎはＦＩＦＯ、ＬＲＵ、ＬＩＬＯ等を使用するもので、自己のサーバ装置が所有するセッションを表す情報を保存する。
【００２９】
通信インタフェース（通信Ｉ／Ｆ）２６は、ＣＰＵ２１の制御の下、クライアント装置ＣＬ１〜ＣＬｎ及びセッション管理ファイルＤＢ１との間で、通信ネットワークＮＷにより規定される通信プロトコル、例えばＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）に従い通信を行う。
【００３０】
プログラムメモリ２３には、この発明に係わる制御プログラムとして、セッション生成制御プログラム２３ａと、セッション所有者判定プログラム２３ｂと、セッション実行制御プログラム２３ｃと、リダイレクト要求制御プログラム２３ｄが格納されている。
【００３１】
セッション生成制御プログラム２３ａは、クライアント装置ＣＬ１〜ＣＬｎからセッション生成要求が到来した場合に、キャッシュメモリＭＣ１〜ＭＣｍの空き容量をもとにサーバ装置のリソースに空きがあるか否かを判定する。そして、空きがある場合には、ワークフロー処理に必要なセッション用領域（セッション情報）を生成し、セッションを各サーバ装置ＳＶ１〜ＳＶｍが一意に識別することが可能なセッション識別子と、上記セッション情報とを、キャッシュメモリＭＣ１〜ＭＣｍ及びセッション管理ファイルＤＢ１にそれぞれ格納した後、生成要求元のクライアント装置ＣＬ１〜ＣＬｎに送信する。  
これに対しリソースに空きがない場合には、キャッシュメモリＭＣ１〜ＭＣｍに保存されている複数のセッションのうち、最も古い（使用されていない期間が最も長い）セッションを選択してこれをキャンセルする。このキャンセル処理は、キャッシュメモリＭＣ１〜ＭＣｍから該当するセッションの情報をキャッシュアウトする処理と、セッション管理ファイルＤＢ１における該当するセッションの所有者を表す情報を“ＮＵＬＬ”に変更する処理とからなる。そして、このキャンセル処理により空きとなったリソースを利用してセッション情報を生成し、そのセッション識別子及びセッション情報をキャッシュメモリＭＣ１〜ＭＣｍ及びセッション管理ファイルＤＢ１にそれぞれ格納した後、生成要求元のクライアント装置ＣＬ１〜ＣＬｎに送信する。
【００３２】
セッション所有者判定プログラム２３ｂは、クライアント装置ＣＬ１〜ＣＬｎからセッション実行要求が到来した場合に、要求されたセッション識別子が自身のキャッシュメモリＭＣ１〜ＭＣｍに保存されているか否かを判定する。この判定の結果、保存されていない場合には、セッション管理ファイルＤＢ１を検索して上記セッションを所有しているサーバ装置の識別情報を読み出す。
【００３３】
セッション実行制御プログラム２３ｃは、上記セッション所有者判定プログラム２３ｂにより、クライアント装置ＣＬ１〜ＣＬｎから実行を要求されたセッションが自身のキャッシュメモリＭＣ１〜ＭＣｍに保存されていると判定された場合に、当該セッション情報を利用して処理を実行する。
【００３４】
リダイレクト要求制御プログラム２３ｄは、上記セッション所有者判定プログラム２３ｂにより、セッション管理ファイルＤＢ１から読み出された、セッションを所有するサーバ装置の識別情報をもとに、実行要求元のクライアント装置ＣＬ１〜ＣＬｎに対しリダイレクト要求を送信する。
【００３５】
次に、以上のように構成されたシステムの動作を説明する。  
ここでは、物品購入に伴う社内決済処理のワークフローを例にとって説明する。図９はこのワークフロー処理のシーケンス図である。また、図５及び図６、図７及び図８はそれぞれ、このワークフロー処理を実現するためのクライアント装置ＣＬ１〜ＣＬｎ及びサーバ装置ＳＶ１〜ＳＶｍの制御手順と制御内容を示すフローチャートである。
【００３６】
いま購入起案者が、クライアント装置ＣＬ１において発注伝票の起票操作を行ったとする。この場合クライアント装置ＣＬ１は、ステップ５ａで上記起案処理の要求を検出してステップ５ｂに移行し、ここで発注伝票の起票処理を実行する。そして、ステップ５ｃにおいて、接続先となるサーバ装置の位置の問い合わせ要求をサーバ検索装置ＳＳに対し送信する。
【００３７】
サーバ検索装置ＳＳは、クライアント装置ＣＬ１から問い合わせ要求が到来すると、ラウンドロビン等の負荷分散アルゴリズムに従い、クライアント装置ＣＬ１〜ＣＬｎからの接続要求がサーバ装置ＳＶ１〜ＳＶｍに対し均等に割り振られるように接続先のサーバ装置を決定する。そして、決定されたサーバ装置（例えばＳＶ１）を表す識別子を要求元のクライアント装置ＣＬ１に返送する。
【００３８】
クライアント装置ＣＬ１は、ステップ５ｄで上記サーバ検索装置ＳＳからの返送を待ち、サーバ識別子の返送を検出するとステップ５ｅでこのサーバ識別子を受信する。続いてクライアント装置ＣＬ１は、上記受信されたサーバ識別子に基づいて、ステップ５ｆにおいて接続先となるサーバ装置ＳＶ１に対する接続を行ったのち、セッション生成要求を送信する。
【００３９】
サーバ装置ＳＶ１〜ＳＶｍは、図７に示すようにステップ７ａ及びステップ７ｂによりセッション生成要求及びセッション実行要求の到来を監視している。この状態で、上記クライアント装置ＣＬ１からセッション生成要求が到来すると、サーバ装置ＳＶ１はステップ７ｃでキャッシュメモリＭＣ１を検索し、リソースに空きがあるか否かをステップ７ｄで判定する。この判定の結果、リソースに余裕がある場合には、ステップ７ｇに移行してここで新たにセッションを生成する。
【００４０】
これに対しリソースに空きがない場合には、サーバ装置ＳＶ１はステップ７ｅに移行し、ここでキャッシュメモリＭＣ１に保存されている複数のセッションのうち使用されていない期間が最も長いセッションを一つ選択し、これをキャッシュアウトする。またそれと共に、ステップ７ｆにより、セッション管理ファイルＤＢ１において該当するセッションの所有者を表す情報を“ＮＵＬＬ”に変更し、これらの処理を終了した後にステップ７ｇに移行してここで新たにセッションを生成する。
【００４１】
上記新たなセッションを生成するとサーバ装置ＳＶ１は、上記生成された新たなセッションの識別子をステップ７ｈによりキャッシュメモリＭＣ１に保存すると共に、上記生成された新たなセッションに関する情報、つまりセッション識別子Ｓ１と、当該セッションを所有するサーバ装置ＳＶ１の識別子と、セッション情報を、ステップ７ｉによりセッション管理ファイルＤＢ１に記憶させる。そして、これらの処理を終了した後、生成要求元のクライアント装置ＣＬ１に対し上記セッション識別子Ｓ１を送信する。
【００４２】
生成要求元のクライアント装置ＣＬ１は、ステップ５ｇで上記サーバ装置ＳＶ１からのセッション識別子の返送を監視し、このセッション識別子Ｓ１をステップ５ｈで受信する。そして、受信されたセッション識別子と当該セッションを所有するサーバ装置ＳＶ１の識別子とを相互に対応付けて、ステップ５ｉによりキャッシュメモリＣＣ１に保存する。
【００４３】
上記起票処理に応じたセッション生成要求に応じ、サーバ装置ＳＶ１は図示しない複数の外部企業のサーバ装置に対し見積の作成を依頼する。そして、この依頼に対し外部企業のサーバ装置が返送した見積を、セッション情報として保存すると共に要求元のクライアント装置ＣＬ１へ転送する。
【００４４】
なお、他のクライアント装置（例えばＣＬ２）において起案処理が行われた場合にも、上記クライアント装置ＣＬ１の場合と同様の手順で、サーバ検索装置ＳＳにおけるサーバ装置ＳＶ１〜ＳＶｍへのセッションの均等割り振り、割り振られたサーバ装置（例えばＳＶ２）における新規セッションの生成とその通知処理が行われる。
【００４５】
さて、クライアント装置ＣＬ１において、起案者が上記サーバ装置ＳＶ１から転送された複数の見積を検討したのち、最も安価な外部企業を選択して発注処理（セッションの実行）を行ったとする。  
この場合クライアント装置ＣＬ１は、図６に示すようにステップ５ｊでセッションの実行を検出するとステップ５ｋに移行し、ここで先ずキャッシュメモリＣＣ１を検索して、該当するセッション識別子Ｓ１に対応するサーバ装置ＳＶ１の識別子が保存されているか否かをステップ５ｍで判定する。この判定の結果、サーバ装置ＳＶ１の識別子が保存されていれば、ステップ５ｎにより当該サーバ装置ＳＶ１に対し接続したのちセッション実行要求を送信する。なお、キャッシュアウト等の理由により、キャッシュメモリＣＣ１において接続すべきサーバ装置ＳＶ１の識別子が見つからなかったとする。この場合クライアント装置ＣＬ１は、ステップ５ｃに戻ってサーバ検索装置ＳＳに対し接続先となるサーバ装置の問い合わせを行う。
【００４６】
一方サーバ装置ＳＶ１は、セッション実行要求を受信するとステップ７ａから図８に示すステップ８ａに移行する。そして、先ずキャッシュメモリＭＣ１を検索し、上記要求されたセッションを自装置が所有しているか否かをステップ８ｂで判定する。この判定の結果、要求されたセッションを所有している場合には、ステップ８ｃに移行してここでセッションを実行する。例えば、クライアント装置ＣＬ１から要求された発注要求に対する決裁依頼を、決裁者が使用するクライアント装置（例えばＳＶ３）に対し、例えば電子メールを用いて通知する。決裁依頼には、発注伝票に加えてセッション識別子を含める。なお、上記セッションの実行処理後、サーバ装置ＳＶ１はステップ８ｄによりセッション管理ファイルＤＢ１を更新する。
【００４７】
上記決裁依頼を受信した決裁者は、クライアント装置ＣＬ３からサーバ装置ＳＶ１にアクセスして発注の内容を確認したのち承認処理を行う。このとき、決裁者が使用するクライアント装置ＣＬ３は起案者が使用するクライアント装置ＣＬ１と異なる。このため、決裁者が使用するクライアント装置ＣＬ３のキャッシュメモリＣＣ３には、上記決裁依頼で通知されたセッション識別子Ｓ１は保存されていない。
【００４８】
そこで決裁者のクライアント装置ＣＬ３は、図５に示したようにステップ５ｃにより、サーバ検索装置ＳＳに向けて接続先となるサーバ装置の位置の問い合わせ要求を送信し、接続先となるサーバ装置の識別子を受け取る。そして、この指定されたサーバ装置（例えばＳＶ３）への接続を行って、決裁処理のための実行要求をセッションＳ１を用いて送信する。
【００４９】
上記セッションＳ１の実行要求を受信したサーバ装置ＳＶ３は、図８に示すようにステップ８ａでキャッシュメモリＭＣ３を検索して上記セッションＳ１の識別子が保存されているか否かをステップ８ｂで判定する。この判定の結果、いま上記セッションＳ１の識別子はキャッシュメモリＭＣ３には保存されていないので、サーバ装置ＳＶ３はステップ８ｅに移行してここでセッション管理ファイルＤＢ１を検索し、このセッション管理ファイルＤＢ１に上記セッションＳ１を所有するサーバ装置が記憶されているか否かを判定する。そして、記憶されていれば、上記セッションＳ１を所有するサーバ装置、ここではサーバ装置ＳＶ１の識別子を読み出す。そして、この読み出されたサーバ装置ＳＶ１の識別子を含むリダイレクト要求を、ステップ８ｇにより上記実行要求元のクライアント装置ＣＬ３に送信する。
【００５０】
上記リダイレクト要求を受信するとクライアント装置ＣＬ３は、図６に示すようにステップ５ｐからステップ５ｑに移行し、ここで通知されたサーバ装置ＳＶ１の識別子をセッションＳ１の識別子に対応付けてキャッシュメモリＣＣ１に記憶する。そして、ステップ５ｒによりサーバ装置ＳＶ１に対し再接続したのち、当該サーバ装置ＳＶ１へセッションＳ１により実行要求を送信する。
【００５１】
サーバ装置ＳＶ１は、上記セッションＳ１により実行要求を受信すると、ステップ８ａでキャッシュメモリＣＣ１を検索して、当該セッションＳ１を所有しているか否かをステップ８ｂにより判定する。この判定の結果、所有していればステップ８ｃに移行し、ここで上記要求されたセッションを実行する。
【００５２】
なお、クライアント装置ＣＬ１〜ＣＬｎからセッションの実行要求を受信した場合に、サーバ装置ＳＶ１〜ＳＶｍは先に述べたようにステップ８ｅによりセッション管理ファイルＤＢ１を検索して当該セッションの所有者を探す。しかし、要求されたセッションを所有するサーバ装置の識別子が“ＮＵＬＬ”に設定されていたとする。この場合サーバ装置ＳＶ１〜ＳＶｍは、当該セッションがいずれのサーバ装置にも保持されていないと判断し、ステップ８ｈに移行してここで上記セッション管理ファイルＤＢ１から、上記要求されたセッションを復元する。そして、復元されたセッション識別子と当該セッションを所有するサーバ装置の識別子をステップ８ｉでキャッシュメモリＭＣ１〜ＭＣｍに保存すると共に、ステップ８ｊによりセッション管理ファイルＤＢ１中の当該セッションに対応するサーバ識別子として自己のサーバ装置の識別子を書き込み、しかるのちステップ８ｋによりセッションを実行する。
【００５３】
以上述べたように第１の実施形態では、クライアント装置ＣＬ３からサーバ装置ＳＶ３に対しセッションの実行要求を送信した場合に、このセッションの実行要求を受け取ったサーバ装置ＳＶ３が、セッション管理ファイルＤＢ１に保持されているセッションに関する情報をもとに当該セッションを所有するサーバ装置を判定する。そして、この判定の結果、上記セッションを所有するサーバ装置が他のサーバ装置ＳＶ１だった場合には、上記実行要求元のクライアント装置ＣＬ３に対し上記他のサーバ装置ＳＶ１への再接続を要求するリダイレクト要求を送信し、このリダイレクト要求に応じてクライアント装置ＣＬ３が上記他のサーバ装置ＳＶ１に対し再接続を行ってセッション実行要求を送信するようにしている。
【００５４】
したがって、クライアント装置ＣＬ１〜ＣＬｎによるセッションの実行要求が前回の要求時とは異なるサーバ装置ＳＶ１〜ＳＶｍへ伝送された場合には、当該セッションが存在するサーバ装置にリダイレクトされ、このリダイレクトされたサーバ装置で当該セッションが実行される。このため、サーバ装置間でセッションの引き渡しや復元処理が不要となり、これによりワークフローの処理効率を高めることが可能となる。
【００５５】
また、クライアント装置ＣＬ１〜ＣＬｎが新たなセッションの生成を要求する際に、サーバ検索装置ＳＳに対し接続先のサーバ装置を問い合わせる。そして、この問い合わせに応じ、サーバ検索装置ＳＳがラウンドロビン等の負荷分散アルゴリズムに従い、上記要求を複数のサーバ装置ＳＶ１〜ＳＶｍに均等に割り分けるようにしている。したがって、他のサーバ装置の処理能力に余裕があるにも拘わらず、特定のサーバ装置にセッションが集中し、この結果クライアントにサービスを提供できなくなると云った不具合は解消される。
【００５６】
さらに、クライアント装置ＣＬ１〜ＣＬｎに、所有中のセッションの識別情報を保持するキャッシュメモリＣＣ１〜ＣＣｎを設け、セッションの実行要求の送信に先立ち、このキャッシュメモリＣＣ１〜ＣＣｎに保持されているセッション識別子をもとにセッションの実行を要求するサーバ装置を特定するようにしている。したがって、クライアント装置ＣＬ１〜ＣＬｎは、一度接続が確立されたセッションの実行を要求する場合には、サーバ検索装置ＳＳへの問い合わせを省略して、サーバ装置に対し即時セッションの実行要求を送信することが可能となる。このため、通信処理やサーバ検索処理に要するオーバヘッドは削減され、これによりワークフロー処理の効率を高めることができる。
【００５７】
（第２の実施形態）  
この発明の第２の実施形態は、複数のサーバ装置間で共有されるリダイレクト管理ファイルをさらに設け、サーバ装置がクライアント装置に対し他のサーバ装置への再接続を要求する際に、当該再接続の対象となるセッションの情報を上記再接続管理ファイルに記憶させる。そして、クライアント装置からの新規のセッション生成要求に対し、過去に生成されたセッションをキャンセルする必要がある場合に、上記リダイレクト管理ファイルに記憶された情報をもとにリダイレクトの対象となっていないセッションを選択する。そして、この選択されたセッションをキャンセルし、新たなセッションを生成して要求元のクライアント装置に通知するようにしたものである。
【００５８】
図１０は、この発明に係わるワークフロー処理システムの第２の実施形態を示す概略構成図である。同図に示すように、このシステムはリダイレクト管理ファイルＤＢ２を備えている。このリダイレクト管理ファイルＤＢ２は、通信ネットワークＮＷを介してサーバ装置ＳＶ１〜ＳＶｍ間で共有されるもので、リダイレクト要求の送信先となるクライアント装置の識別子と、リダイレクトの対象となるセッションの識別子とを相互に対応付けて記憶する。図１５（ａ），（ｂ）にその記憶情報の一例を示す。
【００５９】
図１１は、この発明の第２の実施形態に係わるサーバ装置ＳＶ１〜ＳＶｍの機能構成を示すブロック図である。なお、同図において前記図３と同一部分には同一符号を付して詳しい説明は省略する。
プログラムメモリ２３には、この発明に係わる制御プログラムとして、新たにキャッシュ制御プログラム２３ｅが格納されている。このキャッシュ制御プログラム２３ｅは、新たなセッションの生成のために古いセッションをキャンセルする必要がある場合に、キャッシュメモリＣＣ１〜ＣＣｍに保存されている各セッションのうち使用されていない期間が長い順にセッションを選択する。そして、そのセッション識別子をキーにリダイレクト管理ファイルＤＢ２をアクセスすることにより、上記選択されたセッションがリダイレクト中か否かを判定する。
この判定の結果、リダイレクト中のセッションについてはキャッシュアウトの対象から外し、リダイレクト中ではないセッションのうち使用されていない期間が最も長いセッションを選択してこれをキャンセルする。このキャンセル処理は、キャッシュメモリＭＣ１〜ＭＣｍから該当するセッションの情報をキャッシュアウトする処理と、セッション管理ファイルＤＢ１における該当するセッションの所有者を表す情報を“ＮＵＬＬ”に変更する処理とからなる。
【００６０】
次に、以上のように構成されたシステムの動作を、サーバ装置ＳＶ１〜ＳＶｍの制御手順に従い説明する。図１４はこのシステムの動作シーケンスを示す図、図１２及び図１３はサーバ装置の制御手順と制御内容を示すフローチャートである。なお、同図において前記図７及び図８と同一部分には同一符号を付して詳しい説明は省略する。
【００６１】
先ず、リダイレクト管理ファイルＤＢ２への情報の登録及びその削除動作は次のように行われる。  
すなわち、クライアント装置ＣＬ３からセッションＳ１の実行要求を受信すると、サーバ装置ＳＶ３は図１３に示すようにステップ８ａでキャッシュメモリＭＣ３を検索して上記セッションＳ１の識別子が保存されているか否かをステップ８ｂで判定する。この判定の結果、上記セッションＳ１の識別子がキャッシュメモリＭＣ３に保存されていなければ、サーバ装置ＳＶ３はステップ８ｅに移行してここでセッション管理ファイルＤＢ１を検索し、このセッション管理ファイルＤＢ１に上記セッションＳ１を所有するサーバ装置が記憶されているか否かを判定する。この判定の結果、セッションＳ１を所有するサーバ装置が記憶されていれば、ステップ１３ｄにより、上記セッションＳ１を所有するサーバ装置（例えばＳＶ１）の識別子をセッション識別子に対応付けてリダイレクト管理ファイルＤＢ２に記憶させる。そして、上記サーバ装置ＳＶ１の識別子を含むリダイレクト要求を、ステップ８ｇにより上記実行要求元のクライアント装置ＣＬ３に送信する。
【００６２】
一方、上記ステップ８ｂにより判定の結果、キャッシュメモリＭＣ３に上記セッションＳ１を所有するサーバ装置が保存されている場合には、サーバ装置ＳＶ３はステップ１３ａに移行してここでリダイレクト管理ファイル１３ａを検索し、上記セッションＳ１がリダイレクト管理ファイル１３ａに登録（エントリ）されているか否かをステップ１３ｂで判定する。そして、この判定の結果エントリされていれば、ステップ１３ｃにおいて上記リダイレクト管理ファイル１３ａから上記セッションＳ１のエントリを削除したのち、ステップ８ｃによりセッションＳ１を実行する。なお、リダイレクト管理ファイル１３ａにセッションＳ１がエントリされていなければ、そのままステップ８ｃによりセッションＳ１を実行する。
【００６３】
次に、以上のように管理されるリダイレクト管理ファイル１３ａを使用して、各サーバＳＶ１〜ＳＶｍは次のようにキャッシュ制御処理を実行する。  
すなわち、いまクライアント装置ＣＬ１からセッション生成要求が到来したとする。そうするとサーバ装置ＳＶ１は、ステップ７ｃでキャッシュメモリＭＣ１を検索し、リソースに空きがあるか否かをステップ７ｄで判定する。この判定の結果、リソースに余裕がある場合には、ステップ７ｇに移行してここで新たにセッションを生成する。
【００６４】
これに対しリソースに空きがない場合には、サーバ装置ＳＶ１はステップ１２ａに移行し、ここでキャッシュメモリＭＣ１に保存されている複数のセッションのうち使用されていない期間が最も長いセッションを一つ選択する。そして、ステップ１２ｂにおいて、この選択されたセッションの識別子をキーにリダイレクト管理ファイルＤＢ２をアクセスし、当該セッションがリダイレクト中か否かをステップ１２ｃで判定する。この判定の結果、該当するセッションがリダイレクト中だった場合には、ステップ１２ａに戻って使用されていない期間が次に長いセッションを選択し、今度はこのセッションについてリダイレクト中か否かを上記ステップ１２ｂ及びステップ１２ｃにより判定する。以後同様に、リダイレクト中ではないセッションが見つかるまで、上記判定処理を繰り返す。
【００６５】
そうしてリダイレクト中ではないセッションが見つかると、サーバ装置ＳＶ１はステップ１２からステップ７ｅに移行してここで当該選択されたセッションをキャッシュメモリＭＣ１からキャッシュアウトする。またそれと共に、ステップ７ｆにより、セッション管理ファイルＤＢ１において該当するセッションの所有者を表す情報を“ＮＵＬＬ”に変更し、しかるのちステップ７ｇに移行してここで新たなセッションを生成する。
【００６６】
このように第２の実施形態では、新たなセッションの生成のために古いセッションをキャッシュアウトする必要がある場合に、リダイレクト管理ファイルＤＢ２の記憶情報をもとに、リダイレクト中のセッションについてはキャッシュアウトの対象から外し、リダイレクト中ではないセッションのうち使用されていない期間が最も長いセッションを選択してこれをキャッシュアウトするようにしている。
【００６７】
したがって、クライアント装置ＣＬ１〜ＣＬｎがサーバ装置ＳＶ１〜ＳＶｍに対してセッション実行要求を出した場合に、リダイレクト回数を最大１回に抑えることが可能となり、これにより通信のオーバヘッドを削減することができる。
ちなみに、リダイレクト中のセッションをキャッシュアウトすると、例えば以下のような不具合が発生する。すなわち、図１４に示すワークフロー処理において、クライアント装置ＣＬ１がサーバ装置ＳＶ１に対しセッションＳ１の実行を要求したとする。この場合サーバ装置ＳＶ１は、セッション管理ファイルＤＢ１を調べ、セッションＳ１の所有者がサーバ装置ＳＶ２であることから、サーバ装置ＳＶ２へのリダイレクト要求をクライアント装置ＣＬ１に返送する。
一方、クライアント装置ＣＬ２がサーバ装置ＳＶ２に対しセッションＳ３の生成要求を送信したとする。このとき、ちょうどサーバ装置ＳＶ２のキャッシュ容量が満杯であり、最も長い期間使用されていないセッションＳ１がキャッシュアウトされると、セッション管理ファイルＤＢ１は更新されてセッションＳ１の所有者が存在しない状態となる。
【００６８】
さらに、この状態でクライアント装置ＣＬ３がサーバ装置ＳＶ１に対してセッションＳ１の実行要求を送信したとする。サーバ装置ＳＶ１はセッション管理ファイルＤＢ１を調べ、セッションＳ１の所有者が存在しないため、サーバ装置ＳＶ１はセッションＳ１を復元する。またそれと共に、セッション管理ファイルＤＢ１は更新され、セッションＳ１はサーバ装置ＳＶ１の所有となる。
【００６９】
そしてこの状態で、サーバ装置ＳＶ１からのリダイレクト要求に従い、クライアント装置ＣＬ１がセッションＳ１の実行要求をサーバ装置ＳＶ２に送信したとする。しかし、この場合サーバ装置ＳＶ２は既にセッションＳ１を所有していないため、クライアント装置ＣＬ１に対しては再度リダイレクト要求が送信されることになる。
【００７０】
すなわち、従来のリダイレクトを考慮せずにキャッシュアウトを行うシステムでは、クライアント装置ＣＬ１〜ＣＬｎが、リダイレクト要求を受けて別のサーバ装置へ再接続を行ったところ、セッションの所有者がさらに別のサーバ装置に移っていて、またリダイレクト要求を受けると云った不具合を発生する。このような動作は原理的には何度でも再現する可能性がある。このため、一つのクライアント装置についてのリダイレクトの回数が複数回に渡ることがあり、通信の回数が増加して効率の低下を招く。
【００７１】
（その他の実施形態）  
前記各実施形態では、サーバ検索装置ＳＳをサーバ装置ＳＶ１〜ＳＶｍとは独立して設けたが、サーバ検索装置ＳＳの機能をサーバ装置ＳＶ１〜ＳＶｍのいずれかに設けるようにしてもよい。またセッション管理ファイルＤＢ１及びリダイレクト管理ファイルＤＢ２についても、サーバ装置ＳＶ１〜ＳＶｍのいずれかに内蔵させるようにしてもよい。要するに、セッション管理ファイルＤＢ１及びリダイレクト管理ファイルＤＢ２は、サーバ装置ＳＶ１〜ＳＶｍにより共有可能な状態を保持できるのであればどこにどのようなかたちで設けてもよい。
【００７２】
その他、ワークフロー処理の種類やその内容、クライアント装置及びサーバ装置の構成とその制御手順及び内容についても、この発明の要旨を逸脱しない範囲で種々変形して実施できる。  
要するにこの発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００７３】
【図１】この発明に係わるワークフロー処理システムの第１の実施形態を示す概略構成図。
【図２】図１に示したシステムのクライアント装置の構成を示す機能ブロック図。
【図３】図１に示したシステムのサーバ装置の構成を示す機能ブロック図。
【図４】図１に示したシステムのセッション管理ファイルにおける記憶情報の一例を示す図。
【図５】図２に示したクライアント装置の制御手順及び制御内容の前半部分を示すフローチャート。
【図６】図２に示したクライアント装置の制御手順及び制御内容の後半部分を示すフローチャート。
【図７】図３に示したサーバ装置の制御手順及び制御内容の前半部分を示すフローチャート。
【図８】図３に示したサーバ装置の制御手順及び制御内容の後半部分を示すフローチャート。
【図９】図１に示したシステムのワークフロー処理シーケンスを示す図。
【図１０】この発明に係わるワークフロー処理システムの第２の実施形態を示す概略構成図。
【図１１】図１０に示したシステムのサーバ装置の構成を示す機能ブロック図。
【図１２】図１１に示したサーバ装置の制御手順及び制御内容の前半部分を示すフローチャート。
【図１３】図１１に示したサーバ装置の制御手順及び制御内容の後半部分を示すフローチャート。
【図１４】図１０に示したシステムのワークフロー処理シーケンスを示す図。
【図１５】図１０に示したシステムのリダイレクト管理ファイルにおける記憶情報の一例を示す図。
【符号の説明】
【００７４】
ＣＬ１〜ＣＬｎ…クライアント装置、ＳＶ１〜ＳＶｍ…サーバ装置、ＳＳ…サーバ検索装置、ＤＢ１…セッション管理ファイル、ＤＢ２…リダイレクト管理ファイル、ＮＷ…通信ネットワーク、ＣＣ１〜ＣＣｎ，ＭＣ１〜ＭＣｍ…キャッシュ、１１，２１…ＣＰＵ、１２，２２…バス、１３，２３…プログラムメモリ、１４，２４…データメモリ、１６，２６…通信インタフェース、１７…入出力インタフェース、１８…入力部、１９…表示部、１３ａ…サーバ検索制御プログラム、１３ｂ…セッション生成・実行要求制御プログラム、１３ｃ…再接続制御プログラム、２３ａ…セッション生成制御プログラム、２３ｂ…セッション所有者判定プログラム、２３ｃ…セッション実行制御プログラム、２３ｄ…リダイレクト要求制御プログラム、２３ｅ…キャッシュ制御プログラム。
【図１】
2005056114.tif 000003
【図２】
2005056114.tif 000004
【図３】
2005056114.tif 000005
【図４】
2005056114.tif 000006
【図５】
2005056114.tif 000007
【図６】
2005056114.tif 000008
【図７】
2005056114.tif 000009
【図８】
2005056114.tif 000010
【図９】
2005056114.tif 000011
【図１０】
2005056114.tif 000012
【図１１】
2005056114.tif 000013
【図１２】
2005056114.tif 000014
【図１３】
2005056114.tif 000015
【図１４】
2005056114.tif 000016
【図１５】
2005056114.tif 000017