JP2004062873A - マルチプラットフォームアプリケーションのためのブラウザセッションモビリティシステム - Google Patents

マルチプラットフォームアプリケーションのためのブラウザセッションモビリティシステム Download PDF

Info

Publication number
JP2004062873A
JP2004062873A JP2003157235A JP2003157235A JP2004062873A JP 2004062873 A JP2004062873 A JP 2004062873A JP 2003157235 A JP2003157235 A JP 2003157235A JP 2003157235 A JP2003157235 A JP 2003157235A JP 2004062873 A JP2004062873 A JP 2004062873A
Authority
JP
Japan
Prior art keywords
platform
dependent
browser
state
runtime state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003157235A
Other languages
English (en)
Other versions
JP2004062873A5 (ja
JP4391766B2 (ja
Inventor
Yu Song
ユ ソン
Hao-Hua Chu
ハオ フア チュー
Nayeem Islam
ナイーム イスラム
Masaji Katagiri
カタギリ マサジ
Rosen Dan
ダン ローゼン
Shoji Kurakake
クラカケ ショウジ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Docomo Innovations Inc
Original Assignee
Docomo Communications Labs USA Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/404,849 external-priority patent/US20050066037A1/en
Application filed by Docomo Communications Labs USA Inc filed Critical Docomo Communications Labs USA Inc
Publication of JP2004062873A publication Critical patent/JP2004062873A/ja
Publication of JP2004062873A5 publication Critical patent/JP2004062873A5/ja
Application granted granted Critical
Publication of JP4391766B2 publication Critical patent/JP4391766B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

【課題】ブラウザを用いて確立される、マルチプラットフォームネットワークアプリケーションのアクティブセッションのランタイム状態を保存および復元できるブラウザセッションモビリティ(BSM)システムを提供する。
【解決手段】ブラウザ現状態およびサーバ現状態を含む、プラットフォーム依存ランタイム状態が、ネットワークアプリケーションのプラットフォーム依存バージョンから取り込まれる。プラットフォーム依存ランタイム状態は、プラットフォーム非依存ランタイム状態に変換されて保存される。保存されたプラットフォーム非依存ランタイム状態は読み出されて、ネットワークアプリケーションの別のプラットフォームに依存するバージョンで用いられるプラットフォーム依存ランタイム状態に変換される。プラットフォーム依存ランタイム状態は、アクティブセッションとしてインスタンス化される。
【選択図】   図10

Description

【0001】
【発明の属する技術分野】
本発明は、概してネットワーク上の装置間における通信に関し、特に、ブラウザを用いて確立される1以上の独立したアクティブセッションのブラウザ状態を保存し、同一もしくは異なるブラウザおよび/またはプラットフォームを用いて、保存されたセッションを後で読み出して再開する方法およびシステムに関する。
【0002】
【従来の技術】
今日、インターネットは、情報にアクセスするためばかりでなく商品やサービスを購入するために一般的に利用されている。通常、インターネットにアクセスするにはブラウザが必要である。ブラウザはインターネットを介してウェブサイトにアクセスするために利用される。このウェブサイトを介して、ユーザは情報を取得したり、商品やサービスを購入することができる。通常、ブラウザとウェブサイトとの対話はセッション指向型である。一般的に、ウェブサイトは、ブラウザに対してセッションの確立およびセッションIDを最初に要求する。ウェブサイトは、セッションIDを用いて、当該ウェブサイト内の種々のページを移動するブラウザを追跡し、識別する。
【0003】
ブラウザは、アクティブウェブセッション中、ステートレスであるHTTPプロトコルに従ってウェブサイトと対話する際に使用されるランタイム状態を蓄積する。ブラウザのランタイム状態は、クッキー、ドキュメントオブジェクト、およびスクリプトオブジェクトとして蓄積される。ブラウザがウェブサイトへのアクセスをしばらく中断した場合や、ユーザが明示的にログアウトした場合に、アクティブウェブセッションが終了する。アクティブウェブセッションが終了すると、ブラウザ状態のいくつかは復元不能になる。
【0004】
【発明が解決しようとする課題】
このセッション指向型モデルでは、アクティブセッションを確立したブラウザを一時的にシャットダウンする場合、ユーザは同一のアクティブセッションを継続することができない。さらに、ユーザが、ある装置上のブラウザから別の装置上の同一または別のブラウザに切り替えたい場合も、同一のアクティブセッションを継続することができない。例えば、据置型装置(デスクトップPC等)上でアクティブセッションを確立しているユーザが、当該据置型装置とモバイル装置(無線アクセス機能付きポケットPC等)を取り替える場合、ユーザは当該据置型装置のアクティブセッションを終了して、モバイル装置で新しいアクティブセッションを確立し直さなければならない。同様に、無線通信費用を抑えるために、他の作業をする間一時的に無線接続を中断しようとする場合、モバイル装置でアクティブセッションを確立しているユーザは当該セッションを保存することができない。
【0005】
ブラウザを使用してウェブページにアクセスするための方法として、後でアクセスするウェブページのURL(Uniform Resource Locator)を保存するブックマークの利用が広く知られている。例えば、マイクロソフト(登録商標)インターネットエクスプローラ(登録商標)の「お気に入り」等のブックマークの概念によれば、効率的で迅速なウェブページへのアクセスが可能になる。しかし、このようなブックマークを用いても、静的なウェブページへの再アクセスが可能になるだけである。例えば、商品の選択条件、購買情報、その他特定のアクティブウェブセッションに関する情報等のセッション特有の情報は保存されないので、再び作成する必要がある。
【0006】
また、アクティブセッションに関する情報を保存する方法として、クッキーの利用が広く知られている。通常、クッキーはブラウザ側の記憶メカニズムであり、ブラウザを操作するユーザに関するセッション内またはセッション間の情報を保存するために用いられる。一般的に、クッキーはブラウザがアクセスしているウェブサイトにより設定され、次回アクセスする際に当該ウェブサイトに送信される情報である。クッキーはブラウザが動作している装置に送信され、保存される。ブラウザはウェブサイトにアクセスする際、以前に保存された当該ウェブサイトに対応するクッキーを利用する。しかしながら、このようなクッキーは単一の装置に関連付けられて保存されるため、他の装置上で動作するブラウザでは利用することができない。
【0007】
さらに、いくつかのウェブサイトが提供する、ブラウザのユーザを識別してアクティブセッション中に蓄積された購買情報を保存できる方法が広く知られている。この情報は、後のセッションで読み出せるようにサーバ側のデータベースに保存される。この技術は、各ウェブサイトに対して相当のユーザ追跡能力を要求するばかりでなく、ユーザに対しても商品またはサービスの購入を決断する前にサインインプロセスを完了しなければならないという負担を負わせる。さらに、このようなウェブサイトに保存される購買情報には、例えばブラウザが以前に表示したページ、セッション中にカスタマイズされた値、および/またはブラウザナビゲーションとそれに伴うウェブサイトのカスタマイズに関する情報等、アクティブセッションに関する情報は含まれない。従って、ウェブサイトとの新しいアクティブセッションを確立する場合、以前のアクティブセッション中にカスタマイズした設定の多くは再び作成されなければならない。
【0008】
【課題を解決するための手段】
本発明は、ブラウザセッションモビリティ(BSM)システムに関する。BSMシステムは、アクティブセッションの取り込み、保存、および再インスタンス化をサポートする。アクティブセッションは、アプリケーションサーバおよび、一プラットフォームである通信装置上で動作するブラウザ間で確立される。アクティブセッションは、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存(platform specific)バージョンを有するアプリケーションサーバによってサポートされる。アクティブセッションが確立されると、プラットフォーム依存ランタイム状態が生成される。プラットフォーム依存ランタイム状態はスナップショットとして取り込まれ、プラットフォーム非依存(platform independent)ランタイム状態に選択的に変換されて、BSMシステムのリポジトリサーバに保存される。ランタイム状態が取り込まれて変換される際には、アクティブセッションのブラウザ側ランタイム状態とサーバ側ランタイム状態とが取り込まれて選択的に変換される。または、ブラウザ側ランタイム状態のみの取り込み、選択的な変換、および保存が行われてもよい。
【0009】
BSMシステムは、プラットフォーム非依存ランタイム状態を用いて、マルチプラットフォームネットワークアプリケーションの、異なるプラットフォーム間におけるモビリティをサポートする。プラットフォーム非依存ランタイム状態は記憶装置から読み出されると、任意のプラットフォームに依存するランタイム状態に変換される。従って、アクティブセッションの第1のプラットフォームに依存するランタイム状態は、ネットワークアプリケーションの第1のプラットフォームに依存するバージョンから取り込まれ、プラットフォーム非依存ランタイム状態に選択的に変換される。プラットフォーム非依存ランタイム状態は一旦保存され、後で読み出されると第2のプラットフォームに依存するランタイム状態に選択的に変換される。第2のプラットフォームに依存するランタイム状態は、ネットワークアプリケーションの第2のプラットフォームに依存するバージョンを用いてアクティブセッションとして再インスタンス化される。
【0010】
BSMシステムにおいて、プラットフォーム依存ランタイム状態およびプラットフォーム非依存ランタイム状態はスナップショットと表現される。プラットフォーム依存(PS)スナップショットは、ブラウザ側およびサーバ側ランタイム状態のうち少なくともいずれか一方のプラットフォーム依存ランタイム状態を指す。プラットフォーム非依存(PI)スナップショットは、プラットフォーム非依存ランタイム状態を指す。スナップショットは、それぞれアクティブセッションの状態データおよびセッションデータを含む。PIスナップショットおよびPSスナップショット間の変換は、マッピングに基づいて行われる。マッピングによれば、異なるプラットフォームに依存するネットワークアプリケーション間で異なる、プラットフォーム依存ランタイム状態の部分を選択的に変換できる。
【0011】
BSMシステムによれば、従来のように、ブラウザ側ランタイム状態とブラウザが動作する装置とを関連付けるのではなく、ランタイム状態のスナップショットをユーザがアクセス可能な場所に保存することにより、ブラウザ側ランタイム状態とユーザとを関連付けることができる。さらに、BSMシステムでは、アクティブセッションと特定のプラットフォームとが関連付けられることがない。これは、サーバ側およびブラウザ側ランタイム状態の両方を含むランタイム状態を取り込んでプラットフォーム非依存ランタイム状態に選択的に変換することにより可能になる。または、プラットフォーム非依存ランタイム状態はブラウザ側ランタイム状態のみを含んでもよい。プラットフォーム非依存ランタイム状態は、プラットフォーム依存ランタイム状態に選択的に変換されることにより任意のプラットフォーム上で再インスタンス化される。
【0012】
BSMシステムの特徴は、PSスナップショットおよびPIスナップショット間の変換に関する。例えば、ブラウザ側ランタイム状態がPSスナップショットに取り込まれると、PSスナップショットのブラウザ側ランタイム状態を成す状態データおよび/またはセッションデータは、PIスナップショットに選択的に変換される。この変換は、マッピング記述ファイルを用いて選択的に行われる。マッピング記述ファイルによれば、PSスナップショットの状態データおよび/またはセッションデータのうちプラットフォームに依存する部分が特定され、特定された状態データおよびセッションデータが、プラットフォームに依存しない状態データおよびセッションデータに変換される。
【0013】
BSMシステムの別の特徴は、PIスナップショットの生成に関する。PIスナップショットは、アクティブセッションのプラットフォーム非依存ランタイム状態を指し、サーバ側ランタイム状態とブラウザ側ランタイム状態とが結合されている。サーバ側ランタイム状態がPIスナップショットに選択的に変換され、ブラウザ側ランタイム状態も選択的に変換されて、PIスナップショットのサーバ側ランタイム状態と結合される。または、ブラウザ側ランタイム状態のみが取り込まれて、PIスナップショットに選択的に変換される。
【0014】
BSMシステムのさらに別の特徴は、異なるスナップショットのランタイム状態間におけるマッピングの設定である。マッピングは選択的に設定され、スナップショットに取り込まれる状態データおよびセッションデータの大部分または一部分が変換されたり、全く変換されなかったりする。マッピングにより指定される変換の量は、プラットフォームが異なる状態およびセッションデータ間の互換性に比例する。スナップショットの状態データおよびセッションデータが異なるプラットフォーム間で互換性をもつ場合には、マッピングによって全く変換が指定されない。一方、スナップショットの状態データおよびセッションデータの一部が互換性を持たない場合は、マッピングによって適当な変換が指定される。
【0015】
BSMシステムのさらに別の特徴は、アクティブセッションのランタイム状態を表すスナップショットの異なる状態データおよびセッションデータ間のマッピングに関する。異なるプラットフォーム間のマッピングは、マッピング記述ファイルに記述されている。特定のプラットフォームに対して用いられるマッピング記述ファイルは、マスターマッピングファイルを用いて選択される。プラットフォームが特定されると、マスターマッピングファイルを用いて対応するマッピング記述ファイルが特定される。そして、マッピング記述ファイルを用いて、スナップショットに含まれる状態データおよびセッションデータが選択的に変換される。
【0016】
本発明のさらなる目的および効果は、以下の説明と本発明の好適な実施形態を明示する添付の図面とを参照することにより明らかになる。
【0017】
【発明の実施の形態】
本発明には、ブラウザを操作するユーザが1以上のアクティブセッションのブラウザ状態を保存することを可能にするブラウザ状態リポジトリ(BSR)サービスが含まれる。BSRサービスによれば、ユーザは、任意のブラウザおよび/または装置を使用して保存されたブラウザ状態のいずれかを選択的に読み出し、当該ブラウザ状態に対応する同一のアクティブセッションを再開できる。ブラウザの現状態は、アクティブセッション中に保存された時点と同じ状態に復元される。従って、BSRサービスによれば、ユーザはアクティブセッションのブラウザ状態を消失して、新しい装置上の新しいブラウザ状態で再びやり直すことなく、アクティブセッション中に新しい装置またはブラウザに切り替えることができる。さらに、BSRサービスによれば、任意の装置またはブラウザ上で任意のアクティブセッションを保存して後で再開することができるだけでなく、ユーザは複数のアクティブセッションのブラウザ状態を同時に管理することができる。
【0018】
図1は、ネットワーク12を介して動作するBSRサービス10の一実施形態を示すブロック図である。BSRサービス10は、第1の装置14および第2の装置16として示される少なくとも1の装置を有する。さらに、BSRサービスは、少なくとも1のリポジトリサーバ18を有する。図1に示すように、第1および第2の装置14、16およびリポジトリサーバ18はネットワーク12を介して通信接続されている。別の態様において、BSRサービス10は、任意の数の装置、リポジトリサーバ、および/またはネットワーク対応装置を有してよい。本明細書中において、「結合」、「接続」、または「相互接続」という用語は、電気的な結合、光学的な結合、無線による結合、および/またはシステム、装置、および/またはコンポーネント間にインターフェイスを提供するその他の結合を意味する。
【0019】
ネットワーク12は、例えばインターネット、公的および/または私的イントラネット、エクストラネット、および/またはデータおよびコマンド転送を可能にするその他のネットワーク構成である。ネットワーク12内で行われる通信で用いられる通信媒体は、有線通信システムおよび/または無線通信システムである。通信媒体は、例えば、通信チャンネル、電波、マイクロ波、有線通信、光ファイバー通信、またはデータ、音声、および/または動画像情報を送信可能なその他の通信媒体である。
【0020】
第1および第2の装置14、16は、ネットワーク12を介した通信接続が可能な任意のタイプのコンピュータ装置または同様のハードウェアである。さらに、第1および第2の装置14、16は、ユーザインターフェイス(UI)、メモリ、マイクロプロセッサ、および/またはその他のハードウェアと関連するオペレーティングシステム/アプリケーションを有する。第1および第2の装置14、16は、例えば携帯電話、携帯情報端末(PDA)、ポケットパソコン(PC)、または無線通信が可能なその他の装置であってもよい。さらに、第1および第2の装置14、16は、例えばネットワーク端末、パソコン、サーバ、またはネットワーク12を介して有線通信が可能なその他の装置であってもよい。別の態様において、第1および第2の装置14、16は有線および無線通信機能の両方を有してもよい。
【0021】
図1に示すように、第1の装置14上では第1のブラウザ20が動作する。同様に、第2の装置16上では第2のブラウザ22が動作する。第1および第2のブラウザ20、22は、ネットワーク12上の別の装置からダウンロードしたページ特定して表示できる第1および第2の装置14、16上で動作する、任意のフォームのアプリケーションである。本実施形態において、第1および第2のブラウザ20、22は、例えばマイクロソフト(登録商標)インターネットエクスプローラ(登録商標)、および/またはネットスケープナビゲータ(登録商標)等のウェブブラウザである。別の態様において、第1および第2のブラウザ20、22は、ネットワーク12を介してダウンロードした任意の形式のページを特定して表示する機能を有する、任意の形式の同種同士または異種同士のブラウザでもよい。第1および第2のブラウザ20、22は、テキストおよびグラフィックの表示に加えて、動画像、音声、マルチメディアおよび/またはその他情報の表示をサポートしてもよい。BSRサービス10の動作も、第1および第2のブラウザ20、22によってサポートされることが望ましい。第1および第2のブラウザ20、22は第1および第2の装置14、16上で起動、操作され、リポジトリサーバ18と連携して動作する。
【0022】
リポジトリサーバ18は、少なくとも1のサーバ等の、ネットワーク12を介して要求を受信し応答を送信できる任意の形式のコンピュータ装置である。本実施形態において、リポジトリサーバ18はBSRサービス10のインフラストラクチャ内で動作し、第1および第2の装置14、16から要求を受信し応答を送信する通信機能を有する。ある態様において、リポジトリサーバ18はハイパーテキスト転送プロトコル(HTTP)サーバであってもよい。この態様において、第1および第2の装置14、16は、HTTPおよび/または高信頼ハイパーテキスト転送プロトコル(HTTPS)を用いてリポジトリサーバ18と通信を行うようにしてもよい。別の態様において、ファイル転送プロトコル(FTP)、ネットニューズ転送プロトコル(NNTP)、簡易メール転送プロトコル(SMTP)、リモートメッセージインターフェイス(RMI:Remote Message Interface)、コルバ(CORBA:Common Object Request Broker Architecture)、コンポーネントオブジェクトモデル(COM:Component Object Model)、公的および私的専用プロトコル等のプロトコルを用いてもよい。
【0023】
BSRサービス10の動作中、ユーザは、第1の装置14上で動作する第1のブラウザ20を使用してアクティブセッションを確立する。「アクティブセッション」という用語は、ネットワーク12上の別の装置との任意の形式の対話を意味する。この対話では、別の装置から提供される情報が第1のブラウザ20を操作するユーザに対して表示、通信、伝達される。典型的なアクティブセッションとして、第1のブラウザ20を使用してウェブページおよび関連する資料の場所を特定した後、その情報をダウンロードして表示するウェブセッションがある。
【0024】
アクティブセッションを確立してカスタマイズした後、ユーザは、BSRサービス10を利用してアクティブセッションのブラウザの現状態を取り込んで(capture)保存することができる。本明細書中において、アクティブセッションの「カスタマイズ」または「カスタム化」という用語は、第1のブラウザ20を使用した対話によりブラウザ状態に蓄積されるアクティブセッションの変更を意味する。さらに、「ブラウザの現状態」または「ブラウザ状態」という用語は、ユーザがブラウザを使用して生成したアクティブセッションのカスタマイズされた状態を意味する。第1のブラウザ20を使用して確立されるアクティブセッションのブラウザの現状態とそれに関連する属性は格納可能な形式で取り込まれる。取り込まれたアクティブセッションのブラウザの現状態は、「スナップショット」または「ブラウザスナップショット」と呼ばれる。
【0025】
アクティブセッションのブラウザの現状態は、ブラウザキャッシュおよびブラウザ履歴により構成される。ブラウザキャッシュおよびブラウザ履歴には、ドキュメントオブジェクトおよびスクリプトオブジェクトの現状態に加えて、例えば第1のブラウザ20が最後に表示したページが含まれる。従って、取り込まれたアクティブセッションのブラウザの現状態に含まれるページは動的でも静的であってもよい。さらに、ブラウザキャッシュおよびブラウザ履歴は、以前におよび/または最後に表示されたページ上で変更あるいは入力された値、ブラウザ履歴、クッキー、および/またはユーザによってカスタマイズ可能なアクティブセッションのブラウザの現状態に関連するその他のパラメータを含んでもよい。ユーザは、リポジトリサーバ18を使用してネットワーク12内にアクティブセッションのブラウザの現状態を安全に保存できる。
【0026】
BSRサービス10によれば、ユーザは、保存されたアクティブセッションのブラウザの現状態を後で安全に読み出すことができる。ユーザは、リポジトリサーバ18および任意の装置上の任意のブラウザを使用して、保存されたブラウザの現状態を取り出すことができる。例えば、ユーザは、第1の装置14上で第1のブラウザ20、第2の装置16上で第2のブラウザ22、またはその他任意の装置とそれに付随するブラウザを用いてもよい。保存されたブラウザの現状態が読み出されると、アクティブセッションのブラウザ状態は復元され、同一のアクティブセッションをスナップショットが取り込まれた時点から再開できる。
【0027】
例えば、ユーザが、オフィスのデスクトップPC上で第1のブラウザ20を操作して厚地の窓用カーテンを購入する場合を想定する。ここで、このユーザは、アクティブセッション中に別々のページ上で所望の色、図柄、および形等の選択をした後、帰宅して窓枠を測定しなければならないものとする。同様に、同一のユーザが後で航空券を購入する目的で、別のアクティブセッション中に第1のブラウザ20を使用して別々のページ上で複数のフライトスケジュールを組むものとする。
【0028】
ユーザは、BSRサービス10を利用して、第1のブラウザ20をシャットダウンする前にこれらカスタマイズされたアクティブセッションの各ブラウザの現状態を取り込む。そして、ユーザは帰宅し、窓枠を測定し、旅行の計画を仕上げ、例えばポケットPC等の第2の装置16上で第2のブラウザ22を起動させる。ユーザは、以前に保存されたブラウザスナップショットを読み出して復元した後、アクティブセッション中にカスタマイズされたページを閲覧し、厚地の窓用カーテンの選択を完了する。さらに、ユーザは以前にカスタマイズされたページを閲覧し、以前にカスタマイズされたアクティブセッション中に組んだフライトスケジュールの1つを選択する。
【0029】
ある態様において、BSRサービス10はインターネットのインフラストラクチャとそれに付随するプロトコルを用いて実施可能である。この態様では、BSRサービス10の導入にあたり、既存のウェブサイト、装置とそれに付随するブラウザにほとんど変更を加える必要がない。別の態様において、BSRサービス10はその他任意のインフラストラクチャとそれに付随するプロトコルを用いて実施してもよい。
【0030】
図2は、BSRサービス10の一実施形態を示すより詳細なブロック図である。BSRサービス10は、図1を参照して説明した実施形態と同様に、第1のブラウザ20を搭載した第1の装置14、第2のブラウザ22を搭載した第2の装置16、およびネットワーク12を介して図2に示すように通信するリポジトリサーバ18を有する。図2は、リポジトリサーバ18、第1および第2の装置14、16各々とネットワーク12を介して通信する少なくとも1のサイト30を例示している。さらに、図2は、本実施形態のBSRサービス10のインフラストラクチャの一部分として、第1および第2の装置14、16上で動作するBSR装置モジュール34、およびリポジトリサーバ18上で動作するBSRリポジトリモジュール36を例示している。別の態様において、任意の数のセキュアサイトおよび/または非セキュアサイトを含むようにしてもよい。さらに、BSRサービス10の一部分として同図に例示するモジュールの数は図2に示す数より少なくしてもよいし、多くしてもよい。
【0031】
一方、サイト30は、ブラウザを介した情報に対するアクセスを提供可能な、ネットワーク12を介して通信する任意のメカニズムである。サイト30は、不正アクセスの可能性を最小限にするためのいずれの形式のセキュリティも有しない非セキュアサイトであってもよいし、反対にセキュアサイトであってもよい。従って、第1および第2のブラウザ20、22は、セキュリティのレベルに応じて高信頼性(secure)または非高信頼性通信を用いてサイト30を閲覧する。第1および第2のブラウザ20、22は、サイト30が非セキュアサイトの場合、HTTPメッセージを用いて通信し、サイト30がセキュアサイトの場合、HTTPSメッセージを用いて通信する。別の態様において、サイト30は、セキュアサイトの部分および非セキュアサイトの部分を含んでもよい。この態様において、通信は、閲覧するサイトの部分に応じて高信頼性通信と非高信頼性通信の間でシフトするようにしてもよい。
【0032】
BSR装置モジュール34は、第1および第2の装置14、16の少なくともいずれか1つで起動される任意のアプリケーションである。BSR装置モジュール34は、第1および第2のブラウザ20、22の機能を向上させるか、もしくは連携して動作することでBSRサービス10をサポートする。本実施形態において、BSR装置モジュール34は、ダウンロード可能なブラウザプラグインであり、第1および第2のブラウザ20、22に適用可能である。一般的に、ブラウザプラグインは、アプリケーションに機能またはサービスを付加する周知の形式のアプリケーションである。別の態様において、BSR装置モジュール34は、第1および第2の装置14、16内で、第1および第2のブラウザ20、22の機能を向上させる独立型のモジュールであってもよい。
【0033】
図3は、BSR装置モジュール34の一実施形態を示すブロック図である。本実施形態において、BSR装置モジュール34は、インターフェイスコンポーネント40、セキュリティコンポーネント42、取り込みコンポーネント44、および復元コンポーネント46を有する。別の態様において、BSR装置モジュール34は、例えばスナップショット保存機能、ユーザ認証機能、またはBSRサービス10に係るその他の機能等の付加的な機能を有してもよい。
【0034】
インターフェイスコンポーネント40は、第1および第2の装置14、16のユーザにBSRサービス10とのインターフェイスを提供する。ユーザは、このインターフェイスを使用して、BSRサービス10の機能に加えてBSR装置モジュール34により提供される付加的な機能の動作を命令できる。さらに、インターフェイスコンポーネント40は、ユーザインターフェイスを特定の装置のハードウエアに適合させる変換機能を提供する。例えば、ある装置においてユーザインターフェイスはタッチスクリーンであってもよいし、別の装置においてユーザインターフェイスはボタンであってもよいし、さらに別の装置においてユーザインターフェイスは音声や動画による対話であってもよい。つまり、インターフェイスコンポーネント40は装置のハードウエアを認識して、ユーザインターフェイスをハードウエアに適合させる。
【0035】
セキュリティコンポーネント42は、BSRサービス10のセキュリティを保証する。すなわち、セキュリティコンポーネント42は高信頼性通信を選択的に行い、BSRサービス10の不正使用を防止する。ユーザは、取り込みコンポーネント44を用いることにより、アクティブセッションのブラウザスナップショットを取り込んで保存することができる。同様に、ユーザは、復元コンポーネント46を用いることにより、取り込まれたブラウザスナップショットの読み出しを命令できる。BSR装置モジュール34の各コンポーネントの機能については以下で詳細に説明する。
【0036】
図4および5は、ユーザインターフェイスバー50を例としてインターフェイスの実施形態を例示している。ユーザインターフェイスバー50は、インターフェイスコンポーネント40(図3参照)を用いて起動および管理される。ある態様において、ユーザインターフェイスバー50は、第1および第2の装置14、16(図2参照)のグラフィカルユーザインターフェイス(GUI)を実装したブラウザウィンドウ内に表示されてもよい。別の態様において、ユーザインターフェイスバー50は、別のウィンドウ内、または別のページとして表示されてもよい。さらに別の態様において、ユーザインターフェイスバー50の選択可能な機能(以下で説明する)は、ハードボタン、個別アイコン、音声認識、および/またはユーザがBSRサービス10(図2参照)の機能に対して命令可能なその他のメカニズムを用いて表示してもよい。
【0037】
インターフェイスコンポーネント40が起動されると、本実施形態のユーザインターフェイスバー50はHypertext Markup Language(HTML)のページを表示する。本実施形態において、このページはBSRリポジトリモジュール36(図2参照)が動作するリポジトリサーバ18(図2参照)から提供される。従って、インターフェイスコンポーネント40を実行するために、第1および第2のブラウザ20、22の構成に加えるべき変更あるいは追加は比較的少ない。
【0038】
別の態様において、このページは、例えばeXtensible Markup Language(XML)、Wireless Markup Language(WML)、Compact Hypertext Markup Language(cHTML)および/またはその他の言語で記述されたページであってもよい。さらに、このページは、インターフェイスコンポーネント40と連携して動作する、ネットワーク12内のその他の装置から提供されてもよい。さらに別の態様において、ユーザインターフェイスバー50は、インターフェイスコンポーネント40によって単独で生成され、管理されてもよい。上記いずれの態様においても、インターフェイスコンポーネント40は、ユーザインターフェイスバー50を介して入力されたコマンドに応じて、コマンドおよび情報を解読し、ネットワーク12(図2参照)を介して送信する。
【0039】
図4は、ユーザID欄52、パスワード欄54、サインオンボタン56、リセットボタン58、および認証装置ID欄60を備えるログイン画面時のユーザインターフェイスバー50を示している。別の態様において、ユーザインターフェイスバー50のログイン画面は、ユーザを識別するためのその他の機能を備えてもよい。ユーザは、ログイン画面によりログイン情報を入力することが可能になる。ログイン情報は、ユーザが認証されてアクセスを許可されることなしにBSRサービス10(図2参照)にアクセスすることを防止するために用いられる。
【0040】
図2、3および4に示すように、本実施形態において、認証およびアクセス許可はBSRリポジトリモジュール36により行われる。この実施形態において、ユーザID欄52に入力されたユーザ名とパスワード欄54に入力されたパスワードはネットワーク12を介してBSRリポジトリモジュール36に送信され、認証およびアクセス許可を受ける。セキュリティコンポーネント42は、SecureSockets Layer(SSL)接続等の高信頼性接続をBSRリポジトリモジュール36との間で確立し、認証およびアクセス許可処理を開始する。セキュリティコンポーネント42により高信頼性接続が開始される際には、ユーザ名およびパスワード情報を、例えばHTTPSメッセージにすることによりこれらの情報の安全性が保証される。本実施形態のログイン画面は、BSRリポジトリモジュール36が動作するリポジトリサーバ18から提供されることが好ましい。さらに、高信頼性接続は、第1および第2のブラウザ20、22を使用して確立される。
【0041】
セキュリティコンポーネント42はインターフェイスコンポーネント40と連携してログイン画面の機能を管理してもよい。例えば、セキュリティコンポーネント42は、サインオンボタン56が選択された時に認証およびアクセス許可処理を開始してもよい。さらに、ネットワーク12を介してBSR装置モジュール34からBSRリポジトリモジュール36へ送信される後続のメッセージについても、セキュリティコンポーネント42により安全性を保証してもよい。別の態様において、ログイン情報は、個人情報記憶装置(個人情報カード等)、生体情報スキャナ(声紋、指紋、網膜スキャナ等)および/またはユーザを識別するためのその他のメカニズムからのデータとして外部からセキュリティコンポーネント42に供給してもよい。さらに別の態様において、セキュリティコンポーネント42はログイン画面を生成し、BSRサービス10の機能へのアクセスをユーザに許可してもよい。さらに別の態様において、セキュリティコンポーネント42は、ユーザインターフェイスバー50が長時間休止状態にある場合に、タイムアウトパスワード等のローカルセキュリティを設定してもよい。
【0042】
認証装置ID欄60により、ユーザ認証のためにログイン情報が送信される、ネットワーク12内の少なくとも1の装置が特定される。この装置は、ユーザが作成したアカウントの情報とセキュリティコンポーネント42を介して送信されるログイン情報とを照合可能なネットワーク接続された装置である。本実施形態において、ユーザはBSRリポジトリモジュール36を用いてアカウントを作成する。従って、本実施形態の認証装置ID欄60には、BSRリポジトリモジュール36が動作するリポジトリサーバ18の識別子が入力される。この識別子は、インターネットプロトコル(IP)アドレス、URL(Uniform Resource Locator)、URI(Uniform Resource Identifier)、UUID(Universal Unique Identifier)、またはその他の形式の識別子である。
【0043】
図5に示すように、ユーザインターフェイスバー50は、BSRサービス10とユーザとを媒介するためのユーザ画面を表示する。本実施形態のユーザインターフェイスバー50は、認証装置ID欄60、ユーザID欄62、スナップショットボタン64、セッション名欄66、セッションパスワード欄68、復元ボタン70、セッション選択欄72、サインオフボタン74、およびBSRリポジトリモジュール欄76を備える。別の態様において、ユーザインターフェイスバー50は追加機能やBSRサービス10の動作に関する情報を備えてもよい。
【0044】
図2、3および5に示すように、ユーザから提供されたログイン情報が認証されアクセスが許可されると、本実施形態のユーザ画面がユーザインターフェイスバー50に表示される。従って、ユーザID欄62には、ログインに成功した正当なユーザの識別子が入力される。この識別子は、例えばユーザ名、番号、またはアクセスを許可されたユーザを示すその他の識別子である。
【0045】
ユーザは、スナップショットボタン64を選択することにより、BSR装置モジュール34の取り込みコンポーネント44を起動できる。上述したように、取り込みコンポーネント44を起動することによりスナップショットを取り込むことができる、すなわちアクティブセッションのブラウザの現状態を取り込むことができる。取り込みコンポーネント44は、スナップショットの取り込みが開始されるとアクティブセッションのブラウザ状態に関する複数のセッションパラメータを取り込む。ある態様において、このセッションパラメータには、ブラウザに表示中のページを構成する少なくとも1のドキュメントオブジェクトモデル(DOM)、現在のページを構成する少なくとも1のスクリプトオブジェクト、現在のセッションのブラウザ履歴、ブラウザキャッシュ、およびクッキーが含まれる。別の態様において、取り込みコンポーネント44は、アクティブセッションのブラウザの現状態を構成するその他の形式のセッションパラメータを取り込んでもよい。
【0046】
従来から周知なように、DOMは、HTMLおよびXML文書用の1組のアプリケーションプログラムインターフェイス(API)である。一般的に、DOMは文書の論理構造を定義し、ブラウザに表示される文書へのアクセスおよび操作のための標準のインターフェイスを提供する。DOMにより定義されたインターフェイスを用いて、文書構造とそれに含まれる要素の構築および変更に加えて、文書構造内の移動が行われる。
【0047】
例えば、マイクロソフト(登録商標)インターネットエクスプローラ(登録商標)を使用してHTMLページを解析すると、DOM構造が作成される。DOM構造は、ブラウザに表示されたHTMLページの構造を表す。DOM構造の各ノードはドキュメント情報を表す。ドキュメント情報には、HTMLページのHTML要素、XML要素、属性、および/またはテキストが含まれる。例えば、<a href=http://www.docomolabs−usa.com>DoCoMo</a>というHTMLの場合、”a”要素のノード、”
href”属性のノード、およびテキスト内容の2つのノードの合計4つのノードで表さ
れる。
【0048】
従来から周知なように、各DOM構造の各ノードには、ブラウザにおける表示方法および動作を定義する1組の属性が含まれている。BSR装置モジュール34は、コンテンツおよびノードの属性を含むこのようなDOM構造をスナップショット内に取り込むよう指示される。別の態様において、Compact HTML(cHTML)、Wireless Application Protocol(WAP)、Wireless Markup Language(WML)、および/またはその他のプロトコルや言語を解析する機能を備えたブラウザを使用してBSR装置モジュール34により取り込み可能な構造を作成してもよい。
【0049】
例えば、マイクロソフト(登録商標)インターネットエクスプローラ(登録商標)にページをダウンロードして、BSRサービス10によりアクティブセッションのブラウザの現状態を保存する場合を想定する。ユーザがスナップショットボタン64を選択すると、取り込みコンポーネント44は、ブラウザに表示されているページの最上位フレーム内の全ドキュメントオブジェクトをたどる。取り込みコンポーネント44は最上位フレーム内の各ノードとその属性を取り込む。さらに、取り込みコンポーネント44は下位フレームに進み、DOM構造のノードとその属性を取り込む。
【0050】
取り込みコンポーネント44により取り込まれる別のセッションパラメータとして、スクリプトオブジェクトがある。VB ScriptやJavaScript等のスクリプトオブジェクトは、ブラウザにダウンロードされるページに含まれる。取り込みコンポーネント44はこのようなスクリプトオブジェクトをブラウザスナップショットの一部として取り込むようにしてもよい。スクリプトオブジェクトはDOMドキュメントとともに取り込まれてもよい。従って、取り込みコンポーネント44は、ページを構成するDOMおよびスクリプトオブジェクトの両方を同時に取り込む。また、取り込みコンポーネント44はスクリプトオブジェクトのみを取り込むようにしてもよい。
【0051】
例えば、マイクロソフト(登録商標)インターネットエクスプローラ(登録商標)を使用する場合、スクリプト変数は、IDispatchオブジェクトと表されるスクリプトタグで定義される。IDispatchオブジェクトは、実行時、マイクロソフト(登録商標)インターネットエクスプローラ(登録商標)が備えるスクリプトエンジンを用いてアクセスされる。ある態様において、マイクロソフト(登録商標)インターネットエクスプローラ(登録商標)を使用してスナップショットを取り込む場合、スクリプト変数に対応するIDispatchオブジェクトはシリアル化されて取り込まれるが、対応するスクリプト機能は取り込まれない。従来から周知なように、マイクロソフト(登録商標)インターネットエクスプローラ(登録商標)のスクリプト機能は一定である。別の態様において、スクリプト機能とスクリプト変数の両方が取り込みコンポーネント44により取り込まれてもよい。
【0052】
取り込みコンポーネント44により取り込まれるさらに別のセッションパラメータとして、クッキーがある。一般的に、クッキーは、ユーザ固有の情報を含む周知の装置識別子である。従来から周知なように、クッキーは、ダウンロードされるページとともにブラウザに提供される。取り込みコンポーネント44は、取り込みプロセスにおいて、クッキーをnameおよびvalue要素の対として解釈して保存する。、クッキーは取り込まれると、取り込みコンポーネント44により取り込まれるその他の情報に付加される。マイクロソフト(登録商標)インターネットエクスプローラ(登録商標)が使用される場合、クッキーは上述した各スナップショットのDOM構造に付加される。
【0053】
取り込みコンポーネント44により取り込まれるさらに別のセッションパラメータとして、アクティブセッションのブラウザ履歴がある。ブラウザ履歴は、ブラウザが以前に表示したページの集合である。従って、取り込みコンポーネント44はブラウザ履歴に登録されたページを取り込み、取り込まれたその他の情報に付加する。マイクロソフト(登録商標)インターネットエクスプローラ(登録商標)が使用される態様において、ブラウザは、URL履歴を検索および設定するためにIURHistoryStgインターフェイスを備える。この態様では、ブラウザ履歴を取り込む際に、URL履歴を列挙し、列挙されたURLを取得し、取得したURLをDOM構造およびクッキーに付加する。
【0054】
ユーザは、取り込みコンポーネント44を用いて、取り込まれたアクティブセッションのブラウザの現状態に対してセッション名とセッションパスワードを設定してもよい。ユーザは、図4に示されるセッション名欄66に固有のセッション名を入力する。あるいは、ユーザは、以前に取り込んだブラウザ状態のセッション名を選択してもよい。セッション名が設定されない場合、ウェブサイトのホスト名等をデフォルトセッション名として、取り込んだアクティブセッションのブラウザ状態を識別してもよい。
【0055】
ユーザは、図4に示されるセッションパスワード欄68に入力されるセッションパスワードを用いてブラウザスナップショットを保護してもよい。このセッションパスワードにより、取り込んだブラウザスナップショットへの不正アクセスを防止できる。別の態様において、セッションパスワードの入力方法には、音声パスワードやブラウザスナップショットへの不正アクセスを防止するその他のメカニズムが含まれる。
【0056】
ブラウザスナップショットは取り込まれると、取り込みを指示したユーザと関連付けられる。つまり、スナップショットは、ブラウザ状態を取り込んだブラウザおよび/または装置ではなく、ユーザと関連付けられる。スナップショットは、ユーザと関連付けられる際、ユーザのアカウント情報、ユーザ名、またはアクティブセッションをカスタマイズしてブラウザスナップショットを取り込んだユーザを一意に識別するその他のメカニズムと関連付けられる。各ユーザと関連付けられたブラウザスナップショットはネットワーク12内の安全な場所に保存される。
【0057】
本実施形態において、ブラウザスナップショットはBSRリポジトリモジュール36により保存される。本実施形態において、セキュリティコンポーネント42は、BSR装置モジュール34とBSRリポジトリモジュール36間の高信頼性接続を確立し、取り込んだアクティブセッションのブラウザ状態をネットワーク12を介して送信する。別の態様において、取り込んだアクティブセッションのブラウザ状態がネットワーク12内の他の場所に保存される場合、セキュリティコンポーネント42は、ネットワークに接続されたその他の装置と高信頼性接続を確立し、ブラウザスナップショットを安全に送信する。
【0058】
ある態様において、セッション名およびセッションパスワードの入力後、ブラウザスナップショットを自動的に保存するようにしてもよい。別の態様において、ユーザは、別のコマンドでおよび/または保存場所を選択してブラウザスナップショットの保存を開始してもよい。ユーザがアクティブセッションのブラウザ状態を取り込んだ後も当該アクティブセッションのカスタマイズを続けた場合、取り込みコンポーネント44は、取り込んだアクティブセッションのブラウザスナップショットとの不一致の可能性を警告してもよい。
【0059】
上述したように、BSR装置モジュール34は復元コンポーネント46を有する。ユーザはユーザインターフェイスバー50を用いて、取り込んだブラウザスナップショットの読み出しを指示する。読み出しは、復元ボタン70とセッション選択欄72とを用いて開始される。ユーザは、正常に認証されアクセスを許可されると、以前に取り込まれユーザに関連付けられたブラウザスナップショットを選択する。ブラウザスナップショットを選択する際には、プルダウンメニューリスト、索引、データベース、セッション名の手動入力、または以前に取り込まれユーザに関連付けられたブラウザスナップショットのリストを識別するためのその他の検索メカニズムが用いられる。検索メカニズムおよび/またはリストは、BSRリポジトリモジュール36、セキュリティコンポーネント42、および/またはブラウザスナップショットの保存場所に関連付けられたその他の装置により提供される。
【0060】
以前に保存されたアクティブセッションのブラウザ状態が選択されると、復元ボタン70を選択することにより読み出しが開始される。アクティブセッションのブラウザ状態がBSRリポジトリモジュール36に保存される態様において、保存されたブラウザスナップショットは、ログインする際にユーザを認証しアクセスを許可するために予め確立された高信頼性接続を介してダウンロードされる。この態様において、高信頼性接続がすでに切断されている場合、セキュリティコンポーネント42は高信頼性接続の確立を再び開始する。ブラウザスナップショットがネットワーク12内の他の場所に保存される別の態様において、セキュリティコンポーネント42は高信頼性接続を確立し、スナップショットを安全に読み出せるようにする。
【0061】
選択されたブラウザスナップショットに対してセッションパスワードが設定されている場合は、セッションパスワードをセッションパスワード欄68に入力する。セッションパスワードは、BSRリポジトリモジュール36、セキュリティコンポーネント42、またはブラウザスナップショットの保存場所に関連付けられたその他の装置により認証される。従って、ユーザは正常に認証されアクセスを許可されても、セッションパスワードがなければ保存されたブラウザスナップショットを読み出すことができない。
【0062】
復元コンポーネント46は、ブラウザスナップショットを受信すると当該ブラウザスナップショットを復元する。ブラウザスナップショットを復元する際、ブラウザスナップショットはアクティブセッションのブラウザ状態に変換される。アクティブセッションは、復元後、スナップショットが取り込まれた時点と同じ状態でブラウザに表示される。ある態様では、上述のように取り込まれたDOMおよびスクリプトオブジェクトの復元の結果、アクティブセッションのブラウザ状態が表示される。さらに、ページ中に入力された値、ブラウザ履歴、ブラウザキャッシュ、クッキー、および/またはアクティブセッション中にカスタマイズされたその他の情報も復元される。
【0063】
ある態様では、ブラウザスナップショットを復元する際にサイト30(図2参照)からコンテンツを再ダウンロードする。サイト30からブラウザにコンテンツがダウンロードされると、BSR装置モジュール34の復元コンポーネント46はブラウザスナップショットを利用してコンテンツをカスタマイズし、以前に取り込んだアクティブセッションのブラウザ状態を復元する。ある態様では、以前に取り込んだDOM構造を復元する際に、ダウンロードしたコンテンツのDOM構造が利用される。この態様において、復元コンポーネント46は、以前に取り込んだDOM構造に従って、ダウンロードしたコンテンツの各DOMノードの値および属性を復元する。DOM構造が復元されると、復元コンポーネント46は、クッキー、スクリプトオブジェクトの変数、およびブラウザ履歴の復元を開始する。
【0064】
図2、3および5に示すように、セキュリティコンポーネント42はサインオフボタン74を備える。セキュリティコンポーネント42はログオフ処理を開始する、すなわちサインオフボタン74が選択されるとBSRサービス10へのアクセスを終了する。セキュリティコンポーネント42は、サインオフボタン74が選択されるとBSR装置モジュール34とブラウザとの接続を切断する。さらに、セキュリティコンポーネント42はインターフェイスコンポーネント40に指示してユーザインターフェイスバー50を閉じる。
【0065】
BSRリポジトリモジュール欄76には、BSRリポジトリモジュール36が動作する装置の場所が入力される。場所を示す識別子としては、IPアドレス、物理的な場所名、またはその他任意の形式の識別子がある。従って、複数のBSRリポジトリモジュール36が利用可能な場合には、BSRリポジトリモジュール欄76により所望の場所が選択できる。
【0066】
図2に示すように、BSRリポジトリモジュール36は、ネットワーク12を介してBSR装置モジュール34と通信可能な装置上で動作し、且つBSRサービス10の動作をサポートする任意のアプリケーションである。本実施形態において、BSRリポジトリモジュール36はリポジトリサーバ18上で動作する。別の態様において、BSRリポジトリモジュール36は、ネットワークに接続された任意の装置上で動作してもよい。本実施形態において、BSRリポジトリモジュール36と連携して動作するリポジトリサーバ18は、BSRサービス10をサポートする商用のサーバサービス提供者でもよいし、私的に設定、管理されるBSRサービス10用のサーバサービスの提供装置でもよい。
【0067】
図6は、BSRリポジトリモジュール36の一実施形態を示すブロック図である。BSRリポジトリモジュール36は、ログインセキュリティコンポーネント80、ページサーバコンポーネント82、スナップショット保存コンポーネント84、通信セキュリティコンポーネント86、およびタイミングコンポーネント88を備える。別の態様において、BSRリポジトリモジュール36の機能を果たすコンポーネント数の多寡は問わない。さらに別の態様において、BSRリポジトリモジュール36はコード変換機能を備えてもよい。このコード変換機能により、HTMLからcHTMLへの変換、cHTMLからHTMLへの変換、および/またはその他の言語変換が可能になる。また、コード変換機能により、HTTPおよびワイヤレスアプリケーションプロトコル(WAP)間の変換等のプロトコル変換が可能になる。さらに、コード変換機能により、HTTPのHTMLおよびWAPのワイヤレスマークアップ言語(WML)間の変換等のように言語とプロトコルの両方を変換してもよい。
【0068】
ログインセキュリティコンポーネント80は、図4を参照して説明したユーザインターフェイスバー50のログイン画面を介してログイン情報を提供したユーザを認証し、アクセスを許可する。ログインセキュリティコンポーネント80は、アカウントの情報とユーザインターフェイスバー50を介して提供されたログイン情報とを照合する。ユーザは、BSRリポジトリモジュール36にアカウントを作成して保存する。ログインセキュリティコンポーネント80は、ログイン情報を受信すると保存されたアカウント情報にアクセスしてユーザの認証を行う。正常に認証されると、ユーザはログインしてBSRリポジトリモジュール36へのアクセスを許可される。
【0069】
ページサーバコンポーネント82により、BSRリポジトリモジュール36は、図4および5を参照して説明したユーザインターフェイスバー50にドキュメントを提供する標準のサーバとして機能することが可能になる。ページサーバコンポーネント82は、ドキュメントに加えて、ログイン情報で識別されるユーザに関するその他の情報を提供する。例えば、保存されたブラウザスナップショットのリストが上述したセッション選択欄72に提供される。保存されたブラウザスナップショットのリストには、BSRリポジトリモジュール36を用いて保存されたスナップショットが記載されている。別の態様において、ページサーバコンポーネント82は、インターフェイスコンポーネント40(図3参照)やネットワーク12(図2参照)内のその他の装置等により生成および表示されたページ上の情報を提供してもよい。
【0070】
スナップショット保存コンポーネント84は、図3および5を参照して説明したようにBSR装置モジュール34により取り込まれたブラウザスナップショットを保存する。スナップショット保存コンポーネント84は、取り込みコンポーネント44(図3参照)により送信されたブラウザスナップショットを受信し、保存する。スナップショット保存コンポーネント84は、BSRリポジトリモジュール36が動作する装置に関連付けられた保存メカニズムにブラウザスナップショットの保存を指示する。
【0071】
代表的な保存メカニズムとしては、ハードディスク、光ディスク、またはその他のデータ記憶媒体と連携して動作する関係データベースがある。別の態様において、スナップショット保存コンポーネント84は、ネットワーク12(図2参照)内の任意の装置が備える保存メカニズムにブラウザスナップショットの保存を指示してもよい。
【0072】
上述したように、保存された各ブラウザスナップショットは、アクティブセッションのブラウザ状態を取り込んで保存したユーザに対応付けられる。従って、スナップショットはユーザの識別情報ごとに保存される。さらに、保存されたスナップショットにアクセスするには、ブラウザ状態を取り込んで保存したユーザの認証およびアクセス許可が必要となる。
【0073】
ユーザが認証されアクセスを許可されると、保存されたブラウザスナップショットは、所望のスナップショットの識別子に基づいてスナップショット保存コンポーネント84によりアクセスされる。図5を参照して説明したように、保存されたブラウザスナップショットは、ユーザインターフェイスバー50のセッション選択欄72を用いて特定され、読み出される。選択されたブラウザスナップショットは保存メカニズムから読み出されてユーザのブラウザに送信されると、上述したように復元されて表示される。スナップショット保存コンポーネント84は、選択されたブラウザスナップショットに設定されたパスワードを認証する。
【0074】
図2および6に示すように、通信セキュリティコンポーネント86によりBSR装置モジュール34との高信頼性接続が可能になる。高信頼性接続では、上述したプロトコルのいずれを用いてもよい。高信頼性接続には、例えばログイン情報の送信、取り込んだアクティブセッションのブラウザ状態の送信、またはBSR装置モジュール34とBSRリポジトリモジュール36間で行われるその他の通信が含まれる。さらに、通信セキュリティコンポーネント86を用いれば、BSRサービス10に関するその他の機密情報の通信も保護することができる。
【0075】
タイミングコンポーネント88は、ブラウザスナップショットとして保存された、サイト30(図2参照)とのアクティブセッションを管理する。従来から周知なように、サイト30はアクティブセッションに対してタイムアウトポリシーを設定することがある。従って、長時間保存されたブラウザスナップショットは保存場所から読み出されてもアクティブセッションに復元されない場合がある。
【0076】
ある態様において、タイミングコンポーネント88はサイト30に定期的にアクセスして(例えば、ピン(Ping))、ブラウザ状態が取り込まれ保存されたアクティブセッションをアクティブ状態に保つ。この通信には、サイト30に対して単にピンを使用する方法の他に、タイムアウト時間をリセットするために必要なその他の通信が含まれる。タイミングコンポーネント88は、各ブラウザスナップショットが保存された時刻に基づいて、対応するサイト30のタイムアウト時間をリセットするための通信を行う。
【0077】
別の態様において、タイミングコンポーネント88は、ブラウザスナップショットが保存された各サイト30のタイムアウト時間を調べる。そして、ユーザは、アクティブセッションのタイムアウト時間が経過する前にブラウザスナップショットを読み出すようタイミングコンポーネント88により通知される。さらに、タイミングコンポーネント88は、タイムアウト時間が経過した(または経過しそうな)場合に、タイムアウト時間が経過した(または経過しそうな)ブラウザスナップショットをユーザに通知してもよい。さらに別の態様において、サイト30のタイムアウトポリシーを拡充してブラウザスナップショットが保存されたアクティブセッションに対応させてもよい。さらに別の態様において、アクティブセッションのブラウザ状態が取り込まれ保存された旨の通知をタイミングコンポーネント88から受けることにより、サイト30は当該アクティブセッションに対するタイムアウトポリシーの適用を停止してもよい。
【0078】
図7は、図1、2、3、4、および6に示されるBSRサービス10の動作を示すフローチャートである。この動作例を説明するにあたり、ユーザは、BSRサービス10にアクセスするため、予めアカウントを作成しているものとする。さらに、ユーザは、まだアクティブセッションのブラウザスナップショットを取り込み、保存していないものとする。
【0079】
まず、ブロック102において第1のブラウザ20が第1の装置14上で起動される。ブロック104において、第1の装置14および第1のブラウザ20と関連付けられたBSR装置モジュール34が起動される。ブロック106において、ユーザはユーザ名とパスワードをユーザインターフェイスバー50のログイン画面に入力する。ブロック108において、BSR装置モジュール34はリポジトリサーバ18との高信頼性接続の確立を開始する。ブロック110において、ログイン情報が高信頼性接続を介してリポジトリサーバ18に送信される。ブロック112において、リポジトリサーバ18のBSRリポジトリモジュール36はログイン情報に基づいてユーザを認証し、アクセス許可メッセージをBSR装置モジュール34に送信する。ブロック114において、ログイン画面に代わりユーザ画面がユーザインターフェイスバー50に表示される。ブロック116において、ユーザはネットワーク12を介してリクエストを送信し、第1のブラウザ20を使用してサイトの特定および閲覧を開始する。
【0080】
ブロック118において、第1のブラウザ20はサイト30にリクエストを送信してアクティブセッションをカスタマイズする。カスタマイズ後、ブロック120において、ユーザはアクティブセッションのブラウザの現状態の保存を開始する。ブロック122において、ユーザインターフェイスバー50のスナップショットボタン64を選択して、アクティブセッションのブラウザの現状態の取り込みを開始する。アクティブセッションのブラウザ状態をブラウザスナップショットとして取り込んだ後、ブロック124において、当該スナップショット用のセッション名とパスワードを設定する。ブロック126において、ユーザはブラウザスナップショットと関連付けられる。
【0081】
図8のブロック128において、BSR装置モジュール34は、第1の装置14とリポジトリサーバ18との高信頼性接続の確立を開始する。接続が確立されると、ブロック130において、ブラウザスナップショットがこの高信頼性接続を介してリポジトリサーバ18に送信される。ブロック132において、ブラウザスナップショットは解読され、BSRリポジトリモジュール36により対応するユーザと関連付けられて保存される。ブロック134において、ユーザはユーザインターフェイスバー50のサインオフボタン74を選択してサイト30の閲覧を終了し、第1のブラウザ20とBSRリポジトリモジュール36との接続を切断する。ブロック136において、BSRリポジトリモジュール36は第1の装置14とリポジトリサーバ18との高信頼性接続を切断する。ブロック138において、ユーザは第1のブラウザ20を終了する。
【0082】
図9は、同一のユーザが第2の装置16上で第2のブラウザ22を起動させた場合におけるBSRサービス10の動作を示すフローチャートである。この動作例を説明するにあたり、ユーザは第1の装置14上で動作する第1のブラウザ20を使用してブラウザスナップショットをすでに保存しているものとする。図示しないが、上述したブロック102からブロック114(図7参照)までの動作が、第1の装置14および第1のブラウザ20に代えて第2の装置16および第2のブラウザ22を使用して再び行われる。
【0083】
図9のブロック202において、ログイン済みのユーザに関連付けられて保存されたブラウザスナップショットを含むリストが高信頼性接続を介してダウンロードされ、ユーザインターフェイスバー50に提示される。ブロック204において、ユーザは保存されたブラウザスナップショットを読み出すか否かを決定する。ユーザが、保存されたブラウザスナップショットを読み出さない場合、ブロック206において、ユーザは第2のブラウザ22を使用してネットワーク12上のサイト30を特定する。ブロック208において、ユーザはネットワーク12を介してリクエストを送信し、サイト30の閲覧を開始する。
【0084】
ブロック204において、ユーザが、保存されたブラウザスナップショットの読み出しを決定した場合、ブロック210において、保存されたブラウザスナップショットをセッション名欄66で選択し、当該ブラウザスナップショットに対して設定されたパスワードをセッションパスワード欄68に入力する。ブロック212において、ユーザインターフェイスバー50の復元ボタン70が選択され、復元処理が開始される。パスワードが認証されると、ブロック214において、選択されたブラウザスナップショットがリポジトリサーバ18から第2の装置16に高信頼性接続を介してダウンロードされる。
【0085】
ブロック216において、BSR装置モジュール34は保存されたブラウザスナップショットを復元し、第2のブラウザ22を使用してアクティブセッションを再開する。ブロック208において、第2のブラウザ22は、ネットワーク12を介してリクエストを送信し、アクティブセッションが復元されたサイト30の閲覧を開始する。
【0086】
アクティブセッションのブラウザ状態をカスタマイズして保存する第2のブラウザ22の動作は、図7および8を参照して説明した動作と同様である。別の態様において、ユーザは異なる装置および異なるブラウザを任意に使用してサイトを閲覧し、さらにアクティブセッションを任意にカスタマイズしてブラウザ状態を保存してもよい。さらに、ユーザは異なる装置および異なるブラウザを任意に使用して、保存されたブラウザの現状態を復元し、アクティブセッションを継続してもよい。
【0087】
上述したBSRサービス10の実施形態によれば、ユーザは、セッションを終了して別の装置でセッションのカスタマイズを最初からやり直すことなく、アクティブセッション中に装置を切り替えることができる。さらに、ユーザは、任意の装置でいつでもどんなアクティブセッションでも保存して継続できるので、複数のカスタマイズされたアクティブセッションを同時に管理できる。BSRサービス10を利用してアクティブセッションを保存する際には、単にアクティブセッションのブラウザ状態をスナップショットとして保存するだけでよい。スナップショットは安全に保存され、後で安全に読み出されて、ユーザによりカスタマイズされたアクティブセッションに復元される。また、ユーザは、任意のブラウザおよび/または装置を使用してブラウザスナップショットを保存し読み出すことができる。従って、BSRサービス10によれば、ブラウザスナップショットはブラウザまたは装置と関連付けられるのではなく、BSRサービス10のユーザと関連付けられる。
【0088】
別の態様において、BSRサービスは、ブラウザセッションモビリティ(BSM)システムに拡張される。BSMシステムは、マルチプラットフォームネットワークアプリケーションのアクティブセッションのランタイム状態の、異なるプラットフォーム間におけるモビリティをサポートする。従来から周知のように、セッションは、ウェブアプリケーション等のネットワークアプリケーションを使用するユーザのインスタンスである。プラットフォームとは、ポケットパーソナルコンピュータ、携帯電話、デスクトップコンピュータ等のソフトウェアおよび/またはハードウェア環境が異なる装置の種類である。上述したように、BSRサービスによれば、ブラウザ状態は特定の装置と関連付けられるのではなくユーザと関連付けられるため、ユーザは、アクティブセッションの複数のブラウザスナップショットを保存し、復元することができる。BSMシステムでは、この関連付けがさらに拡張され、マルチプラットフォームネットワークアプリケーションが動作する異なるプラットフォーム間におけるシームレスな移動が可能になる。
【0089】
BSMシステムは、異なるプラットフォーム間におけるランタイム状態のモビリティをサポートする。プラットフォームが異なると、ディスプレイ、ネットワーキング、ユーザインターフェイス等に関連する制限および能力が異なる。BSMシステムによれば、BSRサービスのようにブラウザ状態を取り込むだけではなく、アクティブセッションのサーバ状態も取り込むことができる。アクティブセッションのブラウザ状態およびサーバ状態中に生成される状態データおよびセッションデータは総称してランタイム状態と呼ばれる。BSMシステムにおいて、「状態」または「ランタイム状態」という用語はユーザおよびネットワークアプリケーション間において蓄積される対話を指す。ランタイム状態には、フォームデータ、スクリプト変数、クッキー等のブラウザ状態とブラウザ状態をサポートするサーバ状態が含まれる。サーバ状態は、プラットフォームに依存するJSP(Java Server Pages)やCGI(Computer Generated Image)の状態のようにプラットフォーム毎に異なる。
【0090】
BSMシステムによれば、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンを用いて生成されたプラットフォーム依存ランタイム状態を、マルチプラットフォームネットワークアプリケーションの別のプラットフォームに依存するバージョンにおいて別のプラットフォームに依存するランタイム状態に変換することができる。従って、BSMシステムでは、ランタイム状態と特定のプラットフォームとを関連付けないことにより、ある特定のプラットフォーム上で実行されるマルチプラットフォームネットワークアプリケーションのランタイム状態が別のプラットフォームに転送される。
【0091】
上述したBSRサービスのスナップショットという概念は修正および拡張され、BSMシステムでは、プラットフォーム非依存ランタイム状態データが含まれる。従って、BSMシステムによれば、スナップショットは任意のプラットフォーム上でアクティブセッションに復元される。BSMシステムは、マルチプラットフォームネットワークアプリケーションの任意のプラットフォームに依存するバージョンのタスク、ランタイム状態、およびデータ構造に対して動作する。BSMシステムによれば、任意のマルチプラットフォームネットワークアプリケーションの構造において、アクティブセッションのスナップショットを取り込み、プラットフォーム毎に変換し、復元させることができる。
【0092】
図10は、上述したネットワーク12を介して動作するBSMシステム300を示すブロック図である。同図に示すように、BSMシステム300は、アプリケーションサーバ302、第1および第2の装置304、306として示される通信装置、およびリポジトリサーバ308をそれぞれ少なくとも1ずつ備える。別の態様において、BSMシステム300は、任意の数のアプリケーションサーバ、通信装置、リポジトリサーバ、およびその他のネットワーク対応装置を備えてもよい。
【0093】
アプリケーションサーバ302は、第1および第2の装置304、306等の、ネットワーク12上の装置に対してアプリケーションを提供可能な任意のネットワーク対応装置である。アプリケーションサーバ302は、プロセッサ、メモリ、マルチプラットフォームウェブアプリケーション等の少なくとも1のマルチプラットフォームネットワークアプリケーション、サーバ状態モジュール312、およびプラットフォームアダプタモジュール314を備える。アプリケーションサーバ302は、オペレーティングシステムおよびプログラムもメモリに備え、通常のネットワークサーバコンピュータと同程度の能力を有する。ネットワークを介してネットワークアプリケーションを提供する周知のメカニズムでは、HTTP要求等の要求によりアプリケーションサーバ302とのアクティブセッションが開始される。
【0094】
この要求は、第1および第2の装置304、306等の対象プラットフォームからネットワーク12を介してアプリケーションサーバ302に送信される。アプリケーションサーバ302は、プラットフォームの種類(例えば、デスクトップパーソナルコンピュータ、ラップトップコンピュータ、携帯情報端末(PDA)、携帯電話等)と対象プラットフォームのために起動されるマルチプラットフォームネットワークアプリケーションの当該プラットフォームに依存するバージョンを特定する。次に、アプリケーションサーバ302は、サーバ状態モジュール312を用いてサーバ状態を生成する。このサーバ状態は、対象プラットフォームに対応するプラットフォーム依存ネットワークアプリケーションとともに動作する。プラットフォーム依存ネットワークアプリケーションとは、対象プラットフォームのブラウザとのアクティブセッションの確立および維持可能な、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンである。
【0095】
図11、12、および13は、プラットフォームの異なるブラウザ表示例を示す図である。各プラットフォームは、ネットワークアプリケーションの各プラットフォームに依存するバージョンとともに動作するサーバ状態によりサポートされる、各プラットフォームに依存するバージョンは、バージョンが異なるマルチプラットフォームネットワークアプリケーション(この例では、ブックストアアプリケーション)である。図11、12、および13に示される各表示例は、各プラットフォームの表示画面のサイズ、ユーザインターフェイス装置、およびネットワーク接続のタイプ等の能力に最適化された各プラットフォームに依存するブックストアアプリケーションの表示である。別の態様において、マルチプラットフォームネットワークアプリケーションは任意の数のプラットフォームに対応してよい。
【0096】
図11に示される第1のブラウザ表示例324は、ブックストアアプリケーションの第1のプラットフォームに依存するバージョンにより生成される。第1のプラットフォームに依存するバージョンは、デスクトップまたはラップトップコンピュータ等の表示画面が比較的大きくネットワーク接続が比較的安定したプラットフォームによるアクティブセッションに用いられる。表示画面が比較的大きいため、このプラットフォームは、書籍目録タスク326、ショッピングカートタスク328、およびチェックアウトタスク330を一画面中に表示できる。ネットワーク12への高速接続と多様なユーザインターフェイス装置により、アクティブセッション中の操作にはスクロール、マウスクリック、キーボードによるデータ入力等が用いられる。
【0097】
図12に示される第2のブラウザ表示例334は、ポケットPCまたはPDA等のネットワーク12への接続が比較的高速で表示画面が小さいプラットフォームを対象としている。第2のブラウザ表示例334を伴うアクティブセッションは、上記のプラットフォームに対応する、ブックストアアプリケーションの第2のプラットフォームに依存するバージョンによりサポートされる。第2のプラットフォームに依存するバージョンでは、小さい表示画面上においても見易くするために、書籍目録タスク326、ショッピングカートタスク328、およびチェックアウトタスク330がブラウザの別々のページに配置される。HTTP要求等の個々のページに対する要求により、ブラウザ状態と、ネットワークアプリケーションの第2のプラットフォームに依存するバージョンとともに動作するサーバ状態とが同期化される。
【0098】
ブラウザのユーザインターフェイス装置は、利用可能なユーザインターフェイス装置が異なるため、ネットワークアプリケーションの各プラットフォーム依存バージョン間で非常に異なる。例えば、第1のブラウザ表示例324では、ユーザインターフェイス装置により、全てのタスク326、328、および330が表示される。第2のブラウザ表示例334では、表示画面が小さいためにタスク326、328、および330の一部のみが表示され、その結果としてスクロールバーが表示される。異なるプラットフォーム間におけるユーザインターフェイス装置の変更のその他の例として、テキストフィールドボックスからプルダウンメニューへの変更や、マウス操作からタッチスクリーン操作への変更がある。
【0099】
図13に示される第3のブラウザ表示例340は、ネットワーク接続が悪いポケットPC等の、表示画面が比較的小さくネットワーク12への接続が比較的低速な装置を対象としている。第3のブラウザ表示例340を含むブラウザ状態は、第3のプラットフォームに依存するバージョンとともに動作するサーバ状態によりサポートされる。第3のブラウザ表示例340では、書籍目録タスク326(図示せず)、ショッピングカートタスク328、およびチェックアウトタスク330(図示せず)が、スクロールバーを備える別々のページに配置される。第3のプラットフォームに依存するバージョンは、対象装置とのアクティブセッションを見易くするために、ブラウザ中に代わりのユーザインターフェイス装置を提供する。
【0100】
例えば、第3のブラウザ表示例340のショッピングカートタスク328では、別のタイトルが、第1および第2のブラウザ表示のショッピングカートタスク328のように一覧表示されるのではなく、プルダウンメニューにより表示される。さらに、アクティブセッション中の操作は、対象装置上のクライアントサイドスクリプトによって行われてもよい。例えば、「数量」および「価格」は、プルダウンメニュー344で選択されたタイトルに基づいて読み出される。従って、ブラウザ状態より生成されてネットワークを介してサーバ状態に送信されるHTTP要求等の要求が減少するため、ネットワークトラフィックが最小限に抑えられる。
【0101】
表示方法および機能が非常に異なるため、各表示では、異なるタスクモデルが暗黙的に用いられている。サーバ状態とともに動作するネットワークアプリケーションのプラットフォーム依存バージョンに基づいてデータが表示され、フォームデータを含む変数がサーバ側ランタイム状態に送信される回数および方法は、プラットフォーム毎に異なる。従って、マルチプラットフォームネットワークアプリケーションの異なるプラットフォームに依存するバージョン間において、サーバ側ランタイム状態データは非常に異なる。
【0102】
図10に示されるプラットフォームアダプタモジュール314は、サーバ状態モジュール312と連携して動作する。プラットフォームアダプタモジュール314は、アクティブセッションのサーバ側ランタイム状態のプラットフォーム依存(PS)スナップショットを取り込む能力を有する。アクティブセッションのサーバ側PSスナップショットは、アクティブセッション中にブラウザおよびアプリケーションサーバ302間で進行中の対話に関連するプラットフォーム依存ランタイム状態データを含む。プラットフォームアダプタモジュール314によってサーバ側PSスナップショットに取り込まれるプラットフォーム依存ランタイム状態データの量、種類、および詳細については、マルチプラットフォームネットワークアプリケーションの開発者により指定される。サーバ側PSスナップショットに取り込まれるプラットフォーム依存ランタイム状態は、別のデータベースへのリンク、アクティブセッションに関連するキャッシュデータ、オープンファイル、入力/出力、JSPまたはCGI変数等を含んでもよい。サーバ側PSスナップショットは、プラットフォームアダプタモジュール314により、第1および第2の装置304、306、および/またはリポジトリサーバ308にネットワーク12を介して送信される。
【0103】
また、プラットフォームアダプタモジュール314は、サーバ側PSスナップショットをサーバ側プラットフォーム非依存ランタイム状態に変換する能力を有する。この変換はマッピングを用いて行われ、サーバ側プラットフォーム依存ランタイム状態データからサーバ側プラットフォーム非依存ランタイム状態データに選択的に変換される。同様に、プラットフォームアダプタモジュール314は、プラットフォーム非依存ランタイム状態データをプラットフォーム依存ランタイム状態に変換する。
【0104】
プラットフォームアダプタモジュール314は、マッピング記述ファイルを用いてマッピングする。マッピング記述ファイルには、アプリケーション開発者により、サーバ側PSスナップショットに含まれるサーバ側プラットフォーム依存ランタイム状態およびサーバ側プラットフォーム非依存ランタイム状態間の変換について記述される。
【0105】
サーバ側プラットフォーム非依存ランタイム状態は、プラットフォーム非依存(PI)スナップショットに含まれる。プラットフォームアダプタモジュール314は、PIスナップショットとマッピング記述ファイルを、リポジトリサーバ308、および/または第1および第2の装置304、306等のその他の装置にネットワーク12を介して送信する。上述の実施形態と同様に、ネットワーク12を介する通信は暗号化される。
【0106】
第1および第2の装置304、306は、それぞれBSMモジュール316を備える。図1に示される第1および第2の装置14、16と同様に、BSMモジュール316は、第1および第2の装置304、306において、それぞれ第1および第2のブラウザ318、320と連携して動作する。BSMモジュール316は、第1および第2の装置304、306上で動作するブラウザプラグインや独立型のモジュール等である。
【0107】
図14は、BSMモジュール316の一実施形態を示すブロック図である。BSMモジュール316は、上述したインターフェイスコンポーネント40、セキュリティコンポーネント42、取り込みコンポーネント44、および復元コンポーネント46に加えて、変換モジュール350および状態ハンドラモジュール352を備える。上述したように、取り込みコンポーネント44によって取り込まれるブラウザ側プラットフォーム依存(PS)スナップショットは、アクティブセッションのブラウザ側プラットフォーム依存ランタイム状態を含む。別の態様において、BSMモジュール316は、任意の数のモジュールまたはコンポーネントを備えてよい。
【0108】
変換モジュール350は、取り込みコンポーネント44と連携して動作し、ネットワークアプリケーションのプラットフォーム依存バージョンのブラウザ側ランタイム状態(ブラウザ側PSスナップショット)を選択的に変換する。プラットフォームアダプタモジュール314と同様に、ブラウザ側PSスナップショットは、マッピング記述ファイルを用いて、ブラウザ側プラットフォーム非依存ランタイム状態に変換される。具体的には、ブラウザ側PSスナップショットに含まれるブラウザ側プラットフォーム依存ランタイム状態データが、プラットフォーム非依存ランタイム状態データに選択的に変換される。また、変換モジュール350は、復元コンポーネント46と連携して動作し、ブラウザ側プラットフォーム非依存ランタイム状態を、ブラウザ側プラットフォーム依存ランタイム状態データを含むブラウザ側PSスナップショットに選択的に変換する。
【0109】
変換モジュール350は、マッピング記述ファイルを用いて状態データを選択的に変換する。プラットフォームアダプタモジュール314と同様に、マッピング記述ファイルには、アプリケーション開発者により、ブラウザ側PSスナップショットに含まれるブラウザ側プラットフォーム依存ランタイム状態データおよびブラウザ側プラットフォーム非依存ランタイム状態データ間の選択的な変換について記述される。
【0110】
ブラウザ側PSスナップショットが変換されると、状態ハンドラモジュール352は、ブラウザ側プラットフォーム非依存ランタイム状態を変換モジュール350から受信する。また、状態ハンドラモジュール352は、サーバ側プラットフォーム非依存ランタイム状態を含むPIスナップショットをプラットフォームアダプタモジュール314から受信する。サーバ側プラットフォーム非依存ランタイム状態は、PIスナップショット内において、ブラウザ側プラットフォーム非依存ランタイム状態と結合される。アクティブセッションのプラットフォーム非依存ランタイム状態を含むPIスナップショットは、リポジトリサーバ308に送信される。
【0111】
また、状態ハンドラモジュール352は、プラットフォームアダプタモジュール314からサーバ側PSスナップショットを受信する。サーバ側PSスナップショットは、マッピング記述ファイルを用いて変換モジュール350により変換される。この変換により、サーバ側プラットフォーム依存ランタイム状態がサーバ側プラットフォーム非依存ランタイム状態に変換される。サーバ側プラットフォーム非依存ランタイム状態は、状態ハンドラモジュール352により、ブラウザ側プラットフォーム非依存ランタイム状態と結合される。
【0112】
さらに別の態様において、状態ハンドラモジュール352は、サーバ側プラットフォーム依存ランタイム状態を含むサーバ側PSスナップショットを受信する。状態ハンドラモジュール352は、サーバ側PSスナップショットと、ブラウザ側プラットフォーム依存ランタイム状態を含むブラウザ側PSスナップショットとを結合する。サーバ側およびブラウザ側PSスナップショットは結合されてプラットフォーム依存ランタイム状態スナップショットとなる。プラットフォーム依存ランタイム状態スナップショットは、状態ハンドラモジュール352により、ネットワーク12を介してリポジトリサーバ308に送信される。
【0113】
以前に保存されたPIスナップショットが記憶装置から読み出されると、状態ハンドラモジュール352はPIスナップショットを受信して、PIスナップショットからブラウザ側プラットフォーム非依存ランタイム状態を抽出する。ブラウザ側プラットフォーム非依存ランタイム状態は変換モジュール350に提供され、変換モジュール350はブラウザ側プラットフォーム非依存ランタイム状態をブラウザ側PSスナップショットに変換する。変換後、ブラウザ側プラットフォーム依存ランタイム状態は、アクティブセッションとしてインスタンス化される。
【0114】
図10に示すように、リポジトリサーバ308はBSMリポジトリモジュール322を備える。図1および6に示されるリポジトリサーバ18と同様に、リポジトリサーバ308は、ネットワーク12を介して、第1および第2の装置304、306、およびアプリケーションサーバ302と連携して動作する。また、リポジトリサーバ308は、第1および第2の装置304、306とのみ通信を行ってもよい。
【0115】
図15は、BSMリポジトリモジュール322の一実施形態を示すブロック図である。BSMリポジトリモジュール322は、図6に示される上述のログインセキュリティコンポーネント80、ページサーバコンポーネント82、スナップショット保存コンポーネント84、および通信セキュリティコンポーネント86に加えて、状態ハンドラモジュール354を備える。状態ハンドラモジュール354は、第1および第2の装置304、306、および/またはアプリケーションサーバ302のいずれかからブラウザ側PSスナップショットとサーバ側PSスナップショットを受信し、変換、結合してPIスナップショットを生成する。別の態様において、BSMリポジトリモジュール322は任意の数のモジュールを備えてよい。
【0116】
また、状態ハンドラモジュール354は、ブラウザ側プラットフォーム依存ランタイム状態とサーバ側プラットフォーム依存ランタイム状態とを含むプラットフォーム依存ランタイム状態スナップショットを受信して、PIスナップショットに変換する。別の態様において、PIスナップショットが、アプリケーションサーバ302のプラットフォームアダプタモジュール314または状態ハンドラモジュール352によって生成される場合、リポジトリサーバ308は状態ハンドラモジュール354を備えていなくてもよい。この場合、PIスナップショットはリポジトリサーバ308に送信され、スナップショット保存コンポーネント84によって保存される。
【0117】
尚、BSMリポジトリモジュール322は、図6に示されるタイミングコンポーネント88を備えていない。BSMシステム300では、アクティブセッションのブラウザ側およびサーバ側ランタイム状態の両方がスナップショットに取り込まれるため、タイミングコンポーネント88が不要となる。従って、アプリケーションサーバ302とのアクティブセッションを維持するための時間管理が不要となる。
【0118】
ユーザは、第1の装置304等の通信装置を用いてマルチプラットフォームネットワークアプリケーションの起動を要求し、アクティブセッションを開始する。第1の装置304上で動作する第1のブラウザ318とのアクティブセッションを確立、維持するために、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンがサーバ状態とともに用いられる。アクティブセッション中、第1の装置304のユーザは、BSMシステム300を利用してアクティブセッションの取り込みを開始する。
【0119】
アクティブセッションのプラットフォーム依存ランタイム状態は、PSスナップショットとして取り込まれる。具体的には、第1の装置304上で動作する第1のブラウザ318のブラウザ現状態と、アプリケーションサーバ302のサーバ現状態が取り込まれる。ブラウザ現状態を含むPSスナップショットとサーバ現状態を含むPSスナップショットは結合され、アクティブセッションのプラットフォーム非依存ランタイム状態を含むPIスナップショットに変換される。PIスナップショットはリポジトリサーバ308に保存される。
【0120】
PIスナップショットは、第2の装置306等の対象装置を用いて後で読み出される。PIスナップショットは、第2の装置306のハードウェアおよび/またはソフトウェア能力(プラットフォーム)に基づいてPSスナップショットに変換される。サーバ側PSスナップショットには、サーバ側プラットフォーム依存ランタイム状態データが含まれ、ブラウザ側PSスナップショットには、ブラウザ側プラットフォーム依存ランタイム状態データが含まれる。プラットフォーム依存ランタイム状態はアクティブセッションとしてインスタンス化され、以前に確立されたアクティブセッションが再開される。アクティブセッションの再開には、アプリケーションサーバ302と第2の装置306上で動作する第2のブラウザ320が用いられる。従って、アクティブセッションは、あらゆるプラットフォーム上で復元可能である。
【0121】
BSMシステム300では、プラットフォーム依存ランタイム状態の相違に対して変換をもって対応する。この変換は、プラットフォーム依存ランタイム状態およびプラットフォーム非依存ランタイム状態間の選択的なマッピングに基づいて行われる。BSMシステム300では、このマッピングを通じてプラットフォーム依存ランタイム状態間の相違を調整する。BSMシステム300によれば、あるプラットフォームに依存する表示から別のプラットフォームに依存する表示への構成要素のマッピングが容易になるため、異なるプラットフォーム間のシームレスな変換が可能になる。
【0122】
BSMシステム300において、ページレイアウト、ユーザインターフェイス装置、状態メンテナンス等の相違、およびその他のプラットフォームに依存する相違は、変換によって対処される。ページレイアウトは、アクティブセッション中のページにおいてどのようにタスクが細分化または統合されるかを示す。タスクは、ユーザによって命令される、検索、購入、選択等のアクティブセッション中のさまざまな機能を指す。ユーザインターフェイス装置は、キーパッド、キーボード、タッチスクリーン、マウス等のランタイム状態データの入力やアクティブセッション中の操作の際にユーザによって操作される装置を指す。状態メンテナンスは、データベース入力、クッキー、スクリプト変数、隠しフォームフィールド等の状態をプラットフォーム依存アプリケーションがページ間でどのように維持するかを示す。状態メンテナンスは、ブラウザ状態およびサーバ状態間でどのように状態が同期化されるかも示す。
【0123】
PSスナップショットをマッピングする際には、ページおよびデータが選択的にマッピングされる。ページは、各ページがプラットフォーム非依存タスクに対応しているものとみなしてマッピングされる。上述したように、データには、フォーム制御、クッキー、JSP変数、スクリプト変数等が含まれる。あるマッピング方法例では、PSスナップショットのデータをマッピングする際に、固有のプラットフォーム非依存名称がデータに選択的に割り当てられる。プラットフォーム依存データは、マッピング記述ファイルを用いて、割り当てられた固有のプラットフォーム非依存名称にマッピングされ、プラットフォーム依存データからプラットフォーム非依存データに変換される。同様に、プラットフォーム非依存データを特定のプラットフォームのPSスナップショットに変換する場合には、当該特定のプラットフォームに対応するマッピング記述ファイルを用いて、固有のプラットフォーム非依存名称からPSスナップショットのプラットフォーム依存データに変換される。
【0124】
マッピング機構の一実施例として、HTMLの注と2つの単純なXMLドキュメントを用いるタイプがある。このマッピング機構を説明するために、BSMモジュール316によるPIスナップショットの保存および復元動作の一例を取り上げる。BSMモジュール316は、マルチプラットフォームIDに基づいてアプリケーションをマルチプラットフォームアプリケーションと特定する。マルチプラットフォームIDの一例としては、<link rel=”bsm−map” href=”my−platform.xml”>等の各
HTMLページのヘッダの1行がある。この場合、リンク要素はHTML標準の一部であり、2つのドキュメント間の関係を指定するために用いられる。この場合の関係は、ブラウザを用いて現在閲覧されているページにはマッピングが適用され、マッピング記述ファイル(この場合、”my−platform.xml”)にマッピングが記述されてい
ることを指定している。
【0125】
マッピング記述ファイルは、保存および復元プロセスにおいて、プラットフォーム依存およびプラットフォーム非依存ランタイム状態間の変換を行う際の指示書としてBSMモジュール316に用いられる。このタイプのマッピング記述ファイルのDTD(Document Type Definition)では次の構造が指定される。
・map要素は、後述するマスターマッピングファイルのURLと1以上のpage要素を含む。
・page要素は、ページのURLからネットワークアプリケーションの変則的かつ概念的な1以上のタスクへのマッピングを行う。タスクは0以上のcontrol要素を含む。
・control要素は、プラットフォーム依存ユーザインターフェイス装置名から固有のプラットフォーム非依存名称へのマッピングを行い、0以上のvalue要素を含む。
・value要素(セッションデータおよび/または状態データ)は、ユーザインターフェイス装置等のプラットフォーム依存値からプラットフォーム非依存値へのマッピングを行う。
【0126】
マッピング記述ファイルは、アプリケーション開発者によって、ネットワークアプリケーションの各プラットフォーム依存バージョン用に選択的に記述される。例えば、マッピング記述ファイルは、第1のプラットフォームに依存するバージョンのあるpage要素(タスク)中のcontrol要素に含まれる値(データ)の範囲から、第2のプラットフォームに依存するバージョンの別のpage要素(タスク)中の別のcontrol要素に含まれる値(データ)の範囲へ明示的にマッピングされるように記述される。マッピング記述ファイルにより、アプリケーション開発者には、異なるプラットフォームに依存するアプリケーション間において名称および値の範囲が異なるcontrol要素のみに対して選択的にマッピングするという柔軟性が与えられる。異なるプラットフォームに依存するアプリケーション間において名称および値の範囲が同じ場合には、例えば、固有のプラットフォーム非依存名称へのマッピングが指定される必要がない。別々のプラットフォーム依存バージョン間において名称および値の範囲が全て同じ場合、アプリケーション開発者は、マッピング記述ファイルにおいてpage要素(タスク)のマッピングのみ指定すればよい。
【0127】
以下の例では、3つのページがタスクにマッピングされ、control要素(この例では、<select>または<input type=”radio”>要素グループを想定)が固有のプ
ラットフォーム非依存名称および値の範囲にマッピングされている。
<map master=”master.xml”>
<page url=”http://localhost/foo.html” task=”foo”>
<control from=”ab” to=”alphabravo”>
<value from=”a” to=”alpha”>
<value from=”b” to=”bravo”>
<value from=”c” to=”charlie”>
</control>
</page>
<page url=”http://localhost/bar.html” task=”bar”/>
<page url=”http://localhost/baz.html” task=”baz”/>
</map>
【0128】
BSMシステム300では、各マルチプラットフォームネットワークアプリケーションに対してアプリケーション開発者によって作成されるマスターマッピングファイルが用いられる。マスターマッピングファイルには、プラットフォームとマッピング記述ファイルとの対応関係が記述されている。BSMシステム300では、PIスナップショットを復元する際にマスターマッピングファイルが用いられる。マスターマッピングファイルによって、PIスナップショットからブラウザ側PSスナップショットおよびサーバ側PSスナップショットへの変換またはその逆の変換の際に用いられるマッピング記述ファイルが特定される。同様に、PSスナップショットによって、プラットフォーム依存バージョンの表示の際にロードされるページが特定される。
【0129】
一般的に、マルチプラットフォームネットワークアプリケーションは、起動要求に基づいて表示を選択する。起動要求は、例えばHTTP要求で送信されるuser−agentストリングである。同様に、BSMシステム300では、移動させたランタイム状態に対応する表示が選択される。表示は、アクティブセッション中の条件、デフォルト表示、またはその他のランタイム状態に関連するパラメータに基づいて選択される。ある態様では、マルチプラットフォームネットワークアプリケーションが表示を選択する際に用いられる方法と同様の方法がBSMシステム300において用いられる。以下は、DTDの一例である。
・master要素は1以上のmap要素を含む。
・map要素は、user−agentストリングに対応する正規表現と、user−agentストリングと関連付けられたマッピング記述ファイルに対応するURLとを含む。複数の正規表現がuser−agentストリングに対応する場合には、マッピング記述ファイルの最初の正規表現が用いられる。
【0130】
以下は、マスターマッピングファイルの一例である。
<master>
<map useragent=”windows” url=”pc−map.xml”/>
<map useragent=”pocket” url=”ppc−map.xml”/>
<map useragent=”*” url=”default−map.xml”/>
</master>
【0131】
このマスターマッピングファイルでは、”windows”を含む全てのuser−agentストリングがpc−map.xml記述ファイルと、”pocket”を含むuser−agentストリングがppc−map.xml記述ファイルと、そしてその他のuser−agentストリングがdefault−map.xml記述ファイルと関連付けられている。
【0132】
上述のマッピングおよび変換は、BSMモジュール316、プラットフォームアダプタモジュール314、および/またはBSMリポジトリモジュール322において行われる。ある態様において、マッピングはXML等のコードを用いて行われる。図16は、上述のブックストアアプリケーションのサーバ側PSスナップショットからPIスナップショットへマッピングする、アプリケーション記述およびマッピング記述ファイルの一例である。
【0133】
上記の例がマッピングの完全な実施例ではなく、BSMシステム300におけるマッピングの一実施例であることは当業者にとって明らかである。一般的に、アプリケーション記述およびマッピング記述ファイルでは、セッションデータおよび状態データがname属性とtype属性の対で記述される。
【0134】
BSMシステム300では、有限状態機械(Finite State Model:FSM)の概念に基づいてプラットフォーム依存表示がモデル化される。BSMシステム300では、FSMの概念を用いてマルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンのプラットフォーム依存表示の構造が表される。FSMモデルとともに上述のマッピングを用いて、異なるプラットフォーム間を移動させるランタイム状態を選択的に変換する。
【0135】
BSMシステム300において、FSMモデルは、ある頂点から次の頂点を結ぶ各辺が頂点の順序対となる有向グラフである。マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンの各プラットフォーム依存表示の構造は、有向グラフを用いてモデル化される。
【0136】
FSMモデルの有向グラフは、状態を示す頂点と状態間の遷移を示す辺からなる。ここで、FSMモデルにおける状態は、プラットフォーム依存表示のタスクを指す。FSMモデルにおける状態間の遷移は、アクティブセッションのプラットフォーム依存表示中の移動を指す。移動には、ブラウザにおけるフォームの送信やリンク先に飛ぶ等の、アクティブセッション中のユーザの操作が含まれる。アクティブセッションのランタイム状態を保存および復元するためには、FSMモデルにおける遷移が明示的にモデル化されなくてもよい。その代わりに、ネットワークアプリケーションのプラットフォーム依存バージョンの論理に暗示されていると推定される。
【0137】
データフィールドは、FSMモデルにおける各状態と関連付けられる。データフィールドは、プラットフォーム依存表示においてユーザに提示されるフォーム制御に相当する。さらに、アクティブセッションのプラットフォーム依存表示の状態データおよびセッションデータがデータフィールドに含まれる。状態データは、ブラウザ状態および/またはサーバ状態のタスクデータを表すセッション固有のデータである。「ショッピングカート」の内容やクッキー等のセッションデータは、アクティブセッション中、状態間で不変である。
【0138】
FSMモデルを用いることによって、ネットワークアプリケーションのプラットフォーム依存バージョンの各アクティブセッションに関連付けられた表示の全ての構造が表される。アクティブセッションのブラウザ側およびサーバ側プラットフォーム依存ランタイム状態もまた、FSMモデルを用いて表されるプラットフォーム依存表示に含まれる。
【0139】
例えば、プラットフォーム依存表示例である図11、12、および13では、それぞれ異なるFSMモデルが用いられてマルチプラットフォームネットワークアプリケーションのプラットフォーム依存表示の構造が表されている。FSMモデルにおける状態は、アクティブセッション中のブラウザに表示される、特定のプラットフォームを特に対象とするページを表す。例えば、図12に示される第2の表示例には3つの状態326、328、および330が表示されている。FSMモデルにおけるデータフィールドには、アクティブセッション中にユーザによってブラウザに生成される状態データおよびセッションデータ(例えば、ブラウザ側ランタイム状態)が含まれる。例えば、送信されなかった、名前等のチェックアウト情報は、プラットフォーム依存表示の状態データとしてブラウザ側ランタイム状態に含まれる。
【0140】
同様に、サーバ側のプラットフォーム依存表示もFSMモデルを用いて表される。サーバ側のFSMモデルにおけるデータフィールドも状態データおよびセッションデータ(例えば、サーバ側ランタイム状態)を表す。例えば、ユーザが要求する書籍目録がアクセスされるデータベースは状態データの一部である。
【0141】
マッピング記述ファイルを用いたマッピングによれば、各プラットフォーム依存FSMモデルで表されるプラットフォーム依存ランタイム状態およびデータフィールドを、プラットフォーム非依存ランタイム状態およびプラットフォーム依存ランタイム状態間で選択的に変換することが可能になる。マッピングによれば、ランタイム状態と、ユーザが操作している装置とが関連付けられることがない。さらに、マッピングによって、マルチプラットフォームネットワークアプリケーションの異なるプラットフォームに依存するバージョン間における、ユーザインターフェイス装置およびページレイアウトの相違がモデル化される。例えば、データフィールドは、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンに基づいて、アクティブセッション中の各タスクにおいてユーザに選択的に提示される操作手段を表す。操作手段は、各プラットフォーム依存ネットワークアプリケーションの論理に基づいて提示されてもよい。
【0142】
BSMシステム300では、ネットワークアプリケーションのプラットフォーム依存バージョンのどの状態(例えば、表示)でユーザがPIスナップショットを保存したかが特定される。従って、ユーザがPIスナップショットを保存した時点の状態のIDがネットワークアプリケーションのプラットフォーム依存バージョン間でランタイム状態とともに転送される。PIスナップショットが読み出されて復元される際には、PIスナップショットが保存された時と同じ状態(ランタイム状態を含む)にアクティブセションが復元される。
【0143】
ユーザがPIスナップショットを保存した時点の状態は、次の比較的容易な2段階プロセスで特定される。まず、表示構造を表すFSMモデルにおける状態を調べて、表示ページ中の一部入力されたデータフィールドを特定する。一部入力されたデータフィールドが存在しない、または複数存在する場合には、アプリケーション開発者によって指定されたデフォルト状態が、ユーザがPIスナップショットを保存した時点の状態として特定される。
【0144】
PIスナップショットの復元時も、ユーザがPIスナップショットを保存した時点の状態が同様に特定される。第1のプラットフォームに依存する表示のFSMモデルにおける状態のうちデータフィールドの一部のみにデータが入力されている状態が存在する場合には、その状態が、ユーザがPIスナップショットを保存した時点の状態として特定される。アクティブセッションが再インスタンス化される際には、特定された状態に対応する、第2のプラットフォームに依存する表示の状態が特定されて、その状態に関連付けられた表示が行われる。一部入力されたデータフィールドが存在しない、または複数存在する場合には、デフォルトマッピングを用いて状態が特定される。
【0145】
図17は、図10に示されるBSMシステム300の動作例を示すフローチャートである。ここでは、アクティブセッションを表すPIスナップショットが保存される。まず、ブロック402において、ユーザは第1の装置304上で第1のブラウザ318を起動する。ブロック404において、ユーザは、第1の装置304を用いてリポジトリサーバ308にログオンする。ブロック406において、ユーザは、第1の装置304を用いてアクティブセッション開始要求をアプリケーションサーバ302に送信する。
【0146】
ブロック408において、アプリケーションサーバ302は、第1の装置304のプラットフォームの種類を特定する。ブロック410において、アプリケーションサーバ302は、第1の装置304のプラットフォームに対応する、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンを起動する。ブロック412において、第1の装置304の第1のブラウザ318は画面を表示する。ブロック414において、ユーザがアクティブセッション中に操作を行うと、ブラウザ状態およびサーバ状態の変更が行われる。ブロック416において、ユーザは、第1の装置304を用いてアクティブセッションのスナップショット取り込みを開始する。
【0147】
ブロック418において、第1の装置304のBSMモジュール316は、ネットワーク12を介してプラットフォームアダプタモジュール314に保存要求を送信する。この保存要求はURL等のリソースロケータであり、第1の装置304のプラットフォームを特定するための少なくとも1の暗号化された変数が添付されている。ブロック420において、プラットフォームアダプタモジュール314は、アクティブセッションのサーバ側ランタイム状態(状態データおよびセッションデータ)をサーバ側PSスナップショットとして取り込む。ブロック422では、マスターマッピングファイルを用いて、保存要求で特定されるプラットフォームに対応するマッピング記述ファイルを特定する。ブロック424では、特定されたマッピング記述ファイルを用いて、サーバ側PSスナップショットがPIスナップショットに変換される。
【0148】
図18のブロック426において、プラットフォームアダプタモジュール314は、保存要求に対する応答として第1の装置304に対してPIスナップショットを送信する。ブロック428では、保存要求に対する応答として、特定されたマッピング記述ファイルがさらに第1の装置304に送信される。ブロック430において、BSMモジュール316は、サーバ側プラットフォーム非依存ランタイム状態を含むPIスナップショットを受信する。ブロック432において、BSMモジュール316は、ブラウザ側PSスナップショットとしてブラウザ側プラットフォーム依存ランタイム状態を取り込む。ブロック434において、BSMモジュール316は、マッピング記述ファイルを用いてブラウザ側PSスナップショットをブラウザ側プラットフォーム非依存ランタイム状態に選択的に変換する。ブロック436において、ブラウザ側プラットフォーム非依存ランタイム状態は、アプリケーションサーバ302から受信したPIスナップショットのサーバ側プラットフォーム非依存ランタイム状態と結合される。ブロック438において、アクティブセッションのプラットフォーム非依存ランタイム状態を含むPIスナップショットは、シリアル化されてリポジトリサーバ308に送信される。ブロック440において、リポジトリサーバ308はPIスナップショットを保存する。
【0149】
別の態様において、ブラウザ側ランタイム状態とサーバ側ランタイム状態は、アプリケーションサーバ302または第1の装置304のいずれにおいて変換されてもよい。さらに別の態様において、リポジトリサーバ308は、アプリケーションサーバ302および第1の装置304からネットワーク12を介して送信されるPSスナップショットをマッピング記述ファイルを用いて選択的に変換してもよい。さらに別の態様において、第1の装置304が、アプリケーションサーバ302から送信されるサーバ側PSスナップショットとブラウザ側PSスナップショットをリポジトリサーバ308に送信し、リポジトリサーバ308がPSスナップショットをPIスナップショットに変換してもよい。以上より明らかなように、BSMシステム300内の任意の場所で、マッピング記述ファイルを用いたPIスナップショットへの変換が可能である。
【0150】
図19は、図10に示されるBSMシステム300の動作例を示すフローチャートである。ここでは、図17および18に示されるように第1の装置304を用いて保存されたPIスナップショットが、アクティブセッションに復元される。まず、ブロック502において、第2の装置306等の通信装置上でブラウザを起動する。ここでは説明のため、第2の装置306のプラットフォームが第1の装置304のものとは異なると想定する。ブロック504において、ユーザは第2の装置306を用いてリポジトリサーバ308にログオンする。ブロック506において、ユーザは、以前に保存されたアクティブセッションのPIスナップショットの復元を決定し、ネットワーク12を介してリポジトリサーバ308に復元要求を送信する。ブロック508において、リポジトリサーバ308は、復元要求の応答として、保存されたPIスナップショットをネットワーク12を介して第2の装置306に送信する。
【0151】
ブロック510において、第2の装置306のプラットフォームのIDがセッション再開要求に含まれる。このセッション再開要求には、第2の装置306上で表示される表示状態を特定するための少なくとも1の暗号化された変数と、URL等のリソースロケータが含まれる。ブロック512において、第2の装置306は、セッション再開要求により、保存されたPIスナップショットをアプリケーションサーバ302に送信する。ブロック514において、プラットフォームアダプタモジュール314はマスターマッピングファイルにアクセスして、第2の装置306のプラットフォームに対応するマッピング記述ファイルを特定する。ブロック516において、プラットフォームアダプタモジュール314は、特定されたマッピング記述ファイルを用いて、PIスナップショットに含まれるサーバ側ランタイム状態をサーバ側PSスナップショットに変換する。ブロック518において、プラットフォームアダプタモジュール314はサーバ側PSスナップショットに含まれるサーバ側ランタイム状態を再インスタンス化する。ブロック520において、プラットフォームアダプタモジュール314は、セッション再開要求に対する応答として、セッション再開要求で特定される表示状態に対応する、復元されたアクティブセッションのページを送信する。
【0152】
ブロック522において、プラットフォームアダプタモジュール314は、セッション再開要求に対する応答として、特定されたマッピング記述ファイルも第2の装置306に送信する。ブロック524において、第2の装置306のBSMモジュール316は、マッピング記述ファイルを用いてPIスナップショットをブラウザ側PSスナップショットに変換する。ブロック526において、第2の装置306の第2のブラウザ320は、アプリケーションサーバ302がら送信されたページを表示する。ブロック528において、BSMモジュール316はブラウザ側ランタイム状態を再インスタンス化することで、表示ページ中のフォームにデータが入力され、スクリプト変数、クッキー等が再び初期化される。ブラウザ側PSスナップショットが完全に復元されると、ブロック530において、ユーザは第2の装置306の第2のブラウザ320を用いて、スナップショットが取り込まれた時点からアクティブセッションを再開する。別の態様において、BSMシステム300の他の装置が、マッピング記述ファイルを用いてPIスナップショットをPSスナップショットに変換してもよい。
【0153】
別の態様において、BSMシステム300は、上述したBSRサービス10と同様に、ブラウザ側ランタイム状態のみをスナップショットとして取り込んでもよい。しかしながら、BSMシステム300は、ブラウザ側PSスナップショットおよびPIスナップショット間のランタイム状態の変換をマッピングする能力をさらに備える。従って、BSMシステム300によれば、マルチプラットフォームネットワークアプリケーションの各プラットフォーム依存バージョン間で異なるページレイアウト、ユーザインターフェイス装置、およびアプリケーション状態がシームレスに変換される。BSMシステム300が提供する柔軟性のある枠組みでは、アプリケーション開発者が、異なるプラットフォーム上で動作するブラウザ間におけるブラウザ側ランタイム状態のマッピングを選択的に指定できる。
【0154】
この場合、サーバ側で維持されるアプリケーション状態の取り込み、変換、および保存は行われない。従って、サーバがアクティブセッションを終了すると、BSMシステム300を利用して保存されたPIスナップショットは無効になる。保存されたアクティブセッションの無効を回避するために、リポジトリサーバ308は図6に示されるタイミングコンポーネント88も備える。図6を参照して説明したように、タイミングコンポーネント88は、一旦PIスナップショットが保存されるとアクティブセッションの管理を開始する。または、一旦PIスナップショットが保存されると、アクティブセッションのタイムアウトまでの時間延長やタイムアウトの停止が行われる。
【0155】
サーバ側ランタイム状態が取り込まれないため、BSMシステム300の提供者がアプリケーションサーバ302の提供者でない場合に、アプリケーションサーバ302内部の情報が漏れるのを回避できる。具体的には、アプリケーションサーバ302が、全ての一般プログラミング言語およびサーバ環境に適応するように、CGIスクリプトの任意変数等の変数を変更できる構成とされる必要がなくなる。さらに、アプリケーションサーバ302内部の情報が外部に漏れることに伴い予想されるセキュリティリスクが回避できる。さらに、ブラウザ側ランタイム状態のみマッピングが行われる場合には、アプリケーション開発者による努力をそれほど必要とせずに、マルチプラットフォームネットワークアプリケーションのローミングが可能になる。
【0156】
第1および第2の装置304、306が備えるコンポーネントによる上述の処理を実行するプログラムを、アプリケーションプログラムとして第1および第2の装置304、306にインストールしてもよい。さらには、このようなプログラムを記録したCD−ROM等の様々な記録媒体をユーザに提供するようにしてもよいし、インターネット等の通信回線を介してユーザに提供するようにしてもよい。
【0157】
【発明の効果】
上述したBSMシステム300によれば、任意のプラットフォームおよび任意のブラウザ上におけるアクティブセッションの取り込み、保存、および復元が可能になる。マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンのランタイム状態は取り込まれると、プラットフォーム非依存ランタイム状態に変換されて保存される。同様に、プラットフォーム非依存ランタイム状態は読み出されると、異なるプラットフォームに依存するランタイム状態に変換されて、マルチプラットフォームネットワークアプリケーションの、異なるプラットフォームに依存するバージョンに対応するプラットフォーム上で使用される。従って、ランタイム状態とプラットフォームとが関連付けられることがない。さらに、ランタイム状態には、アクティブセッションのサーバ側およびブラウザ側ランタイム状態の両方が含まれるため、アクティブセッションは無期限に保存され、アクティブセッションの状態データおよびセッションデータが完全な状態で復元される。また、ブラウザ側ランタイム状態のみが保存される場合でも、ランタイム状態と特定のプラットフォームとが関連付けられることはない。
【0158】
以上、本発明を具体的な実施形態を参照して説明してきたが、請求の範囲に記載された本発明の意図および範囲から逸脱することなくこれらの実施形態に対して種々の変更が可能であることは明白である。従って、本明細書および図面は例示的なものであり、限定的なものではない。
【図面の簡単な説明】
【図1】BSRサービスを示すブロック図である。
【図2】図1に示されるBSRサービスを示す詳細なブロック図である。
【図3】図2に示されるBSR装置モジュールを示す詳細なブロック図である。
【図4】図3に示されるBSR装置モジュールにより起動されるユーザインターフェイスバーの一例を示す図である。
【図5】図3に示されるBSR装置モジュールにより起動されるユーザインターフェイスバーの別の例を示す図である。
【図6】図2に示されるBSRリポジトリモジュールを示す詳細なブロック図である。
【図7】BSRサービスの一動作例を示すフローチャートである。
【図8】図7に示されるBSRサービスの一動作例の続きを示すフローチャートである。
【図9】BSRサービスの動作例を示すフローチャートである。
【図10】ブラウザセッションモビリティ(BSM)システムを示すブロック図である。
【図11】図10に示されるBSMシステム内のブラウザ/プラットフォーム上の表示例である。
【図12】図10に示されるBSMシステム内のブラウザ/プラットフォーム上の第2の表示例である。
【図13】図10に示されるBSMシステム内のブラウザ/プラットフォーム上の第3の表示例である。
【図14】BSMモジュールを示す詳細なブロック図である。
【図15】BSMリポジトリモジュールを示す詳細なブロック図である。
【図16】アプリケーション記述およびマッピング記述ファイルの一例を示す図である。
【図17】図10に示されるBSMシステムによる、アクティブセッションの取り込み、変換、および保存動作の一例を示すフローチャートである。
【図18】図17に示されるBSMシステムの動作例の続きを示すフローチャートである。
【図19】図10に示されるBSMシステムによる、異なるプラットフォーム上でアクティブセッションを復元する動作の一例を示すフローチャートである。
【符号の説明】
10…ブラウザ状態リポジトリ(BSR)サービス、12…ネットワーク、14、304…第1の装置、16、306…第2の装置、18、308…リポジトリサーバ、20、318…第1のブラウザ、22、320…第2のブラウザ、30…サイト、34…BSR装置モジュール、36…BSRリポジトリモジュール、40…インターフェイスコンポーネント、42…セキュリティコンポーネント、44…取り込みコンポーネント、46…復元コンポーネント、52…ユーザID欄、54…パスワード欄、56…サインオンボタン、58…リセットボタン、60…認証装置ID欄、62…ユーザID欄、64…スナップショットボタン、66…セッション名欄、68…セッションパスワード欄、70…復元ボタン、72…セッション選択欄、74…サインオフボタン、76…BSRリポジトリモジュール欄、80…ログインセキュリティコンポーネント、82…ページサーバコンポーネント、84…スナップショット保存コンポーネント、86…通信セキュリティコンポーネント、88…タイミングコンポーネント、300…BSMシステム、302…アプリケーションサーバ、312…サーバ状態モジュール、314…プラットフォームアダプタモジュール、316…BSMモジュール、322…BSMリポジトリモジュール、324…第1のブラウザ表示例、326…書籍目録タスク、328…ショッピングカートタスク、330…チェックアウトタスク、334…第2のブラウザ表示例、340…第3のブラウザ表示例、344…プルダウンメニュー、350…変換モジュール、352、354…状態ハンドラモジュール。

Claims (45)

  1. ブラウザを用いて確立されるアクティブセッションのランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョン間で転送する方法であって、
    マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンのブラウザ側ランタイム状態を取り込むステップと、
    前記ブラウザ側ランタイム状態をプラットフォーム非依存ランタイム状態に選択的に変換するステップと、
    前記プラットフォーム非依存ランタイム状態を保存するステップと
    を具備することを特徴とする方法。
  2. 前記マルチプラットフォームネットワークアプリケーションの前記プラットフォーム依存バージョンのサーバ側ランタイム状態を取り込むステップと、
    前記サーバ側ランタイム状態をプラットフォーム非依存ランタイム状態に変換するステップと、
    前記サーバ側ランタイム状態を前記ブラウザ側ランタイム状態とともに保存するステップと
    をさらに具備することを特徴とする請求項1に記載の方法。
  3. 前記マルチプラットフォームネットワークアプリケーションの、異なるプラットフォームに依存するバージョン上において、前記プラットフォーム非依存ランタイム状態を用いて、前記ブラウザ側ランタイム状態を復元するステップをさらに具備することを特徴とする請求項1に記載の方法。
  4. 前記ブラウザ側ランタイム状態を取り込むステップは、アクティブセッションのランタイム状態を表す状態データおよびセッションデータを取り込むステップを具備することを特徴とする請求項1に記載の方法。
  5. 前記ブラウザ側ランタイム状態を変換するステップは、プラットフォームに依存する前記ブラウザ側ランタイム状態からプラットフォームに依存しないブラウザ側ランタイム状態へのマッピングを指示するステップを具備することを特徴とする請求項1に記載の方法。
  6. 前記ブラウザ側ランタイム状態を変換するステップは、プラットフォームに依存する状態データおよびセッションデータのうち少なくとも1を、プラットフォームに依存しないデータに選択的に変換するステップを具備することを特徴とする請求項1に記載の方法。
  7. ブラウザを用いて確立されるアクティブセッションのランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョン間で転送する方法であって、
    ネットワークアプリケーションの第1のプラットフォームに依存するバージョンのブラウザ状態およびサーバ状態のうち少なくとも1の状態データおよびセッションデータを表す第1のプラットフォームに依存するスナップショットを生成するステップと、
    前記第1のプラットフォームに依存するスナップショットをプラットフォーム非依存スナップショットに変換するステップと、
    前記プラットフォーム非依存スナップショットを、前記状態データおよびセッションデータを表す第2のプラットフォームに依存するスナップショットに変換するステップと、
    前記ネットワークアプリケーションの第2のプラットフォームに依存するバージョンにおいて、前記第2のプラットフォームに依存するスナップショットを用いて、前記ブラウザ状態およびサーバ状態のうち少なくとも1を再インスタンス化するステップと
    を具備することを特徴とする方法。
  8. 前記第1のプラットフォームに依存するスナップショットを生成するステップは、サーバ状態とブラウザ状態の両方をそれぞれ異なるプラットフォームに依存するスナップショットとして取り込むステップを具備することを特徴とする請求項7に記載の方法。
  9. 前記第1のプラットフォームに依存するスナップショットを生成するステップは、ドキュメントオブジェクトモデル、スクリプトオブジェクト、ブラウザ履歴、ブラウザキャッシュ、およびクッキーのうち少なくとも1を取り込むステップを具備することを特徴とする請求項7に記載の方法。
  10. 前記第1のプラットフォームに依存するスナップショットを変換するステップは、前記プラットフォーム非依存スナップショットを生成するために、前記状態データおよびセッションデータのうち少なくとも1から固有のプラットフォーム非依存名称へ選択的にマッピングするステップを具備することを特徴とする請求項7に記載の方法。
  11. 第1のプラットフォームに依存するスナップショットを変換するステップは、マッピング記述ファイルを用いて、第1のプラットフォームに依存するスナップショットのランタイム状態データを前記プラットフォーム非依存スナップショットのランタイム状態データに変換するステップを具備することを特徴とする請求項7に記載の方法。
  12. 前記第1のプラットフォームに依存するスナップショットを変換するステップは、
    マスターマッピングファイルにアクセスしてマッピング記述ファイルを特定するステップと、
    前記特定されたマッピング記述ファイルを用いて、前記第1のプラットフォームに依存するスナップショットを前記プラットフォーム非依存スナップショットに選択的に変換するステップと
    を具備することを特徴とする請求項7に記載の方法。
  13. 前記第1のプラットフォームに依存するスナップショットを変換するステップは、有限状態機械モデルを用いて、前記ネットワークアプリケーションの第1のプラットフォームに依存するバージョンのプラットフォーム依存表示の構造と、前記ネットワークアプリケーションの前記第2のプラットフォームに依存するバージョンのプラットフォーム依存表示の構造をモデル化するステップを具備することを特徴とする請求項7に記載の方法。
  14. ブラウザを用いて確立されるアクティブセッションのランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョン間で転送する方法であって、
    ブラウザ現状態およびサーバ現状態のうち少なくとも1を含むアクティブセッションの第1のプラットフォームに依存するランタイム状態を、ネットワークアプリケーションの第1のプラットフォームに依存するバージョンから取り込むステップと、
    前記第1のプラットフォームに依存するランタイム状態をプラットフォーム非依存ランタイム状態に変換するステップと、
    前記プラットフォーム非依存ランタイム状態を保存するステップと、
    前記保存されたプラットフォーム非依存ランタイム状態を読み出すステップと、
    前記プラットフォーム非依存ランタイム状態を第2のプラットフォームに依存するランタイム状態に変換するステップと、
    前記第2のプラットフォームに依存するランタイム状態を、前記ネットワークアプリケーションの第2のプラットフォームに依存するバージョンの前記アクティブセッションとしてインスタンス化するステップと
    を具備することを特徴とする方法。
  15. 前記第1のプラットフォームに依存するランタイム状態を取り込むステップは、ブラウザ表示から、前記ネットワークアプリケーションの前記第1のプラットフォームに依存するバージョンの前記アクティブセッションのページおよびデータを抽出するステップを具備することを特徴とする請求項14に記載の方法。
  16. 前記第1のプラットフォームに依存するランタイム状態を変換するステップは、プラットフォーム依存スナップショットの少なくとも一部からプラットフォーム非依存スナップショットへの変換をマッピングするステップを具備することを特徴とする請求項14に記載の方法。
  17. 前記プラットフォーム非依存ランタイム状態を変換するステップは、前記プラットフォーム非依存ランタイム状態の少なくとも一部から前記第2のプラットフォームに依存するランタイム状態へマッピングするステップを具備することを特徴とする請求項14に記載の方法。
  18. 前記第1のプラットフォームに依存するランタイム状態を取り込むステップは、表示ページ中の一部入力されたデータフィールドを特定して、ユーザが取り込みを行った時点の状態を特定するステップを具備することを特徴とする請求項14に記載の方法。
  19. 前記第1のプラットフォームに依存するランタイム状態をプラットフォーム非依存ランタイム状態に変換するステップは、前記プラットフォーム非依存ランタイム状態を生成するために、前記第1のプラットフォームに依存するランタイム状態のデータから固有のプラットフォーム非依存名称へ選択的にマッピングするステップを具備することを特徴とする請求項14に記載の方法。
  20. 前記第2のプラットフォームに依存するランタイム状態をインスタンス化するステップは、前記ネットワークアプリケーションの第2のプラットフォームに依存するバージョンのアクティブセッションにおいて、ユーザが取り込みを行った時点の状態を表示するステップを具備することを特徴とする請求項14に記載の方法。
  21. ブラウザを用いて確立されるアクティブセッションのランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョン間で転送するブラウザセッションモビリティシステムであって、
    ネットワークアプリケーションサーバと、
    前記ネットワークアプリケーションサーバと通信を行う通信装置と、
    前記通信装置と前記ネットワークアプリケーションサーバのうち少なくとも1と通信を行うリポジトリサーバと
    を具備し、
    前記ネットワークアプリケーションサーバは、アクティブセッションを確立するために、ネットワークアプリケーションのプラットフォーム依存バージョンを前記通信装置のブラウザに提供し、
    前記通信装置、前記ネットワークアプリケーションサーバ、および前記リポジトリサーバのうち少なくとも1を用いて、前記アクティブセッションのランタイム状態の取り込みおよびプラットフォーム非依存ランタイム状態への変換が行われることを特徴とするシステム。
  22. 前記リポジトリサーバは、前記プラットフォーム非依存ランタイム状態を保存することを特徴とする請求項21に記載のシステム。
  23. 前記取り込まれたランタイム状態は、前記アクティブセッションのサーバ側ランタイム状態およびブラウザ側ランタイム状態のうち少なくとも1を含むことを特徴とする請求項21に記載のシステム。
  24. 前記アクティブセッションは、プラットフォーム依存スナップショットとして取り込まれることを特徴とする請求項21に記載のシステム。
  25. 前記ネットワークアプリケーションの前記プラットフォーム依存バージョンの前記ランタイム状態は、プラットフォーム非依存スナップショットに変換されることを特徴とする請求項21に記載のシステム。
  26. 前記ネットワークアプリケーションサーバおよび前記リポジトリサーバと通信を行う第2の通信装置をさらに具備し、
    前記プラットフォーム非依存ランタイム状態は前記リポジトリサーバから読み出され、前記ネットワークアプリケーションサーバおよび前記第2の通信装置間で前記アクティブセッションが再インスタンス化されることを特徴とする請求項21に記載のシステム。
  27. 前記ネットワークアプリケーションサーバは、前記アクティブセッションのサーバ側ランタイム状態の取り込みおよび再インスタンス化を行うプラットフォームアダプタモジュールを具備することを特徴とする請求項21に記載のシステム。
  28. 前記通信装置は、前記アクティブセッションのブラウザ側ランタイム状態の取り込みおよび再インスタンス化を行うブラウザセッションモビリティモジュールを具備することを特徴とする請求項21に記載のシステム。
  29. 前記ブラウザセッションモビリティモジュールはブラウザプラグインであることを特徴とする請求項21に記載のシステム。
  30. ブラウザを用いて確立されるアクティブセッションのランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョン間で転送する通信装置であって、
    マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンのランタイム状態を取り込む手段と、
    前記ランタイム状態およびプラットフォーム非依存ランタイム状態間で選択的に変換する手段と、
    プラットフォーム依存ランタイム状態を、前記マルチプラットフォームネットワークアプリケーションの前記プラットフォーム依存バージョンのアクティブセッションとしてインスタンス化する手段と
    を具備することを特徴とする通信装置。
  31. 前記取り込まれたランタイム状態は、アクティブセッションのサーバ側ランタイム状態およびブラウザ側ランタイム状態のうち少なくとも1を含むことを特徴とする請求項30に記載の通信装置。
  32. 前記取り込み手段は、アクティブセッションのランタイム状態を表す状態データおよびセッションデータを取り込むことを特徴とする請求項30に記載の通信装置。
  33. 前記取り込み手段は、ブラウザ表示から、前記マルチプラットフォームネットワークアプリケーションの前記プラットフォーム依存バージョンのアクティブセッションのページおよびデータを抽出することを特徴とする請求項30に記載の通信装置。
  34. 前記変換手段は、プラットフォームに依存する前記ランタイム状態およびプラットフォームに依存しないランタイム状態間でマッピングすることを特徴とする請求項30に記載の通信装置。
  35. 前記変換手段は、プラットフォームに依存する状態データおよびセッションデータのうち少なくとも1と、プラットフォームに依存しないデータ間で選択的に変換することを特徴とする請求項30に記載の通信装置。
  36. 前記変換手段は、前記プラットフォーム非依存ランタイム状態を生成するために、前記プラットフォーム依存ランタイム状態のデータおよび固有のプラットフォーム非依存名称間で選択的にマッピングすることを特徴とする請求項30に記載の通信装置。
  37. 前記インスタンス化手段は、前記マルチプラットフォームネットワークアプリケーションの前記プラットフォーム依存バージョンのアクティブセッションにおいて、ユーザが取り込みを行った時点の状態を表示することを特徴とする請求項30に記載の通信装置。
  38. ブラウザを用いて確立されるアクティブセッションのランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョン間で転送する通信装置であって、
    アプリケーションサーバおよび他の通信装置のうち少なくとも1とネットワークを介して通信するための通信手段と、
    前記他の通信装置と異なる状態で表示するように、前記アプリケーションサーバから送信されるプラットフォーム非依存ランタイム状態をプラットフォーム依存ランタイム状態に変換する変換手段と
    を具備することを特徴とする通信装置。
  39. 前記プラットフォーム依存ランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンのアクティブセッションとしてインスタンス化する手段をさらに具備することを特徴とする請求項38に記載の通信装置。
  40. ブラウザを用いて確立されるアクティブセッションのランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョン間で転送する通信装置であって、
    アプリケーションサーバおよび他の通信装置のうち少なくとも1とネットワークを介して通信するための通信手段と、
    前記他の通信装置と異なる状態で表示するように、前記他の通信装置から送信されるプラットフォーム非依存ランタイム状態をプラットフォーム依存ランタイム状態に変換する変換手段と
    を具備することを特徴とする通信装置。
  41. ブラウザを用いて確立されるアクティブセッションのランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョン間で転送する通信装置であって、
    アプリケーションサーバおよび他の通信装置のうち少なくとも1とネットワークを介して通信可能であり、前記他の通信装置と異なる状態で表示するように変換されたプラットフォーム依存ランタイム状態を受信する手段を具備することを特徴とする通信装置。
  42. ブラウザを用いて確立されるアクティブセッションのランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョン間で転送するサーバ装置であって、
    少なくとも1の通信装置とネットワークを介して通信するための通信手段と、
    前記通信装置から送信されるランタイム状態を保存する手段と
    を具備することを特徴とするサーバ装置。
  43. 前記通信装置から送信されるプラットフォーム依存ランタイム状態をプラットフォーム非依存ランタイム状態に変換する手段をさらに具備し、
    前記保存手段は、前記プラットフォーム非依存ランタイム状態を保存することを特徴とする請求項42に記載のサーバ装置。
  44. ブラウザを用いて確立されるアクティブセッションのランタイム状態を、マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョン間で転送するコンピュータに、
    マルチプラットフォームネットワークアプリケーションのプラットフォーム依存バージョンのランタイム状態を取り込む機能と、
    前記ランタイム状態およびプラットフォーム非依存ランタイム状態間で選択的に変換する機能と、
    プラットフォーム依存ランタイム状態を、前記マルチプラットフォームネットワークアプリケーションの前記プラットフォーム依存バージョンのアクティブセッションとしてインスタンス化する機能と
    を実現させるためのプログラム。
  45. 請求項44に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2003157235A 2002-05-31 2003-06-02 マルチプラットフォームアプリケーションのためのブラウザセッションモビリティシステム Expired - Lifetime JP4391766B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US38443202P 2002-05-31 2002-05-31
US10/404,849 US20050066037A1 (en) 2002-04-10 2003-04-01 Browser session mobility system for multi-platform applications

Publications (3)

Publication Number Publication Date
JP2004062873A true JP2004062873A (ja) 2004-02-26
JP2004062873A5 JP2004062873A5 (ja) 2006-12-28
JP4391766B2 JP4391766B2 (ja) 2009-12-24

Family

ID=34316114

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003157235A Expired - Lifetime JP4391766B2 (ja) 2002-05-31 2003-06-02 マルチプラットフォームアプリケーションのためのブラウザセッションモビリティシステム

Country Status (1)

Country Link
JP (1) JP4391766B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007141235A (ja) * 2005-11-17 2007-06-07 Samsung Electronics Co Ltd ユーザインターフェースを管理する装置及び方法
JP2007188507A (ja) * 2006-01-12 2007-07-26 Samsung Electronics Co Ltd 遠隔ユーザインターフェースの状態情報を保存して復旧する方法及び装置
JP2007193802A (ja) * 2006-01-18 2007-08-02 Samsung Electronics Co Ltd 遠隔ユーザインターフェースの状態情報を保存して復旧する方法及び装置
JP2009277089A (ja) * 2008-05-15 2009-11-26 Hitachi Ltd アプリケーション配信制御システム、アプリケーション配信制御方法、情報処理装置、およびクライアント端末
JP2012514801A (ja) * 2009-01-08 2012-06-28 インターナショナル・ビジネス・マシーンズ・コーポレーション マークアップ言語を通してクライアント・ブラウザ状態のサーバ側ロギングを遂行するための方法
CN111722903A (zh) * 2020-06-16 2020-09-29 北京达佳互联信息技术有限公司 一种数据处理方法、装置、电子设备及存储介质
JP2022504708A (ja) * 2018-10-10 2022-01-13 シトリックス・システムズ・インコーポレイテッド ミラーリングされたsaasアプリケーションセッションを提供するコンピュータシステム

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8521814B2 (en) 2005-11-17 2013-08-27 Samsung Electronics Co., Ltd. Apparatus and method for managing user interface
JP2007141235A (ja) * 2005-11-17 2007-06-07 Samsung Electronics Co Ltd ユーザインターフェースを管理する装置及び方法
JP2010044796A (ja) * 2005-11-17 2010-02-25 Samsung Electronics Co Ltd ユーザインターフェースを管理する装置及び方法
US8150978B2 (en) 2005-11-17 2012-04-03 Samsung Electronics Co., Ltd. Apparatus and method for managing user interface
JP2013041611A (ja) * 2005-11-17 2013-02-28 Samsung Electronics Co Ltd ユーザインターフェースを管理する装置、表示する装置、管理する方法、及び表示する方法
JP2007188507A (ja) * 2006-01-12 2007-07-26 Samsung Electronics Co Ltd 遠隔ユーザインターフェースの状態情報を保存して復旧する方法及び装置
US9094369B2 (en) 2006-01-12 2015-07-28 Samsung Electronics Co., Ltd. Method and apparatus for storing and restoring state information of remote user interface
JP2007193802A (ja) * 2006-01-18 2007-08-02 Samsung Electronics Co Ltd 遠隔ユーザインターフェースの状態情報を保存して復旧する方法及び装置
US8219692B2 (en) 2006-01-18 2012-07-10 Samsung Electronics Co., Ltd. Method and apparatus for storing and restoring state information of remote user interface
JP2009277089A (ja) * 2008-05-15 2009-11-26 Hitachi Ltd アプリケーション配信制御システム、アプリケーション配信制御方法、情報処理装置、およびクライアント端末
JP2012514801A (ja) * 2009-01-08 2012-06-28 インターナショナル・ビジネス・マシーンズ・コーポレーション マークアップ言語を通してクライアント・ブラウザ状態のサーバ側ロギングを遂行するための方法
US9235640B2 (en) 2009-01-08 2016-01-12 International Business Machines Corporation Logging browser data
JP2022504708A (ja) * 2018-10-10 2022-01-13 シトリックス・システムズ・インコーポレイテッド ミラーリングされたsaasアプリケーションセッションを提供するコンピュータシステム
CN111722903A (zh) * 2020-06-16 2020-09-29 北京达佳互联信息技术有限公司 一种数据处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
JP4391766B2 (ja) 2009-12-24

Similar Documents

Publication Publication Date Title
US20050066037A1 (en) Browser session mobility system for multi-platform applications
US9241047B2 (en) System and method for providing virtual web access
RU2589306C2 (ru) Управление сеансом удаленного просмотра
US7890961B2 (en) Method and apparatus for providing desktop application functionality in a client/server architecture
JP2003337794A (ja) 異なる装置上の異なるブラウザ間におけるセッションの保存および移動
EP2254302B1 (en) Method and apparatus for restoring state information of remote user interface
US20080147671A1 (en) System for Running Web Applications Offline and Providing Access to Native Services
JP5050055B2 (ja) モバイルデバイスユーザ経験の仮想化
US20070124506A1 (en) Systems, methods, and media for dynamically generating a portal site map
Britton et al. Transcoding: Extending e-business to new environments
JP2003058498A (ja) セッション管理方法、セッション管理システムおよびプログラム
CA2605838A1 (en) Method and system for executing a normally online application in an offline mode
JPH10257048A (ja) クッキーによる分散ファイル・システム・ウェブ・サーバ・ユーザの認証
KR20060006722A (ko) 단말 기기, 제공 서버, 전자 정보 이용 방법, 전자 정보제공 방법, 단말 기기 프로그램, 제공 서버 프로그램,중개 프로그램, 및 기억 매체
CA2437273C (en) Network conduit for providing access to data services
US20060031398A1 (en) Apparatus, method, and computer product for web-based data management
KR100831392B1 (ko) 웹 브라우징에서 하이퍼텍스트로 연결된 문서의 미리보기서비스 제공 방법 및 시스템
JP4391766B2 (ja) マルチプラットフォームアプリケーションのためのブラウザセッションモビリティシステム
JP4165796B2 (ja) クライアント、データダウンロード方法、プログラム及び記録媒体
EP1368746A1 (en) System and method for realtime-controlling web browser of user
Gray Web server programming
White et al. A lightweight, scriptable, web-based frontend to the SRB
JP2002116972A (ja) 情報閲覧方法及びシステム並びに情報閲覧用プログラムを記憶した記憶媒体
Lardon et al. Towards a unified device characteristics retrieval and propagation: Context proxy presentation
Edition Developer Handbook

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20051130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060602

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090831

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091006

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091008

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4391766

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131016

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term