(57)【要約】【課題】アプリケーションプログラムの種類によらず汎用的な方法によって、中断したセッションの処理を他のセッションにおいて引き継いで実行させる。【解決手段】端末装置から受けた要求に応じて処理を行うサーバ装置を提供する。サーバ装置は、同時に複数のセッションを処理中とすることが可能であり、当該端末装置から受けたセッション処理要求を処理する。そして、当該処理中のセッションの各々に対応付けて、当該セッションの処理経過を示す経過情報を記憶する。そして、複数の当該セッションのうち、第１セッションから第２セッションへ処理を引き継がせるか否かを判断する。そして、その判断に基づいて、当該第２セッションに対応する第２経過情報を当該第１セッションに対応する第１経過情報によって更新する。【選択図】図２
2006330973.tif 000002
【特許請求の範囲】
【請求項１】
端末装置から受けた要求に応じて処理を行うサーバ装置として、情報処理装置を機能させるプログラムであって、
当該情報処理装置を、
同時に複数のセッションを処理中とすることが可能であり、当該端末装置から受けたセッション処理要求を処理する処理部と、
当該処理中のセッションの各々に対応付けて、当該セッションの処理経過を示す経過情報を記憶する記憶部と、
複数の当該セッションのうち、第１セッションから第２セッションへ処理を引き継がせるか否かを判断する判断部と、
当該判断部による判断に基づいて、当該第２セッションに対応する第２経過情報を当該第１セッションに対応する第１経過情報によって更新する引継部と
して機能させるプログラム。
【請求項２】
前記判断部は、前記第１セッションの処理経過が前記第２セッションの処理経過よりも進行していることを条件に、第１セッションから第２セッションへ処理を引き継がせると判断する
請求項１に記載のプログラム。
【請求項３】
前記処理部は、同時に複数の利用者をログインさせることが可能であり、前記端末装置から受けたログイン要求を処理し、
前記記憶部は、前記処理中のセッションの各々に対応付けて、当該セッションにおいて前記サーバ装置にログインしている利用者の識別情報を更に記憶し、
前記判断部は、前記第１セッション及び前記第２セッションに同一の識別情報が対応付けられていることを条件に、前記第１セッションから前記第２セッションへ処理を引き継がせると判断する
請求項１に記載のプログラム。
【請求項４】
前記情報処理装置を、
前記利用者から、当該利用者の識別情報が対応付けられている第１セッションから第２セッションへ処理を引き継がせるか否かの指示を受け付ける入力部
として、さらに機能させ、
前記判断部は、第１セッションから第２セッションへ処理を引き継がせる旨の指示が入力されることを条件に、第１セッションから第２セッションへ処理を引き継がせると判断する
請求項３に記載のプログラム。
【請求項５】
前記処理部は、前記ログイン要求が適切に処理されることに応じて、前記セッションの処理を開始する
請求項３に記載のプログラム。
【請求項６】
前記判断部は、第１セッションが処理中であり、かつ第２セッションの処理が開始されたことに応じて、第１セッションから第２セッションへ処理を引き継がせるか否かを判断する
請求項３に記載のプログラム。
【請求項７】
前記情報処理装置を、
処理中の各々のセッションについて、当該セッションの処理が進行することなく予め定められた期間が経過したことを条件として、当該セッションに対応する経過情報を前記記憶部において無効化する無効化部として更に機能させ、
前記判断部は、ログインした前記利用者の識別情報が、経過情報が有効な何れかのセッションに対応付けて前記記憶部に記憶されていることを条件として、第１セッションから第２セッションへ処理を引き継がせると判断する
請求項３に記載のプログラム。
【請求項８】
前記情報処理装置を、
ログインした前記利用者の識別情報が第１セッションに対応付けて既に前記記憶部に記憶されていることを条件として、当該第１セッションの処理経過が進行することなく経過した経過時間を取得する取得部と、
取得した前記経過時間が予め定められた時間以上であることを条件として、当該第１セッションの処理を引き継いで実行させるか否かを示す指示を、利用者から入力する入力部と
して更に機能させ、
前記判断部は、当該第１セッションを引き継いで実行させる指示を入力し、または、取得した前記経過時間が前記予め定められた時間未満であることを条件として、第１セッションから第２セッションへ処理を引き継がせると判断する
請求項７に記載のプログラム。
【請求項９】
前記情報処理装置を、
ログインした前記利用者の識別情報が第１セッションに対応付けて既に前記記憶部に記憶されていることを条件として、当該第１セッションの処理を引き継ぐ旨を示す選択肢と、当該第１セッションの処理を引き継がずに新たな処理を開始する旨を示す選択肢とを表示する表示部と、
当該第１セッションの処理を引き継ぐ旨を示す選択肢が選択されたことに応じて、当該第１セッションの処理を引き継ぐ旨の指示を入力したと判断する入力部と、
当該第１セッションの処理が進行することなく経過した経過時間を取得する取得部と、
前記取得部によって取得された経過時間がより短い場合に、当該経過時間がより長い場合と比較して、当該第１セッションの処理を引継ぐ旨を示す選択肢を、他の選択肢よりもより優先して前記表示部により表示させる表示制御部として
更に機能させ、
前記判断部は、当該第１セッションを引き継いで実行させる指示を入力したことを条件として、第１セッションから第２セッションへ処理を引き継がせると判断する
請求項３に記載のプログラム。
【請求項１０】
前記記憶部は、
処理中の各々のセッションに対応して設けられ、当該セッションの経過情報を記憶する複数の第１領域と、
処理中のセッション毎に、当該セッションにおいてログインした利用者の識別情報と、当該セッションに対応する前記第１領域へのポインタとを記憶する第２領域と
を有し、
前記引継部は、前記第２領域において、前記第１セッションに対応する前記第１領域へのポインタを、前記第２セッションに対応する第１領域のポインタとして記憶させることにより、当該第２セッションに対応する第２経過情報を当該第１セッションに対応する当該第１経過情報によって更新する
請求項１に記載のプログラム。
【請求項１１】
端末装置から受けた要求に応じて処理を行う複数のサーバ装置の一として、情報処理装置を機能させるプログラムであって、
前記判断部は、ログインした前記利用者の識別情報が一のサーバ装置の前記記憶部に記憶されていないことを条件として、他のサーバ装置の記憶部に当該識別情報が記憶されているか否かを判断し、さらに、
当該他のサーバ装置の記憶部に当該識別情報が記憶されていることを条件として、第１セッションから第２セッションへ処理を引き継がせると判断し、
前記引継部は、当該識別情報に対応して記憶された第１経過情報を前記他のサーバ装置の記憶部から取得して、取得した当該第１経過情報によって、当該サーバ装置の記憶部において前記第２セッションに対応する第２経過情報を更新する
請求項１０に記載のプログラム。
【請求項１２】
前記引継部は、前記第１経過情報を前記第２経過情報へコピーすることによって更新する
請求項１に記載のプログラム。
【請求項１３】
前記情報処理装置を、
前記引継部によって、前記第１セッションに対応する第１経過情報を前記第２セッションに対応付けて前記記憶部に記憶させたことを条件として、当該第１セッションを無効化する無効化部
として更に機能させる請求項１に記載のプログラム。
【請求項１４】
端末装置から受けた要求に応じて処理を行うサーバ装置であって、
同時に複数のセッションを処理中とすることが可能であり、当該端末装置から受けたセッション処理要求を処理する処理部と、
当該処理中のセッションの各々に対応付けて、当該セッションの処理経過を示す経過情報を記憶する記憶部と、
複数の当該セッションのうち、第１セッションから第２セッションへ処理を引き継がせるか否かを判断する判断部と、
当該判断部による判断に基づいて、当該第２セッションに対応する第２経過情報を当該第１セッションに対応する第１経過情報によって更新する引継部と
を備えるサーバ装置。
【請求項１５】
端末装置から受けた要求に応じて処理を行うサーバ装置においてセッションを管理する管理方法であって、
前記サーバ装置は、
当該処理中のセッションの各々に対応付けて、当該セッションの処理経過を示す経過情報を記憶する記憶部を有し、
当該端末装置から受けたセッション処理要求を処理する処理段階と、
複数の当該セッションのうち、第１セッションから第２セッションへ処理を引き継がせるか否かを判断する判断段階と、
当該判断段階における判断に基づいて、当該第２セッションに対応する第２経過情報を当該第１セッションに対応する第１経過情報によって更新する引継段階と
を備える管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置、管理方法およびプログラムに関する。特に、本発明は、端末装置から要求を受けて開始したセッションを管理するサーバ装置、管理方法およびプログラムに関する。
【背景技術】
【０００２】
近年、ワールド・ワイド・ウェブは、不特定人に対する情報提供のみならず、特定人とのコミュニケーションを通じたビジネスにも利用されるようになってきている。例えば、商品販売用サイトにおいて、ウェブ・サーバは、まず、ＩＤやパスワードを利用者に入力させてその利用者を認証する。そして、ウェブ・サーバは、認証の成功を条件として、商品リスト等をブラウザ上に表示して利用者に選択させる。利用者が選択した商品の情報は、その利用者に対応付けて購入品の候補としてウェブ・サーバ上のメモリに記録される。利用者から見れば、購入品の候補は、いわゆる、「買い物籠」に入った状態となる。そして、ウェブ・サーバは、購入決定の指示を利用者から受けたことに応じて、購入品の情報をデータベースに登録する。これを受けて、例えば、発注処理用のサーバおよび決済処理用のサーバが処理を開始する。
【０００３】
このようなウェブ・サーバは、利用者から複数の指示を入力し、その入力に応じて複数の処理を行う。即ち例えば、ウェブ・サーバは、利用者がウェブ・ブラウザ上で商品を選択する毎に、その商品の画像を「買い物籠」に入った状態で表示する。このとき、同一の利用者が複数のウェブ・ブラウザを起動する場合もあることから、処理の途中経過を、利用者のみに対応付けて管理するのは適切でない。このため、従来、ウェブ・サーバは、互いに関連する一連の処理をセッションとして管理している。例えば、ウェブ・サーバは、通信開始要求を受ける毎に、新たなセッションＩＤを生成し、そのセッションＩＤをウェブ・ブラウザに通知する。ウェブ・ブラウザは、このセッションＩＤを通信用データに含めてウェブ・サーバに送信する。ウェブ・サーバは、ウェブ・ブラウザから通信用データを受信した場合に、その通信用データに含まれるセッションＩＤを読み出すことによって、何れのセッションにおける通信用データであるかを判断することができる。
【０００４】
従来、ウェブ・ブラウザは、セッションを適切に継続するために、ウェブ・サーバから通知を受けたセッションＩＤを適切な期間記憶している。例えば、あるウェブ・ブラウザにおいて、セッションＩＤは、ウェブ・ブラウザの起動時にウェブ・サーバから取得され、ウェブ・ブラウザの終了時に破棄される。これによって、利用者は、ウェブ・ブラウザの終了することによってウェブ・サーバにおける処理を最初からやり直すことができる。一方で、ウェブ・サーバは、セッションにおける処理の途中経過を、セッションＩＤに対応付けて記憶している。そして、ウェブ・サーバは、セッションが終了していなくても、セッションの処理が進行することなく一定期間が経過した場合には、その途中経過を破棄する。これによって、ウェブ・ブラウザが終了したために使われなくなったセッションを終了して、ウェブ・サーバ内の記憶領域を開放することができる。
【０００５】
下記特許文献については後述する。
【特許文献１】特表２００１−５２５５７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述のように、ウェブ・ブラウザが終了した場合には、利用者がセッションの終了を意図したか否かに関わらず、セッションが終了する。しかしながら、ウェブ・ブラウザの終了は極めて簡単な操作によって行えるので、利用者は、誤ってウェブ・ブラウザを終了させてしまうことがある。このような場合には、それまでに行った処理の途中経過がウェブ・サーバ上に管理されているにも拘らず、その途中経過を引き継いで処理を継続することはできなかった。利用者の誤操作のみならず、その他の障害発生によってウェブ・ブラウザに記憶されたセッションＩＤが削除されてしまった場合においても、処理の途中経過を引き継ぐことはできなかった。
【０００７】
なお、上記の特許文献１において、トランザクションの処理経過を所定のポイントに達する毎に記録することによって、トランザクションをそのポイントから継続する技術が提案されている（例えば、同文献の段落４８を参照。）。この技術のように、トランザクションの中断および再開を実現する技術について、その典型的な処理例を示す。
【０００８】
図１１は、トランザクションを中断および再開する従来の方法を示す。第１トランザクションは、利用者のログインによって開始し、利用者のログアウトによって終了する。第１トランザクションの進行中には、その処理経過を示す経過情報がメモリ上に順次記録される。経過情報は、ログアウト時にＤＢシステムに保存される。また、経過情報は、第１トランザクションの進行中に、定期的にＤＢシステムに保存される。
【０００９】
第１トランザクションの終了後、利用者が再度ログインすると、第２トランザクションが開始される。第２トランザクションの開始時に、その利用者に対応する経過情報がＤＢシステムからメモリに読み出される。これによって、第２トランザクションにおいて、第１トランザクションにおいて中断された処理を再開することができる。
【００１０】
この技術において、保存処理のタイミングは、トランザクションを処理するアプリケーションプログラムによって定められる。即ち例えば、アプリケーションプログラムの開発者は、アプリケーションプログラムの種類毎に、その処理内容に適した保存処理のタイミングや、保存すべきデータの種類を設計していた。このため、アプリケーションプログラムの開発工程が著しく増加し、バージョンアップや設計変更に要する開発費用や開発期間を増大させてしまう場合があった。
【００１１】
そこで本発明は、上記の課題を解決することのできるサーバ装置、管理方法およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明の第１の形態においては、端末装置から受けた要求に応じて処理を行うサーバ装置であって、同時に複数のセッションを処理中とすることが可能であり、当該端末装置から受けたセッション処理要求を処理する処理部と、当該処理中のセッションの各々に対応付けて、当該セッションの処理経過を示す経過情報を記憶する記憶部と、複数の当該セッションのうち、第１セッションから第２セッションへ処理を引き継がせるか否かを判断する判断部と、当該判断部による判断に基づいて、当該第２セッションに対応する第２経過情報を当該第１セッションに対応する第１経過情報によって更新する引継部とを備えるサーバ装置、当該サーバ装置においてセッションを管理する管理方法およびプログラムを提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明の効果】
【００１３】
本発明によれば、アプリケーションプログラムの種類によらず汎用的な方法によって、中断したセッションの処理を他のセッションにおいて引き継いで実行させることができる。
【発明を実施するための最良の形態】
【００１４】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１５】
図１は、情報処理システム１０の全体構成を示す。情報処理システム１０は、端末装置１５と、サーバ装置２０−１〜Ｎと、ＤＢシステム２５とを備える。端末装置１５は、インターネット等の通信ネットワークを介してサーバ装置２０−１〜Ｎと接続される。サーバ装置２０−１〜Ｎは、ＤＢシステム２５と共に、ウェブでのサービスを提供する。サーバ装置２０−１〜ＮおよびＤＢシステム２５の各々は、図示では、別の筐体に設けられた別個の装置である。これに代えて、サーバ装置２０−１〜ＮおよびＤＢシステム２５の少なくとも一部は、同一の筐体に設けられた１つの装置によって実現されてもよい。即ち、単一の筐体に設けられた装置が、JVM(Java Virtual Machine)等のソフトウェアサーバを複数動作させ、それらのソフトウェアサーバの各々が、サーバ装置２０−１〜Ｎの各々として機能してもよい。
【００１６】
端末装置１５は、ウェブ・ブラウザを動作させて利用者の指示を入力し、その指示をサーバ装置２０−１〜Ｎに送信する。例えば、端末装置１５は、URL(Uniform Resource Locator)を指定したセッション処理要求をサーバ装置２０−１〜Ｎに送信してもよい。サーバ装置２０−１〜Ｎの何れか（例えば、サーバ装置２０−１）は、端末装置１５から受けた要求に応じて処理を行う。具体的には、サーバ装置２０−１は、端末装置１５から受けたセッション処理要求に応じてセッションの処理を開始し、続けて受信した指示に応じてそのセッションの処理を進行させる。
【００１７】
サーバ装置２０−１は、セッションの途中経過を示す経過情報を、サーバ装置２０−１内の記憶部に記憶していく。そして、サーバ装置２０−１は、セッションの処理中に利用者から明示的な指示を受けた場合に、その処理結果をＤＢシステム２５に記録する。なお、サーバ装置２０−１に代えて、サーバ装置２０−２〜Ｎの何れかがセッションを処理してもよい。セッションを処理するサーバ装置は、例えばセッション処理要求を受けたときの処理負荷等に基づいて、サーバ装置２０−１〜Ｎの中から選択されてもよい。
【００１８】
図２は、サーバ装置２０−１の機能を機能ブロックにより示す。サーバ装置２０−１は、入力部２００と、処理部２１０と、記憶部２２０と、無効化部２３０と、判断部２４０と、取得部２５０と、表示制御部２６０と、表示部２７０と、引継部２８０とを有する。入力部２００は、各種の指示および要求の入力を端末装置１５から受け付ける。処理部２１０は、同時に複数のセッションを処理中とすることが可能であり、端末装置１５から受けたセッション処理要求に応じてセッションの処理を開始する。また、処理部２１０は、セッションの処理中に利用者のログイン要求を受けて、当該利用者をログインさせる。このログイン要求には、その利用者の識別情報、例えばユーザＩＤおよびパスワード等が含まれる。更に、処理部２１０は、同時に複数の利用者をログインさせることが可能である。
【００１９】
ここで、セッションとは、予め定められた時間間隔を空けることなく同一のウェブ・ブラウザからの指示で行う一連の処理をいう。例えば、セッションは、既に開始したセッションの識別情報（以下、セッションＩＤ）とは異なるセッションＩＤを端末装置１５から受信したときに開始する。そして、セッションは、そのセッションＩＤを受信しなくなってから所定のタイムアウト期間が経過したときに終了する。
【００２０】
記憶部２２０は、処理中のセッションの各々に対応付けて、そのセッションの処理経過を示す経過情報、および、そのセッションにおいてサーバ装置２０−１にログインしている利用者の識別情報を対応付けて記憶している。無効化部２３０は、処理中の各々のセッションについて、そのセッションの処理が進行することなく予め定められたタイムアウト期間が経過したことを条件として、そのセッションに対応する経過情報を無効化部２３０において無効化する。例えば、無効化部２３０は、経過情報を記憶している記憶部２２０内の領域を開放して次の処理に利用可能としてもよい。即ちこの場合、そのセッションは終了する。また、無効化部２３０は、引継部２８０から受けた明示的な指示に基づいてセッションを無効化してもよい。
【００２１】
いま、処理部２１０により第１セッションが既に開始され処理が進行されているものとする。また、処理部２１０により新たな第２セッションが開始されたものとする。判断部２４０は、第１セッションが処理中であり、かつ第２セッションの処理が開始されたことに応じて、第１セッションから第２セッションへ処理を引き継がせるか否かを判断する。具体的には、判断部２４０は、第１セッション及び第２セッションに同一の識別情報が対応付けられていることを条件に、第１セッションから第２セッションへ処理を引き継がせると判断する。好ましくは、判断部２４０は、第１セッションの処理経過が第２セッションの処理経過よりも進行していることを更に条件として、第１セッションから第２セッションへ処理を引き継がせると判断する。第１セッション及び第２セッションに同一の識別情報が対応付けられていない場合には、判断部２４０は、サーバ装置２０−２〜Ｎにおける記憶部において、その識別情報が記憶されているか否かを更に判断してもよい。取得部２５０は、ログインしたその利用者の識別情報が第１セッションに対応付けて既に記憶部２２０に記憶されていることを条件として、当該第１セッションの処理が進行することなく経過した経過時間を取得する。例えば、取得部２５０は、記憶部２２０中のデータに基づいて経過時間を算出してもよい。
【００２２】
表示制御部２６０は、表示部２７０における表示を制御する。表示部２７０は、表示制御部２６０の制御に基づいて、利用者に対して選択肢を表示する。具体的には、表示部２７０は、端末装置１５の画面上に表示すべき選択肢のデータを生成し、端末装置１５に送信して端末装置１５においてそれらの選択肢を表示させる。例えば、表示部２７０は、第２セッションにおいてログインした当該利用者の識別情報が、第１セッションに対応付けて既に記憶部２２０に記憶されていることを条件として、当該第１セッションの処理を引き継ぐ旨を示す選択肢と、当該第１セッションを引き継がずに新たな処理を開始する旨を示す選択肢とを表示する。表示制御部２６０は、例えばこれらの選択肢の表示順序を制御してもよい。
【００２３】
引継部２８０は、記憶部２２０において、判断部２４０による判断に基づいて、第２セッションに対応する第２経過情報を第１セッションに対応する第１経過情報によって更新する。
なお、本図においては、サーバ装置２０−１〜Ｎを代表してサーバ装置２０−１の機能を説明したが、サーバ装置２０−２〜Ｎの各々も、サーバ装置２０−１と略同一の機能を有するので説明を省略する。
【００２４】
図３は、記憶部２２０のデータ構造の一例を示す。記憶部２２０は、例えば、後述するＲＡＭ１０２０等の不揮発性記録媒体によって実現される。そして、記憶部２２０は、各々が第１領域の一例である経過情報記録領域３１０−Ｍおよび経過情報記録領域３１０−Ｌと、第２領域の一例であるセッション情報記憶領域３００とを有する。セッション情報記憶領域３００は、処理中のセッションの各々に対応付けて、そのセッションの識別情報（セッションＩＤ）、そのセッションにおいてサーバ装置２０−１にログインしている利用者の識別情報（利用者ＩＤ）、および、そのセッションの処理が進行した最終時刻（最終処理時刻）を記憶している。また、セッション情報記憶領域３００は、処理中のセッションの各々に対応付けて、そのセッションに対応する経過情報記録領域へのポインタを記憶している。
【００２５】
経過情報記録領域３１０−Ｌおよび経過情報記録領域３１０−Ｍは、処理中のセッションの各々に対応して設けられ、そのセッションの経過情報を記憶している。例えば、経過情報記録領域３１０−Ｍは、セッションＩＤが３６５７のセッションに対応して設けられる。そして、セッション情報記憶領域３００は、セッションＩＤが３６５７のセッションに対応付けて、経過情報記録領域３１０−Ｍに対するポインタを記憶している。各々の経過情報記憶領域は、対応するセッションが開始された場合に確保され、そのセッションが終了した場合に開放される。なお、経過情報記録領域３１０−Ｌおよび経過情報記録領域３１０−Ｍは、いわゆるワークメモリと呼ばれる、通常のアプリケーションプログラムが処理経過を一時的に記憶する領域である。即ち、本例で説明するセッションの引継機能の有無によらず、これらの領域はウェブ・サーバによって確保されている。
【００２６】
処理部２１０は、端末装置１５から受けたセッション処理要求に応じてセッションの処理を開始する。このとき、処理部２１０は、記憶部２２０内に新たなセッションＩＤを記憶させ、そのセッションＩＤに対応付けて、新たに確保した経過情報記憶領域へのポインタを記憶させる。そのセッションＩＤを３９５１とし、そのときの経過情報記憶領域を経過情報記録領域３１０−Ｌとする。判断部２４０は、第２セッションにおいて、利用者がサーバ装置２０−１にログインしたことに応じて、その利用者の利用者ＩＤを検出する。これをＢＢＢとする。
【００２７】
判断部２４０は、その利用者ＩＤが、第１セッションに対応付けて既に記憶部２２０に記憶されているか否かを判断する。本図の例では、判断部２４０は、第２セッションの利用者ＩＤであるＢＢＢが、第１セッションに対応付けて既に記憶されているか否かを判断する。判断部２４０は、ＢＢＢが、セッションＩＤ３６５７に対応付けて既に記憶されていると判断する。このため、引継部２８０は、第２セッションに対応する第２経過情報を、当該第１セッションに対応する第１経過情報によって更新する。
【００２８】
具体的には、引継部２８０は、セッション情報記憶領域３００において、当該第１セッションに対応する経過情報記憶領域へのポインタを、第２セッションに対応する経過情報記憶領域のポインタとして記憶させてもよい。本図の例では、引継部２８０は、経過情報記録領域３１０−Ｌに代えて、経過情報記録領域３１０−Ｍへのポインタを、セッションＩＤ３９５１に対応する経過情報記憶領域のポインタとして記憶させてもよい。
【００２９】
これに代えて、引継部２８０は、経過情報記録領域３１０−Ｍから経過情報記録領域３１０−Ｌに対して、経過情報の内容をコピーしてもよい。このとき、引継部２８０は、経過情報記録領域３１０−Ｍ中に記録された情報のうち、予め定められた所定の情報のみを選択して読み出し、経過情報記録領域３１０−Ｌ中の対応する情報を上書きしてもよい。より詳細には、引継部２８０は、ウェブ・ブラウザの種類を特定する情報や、利用者の使用言語・使用地域を特定する情報は引き継がずに、利用者の操作履歴やアプリケーションプログラムの処理履歴のみを引き継いでもよい。これによって、利用者が他の端末装置からセッションを再開した場合であっても、その端末装置に適合した形式で処理を再開することができる。
【００３０】
図４は、サーバ装置２０−１による処理の流れの一例を示す。サーバ装置２０−１は、例えば定期的に、または、端末装置から何らかの要求を受ける毎に、以下の処理を繰り返す。処理部２１０は、端末装置１５からセッション処理要求を受けたことに応じて（Ｓ４００：ＹＥＳ）、セッションの処理を開始する（Ｓ４１０）。例えば、既に第１セッションの処理が開始されているのであれば、新たに第２セッションの処理が開始される。ここで、セッション処理要求とは、新たな通信の開始を示す明示的な要求のみならず、記憶部２２０に記憶されていない新たなセッションＩＤを指定した通信要求であってもよい。無効化部２３０は、処理中のセッションについて、そのセッションの処理が進行することなく予め定められたタイムアウト期間が経過したことを条件として（Ｓ４２０：ＹＥＳ）、そのセッションに対応する経過情報を記憶部２２０において無効化する（Ｓ４３０）。
【００３１】
具体的には、まず、無効化部２３０は、記憶部２２０のセッション情報記憶領域３００から、各々のセッションに対応する最終処理時刻を取得する。そして、無効化部２３０は、それぞれの最終処理時刻から、現在時刻に至るまでに、タイムアウト期間が経過したか否かを判断する。そして、タイムアウト期間が経過した最終処理時刻に対応するセッションを、記憶部２２０において無効化する。例えば、無効化部２３０は、そのセッションのセッションＩＤを記憶部２２０から削除してもよいし、そのセッションに対応する経過情報記憶領域を記憶部２２０において領域開放してもよい。
【００３２】
図５は、サーバ装置２０−１が第１セッションの処理を引き継ぐ処理の流れの一例を示す。サーバ装置２０−１は、第２セッションにおいて利用者がサーバ装置２０−１に対してログイン要求を送り、かつそのログイン要求が適切に処理されたことに応じて、以下の処理を行う。判断部２４０は、ログインした利用者の識別情報が、第１セッションに対応付けて既に記憶部２２０に記憶されているか否かを判断する（Ｓ５００）。当該識別情報が第１セッションに対応付けて記憶されていることを条件として（Ｓ５００：ＹＥＳ）、判断部２４０は、当該第１セッションの処理を引き継ぐべきか否かの条件判断を行う（Ｓ５１０）。
【００３３】
条件が成立したことに応じて（Ｓ５２０：ＹＥＳ）、引継部２８０は、第１セッションに対応する第１経過情報を第２セッションに対応付けて記憶部２２０に記憶させる（Ｓ５３０）。この処理は、図３で述べたように、ポインタの更新によって実現されてもよい。第１セッションに対応する第１経過情報を第２セッションに対応付けて記憶部２２０に記憶させたことを条件として、無効化部２３０は、第１セッションを記憶部２２０において無効化する（Ｓ５４０）。例えば、無効化部２３０は、第１セッションのセッションＩＤを削除してもよい。
【００３４】
一方で、ログインした利用者の識別情報が記憶部２２０に記憶されていないことを条件として（Ｓ５００：ＮＯ）、判断部２４０は、他のサーバ装置の記憶部に当該識別情報が記憶されているか否かを判断する（Ｓ５５０）。例えば、判断部２４０は、図１に示したサーバ装置２０−２〜Ｎの何れかにおいて、その記憶部に当該識別情報が記憶されているか否かを、サーバ装置２０−２〜Ｎの各々に問い合わせる処理を行う。
【００３５】
他のサーバ装置の記憶部に当該識別情報が記憶されていることを条件として（Ｓ５５０：ＹＥＳ）、判断部２４０は、当該他のサーバ装置において当該識別情報に対応する他のセッション（例えば第１セッション）の処理を引き継ぐべきか否かの条件判断を行う（Ｓ５６０）。条件が成立したことに応じて（Ｓ５７０：ＹＥＳ）、引継部２８０は、第１セッションの第１経過情報を当該他のサーバ装置の記憶部から取得して、取得した当該第１経過情報によって、サーバ装置２０−１の記憶部２２０において第２セッションに対応する第２経過情報を更新する（Ｓ５８０）。この場合には、当該他のサーバ装置の記憶部において、第１セッションが無効化されてもよい（Ｓ５４０）。
【００３６】
この他の場合には、処理部２１０は、利用者が新たにログインした場合と同様の処理を行う（Ｓ５９０）。この処理は、通常のウェブ・サーバに実装されている既存技術によって実現可能であるから説明を省略する。
【００３７】
図６は、サーバ装置２０−１が第１セッションを引き継ぐか否かの条件を判断する処理の一例を示す。図５のＳ５１０およびＳ５６０における処理はそれぞれ略同一であるので、本図においてはこれらをまとめて説明する。まず、取得部２５０は、第１セッションの処理が進行することなく経過した経過時間を取得する（Ｓ６００）。取得したその経過時間が、判断部２４０は、予め定められた期間以上であるか否かを判断する（Ｓ６１０）。例えば、判断部２４０は、取得したその経過時間が、上述のタイムアウト期間の予め定められた割合以上であるか否かを判断してもよい。
【００３８】
予め定められた時間以上であることを条件として（Ｓ６１０：ＹＥＳ）、表示部２７０は、第１セッションの処理を引き継ぐ旨を示す選択肢と、第１セッションを引き継がずに新たな処理を開始する旨を示す選択肢とを表示する（Ｓ６２０）。入力部２００は、これらの選択肢を利用者に選択させることによって、第１セッションから第２セッションへ処理を引き継がせるか否かの指示を受け付ける。即ち、入力部２００は、第１セッションの処理を引き継ぐ旨を示す選択肢が利用者に選択されたことに応じて、第１セッションの処理を引き継いで実行させる指示を利用者から入力したと判断する（Ｓ６３０）。
【００３９】
引継部２８０は、第１セッションを引き継いで実行させる引継指示を入力し（Ｓ６４０：ＹＥＳ）、または、取得した経過時間が予め定められた期間未満であることを条件として（Ｓ６１０：ＮＯ）、第１セッションを引き継いで実行させるべく条件成立と判断する（Ｓ６５０）。一方で、入力した指示が引継指示でないことを条件として（Ｓ６４０：ＮＯ）、引継部２８０は、第１セッションを引き継がせないで実行させるべく条件不成立と判断する（Ｓ６６０）。
【００４０】
このように、本図の処理によれば、利用者が第１セッションの引継を希望する可能性を、第１セッションの処理が進行することなく経過した経過時間に基づいて予測することができる。即ち例えば、利用者は、誤操作や障害発生によってウェブ・ブラウザを終了させた場合には、その処理を継続することを希望しているのであるから、その後即座に他のウェブ・ブラウザを起動する可能性が高い。このため、このような場合には、サーバ装置２０−１は、利用者に指示を入力させることなく第１セッションを引継いで、利用者の利便性を高めることができる。
【００４１】
図７は、表示部２７０により端末装置１５において表示されるログイン画面の一例を示す。表示部２７０は、所定のＵＲＬを指定したセッション処理要求を受けたことに応じて、または、所定のメニューが選択されたことに応じて、利用者がログインするためのログイン画面を表示する。ログイン画面では、利用者が受けるサービス（例えば「ＸＸショッピングモールサイト」）を示す表示と、利用者を認証するためのＩＤおよびパスワードを入力する入力欄が表示される。判断部２４０は、これらの入力欄に入力された文字等に基づいて利用者が正しく認証されたことを条件として、利用者がログインしたと判断する。
【００４２】
図８は、表示部２７０により端末装置１５において表示された、第１セッションを引き継ぐか否かを選択するための選択肢の一例を示す。表示部２７０は、第２セッションにおいてログインした利用者の識別情報が既に記憶部２２０に記憶されていることに応答して、本図に示す３つの選択肢を表示する。１つ目は、「ログインページに戻る」であり、この選択に応じて表示部２７０は図７の画面に表示を戻す。これを選択すれば、利用者は、ログインを諦めて、例えば他の利用者ＩＤでログインし直すことができる。これは、第１セッションを処理中のウェブ・ブラウザが正常に稼働中である場合等には、その処理を存続させることができる点で有効である。
【００４３】
２つ目は、「既存のセッションを終了させて新規に処理を開始する」であり、この選択に応じて処理部２１０は、第１セッションの処理を引き継ぐことなく第２セッションで新たな処理を開始する。この場合、無効化部２３０は、第１セッションを記憶部２２０において無効化する。３つ目は、「既存セッションの処理を引き継ぐ」であり、この選択に応じて引継部２８０は、第１セッションの処理を第２セッションにおいて引き継いで実行する。この場合にも、無効化部２３０は、第１セッションを記憶部２２０において無効化する。
【００４４】
この表示画面において、表示制御部２６０は、取得部２５０によって取得された経過時間に応じて、これらの選択肢を表示する表示優先度を制御してもよい。具体的には、表示制御部２６０は、取得された経過時間がより短い場合に、その経過時間がより長い場合と比較して、第１セッションの処理を引き継ぐ旨を示す選択肢を、他の選択肢よりもより優先して表示制御部２６０に表示させてもよい。即ち例えば、表示制御部２６０は、経過時間が極めて短いことを条件として、選択肢「既存セッションの処理を引き継ぐ」を、画面の一番上等の目を引く部分に分かり易く表示させてもよい。これによって、利用者が誤操作を行った可能性がある程度高い場合には、処理の引継ぎ操作を容易にさせることができ、利用者の利便性を更に高めることができる。
【００４５】
図９は、第１セッションが第２セッションに引き継がれる処理のタイミングチャートを示す。サーバ装置２０−１は、第１セッションの処理中にウェブ・ブラウザが終了した場合であっても、その経過情報である第１経過情報を記憶部２２０中に保持する。但し、処理が進行することなくタイムアウト期間が経過した場合には、第１経過情報は破棄される。
【００４６】
新たに起動されたウェブ・ブラウザからセッション処理要求を受けたことに応答して、処理部２１０は、第２セッションを開始する。第２セッションにおいて、利用者がサーバ装置２０−１にログインしたことに応答して、判断部２４０は、その利用者の利用者ＩＤが既に記憶部２２０に記憶されているか否かを判断する。引継部２８０は、ログインした利用者の識別情報が、経過情報が有効な何れかのセッションに対応付けて記憶部２２０に記憶されていることを条件として、そのセッションの処理を第２セッションにおいて引き継いで実行させる。その後、その経過情報に基づいて、中断した処理が再開される。
【００４７】
このように、本実施例に示すサーバ装置２０−１によれば、処理中のセッションが、何らかの障害によって中断された場合において、そのセッションがサーバ装置２０−１においては有効なものとして管理されていれば、そのセッションを引き継いで処理を再開することができる。これにより、利用者は、障害発生までに行った操作を無駄にすることなく、以降の処理を効率的に行うことができる。更に、セッションの引継処理は、ポインタの更新といった極めて迅速な処理で実現され、利用者の操作性が高い。
【００４８】
また、本例に示すサーバ装置２０−１は、ウェブ・サーバが通常動作において処理経過を保存するメモリ領域から、その処理経過を読み出して第２セッションに引き継ぐ。即ち、本実施例に示す機能を実現するにあたっては、アプリケーションプログラムに対して、処理経過を保存するための特別な機能を実装する必要がない。このため、利用者は、経過情報を保存するために特別な操作をする必要がない。また、本実施例に示す機能を実現するには、既存のアプリケーションプログラムにおけるログイン時の処理に、セッションの引継を処理するサブルーチンの呼出し命令を追加するのみで充分である。このように、本実施例によれば、極めて少ない開発コストによって、様々なアプリケーションプログラムに対して、セッションの再開処理を追加することができる。
【００４９】
図１０は、サーバ装置２０−１として機能する情報処理装置５００のハードウェア構成の一例を示す。情報処理装置５００は、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、及びグラフィックコントローラ１０７５を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＢＩＯＳ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００５０】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィックコントローラ１０７５とを接続する。ＣＰＵ１０００は、ＢＩＯＳ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００５１】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ１０４０は、情報処理装置５００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０又はハードディスクドライブ１０４０に提供する。
【００５２】
また、入出力コントローラ１０８４には、ＢＩＯＳ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＢＩＯＳ１０１０は、情報処理装置５００の起動時にＣＰＵ１０００が実行するブートプログラムや、情報処理装置５００のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、入出力チップ１０７０を介してＲＡＭ１０２０またはハードディスクドライブ１０４０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００５３】
情報処理装置５００に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１０７０及び/又は入出力コントローラ１０８４を介して、記録媒体から読み出され情報処理装置５００にインストールされて実行される。プログラムがサーバ装置２０−１に働きかけて行わせる動作は、図１から図９において説明したサーバ装置２０−１における動作と同一であるから、説明を省略する。
【００５４】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムを情報処理装置５００に提供してもよい。
【００５５】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００５６】
【図１】図１は、情報処理システム１０の全体構成を示す。
【図２】図２は、サーバ装置２０−１の機能を機能ブロックにより示す。
【図３】図３は、記憶部２２０のデータ構造の一例を示す。
【図４】図４は、サーバ装置２０−１による処理の流れの一例を示す。
【図５】図５は、サーバ装置２０−１が第１セッションの処理を引き継ぐ処理の流れの一例を示す。
【図６】図６は、サーバ装置２０−１が第１セッションを引き継ぐか否かの条件を判断する処理の一例を示す。
【図７】図７は、表示部２７０により端末装置１５において表示されるログイン画面の一例を示す。
【図８】図８は、表示部２７０により端末装置１５において表示された、第１セッションを引き継ぐか否かを選択するための選択肢の一例を示す。
【図９】図９は、第１セッションが第２セッションに引き継がれる処理のタイミングチャートを示す。
【図１０】図１０は、サーバ装置２０−１として機能する情報処理装置５００のハードウェア構成の一例を示す。
【図１１】図１１は、従来技術における処理のタイミングチャートを示す。
【符号の説明】
【００５７】
１０  情報処理システム
１５  端末装置
２０  サーバ装置
２５  ＤＢシステム
２００  入力部
２１０  処理部
２２０  記憶部
２３０  無効化部
２４０  判断部
２５０  取得部
２６０  表示制御部
２７０  表示部
２８０  引継部
３００  セッション情報記憶領域
３１０  経過情報記録領域
５００  情報処理装置
【図１】
2006330973.tif 000003
【図２】
2006330973.tif 000004
【図３】
2006330973.tif 000005
【図４】
2006330973.tif 000006
【図５】
2006330973.tif 000007
【図６】
2006330973.tif 000008
【図７】
2006330973.tif 000009
【図８】
2006330973.tif 000010
【図９】
2006330973.tif 000011
【図１０】
2006330973.tif 000012
【図１１】
2006330973.tif 000013