(57)【要約】【課題】  メンテナンスなどでシステムがシャットダウンしてログアウトした場合でも、再ログイン後に、シャットダウン前の作業内容を継続することができるセッション情報保存システムを提供することにある。【解決手段】  アプリケーションサーバ100のメンテナンス情報がメンテナンス情報テーブル162に格納されている場合は、そのメンテナンス情報を含む画面データを生成して、ユーザ業務画面1104を表示する。また、そのメンテナンス情報に基づいて、メンテナンス警告画面を表示し、入力された業務データのセッション情報を、セッション情報テーブル161に格納する。  また、ユーザがログインした場合に、そのユーザに対応するセッション情報がセッション情報テーブル161に格納されている場合は、そのセッション情報を含む業務データ入力画面を生成して、ユーザ業務画面1104を表示する。【選択図】  図１
2005316634.tif 000002
【特許請求の範囲】
【請求項１】
業務データを入力されるクライアントと、該クライアントから送信された業務データを処理するサーバとを含むセッション情報保存システムであって、
前記システムへのログインに必要なユーザ識別情報に基づいてログイン処理を行うログイン制御手段と、
前記サーバのメンテナンスに関する情報を格納するメンテナンス情報テーブルと、
該メンテナンス情報テーブルに、前記サーバのメンテナンスに関するメンテナンス情報が含まれているか否かを検索するメンテナンス管理手段と、
該検索の結果、メンテナンス情報が含まれている場合は、該メンテナンス情報を含む画面データを生成する画面生成手段と、
該生成された画面データに従って、前記システムに関する業務データを入力する画面を表示するとともに、前記メンテナンス情報に含まれるメンテナンス情報の警告に関する情報に基づいて、メンテナンス警告画面を表示する表示手段と、
該メンテナンス警告が表示された際に入力されていた業務データを保存することが選択された場合、該業務データに関するセッション情報を、前記ユーザ識別情報と対応付けて格納するセッション情報テーブルとを備えることを特徴とするセッション情報保存システム。
【請求項２】
前記ログイン制御手段は、ログイン処理を行った際に使用したユーザ識別情報に対応するセッション情報が、前記セッション情報テーブルに含まれているか否かを検索し、
該検索の結果、該ユーザ識別情報に対応するセッション情報が含まれている場合は、
前記表示手段は、該セッション情報を含む業務データ入力画面を表示することを特徴とする請求項１記載のセッション情報保存システム。
【請求項３】
前記セッション情報保存システムは、
前記業務データが複数の画面に遷移して入力される場合、
ある画面から次の画面に遷移する際に、前記ある画面において入力された情報を、前記セッション情報テーブルに格納することを特徴とする請求項１記載のセッション情報保存システム。
【請求項４】
前記画面生成手段は、
前記クライアントにおいて表示される画面に関するスクリプトを生成するスクリプト生成部と、
該生成されたスクリプトをもとに、前記クライアントにおいて表示される画面データを生成する画面合成部とを含むことを特徴とする請求項１記載のセッション情報保存システム。
【請求項５】
前記セッション情報保存システムはさらに、管理者用クライアントを備え、
該管理者用クライアントは、前記サーバのメンテナンスに関する情報の入力を受け付け、該入力されたメンテナンス情報を、前記サーバに送信することを特徴とする請求項１記載のセッション情報保存システム。
【請求項６】
ユーザによって入力される業務データを蓄積するサーバにおいて、
前記ユーザの識別情報をもとにログイン処理を行うログイン制御部と、
前記サーバのメンテナンス情報を格納するメンテナンス情報テーブルと、
該メンテナンス情報テーブルに、前記サーバのメンテナンス情報が格納されている場合は、該メンテナンス情報に応じたスクリプトを生成して、該スクリプトを含む画面データを生成する画面生成部と、
前記サーバのメンテナンス情報に対応して、前記生成された画面データをもとに表示された画面に入力された業務データに対応するセッション情報と、前記ログイン処理を行ったユーザの識別情報とを対応付けて保存するセッション情報テーブルとを備え、
前記ログイン制御部は、ログイン処理後、該ログインに対応するユーザ識別情報に対応するセッション情報が、前記セッション情報テーブルに格納されているか否かを検索し、
該ユーザ識別情報に対応するセッション情報が格納されている場合は、前記画面生成部は、該セッション情報を含む画面データを生成することを特徴とするサーバ。
【請求項７】
前記メンテナンス情報は、少なくとも該メンテナンスに対応する識別情報、該メンテナンスの内容、及び該メンテナンスに関する警告を行う警告日時を含むことを特徴とする請求項６記載のサーバ。
【請求項８】
クライアントとサーバがネットワークを介して接続された業務システムにおけるセッション情報保存方法であって、
前記クライアントは、
前記システムへログインする際のユーザ識別情報を入力するログイン画面を表示し、
前記サーバは、
前記ログイン画面に入力された前記ユーザ識別情報に基づいてログイン処理を行い、
前記サーバのメンテナンスに関するメンテナンス情報がメンテナンス情報テーブルに含まれているか否かを検索し、
該検索の結果、メンテナンス情報が含まれている場合は、該メンテナンス情報に応じたスクリプトを含む画面データを生成し、
該生成された画面データを前記クライアントに送信し、
前記クライアントは、
前記送信された画面データを受信し、
該受信した画面データをもとに、前記システムに関する業務データを入力する画面を表示し、
前記メンテナンス情報に含まれるメンテナンス情報の警告に関する情報に基づいて、メンテナンス警告画面を表示し、
該メンテナンス警告が表示された際に入力されていた業務データを保存することが選択された場合、該業務データに関するセッション情報を前記サーバに送信し、
前記サーバは、
前記サーバから送信されたセッション情報を受信し、
該セッション情報を、前記ログイン処理に対応するユーザ識別情報と対応付けてセッション情報テーブルに格納することを特徴とするセッション情報保存方法。
【請求項９】
前記サーバは、
前記ログイン処理に対応するユーザ識別情報に対応付けられたセッション情報が、前記セッション情報テーブルに格納されている場合は、
該セッション情報を、前記画面データに埋め込んで、前記クライアントに送信することを特徴とする請求項８記載のセッション情報保存方法。
【請求項１０】
前記サーバは、
前記セッション情報を、前記ログイン処理に対応するユーザ識別情報と対応付けてセッション情報テーブルに格納した後に、該ユーザ識別情報に対応するユーザのログアウト処理を行うことを特徴とする請求項８記載のセッション情報保存方法。
【請求項１１】
ユーザによって操作されるクライアントと、該クライアントに接続され、業務データを格納するサーバを含む業務システムにおいて実行されるプログラムであって、
前記ユーザの識別情報をもとにログイン処理を行うステップと、
前記サーバのメンテナンス情報をメンテナンス情報テーブルに格納するステップと、
該メンテナンス情報テーブルに格納されているメンテナンス情報に応じたスクリプトを生成するステップと、
該スクリプトを含む画面データを生成するステップと、
前記サーバのメンテナンス情報に対応して、前記生成された画面データに従って表示された画面に入力された業務データに対応するセッション情報と、前記ログイン処理を行ったユーザ識別情報とを対応付けてセッション情報テーブルに保存するステップと、
前記ログイン処理後、該ログイン処理に対応するユーザ識別情報と対応付けられたセッション情報が、前記セッション情報テーブルに格納されているか否かを検索するステップと、
該ユーザ識別情報に対応するセッション情報が格納されている場合は、該セッション情報を含む画面データを生成するステップとを備えることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを利用したオンラインシステムにおけるセッション情報の保存システムに関する。
【背景技術】
【０００２】
インターネット等のネットワーク技術の発展により、企業の業務処理のＷｅｂ化が促進されている。種々の業務処理の中でも特に帳票を用いる業務は、ＢｔｏＢ取引における発注業務、社内システムにおけるデータ入力等で用いられることが多く、電子化およびＷｅｂ化による省力化、低コスト化等のメリットが大きいことから、多くのベンダから帳票関連のＷｅｂパッケージが製品化されている。このような業務Ｗｅｂアプリケーションでは大量のデータを扱うため、ブラウザの複数ページを遷移しながらデータを入力することが多い。しかしＷｅｂアプリケーションはステートレスなＨＴＴＰプロトコルを利用しているため、一連のユーザ作業のフローを保存しておく機構が必要であり、各SIベンダはこれらの機構を独自に実装している。
【０００３】
特許文献１には、サーバ装置の障害の発生を検出した場合に、処理中断指示の入力を促し、処理中断指示の入力を受け付ける技術が開示されている（特許文献１参照）。
【０００４】
【特許文献１】特開２００３−６０１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
Ｗｅｂアプリケーションを使ってオンラインでデータ入力業務を行うシステムにおいて、複数ページ間遷移の情報を維持するには、何らかの手段でセッション情報を保存する必要がある。また、オンラインショッピングやオンラインバンキング等、一般に公開されている大規模Ｗｅｂアプリケーションにおいてサーバの定期メンテナンスおよび緊急メンテナンスに伴うシステム停止を行う際、ログインし、操作中のユーザにシステム停止を通知しない場合や、ユーザがシステム停止を認識していなかった場合、ユーザの作業が途中で中断してしまい、それまで行ってきた作業内容が失われる問題があった。
【０００６】
また、メンテナンスの内容や、サービスを停止することで影響の及ぶ範囲を考慮し、サービス停止のスケジュールを検討した上で、事前にサービス停止のアナウンスを行うのはシステム管理者の役割であり、システム管理者への大きな負担となっていた。
【０００７】
さらに、上記特許文献１は、サーバの障害に関する対策を講じており、サーバ装置に障害が発生してから処理の中断を受け付けるため、システムのメンテナンスなど、予め決まっているシステム停止の場合のセッション情報の保存に関しては考慮されていない。
【０００８】
本発明の目的は、メンテナンスなどでシステムが停止した場合でも、停止前の作業内容を継続することができるセッション情報保存システムを提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明は、サーバのメンテナンス情報が格納されている場合は、そのメンテナンス情報を含む画面データを生成して、業務データ入力画面を表示する。また、メンテナンス情報に基づいて、メンテナンス警告画面を表示し、入力された業務データのセッション情報を格納する構成を採用した。
【００１０】
また、ユーザがログインした場合に、そのユーザに対応するセッション情報が格納されている場合は、そのセッション情報を含む業務データ入力画面を生成して表示する構成を採用した。
【発明の効果】
【００１１】
本発明によれば、ユーザは、メンテナンスなどのシステムの停止に伴うログアウトを行っても、ログアウト前のセッション情報を保存することができ、再ログインしたときに、保存したセッション情報を取り出して、ログアウト前の作業を継続することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の一実施形態を、図面を用いて詳細に説明する。
【００１３】
図1は、本実施形態におけるセッション保存システムの詳細な構成を示す。
【００１４】
ユーザ用クライアント1100および管理者用クライアント1200はアプリケーションサーバ100と通信を行う端末であり、ネットワーク10によって接続されている。ユーザ用クライアント1100は、アプリケーションサーバ100と通信を行い、データ入力業務を行う。管理者用クライアント1200は、アプリケーションサーバ100と通信を行い、アプリケーションサーバ100のメンテナンス情報入力業務を行う。サーバ100は、インターネットなどのネットワーク経由で業務データ入力を受け付け、データの処理を行う業務アプリケーションシステムである。
【００１５】
アプリケーションサーバ100は、画面生成プログラム110、状態遷移コントロールプログラム120、ログイン／ログアウト制御プログラム130、セッション管理プログラム140、メンテナンス管理プログラム150を含み、これらはアプリケーションサーバ100内で動作するプログラムである。
【００１６】
状態遷移コントロールプログラム120は、ユーザ用クライアント1100または管理者用クライアント1200から送信されるデータを受信する。受信するデータは、ログイン処理に用いるユーザ識別情報（ユーザID及びパスワード）、業務データ、メンテナンス情報などである。
【００１７】
ログイン／ログアウト制御プログラム130は、ユーザ用クライアント1100または管理者用クライアント1200から送信されるユーザ情報をもとに、システムへのログイン処理や、システムからのログアウト処理を制御する。
【００１８】
アプリケーションサーバ100内のデータベース160は、システムにログインしたユーザのユーザIDとユニークに対応するセッションオブジェクトを格納するセッション情報テーブル161、アプリケーションサーバ100のメンテナンスに関する情報を格納するメンテナンス情報テーブル162、およびユーザIDおよびパスワードを格納するユーザ情報テーブル163を記憶する。
【００１９】
画面合成モジュール111及びスクリプト生成モジュール112は、画面生成プログラム110内で動作するプログラム部品である。画面合成モジュール111及びスクリプト生成モジュール112は、ユーザ用クライアント1100または管理者用クライアント1200のWWWブラウザへ送信するHTTPデータ11を生成する。
【００２０】
セッション生成モジュール141、セッション保存モジュール142、セッション上書きモジュール143は、それぞれセッション管理プログラム140内で動作するプログラム部品である。セッション生成モジュール141は、ユーザのログイン中の画面遷移や入力値情報を格納するセッションオブジェクトを生成する。セッション保存モジュール142は、サーバのシャットダウン時、ユーザが用いるセッションオブジェクトを、セッション情報テーブル161へ格納する。セッション上書きモジュール143は、アプリケーションサーバ100のシャットダウン後、ユーザがログインする際に、セッション情報テーブル161からユーザとユニークに対応付けられたセッションオブジェクトを取り出す。
【００２１】
メンテナンス通知モジュール151、メンテナンス登録モジュール152は、それぞれメンテナンス管理プログラム150内で動作するプログラム部品である。メンテナンス通知モジュール151は、スクリプト生成モジュール112から呼び出され、メンテナンス情報テーブル162内のメンテナンス詳細情報を取り出し、スクリプト生成モジュール112へデータを返信する。メンテナンス登録モジュール152は、管理者用クライアント1200から入力されたパラメータであるメンテナンス詳細情報171を、メンテナンス情報テーブル162に格納する。
【００２２】
WWWブラウザ1101は、ユーザ用クライアント1100内で動作するプログラムであり、ネットワーク10を介してアプリケーションサーバ100とデータ通信を行う。ログイン画面1101は、ユーザがログインを行う際に表示されるログイン画面であり、ユーザ業務画面1102は、WWWブラウザ1101内に表示される画面であり、ユーザが業務システム用データを入力する画面である。
【００２３】
WWWブラウザ1201は、管理者用クライアント1200内で動作するプログラムであり、ネットワーク10を介してアプリケーションサーバ100とデータ通信を行う。ログイン画面1202は、管理者がログインを行う際に表示されるログイン画面であり、メンテナンス情報登録画面1204は、ブラウザ1201に表示される画面であり、管理者がメンテナンス情報を入力する画面である。
【００２４】
図2は、アプリケーションサーバ100におけるデータベース160の、セッション情報テーブル161のデータ管理構造を示す図である。つまり、図２は、ユーザのセッション情報を保存する際に用いられるデータ形式である、セッションデータの構造を示す。
【００２５】
セッション情報テーブル161は、ユーザを識別するユーザID欄211およびそのユーザIDと１対１に対応するセッションオブジェクト欄212を格納する。セッションオブジェクト欄212は、アプリケーションサーバ100が生成したセッションオブジェクト220をバイナリデータとして持つ。セッションオブジェクト220は、ユーザID221、ユーザがログイン状態かログアウト状態かを示すログインフラグ222、データ格納時にユーザが操作していた画面のIDである遷移元画面ID224、次に遷移するべき画面の遷移先画面ID223、及びセッション情報としてユーザの入力内容を格納するセッション保持データ225を含む。
【００２６】
図3は、アプリケーションサーバ100におけるデータベース160の、メンテナンス情報テーブル162のデータ管理構造を示す図である。
【００２７】
メンテナンス情報テーブル162は、各メンテナンスを一意に識別する識別番号であるメンテナンスID311、メンテナンス開始日時312、メンテナンス内容313、警告度314、警告日時315、及びメンテナンス終了日時316を格納する。
【００２８】
図4は、アプリケーションサーバ100におけるデータベース160の、ユーザ情報テーブル163のデータ管理構造を示す図である。ユーザ情報テーブル163は、ユーザID411、ユーザID411と一意に対応するパスワード412、及びユーザの役職や担当等を示すユーザ種別413を格納する。ユーザ情報テーブル163に格納されたユーザID411とパスワード412は、ユーザがシステムにログインする際に、ユーザを識別するための識別情報であり、ログイン／ログアウト制御プログラム130は、ログインの際に入力されたこれらの情報をもとに、ユーザ情報テーブル163を参照して、ログイン処理を行う。
【００２９】
図5は、アプリケーションサーバ100からユーザ用クライアント1100へ送信されるデータ構造の例を示す図である。本実施形態においては、HTTPデータ11が送信される場合を説明する。
【００３０】
HTTPデータ11には、HTMLデータ500が格納されている。HTMLデータ500は、サーバのメンテナンスに伴う警告画面表示およびセッション情報保存のためのロジックを記述したスクリプト511、およびページデザインのための静的HTMLデータ512を含む。
【００３１】
図6は、アプリケーションサーバ100が、管理者用クライアント1200から送信されたシステムメンテナンス情報を登録する際の処理フローを示した図である。
【００３２】
まず、管理者用クライアント1200は、WWWブラウザ1201にログイン画面1202を表示する（ステップ601）。ログイン画面は、ネットワーク10を経由してアプリケーションサーバ100から送信される。ログイン画面の詳細は、後述する図10において説明する。次に、管理者用クライアント1200は、ログイン画面1202において、ログイン処理に必要な管理者の識別情報である管理者IDとパスワードの入力を受け付ける（ステップ602）。ステップ602において、システム管理者がユーザIDとパスワードを入力し、ログインボタンを押下した場合は、管理者用クライアント1200は、ステップ602で入力されたデータをアプリケーションサーバ100へ送信する（ステップ603）。
【００３３】
次に、アプリケーションサーバ100の状態遷移コントロールプログラム120は、管理者用クライアント1200から送信された入力データを受信する（ステップ604）。ログイン／ログアウト制御プログラム130は、受け取ったデータをもとに、データベース160に格納されたユーザ情報テーブル163に対してユーザ情報を照会し、システムのユーザ認証を行い、ログイン処理を行う（ステップ605）。ログイン処理終了後、アプリケーションサーバ100の画面生成プログラム110は、メンテナンス情報入力画面1204を生成し（ステップ606）、アプリケーションサーバ100は、生成したメンテナンス情報入力画面1204のデータを管理者用クライアント1200へ送信する（ステップ607）。
【００３４】
次に、管理者用クライアント1200は、アプリケーションサーバ100から送信されたメンテナンス情報入力画面1204のデータを受信し（ステップ608）、WWWブラウザ1201は、受信したメンテナンス情報入力画面1204のページデータを表示する（ステップ609）。管理者用クライアント1200は、表示されたメンテナンス情報入力画面1204への、メンテナンスに関する情報の入力を受け付ける（ステップ610）。入力される情報としては、メンテナンスID311、メンテナンス開始日時312、メンテナンス内容313、警告度314、警告日時315、メンテナンス終了日時316等の情報である。システム管理者は、メンテナンス情報登録画面1204において、メンテナンスに関する情報を入力する。管理者用クライアント1200は、ステップ610において入力されたメンテナンス情報を、アプリケーションサーバ100に送信する（ステップ611）。
【００３５】
次に、アプリケーションサーバ100の状態遷移コントロールプログラム120は、ステップ611において送信されたメンテナンス情報を受信し（ステップ612）、メンテナンス管理プログラム150のメンテナンス登録モジュール152は、受信したメンテナンス情報をデータベース160のメンテナンス情報テーブル162へ格納する（ステップ613）。
【００３６】
以上の処理を行うことによって、システムのメンテナンス情報をアプリケーションサーバへ登録することができる。
【００３７】
図7は、一般ユーザがシステムにログインし、業務データを入力する際の処理フローを示した図である。
【００３８】
ユーザ用クライアント1100のWWWブラウザ1101は、アプリケーションサーバ100から送信されたログイン画面を表示する（ステップ701）。この場合のログイン画面の詳細は、後述する図9において説明する。ユーザ用クライアント1100のWWWブラウザ1101は、ログイン画面1102において、ログイン処理に必要なユーザ識別情報であるユーザIDとパスワードの入力を受け付ける（ステップ702）。ステップ702において、ユーザがユーザIDとパスワードを入力し、ログインボタンを押下した場合は、ユーザ用クライアント1100は、入力されたユーザIDとパスワードを、アプリケーションサーバ100へ送信する（ステップ703）。
【００３９】
アプリケーションサーバ100の状態遷移コントロールプログラム120は、ステップ703で送信されたユーザIDとパスワードをユーザ用クライアント1100から受け取る（ステップ704）。ログイン/ログアウト制御プログラム130は、ステップ704で受け取ったデータをもとに、データベース160のユーザ情報テーブル161に対してユーザ情報を照会し、システムのユーザ認証を行い、ログイン処理を行う（ステップ705）。
【００４０】
次に、ログイン／ログアウト制御プログラム130は、データベース160に格納されたセッションテーブル161を検索する（ステップ706）。ログイン／ログアウト制御プログラム130は、ユーザID211をキー情報として、そのユーザIDに対応するセッションオブジェクト212を検索する。ステップ706の検索の結果、前回メンテナンスのために処理中断したセッション情報がある場合は（ステップ707：yes）、セッション管理プログラム140のセッション上書きモジュール143は、セッション情報テーブル161から当該セッションオブジェクト212を取得し、オブジェクト内部のデータ225を取り出す（ステップ708）。ステップ707において該当するセッションデータがなかった場合は（ステップ707：No）、セッション管理プログラム140内のセッション生成モジュール141は、新規にセッションオブジェクトを生成する（ステップ709）。
【００４１】
次に、アプリケーションサーバ100のメンテナンス管理プログラム150は、データベース160のメンテナンス情報テーブル162に、メンテナンス情報が存在するか否かを検索する（ステップ710）。メンテナンス情報が存在する場合は、メンテナンス管理プログラム150のメンテナンス通知モジュール151は、画面生成プログラム110のスクリプト生成モジュール112へ、メンテナンス情報を送信し、スクリプト生成モジュール112は、そのメンテナンス情報に応じたスクリプトを生成する（ステップ711）。
【００４２】
ここで、スクリプト生成モジュール112は、ユーザ用クライアント1100へ送信するHTMLデータ500（図5）に埋め込まれるスクリプト510を生成する。スクリプト510の生成には、メンテナンス情報テーブル162（図3）に格納されたメンテナンス情報に含まれるメンテナンス開始日時312、メンテナンス内容313、警告度314、警告日時315（図3）を用いる。そして、これらの情報を用いて、メンテナンス開始の一定時間前（警告日時315）にユーザへの警告画面を表示し、ユーザの選択に従って作業中のデータを保存するようなスクリプト510が生成される。なお、ステップ710において、メンテナンス情報が存在しない場合は（ステップ710：no）、画面生成プログラム110は、メンテナンス情報を含まないようなスクリプトを作成し、そのスクリプトに基づいた画面（業務データの入力画面）を生成する。
【００４３】
次に、画面合成モジュール111は、スクリプト生成モジュール112が生成したスクリプト510をもとに、ユーザ用クライアント1100に表示する画面に関するHTMLデータ500を生成する（ステップ712）。ここで、画面合成モジュール111は、スクリプト生成モジュール112によって生成されたスクリプト510および静的HTMLデータ520を埋め込んでHTMLデータ500（図5）を生成する。また画面合成モジュール111は、HTMLデータ500内のフォームに当該セッションオブジェクト225（図2）の値を埋め込む。
【００４４】
なお、ステップ710において、メンテナンス情報テーブル162内にメンテナンス情報が存在しなかった場合（ステップ710：no）、図7の処理はステップ712に遷移し、画面合成モジュール111は、ユーザ用クライアント1100に表示するHTMLデータ500のみを生成し、HTMLデータ500内のフォームに当該セッションオブジェクト225の値を埋め込む。
【００４５】
次に、アプリケーションサーバ100は、ステップ712において生成された送信画面データであるHTMLデータ500を、HTTPデータ11としてユーザ用クライアント1100に送信する（ステップ713）。そして、ユーザ用クライアント1100は、アプリケーションサーバ100から送信されたHTTPデータ11を受信する（ステップ714）。そして、アプリケーションサーバ100のWWWブラウザ1101は、ステップ714で受信したHTTPデータ11にもとづいて、ユーザ業務画面1104を表示する（ステップ715）。
【００４６】
以上の処理を行うことによって、ユーザは、ここで表示されたユーザ業務画面1104において、業務データを入力することができる。また、ユーザがシステムにログインした際、そのユーザに対応するセッション情報で、過去に保存したセッション情報が格納されている場合は（ステップ707：yes）、それを継続して利用することができる。
【００４７】
また、メンテナンス情報がメンテナンス情報テーブル162に格納されている場合は、画面生成プログラム110は、そのメンテナンス情報に応じた画面スクリプトを作成するため（ステップ711）、システム管理者は、サーバのメンテナンスに関する情報をシステムに登録すればよく、システムにログインしているユーザに対してメンテナンス情報を知らせる必要がないので、管理者への負担を軽くすることができる。
【００４８】
図8は、システムのメンテナンス実行時間が近づいてきた場合（システムメンテナンスの一定時間前になった場合）に、ユーザのセッションを保存する処理フローを示す図である。ここで、図7に示すように、ユーザがシステムにログインして業務データを入力している状態では、ステップ715においてユーザ業務画面1104が表示される。ユーザ業務画面1104は、アプリケーションサーバ100からユーザ用クライアント1100に対して送信されるHTTPデータ11（図5）に基づいて表示される。従って、HTTPデータ11は、HTMLデータ500を含み、またHTMLデータ500はスクリプト510を含む。
【００４９】
図8では、まず、HTMLデータ500のスクリプト510は、WWWブラウザ1101にロードされると、スクリプト510内に記述された警告日時315とユーザ用クライアント1100のシステム時刻を比較する（ステップ801）。比較の結果、スクリプト510内の警告日時315とユーザ用クライアント1100のシステム時刻が等しい場合は（ステップ801：yes）、ユーザ用クライアント1100は、ポップアップ画面等を用いてシステムのメンテナンス一定時間前である旨の警告表示を行う（ステップ802）。
【００５０】
ユーザ用クライアント1100は、ステップ802において表示したポップアップ画面等において、ユーザに対してその時点でのセッションを保存するか否かを選択するか否かを選択させる表示を行う（ステップ803）。ステップ803においてユーザがセッションを保存することを選択した場合は（ステップ803：yes）、スクリプト510は、現時点でのユーザ業務画面1104において入力済のデータを取得し、ユーザ用クライアント1100は、その入力済データをアプリケーションサーバ100へ送信する（ステップ804）。
【００５１】
次に、アプリケーションサーバ100は、ユーザ用クライアント1100から送信された入力済データを受信し（ステップ805）、セッション保存モジュール142は、ステップ805で受信したデータを、ユーザID211と関連付けてセッションオブジェクト212として、データベース160のセッション情報テーブル161に保存する（ステップ806）。
【００５２】
なお、ステップ803においてユーザがセッションを保存しないことを選択した場合（ステップ803：no）、ステップ807（ログアウト処理）に処理フローが遷移する。つまり、図8のフローチャートでは、ユーザがセッションを保存しないことを選択した場合は、それまでに入力した業務データを保存せずに、ログアウト処理を行う構成である。
【００５３】
しかし、ステップ803においてユーザがセッションを保存しないことを選択した場合であって、既に複数の画面に遷移して業務データの入力が行われている場合は、現在入力している画面より以前の画面において入力が完了した業務データに関するセッション情報を保存して、セッション情報テーブル161に格納する構成を採用しても良い。この構成は、現在の画面に対する入力データの保存は必要ないが、それ以前の画面に入力したデータを保存したいというユーザに対しても有効できる。
【００５４】
次に、ログイン／ログアウト制御プログラム130は、ユーザのログアウト処理を行う（ステップ807）。画面生成プログラム110は、ユーザ用クライアント1100に送信するログアウト後の画面データを生成し（ステップ808）、生成した画面データを含むHTTPデータ11を、ユーザ用クライアント1100へ送信する（ステップ809）。
【００５５】
ユーザ用クライアント1100は、アプリケーションサーバ100から送信されたHTTPデータ11を受け取り、HTTPデータ11に格納されたログアウト後の画面を受信し（ステップ810）、WWWブラウザ1101は、その受信したログアウト後の画面データを表示する（ステップ811）。
【００５６】
以上の処理を行うことによって、アプリケーションサーバのメンテナンスの一定時間前に、ログイン中のユーザのセッションデータをDBへ保存し、ユーザを自動的にログアウトさせることができるようになる。
【００５７】
図9は、図7〜図8に示す処理における、ユーザ用クライアント1100の表示画面例を示す。
【００５８】
ユーザ用クライアント1100は、ログイン画面910を表示し（図7のステップ701）、ユーザIDとパスワードがフォーム911に入力され（ステップ702）、ログインボタン912が押下された場合は、取引データ入力画面920へ遷移する。
【００５９】
次に、ユーザ用クライアント1100は、取引データ入力画面920（図1におけるユーザ業務画面1104に対応する）を表示し、ここでユーザが、この画面920において入力すべき業務情報をフォーム921へ入力し、次画面ボタン922を押下すると、この画面920において入力されたセッションが、アプリケーションサーバ100に送信され、データベース160に格納される。つまり、図9の例では、画面が遷移する度に、その画面において入力された情報（セッション情報）がデータベース160に格納される。
【００６０】
次画面930において、フォーム931へのデータ入力が完了する前に、サーバのメンテナンスの一定時間前になった場合、つまり、メンテナンスの警告日時315になった場合（図8のステップ801：yes）は、ユーザ用クライアント1100へ送信されたスクリプト510は、メンテナンス警告画面940を表示する（図8のステップ802）。ここでユーザが、セッションを保存するボタン941を押下すると（ステップ803：yes）、スクリプト510は、フォーム931内のデータをアプリケーションサーバ100へ送信する（図8のステップ804）。
【００６１】
アプリケーションサーバ100のセッション管理プログラム140は、上記で送信されたデータと、それ以前の画面において入力されたセッションデータ（既にデータベース160に保持しているセッションデータ）をマージし、ユーザIDと関連付けてデータベース160へ格納する（図8のステップ806）。またこの処理の後、ログイン／ログアウト制御プログラム130は、ユーザを自動的にログアウトさせる（図8のステップ807）。
【００６２】
システムメンテナンスの後、ユーザが、ログイン画面970にユーザ情報をフォーム971へ入力して再度ログインした場合、ログイン／ログアウト制御プログラム130はセッション管理プログラム140を呼び出し、データベース160からユーザIDと対応づけられたセッションデータ225を取得する（図7のステップ707）。画面生成プログラム110は、取得したセッションデータ225を用いてフォーム981内にデータを入れ込んだ画像を生成し、生成された画面は、画面980として、ユーザ用クライアント1100において表示される（図7のステップ708）。
【００６３】
このようにして、ユーザは、前回保存したセッション情報に基づく作業内容を取り出し、その後の作業を継続することができる。つまり、サーバメンテナンスに伴うシステム停止時に入力中であったデータを含めて、セッション情報をセッション情報テーブルに格納するので、ユーザは次回ログイン時に、前回の入力作業終了時の状態から作業を再開できる。
【００６４】
図9では、ユーザは、ユーザ用クライアント1100からアプリケーションサーバ100にアクセスする。アプリケーションサーバ100は、ユーザ用クライアント1100からページリクエストがある度に、メンテナンス管理プログラム150を使ってメンテナンス情報をデータベース160から取得し、画面生成プログラム110はスクリプト510にメンテナンス情報を入れ込んで画面を生成し、アプリケーションサーバ100は、生成した画像をユーザ用クライアント1100へ送信する。これにより、サーバのメンテナンス情報を動的にHTMLファイル内に入れ込むことによって、メンテナンスの一定時間前のセッション保存作業を自動的に行うことができる。また、ミッションクリティカルなウェブシステムにおける管理方法の簡易化およびセッションデータの保全を行うことができる。
【００６５】
図10は、図6に示すメンテナンス情報の登録処理における管理者用クライアント1200において表示される画面例を示す。
【００６６】
管理者用クライアント1200にログイン画面1202が表示されると（図6のステップ601）、システム管理者は、ログイン画面1010においてユーザ情報（ユーザIDとパスワード）をフォーム1011へ入力する（図6のステップ602）。そして、ログインボタン1012が押下されると、メンテナンス情報入力画面1020へ遷移する。メンテナンス情報入力画面1020において、システム管理者は、メンテナンスID311やメンテナンス開始日時312、警告日時315等のメンテナンス情報をフォーム1021へ入力し、登録ボタン1022を押下する。これにより、アプリケーションサーバ100のメンテナンス管理プログラム150は、データベース160のメンテナンステーブル162に、画面1020において入力されたメンテナンス情報を格納する。
【図面の簡単な説明】
【００６７】
【図１】本発明の一実施形態であるWebシステムの構成図を示す。
【図２】セッション情報テーブル161のデータ構造を示す図である。
【図３】メンテナンス情報テーブル162のデータ構造を示す図である。
【図４】ユーザ情報テーブル163のデータ構造を示す図である。
【図５】アプリケーションサーバ100からユーザ側クライアント1100へ送信されるHTTPデータ11の構造を示す図である。
【図６】メンテナンス情報を登録する際の処理フローを示す図である。
【図７】システムへのログイン及び業務データを入力する際の処理フローを示す図である。
【図８】メンテナンス時間前にユーザのセッションを保存する際の処理フローを示した図である。
【図９】業務データを入力する際の画面遷移図を示す。
【図１０】システムのメンテナンス情報を登録する際の画面遷移図を示す。
【符号の説明】
【００６８】
100：アプリケーションサーバ、1100：ユーザ用クライアント、1200：管理者用クライアント、110：画面生成プログラム、120：状態遷移コントロールプログラム、130：ログイン／ログアウト制御プログラム、140：セッション管理プログラム、150：メンテナンス管理プログラム、160：データベース、161：セッション情報テーブル、162：メンテナンス情報テーブル、163：ユーザ情報テーブル
【図１】
2005316634.tif 000003
【図２】
2005316634.tif 000004
【図３】
2005316634.tif 000005
【図４】
2005316634.tif 000006
【図５】
2005316634.tif 000007
【図６】
2005316634.tif 000008
【図７】
2005316634.tif 000009
【図８】
2005316634.tif 000010
【図９】
2005316634.tif 000011
【図１０】
2005316634.tif 000012