(57)【要約】【課題】Ｗｅｂアプリケーション内に複数のアプリケーションサービスを構成する場合に、複数のアプリケーションサービスを並列に実行できるようにセッション情報を管理する。【解決手段】セッションサーバ装置１０４が、共通するアプリケーションサービスにおいて実行される複数の処理を一つの業務として管理し、Ｗｅｂアプリサーバ装置１０３からクライアント装置１０１からのリクエストに含まれているＵＲＬを受信し、受信したＵＲＬを解析して、クライアント装置１０１からのリクエストおいて要求されている処理がいずれの業務に対応するかを判断し、Ｗｅｂアプリサーバ装置１０３において生成されるセッション情報を業務の業務識別子とセッション識別子とで管理する。【選択図】図１
2007264986.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置に対して複数のアプリケーションサービスを提供する一つ以上のサーバ装置と、通信を行う情報処理装置であって、
共通するアプリケーションサービスにおいて一つ以上のサーバ装置により実行される複数の処理を一つの業務として管理し、クライアント装置からのリクエストの少なくとも一部をいずれかのサーバ装置より受信するとともに、クライアント装置からのリクエストにおいて要求されている処理がいずれの業務に対応するかを判断し、対応する業務の業務識別子を設定する業務管理部と、
セッションごとに、セッション識別子を設定するセッション識別子管理部と、
いずれかのサーバ装置から、処理を実行した際に生成されるセッション情報を受信し、受信したセッション情報を対応する業務識別子とセッション識別子とに関連付けて記憶するセッション情報管理部とを有することを特徴とする情報処理装置。
【請求項２】
前記セッション情報管理部は、
いずれかのサーバ装置から、業務識別子とセッション識別子とが示されたセッション情報提供要求を受信した場合に、前記セッション情報提供要求に示された業務識別子とセッション識別子に対応するセッション情報を抽出し、抽出したセッション情報を送信元のサーバ装置に対して送信し、
いずれかのサーバ装置から、新たなセッション情報と、当該新たなセッション情報の業務識別子とセッション識別子が示されたセッション情報格納要求とを受信した場合に、前記セッション情報格納要求に示された業務識別子とセッション識別子に合致するセッション情報を前記新たなセッション情報に更新し、
いずれかのサーバ装置から、業務識別子とセッション識別子が示されたセッション情報削除要求を受信した場合に、前記セッション情報削除要求に示された業務識別子とセッション識別子に合致するセッション情報を削除することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記業務管理部は、
サーバ装置がクライアント装置からリクエストを受信する度に、当該サーバ装置よりクライアント装置からのリクエストの少なくとも一部を受信し、
サーバ装置よりクライアント装置からのリクエストの少なくとも一部を受信する度に、クライアント装置からのリクエストにおいて要求されている処理がいずれの業務に対応するかを判断し、対応する業務の業務識別子を送信元のサーバ装置に通知することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記業務管理部は、
クライアント装置からのリクエストに含まれるＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）をサーバ装置より受信するとともに、
受信したＵＲＬに基づいて、クライアント装置からのリクエストにおいて要求されている処理に対応する業務を判断することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記業務管理部は、
複数の業務で共通に利用される処理を共通業務とし、共通業務と当該共通業務を利用する業務とを関連付けて管理し、
前記セッション情報管理部は、
共通業務のセッション情報を記憶し、
いずれかのサーバ装置から、業務識別子とセッション識別子とが示されたセッション情報提供要求を受信した場合に、前記セッション情報提供要求に示された業務識別子とセッション識別子に対応するセッション情報を抽出するとともに、前記セッション情報提供要求に示された業務識別子の業務が前記業務管理部により共通業務と関連付けられている場合に、共通業務のセッション情報を抽出し、抽出したそれぞれのセッション情報を前記セッション情報提供要求の送信元のサーバ装置に対して送信することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記業務管理部は、
共通業務を親業務とし、当該共通業務を利用する業務を子業務とするツリー構造にて共通業務と当該共通業務を利用する業務とを管理し、
前記セッション情報管理部は、
いずれかのサーバ装置から、業務識別子とセッション識別子が示されたセッション情報削除要求を受信した場合に、前記セッション情報削除要求に示された業務識別子とセッション識別子に合致するセッション情報を削除するとともに、前記セッション情報削除要求に示された業務識別子の業務が前記業務管理部により共通業務の子業務として管理されている場合に、親業務となる共通業務のセッション情報を併せて削除することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記セッション情報管理部は、
前記セッション情報削除要求に示された業務識別子の業務が前記業務管理部により共通業務の子業務として管理されている場合に、当該共通業務の子業務となる他の業務のセッション情報を管理しているか否かを判断し、当該共通業務の子業務となる他の業務のセッション情報を管理していない場合に、当該共通業務のセッション情報を併せて削除することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記業務管理部は、
クライアント装置からのリクエストの少なくとも一部をいずれかのサーバ装置より受信した際に、クライアント装置からのリクエストにおいて要求されている処理がいずれの業務に対応するかを判断するとともに、判断した業務に含まれる全ての処理が送信元のサーバ装置で実行されるか否かを判断し、全ての処理がリクエストの送信元のサーバ装置で実行される場合に、送信元のサーバ装置で当該業務についてのセッション情報を管理するよう依頼するセッション情報管理依頼を送信元のサーバ装置に送信し、
前記セッション情報管理部は、
前記業務管理部によりセッション情報管理依頼が送信された場合に、セッション情報管理依頼が対象としている業務についてのセッション情報を記憶しないことを特徴とする請求項１に記載の情報処理装置。
【請求項９】
クライアント装置に対して複数のアプリケーションサービスを提供する一つ以上のサーバ装置と、通信を行う情報処理方法であって、
共通するアプリケーションサービスにおいて一つ以上のサーバ装置により実行される複数の処理を一つの業務として管理し、クライアント装置からのリクエストの少なくとも一部をいずれかのサーバ装置より受信するとともに、クライアント装置からのリクエストにおいて要求されている処理がいずれの業務に対応するかを判断し、対応する業務の業務識別子を設定する業務管理ステップと、
セッションごとに、セッション識別子を設定するセッション識別子管理ステップと、
いずれかのサーバ装置から、処理を実行した際に生成されるセッション情報を受信し、受信したセッション情報を対応する業務識別子とセッション識別子とに関連付けて記憶するセッション情報管理ステップとを有することを特徴とする情報処理方法。
【請求項１０】
クライアント装置に対して複数のアプリケーションサービスを提供する一つ以上のサーバ装置と、通信を行うコンピュータに、
共通するアプリケーションサービスにおいて一つ以上のサーバ装置により実行される複数の処理を一つの業務として管理し、クライアント装置からのリクエストの少なくとも一部をいずれかのサーバ装置より受信するとともに、クライアント装置からのリクエストにおいて要求されている処理がいずれの業務に対応するかを判断し、対応する業務の業務識別子を設定する業務管理手順と、
セッションごとに、セッション識別子を設定するセッション識別子管理手順と、
いずれかのサーバ装置から、処理を実行した際に生成されるセッション情報を受信し、受信したセッション情報を対応する業務識別子とセッション識別子とに関連付けて記憶するセッション情報管理手順とを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散環境におけるセッション共有方式に関する。
【背景技術】
【０００２】
従来の分散環境におけるセッション共有方式では、セッション情報を情報記憶装置によって保持し、業務処理を実行するサーバ装置がセッション情報を情報記憶装置とやり取りすることにより、セッションの共有を行っていた（例えば、特許文献１に従来技術として記載されている技術）。
【０００３】
以下に従来技術におけるシステムの動作を示す。
１．クライアントからの最初のリクエストの際の処理。
（１）サーバ装置は情報記憶装置に対して新しいセッション識別子の発行を要求する。
（２）情報記憶装置は、新しいセッション識別子を採番し返却する。
（３）サーバ装置は業務処理を実施し、処理結果とセッション識別子をクライアントに返却する。
（４）サーバ装置は、セッション識別子とセッション情報を情報記憶装置に記憶する要求を出す。
（５）情報記憶装置は、セッション識別子とセッション情報を保存し結果をサーバ装置に通知する。
（６）サーバ装置は、完了を確認し処理を終了する。
【０００４】
２．クライアントからの二回目以降のリクエストの際の処理。
（１）クライアントは、サーバ装置に対して、リクエストにセッション識別子を付加してサーバに処理を要求する。
（２）サーバ装置は情報記憶装置に対してセッション識別子を元に前回のセッション情報を要求する。
（３）情報記憶装置は、セッション識別子が有効かどうかを判定しセッション情報を返却する。
（４）サーバ装置は業務処理を実施し、処理結果とセッション識別子をクライアントに返却する。
（５）サーバ装置は、セッション識別子とセッション情報を情報記憶装置に記憶する要求を出す。
（６）情報記憶装置は、セッション識別子とセッション情報を保存し結果をサーバ装置に通知する。
（７）サーバ装置は、完了を確認し処理を終了する。
【０００５】
また、この従来技術に対して、情報管理サーバを置かず、業務処理を実施するサーバ間でセッション情報をバケツリレーのように通信することによって、情報管理サーバに集中する通信の負荷を解決する方法も提案されている（特許文献１）。
【０００６】
また、特許文献２においては、複数のＷｅｂアプリケーション（特許文献２ではサービスサイトと表現）から構成される業務（特許文献２ではサービスシナリオと表現）に対して、Ｗｅｂアプリケーションのスレッドセッションと業務に対するタスクセッションを設け、タスクセッションとスレッドセッションを分離して管理する方式を提案している。
【特許文献１】特開２０００−１６３３６９号公報  第５頁〜６頁、第６図〜第８図
【特許文献２】特開２００４−１７８４６６号公報  第７頁〜８頁、第１図、第１０図〜第１２図
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、Ｗｅｂシステムにおいては同一のクライアントとＷｅｂアプリケーション間で保持可能なセッション識別子はひとつしかない。このため、従来の分散環境におけるセッション共有方式では、Ｗｅｂアプリケーション内に複数の業務を構成した場合、同一のクライアントから複数の業務（本明細書における業務とは、クライアントとサーバ間で処理されるリクエスト（ＵＲＬ：Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）の集合であり、クライアントに対して一貫性のあるサービスを提供するものをさす。）を並列に実行させることができないという問題点があった。そのため、一つ一つの業務を別々のＷｅｂアプリケーションとして構成するようにモジュール構成を構築するなど、モジュール構成に制約が生じていた。
【０００８】
この発明は上記のような問題点を解決することを主な目的の一つとしており、業務単位でセッション情報を管理すると共に、業務単位で並列に処理を可能とすることを主な目的の一つとする。
すなわち、Ｗｅｂアプリケーション内に複数のアプリケーションサービスを構成する場合に、複数のアプリケーションサービスを並列に実行できるようにセッション情報を管理することを主な目的の一つとしている。
【課題を解決するための手段】
【０００９】
本発明に係る情報処理装置は、
クライアント装置に対して複数のアプリケーションサービスを提供する一つ以上のサーバ装置と、通信を行う情報処理装置であって、
共通するアプリケーションサービスにおいて一つ以上のサーバ装置により実行される複数の処理を一つの業務として管理し、クライアント装置からのリクエストの少なくとも一部をいずれかのサーバ装置より受信するとともに、クライアント装置からのリクエストにおいて要求されている処理がいずれの業務に対応するかを判断し、対応する業務の業務識別子を設定する業務管理部と、
セッションごとに、セッション識別子を設定するセッション識別子管理部と、
いずれかのサーバ装置から、処理を実行した際に生成されるセッション情報を受信し、受信したセッション情報を対応する業務識別子とセッション識別子とに関連付けて記憶するセッション情報管理部とを有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、セッション情報を業務識別子とセッション識別子により管理するため、クライアント装置とサーバ装置間で複数のアプリケーションサービスを並列に実行することが可能となる。
【発明を実施するための最良の形態】
【００１１】
実施の形態１．
図１は、本実施の形態に係るシステムの原理を示すための構成図である。
図１に示すシステムは、ユーザが操作するクライアント装置１０１（以下、単にクライアント１０１又はクライアントとも記す）と複数のアプリケーションサービスを提供するＷｅｂアプリサーバ装置１０３（以下、単にＷｅｂアプリサーバ１０３又はＷｅｂアプリサーバとも記す）セッション情報を保持するセッションサーバ装置１０４（以下、単にセッションサーバ１０４又はセッションサーバとも記す）から構成される。これらの装置はネットワーク１０２により接続される。
なお、Ｗｅｂアプリサーバ１０３はサーバ装置の例であり、セッションサーバ１０４は情報処理装置の例である。
また、図１では、Ｗｅｂアプリサーバ１０３は１台のみが示されているが、複数のＷｅｂアプリサーバ１０３が存在し、セッションサーバ１０４との間で、セッション情報の通信が行われるものとする。
【００１２】
Ｗｅｂアプリサーバ１０３には、セッションサーバ１０４との間でセッション情報のやり取りを行うセッション管理フィルタ１０３１および複数のアプリケーションサービスを提供するＷｅｂアプリケーション１０３２、業務単位でセッション情報を保存する業務単位セッション情報保存部１０３３からなる。
なお、本明細書における業務とは、クライアントとサーバ間で処理されるリクエスト（ＵＲＬ）の集合であり、クライアントに対して一貫性のあるサービスを提供するものを意味する。すなわち、共通するアプリケーションサービスにおいて一つ以上のＷｅｂアプリサーバ１０３により実行される複数の処理をグルーピングして、一つの業務として管理する。
【００１３】
セッションサーバ１０４には、クライアントのリクエストを示すＵＲＬがどの業務に所属するかを管理する業務管理部１０４１および、セッション識別子を管理するセッション識別子管理部１０４２および、実際のセッション情報を管理するセッション情報管理部１０４３および、ＵＲＬと業務の対応を表形式で管理するＵＲＬ管理表１０４４からなる。
【００１４】
セッションサーバ１０４において、業務管理部１０４１は、共通するアプリケーションサービスにおいて一つ以上のＷｅｂアプリサーバ装置１０３により実行される複数の処理を一つの業務として管理し、クライアント装置１０１からのリクエストの少なくとも一部（具体的には、ＵＲＬ）をいずれかのＷｅｂアプリサーバ装置１０３より受信するとともに、クライアント装置１０１からのリクエストにおいて要求されている処理がいずれの業務に対応するかを判断し、対応する業務の業務識別子を設定する。そして、業務管理部１０４１は、Ｗｅｂアプリサーバ装置１０３がクライアント装置１０１からリクエストを受信する度に、当該Ｗｅｂアプリサーバ装置１０３よりクライアント装置１０１からのリクエストの少なくとも一部（具体的には、ＵＲＬ）を受信し、Ｗｅｂアプリサーバ装置１０３よりクライアント装置１０１からのリクエストの少なくとも一部を受信する度に、クライアント装置１０１からのリクエストにおいて要求されている処理がいずれの業務に対応するかを判断し、対応する業務の業務識別子を送信元のＷｅｂアプリサーバ装置１０３に通知する。
セッション識別子管理部１０４２は、セッションごとに、セッション識別子を設定する。
セッション情報管理部１０４３は、いずれかのＷｅｂアプリサーバ装置１０３から、処理を実行した際に生成されるセッション情報を受信し、受信したセッション情報を対応する業務識別子とセッション識別子とに関連付けて記憶する。そして、セッション情報管理部１０４３は、いずれかのＷｅｂアプリサーバ装置１０３から、業務識別子とセッション識別子とが示されたセッション情報提供要求を受信した場合に、セッション情報提供要求に示された業務識別子とセッション識別子に対応するセッション情報を抽出し、抽出したセッション情報を送信元のＷｅｂアプリサーバ装置１０３に対して送信する。また、いずれかのＷｅｂアプリサーバ装置１０３から、新たなセッション情報と、当該新たなセッション情報の業務識別子とセッション識別子が示されたセッション情報格納要求とを受信した場合に、セッション情報格納要求に示された業務識別子とセッション識別子に合致するセッション情報を新たなセッション情報に更新する。また、いずれかのＷｅｂアプリサーバ装置１０３から、業務識別子とセッション識別子が示されたセッション情報削除要求を受信した場合に、セッション情報削除要求に示された業務識別子とセッション識別子に合致するセッション情報を削除する。
【００１５】
本実施の形態では、Ｗｅｂアプリケーション内に複数のアプリケーションサービスを構成する場合に、複数のアプリケーションサービスを並列に実行できるようにセッション情報を管理する。
このために、セッションサーバ装置１０４が、共通するアプリケーションサービスにおいて実行される複数の処理を一つの業務として管理し、Ｗｅｂアプリサーバ装置１０３からクライアント装置１０１からのリクエストに含まれているＵＲＬを受信し、受信したＵＲＬをＵＲＬ管理表１０４４に基づいて解析して、クライアント装置１０１からのリクエストおいて要求されている処理がいずれの業務に対応するかを判断し、Ｗｅｂアプリサーバ装置１０３において生成されるセッション情報を業務の業務識別子とセッション識別子とで管理する。
【００１６】
図１３は、実施の形態１及び以下にて示す実施の形態に係るＷｅｂアプリサーバ１０３及びセッションサーバ１０４のハードウェア資源の一例を示す図である。
図１３において、Ｗｅｂアプリサーバ１０３及びセッションサーバ１０４は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。更に、ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７と接続していてもよい。また、磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード９１５、キーボード９０２、スキャナ装置９０７、ＦＤＤ９０４などは、入力部、入力装置の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力部、出力装置の一例である。
【００１７】
通信ボード９１５は、図１に示すように、ネットワークに接続されている。例えば、通信ボード９１５は、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００１８】
上記プログラム群９２３には、図１に示す機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、以下に述べる説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」、「〜の評価結果」等として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリになどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、以下で説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００１９】
また、図１に示す機能は、「〜回路」、「〜装置」、「〜機器」、「手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、図１に示す機能を持つコンピュータを動作させるものである。
【００２０】
このように、本実施の形態及び以下に述べる実施の形態に示すＷｅｂアプリサーバ１０３及びセッションサーバ１０４は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、図１に示す機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【００２１】
以下に、上記システムの動作を図２及び図３を参照して説明する。
【００２２】
（初回時の動作）
まずクライアント１０１は、業務を実施するためのリクエストをＷｅｂアプリサーバ１０３に送信する（ステップＳ２０１）。
Ｗｅｂアプリサーバ１０３上のセッション管理フィルタ１０３１は、クライアント１０１からのリクエストに含まれるＵＲＬを元にセッションサーバ１０４上の業務管理部１０４１に業務識別子を問い合わせる（ステップＳ２０２）。
【００２３】
業務管理部１０４１は、ＵＲＬ管理表１０４４をもとに該当する業務識別子を検索し、セッション管理フィルタ１０３１に返す。
なお、ＵＲＬ管理表は図６のように業務識別子と業務識別子に対応するＵＲＬが表形式で格納されている。
図６に示すように、ｈｔｔｐ：／／ｘｘｘ／ａａａ／を含むＵＲＬとｈｔｔｐ：／／ｙｙｙ／ａａａ／を含むＵＲＬは、それぞれ異なる２つのＷｅｂアプリサーバを示すが、これら２つのＷｅｂアプリサーバにより共通するアプリケーションサービスが実現され、また、共通するアプリケーションサービスにおいて実行される処理は同一業務に含まれるように管理される。このため、ｈｔｔｐ：／／ｘｘｘ／ａａａ／を含むＵＲＬとｈｔｔｐ：／／ｙｙｙ／ａａａ／を含むＵＲＬには同じ業務識別子ＧＩＤ＿Ａが設定される。
また、ｈｔｔｐ：／／ｘｘｘ／ａａａ／を含むＵＲＬとｈｔｔｐ：／／ｘｘｘ／ｂｂｂ／を含むＵＲＬは、同じＷｅｂアプリサーバを示すが、これら２つのＵＲＬにより示されるアプリケーションサービスは異なるため、ｈｔｔｐ：／／ｘｘｘ／ａａａ／を含むＵＲＬとｈｔｔｐ：／／ｘｘｘ／ｂｂｂ／を含むＵＲＬには、異なる業務識別子が設定される。このように、異なる業務識別子を設定することで、同一のクライアントからＷｅｂアプリサーバに対して複数のアプリケーションサービスの要求があった場合でも、複数のアプリケーションサービスを並行して実行可能となる。
そして、図６の例では、ユーザからのリクエストがｈｔｔｐ：／／ｘｘｘ／ａａａ／ａｃｔｉｏｎＡ．ｄｏの場合、ＵＲＬがｈｔｔｐ：／／ｘｘｘ／ａａａ／で始まっているため、該当する業務識別子はＧＩＤ＿Ａであることを示す。
【００２４】
続いて、セッション管理フィルタ１０３１は、Ｗｅｂアプリケーション１０３２が現在実行している業務識別子がＧＩＤ＿Ａであることを業務単位セッション情報保存部１０３３に設定し、Ｗｅｂアプリケーション１０３２を呼び出す。Ｗｅｂアプリケーション１０３２は実際の業務処理を実行する（ステップＳ２０３）。Ｗｅｂアプリケーション１０３２は、業務処理実施中に必要に応じてセッションにセッション情報の保存を依頼する。セッション情報は業務単位セッション情報保存部１０３３に保存される。
セッション管理フィルタ１０３１は、Ｗｅｂアプリケーション１０３２の保存したセッション情報にアクセスし、業務識別子に関係するセッション情報が存在するかをチェックする（ステップＳ２０４）。存在しない場合、Ｗｅｂアプリケーション１０３２の実行結果をそのままクライアントに返却する（ステップＳ２０５）。存在する場合、セッション識別子管理部１０４２に新しいセッション識別子を要求する（ステップＳ２０６）。
セッション識別子管理部１０４２は新しいセッション識別子を生成し、新しいセッションに業務識別子で示される業務が開始状態であることを管理する。
セッション管理フィルタ１０３１はＷｅｂアプリケーション１０３２が生成したセッション情報をセッション情報管理部１０４３に保存を依頼する（ステップＳ２０７）。
そして、最後に、セッション管理フィルタ１０３１は、Ｗｅｂアプリケーションの実行結果とともにセッション識別子をクライアントに返却する（ステップＳ２０８）。
【００２５】
（二回目以降の動作）
クライアント１０１は、業務を実施するためのリクエストをセッション識別子とともにＷｅｂアプリサーバ１０３に送信する（ステップＳ３０１）。
Ｗｅｂアプリサーバ１０３上のセッション管理フィルタ１０３１は、ユーザのリクエストに含まれるＵＲＬを元にセッションサーバ１０４上の業務管理部１０４１に業務識別子を問い合わせる（ステップＳ３０２）。
業務管理部１０４１は、ＵＲＬ管理表１０４４をもとに該当する業務識別子を検索し、セッション管理フィルタ１０３１に返す。
続いて、セッション管理フィルタ１０３１は、セッション情報管理部１０４３に対して業務識別子とセッション識別子を渡しセッション情報を取得する（ステップＳ３０３）。
セッション情報管理部１０４３は、セッション識別子と業務識別子を元に図７のようにセッション情報を管理している。続いて、セッション管理フィルタ１０３１は取得したセッション情報を業務単位セッション情報保存部１０３３にコピーする（ステップＳ３０４）。
セッション管理フィルタ１０３１はＷｅｂアプリケーション１０３２を呼び出し実際の業務処理を実行させる（ステップＳ３０５）。Ｗｅｂアプリケーション１０３２は、業務処理を実施するとともにセッション情報の更新や削除を行う。
セッション管理フィルタ１０３１は、業務単位セッション情報保存部１０３３に保存しているセッション情報にアクセスし、業務識別子に関係するセッション情報が存在するかをチェックし、セッションが終了しているかどうかを確認する（ステップＳ３０６）。終了している場合、セッション管理フィルタ１０３１はセッション情報管理部１０４３に対してセッションの削除を依頼する（ステップＳ３０９）。
セッション情報管理部１０４３は、セッション識別子と業務識別子がともに一致するセッション情報を削除する。続いて、Ｗｅｂアプリケーション１０３２の実行結果をそのままクライアントに返却する（ステップＳ３１０）。
終了していない場合、セッション管理フィルタ１０３１はＷｅｂアプリケーション１０３２が更新したセッション情報をセッション情報管理部１０４３に保存を依頼する（ステップＳ３０７）。続いてセッション管理フィルタ１０３１は、Ｗｅｂアプリケーション１０３２の実行結果とともに、セッション識別子をクライアントに返す（ステップＳ３０８）。
【００２６】
次に、図２及び図３に示した動作のうち、セッションサーバ装置１０４の行う動作の例を図４及び図５に示す。
【００２７】
（初回時の動作）
最初に、業務管理部１０４１が、Ｗｅｂアプリサーバ１０３より、クライアント１０１からのリクエストに含まれるＵＲＬを受信する（ステップＳ４０１）（業務管理ステップ）。
次に、業務管理部１０４１は、受信したＵＲＬと図６に示したＵＲＬ管理表を照合して、業務識別子を判断する（ステップＳ４０２）（業務管理ステップ）。
次に、業務管理部１０４１は、ステップＳ４０２で判断した業務識別子をＷｅｂアプリサーバ１０３に通知する（ステップＳ４０３）。
次に、セッション識別子管理部１０４２が、Ｗｅｂアプリサーバ１０３より、セッション識別子の設定を要求するセッション識別子要求を受信したか否かを判断し（ステップＳ４０４）、一定期間内にセッション識別子要求を受信しない場合は、そのまま処理を終了する。一方、受信した場合は、セッション識別子管理部１０４２はセッション識別子を設定し、Ｗｅｂアプリサーバ１０３にセッション識別子を通知する（ステップＳ４０５）（セッション識別子管理ステップ）。
次に、セッション情報管理部１０４３が、Ｗｅｂアプリサーバ１０３より、セッション情報の格納を要求するセッション情報格納要求を受信した否かを判断し（ステップＳ４０６）（セッション情報管理ステップ）、一定期間内にセッション情報格納要求を受信しない場合はそのまま処理を終了する。
一方、受信した場合は、セッション情報管理部１０４３は、受信したセッション情報の格納領域を確保し、業務識別子とセッション識別とに関連付けてセッション情報を記憶する（ステップＳ４０７）（セッション情報管理ステップ）。
セッション情報格納要求には、格納対象のセッション情報と、当該セッション情報の業務識別子とセッション識別子が含まれている。この業務識別子とセッション識別子は、それぞれステップＳ４０３及びステップＳ４０５においてセッションサーバ１０４からＷｅｂアプリサーバ１０３に通知された識別子である。セッション情報管理部１０４３は、セッション情報格納要求に含まれた業務識別子とセッション識別子にセッション情報を関連付けて記憶する。
【００２８】
（二回目以降の動作）
先ず、業務管理部１０４１が、Ｗｅｂアプリサーバ１０３より、クライアント１０１からのリクエストに含まれるＵＲＬを受信する（ステップＳ４０１）（業務管理ステップ）。
次に、業務管理部１０４１は、受信したＵＲＬと図６に示したＵＲＬ管理表を照合して、業務識別子を判断する（ステップＳ４０２）（業務管理ステップ）。
次に、業務管理部１０４１は、ステップＳ４０２で判断した業務識別子をＷｅｂアプリサーバ１０３に通知する（ステップＳ４０３）。
【００２９】
次に、セッション情報管理部１０４３が、Ｗｅｂアプリサーバ１０３より、セッション情報の提供を要求するセッション情報提供要求を受信したか否かを判断し（ステップＳ５０１）、一定期間内にセッション情報提供要求を受信しない場合は、そのまま処理を終了する。
一方、セッション情報提供要求を受信した場合は、業務識別子とセッション識別子に対応するセッション情報を抽出し、抽出したセッション情報をＷｅｂアプリサーバ１０３に送信する（ステップＳ５０２）。セッション情報提供要求には、Ｗｅｂアプリサーバ１０３が提供を求めるセッション情報の業務識別子とセッション識別子が含まれている。セッション情報管理部１０４３は、格納している複数のセッション情報の中から、この業務識別子とセッション識別子に対応するセッション情報を抽出し、Ｗｅｂアプリサーバ１０３に送信する。
【００３０】
次に、セッション情報管理部１０４３は、Ｗｅｂアプリサーバ１０３より、セッション情報の格納を要求するセッション情報格納要求を受信した否かを判断し（ステップＳ５０３）、一定期間内にセッション情報格納要求を受信しない場合はステップＳ５０５に進む。
一方、受信した場合は、セッション情報管理部１０４３は、セッション情報格納要求に示された業務識別子及びセッション識別子に対応するセッション情報を、セッション情報格納要求に含まれる新たなセッション情報に更新する（ステップＳ５０４）。セッション情報格納要求には、格納対象の新たなセッション情報と、当該セッション情報の業務識別子とセッション識別子が含まれている。セッション情報管理部１０４３は、格納領域に格納されているセッション情報のうち、セッション情報格納要求に含まれた業務識別子とセッション識別子に対応するセッション情報を新たなセッション情報に書き換えて、セッション情報の更新を行う。
【００３１】
また、ステップＳ５０３においてセッション情報格納要求を受信しなかった場合は、セッション情報管理部１０４３は、Ｗｅｂアプリサーバ１０３より、セッション情報の削除を要求するセッション情報削除要求を受信した否かを判断し（ステップＳ５０５）、一定期間内にセッション情報削除要求を受信しない場合はそのまま処理を終了する。
一方、受信した場合は、セッション情報管理部１０４３は、格納している複数のセッション情報の中から、セッション情報削除要求に示された業務識別子とセッション識別子に対応するセッション情報を削除する（ステップＳ５０６）。
セッション情報削除要求には、Ｗｅｂアプリサーバ１０３が削除を求めるセッション情報の業務識別子とセッション識別子が含まれている。セッション情報管理部１０４３は、格納している複数のセッション情報の中から、この業務識別子とセッション識別子に対応するセッション情報を削除する。
【００３２】
以上のように、セッション情報管理フィルタとセッションサーバがセッション識別子とともに業務識別子を管理するようにしているので、セッション情報を業務毎に管理することができる。そして、業務単位でセッション情報を管理することにより、業務単位での並列処理が可能となる。
また、業務を構成する各Ｗｅｂアプリケーションは業務識別子について何も知らなくてもよいため、任意のＷｅｂアプリケーションを業務に追加しやすくなる。
【００３３】
このように、本実施の形態では、複数のＷｅｂアプリケーションを組み合わせて業務処理を実現するＷｅｂシステムにおいて、以下の手段を備えたセッション情報管理方式について説明した。
（１）クライアントからのリクエストに含まれるＵＲＬから現在実行中の業務（本明細書における業務とは、Ｗｅｂアプリケーションを組み合わせて実行し、クライアントに対して一貫性のあるアプリケーションサービスを提供するものをさす。クライアントとサーバ間で処理されるリクエスト（ＵＲＬ）の集合で表現する）を識別する業務管理手段。
（２）業務のセッション情報（複数のＷｅｂアプリケーション間で共有するセッション情報）を、セッション識別子に業務を識別する業務識別子を加えた単位で管理するセッションサーバ。
（３）Ｗｅｂアプリケーションの前段に位置し、上記セッションサーバと通信することによりセッション情報を制御するセッション管理フィルタ。
（４）Ｗｅｂアプリケーションからのセッション情報操作を業務単位として処理する業務単位セッション情報保存部。
【００３４】
実施の形態２．
以上の実施の形態１では、業務を構成するＵＲＬが業務間でまったく重ならずに別々に構成されるようにしたものであるが、次に業務間で共通に利用するＵＲＬを含むような場合に業務毎にセッション情報を管理する実施の形態を示す。
【００３５】
例えば、図８に示すように複数の業務で共通に利用される共通業務６０１があり、６０２で示される業務Ａおよび６０３で示される業務Ｂから共通に利用されるものとする。
この場合、複数の業務から利用される共通業務を親とするツリー構造を定義し、共通業務も含めてすべての業務に対して業務識別子を割り当てる。
この例では、共通業務の業務識別子をＧＩＤ＿０、業務Ａの業務識別子をＧＩＤ＿Ａ、業務Ｂの業務識別子をＧＩＤ＿Ｂとした。
図６で示したＵＲＬ管理表に対して図９のように親業務の列を設ける。親業務の列にはツリー構造での親業務を指定する。例えば、業務Ａの親業務の欄には、共通業務（ＧＩＤ＿０）が指定される。
また、業務をツリー構造で管理するため、業務単位セッション情報保存部１０３３についてもツリー構造を構成できるようにする。
また、図７で示したセッション情報管理表に対して図１０のように親業務の列を設ける。
この実施の形態では、実施の形態１に比べて、セッション情報の取得処理、セッション情報の保存処理、セッション情報の削除処理、セッション情報へのアクセス処理の方式が異なるため、各処理の相違点について記述する。
【００３６】
（セッション情報の取得処理）（ステップＳ３０３に相当）
セッション管理フィルタ１０３１は、セッション情報管理部１０４３に対して業務識別子およびセッション識別子が含まれるセッション情報提供要求を渡し、セッション情報の取得を依頼する。セッション情報管理部１０４３は渡された業務識別子について、親となる業務を業務管理部１０４１に問い合わせ、親の業務識別子を取得する。
セッション情報管理部１０４３は、セッション管理フィルタから指定された業務識別子のセッション情報とともに、親業務のセッション情報を抽出し、セッション管理フィルタ１０３１から指定されたセッション情報と親業務のセッション情報をセッション管理フィルタ１０３１に渡す。
セッション管理フィルタ１０３１は、業務識別子単位で業務単位セッション情報保存部１０３３を用意し、渡されたセッション情報を該当する業務識別子を持つ業務単位セッション情報保存部１０３３にコピーすると共に、子業務の業務単位セッション情報保存部から、親業務の業務単位セッション情報保存部を参照できるように設定する。
【００３７】
（セッション情報の保存処理）（ステップＳ３０７に相当）
セッション管理フィルタ１０３１は、セッション情報管理部１０４３に対して、セッション情報の取得処理で渡された複数の業務識別子について、業務単位セッション情報保存部を親業務に向けてたどりながら、それぞれセッション情報の保存を依頼する。セッション情報管理部１０４３は、渡された業務識別子毎にセッション情報を保存する。
【００３８】
（セッション情報の削除処理）（ステップＳ３０９に相当）
セッション管理フィルタ１０３１は、セッション情報管理部１０４３に対してセッション情報削除要求を送信して、セッション情報の取得処理で渡された業務識別子についてのすべてのセッション情報の削除を依頼する。
セッション情報管理部１０４３は、まずツリー構造の末端となる子業務のセッション情報を削除する。続いて、親業務について他に子業務のセッション情報を保持していないかどうかをチェックする。
保持していたら、親業務のセッション情報は削除しない。他に保持していなかった場合には親業務のセッション情報を削除し、さらに親となる業務のセッション情報の削除を試みる。それを最上位の親業務になるまで繰り返して処理する。
【００３９】
（セッション情報へのアクセス処理）
（ステップＳ３０５でのＷｅｂアプリからのセッション情報へのアクセスに相当）
Ｗｅｂアプリケーション１０３２は実際の業務処理を実行中に業務単位セッション情報保存部１０３３に対してセッション情報の取得・セッション情報の保存等を行なう。
セッション情報の取得の場合、業務単位セッション情報保存部は、自分の中に該当するセッション情報があるかどうかをチェックし、ない場合、親業務の業務単位セッション情報保存部から探すことをツリーのトップまで繰り返す。セッション情報の保存の場合、業務単位セッション情報保存部に保存する。
【００４０】
この様に構成することで、実施の形態１の効果に加え、複数の業務から共通に利用される共通業務を部品としてＷｅｂアプリケーションに組みこむことができるようになる。
【００４１】
本実施の形態では、複数の業務で利用されるＵＲＬを共通業務処理として抽出し、業務をツリー構造で管理する業務管理手段と、クライアントからのリクエストに該当する業務のセッション情報を取得・更新・削除する際に、ツリーの親業務のセッション情報についても取得・更新・削除するセッションサーバについて説明した。
すなわち、本実施の形態では、セッションサーバ１０４において、業務管理部１０４１が、複数の業務で共通に利用される処理を共通業務とし、共通業務と当該共通業務を利用する業務とを関連付けて管理し、セッション情報管理部１０４３が、共通業務のセッション情報を記憶し、いずれかのＷｅｂアプリサーバ１０３から、業務識別子とセッション識別子とが示されたセッション情報提供要求を受信した場合に、セッション情報提供要求に示された業務識別子とセッション識別子に対応するセッション情報を抽出するとともに、セッション情報提供要求に示された業務識別子の業務が業務管理部１０４１により共通業務と関連付けられている場合に、共通業務のセッション情報を抽出し、抽出したそれぞれのセッション情報をセッション情報提供要求の送信元のＷｅｂアプリサーバ１０３に対して送信することを説明した。
また、セッションサーバ１０４の業務管理部１０４１は、共通業務を親業務とし、当該共通業務を利用する業務を子業務とするツリー構造にて共通業務と当該共通業務を利用する業務とを管理し、セッション情報管理部１０４３は、いずれかのＷｅｂアプリサーバ１０３から、業務識別子とセッション識別子が示されたセッション情報削除要求を受信した場合に、セッション情報削除要求に示された業務識別子とセッション識別子に合致するセッション情報を削除するとともに、セッション情報削除要求に示された業務識別子の業務が業務管理部１０４１により共通業務の子業務として管理されている場合に、親業務となる共通業務のセッション情報を併せて削除することを説明した。
そして、セッション情報管理部１０４３は、セッション情報削除要求に示された業務識別子の業務が業務管理部１０４１により共通業務の子業務として管理されている場合に、当該共通業務の子業務となる他の業務のセッション情報を管理しているか否かを判断し、当該共通業務の子業務となる他の業務のセッション情報を管理していない場合に、当該共通業務のセッション情報を併せて削除することを説明した。
【００４２】
実施の形態３．
以上の実施の形態では、セッション情報をセッション情報管理部１０４３に保存していたが、本実施の形態では業務管理部に業務を構成するＵＲＬがすべて同一のＷｅｂアプリケーション上に存在するかどうかをチェックする機構を追加する。図１１に本実施の形態のシステム構成を示す。
図１に比べて業務管理部８０４１に対して業務構成判断機構８０４２が加えられている。業務構成判断機構８０４２は、業務を構成するＵＲＬがすべて同一のＷｅｂアプリケーション内に含まれるかどうかを判定しセッション管理フィルタに返却する機能を提供する。
【００４３】
動作についても実施の形態１との違いを図１２に基づいて説明する。
セッション管理フィルタ１０３１は業務が同一Ｗｅｂアプリケーションのみから構成されるかどうかを問い合わせる（ステップＳ９０１）。
業務構成判断機構８０４２はＵＲＬ管理表に定義されている指定された業務に対応するＵＲＬが単一のＷｅｂアプリケーションに属するかを確認しその結果を返却する。単一のＷｅｂアプリケーションに属する場合は、業務管理部８０４１は、送信元のＷｅｂアプリサーバ１０３で当該業務についてのセッション情報を管理するよう依頼するセッション情報管理依頼を送信元のＷｅｂアプリサーバ１０３に送信し、セッション情報管理部１０４３は、当該業務についてのセッション情報を記憶しない。
セッション管理フィルタ１０３１は、業務管理部８０４１からセッション情報管理依頼を受信することにより、業務が単一のＷｅｂアプリケーションに属することが確認できた場合、Ｗｅｂアプリケーションがセッションを開始しているか確認する（ステップＳ９０２）。開始していなかったら、Ｗｅｂアプリケーションの実行結果をそのまま返す（ステップＳ９０４）。開始していたら、Ｗｅｂアプリケーションの実行結果と共に、セッション識別子を返す。
【００４４】
この様に構成することで、実施の形態１の効果に加え、業務が一つのＷｅｂアプリケーション内に閉じていた場合にＷｅｂアプリサーバとセッションサーバとの通信を減らし性能を向上させることができる。
【００４５】
本実施の形態では、業務に含まれるＵＲＬがすべて同一のＷｅｂアプリケーションに存在するかどうかを判断する業務構成判断手段と、業務構成判断手段により同一のＷｅｂアプリケーションに存在することが判明した場合にセッション情報をセッション情報管理サーバから取得・保存を行わずＷｅｂアプリケーション内で管理するようにするセッション管理フィルタとを説明した。
すなわち、本実施の形態では、セッションサーバ１０４の業務管理部８０４１は、クライアント１０１からのリクエストにおいて要求されている処理がいずれの業務に対応するかを判断するとともに、判断した業務に含まれる全ての処理が送信元のＷｅｂアプリサーバ１０３で実行されるか否かを判断し、全ての処理がリクエストの送信元のＷｅｂアプリサーバ１０３で実行される場合に、送信元のＷｅｂアプリサーバ１０３で当該業務についてのセッション情報を管理するよう依頼するセッション情報管理依頼を送信元のＷｅｂアプリサーバに送信し、セッション情報管理部１０４３は、業務管理部８０４１によりセッション情報管理依頼が送信された場合に、セッション情報管理依頼が対象としている業務についてのセッション情報を記憶しないことを説明した。
【図面の簡単な説明】
【００４６】
【図１】実施の形態１、２に係るシステムの構成例を示す図。
【図２】実施の形態１に係るＷｅｂアプリサーバ及びセッションサーバの動作例を示すフローチャート図。
【図３】実施の形態１に係るＷｅｂアプリサーバ及びセッションサーバの動作例を示すフローチャート図。
【図４】実施の形態１に係るセッションサーバの動作例を示すフローチャート図。
【図５】実施の形態１に係るセッションサーバの動作例を示すフローチャート図。
【図６】実施の形態１に係るＵＲＬ管理表の例を示す図。
【図７】実施の形態１に係るセッション情報管理表の例を示す図。
【図８】実施の形態２に係る業務間のツリー構造の例を示す図。
【図９】実施の形態２に係るＵＲＬ管理表の例を示す図。
【図１０】実施の形態２に係るセッション情報管理表の例を示す図。
【図１１】実施の形態３に係るシステムの構成例を示す図。
【図１２】実施の形態３に係るＷｅｂアプリサーバ及びセッションサーバの動作例を示すフローチャート図。
【図１３】実施の形態１〜３に係るＷｅｂアプリサーバ及びセッションサーバのハードウェア構成例を示す図。
【符号の説明】
【００４７】
１０１  クライアント装置、１０２  ネットワーク、１０３  Ｗｅｂアプリサーバ装置、１０４  セッションサーバ装置、１０３１  セッション管理フィルタ、１０３２  Ｗｅｂアプリケーション、１０３３  業務単位セッション情報保存部、１０４１  業務管理部、１０４２  セッション識別子管理部、１０４３  セッション情報管理部、１０４４  ＵＲＬ管理表、８０４１  業務管理部、８０４２  業務構成判断機構。
【図１】
2007264986.tif 000003
【図２】
2007264986.tif 000004
【図３】
2007264986.tif 000005
【図４】
2007264986.tif 000006
【図５】
2007264986.tif 000007
【図６】
2007264986.tif 000008
【図７】
2007264986.tif 000009
【図８】
2007264986.tif 000010
【図９】
2007264986.tif 000011
【図１０】
2007264986.tif 000012
【図１１】
2007264986.tif 000013
【図１２】
2007264986.tif 000014
【図１３】
2007264986.tif 000015