(57)【要約】【課題】ブラウザを用いて確立される、マルチプラットフォームネットワークアプリケーションのアクティブセッションのランタイム状態を保存および復元できるブラウザセッションモビリティ（ＢＳＭ）システムを提供する。【解決手段】ブラウザ現状態およびサーバ現状態を含む、プラットフォーム依存ランタイム状態が、ネットワークアプリケーションのプラットフォーム依存バージョンから取り込まれる。プラットフォーム依存ランタイム状態は、プラットフォーム非依存ランタイム状態に変換されて保存される。保存されたプラットフォーム非依存ランタイム状態は読み出されて、ネットワークアプリケーションの別のプラットフォームに依存するバージョンで用いられるプラットフォーム依存ランタイム状態に変換される。プラットフォーム依存ランタイム状態は、アクティブセッションとしてインスタンス化される。【選択図】　　　図１０
2004062873.tif 000002
【特許請求の範囲】
【請求項１】
ブラウザを用いて確立されるアクティブセッションのランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョン間で転送する方法であって、
マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンのブラウザ側ランタイム状態を取り込むステップと、
前記ブラウザ側ランタイム状態をプラットフォーム非依存ランタイム状態に選択的に変換するステップと、
前記プラットフォーム非依存ランタイム状態を保存するステップと
を具備することを特徴とする方法。
【請求項２】
前記マルチプラットフォームネットワークアプリケーションの前記プラットフォーム依存バージョンのサーバ側ランタイム状態を取り込むステップと、
前記サーバ側ランタイム状態をプラットフォーム非依存ランタイム状態に変換するステップと、
前記サーバ側ランタイム状態を前記ブラウザ側ランタイム状態とともに保存するステップと
をさらに具備することを特徴とする請求項１に記載の方法。
【請求項３】
前記マルチプラットフォームネットワークアプリケーションの、異なるプラットフォームに依存するバージョン上において、前記プラットフォーム非依存ランタイム状態を用いて、前記ブラウザ側ランタイム状態を復元するステップをさらに具備することを特徴とする請求項１に記載の方法。
【請求項４】
前記ブラウザ側ランタイム状態を取り込むステップは、アクティブセッションのランタイム状態を表す状態データおよびセッションデータを取り込むステップを具備することを特徴とする請求項１に記載の方法。
【請求項５】
前記ブラウザ側ランタイム状態を変換するステップは、プラットフォームに依存する前記ブラウザ側ランタイム状態からプラットフォームに依存しないブラウザ側ランタイム状態へのマッピングを指示するステップを具備することを特徴とする請求項１に記載の方法。
【請求項６】
前記ブラウザ側ランタイム状態を変換するステップは、プラットフォームに依存する状態データおよびセッションデータのうち少なくとも１を、プラットフォームに依存しないデータに選択的に変換するステップを具備することを特徴とする請求項１に記載の方法。
【請求項７】
ブラウザを用いて確立されるアクティブセッションのランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョン間で転送する方法であって、
ネットワークアプリケーションの第１のプラットフォームに依存するバージョンのブラウザ状態およびサーバ状態のうち少なくとも１の状態データおよびセッションデータを表す第１のプラットフォームに依存するスナップショットを生成するステップと、
前記第１のプラットフォームに依存するスナップショットをプラットフォーム非依存スナップショットに変換するステップと、
前記プラットフォーム非依存スナップショットを、前記状態データおよびセッションデータを表す第２のプラットフォームに依存するスナップショットに変換するステップと、
前記ネットワークアプリケーションの第２のプラットフォームに依存するバージョンにおいて、前記第２のプラットフォームに依存するスナップショットを用いて、前記ブラウザ状態およびサーバ状態のうち少なくとも１を再インスタンス化するステップと
を具備することを特徴とする方法。
【請求項８】
前記第１のプラットフォームに依存するスナップショットを生成するステップは、サーバ状態とブラウザ状態の両方をそれぞれ異なるプラットフォームに依存するスナップショットとして取り込むステップを具備することを特徴とする請求項７に記載の方法。
【請求項９】
前記第１のプラットフォームに依存するスナップショットを生成するステップは、ドキュメントオブジェクトモデル、スクリプトオブジェクト、ブラウザ履歴、ブラウザキャッシュ、およびクッキーのうち少なくとも１を取り込むステップを具備することを特徴とする請求項７に記載の方法。
【請求項１０】
前記第１のプラットフォームに依存するスナップショットを変換するステップは、前記プラットフォーム非依存スナップショットを生成するために、前記状態データおよびセッションデータのうち少なくとも１から固有のプラットフォーム非依存名称へ選択的にマッピングするステップを具備することを特徴とする請求項７に記載の方法。
【請求項１１】
第１のプラットフォームに依存するスナップショットを変換するステップは、マッピング記述ファイルを用いて、第１のプラットフォームに依存するスナップショットのランタイム状態データを前記プラットフォーム非依存スナップショットのランタイム状態データに変換するステップを具備することを特徴とする請求項７に記載の方法。
【請求項１２】
前記第１のプラットフォームに依存するスナップショットを変換するステップは、
マスターマッピングファイルにアクセスしてマッピング記述ファイルを特定するステップと、
前記特定されたマッピング記述ファイルを用いて、前記第１のプラットフォームに依存するスナップショットを前記プラットフォーム非依存スナップショットに選択的に変換するステップと
を具備することを特徴とする請求項７に記載の方法。
【請求項１３】
前記第１のプラットフォームに依存するスナップショットを変換するステップは、有限状態機械モデルを用いて、前記ネットワークアプリケーションの第１のプラットフォームに依存するバージョンのプラットフォーム依存表示の構造と、前記ネットワークアプリケーションの前記第２のプラットフォームに依存するバージョンのプラットフォーム依存表示の構造をモデル化するステップを具備することを特徴とする請求項７に記載の方法。
【請求項１４】
ブラウザを用いて確立されるアクティブセッションのランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョン間で転送する方法であって、
ブラウザ現状態およびサーバ現状態のうち少なくとも１を含むアクティブセッションの第１のプラットフォームに依存するランタイム状態を、ネットワークアプリケーションの第１のプラットフォームに依存するバージョンから取り込むステップと、
前記第１のプラットフォームに依存するランタイム状態をプラットフォーム非依存ランタイム状態に変換するステップと、
前記プラットフォーム非依存ランタイム状態を保存するステップと、
前記保存されたプラットフォーム非依存ランタイム状態を読み出すステップと、
前記プラットフォーム非依存ランタイム状態を第２のプラットフォームに依存するランタイム状態に変換するステップと、
前記第２のプラットフォームに依存するランタイム状態を、前記ネットワークアプリケーションの第２のプラットフォームに依存するバージョンの前記アクティブセッションとしてインスタンス化するステップと
を具備することを特徴とする方法。
【請求項１５】
前記第１のプラットフォームに依存するランタイム状態を取り込むステップは、ブラウザ表示から、前記ネットワークアプリケーションの前記第１のプラットフォームに依存するバージョンの前記アクティブセッションのページおよびデータを抽出するステップを具備することを特徴とする請求項１４に記載の方法。
【請求項１６】
前記第１のプラットフォームに依存するランタイム状態を変換するステップは、プラットフォーム依存スナップショットの少なくとも一部からプラットフォーム非依存スナップショットへの変換をマッピングするステップを具備することを特徴とする請求項１４に記載の方法。
【請求項１７】
前記プラットフォーム非依存ランタイム状態を変換するステップは、前記プラットフォーム非依存ランタイム状態の少なくとも一部から前記第２のプラットフォームに依存するランタイム状態へマッピングするステップを具備することを特徴とする請求項１４に記載の方法。
【請求項１８】
前記第１のプラットフォームに依存するランタイム状態を取り込むステップは、表示ページ中の一部入力されたデータフィールドを特定して、ユーザが取り込みを行った時点の状態を特定するステップを具備することを特徴とする請求項１４に記載の方法。
【請求項１９】
前記第１のプラットフォームに依存するランタイム状態をプラットフォーム非依存ランタイム状態に変換するステップは、前記プラットフォーム非依存ランタイム状態を生成するために、前記第１のプラットフォームに依存するランタイム状態のデータから固有のプラットフォーム非依存名称へ選択的にマッピングするステップを具備することを特徴とする請求項１４に記載の方法。
【請求項２０】
前記第２のプラットフォームに依存するランタイム状態をインスタンス化するステップは、前記ネットワークアプリケーションの第２のプラットフォームに依存するバージョンのアクティブセッションにおいて、ユーザが取り込みを行った時点の状態を表示するステップを具備することを特徴とする請求項１４に記載の方法。
【請求項２１】
ブラウザを用いて確立されるアクティブセッションのランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョン間で転送するブラウザセッションモビリティシステムであって、
ネットワークアプリケーションサーバと、
前記ネットワークアプリケーションサーバと通信を行う通信装置と、
前記通信装置と前記ネットワークアプリケーションサーバのうち少なくとも１と通信を行うリポジトリサーバと
を具備し、
前記ネットワークアプリケーションサーバは、アクティブセッションを確立するために、ネットワークアプリケーションのプラットフォーム依存バージョンを前記通信装置のブラウザに提供し、
前記通信装置、前記ネットワークアプリケーションサーバ、および前記リポジトリサーバのうち少なくとも１を用いて、前記アクティブセッションのランタイム状態の取り込みおよびプラットフォーム非依存ランタイム状態への変換が行われることを特徴とするシステム。
【請求項２２】
前記リポジトリサーバは、前記プラットフォーム非依存ランタイム状態を保存することを特徴とする請求項２１に記載のシステム。
【請求項２３】
前記取り込まれたランタイム状態は、前記アクティブセッションのサーバ側ランタイム状態およびブラウザ側ランタイム状態のうち少なくとも１を含むことを特徴とする請求項２１に記載のシステム。
【請求項２４】
前記アクティブセッションは、プラットフォーム依存スナップショットとして取り込まれることを特徴とする請求項２１に記載のシステム。
【請求項２５】
前記ネットワークアプリケーションの前記プラットフォーム依存バージョンの前記ランタイム状態は、プラットフォーム非依存スナップショットに変換されることを特徴とする請求項２１に記載のシステム。
【請求項２６】
前記ネットワークアプリケーションサーバおよび前記リポジトリサーバと通信を行う第２の通信装置をさらに具備し、
前記プラットフォーム非依存ランタイム状態は前記リポジトリサーバから読み出され、前記ネットワークアプリケーションサーバおよび前記第２の通信装置間で前記アクティブセッションが再インスタンス化されることを特徴とする請求項２１に記載のシステム。
【請求項２７】
前記ネットワークアプリケーションサーバは、前記アクティブセッションのサーバ側ランタイム状態の取り込みおよび再インスタンス化を行うプラットフォームアダプタモジュールを具備することを特徴とする請求項２１に記載のシステム。
【請求項２８】
前記通信装置は、前記アクティブセッションのブラウザ側ランタイム状態の取り込みおよび再インスタンス化を行うブラウザセッションモビリティモジュールを具備することを特徴とする請求項２１に記載のシステム。
【請求項２９】
前記ブラウザセッションモビリティモジュールはブラウザプラグインであることを特徴とする請求項２１に記載のシステム。
【請求項３０】
ブラウザを用いて確立されるアクティブセッションのランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョン間で転送する通信装置であって、
マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンのランタイム状態を取り込む手段と、
前記ランタイム状態およびプラットフォーム非依存ランタイム状態間で選択的に変換する手段と、
プラットフォーム依存ランタイム状態を、前記マルチプラットフォームネットワークアプリケーションの前記プラットフォーム依存バージョンのアクティブセッションとしてインスタンス化する手段と
を具備することを特徴とする通信装置。
【請求項３１】
前記取り込まれたランタイム状態は、アクティブセッションのサーバ側ランタイム状態およびブラウザ側ランタイム状態のうち少なくとも１を含むことを特徴とする請求項３０に記載の通信装置。
【請求項３２】
前記取り込み手段は、アクティブセッションのランタイム状態を表す状態データおよびセッションデータを取り込むことを特徴とする請求項３０に記載の通信装置。
【請求項３３】
前記取り込み手段は、ブラウザ表示から、前記マルチプラットフォームネットワークアプリケーションの前記プラットフォーム依存バージョンのアクティブセッションのページおよびデータを抽出することを特徴とする請求項３０に記載の通信装置。
【請求項３４】
前記変換手段は、プラットフォームに依存する前記ランタイム状態およびプラットフォームに依存しないランタイム状態間でマッピングすることを特徴とする請求項３０に記載の通信装置。
【請求項３５】
前記変換手段は、プラットフォームに依存する状態データおよびセッションデータのうち少なくとも１と、プラットフォームに依存しないデータ間で選択的に変換することを特徴とする請求項３０に記載の通信装置。
【請求項３６】
前記変換手段は、前記プラットフォーム非依存ランタイム状態を生成するために、前記プラットフォーム依存ランタイム状態のデータおよび固有のプラットフォーム非依存名称間で選択的にマッピングすることを特徴とする請求項３０に記載の通信装置。
【請求項３７】
前記インスタンス化手段は、前記マルチプラットフォームネットワークアプリケーションの前記プラットフォーム依存バージョンのアクティブセッションにおいて、ユーザが取り込みを行った時点の状態を表示することを特徴とする請求項３０に記載の通信装置。
【請求項３８】
ブラウザを用いて確立されるアクティブセッションのランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョン間で転送する通信装置であって、
アプリケーションサーバおよび他の通信装置のうち少なくとも１とネットワークを介して通信するための通信手段と、
前記他の通信装置と異なる状態で表示するように、前記アプリケーションサーバから送信されるプラットフォーム非依存ランタイム状態をプラットフォーム依存ランタイム状態に変換する変換手段と
を具備することを特徴とする通信装置。
【請求項３９】
前記プラットフォーム依存ランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンのアクティブセッションとしてインスタンス化する手段をさらに具備することを特徴とする請求項３８に記載の通信装置。
【請求項４０】
ブラウザを用いて確立されるアクティブセッションのランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョン間で転送する通信装置であって、
アプリケーションサーバおよび他の通信装置のうち少なくとも１とネットワークを介して通信するための通信手段と、
前記他の通信装置と異なる状態で表示するように、前記他の通信装置から送信されるプラットフォーム非依存ランタイム状態をプラットフォーム依存ランタイム状態に変換する変換手段と
を具備することを特徴とする通信装置。
【請求項４１】
ブラウザを用いて確立されるアクティブセッションのランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョン間で転送する通信装置であって、
アプリケーションサーバおよび他の通信装置のうち少なくとも１とネットワークを介して通信可能であり、前記他の通信装置と異なる状態で表示するように変換されたプラットフォーム依存ランタイム状態を受信する手段を具備することを特徴とする通信装置。
【請求項４２】
ブラウザを用いて確立されるアクティブセッションのランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョン間で転送するサーバ装置であって、
少なくとも１の通信装置とネットワークを介して通信するための通信手段と、
前記通信装置から送信されるランタイム状態を保存する手段と
を具備することを特徴とするサーバ装置。
【請求項４３】
前記通信装置から送信されるプラットフォーム依存ランタイム状態をプラットフォーム非依存ランタイム状態に変換する手段をさらに具備し、
前記保存手段は、前記プラットフォーム非依存ランタイム状態を保存することを特徴とする請求項４２に記載のサーバ装置。
【請求項４４】
ブラウザを用いて確立されるアクティブセッションのランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョン間で転送するコンピュータに、
マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンのランタイム状態を取り込む機能と、
前記ランタイム状態およびプラットフォーム非依存ランタイム状態間で選択的に変換する機能と、
プラットフォーム依存ランタイム状態を、前記マルチプラットフォームネットワークアプリケーションの前記プラットフォーム依存バージョンのアクティブセッションとしてインスタンス化する機能と
を実現させるためのプログラム。
【請求項４５】
請求項４４に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、概してネットワーク上の装置間における通信に関し、特に、ブラウザを用いて確立される１以上の独立したアクティブセッションのブラウザ状態を保存し、同一もしくは異なるブラウザおよび／またはプラットフォームを用いて、保存されたセッションを後で読み出して再開する方法およびシステムに関する。
【０００２】
【従来の技術】
今日、インターネットは、情報にアクセスするためばかりでなく商品やサービスを購入するために一般的に利用されている。通常、インターネットにアクセスするにはブラウザが必要である。ブラウザはインターネットを介してウェブサイトにアクセスするために利用される。このウェブサイトを介して、ユーザは情報を取得したり、商品やサービスを購入することができる。通常、ブラウザとウェブサイトとの対話はセッション指向型である。一般的に、ウェブサイトは、ブラウザに対してセッションの確立およびセッションＩＤを最初に要求する。ウェブサイトは、セッションＩＤを用いて、当該ウェブサイト内の種々のページを移動するブラウザを追跡し、識別する。
【０００３】
ブラウザは、アクティブウェブセッション中、ステートレスであるＨＴＴＰプロトコルに従ってウェブサイトと対話する際に使用されるランタイム状態を蓄積する。ブラウザのランタイム状態は、クッキー、ドキュメントオブジェクト、およびスクリプトオブジェクトとして蓄積される。ブラウザがウェブサイトへのアクセスをしばらく中断した場合や、ユーザが明示的にログアウトした場合に、アクティブウェブセッションが終了する。アクティブウェブセッションが終了すると、ブラウザ状態のいくつかは復元不能になる。
【０００４】
【発明が解決しようとする課題】
このセッション指向型モデルでは、アクティブセッションを確立したブラウザを一時的にシャットダウンする場合、ユーザは同一のアクティブセッションを継続することができない。さらに、ユーザが、ある装置上のブラウザから別の装置上の同一または別のブラウザに切り替えたい場合も、同一のアクティブセッションを継続することができない。例えば、据置型装置（デスクトップＰＣ等）上でアクティブセッションを確立しているユーザが、当該据置型装置とモバイル装置（無線アクセス機能付きポケットＰＣ等）を取り替える場合、ユーザは当該据置型装置のアクティブセッションを終了して、モバイル装置で新しいアクティブセッションを確立し直さなければならない。同様に、無線通信費用を抑えるために、他の作業をする間一時的に無線接続を中断しようとする場合、モバイル装置でアクティブセッションを確立しているユーザは当該セッションを保存することができない。
【０００５】
ブラウザを使用してウェブページにアクセスするための方法として、後でアクセスするウェブページのＵＲＬ（Ｕｎｉｆｏｒｍ　Ｒｅｓｏｕｒｃｅ　Ｌｏｃａｔｏｒ）を保存するブックマークの利用が広く知られている。例えば、マイクロソフト（登録商標）インターネットエクスプローラ（登録商標）の「お気に入り」等のブックマークの概念によれば、効率的で迅速なウェブページへのアクセスが可能になる。しかし、このようなブックマークを用いても、静的なウェブページへの再アクセスが可能になるだけである。例えば、商品の選択条件、購買情報、その他特定のアクティブウェブセッションに関する情報等のセッション特有の情報は保存されないので、再び作成する必要がある。
【０００６】
また、アクティブセッションに関する情報を保存する方法として、クッキーの利用が広く知られている。通常、クッキーはブラウザ側の記憶メカニズムであり、ブラウザを操作するユーザに関するセッション内またはセッション間の情報を保存するために用いられる。一般的に、クッキーはブラウザがアクセスしているウェブサイトにより設定され、次回アクセスする際に当該ウェブサイトに送信される情報である。クッキーはブラウザが動作している装置に送信され、保存される。ブラウザはウェブサイトにアクセスする際、以前に保存された当該ウェブサイトに対応するクッキーを利用する。しかしながら、このようなクッキーは単一の装置に関連付けられて保存されるため、他の装置上で動作するブラウザでは利用することができない。
【０００７】
さらに、いくつかのウェブサイトが提供する、ブラウザのユーザを識別してアクティブセッション中に蓄積された購買情報を保存できる方法が広く知られている。この情報は、後のセッションで読み出せるようにサーバ側のデータベースに保存される。この技術は、各ウェブサイトに対して相当のユーザ追跡能力を要求するばかりでなく、ユーザに対しても商品またはサービスの購入を決断する前にサインインプロセスを完了しなければならないという負担を負わせる。さらに、このようなウェブサイトに保存される購買情報には、例えばブラウザが以前に表示したページ、セッション中にカスタマイズされた値、および／またはブラウザナビゲーションとそれに伴うウェブサイトのカスタマイズに関する情報等、アクティブセッションに関する情報は含まれない。従って、ウェブサイトとの新しいアクティブセッションを確立する場合、以前のアクティブセッション中にカスタマイズした設定の多くは再び作成されなければならない。
【０００８】
【課題を解決するための手段】
本発明は、ブラウザセッションモビリティ（ＢＳＭ）システムに関する。ＢＳＭシステムは、アクティブセッションの取り込み、保存、および再インスタンス化をサポートする。アクティブセッションは、アプリケーションサーバおよび、一プラットフォームである通信装置上で動作するブラウザ間で確立される。アクティブセッションは、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存（ｐｌａｔｆｏｒｍ　ｓｐｅｃｉｆｉｃ）バージョンを有するアプリケーションサーバによってサポートされる。アクティブセッションが確立されると、プラットフォーム依存ランタイム状態が生成される。プラットフォーム依存ランタイム状態はスナップショットとして取り込まれ、プラットフォーム非依存（ｐｌａｔｆｏｒｍ　ｉｎｄｅｐｅｎｄｅｎｔ）ランタイム状態に選択的に変換されて、ＢＳＭシステムのリポジトリサーバに保存される。ランタイム状態が取り込まれて変換される際には、アクティブセッションのブラウザ側ランタイム状態とサーバ側ランタイム状態とが取り込まれて選択的に変換される。または、ブラウザ側ランタイム状態のみの取り込み、選択的な変換、および保存が行われてもよい。
【０００９】
ＢＳＭシステムは、プラットフォーム非依存ランタイム状態を用いて、マルチプラットフォームネットワークアプリケーションの、異なるプラットフォーム間におけるモビリティをサポートする。プラットフォーム非依存ランタイム状態は記憶装置から読み出されると、任意のプラットフォームに依存するランタイム状態に変換される。従って、アクティブセッションの第１のプラットフォームに依存するランタイム状態は、ネットワークアプリケーションの第１のプラットフォームに依存するバージョンから取り込まれ、プラットフォーム非依存ランタイム状態に選択的に変換される。プラットフォーム非依存ランタイム状態は一旦保存され、後で読み出されると第２のプラットフォームに依存するランタイム状態に選択的に変換される。第２のプラットフォームに依存するランタイム状態は、ネットワークアプリケーションの第２のプラットフォームに依存するバージョンを用いてアクティブセッションとして再インスタンス化される。
【００１０】
ＢＳＭシステムにおいて、プラットフォーム依存ランタイム状態およびプラットフォーム非依存ランタイム状態はスナップショットと表現される。プラットフォーム依存（ＰＳ）スナップショットは、ブラウザ側およびサーバ側ランタイム状態のうち少なくともいずれか一方のプラットフォーム依存ランタイム状態を指す。プラットフォーム非依存（ＰＩ）スナップショットは、プラットフォーム非依存ランタイム状態を指す。スナップショットは、それぞれアクティブセッションの状態データおよびセッションデータを含む。ＰＩスナップショットおよびＰＳスナップショット間の変換は、マッピングに基づいて行われる。マッピングによれば、異なるプラットフォームに依存するネットワークアプリケーション間で異なる、プラットフォーム依存ランタイム状態の部分を選択的に変換できる。
【００１１】
ＢＳＭシステムによれば、従来のように、ブラウザ側ランタイム状態とブラウザが動作する装置とを関連付けるのではなく、ランタイム状態のスナップショットをユーザがアクセス可能な場所に保存することにより、ブラウザ側ランタイム状態とユーザとを関連付けることができる。さらに、ＢＳＭシステムでは、アクティブセッションと特定のプラットフォームとが関連付けられることがない。これは、サーバ側およびブラウザ側ランタイム状態の両方を含むランタイム状態を取り込んでプラットフォーム非依存ランタイム状態に選択的に変換することにより可能になる。または、プラットフォーム非依存ランタイム状態はブラウザ側ランタイム状態のみを含んでもよい。プラットフォーム非依存ランタイム状態は、プラットフォーム依存ランタイム状態に選択的に変換されることにより任意のプラットフォーム上で再インスタンス化される。
【００１２】
ＢＳＭシステムの特徴は、ＰＳスナップショットおよびＰＩスナップショット間の変換に関する。例えば、ブラウザ側ランタイム状態がＰＳスナップショットに取り込まれると、ＰＳスナップショットのブラウザ側ランタイム状態を成す状態データおよび／またはセッションデータは、ＰＩスナップショットに選択的に変換される。この変換は、マッピング記述ファイルを用いて選択的に行われる。マッピング記述ファイルによれば、ＰＳスナップショットの状態データおよび／またはセッションデータのうちプラットフォームに依存する部分が特定され、特定された状態データおよびセッションデータが、プラットフォームに依存しない状態データおよびセッションデータに変換される。
【００１３】
ＢＳＭシステムの別の特徴は、ＰＩスナップショットの生成に関する。ＰＩスナップショットは、アクティブセッションのプラットフォーム非依存ランタイム状態を指し、サーバ側ランタイム状態とブラウザ側ランタイム状態とが結合されている。サーバ側ランタイム状態がＰＩスナップショットに選択的に変換され、ブラウザ側ランタイム状態も選択的に変換されて、ＰＩスナップショットのサーバ側ランタイム状態と結合される。または、ブラウザ側ランタイム状態のみが取り込まれて、ＰＩスナップショットに選択的に変換される。
【００１４】
ＢＳＭシステムのさらに別の特徴は、異なるスナップショットのランタイム状態間におけるマッピングの設定である。マッピングは選択的に設定され、スナップショットに取り込まれる状態データおよびセッションデータの大部分または一部分が変換されたり、全く変換されなかったりする。マッピングにより指定される変換の量は、プラットフォームが異なる状態およびセッションデータ間の互換性に比例する。スナップショットの状態データおよびセッションデータが異なるプラットフォーム間で互換性をもつ場合には、マッピングによって全く変換が指定されない。一方、スナップショットの状態データおよびセッションデータの一部が互換性を持たない場合は、マッピングによって適当な変換が指定される。
【００１５】
ＢＳＭシステムのさらに別の特徴は、アクティブセッションのランタイム状態を表すスナップショットの異なる状態データおよびセッションデータ間のマッピングに関する。異なるプラットフォーム間のマッピングは、マッピング記述ファイルに記述されている。特定のプラットフォームに対して用いられるマッピング記述ファイルは、マスターマッピングファイルを用いて選択される。プラットフォームが特定されると、マスターマッピングファイルを用いて対応するマッピング記述ファイルが特定される。そして、マッピング記述ファイルを用いて、スナップショットに含まれる状態データおよびセッションデータが選択的に変換される。
【００１６】
本発明のさらなる目的および効果は、以下の説明と本発明の好適な実施形態を明示する添付の図面とを参照することにより明らかになる。
【００１７】
【発明の実施の形態】
本発明には、ブラウザを操作するユーザが１以上のアクティブセッションのブラウザ状態を保存することを可能にするブラウザ状態リポジトリ（ＢＳＲ）サービスが含まれる。ＢＳＲサービスによれば、ユーザは、任意のブラウザおよび／または装置を使用して保存されたブラウザ状態のいずれかを選択的に読み出し、当該ブラウザ状態に対応する同一のアクティブセッションを再開できる。ブラウザの現状態は、アクティブセッション中に保存された時点と同じ状態に復元される。従って、ＢＳＲサービスによれば、ユーザはアクティブセッションのブラウザ状態を消失して、新しい装置上の新しいブラウザ状態で再びやり直すことなく、アクティブセッション中に新しい装置またはブラウザに切り替えることができる。さらに、ＢＳＲサービスによれば、任意の装置またはブラウザ上で任意のアクティブセッションを保存して後で再開することができるだけでなく、ユーザは複数のアクティブセッションのブラウザ状態を同時に管理することができる。
【００１８】
図１は、ネットワーク１２を介して動作するＢＳＲサービス１０の一実施形態を示すブロック図である。ＢＳＲサービス１０は、第１の装置１４および第２の装置１６として示される少なくとも１の装置を有する。さらに、ＢＳＲサービスは、少なくとも１のリポジトリサーバ１８を有する。図１に示すように、第１および第２の装置１４、１６およびリポジトリサーバ１８はネットワーク１２を介して通信接続されている。別の態様において、ＢＳＲサービス１０は、任意の数の装置、リポジトリサーバ、および／またはネットワーク対応装置を有してよい。本明細書中において、「結合」、「接続」、または「相互接続」という用語は、電気的な結合、光学的な結合、無線による結合、および／またはシステム、装置、および／またはコンポーネント間にインターフェイスを提供するその他の結合を意味する。
【００１９】
ネットワーク１２は、例えばインターネット、公的および／または私的イントラネット、エクストラネット、および／またはデータおよびコマンド転送を可能にするその他のネットワーク構成である。ネットワーク１２内で行われる通信で用いられる通信媒体は、有線通信システムおよび／または無線通信システムである。通信媒体は、例えば、通信チャンネル、電波、マイクロ波、有線通信、光ファイバー通信、またはデータ、音声、および／または動画像情報を送信可能なその他の通信媒体である。
【００２０】
第１および第２の装置１４、１６は、ネットワーク１２を介した通信接続が可能な任意のタイプのコンピュータ装置または同様のハードウェアである。さらに、第１および第２の装置１４、１６は、ユーザインターフェイス（ＵＩ）、メモリ、マイクロプロセッサ、および／またはその他のハードウェアと関連するオペレーティングシステム／アプリケーションを有する。第１および第２の装置１４、１６は、例えば携帯電話、携帯情報端末（ＰＤＡ）、ポケットパソコン（ＰＣ）、または無線通信が可能なその他の装置であってもよい。さらに、第１および第２の装置１４、１６は、例えばネットワーク端末、パソコン、サーバ、またはネットワーク１２を介して有線通信が可能なその他の装置であってもよい。別の態様において、第１および第２の装置１４、１６は有線および無線通信機能の両方を有してもよい。
【００２１】
図１に示すように、第１の装置１４上では第１のブラウザ２０が動作する。同様に、第２の装置１６上では第２のブラウザ２２が動作する。第１および第２のブラウザ２０、２２は、ネットワーク１２上の別の装置からダウンロードしたページ特定して表示できる第１および第２の装置１４、１６上で動作する、任意のフォームのアプリケーションである。本実施形態において、第１および第２のブラウザ２０、２２は、例えばマイクロソフト（登録商標）インターネットエクスプローラ（登録商標）、および／またはネットスケープナビゲータ（登録商標）等のウェブブラウザである。別の態様において、第１および第２のブラウザ２０、２２は、ネットワーク１２を介してダウンロードした任意の形式のページを特定して表示する機能を有する、任意の形式の同種同士または異種同士のブラウザでもよい。第１および第２のブラウザ２０、２２は、テキストおよびグラフィックの表示に加えて、動画像、音声、マルチメディアおよび／またはその他情報の表示をサポートしてもよい。ＢＳＲサービス１０の動作も、第１および第２のブラウザ２０、２２によってサポートされることが望ましい。第１および第２のブラウザ２０、２２は第１および第２の装置１４、１６上で起動、操作され、リポジトリサーバ１８と連携して動作する。
【００２２】
リポジトリサーバ１８は、少なくとも１のサーバ等の、ネットワーク１２を介して要求を受信し応答を送信できる任意の形式のコンピュータ装置である。本実施形態において、リポジトリサーバ１８はＢＳＲサービス１０のインフラストラクチャ内で動作し、第１および第２の装置１４、１６から要求を受信し応答を送信する通信機能を有する。ある態様において、リポジトリサーバ１８はハイパーテキスト転送プロトコル（ＨＴＴＰ）サーバであってもよい。この態様において、第１および第２の装置１４、１６は、ＨＴＴＰおよび／または高信頼ハイパーテキスト転送プロトコル（ＨＴＴＰＳ）を用いてリポジトリサーバ１８と通信を行うようにしてもよい。別の態様において、ファイル転送プロトコル（ＦＴＰ）、ネットニューズ転送プロトコル（ＮＮＴＰ）、簡易メール転送プロトコル（ＳＭＴＰ）、リモートメッセージインターフェイス（ＲＭＩ：Ｒｅｍｏｔｅ　Ｍｅｓｓａｇｅ　Ｉｎｔｅｒｆａｃｅ）、コルバ（ＣＯＲＢＡ：Ｃｏｍｍｏｎ　Ｏｂｊｅｃｔ　Ｒｅｑｕｅｓｔ　Ｂｒｏｋｅｒ　Ａｒｃｈｉｔｅｃｔｕｒｅ）、コンポーネントオブジェクトモデル（ＣＯＭ：Ｃｏｍｐｏｎｅｎｔ　Ｏｂｊｅｃｔ　Ｍｏｄｅｌ）、公的および私的専用プロトコル等のプロトコルを用いてもよい。
【００２３】
ＢＳＲサービス１０の動作中、ユーザは、第１の装置１４上で動作する第１のブラウザ２０を使用してアクティブセッションを確立する。「アクティブセッション」という用語は、ネットワーク１２上の別の装置との任意の形式の対話を意味する。この対話では、別の装置から提供される情報が第１のブラウザ２０を操作するユーザに対して表示、通信、伝達される。典型的なアクティブセッションとして、第１のブラウザ２０を使用してウェブページおよび関連する資料の場所を特定した後、その情報をダウンロードして表示するウェブセッションがある。
【００２４】
アクティブセッションを確立してカスタマイズした後、ユーザは、ＢＳＲサービス１０を利用してアクティブセッションのブラウザの現状態を取り込んで（ｃａｐｔｕｒｅ）保存することができる。本明細書中において、アクティブセッションの「カスタマイズ」または「カスタム化」という用語は、第１のブラウザ２０を使用した対話によりブラウザ状態に蓄積されるアクティブセッションの変更を意味する。さらに、「ブラウザの現状態」または「ブラウザ状態」という用語は、ユーザがブラウザを使用して生成したアクティブセッションのカスタマイズされた状態を意味する。第１のブラウザ２０を使用して確立されるアクティブセッションのブラウザの現状態とそれに関連する属性は格納可能な形式で取り込まれる。取り込まれたアクティブセッションのブラウザの現状態は、「スナップショット」または「ブラウザスナップショット」と呼ばれる。
【００２５】
アクティブセッションのブラウザの現状態は、ブラウザキャッシュおよびブラウザ履歴により構成される。ブラウザキャッシュおよびブラウザ履歴には、ドキュメントオブジェクトおよびスクリプトオブジェクトの現状態に加えて、例えば第１のブラウザ２０が最後に表示したページが含まれる。従って、取り込まれたアクティブセッションのブラウザの現状態に含まれるページは動的でも静的であってもよい。さらに、ブラウザキャッシュおよびブラウザ履歴は、以前におよび／または最後に表示されたページ上で変更あるいは入力された値、ブラウザ履歴、クッキー、および／またはユーザによってカスタマイズ可能なアクティブセッションのブラウザの現状態に関連するその他のパラメータを含んでもよい。ユーザは、リポジトリサーバ１８を使用してネットワーク１２内にアクティブセッションのブラウザの現状態を安全に保存できる。
【００２６】
ＢＳＲサービス１０によれば、ユーザは、保存されたアクティブセッションのブラウザの現状態を後で安全に読み出すことができる。ユーザは、リポジトリサーバ１８および任意の装置上の任意のブラウザを使用して、保存されたブラウザの現状態を取り出すことができる。例えば、ユーザは、第１の装置１４上で第１のブラウザ２０、第２の装置１６上で第２のブラウザ２２、またはその他任意の装置とそれに付随するブラウザを用いてもよい。保存されたブラウザの現状態が読み出されると、アクティブセッションのブラウザ状態は復元され、同一のアクティブセッションをスナップショットが取り込まれた時点から再開できる。
【００２７】
例えば、ユーザが、オフィスのデスクトップＰＣ上で第１のブラウザ２０を操作して厚地の窓用カーテンを購入する場合を想定する。ここで、このユーザは、アクティブセッション中に別々のページ上で所望の色、図柄、および形等の選択をした後、帰宅して窓枠を測定しなければならないものとする。同様に、同一のユーザが後で航空券を購入する目的で、別のアクティブセッション中に第１のブラウザ２０を使用して別々のページ上で複数のフライトスケジュールを組むものとする。
【００２８】
ユーザは、ＢＳＲサービス１０を利用して、第１のブラウザ２０をシャットダウンする前にこれらカスタマイズされたアクティブセッションの各ブラウザの現状態を取り込む。そして、ユーザは帰宅し、窓枠を測定し、旅行の計画を仕上げ、例えばポケットＰＣ等の第２の装置１６上で第２のブラウザ２２を起動させる。ユーザは、以前に保存されたブラウザスナップショットを読み出して復元した後、アクティブセッション中にカスタマイズされたページを閲覧し、厚地の窓用カーテンの選択を完了する。さらに、ユーザは以前にカスタマイズされたページを閲覧し、以前にカスタマイズされたアクティブセッション中に組んだフライトスケジュールの１つを選択する。
【００２９】
ある態様において、ＢＳＲサービス１０はインターネットのインフラストラクチャとそれに付随するプロトコルを用いて実施可能である。この態様では、ＢＳＲサービス１０の導入にあたり、既存のウェブサイト、装置とそれに付随するブラウザにほとんど変更を加える必要がない。別の態様において、ＢＳＲサービス１０はその他任意のインフラストラクチャとそれに付随するプロトコルを用いて実施してもよい。
【００３０】
図２は、ＢＳＲサービス１０の一実施形態を示すより詳細なブロック図である。ＢＳＲサービス１０は、図１を参照して説明した実施形態と同様に、第１のブラウザ２０を搭載した第１の装置１４、第２のブラウザ２２を搭載した第２の装置１６、およびネットワーク１２を介して図２に示すように通信するリポジトリサーバ１８を有する。図２は、リポジトリサーバ１８、第１および第２の装置１４、１６各々とネットワーク１２を介して通信する少なくとも１のサイト３０を例示している。さらに、図２は、本実施形態のＢＳＲサービス１０のインフラストラクチャの一部分として、第１および第２の装置１４、１６上で動作するＢＳＲ装置モジュール３４、およびリポジトリサーバ１８上で動作するＢＳＲリポジトリモジュール３６を例示している。別の態様において、任意の数のセキュアサイトおよび／または非セキュアサイトを含むようにしてもよい。さらに、ＢＳＲサービス１０の一部分として同図に例示するモジュールの数は図２に示す数より少なくしてもよいし、多くしてもよい。
【００３１】
一方、サイト３０は、ブラウザを介した情報に対するアクセスを提供可能な、ネットワーク１２を介して通信する任意のメカニズムである。サイト３０は、不正アクセスの可能性を最小限にするためのいずれの形式のセキュリティも有しない非セキュアサイトであってもよいし、反対にセキュアサイトであってもよい。従って、第１および第２のブラウザ２０、２２は、セキュリティのレベルに応じて高信頼性（ｓｅｃｕｒｅ）または非高信頼性通信を用いてサイト３０を閲覧する。第１および第２のブラウザ２０、２２は、サイト３０が非セキュアサイトの場合、ＨＴＴＰメッセージを用いて通信し、サイト３０がセキュアサイトの場合、ＨＴＴＰＳメッセージを用いて通信する。別の態様において、サイト３０は、セキュアサイトの部分および非セキュアサイトの部分を含んでもよい。この態様において、通信は、閲覧するサイトの部分に応じて高信頼性通信と非高信頼性通信の間でシフトするようにしてもよい。
【００３２】
ＢＳＲ装置モジュール３４は、第１および第２の装置１４、１６の少なくともいずれか１つで起動される任意のアプリケーションである。ＢＳＲ装置モジュール３４は、第１および第２のブラウザ２０、２２の機能を向上させるか、もしくは連携して動作することでＢＳＲサービス１０をサポートする。本実施形態において、ＢＳＲ装置モジュール３４は、ダウンロード可能なブラウザプラグインであり、第１および第２のブラウザ２０、２２に適用可能である。一般的に、ブラウザプラグインは、アプリケーションに機能またはサービスを付加する周知の形式のアプリケーションである。別の態様において、ＢＳＲ装置モジュール３４は、第１および第２の装置１４、１６内で、第１および第２のブラウザ２０、２２の機能を向上させる独立型のモジュールであってもよい。
【００３３】
図３は、ＢＳＲ装置モジュール３４の一実施形態を示すブロック図である。本実施形態において、ＢＳＲ装置モジュール３４は、インターフェイスコンポーネント４０、セキュリティコンポーネント４２、取り込みコンポーネント４４、および復元コンポーネント４６を有する。別の態様において、ＢＳＲ装置モジュール３４は、例えばスナップショット保存機能、ユーザ認証機能、またはＢＳＲサービス１０に係るその他の機能等の付加的な機能を有してもよい。
【００３４】
インターフェイスコンポーネント４０は、第１および第２の装置１４、１６のユーザにＢＳＲサービス１０とのインターフェイスを提供する。ユーザは、このインターフェイスを使用して、ＢＳＲサービス１０の機能に加えてＢＳＲ装置モジュール３４により提供される付加的な機能の動作を命令できる。さらに、インターフェイスコンポーネント４０は、ユーザインターフェイスを特定の装置のハードウエアに適合させる変換機能を提供する。例えば、ある装置においてユーザインターフェイスはタッチスクリーンであってもよいし、別の装置においてユーザインターフェイスはボタンであってもよいし、さらに別の装置においてユーザインターフェイスは音声や動画による対話であってもよい。つまり、インターフェイスコンポーネント４０は装置のハードウエアを認識して、ユーザインターフェイスをハードウエアに適合させる。
【００３５】
セキュリティコンポーネント４２は、ＢＳＲサービス１０のセキュリティを保証する。すなわち、セキュリティコンポーネント４２は高信頼性通信を選択的に行い、ＢＳＲサービス１０の不正使用を防止する。ユーザは、取り込みコンポーネント４４を用いることにより、アクティブセッションのブラウザスナップショットを取り込んで保存することができる。同様に、ユーザは、復元コンポーネント４６を用いることにより、取り込まれたブラウザスナップショットの読み出しを命令できる。ＢＳＲ装置モジュール３４の各コンポーネントの機能については以下で詳細に説明する。
【００３６】
図４および５は、ユーザインターフェイスバー５０を例としてインターフェイスの実施形態を例示している。ユーザインターフェイスバー５０は、インターフェイスコンポーネント４０（図３参照）を用いて起動および管理される。ある態様において、ユーザインターフェイスバー５０は、第１および第２の装置１４、１６（図２参照）のグラフィカルユーザインターフェイス（ＧＵＩ）を実装したブラウザウィンドウ内に表示されてもよい。別の態様において、ユーザインターフェイスバー５０は、別のウィンドウ内、または別のページとして表示されてもよい。さらに別の態様において、ユーザインターフェイスバー５０の選択可能な機能（以下で説明する）は、ハードボタン、個別アイコン、音声認識、および／またはユーザがＢＳＲサービス１０（図２参照）の機能に対して命令可能なその他のメカニズムを用いて表示してもよい。
【００３７】
インターフェイスコンポーネント４０が起動されると、本実施形態のユーザインターフェイスバー５０はＨｙｐｅｒｔｅｘｔ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ（ＨＴＭＬ）のページを表示する。本実施形態において、このページはＢＳＲリポジトリモジュール３６（図２参照）が動作するリポジトリサーバ１８（図２参照）から提供される。従って、インターフェイスコンポーネント４０を実行するために、第１および第２のブラウザ２０、２２の構成に加えるべき変更あるいは追加は比較的少ない。
【００３８】
別の態様において、このページは、例えばｅＸｔｅｎｓｉｂｌｅ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ（ＸＭＬ）、Ｗｉｒｅｌｅｓｓ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ（ＷＭＬ）、Ｃｏｍｐａｃｔ　Ｈｙｐｅｒｔｅｘｔ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ（ｃＨＴＭＬ）および／またはその他の言語で記述されたページであってもよい。さらに、このページは、インターフェイスコンポーネント４０と連携して動作する、ネットワーク１２内のその他の装置から提供されてもよい。さらに別の態様において、ユーザインターフェイスバー５０は、インターフェイスコンポーネント４０によって単独で生成され、管理されてもよい。上記いずれの態様においても、インターフェイスコンポーネント４０は、ユーザインターフェイスバー５０を介して入力されたコマンドに応じて、コマンドおよび情報を解読し、ネットワーク１２（図２参照）を介して送信する。
【００３９】
図４は、ユーザＩＤ欄５２、パスワード欄５４、サインオンボタン５６、リセットボタン５８、および認証装置ＩＤ欄６０を備えるログイン画面時のユーザインターフェイスバー５０を示している。別の態様において、ユーザインターフェイスバー５０のログイン画面は、ユーザを識別するためのその他の機能を備えてもよい。ユーザは、ログイン画面によりログイン情報を入力することが可能になる。ログイン情報は、ユーザが認証されてアクセスを許可されることなしにＢＳＲサービス１０（図２参照）にアクセスすることを防止するために用いられる。
【００４０】
図２、３および４に示すように、本実施形態において、認証およびアクセス許可はＢＳＲリポジトリモジュール３６により行われる。この実施形態において、ユーザＩＤ欄５２に入力されたユーザ名とパスワード欄５４に入力されたパスワードはネットワーク１２を介してＢＳＲリポジトリモジュール３６に送信され、認証およびアクセス許可を受ける。セキュリティコンポーネント４２は、ＳｅｃｕｒｅＳｏｃｋｅｔｓ　Ｌａｙｅｒ（ＳＳＬ）接続等の高信頼性接続をＢＳＲリポジトリモジュール３６との間で確立し、認証およびアクセス許可処理を開始する。セキュリティコンポーネント４２により高信頼性接続が開始される際には、ユーザ名およびパスワード情報を、例えばＨＴＴＰＳメッセージにすることによりこれらの情報の安全性が保証される。本実施形態のログイン画面は、ＢＳＲリポジトリモジュール３６が動作するリポジトリサーバ１８から提供されることが好ましい。さらに、高信頼性接続は、第１および第２のブラウザ２０、２２を使用して確立される。
【００４１】
セキュリティコンポーネント４２はインターフェイスコンポーネント４０と連携してログイン画面の機能を管理してもよい。例えば、セキュリティコンポーネント４２は、サインオンボタン５６が選択された時に認証およびアクセス許可処理を開始してもよい。さらに、ネットワーク１２を介してＢＳＲ装置モジュール３４からＢＳＲリポジトリモジュール３６へ送信される後続のメッセージについても、セキュリティコンポーネント４２により安全性を保証してもよい。別の態様において、ログイン情報は、個人情報記憶装置（個人情報カード等）、生体情報スキャナ（声紋、指紋、網膜スキャナ等）および／またはユーザを識別するためのその他のメカニズムからのデータとして外部からセキュリティコンポーネント４２に供給してもよい。さらに別の態様において、セキュリティコンポーネント４２はログイン画面を生成し、ＢＳＲサービス１０の機能へのアクセスをユーザに許可してもよい。さらに別の態様において、セキュリティコンポーネント４２は、ユーザインターフェイスバー５０が長時間休止状態にある場合に、タイムアウトパスワード等のローカルセキュリティを設定してもよい。
【００４２】
認証装置ＩＤ欄６０により、ユーザ認証のためにログイン情報が送信される、ネットワーク１２内の少なくとも１の装置が特定される。この装置は、ユーザが作成したアカウントの情報とセキュリティコンポーネント４２を介して送信されるログイン情報とを照合可能なネットワーク接続された装置である。本実施形態において、ユーザはＢＳＲリポジトリモジュール３６を用いてアカウントを作成する。従って、本実施形態の認証装置ＩＤ欄６０には、ＢＳＲリポジトリモジュール３６が動作するリポジトリサーバ１８の識別子が入力される。この識別子は、インターネットプロトコル（ＩＰ）アドレス、ＵＲＬ（Ｕｎｉｆｏｒｍ　Ｒｅｓｏｕｒｃｅ　Ｌｏｃａｔｏｒ）、ＵＲＩ（Ｕｎｉｆｏｒｍ　Ｒｅｓｏｕｒｃｅ　Ｉｄｅｎｔｉｆｉｅｒ）、ＵＵＩＤ（Ｕｎｉｖｅｒｓａｌ　Ｕｎｉｑｕｅ　Ｉｄｅｎｔｉｆｉｅｒ）、またはその他の形式の識別子である。
【００４３】
図５に示すように、ユーザインターフェイスバー５０は、ＢＳＲサービス１０とユーザとを媒介するためのユーザ画面を表示する。本実施形態のユーザインターフェイスバー５０は、認証装置ＩＤ欄６０、ユーザＩＤ欄６２、スナップショットボタン６４、セッション名欄６６、セッションパスワード欄６８、復元ボタン７０、セッション選択欄７２、サインオフボタン７４、およびＢＳＲリポジトリモジュール欄７６を備える。別の態様において、ユーザインターフェイスバー５０は追加機能やＢＳＲサービス１０の動作に関する情報を備えてもよい。
【００４４】
図２、３および５に示すように、ユーザから提供されたログイン情報が認証されアクセスが許可されると、本実施形態のユーザ画面がユーザインターフェイスバー５０に表示される。従って、ユーザＩＤ欄６２には、ログインに成功した正当なユーザの識別子が入力される。この識別子は、例えばユーザ名、番号、またはアクセスを許可されたユーザを示すその他の識別子である。
【００４５】
ユーザは、スナップショットボタン６４を選択することにより、ＢＳＲ装置モジュール３４の取り込みコンポーネント４４を起動できる。上述したように、取り込みコンポーネント４４を起動することによりスナップショットを取り込むことができる、すなわちアクティブセッションのブラウザの現状態を取り込むことができる。取り込みコンポーネント４４は、スナップショットの取り込みが開始されるとアクティブセッションのブラウザ状態に関する複数のセッションパラメータを取り込む。ある態様において、このセッションパラメータには、ブラウザに表示中のページを構成する少なくとも１のドキュメントオブジェクトモデル（ＤＯＭ）、現在のページを構成する少なくとも１のスクリプトオブジェクト、現在のセッションのブラウザ履歴、ブラウザキャッシュ、およびクッキーが含まれる。別の態様において、取り込みコンポーネント４４は、アクティブセッションのブラウザの現状態を構成するその他の形式のセッションパラメータを取り込んでもよい。
【００４６】
従来から周知なように、ＤＯＭは、ＨＴＭＬおよびＸＭＬ文書用の１組のアプリケーションプログラムインターフェイス（ＡＰＩ）である。一般的に、ＤＯＭは文書の論理構造を定義し、ブラウザに表示される文書へのアクセスおよび操作のための標準のインターフェイスを提供する。ＤＯＭにより定義されたインターフェイスを用いて、文書構造とそれに含まれる要素の構築および変更に加えて、文書構造内の移動が行われる。
【００４７】
例えば、マイクロソフト（登録商標）インターネットエクスプローラ（登録商標）を使用してＨＴＭＬページを解析すると、ＤＯＭ構造が作成される。ＤＯＭ構造は、ブラウザに表示されたＨＴＭＬページの構造を表す。ＤＯＭ構造の各ノードはドキュメント情報を表す。ドキュメント情報には、ＨＴＭＬページのＨＴＭＬ要素、ＸＭＬ要素、属性、および／またはテキストが含まれる。例えば、＜ａ　ｈｒｅｆ＝ｈｔｔｐ：／／ｗｗｗ．ｄｏｃｏｍｏｌａｂｓ−ｕｓａ．ｃｏｍ＞ＤｏＣｏＭｏ＜／ａ＞というＨＴＭＬの場合、”ａ”要素のノード、”
ｈｒｅｆ”属性のノード、およびテキスト内容の２つのノードの合計４つのノードで表さ
れる。
【００４８】
従来から周知なように、各ＤＯＭ構造の各ノードには、ブラウザにおける表示方法および動作を定義する１組の属性が含まれている。ＢＳＲ装置モジュール３４は、コンテンツおよびノードの属性を含むこのようなＤＯＭ構造をスナップショット内に取り込むよう指示される。別の態様において、Ｃｏｍｐａｃｔ　ＨＴＭＬ（ｃＨＴＭＬ）、Ｗｉｒｅｌｅｓｓ　Ａｐｐｌｉｃａｔｉｏｎ　Ｐｒｏｔｏｃｏｌ（ＷＡＰ）、Ｗｉｒｅｌｅｓｓ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ（ＷＭＬ）、および／またはその他のプロトコルや言語を解析する機能を備えたブラウザを使用してＢＳＲ装置モジュール３４により取り込み可能な構造を作成してもよい。
【００４９】
例えば、マイクロソフト（登録商標）インターネットエクスプローラ（登録商標）にページをダウンロードして、ＢＳＲサービス１０によりアクティブセッションのブラウザの現状態を保存する場合を想定する。ユーザがスナップショットボタン６４を選択すると、取り込みコンポーネント４４は、ブラウザに表示されているページの最上位フレーム内の全ドキュメントオブジェクトをたどる。取り込みコンポーネント４４は最上位フレーム内の各ノードとその属性を取り込む。さらに、取り込みコンポーネント４４は下位フレームに進み、ＤＯＭ構造のノードとその属性を取り込む。
【００５０】
取り込みコンポーネント４４により取り込まれる別のセッションパラメータとして、スクリプトオブジェクトがある。ＶＢ　ＳｃｒｉｐｔやＪａｖａＳｃｒｉｐｔ等のスクリプトオブジェクトは、ブラウザにダウンロードされるページに含まれる。取り込みコンポーネント４４はこのようなスクリプトオブジェクトをブラウザスナップショットの一部として取り込むようにしてもよい。スクリプトオブジェクトはＤＯＭドキュメントとともに取り込まれてもよい。従って、取り込みコンポーネント４４は、ページを構成するＤＯＭおよびスクリプトオブジェクトの両方を同時に取り込む。また、取り込みコンポーネント４４はスクリプトオブジェクトのみを取り込むようにしてもよい。
【００５１】
例えば、マイクロソフト（登録商標）インターネットエクスプローラ（登録商標）を使用する場合、スクリプト変数は、ＩＤｉｓｐａｔｃｈオブジェクトと表されるスクリプトタグで定義される。ＩＤｉｓｐａｔｃｈオブジェクトは、実行時、マイクロソフト（登録商標）インターネットエクスプローラ（登録商標）が備えるスクリプトエンジンを用いてアクセスされる。ある態様において、マイクロソフト（登録商標）インターネットエクスプローラ（登録商標）を使用してスナップショットを取り込む場合、スクリプト変数に対応するＩＤｉｓｐａｔｃｈオブジェクトはシリアル化されて取り込まれるが、対応するスクリプト機能は取り込まれない。従来から周知なように、マイクロソフト（登録商標）インターネットエクスプローラ（登録商標）のスクリプト機能は一定である。別の態様において、スクリプト機能とスクリプト変数の両方が取り込みコンポーネント４４により取り込まれてもよい。
【００５２】
取り込みコンポーネント４４により取り込まれるさらに別のセッションパラメータとして、クッキーがある。一般的に、クッキーは、ユーザ固有の情報を含む周知の装置識別子である。従来から周知なように、クッキーは、ダウンロードされるページとともにブラウザに提供される。取り込みコンポーネント４４は、取り込みプロセスにおいて、クッキーをｎａｍｅおよびｖａｌｕｅ要素の対として解釈して保存する。、クッキーは取り込まれると、取り込みコンポーネント４４により取り込まれるその他の情報に付加される。マイクロソフト（登録商標）インターネットエクスプローラ（登録商標）が使用される場合、クッキーは上述した各スナップショットのＤＯＭ構造に付加される。
【００５３】
取り込みコンポーネント４４により取り込まれるさらに別のセッションパラメータとして、アクティブセッションのブラウザ履歴がある。ブラウザ履歴は、ブラウザが以前に表示したページの集合である。従って、取り込みコンポーネント４４はブラウザ履歴に登録されたページを取り込み、取り込まれたその他の情報に付加する。マイクロソフト（登録商標）インターネットエクスプローラ（登録商標）が使用される態様において、ブラウザは、ＵＲＬ履歴を検索および設定するためにＩＵＲＨｉｓｔｏｒｙＳｔｇインターフェイスを備える。この態様では、ブラウザ履歴を取り込む際に、ＵＲＬ履歴を列挙し、列挙されたＵＲＬを取得し、取得したＵＲＬをＤＯＭ構造およびクッキーに付加する。
【００５４】
ユーザは、取り込みコンポーネント４４を用いて、取り込まれたアクティブセッションのブラウザの現状態に対してセッション名とセッションパスワードを設定してもよい。ユーザは、図４に示されるセッション名欄６６に固有のセッション名を入力する。あるいは、ユーザは、以前に取り込んだブラウザ状態のセッション名を選択してもよい。セッション名が設定されない場合、ウェブサイトのホスト名等をデフォルトセッション名として、取り込んだアクティブセッションのブラウザ状態を識別してもよい。
【００５５】
ユーザは、図４に示されるセッションパスワード欄６８に入力されるセッションパスワードを用いてブラウザスナップショットを保護してもよい。このセッションパスワードにより、取り込んだブラウザスナップショットへの不正アクセスを防止できる。別の態様において、セッションパスワードの入力方法には、音声パスワードやブラウザスナップショットへの不正アクセスを防止するその他のメカニズムが含まれる。
【００５６】
ブラウザスナップショットは取り込まれると、取り込みを指示したユーザと関連付けられる。つまり、スナップショットは、ブラウザ状態を取り込んだブラウザおよび／または装置ではなく、ユーザと関連付けられる。スナップショットは、ユーザと関連付けられる際、ユーザのアカウント情報、ユーザ名、またはアクティブセッションをカスタマイズしてブラウザスナップショットを取り込んだユーザを一意に識別するその他のメカニズムと関連付けられる。各ユーザと関連付けられたブラウザスナップショットはネットワーク１２内の安全な場所に保存される。
【００５７】
本実施形態において、ブラウザスナップショットはＢＳＲリポジトリモジュール３６により保存される。本実施形態において、セキュリティコンポーネント４２は、ＢＳＲ装置モジュール３４とＢＳＲリポジトリモジュール３６間の高信頼性接続を確立し、取り込んだアクティブセッションのブラウザ状態をネットワーク１２を介して送信する。別の態様において、取り込んだアクティブセッションのブラウザ状態がネットワーク１２内の他の場所に保存される場合、セキュリティコンポーネント４２は、ネットワークに接続されたその他の装置と高信頼性接続を確立し、ブラウザスナップショットを安全に送信する。
【００５８】
ある態様において、セッション名およびセッションパスワードの入力後、ブラウザスナップショットを自動的に保存するようにしてもよい。別の態様において、ユーザは、別のコマンドでおよび／または保存場所を選択してブラウザスナップショットの保存を開始してもよい。ユーザがアクティブセッションのブラウザ状態を取り込んだ後も当該アクティブセッションのカスタマイズを続けた場合、取り込みコンポーネント４４は、取り込んだアクティブセッションのブラウザスナップショットとの不一致の可能性を警告してもよい。
【００５９】
上述したように、ＢＳＲ装置モジュール３４は復元コンポーネント４６を有する。ユーザはユーザインターフェイスバー５０を用いて、取り込んだブラウザスナップショットの読み出しを指示する。読み出しは、復元ボタン７０とセッション選択欄７２とを用いて開始される。ユーザは、正常に認証されアクセスを許可されると、以前に取り込まれユーザに関連付けられたブラウザスナップショットを選択する。ブラウザスナップショットを選択する際には、プルダウンメニューリスト、索引、データベース、セッション名の手動入力、または以前に取り込まれユーザに関連付けられたブラウザスナップショットのリストを識別するためのその他の検索メカニズムが用いられる。検索メカニズムおよび／またはリストは、ＢＳＲリポジトリモジュール３６、セキュリティコンポーネント４２、および／またはブラウザスナップショットの保存場所に関連付けられたその他の装置により提供される。
【００６０】
以前に保存されたアクティブセッションのブラウザ状態が選択されると、復元ボタン７０を選択することにより読み出しが開始される。アクティブセッションのブラウザ状態がＢＳＲリポジトリモジュール３６に保存される態様において、保存されたブラウザスナップショットは、ログインする際にユーザを認証しアクセスを許可するために予め確立された高信頼性接続を介してダウンロードされる。この態様において、高信頼性接続がすでに切断されている場合、セキュリティコンポーネント４２は高信頼性接続の確立を再び開始する。ブラウザスナップショットがネットワーク１２内の他の場所に保存される別の態様において、セキュリティコンポーネント４２は高信頼性接続を確立し、スナップショットを安全に読み出せるようにする。
【００６１】
選択されたブラウザスナップショットに対してセッションパスワードが設定されている場合は、セッションパスワードをセッションパスワード欄６８に入力する。セッションパスワードは、ＢＳＲリポジトリモジュール３６、セキュリティコンポーネント４２、またはブラウザスナップショットの保存場所に関連付けられたその他の装置により認証される。従って、ユーザは正常に認証されアクセスを許可されても、セッションパスワードがなければ保存されたブラウザスナップショットを読み出すことができない。
【００６２】
復元コンポーネント４６は、ブラウザスナップショットを受信すると当該ブラウザスナップショットを復元する。ブラウザスナップショットを復元する際、ブラウザスナップショットはアクティブセッションのブラウザ状態に変換される。アクティブセッションは、復元後、スナップショットが取り込まれた時点と同じ状態でブラウザに表示される。ある態様では、上述のように取り込まれたＤＯＭおよびスクリプトオブジェクトの復元の結果、アクティブセッションのブラウザ状態が表示される。さらに、ページ中に入力された値、ブラウザ履歴、ブラウザキャッシュ、クッキー、および／またはアクティブセッション中にカスタマイズされたその他の情報も復元される。
【００６３】
ある態様では、ブラウザスナップショットを復元する際にサイト３０（図２参照）からコンテンツを再ダウンロードする。サイト３０からブラウザにコンテンツがダウンロードされると、ＢＳＲ装置モジュール３４の復元コンポーネント４６はブラウザスナップショットを利用してコンテンツをカスタマイズし、以前に取り込んだアクティブセッションのブラウザ状態を復元する。ある態様では、以前に取り込んだＤＯＭ構造を復元する際に、ダウンロードしたコンテンツのＤＯＭ構造が利用される。この態様において、復元コンポーネント４６は、以前に取り込んだＤＯＭ構造に従って、ダウンロードしたコンテンツの各ＤＯＭノードの値および属性を復元する。ＤＯＭ構造が復元されると、復元コンポーネント４６は、クッキー、スクリプトオブジェクトの変数、およびブラウザ履歴の復元を開始する。
【００６４】
図２、３および５に示すように、セキュリティコンポーネント４２はサインオフボタン７４を備える。セキュリティコンポーネント４２はログオフ処理を開始する、すなわちサインオフボタン７４が選択されるとＢＳＲサービス１０へのアクセスを終了する。セキュリティコンポーネント４２は、サインオフボタン７４が選択されるとＢＳＲ装置モジュール３４とブラウザとの接続を切断する。さらに、セキュリティコンポーネント４２はインターフェイスコンポーネント４０に指示してユーザインターフェイスバー５０を閉じる。
【００６５】
ＢＳＲリポジトリモジュール欄７６には、ＢＳＲリポジトリモジュール３６が動作する装置の場所が入力される。場所を示す識別子としては、ＩＰアドレス、物理的な場所名、またはその他任意の形式の識別子がある。従って、複数のＢＳＲリポジトリモジュール３６が利用可能な場合には、ＢＳＲリポジトリモジュール欄７６により所望の場所が選択できる。
【００６６】
図２に示すように、ＢＳＲリポジトリモジュール３６は、ネットワーク１２を介してＢＳＲ装置モジュール３４と通信可能な装置上で動作し、且つＢＳＲサービス１０の動作をサポートする任意のアプリケーションである。本実施形態において、ＢＳＲリポジトリモジュール３６はリポジトリサーバ１８上で動作する。別の態様において、ＢＳＲリポジトリモジュール３６は、ネットワークに接続された任意の装置上で動作してもよい。本実施形態において、ＢＳＲリポジトリモジュール３６と連携して動作するリポジトリサーバ１８は、ＢＳＲサービス１０をサポートする商用のサーバサービス提供者でもよいし、私的に設定、管理されるＢＳＲサービス１０用のサーバサービスの提供装置でもよい。
【００６７】
図６は、ＢＳＲリポジトリモジュール３６の一実施形態を示すブロック図である。ＢＳＲリポジトリモジュール３６は、ログインセキュリティコンポーネント８０、ページサーバコンポーネント８２、スナップショット保存コンポーネント８４、通信セキュリティコンポーネント８６、およびタイミングコンポーネント８８を備える。別の態様において、ＢＳＲリポジトリモジュール３６の機能を果たすコンポーネント数の多寡は問わない。さらに別の態様において、ＢＳＲリポジトリモジュール３６はコード変換機能を備えてもよい。このコード変換機能により、ＨＴＭＬからｃＨＴＭＬへの変換、ｃＨＴＭＬからＨＴＭＬへの変換、および／またはその他の言語変換が可能になる。また、コード変換機能により、ＨＴＴＰおよびワイヤレスアプリケーションプロトコル（ＷＡＰ）間の変換等のプロトコル変換が可能になる。さらに、コード変換機能により、ＨＴＴＰのＨＴＭＬおよびＷＡＰのワイヤレスマークアップ言語（ＷＭＬ）間の変換等のように言語とプロトコルの両方を変換してもよい。
【００６８】
ログインセキュリティコンポーネント８０は、図４を参照して説明したユーザインターフェイスバー５０のログイン画面を介してログイン情報を提供したユーザを認証し、アクセスを許可する。ログインセキュリティコンポーネント８０は、アカウントの情報とユーザインターフェイスバー５０を介して提供されたログイン情報とを照合する。ユーザは、ＢＳＲリポジトリモジュール３６にアカウントを作成して保存する。ログインセキュリティコンポーネント８０は、ログイン情報を受信すると保存されたアカウント情報にアクセスしてユーザの認証を行う。正常に認証されると、ユーザはログインしてＢＳＲリポジトリモジュール３６へのアクセスを許可される。
【００６９】
ページサーバコンポーネント８２により、ＢＳＲリポジトリモジュール３６は、図４および５を参照して説明したユーザインターフェイスバー５０にドキュメントを提供する標準のサーバとして機能することが可能になる。ページサーバコンポーネント８２は、ドキュメントに加えて、ログイン情報で識別されるユーザに関するその他の情報を提供する。例えば、保存されたブラウザスナップショットのリストが上述したセッション選択欄７２に提供される。保存されたブラウザスナップショットのリストには、ＢＳＲリポジトリモジュール３６を用いて保存されたスナップショットが記載されている。別の態様において、ページサーバコンポーネント８２は、インターフェイスコンポーネント４０（図３参照）やネットワーク１２（図２参照）内のその他の装置等により生成および表示されたページ上の情報を提供してもよい。
【００７０】
スナップショット保存コンポーネント８４は、図３および５を参照して説明したようにＢＳＲ装置モジュール３４により取り込まれたブラウザスナップショットを保存する。スナップショット保存コンポーネント８４は、取り込みコンポーネント４４（図３参照）により送信されたブラウザスナップショットを受信し、保存する。スナップショット保存コンポーネント８４は、ＢＳＲリポジトリモジュール３６が動作する装置に関連付けられた保存メカニズムにブラウザスナップショットの保存を指示する。
【００７１】
代表的な保存メカニズムとしては、ハードディスク、光ディスク、またはその他のデータ記憶媒体と連携して動作する関係データベースがある。別の態様において、スナップショット保存コンポーネント８４は、ネットワーク１２（図２参照）内の任意の装置が備える保存メカニズムにブラウザスナップショットの保存を指示してもよい。
【００７２】
上述したように、保存された各ブラウザスナップショットは、アクティブセッションのブラウザ状態を取り込んで保存したユーザに対応付けられる。従って、スナップショットはユーザの識別情報ごとに保存される。さらに、保存されたスナップショットにアクセスするには、ブラウザ状態を取り込んで保存したユーザの認証およびアクセス許可が必要となる。
【００７３】
ユーザが認証されアクセスを許可されると、保存されたブラウザスナップショットは、所望のスナップショットの識別子に基づいてスナップショット保存コンポーネント８４によりアクセスされる。図５を参照して説明したように、保存されたブラウザスナップショットは、ユーザインターフェイスバー５０のセッション選択欄７２を用いて特定され、読み出される。選択されたブラウザスナップショットは保存メカニズムから読み出されてユーザのブラウザに送信されると、上述したように復元されて表示される。スナップショット保存コンポーネント８４は、選択されたブラウザスナップショットに設定されたパスワードを認証する。
【００７４】
図２および６に示すように、通信セキュリティコンポーネント８６によりＢＳＲ装置モジュール３４との高信頼性接続が可能になる。高信頼性接続では、上述したプロトコルのいずれを用いてもよい。高信頼性接続には、例えばログイン情報の送信、取り込んだアクティブセッションのブラウザ状態の送信、またはＢＳＲ装置モジュール３４とＢＳＲリポジトリモジュール３６間で行われるその他の通信が含まれる。さらに、通信セキュリティコンポーネント８６を用いれば、ＢＳＲサービス１０に関するその他の機密情報の通信も保護することができる。
【００７５】
タイミングコンポーネント８８は、ブラウザスナップショットとして保存された、サイト３０（図２参照）とのアクティブセッションを管理する。従来から周知なように、サイト３０はアクティブセッションに対してタイムアウトポリシーを設定することがある。従って、長時間保存されたブラウザスナップショットは保存場所から読み出されてもアクティブセッションに復元されない場合がある。
【００７６】
ある態様において、タイミングコンポーネント８８はサイト３０に定期的にアクセスして（例えば、ピン（Ｐｉｎｇ））、ブラウザ状態が取り込まれ保存されたアクティブセッションをアクティブ状態に保つ。この通信には、サイト３０に対して単にピンを使用する方法の他に、タイムアウト時間をリセットするために必要なその他の通信が含まれる。タイミングコンポーネント８８は、各ブラウザスナップショットが保存された時刻に基づいて、対応するサイト３０のタイムアウト時間をリセットするための通信を行う。
【００７７】
別の態様において、タイミングコンポーネント８８は、ブラウザスナップショットが保存された各サイト３０のタイムアウト時間を調べる。そして、ユーザは、アクティブセッションのタイムアウト時間が経過する前にブラウザスナップショットを読み出すようタイミングコンポーネント８８により通知される。さらに、タイミングコンポーネント８８は、タイムアウト時間が経過した（または経過しそうな）場合に、タイムアウト時間が経過した（または経過しそうな）ブラウザスナップショットをユーザに通知してもよい。さらに別の態様において、サイト３０のタイムアウトポリシーを拡充してブラウザスナップショットが保存されたアクティブセッションに対応させてもよい。さらに別の態様において、アクティブセッションのブラウザ状態が取り込まれ保存された旨の通知をタイミングコンポーネント８８から受けることにより、サイト３０は当該アクティブセッションに対するタイムアウトポリシーの適用を停止してもよい。
【００７８】
図７は、図１、２、３、４、および６に示されるＢＳＲサービス１０の動作を示すフローチャートである。この動作例を説明するにあたり、ユーザは、ＢＳＲサービス１０にアクセスするため、予めアカウントを作成しているものとする。さらに、ユーザは、まだアクティブセッションのブラウザスナップショットを取り込み、保存していないものとする。
【００７９】
まず、ブロック１０２において第１のブラウザ２０が第１の装置１４上で起動される。ブロック１０４において、第１の装置１４および第１のブラウザ２０と関連付けられたＢＳＲ装置モジュール３４が起動される。ブロック１０６において、ユーザはユーザ名とパスワードをユーザインターフェイスバー５０のログイン画面に入力する。ブロック１０８において、ＢＳＲ装置モジュール３４はリポジトリサーバ１８との高信頼性接続の確立を開始する。ブロック１１０において、ログイン情報が高信頼性接続を介してリポジトリサーバ１８に送信される。ブロック１１２において、リポジトリサーバ１８のＢＳＲリポジトリモジュール３６はログイン情報に基づいてユーザを認証し、アクセス許可メッセージをＢＳＲ装置モジュール３４に送信する。ブロック１１４において、ログイン画面に代わりユーザ画面がユーザインターフェイスバー５０に表示される。ブロック１１６において、ユーザはネットワーク１２を介してリクエストを送信し、第１のブラウザ２０を使用してサイトの特定および閲覧を開始する。
【００８０】
ブロック１１８において、第１のブラウザ２０はサイト３０にリクエストを送信してアクティブセッションをカスタマイズする。カスタマイズ後、ブロック１２０において、ユーザはアクティブセッションのブラウザの現状態の保存を開始する。ブロック１２２において、ユーザインターフェイスバー５０のスナップショットボタン６４を選択して、アクティブセッションのブラウザの現状態の取り込みを開始する。アクティブセッションのブラウザ状態をブラウザスナップショットとして取り込んだ後、ブロック１２４において、当該スナップショット用のセッション名とパスワードを設定する。ブロック１２６において、ユーザはブラウザスナップショットと関連付けられる。
【００８１】
図８のブロック１２８において、ＢＳＲ装置モジュール３４は、第１の装置１４とリポジトリサーバ１８との高信頼性接続の確立を開始する。接続が確立されると、ブロック１３０において、ブラウザスナップショットがこの高信頼性接続を介してリポジトリサーバ１８に送信される。ブロック１３２において、ブラウザスナップショットは解読され、ＢＳＲリポジトリモジュール３６により対応するユーザと関連付けられて保存される。ブロック１３４において、ユーザはユーザインターフェイスバー５０のサインオフボタン７４を選択してサイト３０の閲覧を終了し、第１のブラウザ２０とＢＳＲリポジトリモジュール３６との接続を切断する。ブロック１３６において、ＢＳＲリポジトリモジュール３６は第１の装置１４とリポジトリサーバ１８との高信頼性接続を切断する。ブロック１３８において、ユーザは第１のブラウザ２０を終了する。
【００８２】
図９は、同一のユーザが第２の装置１６上で第２のブラウザ２２を起動させた場合におけるＢＳＲサービス１０の動作を示すフローチャートである。この動作例を説明するにあたり、ユーザは第１の装置１４上で動作する第１のブラウザ２０を使用してブラウザスナップショットをすでに保存しているものとする。図示しないが、上述したブロック１０２からブロック１１４（図７参照）までの動作が、第１の装置１４および第１のブラウザ２０に代えて第２の装置１６および第２のブラウザ２２を使用して再び行われる。
【００８３】
図９のブロック２０２において、ログイン済みのユーザに関連付けられて保存されたブラウザスナップショットを含むリストが高信頼性接続を介してダウンロードされ、ユーザインターフェイスバー５０に提示される。ブロック２０４において、ユーザは保存されたブラウザスナップショットを読み出すか否かを決定する。ユーザが、保存されたブラウザスナップショットを読み出さない場合、ブロック２０６において、ユーザは第２のブラウザ２２を使用してネットワーク１２上のサイト３０を特定する。ブロック２０８において、ユーザはネットワーク１２を介してリクエストを送信し、サイト３０の閲覧を開始する。
【００８４】
ブロック２０４において、ユーザが、保存されたブラウザスナップショットの読み出しを決定した場合、ブロック２１０において、保存されたブラウザスナップショットをセッション名欄６６で選択し、当該ブラウザスナップショットに対して設定されたパスワードをセッションパスワード欄６８に入力する。ブロック２１２において、ユーザインターフェイスバー５０の復元ボタン７０が選択され、復元処理が開始される。パスワードが認証されると、ブロック２１４において、選択されたブラウザスナップショットがリポジトリサーバ１８から第２の装置１６に高信頼性接続を介してダウンロードされる。
【００８５】
ブロック２１６において、ＢＳＲ装置モジュール３４は保存されたブラウザスナップショットを復元し、第２のブラウザ２２を使用してアクティブセッションを再開する。ブロック２０８において、第２のブラウザ２２は、ネットワーク１２を介してリクエストを送信し、アクティブセッションが復元されたサイト３０の閲覧を開始する。
【００８６】
アクティブセッションのブラウザ状態をカスタマイズして保存する第２のブラウザ２２の動作は、図７および８を参照して説明した動作と同様である。別の態様において、ユーザは異なる装置および異なるブラウザを任意に使用してサイトを閲覧し、さらにアクティブセッションを任意にカスタマイズしてブラウザ状態を保存してもよい。さらに、ユーザは異なる装置および異なるブラウザを任意に使用して、保存されたブラウザの現状態を復元し、アクティブセッションを継続してもよい。
【００８７】
上述したＢＳＲサービス１０の実施形態によれば、ユーザは、セッションを終了して別の装置でセッションのカスタマイズを最初からやり直すことなく、アクティブセッション中に装置を切り替えることができる。さらに、ユーザは、任意の装置でいつでもどんなアクティブセッションでも保存して継続できるので、複数のカスタマイズされたアクティブセッションを同時に管理できる。ＢＳＲサービス１０を利用してアクティブセッションを保存する際には、単にアクティブセッションのブラウザ状態をスナップショットとして保存するだけでよい。スナップショットは安全に保存され、後で安全に読み出されて、ユーザによりカスタマイズされたアクティブセッションに復元される。また、ユーザは、任意のブラウザおよび／または装置を使用してブラウザスナップショットを保存し読み出すことができる。従って、ＢＳＲサービス１０によれば、ブラウザスナップショットはブラウザまたは装置と関連付けられるのではなく、ＢＳＲサービス１０のユーザと関連付けられる。
【００８８】
別の態様において、ＢＳＲサービスは、ブラウザセッションモビリティ（ＢＳＭ）システムに拡張される。ＢＳＭシステムは、マルチプラットフォームネットワークアプリケーションのアクティブセッションのランタイム状態の、異なるプラットフォーム間におけるモビリティをサポートする。従来から周知のように、セッションは、ウェブアプリケーション等のネットワークアプリケーションを使用するユーザのインスタンスである。プラットフォームとは、ポケットパーソナルコンピュータ、携帯電話、デスクトップコンピュータ等のソフトウェアおよび／またはハードウェア環境が異なる装置の種類である。上述したように、ＢＳＲサービスによれば、ブラウザ状態は特定の装置と関連付けられるのではなくユーザと関連付けられるため、ユーザは、アクティブセッションの複数のブラウザスナップショットを保存し、復元することができる。ＢＳＭシステムでは、この関連付けがさらに拡張され、マルチプラットフォームネットワークアプリケーションが動作する異なるプラットフォーム間におけるシームレスな移動が可能になる。
【００８９】
ＢＳＭシステムは、異なるプラットフォーム間におけるランタイム状態のモビリティをサポートする。プラットフォームが異なると、ディスプレイ、ネットワーキング、ユーザインターフェイス等に関連する制限および能力が異なる。ＢＳＭシステムによれば、ＢＳＲサービスのようにブラウザ状態を取り込むだけではなく、アクティブセッションのサーバ状態も取り込むことができる。アクティブセッションのブラウザ状態およびサーバ状態中に生成される状態データおよびセッションデータは総称してランタイム状態と呼ばれる。ＢＳＭシステムにおいて、「状態」または「ランタイム状態」という用語はユーザおよびネットワークアプリケーション間において蓄積される対話を指す。ランタイム状態には、フォームデータ、スクリプト変数、クッキー等のブラウザ状態とブラウザ状態をサポートするサーバ状態が含まれる。サーバ状態は、プラットフォームに依存するＪＳＰ（Ｊａｖａ　Ｓｅｒｖｅｒ　Ｐａｇｅｓ）やＣＧＩ（Ｃｏｍｐｕｔｅｒ　Ｇｅｎｅｒａｔｅｄ　Ｉｍａｇｅ）の状態のようにプラットフォーム毎に異なる。
【００９０】
ＢＳＭシステムによれば、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンを用いて生成されたプラットフォーム依存ランタイム状態を、マルチプラットフォームネットワークアプリケーションの別のプラットフォームに依存するバージョンにおいて別のプラットフォームに依存するランタイム状態に変換することができる。従って、ＢＳＭシステムでは、ランタイム状態と特定のプラットフォームとを関連付けないことにより、ある特定のプラットフォーム上で実行されるマルチプラットフォームネットワークアプリケーションのランタイム状態が別のプラットフォームに転送される。
【００９１】
上述したＢＳＲサービスのスナップショットという概念は修正および拡張され、ＢＳＭシステムでは、プラットフォーム非依存ランタイム状態データが含まれる。従って、ＢＳＭシステムによれば、スナップショットは任意のプラットフォーム上でアクティブセッションに復元される。ＢＳＭシステムは、マルチプラットフォームネットワークアプリケーションの任意のプラットフォームに依存するバージョンのタスク、ランタイム状態、およびデータ構造に対して動作する。ＢＳＭシステムによれば、任意のマルチプラットフォームネットワークアプリケーションの構造において、アクティブセッションのスナップショットを取り込み、プラットフォーム毎に変換し、復元させることができる。
【００９２】
図１０は、上述したネットワーク１２を介して動作するＢＳＭシステム３００を示すブロック図である。同図に示すように、ＢＳＭシステム３００は、アプリケーションサーバ３０２、第１および第２の装置３０４、３０６として示される通信装置、およびリポジトリサーバ３０８をそれぞれ少なくとも１ずつ備える。別の態様において、ＢＳＭシステム３００は、任意の数のアプリケーションサーバ、通信装置、リポジトリサーバ、およびその他のネットワーク対応装置を備えてもよい。
【００９３】
アプリケーションサーバ３０２は、第１および第２の装置３０４、３０６等の、ネットワーク１２上の装置に対してアプリケーションを提供可能な任意のネットワーク対応装置である。アプリケーションサーバ３０２は、プロセッサ、メモリ、マルチプラットフォームウェブアプリケーション等の少なくとも１のマルチプラットフォームネットワークアプリケーション、サーバ状態モジュール３１２、およびプラットフォームアダプタモジュール３１４を備える。アプリケーションサーバ３０２は、オペレーティングシステムおよびプログラムもメモリに備え、通常のネットワークサーバコンピュータと同程度の能力を有する。ネットワークを介してネットワークアプリケーションを提供する周知のメカニズムでは、ＨＴＴＰ要求等の要求によりアプリケーションサーバ３０２とのアクティブセッションが開始される。
【００９４】
この要求は、第１および第２の装置３０４、３０６等の対象プラットフォームからネットワーク１２を介してアプリケーションサーバ３０２に送信される。アプリケーションサーバ３０２は、プラットフォームの種類（例えば、デスクトップパーソナルコンピュータ、ラップトップコンピュータ、携帯情報端末（ＰＤＡ）、携帯電話等）と対象プラットフォームのために起動されるマルチプラットフォームネットワークアプリケーションの当該プラットフォームに依存するバージョンを特定する。次に、アプリケーションサーバ３０２は、サーバ状態モジュール３１２を用いてサーバ状態を生成する。このサーバ状態は、対象プラットフォームに対応するプラットフォーム依存ネットワークアプリケーションとともに動作する。プラットフォーム依存ネットワークアプリケーションとは、対象プラットフォームのブラウザとのアクティブセッションの確立および維持可能な、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンである。
【００９５】
図１１、１２、および１３は、プラットフォームの異なるブラウザ表示例を示す図である。各プラットフォームは、ネットワークアプリケーションの各プラットフォームに依存するバージョンとともに動作するサーバ状態によりサポートされる、各プラットフォームに依存するバージョンは、バージョンが異なるマルチプラットフォームネットワークアプリケーション（この例では、ブックストアアプリケーション）である。図１１、１２、および１３に示される各表示例は、各プラットフォームの表示画面のサイズ、ユーザインターフェイス装置、およびネットワーク接続のタイプ等の能力に最適化された各プラットフォームに依存するブックストアアプリケーションの表示である。別の態様において、マルチプラットフォームネットワークアプリケーションは任意の数のプラットフォームに対応してよい。
【００９６】
図１１に示される第１のブラウザ表示例３２４は、ブックストアアプリケーションの第１のプラットフォームに依存するバージョンにより生成される。第１のプラットフォームに依存するバージョンは、デスクトップまたはラップトップコンピュータ等の表示画面が比較的大きくネットワーク接続が比較的安定したプラットフォームによるアクティブセッションに用いられる。表示画面が比較的大きいため、このプラットフォームは、書籍目録タスク３２６、ショッピングカートタスク３２８、およびチェックアウトタスク３３０を一画面中に表示できる。ネットワーク１２への高速接続と多様なユーザインターフェイス装置により、アクティブセッション中の操作にはスクロール、マウスクリック、キーボードによるデータ入力等が用いられる。
【００９７】
図１２に示される第２のブラウザ表示例３３４は、ポケットＰＣまたはＰＤＡ等のネットワーク１２への接続が比較的高速で表示画面が小さいプラットフォームを対象としている。第２のブラウザ表示例３３４を伴うアクティブセッションは、上記のプラットフォームに対応する、ブックストアアプリケーションの第２のプラットフォームに依存するバージョンによりサポートされる。第２のプラットフォームに依存するバージョンでは、小さい表示画面上においても見易くするために、書籍目録タスク３２６、ショッピングカートタスク３２８、およびチェックアウトタスク３３０がブラウザの別々のページに配置される。ＨＴＴＰ要求等の個々のページに対する要求により、ブラウザ状態と、ネットワークアプリケーションの第２のプラットフォームに依存するバージョンとともに動作するサーバ状態とが同期化される。
【００９８】
ブラウザのユーザインターフェイス装置は、利用可能なユーザインターフェイス装置が異なるため、ネットワークアプリケーションの各プラットフォーム依存バージョン間で非常に異なる。例えば、第１のブラウザ表示例３２４では、ユーザインターフェイス装置により、全てのタスク３２６、３２８、および３３０が表示される。第２のブラウザ表示例３３４では、表示画面が小さいためにタスク３２６、３２８、および３３０の一部のみが表示され、その結果としてスクロールバーが表示される。異なるプラットフォーム間におけるユーザインターフェイス装置の変更のその他の例として、テキストフィールドボックスからプルダウンメニューへの変更や、マウス操作からタッチスクリーン操作への変更がある。
【００９９】
図１３に示される第３のブラウザ表示例３４０は、ネットワーク接続が悪いポケットＰＣ等の、表示画面が比較的小さくネットワーク１２への接続が比較的低速な装置を対象としている。第３のブラウザ表示例３４０を含むブラウザ状態は、第３のプラットフォームに依存するバージョンとともに動作するサーバ状態によりサポートされる。第３のブラウザ表示例３４０では、書籍目録タスク３２６（図示せず）、ショッピングカートタスク３２８、およびチェックアウトタスク３３０（図示せず）が、スクロールバーを備える別々のページに配置される。第３のプラットフォームに依存するバージョンは、対象装置とのアクティブセッションを見易くするために、ブラウザ中に代わりのユーザインターフェイス装置を提供する。
【０１００】
例えば、第３のブラウザ表示例３４０のショッピングカートタスク３２８では、別のタイトルが、第１および第２のブラウザ表示のショッピングカートタスク３２８のように一覧表示されるのではなく、プルダウンメニューにより表示される。さらに、アクティブセッション中の操作は、対象装置上のクライアントサイドスクリプトによって行われてもよい。例えば、「数量」および「価格」は、プルダウンメニュー３４４で選択されたタイトルに基づいて読み出される。従って、ブラウザ状態より生成されてネットワークを介してサーバ状態に送信されるＨＴＴＰ要求等の要求が減少するため、ネットワークトラフィックが最小限に抑えられる。
【０１０１】
表示方法および機能が非常に異なるため、各表示では、異なるタスクモデルが暗黙的に用いられている。サーバ状態とともに動作するネットワークアプリケーションのプラットフォーム依存バージョンに基づいてデータが表示され、フォームデータを含む変数がサーバ側ランタイム状態に送信される回数および方法は、プラットフォーム毎に異なる。従って、マルチプラットフォームネットワークアプリケーションの異なるプラットフォームに依存するバージョン間において、サーバ側ランタイム状態データは非常に異なる。
【０１０２】
図１０に示されるプラットフォームアダプタモジュール３１４は、サーバ状態モジュール３１２と連携して動作する。プラットフォームアダプタモジュール３１４は、アクティブセッションのサーバ側ランタイム状態のプラットフォーム依存（ＰＳ）スナップショットを取り込む能力を有する。アクティブセッションのサーバ側ＰＳスナップショットは、アクティブセッション中にブラウザおよびアプリケーションサーバ３０２間で進行中の対話に関連するプラットフォーム依存ランタイム状態データを含む。プラットフォームアダプタモジュール３１４によってサーバ側ＰＳスナップショットに取り込まれるプラットフォーム依存ランタイム状態データの量、種類、および詳細については、マルチプラットフォームネットワークアプリケーションの開発者により指定される。サーバ側ＰＳスナップショットに取り込まれるプラットフォーム依存ランタイム状態は、別のデータベースへのリンク、アクティブセッションに関連するキャッシュデータ、オープンファイル、入力／出力、ＪＳＰまたはＣＧＩ変数等を含んでもよい。サーバ側ＰＳスナップショットは、プラットフォームアダプタモジュール３１４により、第１および第２の装置３０４、３０６、および／またはリポジトリサーバ３０８にネットワーク１２を介して送信される。
【０１０３】
また、プラットフォームアダプタモジュール３１４は、サーバ側ＰＳスナップショットをサーバ側プラットフォーム非依存ランタイム状態に変換する能力を有する。この変換はマッピングを用いて行われ、サーバ側プラットフォーム依存ランタイム状態データからサーバ側プラットフォーム非依存ランタイム状態データに選択的に変換される。同様に、プラットフォームアダプタモジュール３１４は、プラットフォーム非依存ランタイム状態データをプラットフォーム依存ランタイム状態に変換する。
【０１０４】
プラットフォームアダプタモジュール３１４は、マッピング記述ファイルを用いてマッピングする。マッピング記述ファイルには、アプリケーション開発者により、サーバ側ＰＳスナップショットに含まれるサーバ側プラットフォーム依存ランタイム状態およびサーバ側プラットフォーム非依存ランタイム状態間の変換について記述される。
【０１０５】
サーバ側プラットフォーム非依存ランタイム状態は、プラットフォーム非依存（ＰＩ）スナップショットに含まれる。プラットフォームアダプタモジュール３１４は、ＰＩスナップショットとマッピング記述ファイルを、リポジトリサーバ３０８、および／または第１および第２の装置３０４、３０６等のその他の装置にネットワーク１２を介して送信する。上述の実施形態と同様に、ネットワーク１２を介する通信は暗号化される。
【０１０６】
第１および第２の装置３０４、３０６は、それぞれＢＳＭモジュール３１６を備える。図１に示される第１および第２の装置１４、１６と同様に、ＢＳＭモジュール３１６は、第１および第２の装置３０４、３０６において、それぞれ第１および第２のブラウザ３１８、３２０と連携して動作する。ＢＳＭモジュール３１６は、第１および第２の装置３０４、３０６上で動作するブラウザプラグインや独立型のモジュール等である。
【０１０７】
図１４は、ＢＳＭモジュール３１６の一実施形態を示すブロック図である。ＢＳＭモジュール３１６は、上述したインターフェイスコンポーネント４０、セキュリティコンポーネント４２、取り込みコンポーネント４４、および復元コンポーネント４６に加えて、変換モジュール３５０および状態ハンドラモジュール３５２を備える。上述したように、取り込みコンポーネント４４によって取り込まれるブラウザ側プラットフォーム依存（ＰＳ）スナップショットは、アクティブセッションのブラウザ側プラットフォーム依存ランタイム状態を含む。別の態様において、ＢＳＭモジュール３１６は、任意の数のモジュールまたはコンポーネントを備えてよい。
【０１０８】
変換モジュール３５０は、取り込みコンポーネント４４と連携して動作し、ネットワークアプリケーションのプラットフォーム依存バージョンのブラウザ側ランタイム状態（ブラウザ側ＰＳスナップショット）を選択的に変換する。プラットフォームアダプタモジュール３１４と同様に、ブラウザ側ＰＳスナップショットは、マッピング記述ファイルを用いて、ブラウザ側プラットフォーム非依存ランタイム状態に変換される。具体的には、ブラウザ側ＰＳスナップショットに含まれるブラウザ側プラットフォーム依存ランタイム状態データが、プラットフォーム非依存ランタイム状態データに選択的に変換される。また、変換モジュール３５０は、復元コンポーネント４６と連携して動作し、ブラウザ側プラットフォーム非依存ランタイム状態を、ブラウザ側プラットフォーム依存ランタイム状態データを含むブラウザ側ＰＳスナップショットに選択的に変換する。
【０１０９】
変換モジュール３５０は、マッピング記述ファイルを用いて状態データを選択的に変換する。プラットフォームアダプタモジュール３１４と同様に、マッピング記述ファイルには、アプリケーション開発者により、ブラウザ側ＰＳスナップショットに含まれるブラウザ側プラットフォーム依存ランタイム状態データおよびブラウザ側プラットフォーム非依存ランタイム状態データ間の選択的な変換について記述される。
【０１１０】
ブラウザ側ＰＳスナップショットが変換されると、状態ハンドラモジュール３５２は、ブラウザ側プラットフォーム非依存ランタイム状態を変換モジュール３５０から受信する。また、状態ハンドラモジュール３５２は、サーバ側プラットフォーム非依存ランタイム状態を含むＰＩスナップショットをプラットフォームアダプタモジュール３１４から受信する。サーバ側プラットフォーム非依存ランタイム状態は、ＰＩスナップショット内において、ブラウザ側プラットフォーム非依存ランタイム状態と結合される。アクティブセッションのプラットフォーム非依存ランタイム状態を含むＰＩスナップショットは、リポジトリサーバ３０８に送信される。
【０１１１】
また、状態ハンドラモジュール３５２は、プラットフォームアダプタモジュール３１４からサーバ側ＰＳスナップショットを受信する。サーバ側ＰＳスナップショットは、マッピング記述ファイルを用いて変換モジュール３５０により変換される。この変換により、サーバ側プラットフォーム依存ランタイム状態がサーバ側プラットフォーム非依存ランタイム状態に変換される。サーバ側プラットフォーム非依存ランタイム状態は、状態ハンドラモジュール３５２により、ブラウザ側プラットフォーム非依存ランタイム状態と結合される。
【０１１２】
さらに別の態様において、状態ハンドラモジュール３５２は、サーバ側プラットフォーム依存ランタイム状態を含むサーバ側ＰＳスナップショットを受信する。状態ハンドラモジュール３５２は、サーバ側ＰＳスナップショットと、ブラウザ側プラットフォーム依存ランタイム状態を含むブラウザ側ＰＳスナップショットとを結合する。サーバ側およびブラウザ側ＰＳスナップショットは結合されてプラットフォーム依存ランタイム状態スナップショットとなる。プラットフォーム依存ランタイム状態スナップショットは、状態ハンドラモジュール３５２により、ネットワーク１２を介してリポジトリサーバ３０８に送信される。
【０１１３】
以前に保存されたＰＩスナップショットが記憶装置から読み出されると、状態ハンドラモジュール３５２はＰＩスナップショットを受信して、ＰＩスナップショットからブラウザ側プラットフォーム非依存ランタイム状態を抽出する。ブラウザ側プラットフォーム非依存ランタイム状態は変換モジュール３５０に提供され、変換モジュール３５０はブラウザ側プラットフォーム非依存ランタイム状態をブラウザ側ＰＳスナップショットに変換する。変換後、ブラウザ側プラットフォーム依存ランタイム状態は、アクティブセッションとしてインスタンス化される。
【０１１４】
図１０に示すように、リポジトリサーバ３０８はＢＳＭリポジトリモジュール３２２を備える。図１および６に示されるリポジトリサーバ１８と同様に、リポジトリサーバ３０８は、ネットワーク１２を介して、第１および第２の装置３０４、３０６、およびアプリケーションサーバ３０２と連携して動作する。また、リポジトリサーバ３０８は、第１および第２の装置３０４、３０６とのみ通信を行ってもよい。
【０１１５】
図１５は、ＢＳＭリポジトリモジュール３２２の一実施形態を示すブロック図である。ＢＳＭリポジトリモジュール３２２は、図６に示される上述のログインセキュリティコンポーネント８０、ページサーバコンポーネント８２、スナップショット保存コンポーネント８４、および通信セキュリティコンポーネント８６に加えて、状態ハンドラモジュール３５４を備える。状態ハンドラモジュール３５４は、第１および第２の装置３０４、３０６、および／またはアプリケーションサーバ３０２のいずれかからブラウザ側ＰＳスナップショットとサーバ側ＰＳスナップショットを受信し、変換、結合してＰＩスナップショットを生成する。別の態様において、ＢＳＭリポジトリモジュール３２２は任意の数のモジュールを備えてよい。
【０１１６】
また、状態ハンドラモジュール３５４は、ブラウザ側プラットフォーム依存ランタイム状態とサーバ側プラットフォーム依存ランタイム状態とを含むプラットフォーム依存ランタイム状態スナップショットを受信して、ＰＩスナップショットに変換する。別の態様において、ＰＩスナップショットが、アプリケーションサーバ３０２のプラットフォームアダプタモジュール３１４または状態ハンドラモジュール３５２によって生成される場合、リポジトリサーバ３０８は状態ハンドラモジュール３５４を備えていなくてもよい。この場合、ＰＩスナップショットはリポジトリサーバ３０８に送信され、スナップショット保存コンポーネント８４によって保存される。
【０１１７】
尚、ＢＳＭリポジトリモジュール３２２は、図６に示されるタイミングコンポーネント８８を備えていない。ＢＳＭシステム３００では、アクティブセッションのブラウザ側およびサーバ側ランタイム状態の両方がスナップショットに取り込まれるため、タイミングコンポーネント８８が不要となる。従って、アプリケーションサーバ３０２とのアクティブセッションを維持するための時間管理が不要となる。
【０１１８】
ユーザは、第１の装置３０４等の通信装置を用いてマルチプラットフォームネットワークアプリケーションの起動を要求し、アクティブセッションを開始する。第１の装置３０４上で動作する第１のブラウザ３１８とのアクティブセッションを確立、維持するために、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンがサーバ状態とともに用いられる。アクティブセッション中、第１の装置３０４のユーザは、ＢＳＭシステム３００を利用してアクティブセッションの取り込みを開始する。
【０１１９】
アクティブセッションのプラットフォーム依存ランタイム状態は、ＰＳスナップショットとして取り込まれる。具体的には、第１の装置３０４上で動作する第１のブラウザ３１８のブラウザ現状態と、アプリケーションサーバ３０２のサーバ現状態が取り込まれる。ブラウザ現状態を含むＰＳスナップショットとサーバ現状態を含むＰＳスナップショットは結合され、アクティブセッションのプラットフォーム非依存ランタイム状態を含むＰＩスナップショットに変換される。ＰＩスナップショットはリポジトリサーバ３０８に保存される。
【０１２０】
ＰＩスナップショットは、第２の装置３０６等の対象装置を用いて後で読み出される。ＰＩスナップショットは、第２の装置３０６のハードウェアおよび／またはソフトウェア能力（プラットフォーム）に基づいてＰＳスナップショットに変換される。サーバ側ＰＳスナップショットには、サーバ側プラットフォーム依存ランタイム状態データが含まれ、ブラウザ側ＰＳスナップショットには、ブラウザ側プラットフォーム依存ランタイム状態データが含まれる。プラットフォーム依存ランタイム状態はアクティブセッションとしてインスタンス化され、以前に確立されたアクティブセッションが再開される。アクティブセッションの再開には、アプリケーションサーバ３０２と第２の装置３０６上で動作する第２のブラウザ３２０が用いられる。従って、アクティブセッションは、あらゆるプラットフォーム上で復元可能である。
【０１２１】
ＢＳＭシステム３００では、プラットフォーム依存ランタイム状態の相違に対して変換をもって対応する。この変換は、プラットフォーム依存ランタイム状態およびプラットフォーム非依存ランタイム状態間の選択的なマッピングに基づいて行われる。ＢＳＭシステム３００では、このマッピングを通じてプラットフォーム依存ランタイム状態間の相違を調整する。ＢＳＭシステム３００によれば、あるプラットフォームに依存する表示から別のプラットフォームに依存する表示への構成要素のマッピングが容易になるため、異なるプラットフォーム間のシームレスな変換が可能になる。
【０１２２】
ＢＳＭシステム３００において、ページレイアウト、ユーザインターフェイス装置、状態メンテナンス等の相違、およびその他のプラットフォームに依存する相違は、変換によって対処される。ページレイアウトは、アクティブセッション中のページにおいてどのようにタスクが細分化または統合されるかを示す。タスクは、ユーザによって命令される、検索、購入、選択等のアクティブセッション中のさまざまな機能を指す。ユーザインターフェイス装置は、キーパッド、キーボード、タッチスクリーン、マウス等のランタイム状態データの入力やアクティブセッション中の操作の際にユーザによって操作される装置を指す。状態メンテナンスは、データベース入力、クッキー、スクリプト変数、隠しフォームフィールド等の状態をプラットフォーム依存アプリケーションがページ間でどのように維持するかを示す。状態メンテナンスは、ブラウザ状態およびサーバ状態間でどのように状態が同期化されるかも示す。
【０１２３】
ＰＳスナップショットをマッピングする際には、ページおよびデータが選択的にマッピングされる。ページは、各ページがプラットフォーム非依存タスクに対応しているものとみなしてマッピングされる。上述したように、データには、フォーム制御、クッキー、ＪＳＰ変数、スクリプト変数等が含まれる。あるマッピング方法例では、ＰＳスナップショットのデータをマッピングする際に、固有のプラットフォーム非依存名称がデータに選択的に割り当てられる。プラットフォーム依存データは、マッピング記述ファイルを用いて、割り当てられた固有のプラットフォーム非依存名称にマッピングされ、プラットフォーム依存データからプラットフォーム非依存データに変換される。同様に、プラットフォーム非依存データを特定のプラットフォームのＰＳスナップショットに変換する場合には、当該特定のプラットフォームに対応するマッピング記述ファイルを用いて、固有のプラットフォーム非依存名称からＰＳスナップショットのプラットフォーム依存データに変換される。
【０１２４】
マッピング機構の一実施例として、ＨＴＭＬの注と２つの単純なＸＭＬドキュメントを用いるタイプがある。このマッピング機構を説明するために、ＢＳＭモジュール３１６によるＰＩスナップショットの保存および復元動作の一例を取り上げる。ＢＳＭモジュール３１６は、マルチプラットフォームＩＤに基づいてアプリケーションをマルチプラットフォームアプリケーションと特定する。マルチプラットフォームＩＤの一例としては、＜ｌｉｎｋ　ｒｅｌ＝”ｂｓｍ−ｍａｐ”　ｈｒｅｆ＝”ｍｙ−ｐｌａｔｆｏｒｍ．ｘｍｌ”＞等の各
ＨＴＭＬページのヘッダの１行がある。この場合、リンク要素はＨＴＭＬ標準の一部であり、２つのドキュメント間の関係を指定するために用いられる。この場合の関係は、ブラウザを用いて現在閲覧されているページにはマッピングが適用され、マッピング記述ファイル（この場合、”ｍｙ−ｐｌａｔｆｏｒｍ．ｘｍｌ”）にマッピングが記述されてい
ることを指定している。
【０１２５】
マッピング記述ファイルは、保存および復元プロセスにおいて、プラットフォーム依存およびプラットフォーム非依存ランタイム状態間の変換を行う際の指示書としてＢＳＭモジュール３１６に用いられる。このタイプのマッピング記述ファイルのＤＴＤ（Ｄｏｃｕｍｅｎｔ　Ｔｙｐｅ　Ｄｅｆｉｎｉｔｉｏｎ）では次の構造が指定される。
・ｍａｐ要素は、後述するマスターマッピングファイルのＵＲＬと１以上のｐａｇｅ要素を含む。
・ｐａｇｅ要素は、ページのＵＲＬからネットワークアプリケーションの変則的かつ概念的な１以上のタスクへのマッピングを行う。タスクは０以上のｃｏｎｔｒｏｌ要素を含む。
・ｃｏｎｔｒｏｌ要素は、プラットフォーム依存ユーザインターフェイス装置名から固有のプラットフォーム非依存名称へのマッピングを行い、０以上のｖａｌｕｅ要素を含む。
・ｖａｌｕｅ要素（セッションデータおよび／または状態データ）は、ユーザインターフェイス装置等のプラットフォーム依存値からプラットフォーム非依存値へのマッピングを行う。
【０１２６】
マッピング記述ファイルは、アプリケーション開発者によって、ネットワークアプリケーションの各プラットフォーム依存バージョン用に選択的に記述される。例えば、マッピング記述ファイルは、第１のプラットフォームに依存するバージョンのあるｐａｇｅ要素（タスク）中のｃｏｎｔｒｏｌ要素に含まれる値（データ）の範囲から、第２のプラットフォームに依存するバージョンの別のｐａｇｅ要素（タスク）中の別のｃｏｎｔｒｏｌ要素に含まれる値（データ）の範囲へ明示的にマッピングされるように記述される。マッピング記述ファイルにより、アプリケーション開発者には、異なるプラットフォームに依存するアプリケーション間において名称および値の範囲が異なるｃｏｎｔｒｏｌ要素のみに対して選択的にマッピングするという柔軟性が与えられる。異なるプラットフォームに依存するアプリケーション間において名称および値の範囲が同じ場合には、例えば、固有のプラットフォーム非依存名称へのマッピングが指定される必要がない。別々のプラットフォーム依存バージョン間において名称および値の範囲が全て同じ場合、アプリケーション開発者は、マッピング記述ファイルにおいてｐａｇｅ要素（タスク）のマッピングのみ指定すればよい。
【０１２７】
以下の例では、３つのページがタスクにマッピングされ、ｃｏｎｔｒｏｌ要素（この例では、＜ｓｅｌｅｃｔ＞または＜ｉｎｐｕｔ　ｔｙｐｅ＝”ｒａｄｉｏ”＞要素グループを想定）が固有のプ
ラットフォーム非依存名称および値の範囲にマッピングされている。
＜ｍａｐ　ｍａｓｔｅｒ＝”ｍａｓｔｅｒ．ｘｍｌ”＞
＜ｐａｇｅ　ｕｒｌ＝”ｈｔｔｐ：／／ｌｏｃａｌｈｏｓｔ／ｆｏｏ．ｈｔｍｌ”　ｔａｓｋ＝”ｆｏｏ”＞
＜ｃｏｎｔｒｏｌ　ｆｒｏｍ＝”ａｂ”　ｔｏ＝”ａｌｐｈａｂｒａｖｏ”＞
＜ｖａｌｕｅ　ｆｒｏｍ＝”ａ”　ｔｏ＝”ａｌｐｈａ”＞
＜ｖａｌｕｅ　ｆｒｏｍ＝”ｂ”　ｔｏ＝”ｂｒａｖｏ”＞
＜ｖａｌｕｅ　ｆｒｏｍ＝”ｃ”　ｔｏ＝”ｃｈａｒｌｉｅ”＞
＜／ｃｏｎｔｒｏｌ＞
＜／ｐａｇｅ＞
＜ｐａｇｅ　ｕｒｌ＝”ｈｔｔｐ：／／ｌｏｃａｌｈｏｓｔ／ｂａｒ．ｈｔｍｌ”　ｔａｓｋ＝”ｂａｒ”／＞
＜ｐａｇｅ　ｕｒｌ＝”ｈｔｔｐ：／／ｌｏｃａｌｈｏｓｔ／ｂａｚ．ｈｔｍｌ”　ｔａｓｋ＝”ｂａｚ”／＞
＜／ｍａｐ＞
【０１２８】
ＢＳＭシステム３００では、各マルチプラットフォームネットワークアプリケーションに対してアプリケーション開発者によって作成されるマスターマッピングファイルが用いられる。マスターマッピングファイルには、プラットフォームとマッピング記述ファイルとの対応関係が記述されている。ＢＳＭシステム３００では、ＰＩスナップショットを復元する際にマスターマッピングファイルが用いられる。マスターマッピングファイルによって、ＰＩスナップショットからブラウザ側ＰＳスナップショットおよびサーバ側ＰＳスナップショットへの変換またはその逆の変換の際に用いられるマッピング記述ファイルが特定される。同様に、ＰＳスナップショットによって、プラットフォーム依存バージョンの表示の際にロードされるページが特定される。
【０１２９】
一般的に、マルチプラットフォームネットワークアプリケーションは、起動要求に基づいて表示を選択する。起動要求は、例えばＨＴＴＰ要求で送信されるｕｓｅｒ−ａｇｅｎｔストリングである。同様に、ＢＳＭシステム３００では、移動させたランタイム状態に対応する表示が選択される。表示は、アクティブセッション中の条件、デフォルト表示、またはその他のランタイム状態に関連するパラメータに基づいて選択される。ある態様では、マルチプラットフォームネットワークアプリケーションが表示を選択する際に用いられる方法と同様の方法がＢＳＭシステム３００において用いられる。以下は、ＤＴＤの一例である。
・ｍａｓｔｅｒ要素は１以上のｍａｐ要素を含む。
・ｍａｐ要素は、ｕｓｅｒ−ａｇｅｎｔストリングに対応する正規表現と、ｕｓｅｒ−ａｇｅｎｔストリングと関連付けられたマッピング記述ファイルに対応するＵＲＬとを含む。複数の正規表現がｕｓｅｒ−ａｇｅｎｔストリングに対応する場合には、マッピング記述ファイルの最初の正規表現が用いられる。
【０１３０】
以下は、マスターマッピングファイルの一例である。
＜ｍａｓｔｅｒ＞
＜ｍａｐ　ｕｓｅｒａｇｅｎｔ＝”ｗｉｎｄｏｗｓ”　ｕｒｌ＝”ｐｃ−ｍａｐ．ｘｍｌ”／＞
＜ｍａｐ　ｕｓｅｒａｇｅｎｔ＝”ｐｏｃｋｅｔ”　ｕｒｌ＝”ｐｐｃ−ｍａｐ．ｘｍｌ”／＞
＜ｍａｐ　ｕｓｅｒａｇｅｎｔ＝”＊”　ｕｒｌ＝”ｄｅｆａｕｌｔ−ｍａｐ．ｘｍｌ”／＞
＜／ｍａｓｔｅｒ＞
【０１３１】
このマスターマッピングファイルでは、”ｗｉｎｄｏｗｓ”を含む全てのｕｓｅｒ−ａｇｅｎｔストリングがｐｃ−ｍａｐ．ｘｍｌ記述ファイルと、”ｐｏｃｋｅｔ”を含むｕｓｅｒ−ａｇｅｎｔストリングがｐｐｃ−ｍａｐ．ｘｍｌ記述ファイルと、そしてその他のｕｓｅｒ−ａｇｅｎｔストリングがｄｅｆａｕｌｔ−ｍａｐ．ｘｍｌ記述ファイルと関連付けられている。
【０１３２】
上述のマッピングおよび変換は、ＢＳＭモジュール３１６、プラットフォームアダプタモジュール３１４、および／またはＢＳＭリポジトリモジュール３２２において行われる。ある態様において、マッピングはＸＭＬ等のコードを用いて行われる。図１６は、上述のブックストアアプリケーションのサーバ側ＰＳスナップショットからＰＩスナップショットへマッピングする、アプリケーション記述およびマッピング記述ファイルの一例である。
【０１３３】
上記の例がマッピングの完全な実施例ではなく、ＢＳＭシステム３００におけるマッピングの一実施例であることは当業者にとって明らかである。一般的に、アプリケーション記述およびマッピング記述ファイルでは、セッションデータおよび状態データがｎａｍｅ属性とｔｙｐｅ属性の対で記述される。
【０１３４】
ＢＳＭシステム３００では、有限状態機械（Ｆｉｎｉｔｅ　Ｓｔａｔｅ　Ｍｏｄｅｌ：ＦＳＭ）の概念に基づいてプラットフォーム依存表示がモデル化される。ＢＳＭシステム３００では、ＦＳＭの概念を用いてマルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンのプラットフォーム依存表示の構造が表される。ＦＳＭモデルとともに上述のマッピングを用いて、異なるプラットフォーム間を移動させるランタイム状態を選択的に変換する。
【０１３５】
ＢＳＭシステム３００において、ＦＳＭモデルは、ある頂点から次の頂点を結ぶ各辺が頂点の順序対となる有向グラフである。マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンの各プラットフォーム依存表示の構造は、有向グラフを用いてモデル化される。
【０１３６】
ＦＳＭモデルの有向グラフは、状態を示す頂点と状態間の遷移を示す辺からなる。ここで、ＦＳＭモデルにおける状態は、プラットフォーム依存表示のタスクを指す。ＦＳＭモデルにおける状態間の遷移は、アクティブセッションのプラットフォーム依存表示中の移動を指す。移動には、ブラウザにおけるフォームの送信やリンク先に飛ぶ等の、アクティブセッション中のユーザの操作が含まれる。アクティブセッションのランタイム状態を保存および復元するためには、ＦＳＭモデルにおける遷移が明示的にモデル化されなくてもよい。その代わりに、ネットワークアプリケーションのプラットフォーム依存バージョンの論理に暗示されていると推定される。
【０１３７】
データフィールドは、ＦＳＭモデルにおける各状態と関連付けられる。データフィールドは、プラットフォーム依存表示においてユーザに提示されるフォーム制御に相当する。さらに、アクティブセッションのプラットフォーム依存表示の状態データおよびセッションデータがデータフィールドに含まれる。状態データは、ブラウザ状態および／またはサーバ状態のタスクデータを表すセッション固有のデータである。「ショッピングカート」の内容やクッキー等のセッションデータは、アクティブセッション中、状態間で不変である。
【０１３８】
ＦＳＭモデルを用いることによって、ネットワークアプリケーションのプラットフォーム依存バージョンの各アクティブセッションに関連付けられた表示の全ての構造が表される。アクティブセッションのブラウザ側およびサーバ側プラットフォーム依存ランタイム状態もまた、ＦＳＭモデルを用いて表されるプラットフォーム依存表示に含まれる。
【０１３９】
例えば、プラットフォーム依存表示例である図１１、１２、および１３では、それぞれ異なるＦＳＭモデルが用いられてマルチプラットフォームネットワークアプリケーションのプラットフォーム依存表示の構造が表されている。ＦＳＭモデルにおける状態は、アクティブセッション中のブラウザに表示される、特定のプラットフォームを特に対象とするページを表す。例えば、図１２に示される第２の表示例には３つの状態３２６、３２８、および３３０が表示されている。ＦＳＭモデルにおけるデータフィールドには、アクティブセッション中にユーザによってブラウザに生成される状態データおよびセッションデータ（例えば、ブラウザ側ランタイム状態）が含まれる。例えば、送信されなかった、名前等のチェックアウト情報は、プラットフォーム依存表示の状態データとしてブラウザ側ランタイム状態に含まれる。
【０１４０】
同様に、サーバ側のプラットフォーム依存表示もＦＳＭモデルを用いて表される。サーバ側のＦＳＭモデルにおけるデータフィールドも状態データおよびセッションデータ（例えば、サーバ側ランタイム状態）を表す。例えば、ユーザが要求する書籍目録がアクセスされるデータベースは状態データの一部である。
【０１４１】
マッピング記述ファイルを用いたマッピングによれば、各プラットフォーム依存ＦＳＭモデルで表されるプラットフォーム依存ランタイム状態およびデータフィールドを、プラットフォーム非依存ランタイム状態およびプラットフォーム依存ランタイム状態間で選択的に変換することが可能になる。マッピングによれば、ランタイム状態と、ユーザが操作している装置とが関連付けられることがない。さらに、マッピングによって、マルチプラットフォームネットワークアプリケーションの異なるプラットフォームに依存するバージョン間における、ユーザインターフェイス装置およびページレイアウトの相違がモデル化される。例えば、データフィールドは、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンに基づいて、アクティブセッション中の各タスクにおいてユーザに選択的に提示される操作手段を表す。操作手段は、各プラットフォーム依存ネットワークアプリケーションの論理に基づいて提示されてもよい。
【０１４２】
ＢＳＭシステム３００では、ネットワークアプリケーションのプラットフォーム依存バージョンのどの状態（例えば、表示）でユーザがＰＩスナップショットを保存したかが特定される。従って、ユーザがＰＩスナップショットを保存した時点の状態のＩＤがネットワークアプリケーションのプラットフォーム依存バージョン間でランタイム状態とともに転送される。ＰＩスナップショットが読み出されて復元される際には、ＰＩスナップショットが保存された時と同じ状態（ランタイム状態を含む）にアクティブセションが復元される。
【０１４３】
ユーザがＰＩスナップショットを保存した時点の状態は、次の比較的容易な２段階プロセスで特定される。まず、表示構造を表すＦＳＭモデルにおける状態を調べて、表示ページ中の一部入力されたデータフィールドを特定する。一部入力されたデータフィールドが存在しない、または複数存在する場合には、アプリケーション開発者によって指定されたデフォルト状態が、ユーザがＰＩスナップショットを保存した時点の状態として特定される。
【０１４４】
ＰＩスナップショットの復元時も、ユーザがＰＩスナップショットを保存した時点の状態が同様に特定される。第１のプラットフォームに依存する表示のＦＳＭモデルにおける状態のうちデータフィールドの一部のみにデータが入力されている状態が存在する場合には、その状態が、ユーザがＰＩスナップショットを保存した時点の状態として特定される。アクティブセッションが再インスタンス化される際には、特定された状態に対応する、第２のプラットフォームに依存する表示の状態が特定されて、その状態に関連付けられた表示が行われる。一部入力されたデータフィールドが存在しない、または複数存在する場合には、デフォルトマッピングを用いて状態が特定される。
【０１４５】
図１７は、図１０に示されるＢＳＭシステム３００の動作例を示すフローチャートである。ここでは、アクティブセッションを表すＰＩスナップショットが保存される。まず、ブロック４０２において、ユーザは第１の装置３０４上で第１のブラウザ３１８を起動する。ブロック４０４において、ユーザは、第１の装置３０４を用いてリポジトリサーバ３０８にログオンする。ブロック４０６において、ユーザは、第１の装置３０４を用いてアクティブセッション開始要求をアプリケーションサーバ３０２に送信する。
【０１４６】
ブロック４０８において、アプリケーションサーバ３０２は、第１の装置３０４のプラットフォームの種類を特定する。ブロック４１０において、アプリケーションサーバ３０２は、第１の装置３０４のプラットフォームに対応する、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンを起動する。ブロック４１２において、第１の装置３０４の第１のブラウザ３１８は画面を表示する。ブロック４１４において、ユーザがアクティブセッション中に操作を行うと、ブラウザ状態およびサーバ状態の変更が行われる。ブロック４１６において、ユーザは、第１の装置３０４を用いてアクティブセッションのスナップショット取り込みを開始する。
【０１４７】
ブロック４１８において、第１の装置３０４のＢＳＭモジュール３１６は、ネットワーク１２を介してプラットフォームアダプタモジュール３１４に保存要求を送信する。この保存要求はＵＲＬ等のリソースロケータであり、第１の装置３０４のプラットフォームを特定するための少なくとも１の暗号化された変数が添付されている。ブロック４２０において、プラットフォームアダプタモジュール３１４は、アクティブセッションのサーバ側ランタイム状態（状態データおよびセッションデータ）をサーバ側ＰＳスナップショットとして取り込む。ブロック４２２では、マスターマッピングファイルを用いて、保存要求で特定されるプラットフォームに対応するマッピング記述ファイルを特定する。ブロック４２４では、特定されたマッピング記述ファイルを用いて、サーバ側ＰＳスナップショットがＰＩスナップショットに変換される。
【０１４８】
図１８のブロック４２６において、プラットフォームアダプタモジュール３１４は、保存要求に対する応答として第１の装置３０４に対してＰＩスナップショットを送信する。ブロック４２８では、保存要求に対する応答として、特定されたマッピング記述ファイルがさらに第１の装置３０４に送信される。ブロック４３０において、ＢＳＭモジュール３１６は、サーバ側プラットフォーム非依存ランタイム状態を含むＰＩスナップショットを受信する。ブロック４３２において、ＢＳＭモジュール３１６は、ブラウザ側ＰＳスナップショットとしてブラウザ側プラットフォーム依存ランタイム状態を取り込む。ブロック４３４において、ＢＳＭモジュール３１６は、マッピング記述ファイルを用いてブラウザ側ＰＳスナップショットをブラウザ側プラットフォーム非依存ランタイム状態に選択的に変換する。ブロック４３６において、ブラウザ側プラットフォーム非依存ランタイム状態は、アプリケーションサーバ３０２から受信したＰＩスナップショットのサーバ側プラットフォーム非依存ランタイム状態と結合される。ブロック４３８において、アクティブセッションのプラットフォーム非依存ランタイム状態を含むＰＩスナップショットは、シリアル化されてリポジトリサーバ３０８に送信される。ブロック４４０において、リポジトリサーバ３０８はＰＩスナップショットを保存する。
【０１４９】
別の態様において、ブラウザ側ランタイム状態とサーバ側ランタイム状態は、アプリケーションサーバ３０２または第１の装置３０４のいずれにおいて変換されてもよい。さらに別の態様において、リポジトリサーバ３０８は、アプリケーションサーバ３０２および第１の装置３０４からネットワーク１２を介して送信されるＰＳスナップショットをマッピング記述ファイルを用いて選択的に変換してもよい。さらに別の態様において、第１の装置３０４が、アプリケーションサーバ３０２から送信されるサーバ側ＰＳスナップショットとブラウザ側ＰＳスナップショットをリポジトリサーバ３０８に送信し、リポジトリサーバ３０８がＰＳスナップショットをＰＩスナップショットに変換してもよい。以上より明らかなように、ＢＳＭシステム３００内の任意の場所で、マッピング記述ファイルを用いたＰＩスナップショットへの変換が可能である。
【０１５０】
図１９は、図１０に示されるＢＳＭシステム３００の動作例を示すフローチャートである。ここでは、図１７および１８に示されるように第１の装置３０４を用いて保存されたＰＩスナップショットが、アクティブセッションに復元される。まず、ブロック５０２において、第２の装置３０６等の通信装置上でブラウザを起動する。ここでは説明のため、第２の装置３０６のプラットフォームが第１の装置３０４のものとは異なると想定する。ブロック５０４において、ユーザは第２の装置３０６を用いてリポジトリサーバ３０８にログオンする。ブロック５０６において、ユーザは、以前に保存されたアクティブセッションのＰＩスナップショットの復元を決定し、ネットワーク１２を介してリポジトリサーバ３０８に復元要求を送信する。ブロック５０８において、リポジトリサーバ３０８は、復元要求の応答として、保存されたＰＩスナップショットをネットワーク１２を介して第２の装置３０６に送信する。
【０１５１】
ブロック５１０において、第２の装置３０６のプラットフォームのＩＤがセッション再開要求に含まれる。このセッション再開要求には、第２の装置３０６上で表示される表示状態を特定するための少なくとも１の暗号化された変数と、ＵＲＬ等のリソースロケータが含まれる。ブロック５１２において、第２の装置３０６は、セッション再開要求により、保存されたＰＩスナップショットをアプリケーションサーバ３０２に送信する。ブロック５１４において、プラットフォームアダプタモジュール３１４はマスターマッピングファイルにアクセスして、第２の装置３０６のプラットフォームに対応するマッピング記述ファイルを特定する。ブロック５１６において、プラットフォームアダプタモジュール３１４は、特定されたマッピング記述ファイルを用いて、ＰＩスナップショットに含まれるサーバ側ランタイム状態をサーバ側ＰＳスナップショットに変換する。ブロック５１８において、プラットフォームアダプタモジュール３１４はサーバ側ＰＳスナップショットに含まれるサーバ側ランタイム状態を再インスタンス化する。ブロック５２０において、プラットフォームアダプタモジュール３１４は、セッション再開要求に対する応答として、セッション再開要求で特定される表示状態に対応する、復元されたアクティブセッションのページを送信する。
【０１５２】
ブロック５２２において、プラットフォームアダプタモジュール３１４は、セッション再開要求に対する応答として、特定されたマッピング記述ファイルも第２の装置３０６に送信する。ブロック５２４において、第２の装置３０６のＢＳＭモジュール３１６は、マッピング記述ファイルを用いてＰＩスナップショットをブラウザ側ＰＳスナップショットに変換する。ブロック５２６において、第２の装置３０６の第２のブラウザ３２０は、アプリケーションサーバ３０２がら送信されたページを表示する。ブロック５２８において、ＢＳＭモジュール３１６はブラウザ側ランタイム状態を再インスタンス化することで、表示ページ中のフォームにデータが入力され、スクリプト変数、クッキー等が再び初期化される。ブラウザ側ＰＳスナップショットが完全に復元されると、ブロック５３０において、ユーザは第２の装置３０６の第２のブラウザ３２０を用いて、スナップショットが取り込まれた時点からアクティブセッションを再開する。別の態様において、ＢＳＭシステム３００の他の装置が、マッピング記述ファイルを用いてＰＩスナップショットをＰＳスナップショットに変換してもよい。
【０１５３】
別の態様において、ＢＳＭシステム３００は、上述したＢＳＲサービス１０と同様に、ブラウザ側ランタイム状態のみをスナップショットとして取り込んでもよい。しかしながら、ＢＳＭシステム３００は、ブラウザ側ＰＳスナップショットおよびＰＩスナップショット間のランタイム状態の変換をマッピングする能力をさらに備える。従って、ＢＳＭシステム３００によれば、マルチプラットフォームネットワークアプリケーションの各プラットフォーム依存バージョン間で異なるページレイアウト、ユーザインターフェイス装置、およびアプリケーション状態がシームレスに変換される。ＢＳＭシステム３００が提供する柔軟性のある枠組みでは、アプリケーション開発者が、異なるプラットフォーム上で動作するブラウザ間におけるブラウザ側ランタイム状態のマッピングを選択的に指定できる。
【０１５４】
この場合、サーバ側で維持されるアプリケーション状態の取り込み、変換、および保存は行われない。従って、サーバがアクティブセッションを終了すると、ＢＳＭシステム３００を利用して保存されたＰＩスナップショットは無効になる。保存されたアクティブセッションの無効を回避するために、リポジトリサーバ３０８は図６に示されるタイミングコンポーネント８８も備える。図６を参照して説明したように、タイミングコンポーネント８８は、一旦ＰＩスナップショットが保存されるとアクティブセッションの管理を開始する。または、一旦ＰＩスナップショットが保存されると、アクティブセッションのタイムアウトまでの時間延長やタイムアウトの停止が行われる。
【０１５５】
サーバ側ランタイム状態が取り込まれないため、ＢＳＭシステム３００の提供者がアプリケーションサーバ３０２の提供者でない場合に、アプリケーションサーバ３０２内部の情報が漏れるのを回避できる。具体的には、アプリケーションサーバ３０２が、全ての一般プログラミング言語およびサーバ環境に適応するように、ＣＧＩスクリプトの任意変数等の変数を変更できる構成とされる必要がなくなる。さらに、アプリケーションサーバ３０２内部の情報が外部に漏れることに伴い予想されるセキュリティリスクが回避できる。さらに、ブラウザ側ランタイム状態のみマッピングが行われる場合には、アプリケーション開発者による努力をそれほど必要とせずに、マルチプラットフォームネットワークアプリケーションのローミングが可能になる。
【０１５６】
第１および第２の装置３０４、３０６が備えるコンポーネントによる上述の処理を実行するプログラムを、アプリケーションプログラムとして第１および第２の装置３０４、３０６にインストールしてもよい。さらには、このようなプログラムを記録したＣＤ−ＲＯＭ等の様々な記録媒体をユーザに提供するようにしてもよいし、インターネット等の通信回線を介してユーザに提供するようにしてもよい。
【０１５７】
【発明の効果】
上述したＢＳＭシステム３００によれば、任意のプラットフォームおよび任意のブラウザ上におけるアクティブセッションの取り込み、保存、および復元が可能になる。マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンのランタイム状態は取り込まれると、プラットフォーム非依存ランタイム状態に変換されて保存される。同様に、プラットフォーム非依存ランタイム状態は読み出されると、異なるプラットフォームに依存するランタイム状態に変換されて、マルチプラットフォームネットワークアプリケーションの、異なるプラットフォームに依存するバージョンに対応するプラットフォーム上で使用される。従って、ランタイム状態とプラットフォームとが関連付けられることがない。さらに、ランタイム状態には、アクティブセッションのサーバ側およびブラウザ側ランタイム状態の両方が含まれるため、アクティブセッションは無期限に保存され、アクティブセッションの状態データおよびセッションデータが完全な状態で復元される。また、ブラウザ側ランタイム状態のみが保存される場合でも、ランタイム状態と特定のプラットフォームとが関連付けられることはない。
【０１５８】
以上、本発明を具体的な実施形態を参照して説明してきたが、請求の範囲に記載された本発明の意図および範囲から逸脱することなくこれらの実施形態に対して種々の変更が可能であることは明白である。従って、本明細書および図面は例示的なものであり、限定的なものではない。
【図面の簡単な説明】
【図１】ＢＳＲサービスを示すブロック図である。
【図２】図１に示されるＢＳＲサービスを示す詳細なブロック図である。
【図３】図２に示されるＢＳＲ装置モジュールを示す詳細なブロック図である。
【図４】図３に示されるＢＳＲ装置モジュールにより起動されるユーザインターフェイスバーの一例を示す図である。
【図５】図３に示されるＢＳＲ装置モジュールにより起動されるユーザインターフェイスバーの別の例を示す図である。
【図６】図２に示されるＢＳＲリポジトリモジュールを示す詳細なブロック図である。
【図７】ＢＳＲサービスの一動作例を示すフローチャートである。
【図８】図７に示されるＢＳＲサービスの一動作例の続きを示すフローチャートである。
【図９】ＢＳＲサービスの動作例を示すフローチャートである。
【図１０】ブラウザセッションモビリティ（ＢＳＭ）システムを示すブロック図である。
【図１１】図１０に示されるＢＳＭシステム内のブラウザ／プラットフォーム上の表示例である。
【図１２】図１０に示されるＢＳＭシステム内のブラウザ／プラットフォーム上の第２の表示例である。
【図１３】図１０に示されるＢＳＭシステム内のブラウザ／プラットフォーム上の第３の表示例である。
【図１４】ＢＳＭモジュールを示す詳細なブロック図である。
【図１５】ＢＳＭリポジトリモジュールを示す詳細なブロック図である。
【図１６】アプリケーション記述およびマッピング記述ファイルの一例を示す図である。
【図１７】図１０に示されるＢＳＭシステムによる、アクティブセッションの取り込み、変換、および保存動作の一例を示すフローチャートである。
【図１８】図１７に示されるＢＳＭシステムの動作例の続きを示すフローチャートである。
【図１９】図１０に示されるＢＳＭシステムによる、異なるプラットフォーム上でアクティブセッションを復元する動作の一例を示すフローチャートである。
【符号の説明】
１０…ブラウザ状態リポジトリ（ＢＳＲ）サービス、１２…ネットワーク、１４、３０４…第１の装置、１６、３０６…第２の装置、１８、３０８…リポジトリサーバ、２０、３１８…第１のブラウザ、２２、３２０…第２のブラウザ、３０…サイト、３４…ＢＳＲ装置モジュール、３６…ＢＳＲリポジトリモジュール、４０…インターフェイスコンポーネント、４２…セキュリティコンポーネント、４４…取り込みコンポーネント、４６…復元コンポーネント、５２…ユーザＩＤ欄、５４…パスワード欄、５６…サインオンボタン、５８…リセットボタン、６０…認証装置ＩＤ欄、６２…ユーザＩＤ欄、６４…スナップショットボタン、６６…セッション名欄、６８…セッションパスワード欄、７０…復元ボタン、７２…セッション選択欄、７４…サインオフボタン、７６…ＢＳＲリポジトリモジュール欄、８０…ログインセキュリティコンポーネント、８２…ページサーバコンポーネント、８４…スナップショット保存コンポーネント、８６…通信セキュリティコンポーネント、８８…タイミングコンポーネント、３００…ＢＳＭシステム、３０２…アプリケーションサーバ、３１２…サーバ状態モジュール、３１４…プラットフォームアダプタモジュール、３１６…ＢＳＭモジュール、３２２…ＢＳＭリポジトリモジュール、３２４…第１のブラウザ表示例、３２６…書籍目録タスク、３２８…ショッピングカートタスク、３３０…チェックアウトタスク、３３４…第２のブラウザ表示例、３４０…第３のブラウザ表示例、３４４…プルダウンメニュー、３５０…変換モジュール、３５２、３５４…状態ハンドラモジュール。
【図１】
2004062873.tif 000003
【図２】
2004062873.tif 000004
【図３】
2004062873.tif 000005
【図４】
2004062873.tif 000006
【図５】
2004062873.tif 000007
【図６】
2004062873.tif 000008
【図７】
2004062873.tif 000009
【図８】
2004062873.tif 000010
【図９】
2004062873.tif 000011
【図１０】
2004062873.tif 000012
【図１１】
2004062873.tif 000013
【図１２】
2004062873.tif 000014
【図１３】
2004062873.tif 000015
【図１４】
2004062873.tif 000016
【図１５】
2004062873.tif 000017
【図１６】
2004062873.tif 000018
【図１７】
2004062873.tif 000019
【図１８】
2004062873.tif 000020
【図１９】
2004062873.tif 000021