ウェブベースのモバイルタスクを記録及び再生するためのシステム及び方法
【課題】ウェブベースのタスクを記録及び再生するための方法及び装置を提供する。
【解決手段】記録するセッションの開始を明示的に合図することなくユーザによって今しがた行われたセッション中に実施されたウェブベースのタスクを記録することであって、ユーザ関与無しにセッションの開始を自動的に見つけることを含むこと、記録されたウェブベースのタスクを再生する要求を受信すること、及び、記録されたウェブベースのタスクを再生することを含む。
【解決手段】記録するセッションの開始を明示的に合図することなくユーザによって今しがた行われたセッション中に実施されたウェブベースのタスクを記録することであって、ユーザ関与無しにセッションの開始を自動的に見つけることを含むこと、記録されたウェブベースのタスクを再生する要求を受信すること、及び、記録されたウェブベースのタスクを再生することを含む。
【発明の詳細な説明】
【技術分野】
【0001】
(優先権)
[0001]本特許出願は、2009年12月15日に出願された「System and methods for record & replay of web−based mobile tasks」と題する、対応する仮特許出願第61/286,724号に対する優先権を主張し、この仮特許出願を参照により組み込む。
【0002】
(発明の分野)
[0002]本発明の実施形態は、ユーザによってデバイス上で実施されるタスクの記録及び再生の分野に関する。より詳細には、本発明の実施形態は、モバイルハンドセットユーザのためのウェブベースのタスクの記録及び再生に関する。
【背景技術】
【0003】
(発明の背景)
[0003]モバイルブロードバンド及びアドバンストモバイルプラットフォーム(カリフォルニア州クパティーノのアップル(登録商標)コンピュータからのiPhone(登録商標)、カリフォルニア州マウンテンビューのグーグル(登録商標)からのAndroid(登録商標)、及びWebOSプラットフォームなど)の集まりは、ウェブ関連の日常タスクのためのモバイルデバイス使用の普及を大きく加速した。消費者はますます、自分のスマートフォンを使用して、オンラインで買い物をし、ブログやコメントを書きたいときに書き、動的に変化する特定のオンライン情報(好きなチームが出ている試合の実況情報や、収集している物の最も早く期限切れとなるオークション商品など)の現況をチェックする。
【0004】
[0004]それでもやはり、固定回線の高速接続を有するパーソナルコンピュータ(PC)と比較すると、モバイルデバイスからウェブ関連タスクを行うことは、使い勝手に関するいくつかの懸念を依然として有し、これらの懸念は、このようなモバイルデバイスに内在する二つの特性、即ち、1)より弱く安定性の劣る接続、及び2)小さいフォームファクタを根源とする。
【0005】
[0005]最近の技術進歩にも関わらず、セルラーネットワーク接続は、デバイスがセルのエッジに近いとき及び/又は厳しい干渉があるときは特に、それらに対応する固定回線の接続よりもまだ相対的に遅く安定性が劣る。この結果、ユーザアクション及びインターネット要求/応答のシーケンスを含むウェブセッションの場合は特に、ネットワークレイテンシ及びユーザ待ち時間はより長くより予測可能性が低く、従って、ユーザ体験はより劣る。モバイルデバイスのフォームファクタが小さいこともまた、モバイルデバイスとの対話をずっと困難にする。小さい画面では、表示されたものが読みづらく、或いは正しい位置をクリック/タップするのが難しい。フルサイズのキーボード及び安定したアームサポートがないため、テキストが入力しづらく、或いはデータをあるアプリケーションから別のアプリケーションに移すのが難しい。
【0006】
[0006]このことを念頭に置いて、技術関連ニュースを閲覧しているユーザがgizmodo.comで興味深い記事を見つけ(図1a参照)、自分のブログ上でこの記事を引用してコメントを書きたいと想像してみる。こうするためにユーザは、記事の興味深い段落を強調表示してコピーし、次いでblogger.comに行き、ユーザ名及びパスワードをタイプ入力することによってログインする(図1b参照)。ユーザは次に「新規投稿」をクリックして、新しいブログエントリを作成し(図1c参照)、そこで、gizmodo.com記事からの事前にコピーした段落(場合によっては記事のURLを含む)を貼り付ける(図1d参照)。この一見単純なタスクは、モバイルデバイス上では単純さがずっと低い。その理由は、ユーザがタイプ入力及びコピー/貼付けするのが難しいからだけでなく、デバイスの接続性が変わりやすく時として悪い場合があり、複数のページがゆっくりロードするのをユーザが待機する必要があるからでもある。
【0007】
[0007]これらの問題に対する従来技術の解決法がいくつかある。WebVCRは、ユーザが閲覧ステップを記録及び再生することのできるVCR式のユーザインタフェースを提供する。WebVCRは、複数のナビゲーションステップを必要とするウェブデータにアクセスするためのショートカットを作成するのに使用されるよう意図されており、また、オンラインチュートリアルや電子商取引などのウェブアプリケーション用の土台として使用することもできる。WebVCRには、いくつかの制限がある。まず、WebVCRは、モバイルのウェブベースのタスクを特に対象とはしない。WebVCRは、ユーザがセッション生成を制御していると想定する。即ち、ユーザはWebVCR中でセッションの記録を明示的に開始及び終了する。この結果、WebVCRは、事後の自動セッションタグ付けの必要性、又は効率的なセッション再生の必要性には対処しない。
【0008】
[0008]Smart Bookmarksは、ウェブナビゲーションに対する遡及的な記録の概念を導入する。ユーザは、現在のページをブックマークするようシステムに依頼することができ、システムは、ブックマーク可能なスタートページ、並びに、スタートページから現在ページに行くための一連のコマンドを、過去に遡って検索することになる。Smart Bookmarksにも、制限がある。例えば、遡及的な記録はSmart Bookmarksの一部だが、Smart Bookmarksにおける自動記録はブックマーク可能なスタートページで停止し、これにより、複数のウェブサイトに関係するセッションを自動的に識別することは不可能となる。加えて、WebVCRと同様に、Smart Bookmarksもまた、効率的なセッション再生に対処しない。
【0009】
[0009]CoScripterもまた、ウェブブラウザベースのタスクに関するユーザ対話ステップを記録及び自動再生することのできるシステムである。ユーザは、ブラウザとの自分の対話を記録するよう明示的に要求し、記録された情報をスクリプトとして保存することができる。このようなスクリプトは、他のユーザと共有することができ、後で自動再生することができる。しかし、CoScripterは、先を見越した記録を必要とするという点でWebVCRに類似する。上の2つのシステムのように、CoScripterは、再生時にユーザの対話コンテキストに適応する問題には特に対処せず、そのような再生における効率を重要視しない。
【0010】
[0010]Highlightは、もともとデスクトップユーザ向けに設計されたウェブベースのアプリケーションをモバイルユーザが手動でカスタマイズできるようにするリオーサリング環境を構築する。Highlightは、CoScripterと同様の、例示プログラミング(programming−by−demonstration)ベースの手法を用い、モバイルページ上に含まれるべき内容をユーザが直接指定できるようにする。モバイルウェブを対象とした別の例示プログラミングベースのシステムは、PageTailorであり、これは、ウェブページに対するユーザのカスタマイズを記録し、そのような記録されたカスタマイズを類似のウェブページに自動的に適用する。HighlightもPageTailorも両方とも、対話シーケンスではなく個々のウェブページを対象とすることに留意されたい。
【発明の概要】
【発明が解決しようとする課題】
【0011】
[0011]このように、既存の解決法は、上記の問題に十分に対処できていなかった。ウェブベースのユーザ対話のシーケンスを記録及び再生することに関する従来の研究はあるが、そのような既存の研究は、モバイルウェブを特に対象としておらず、以下の面の1つ又は複数において様々な程度で依然として制限される。
【0012】
1)準備無しの自動化されたタスク記録。記録するセッションの開始を手動で合図することがユーザに求められるのではなく、今しがた完了した退屈なセッションを記録するようユーザがシステムに依頼できるべきである。加えて、システムは、記録すべきセッションを構成する対話イベントを自動的に解明できるべきである。
【0013】
2)記録されたセッションの適応的な再生。記録されたセッションは、類似するがわずかに異なるタスクにも使用できるべきであり、ウェブコンテンツの変化に適切に対応できるべきである。
【0014】
3)記録されたセッションの効率的な再生。モバイルユーザにとって、長い待ち時間は、退屈な対話と同じくらい厄介である。記録されたセッションの再生は、ユーザが前にそのセッションを記録したときよりも遥かによい体験をユーザに提供すべきであり、このよりよい体験は、遥かに短いタスク完了時間を伴うべきである。
【課題を解決するための手段】
【0015】
(発明の概要)
[0012]ウェブベースのタスクを記録及び再生するための方法及び装置を、本明細書に開示する。一実施形態では、この方法は、記録するセッションの開始を明示的に合図することなくユーザによって今しがた行われたセッション中に実施されたウェブベースのタスクを記録することであって、ユーザ関与無くセッションの開始を自動的に見つけることを含むこと、記録されたウェブベースのタスクを再生する要求を受信すること、及び、記録されたウェブベースのタスクを再生することを含む。
【発明の効果】
【0016】
本発明の実施形態は、ユーザによってデバイス上で実施されるタスクの記録及び再生の分野に関する。より詳細には、本発明の実施形態は、モバイルハンドセットユーザのためのウェブベースのタスクの記録及び再生に関する。
【図面の簡単な説明】
【0017】
【図1】a〜d:ブログ/メッセージボードのコメント記入例に関する、ブラウザのスクリーンショットを示す図である。
【図2】a及びb:セッションにタグ付けする、及びセッションを再生するためのユーザインタフェースを示す図である。
【図3】セッション生成に関するイベントシーケンスの図解を示す図であり、イベントは発生時順に並んでいる。
【図4】コンテキスト認識アルゴリズムの一実施形態に関する擬似コードを示す図である。
【図5】セッション再生におけるコンテキスト認識を示す図である。
【図6】優先順位の高い順に並んだ一般化プランの例のリストを示す図である。
【図7】「スマートな」イベント再生の一実施形態に関する擬似コードを示す図である。
【図8】タグ付けされたセッションのリモート実行を示す図である。
【図9】a〜d:「期限切れeBayオークション」例に関する、ブラウザスクリーンショットを示す図である。
【図10】記録されたセッションの例を示す図である。
【図11】a〜d:「エクスプレスチェックアウト」例に関する、ブラウザのスクリーンショットを示す図である。
【図12】コンピュータシステムの一実施形態のブロック図である。
【発明を実施するための形態】
【0018】
[0013]本発明は、以下に提供する詳細な記述、及び本発明の様々な実施形態に関する添付の図面から、より完全に理解されるであろう。しかし、図面は、本発明を特定の実施形態に限定するものと考えるべきではなく、説明及び理解のためのものに過ぎない。
【0019】
[0014]タスクの記録(又はタグ付け)及び再生のためのシステム及び関連する方法について述べる。一実施形態では、このタスクは、モバイルのウェブベースの作業である。一実施形態では、タスクを記録及び再生する技法は、3つの際立った特徴を有する。第1に、これらの技法は事後の自動セッションタグ付けを含むが、これは、記録の開始を最初に合図することなく、今しがた完了したセッションをユーザがタグ付けできるようにし、どんなユーザ介入も無くセッションの開始を自動的に見つけて対話雑音を除去する。第2に、これらの技法は「スマートな」セッション再生を含み、記録されたセッションは、ユーザがセッションをタグ付けしたときからユーザがセッションを再生するときまでの間のコンテキスト上の差に適応し、タグ付けされたセッションのパラメータ化を本質的に可能にする。一実施形態では、「スマートな」セッション再生技法はまた、ウェブページの変化にも適応して、ウェブのダイナミクスに耐えると共にユーザタスクの変化に対応する。第3に、これらの技法はリモートセッション実行を含み、イベントをモバイルデバイスから再実行する代わりに、タグ付けされたセッションの多くの部分がプロキシサーバにおいて再生される。プロキシサーバは、固定回線の高速接続を有する場合がある。このようなリモート実行及び他の最適化により、セッションを再生するための時間は、セッション内の最後のページをロードするのに必要とされる時間程度に短縮される。
【0020】
[0015]一実施形態では、セッション記録及び再生技法は、フロントエンド及びバックエンドコンポーネントを使用して実現され、バックエンドコンポーネントは、前述の(且つ以下の各章で詳細に論じる)際立った特徴を実現し、フロントエンドコンポーネントはユーザとの対話を扱う。
【0021】
[0016]具体的には、フロントエンドコンポーネントはユーザの対話状態及び対話コンテキストを監視するが、対話状態は、本明細書ではいくつかのメンバ変数によって定義され、メンバ変数は、ブラウザ中で現在開いているページと、ブラウザ中で現在開いているページ上の強調表示されたテキストと、クリップボードの内容と、ブラウザ中で現在開いているページに対して行われるフォーム入力と、リソース識別子(例えばURL)入力バー(もしあれば)の現在の値と、のうちの1つ又は複数を含む。
【0022】
[0017]対話コンテキストは、本明細書ではユーザの一番最近の対話状態シーケンスとして定義される。ある対話状態から別の対話状態への遷移は、対話イベントに対応する。フロントエンドコンポーネントは、ブラウザ内から対話イベントを傍受(インターセプト)して、ユーザ対話の状態を綿密に監視する。一実施形態では、以下のタイプの対話イベントがある。すなわち、ページロードイベント(これは、ハイパーリンクをクリックすること、URLバー中でエンターキーを押すこと、若しくはURLバーの内容に基づいてブラウザによって提示されたドロップダウンリストから選択すること、フォームサブミットボタンをクリックすること、又は特定のブラウザツールバーボタンをクリックすること、若しくは何らかのブラウザメニュー項目(例えば「ホーム」や「戻る/進む」ボタン、及びブックマークメニュー)を選択すること、などのユーザアクションの結果として生じるページロードに対応する)、URL入力イベント(これは、ユーザがURLバー中でタイプ入力することに対応する)、テキスト強調表示イベント(これは、ユーザが現在のページ上のテキスト文字列を強調表示することに対応する)、テキストコピーイベント(これは、ユーザが強調表示されたテキストをクリップボードにコピーすることに対応する)、フォーム入力イベント(これは、ユーザが現在のページ上のフォームの入力フィールドに入力することに対応する(フォーム入力イベントは、ユーザが入力フィールドにテキストをタイプ入力することによって、又は入力フィールドにテキストを貼り付けることによって引き起こされる可能性がある))、貼付け入力イベント(これは、フォーム入力イベントの特殊形であり、ユーザが現在のページ上のフォームの入力フィールドにクリップボード内容をコピーすることに対応する)、並びにURLコピーイベント(これは、現在のページのURLをクリップボードにコピーすることに対応する)である。
【0023】
[0018]一実施形態では、全てのタイプのイベントは、それ自体の固有の属性の他に、その開始時と終了時を示す共通の属性も有する。
【0024】
[0019]ページを見た後で当該ページをブックマークするのに似て、ユーザは、今しがた完了した、実施容易ではないと思われるが将来繰り返される可能性が高いであろうタスクを、記録又は「タグ付け」するよう依頼することができる。一実施形態では、ユーザは、この今しがた記録されたセッションに名前を割り当てることもできる(例えば図2(a)参照)。この方式のセッション記録を、本明細書では「事後セッションタグ付け」と呼ぶ。その理由は、「記録」は、ユーザがバックエンドコンポーネントにセッションの記録を開始するよう合図することなく実施され、セッションが完了した後で実施されるからである。
【0025】
[0020]バックグラウンドでは、バックエンドコンポーネントが、ユーザの現在の対話コンテキストを得て、この対話コンテキストから、ユーザが記録及びタグ付けしようと思うセッションをどのイベント及び状態が表すかを決定し、そのようなイベント及び状態を、割り当てられた名前と共に記憶する。
【0026】
[0021]その後、ユーザがフロントエンドユーザインタフェース(例えば図2(b)参照)を介してタグ付けされたセッションを再生しようとするとき、バックエンドコンポーネントは、タグ付けされたセッションに対応する対話状態及びイベントを得て、次いでセッションの記録されたイベントの再生を試みる。しかし、一実施形態では、このような再生は通常、元のイベントの正確な「カーボンコピー」の再実行ではない。これは、現時点でのユーザの対話コンテキスト(従って、ユーザの意図するタスク)が、ユーザがセッションタグを作成したときとは異なる可能性があるからである。もう1つの理由は、セッションがタグ付けされたときにユーザが訪れたウェブページが、それ以来、いくつかのイベントの一語一句違わぬ再生がもはや意味を成さない(例えば存在しない句を強調表示するなど)までに変化した可能性があることである。一実施形態では、バックエンドコンポーネントは従って、ユーザコンテキスト及びウェブ内容の変化に適応するために、イベント再生における「スマートさ」を必要とする。
【0027】
[0022]一実施形態では、バックエンドコンポーネントは、セッション再生において手動ユーザ対話の忠実な模倣を目標としない。そうではなく、タグ付けされたセッションのより効率的な(従って、より使い勝手のよい)再生のために、セッションのほとんどをリモート実行することを含めた様々なアプローチを活用する。
【0028】
[0023]以下の記述では、本発明のより完全な説明を提供するために多くの詳細を示す。しかし、これらの具体的詳細がなくても本発明を実施できることは、当業者には明らかであろう。他の場合では、本発明を曖昧にするのを避けるために、周知の構造及びデバイスについては詳細に示すのではなくブロック図の形で示す。
【0029】
[0024]後続の詳細な記述のいくつかの部分は、コンピュータメモリ内のデータビットに対する操作の、アルゴリズム及び象徴表現によって提示する。これらのアルゴリズム的記述及び表現は、データ処理技術の当業者が他の当業者に自身のタスクの実質を最も効果的に伝えるために使用される手段である。アルゴリズムは、ここでは、また一般的には、所望の結果につながる首尾一貫した一連のステップであると考えられる。これらのステップは、物理量の物理的操作を必要とするステップである。必ずしもそうとは限らないが通常は、これらの量は、記憶、転送、結合、比較、及び他の方法で操作することのできる電気的又は磁気的信号の形をとる。主に一般的な慣例の理由で、これらの信号をビット、値、要素、記号、文字、用語、数字などとして言及するのが時として好都合であることが証明されている。
【0030】
[0025]しかし、これら及び類似の用語は全て、適切な物理量に関連付けられるべきであって、単にこれらの量に適用される好都合なラベルに過ぎないことを念頭に置くべきである。以下の考察から明らかなように特に別段の指定がない限り、この記述全体を通して、「処理する」、「計算する」、「算出する」、「決定する」、又は「表示する」などの用語を利用した考察は、コンピュータシステムのレジスタ及びメモリ内の物理的(電子的)量として表されるデータを操作して、コンピュータシステムメモリ若しくはレジスタ内、又は他のそのような情報記憶、伝送、若しくは表示デバイス内で同様に物理量として表される他のデータに変換するコンピュータシステム又は類似の電子計算デバイスの、アクション及びプロセスを指すことを理解されたい。
【0031】
[0026]本発明はまた、本明細書の動作を実施するための装置に関する。この装置は、必要とされる目的のために特に構築されたものであってもよく、或いは、コンピュータに記憶されたコンピュータプログラムによって選択的にアクティブ化又は再構成される汎用コンピュータを含んでもよい。このようなコンピュータプログラムは、コンピュータ可読記憶媒体に記憶することができ、コンピュータ可読記憶媒体は、以下のものに限定されないが、フロッピー(登録商標)ディスクや光ディスクやCD−ROMや光磁気ディスクを含めた任意のタイプのディスク、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気若しくは光学カード、又は、電子的命令を記憶するのに適した任意のタイプの媒体などであり、これらはそれぞれコンピュータシステムバスに結合される。
【0032】
[0027]本明細書に提示するアルゴリズム及び表示は、どんな特定のコンピュータ又は他の装置にも本質的に関係しない。本明細書の教示に従ったプログラムと共に様々な汎用システムを使用することもでき、或いは、必要とされる方法ステップを実施するためのより特殊化された装置を構築するのが好都合であることが判明する場合もある。これらの様々なシステムに必要とされる構造は、以下の記述から明らかになるであろう。加えて、本発明は、特定のプログラミング言語に関して述べるものでもない。様々なプログラミング言語を使用して、本明細書に述べる本発明の教示を実施することができることは、理解されるであろう。
【0033】
[0028]機械可読媒体は、機械(例えばコンピュータ)によって読取り可能な形で情報を記憶又は伝送するための任意の機構を含む。例えば、機械可読媒体は、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイスなどを含む。
【0034】
(概観)
[0029]タスクの記録(又はタグ付け)及び再生のためのシステム及び関連する方法について述べる。一実施形態では、この方法は、記録するセッションの開始を明示的に合図することなくユーザによって今しがた行われたセッション中に実施されたウェブベースのタスクを記録することであって、ユーザ関与無しにセッションの開始を自動的に見つけることを含むこと、記録されたウェブベースのタスクを再生する要求を受信すること、及び、記録されたウェブベースのタスクを再生することを含む。
【0035】
[0030]一実施形態では、ウェブベースのタスクを記録することは、ユーザの対話状態及び対話コンテキストを監視することであって、対話コンテキストが一番最近の対話状態シーケンスであること、並びに、ブラウザ内から対話イベントを傍受することを含み、各対話イベントは、ある対話状態から別の対話状態への遷移に対応する。一実施形態では、ウェブベースのタスクを記録することは、イベントストリームをセグメント化すること、タスクに対して影響を有さないイベントをイベントストリームから除去して、雑音除去されたイベントストリームを生み出すこと、セグメント化された雑音除去済みイベントストリーム中のイベント間の依存関係を決定すること、及び、イベントの最後のセグメントから遡って依存連鎖を横断して、イベントを再生可能セッションの一部として雑音除去されたイベントストリームから識別することを含む。
【0036】
[0031]一実施形態では、イベントストリームをセグメント化することは、イベントストリーム中のイベント間の時間レイテンシに基づいて実施される。一実施形態では、イベントストリームをセグメント化することは、明示的なユーザ入力アクションに基づいて実施される。
【0037】
[0032]一実施形態では、イベントをイベントストリームから除去することは、ユーザ関与無しに行われる。一実施形態では、イベントをストリームから除去することは、タスクにとって重要でないユーザナビゲーションの結果として生じるイベントを除去することを含む。
【0038】
[0033]一実施形態では、依存連鎖を横断することは、強調表示及びコピー操作と、コピー及び貼付け操作と、入力及びサブミット操作とからなるグループから選択されるアクションの1つ又は複数の対を識別することを含む。
【0039】
[0034]一実施形態では、この方法は、タスクを表すセッションを一般化して、このセッションを、セッションが記録されたときに使用されたコンテキストとは異なるコンテキストに適用可能にすることを更に含む。一実施形態では、セッションを一般化することは、セッションを抽象化することを含む。
【0040】
[0035]一実施形態では、記録されたウェブベースのタスクを再生することは、記録されたウェブベースのタスクを表す記録済みセッションのコンテキストを、セッションが記録されたときのユーザに関連する第1の対話コンテキストから、ユーザの現在の対話コンテキストに適応させて、ユーザの現在の対話コンテキストを用いた記録済みセッションを再生することを含む。一実施形態では、コンテキストを適応させることは、記録されたセッション内のどの状態が、タスクの再生要求が行われた時点のユーザのコンテキストに合致するかを決定することを含む。一実施形態では、記録されたウェブベースのタスクを再生することは、記録されたウェブベースのタスクの一部である少なくとも1つのウェブページの変化に適応することによって、記録されたウェブベースのタスクを表す記録済みセッションを適応させることを含む。
【0041】
[0036]一実施形態では、記録されたウェブベースのタスクを再生することは、記録されたウェブベースのタスクを表す記録済みセッションを、プロキシサーバを使用してリモートに再生することを含む。一実施形態では、記録されたウェブベースのタスクを表す記録済みセッションを、プロキシサーバを使用してリモートに再生することは、記録されたセッションをユーザの最新の対話状態と共にプロキシサーバに送信すること、1つ又は複数のサーバに1つ又は複数の要求を送信して1つ又は複数のサーバから応答を受信することを含めて、ユーザの対話状態からの状態を用いてイベントをプロキシサーバによって再生すること、プロキシサーバ上の現在の対話状態と共に、セッション中の最後のページロードイベントに対応する最後のページをプロキシサーバによって送信すること、及び、最後のページによって指定されるリソースをロードして、セッションを終了する1つ又は複数のイベントの再生を完了することを含む。
【0042】
(セッション生成)
[0037]一実施形態では、セッションの生成は、事後方式で行われる。すなわち、ユーザは、対話のシーケンスを行う前に、記録を開始するようシステムに合図する必要はない。そうではなく、ユーザは、セッションを終了した後すぐに、ユーザが行ったセッションをマーク付けするようシステムに依頼することができる。これは少なくとも2つの利益を有する。第1に、ユーザは、退屈なウェブセッションが開始する直前よりも、そのようなセッションを行った直後の方が、セッションタグを作成しようという気になると考えられている。これは、セッションの開始時には、ユーザはまだ、セッションの退屈さ又は再使用可能性を認識していなかったか、タスクを中断せずに完了させることに集中していなかった場合があるからである。第2に、このようなセッションの多くは、事前に準備されるようにして記録されるのには適さないので、事後セッション生成は重要である。これは、このようなセッションを繰り返すことは、望まれない副作用(オンラインストアから小物を購入したり、公開フォーラムにコメントを残したりするなど)をもたらす可能性があるか、或いはユーザにとって退屈過ぎる(何らかのタイプ入力を必要とする、及び/又はウェブページの遅いロードを待機する必要があるなど)からである。
【0043】
ユーザが今しがた実施したセッションをタグ付けするようシステムに要求すると、システムは、どのユーザアクションが、今しがた終了したユーザのタスクの構成要素であるかを識別する必要がある。これは2つのサブ目標を含む。第1のサブ目標は、本明細書では「開始状態認識」と呼ぶが、これは、監視された対話イベントのシーケンスから、意図されたタスクの開始に対応する状態を識別することである。第2のサブ目標は、意図されたタスクの開始状態と、意図されたタスクの終了状態との間の雑音イベントを除去することであり、終了状態は、ユーザがセッションタグの作成を要求するときの現在対話状態である。
【0044】
[0038]図3に、セッション生成に関するイベントシーケンスを示す。図3を参照すると、意図されたタスクの終了状態の後で、セッションタグ作成要求301が発生する。また、雑音イベントを含めてイベントが発生時順に並んだ、いくつかの状態も示す。
【0045】
[0039]一実施形態では、以下の高レベルの順序付けられたステップを含むアルゴリズムを使用して、開始状態認識及び雑音イベント除去が実施される。
【0046】
1)イベントシーケンスを複数のセグメントに分割する(分割)。
【0047】
2)各メンバ変数を直接に決定するイベントを、関連ありとしてマークする(マーク)。
【0048】
3)タスクに関連のないイベントを各セグメントから除去する(除去)。
【0049】
4)関連セグメントから非関連セグメントに関連性を拡張する(拡張)。
【0050】
5)結果として得られたイベントを、些細なナビゲーションシーケンスを除去することによって最適化する(最適化)。
【0051】
[0040]アルゴリズムが完了した後には、全ての関連セグメント(それぞれ、雑音イベント除去済み)がタグ付けされたセッションの状態及びイベントを形成し、最も早い関連セグメントの第1の状態がセッションの開始状態である。
【0052】
(分割)
[0041]分割操作は、ユーザの対話イベントを小さいグループ又はセグメントに分ける。同じセグメント内のイベントは相互に密接に関係し、通常、隣接する任意の2つのイベント間には因果関係がある。例えば、あるセグメントは、blogger.comホームページに対するページロードイベントと、それに続く、このページのユーザ名フィールド中でのフォーム入力イベントとからなる場合がある。
【0053】
[0042]一実施形態では、分割操作は、分割イベントを識別することによって実施される。一実施形態では、各分割イベントは、その前後(それ自体を含む)のイベントを異なるセグメントに分離する。一実施形態では、2つのタイプの分割イベントがある。第1のタイプの分割イベントはURLサブミットイベントであり、これは、ユーザがURLアドレスを明示的にタイプ入力することによって、又はユーザがブックマーク項目を選択するか「ホーム」ボタンをクリックすることによって引き起こされる。第2のタイプの分割イベントは、その開始時と、前のイベントの終了時との間の時間的隔たりが異常に大きいイベントである。一実施形態では、通常生じる時間的隔たりよりもいくらか大きい(例えば2倍、3倍など)時間的隔たりは異常に高いとしてマークされるように、時間的隔たりが異常に大きいかどうかの判定は、イベント間で通常生じる相対的な時間長に基づくことができる。この2つのタイプのイベントにおいて分割することの根拠は、これらのイベントが、ユーザがあるタスクから別のタスクに切り替えたかもしれないことを示す可能性が高いからである。
【0054】
(マーク)
[0043]マーク操作は、各メンバ変数を直接に決定するイベントを、関連ありとしてマークする。例えば、最終状態のドキュメントをロードするページロードイベントは、関連ありとしてマークされる。他のマークされるイベントは、最後のイベントセッションの最終状態のクリップボード内容を設定するテキストコピーイベント、及び、セッションの最後のイベントの最終状態のURLバー内容を設定するURL入力イベントである。
【0055】
(除去)
[0044]除去操作は、前述の分割操作から導出された各セグメントから、現在のタスクに関係のないイベントが除外されるようにする。このような非関連イベントは主に、ユーザ対話における雑音又は間違いの結果であると想定される。除去操作は、分割操作の後で実施される。さもなければ、セグメント化に悪影響を及ぼすことがある。
【0056】
[0045]一実施形態では、セッション生成アルゴリズムは、雑音イベント及び重要でないナビゲーションという、2つのタイプの非関連イベントを対象とする。一実施形態では、除去操作は、まず全ての雑音イベントを除去し、次いで、重要でないナビゲーションがあればそれに関係する全てのイベントを除去する。一実施形態では、イベントは、関連ありとしてまだマークされておらず、以下の条件のうちの1つを満たす場合に、雑音イベントとして定義される。
【0057】
イベントは、対応するページロードイベントがどのセグメント中にもない、フォーム入力イベント又は貼付け入力イベントである。本明細書における「対応するページロードイベント」とは、入力イベントのターゲット入力フィールドを含むフォームのサブミットによって引き起こされるページロードを意味する。このような雑音イベントは、フォームへのユーザ入力が途中で中止されることによって引き起こされる場合がある。
【0058】
イベントは、テキストコピーイベント又はURLコピーイベントであり、このイベントと次のコピーイベントとの間に、(雑音でない)貼付け入力イベントがない。このようなイベントは、クリップボードにコピーしたテキスト値が貼付けに全く使用されないうちに置き換えられるので、雑音と考えられる。
【0059】
イベントは、テキスト強調表示イベントであり、このイベントと、同じページ上の次のテキスト強調表示イベントとの間に、(雑音でない)テキストコピーイベントがない。
【0060】
イベントは、URL入力イベントであり、このイベントと次のURL入力イベントとの間に、対応するページロードイベント又は(雑音でない)URLコピーイベントがない。このような雑音イベントは、ブラウザのURL入力バー中でのユーザ入力が途中で中止されることによって引き起こされる。
【0061】
[0046]一実施形態では、雑音イベントの除去は、上記の条件のうちの1つにそれぞれが対応する、4つの順序付けられた経路中で実施されることに留意されたい。
【0062】
(拡張)
[0047]拡張操作は、マーク操作中に関連ありとしてマークされたイベントから、他のイベントに関連性を拡張する。まず、所与の関連イベントについて、拡張操作は、同じセグメント中の他の全てのイベントもまた関連ありとしてマークし、次いで、すでに関連ありとしてマークされたセグメントから他のセグメントに関連性を反復的に拡張する。新しい関連セグメントが見つからなくなったとき、反復は停止する。一実施形態では、関連性は、以下のイベントの対のうちの少なくとも1対が2つのセグメントにまたがって存在する場合に(セグメント中で発生する対のイベントのうちのいずれかが、すでに関連ありとしてマークされている)、あるセグメントから別のセグメントに拡張することができる。すなわち、テキスト強調表示とテキストコピーのイベント対、テキストコピーと貼付け入力のイベント対、URLコピーと貼付け入力のイベント対、URL入力とページロードのイベント対、及びURL入力とURLコピーのイベント対である。これは本質的に、セグメントにまたがって前方と後方の両方にデータ依存性を拡張する。
【0063】
(最適化)
[0048]最適化操作は、関連のあるイベントのうち、些細なナビゲーションシーケンスを除去する。些細なナビゲーションシーケンスは、本明細書では、1)すぐ後に続くイベントの発火に、又はその特定のイベントをトリガした後の状態に影響を及ぼすことなく除去できるイベントシーケンスであって、2)同じイベントシーケンスが、フォームのサブミットに対応するどんなページロードイベントも含まないものとして定義される。
【0064】
[0049]些細なナビゲーションシーケンスの一例は、単純なナビゲーション循環である。ユーザは、ページ上のハイパーリンクをクリックし、次いでブラウザの「戻る」ボタンを押す。別の例は、ブックマークされた項目を例えば選択することによって他の場所にナビゲートする直前の、些細なページロードである。
【0065】
[0050]セッション生成(タグ付け)アルゴリズムの結果は、ユーザがタグ付けしようと思うタスクに関連があると考えられる対話イベント(及び対応する結果状態)のシーケンスである。タグ付けアルゴリズムは相対的に単純であり実行中に適用することができるが、一実施形態では、他の後処理がかなりの量の時間を要する場合があり、このような後処理は、オフラインでモバイルデバイスの外において実施される。このような後処理の一部を、本明細書では、タグ付けされたセッションの一般化と呼ぶ。簡単に言えば、一般化は、タグ付けされたセッションを、ユーザがセッションタグを作成したコンテキストとはわずかに異なるコンテキストの、他の類似するタスクに適用可能にするために使用される技法である。
【0066】
[0051]一般化は、タグ付けされたセッションを後で再生することを理解する鍵なので、セッション再生について論じる前に、一般化について以下に詳細に論じる。
【0067】
(一般化)
[0052]前にタグ付けしたセッションを再生する要求をユーザが生成するとき、多くのことがその後変化している可能性があり、それにより、タグ付けされたセッション中の各イベントを100%忠実に再生することが不可能であるか又は無意味となる。例えば、eBay.comのホームページの内容は頻繁に変わる。ましてや、特定のオークションカテゴリの最も早く期限切れになる商品を含むページの内容、並びにURLは、変わってしまっている場合がある。
【0068】
[0053]一般化は、タグ付けされたセッションの状態を抽象化するプロセスである。結果として得られる抽象状態を、本明細書では一般化状態と呼び、元の状態を、本明細書では具体的状態と呼ぶ。従って、具体的イベントと一般化イベントとがある。
【0069】
[0054]一実施形態では、状態は5つのメンバ変数(ドキュメント、URL入力、フォーム入力、強調表示テキスト、及びクリップボード内容)からなるので、状態の一般化は、最終的には各状態のメンバ変数の一般化である。各メンバ変数はそれ自体の一般化メソッドによって一般化され、対話状態の5つの一般化メソッドが、その状態の一般化プランを構成する。
【0070】
[0055]一般化メソッドの関数の1つは、具体的イベント、及び具体的イベントのコンテキストをとって、具体的イベントを一般化イベントに変換することである。各一般化メソッドは逆関数も有し、この逆関数は、コンテキスト(具体的状態及びイベントからなる)及び一般化イベントをとって、一般化イベントを具体的イベントに変換する。この逆関数を、本明細書ではインスタンス化と呼ぶ。
【0071】
[0056]一般化メソッドは、状態を入力として抽象状態を生み出す。状態は、その一部としてウェブドキュメントを含むことができる。
【0072】
[0057]以下は、一般化メソッドの例のリストである。
【0073】
NOGEN:これは、全ての状態メンバ変数に適用可能な特別な一般化メソッドである。このメソッドは、どんな一般化も行わない。すなわち、具体的イベントを一般化するとき又は一般化イベントをインスタンス化するときに、何も変更しない。
【0074】
ANY:これもまた、全ての状態メンバ変数に適用可能な特別な一般化メソッドである。このメソッドは、メンバ変数のどんな値も(値が設定されていないときでさえ)相互に等価であると考える。
【0075】
BIN:これもまた、全ての状態メンバ変数に適用可能な特別な一般化メソッドである。このメソッドは、状態メンバ変数の値が設定されているか否かの2値状態を区別するだけである。従って、この関数は、状態に適用されたときに真又は偽を返す。
【0076】
CLK_A:これは、ページ内のハイパーリンク、フォームボタン、又はリスト項目をその後クリックすることに基づく、ドキュメント変数に対する一般化メソッドである。ハイパーリンク又はリスト項目xの場合は、ドキュメントは「URLxへのリンクを含む」に抽象化され、フォームサブミットボタンの場合は、ドキュメントは「アクションx及び入力項目名yを有するフォームを含む」に抽象化される。
【0077】
CLK_T:これは上と同様だが、例外として、ハイパーリンクの場合は、ドキュメントは「アンカーテキストxを有するハイパーリンクを含む」に抽象化される。フォームボタンの場合は、ドキュメントは「アクションx及びサブミットボタン値y(又は画像URIz)を有するフォームを含む」に抽象化される。リストアイテムの場合は、ドキュメントは、「URLが埋め込まれテキストラベルxを有する、リスト項目を含む」に抽象化される。
【0078】
CLK_P:これは上と同様だが、例外として、ハイパーリンク、フォームボタン、及びリスト項目は、ドキュメント中のそれらのxpathによって表され、xpathはHTMLドキュメント技術で周知である。
【0079】
HL_PATH:これは、強調表示テキストを含むテキストノードのxpath、並びにテキストノード内における強調表示テキストのオフセットに基づく、強調表示変数に対する一般化メソッドである。
【0080】
HL_TREE:これは上と同様だが、例外として、xpathは、ドキュメント自体のルートではなくドキュメントのサブツリーのルートから開始される。
【0081】
FI_1:これは、フォーム入力変数に対する一般化メソッドである。フォーム入力先が、「アクションx及び入力フィールド名yを有するフォーム」に抽象化される。
【0082】
URL_1:これは、URL入力変数に対する一般化メソッドである。「http://www2.xyz.com/path1/path2/...」の形の完全なURLが、「xyz.com/path1」に抽象化される。
【0083】
[0058]他の一般化メソッド、特に、ドキュメントの内容に基づく一般化メソッドを使用することもできる。例えば、一実施形態では、ある一般化メソッドは、同じマップアドレスを含むか又は多数の画像を共に含む2つのドキュメントを、同じ一般化ドキュメントに一般化する。
【0084】
[0059]図6に、前述の一般化メソッドを使用したサンプル一般化プランのリストを示す。各状態メンバ変数につきいくつかの異なるメソッドがあってもよいが、多数のメソッド組合せは実行不可能であるか又は冗長なので、実際的な一般化プランの数は指数関数的に大きくはないことに留意されたい。図6を参照すると、表中の一般化プランは、それらが生み出す一般化状態の「忠実度」(元の具体的状態に対する)の順に並んでいる。
【0085】
[0060]セッションがタグ付けされると、同様の一般化プランリストを使用してその状態が一般化される(例えば図5参照)。元の各具体的状態につき、結果は、元の状態に対する忠実度の高い順の一般化状態のリストである。一般化プランは、1つ又は複数の状態を一般化するのに失敗する場合があることに留意されたい(図5のチャート中の「x」)。
【0086】
(セッション再生)
[0061]上に論じたように、タグ付けされたセッションの再生をユーザが要求するとき、ユーザは通常、タグ付けされたセッションの最初から全く同じ対話シーケンスを繰り返すよう求めているのではない。実際、ユーザが自分のセッションの開始と考えていたものは、システムがタグ付けアルゴリズムを通して推論したものとは異なる可能性がある。従って、セッション再生ロジックが、ユーザが再生を要求した時点でのユーザのコンテキストを自動的に決定し、タグ付けされたセッション内のどの状態がそのコンテキストに合致するかを決定することが重要である。合致する状態が、タグ付けされたセッション中の後続イベントを1つずつ再生するための開始点となる。
【0087】
[0062]記録されたセッションの範囲内で、コンテキストは、ユーザによるブラウザとの最新の対話を表す対話状態(並びに対応するイベント)のシーケンスとして定義される。シーケンスの長さはカスタマイズ可能だが、通常は短い(例えば1回の実施において8つ)。コンテキスト中で最も重要な情報は、シーケンス中で最後の(すなわち最新の)対話状態である。
【0088】
[0063]コンテキストCの最新状態をSlとし、Cのi番目の状態をSiとし、優先順位の高い順に並んだ一般化プランのリストをGPLとし、一般化プランgpを状態Siに適用することから導出される一般化状態をSigpとする。
【0089】
[0064]図4の擬似コードは、コンテキスト認識のためのアルゴリズムの一実施形態を記述するものである。本質的に、このアルゴリズムは、最も好ましいものから最も好ましくないものまで、サポートされる各一般化プランをとり、コンテキストの最新状態に適用して一般化状態を生み出す。そのような一般化状態(Slgp)が存在する場合は、そのような一般化状態が、同じプランをタグ付けされたセッションの状態のうちの1つに適用することから導出される一般化状態と等しいかどうかチェックする。少なくとも1つのそのような状態が存在する場合は、そのような状態のうちの第1の(最も早い)状態が、合致状態として返される。どの一般化プランも一般化状態の合致を生み出すことができない場合は、アルゴリズムは、タグ付けされたセッションの第1の状態を合致状態として返す。これは、タグ付けされたセッションを最初から再生する必要があることを示す。
【0090】
[0065]一実施形態では、状態Slの一般化は、状態自体とコンテキストCとの両方を入力とすることに留意されたい。これは、いくつかの一般化メソッドが、状態のメンバ変数を一般化する際に追加の情報を使用する必要があるからである。同じことは、タグ付けされたセッション中の状態が一般化されるときにも当てはまる。
【0091】
[0066]図5は、コンテキスト認識プロセスのより説明的な描写である。セッションがタグ付けされると、その状態が一般化プランによって抽象化される。いくつかのプランから導出された一般化状態は、元の具体的状態に対して高い忠実度を維持するが、他の一般化状態は、ずっと抽象化され、具体的状態の多くの際立った特色を失う。ユーザがセッションの再生を要求すると、ユーザの最終状態が取り出され、最終状態に対して最も高い忠実度を維持する一般化状態の合致を見つける努力がなされる。
【0092】
[0067]セッション再生の開始点を決定する他、コンテキスト認識はまた、ユーザが自分の再生したいタグ付けされたセッションを識別するのを補助するのに用いることもできる。これは、ユーザが全てのタグ付けされたセッションのリストを開いたときに、バックエンドシステムは、ユーザのコンテキストとの高忠実度の合致をそれぞれが有するタグ付けされたセッションのセットを識別することができるからである。このタグ付けされたセッションのセットは、次いで、より目立つように表示して(例えば強調表示するか又はリストの先頭に昇格させて)、ユーザがそれらの位置を突き止めるのを補助することができる。これにより、作成されたタグ付け済みセッションが数十個又はそれ以上あるときにシステムの使い勝手がよりよくなる可能性がある。
【0093】
[0068]タグ付けされたセッション内の合致状態が識別されると、残りのセッション再生プロセスは、ユーザの対話コンテキストから開始し、タグ付けされたセッション中の合致状態の後に続く各イベントを再生する。
【0094】
[0069]図7は、「スマートな」イベント再生のためのアルゴリズムの擬似コードの一例である。図7を参照すると、アルゴリズムの2つのwhileループのうち、外側のループは、タグ付けされたセッションのイベントを通して(合致状態から始まって)反復し、各イベント(Et)につき、そのイベントを再生することを試みる。イベントの再生が失敗した場合は、プロセス全体がアボートし、例外が投げられる。
【0095】
[0070]複雑さの多くは、またセッション再生アルゴリズムの「スマートさ」の源は、内側のwhileループ中にある。内側のループは、タグ付けされたセッション中の次の状態(Su)を首尾よく一般化した各一般化プラン(gp)を、優先順位の高い順にチェックする。gpから、タグ付けされたセッション中の元のイベントEtのタイプに基づいて、一般化メソッド(gm)並びに一般化イベント(Eg)を得る。次いで、現在の具体的状態Scを用いてEgをインスタンス化するようgmに依頼する。このようなインスタンス化が成功した場合は、得られた具体的イベント(Ec)を使用して、更新された現在の具体的状態を導出する。
【0096】
[0071]タグ付けされたセッション中のイベントは、モバイルデバイスから1つずつ再生することができるが、そのような再生は、インターネットへの固定回線の高速接続を有し計算容量がより大きいプロキシサーバにおいて実行する方がよい場合がある。このようなプロキシサーバにおいてタグ付けされたセッションをリモート再生することで、より遅くレイテンシの長いワイヤレスアクセスネットワークの中を通る要求の数及びデータの量が低減され、場合によっては最小限に抑えられる。また、各イベントの「スマートな」再生に関係する処理も高速化される。この結果、このようなリモート実行によってタグ付けされたセッションを再生することは、遥かに短時間で済み、ユーザ体験を改善する。
【0097】
[0072]図8に、タグ付けされたセッションのリモート実行に関係する操作を示す。図8を参照すると、まず、タグ付けされたセッションは、ユーザの最新の対話状態と共に、モバイルハンドセット801からプロキシサーバ802に送られる(1)。次に、プロキシサーバ802は、前述の手順を使用して、合致する状態の後に続くイベントを再生する。このプロセスの間、プロキシサーバ802は、1つ又は複数のウェブサーバ803に要求を送り、そのような(1つ又は複数の)サーバから応答を受信する(2)。最後のページロードイベントで、プロキシサーバ802は、ウェブサーバ803のうちの1つからページを得て、次いで、プロキシサーバ802上の現在の対話状態と共に、ページをモバイルハンドセット801に渡す(3)。次いでモバイルハンドセット801は、最後のページのリソースをロードし、残りのイベントの再生を完了する。ステップ(2)では、ページロードイベントのために、プロキシサーバ802はページのHTMLテキストをダウンロードするだけで済み、画像やスクリプトなどのリソースをダウンロードする必要はないことに留意されたい。
【0098】
[0073]ユーザがタグ付けされたセッションを手動で実施することと比較して、リモート実行によるセッション再生は、以下の理由でより効率的である。すなわち、ページのレンダリングがより少なく、モバイルデバイス上では最後のページをレンダリングするだけで済むことと、ウェブサーバからダウンロードされるデータがより少なく、最後のページを除いては、ページに埋め込まれたダウンロードすべきリソースがないことと、より遅くよりレイテンシの長いワイヤレスアクセスネットワークの中を通る要求の数及びデータの総量が、より少ないことである。最後のページ、それに加えてシステムの少量のオーバヘッド(タグ付けされたセッション及び対話状態)が、モバイルデバイスとプロキシサーバとの間で送信される。
【0099】
[0074]以下の図10に、テキスト形式で記憶された記録済みセッション(後述する期限切れeBayオークションの例についての)を示す。図10を参照すると、セッションは、10個の状態(初期状態(この場合では、デフォルト開始状態である状態0)を含む)及び9個のイベントを有する。
【0100】
(サンプル使用ケース)
(自発的ブログ記入)
[0075]自発的ブログ記入については上に述べた。この使用ケースでは、ユーザがセッションのタグ付けを要求すると、システムは、ユーザがgizmodo.comホームページを開いたときからセッションが開始されたと見なすことになる可能性が高い。しかしその後、ユーザが別のウェブサイトに行き、記事内の何らかのテキストを強調表示し、自発的ブログ記入セッションの再生をシステムに要求すると、システムは、「Gen Plan 6(図6参照)」が、ユーザの現在状態と、Gizmodo記事を強調表示した後のユーザの状態とを同じ一般化状態に抽象化する一般化プランであると認識する。この場合、システムは、ここから開始して残りのイベントを再生する。
【0101】
(期限切れeBayオークション)
[0076]この例では、ユーザが特定の収集品(例えばアンティーク印章)に関心があり、1〜2分の自由時間があるときはいつでも、現在何がeBayでオークションにかけられているかチェックしたいと思っていると考えてみる。ユーザは、eBayのホームページに行き、「アンティーク印章」とタイプ入力し、eBayで検索することができる(図9(a))。検索結果が新規ページにロードされた後(図9(b))、ユーザは、オークション商品を期限切れ時刻でソートし(図9(c))、最後に、最も早く期限切れになる商品に関するページをクリックして開く(図9(d))。
【0102】
[0077]この使用ケースでは、システムは、セッションの開始を、ユーザがebay.comホームページに行くときとして正しく見なす。ユーザが現在ランダムなウェブサイトにいるときにセッションの再生を要求すると、システムは、タグ付けされたセッションの第1の状態から開始する。その理由は、どの一般化プランも、他のいずれかの状態及びユーザの現在状態を全く同様に抽象化することができないからである。
【0103】
(エクスプレスチェックアウト)
[0078]この例では、ユーザが時々オンラインショッピングサイトを使用して小物を購入すると考えてみる(図11(a))。ユーザは、ショッピングカートに行き、欲しい商品を見つけ(図11(b))、精算ボタンをクリックする。これにより、ユーザは配送及び支払情報を入力するためのフォームに導かれ(図11(c))、最後に自分の注文の最終見直しのためのページに行く(図11(d))。画面上では(図11(c))、顧客名や配送情報などいくらかの情報はすでに自動的に記入されているが、ユーザはなお支払関連情報を記入する必要があることに留意されたい。システムは、amazon.comなどのサイトにおける「エクスプレスチェックアウト」に類似するものを様々な理由でサポートしないサイトの場合には、それを自分で生み出すオプションをユーザに提供する。
【0104】
(コンピュータシステムの一例)
図12は、本明細書において説明される1つ又は複数の操作を実行することができる例示的なコンピュータシステムを示すブロック図である。図12を参照すると、コンピュータシステム1200は、例示的なクライアント又はサーバコンピュータシステムを備えることができる。コンピュータシステム1200は、情報を通信するための通信機構又はバス1211と、情報を処理するためにバス1211に結合されたプロセッサ1212とを備える。プロセッサ1212は、マイクロプロセッサを含むが、例えばPentium(登録商標)、PowerPC(登録商標)、Alpha(登録商標)などのようなマイクロプロセッサに限定されることはない。
【0105】
システム1200は、プロセッサ1212によって実行されるべき情報及び命令を記憶するためにバス1211に結合された、ランダムアクセスメモリ(RAM)又はその他の動的記憶デバイス1204(メインメモリとして示される)を更に備える。メインメモリ1204はまた、プロセッサ1212による命令の実行中に、一時変数又は他の中間情報を記憶するために使用されてもよい。
【0106】
コンピュータシステム1200はまた、プロセッサ1212のための静的情報及び命令を記憶するためにバス1211に結合された、読取専用メモリ(ROM)及び/又は他の静的記憶デバイス1206と、磁気ディスク又は光ディスク及びそれに対応するディスクドライブなどのデータ記憶デバイス1207とを備える。データ記憶デバイス1207は、情報及び命令を記憶するためにバス1211に結合される。
【0107】
コンピュータシステム1200は、コンピュータユーザに情報を表示するためにバス1211に結合された、陰極線管(CRT)や液晶表示装置(LCD)などの表示デバイス1221に更に結合されてもよい。情報及びコマンド選択をプロセッサ1212に通信するために、文字数字キー及び他のキーを備える文字数字入力デバイス1222をバス1211に結合させることもできる。追加のユーザ入力デバイスは、方向情報及びコマンド選択をプロセッサ1212に通信するため、及び表示装置1221上のカーソル移動を制御するためにバス1211に結合された、マウス、トラックボール、トラックパッド、スタイラス、又はカーソル方向キーなどのカーソルコントロール1223である。
【0108】
バス1211に結合することができる別のデバイスは、ハードコピーデバイス1224であるが、これは紙、フィルム、又は類似のタイプの媒体上に情報を記憶するために使用されてもよい。バス1211に結合することができる別のデバイスは、電話機又は手持ち式パームデバイスと通信するための、有線/ワイヤレス通信機能1225である。
【0109】
本発明では、システム1200のいずれか又は全てのコンポーネント、及び関連するハードウェアを使用することができることに留意されたい。しかし、コンピュータシステムの他の構成がこれらのデバイスのいくつか又は全てを含んでもよいことを理解することができる。また、これらのコンポーネントのいくつか又は全てを、本明細書に述べた機能を実施するモバイルデバイス(例えばハンドセット)に含めることもできることに留意されたい。
【0110】
前述の説明を読んだ後、当業者にはおそらく、本発明の多くの改変及び修正が明らかとなるであろうが、例示として図示及び記述されたどんな特定の実施形態も、限定的なものと見なされることは決して意図されていないことを理解されたい。従って、様々な実施形態の詳細への参照は、それ自体が本発明に必須であると見なされる特徴のみを列挙する特許請求の範囲を限定することを意図されていない。
【産業上の利用可能性】
【0111】
本発明の実施形態は、ユーザによってデバイス上で実施されるタスクの記録及び再生の分野に関する。より詳細には、本発明の実施形態は、モバイルハンドセットユーザのためのウェブベースのタスクの記録及び再生に関する。
【技術分野】
【0001】
(優先権)
[0001]本特許出願は、2009年12月15日に出願された「System and methods for record & replay of web−based mobile tasks」と題する、対応する仮特許出願第61/286,724号に対する優先権を主張し、この仮特許出願を参照により組み込む。
【0002】
(発明の分野)
[0002]本発明の実施形態は、ユーザによってデバイス上で実施されるタスクの記録及び再生の分野に関する。より詳細には、本発明の実施形態は、モバイルハンドセットユーザのためのウェブベースのタスクの記録及び再生に関する。
【背景技術】
【0003】
(発明の背景)
[0003]モバイルブロードバンド及びアドバンストモバイルプラットフォーム(カリフォルニア州クパティーノのアップル(登録商標)コンピュータからのiPhone(登録商標)、カリフォルニア州マウンテンビューのグーグル(登録商標)からのAndroid(登録商標)、及びWebOSプラットフォームなど)の集まりは、ウェブ関連の日常タスクのためのモバイルデバイス使用の普及を大きく加速した。消費者はますます、自分のスマートフォンを使用して、オンラインで買い物をし、ブログやコメントを書きたいときに書き、動的に変化する特定のオンライン情報(好きなチームが出ている試合の実況情報や、収集している物の最も早く期限切れとなるオークション商品など)の現況をチェックする。
【0004】
[0004]それでもやはり、固定回線の高速接続を有するパーソナルコンピュータ(PC)と比較すると、モバイルデバイスからウェブ関連タスクを行うことは、使い勝手に関するいくつかの懸念を依然として有し、これらの懸念は、このようなモバイルデバイスに内在する二つの特性、即ち、1)より弱く安定性の劣る接続、及び2)小さいフォームファクタを根源とする。
【0005】
[0005]最近の技術進歩にも関わらず、セルラーネットワーク接続は、デバイスがセルのエッジに近いとき及び/又は厳しい干渉があるときは特に、それらに対応する固定回線の接続よりもまだ相対的に遅く安定性が劣る。この結果、ユーザアクション及びインターネット要求/応答のシーケンスを含むウェブセッションの場合は特に、ネットワークレイテンシ及びユーザ待ち時間はより長くより予測可能性が低く、従って、ユーザ体験はより劣る。モバイルデバイスのフォームファクタが小さいこともまた、モバイルデバイスとの対話をずっと困難にする。小さい画面では、表示されたものが読みづらく、或いは正しい位置をクリック/タップするのが難しい。フルサイズのキーボード及び安定したアームサポートがないため、テキストが入力しづらく、或いはデータをあるアプリケーションから別のアプリケーションに移すのが難しい。
【0006】
[0006]このことを念頭に置いて、技術関連ニュースを閲覧しているユーザがgizmodo.comで興味深い記事を見つけ(図1a参照)、自分のブログ上でこの記事を引用してコメントを書きたいと想像してみる。こうするためにユーザは、記事の興味深い段落を強調表示してコピーし、次いでblogger.comに行き、ユーザ名及びパスワードをタイプ入力することによってログインする(図1b参照)。ユーザは次に「新規投稿」をクリックして、新しいブログエントリを作成し(図1c参照)、そこで、gizmodo.com記事からの事前にコピーした段落(場合によっては記事のURLを含む)を貼り付ける(図1d参照)。この一見単純なタスクは、モバイルデバイス上では単純さがずっと低い。その理由は、ユーザがタイプ入力及びコピー/貼付けするのが難しいからだけでなく、デバイスの接続性が変わりやすく時として悪い場合があり、複数のページがゆっくりロードするのをユーザが待機する必要があるからでもある。
【0007】
[0007]これらの問題に対する従来技術の解決法がいくつかある。WebVCRは、ユーザが閲覧ステップを記録及び再生することのできるVCR式のユーザインタフェースを提供する。WebVCRは、複数のナビゲーションステップを必要とするウェブデータにアクセスするためのショートカットを作成するのに使用されるよう意図されており、また、オンラインチュートリアルや電子商取引などのウェブアプリケーション用の土台として使用することもできる。WebVCRには、いくつかの制限がある。まず、WebVCRは、モバイルのウェブベースのタスクを特に対象とはしない。WebVCRは、ユーザがセッション生成を制御していると想定する。即ち、ユーザはWebVCR中でセッションの記録を明示的に開始及び終了する。この結果、WebVCRは、事後の自動セッションタグ付けの必要性、又は効率的なセッション再生の必要性には対処しない。
【0008】
[0008]Smart Bookmarksは、ウェブナビゲーションに対する遡及的な記録の概念を導入する。ユーザは、現在のページをブックマークするようシステムに依頼することができ、システムは、ブックマーク可能なスタートページ、並びに、スタートページから現在ページに行くための一連のコマンドを、過去に遡って検索することになる。Smart Bookmarksにも、制限がある。例えば、遡及的な記録はSmart Bookmarksの一部だが、Smart Bookmarksにおける自動記録はブックマーク可能なスタートページで停止し、これにより、複数のウェブサイトに関係するセッションを自動的に識別することは不可能となる。加えて、WebVCRと同様に、Smart Bookmarksもまた、効率的なセッション再生に対処しない。
【0009】
[0009]CoScripterもまた、ウェブブラウザベースのタスクに関するユーザ対話ステップを記録及び自動再生することのできるシステムである。ユーザは、ブラウザとの自分の対話を記録するよう明示的に要求し、記録された情報をスクリプトとして保存することができる。このようなスクリプトは、他のユーザと共有することができ、後で自動再生することができる。しかし、CoScripterは、先を見越した記録を必要とするという点でWebVCRに類似する。上の2つのシステムのように、CoScripterは、再生時にユーザの対話コンテキストに適応する問題には特に対処せず、そのような再生における効率を重要視しない。
【0010】
[0010]Highlightは、もともとデスクトップユーザ向けに設計されたウェブベースのアプリケーションをモバイルユーザが手動でカスタマイズできるようにするリオーサリング環境を構築する。Highlightは、CoScripterと同様の、例示プログラミング(programming−by−demonstration)ベースの手法を用い、モバイルページ上に含まれるべき内容をユーザが直接指定できるようにする。モバイルウェブを対象とした別の例示プログラミングベースのシステムは、PageTailorであり、これは、ウェブページに対するユーザのカスタマイズを記録し、そのような記録されたカスタマイズを類似のウェブページに自動的に適用する。HighlightもPageTailorも両方とも、対話シーケンスではなく個々のウェブページを対象とすることに留意されたい。
【発明の概要】
【発明が解決しようとする課題】
【0011】
[0011]このように、既存の解決法は、上記の問題に十分に対処できていなかった。ウェブベースのユーザ対話のシーケンスを記録及び再生することに関する従来の研究はあるが、そのような既存の研究は、モバイルウェブを特に対象としておらず、以下の面の1つ又は複数において様々な程度で依然として制限される。
【0012】
1)準備無しの自動化されたタスク記録。記録するセッションの開始を手動で合図することがユーザに求められるのではなく、今しがた完了した退屈なセッションを記録するようユーザがシステムに依頼できるべきである。加えて、システムは、記録すべきセッションを構成する対話イベントを自動的に解明できるべきである。
【0013】
2)記録されたセッションの適応的な再生。記録されたセッションは、類似するがわずかに異なるタスクにも使用できるべきであり、ウェブコンテンツの変化に適切に対応できるべきである。
【0014】
3)記録されたセッションの効率的な再生。モバイルユーザにとって、長い待ち時間は、退屈な対話と同じくらい厄介である。記録されたセッションの再生は、ユーザが前にそのセッションを記録したときよりも遥かによい体験をユーザに提供すべきであり、このよりよい体験は、遥かに短いタスク完了時間を伴うべきである。
【課題を解決するための手段】
【0015】
(発明の概要)
[0012]ウェブベースのタスクを記録及び再生するための方法及び装置を、本明細書に開示する。一実施形態では、この方法は、記録するセッションの開始を明示的に合図することなくユーザによって今しがた行われたセッション中に実施されたウェブベースのタスクを記録することであって、ユーザ関与無くセッションの開始を自動的に見つけることを含むこと、記録されたウェブベースのタスクを再生する要求を受信すること、及び、記録されたウェブベースのタスクを再生することを含む。
【発明の効果】
【0016】
本発明の実施形態は、ユーザによってデバイス上で実施されるタスクの記録及び再生の分野に関する。より詳細には、本発明の実施形態は、モバイルハンドセットユーザのためのウェブベースのタスクの記録及び再生に関する。
【図面の簡単な説明】
【0017】
【図1】a〜d:ブログ/メッセージボードのコメント記入例に関する、ブラウザのスクリーンショットを示す図である。
【図2】a及びb:セッションにタグ付けする、及びセッションを再生するためのユーザインタフェースを示す図である。
【図3】セッション生成に関するイベントシーケンスの図解を示す図であり、イベントは発生時順に並んでいる。
【図4】コンテキスト認識アルゴリズムの一実施形態に関する擬似コードを示す図である。
【図5】セッション再生におけるコンテキスト認識を示す図である。
【図6】優先順位の高い順に並んだ一般化プランの例のリストを示す図である。
【図7】「スマートな」イベント再生の一実施形態に関する擬似コードを示す図である。
【図8】タグ付けされたセッションのリモート実行を示す図である。
【図9】a〜d:「期限切れeBayオークション」例に関する、ブラウザスクリーンショットを示す図である。
【図10】記録されたセッションの例を示す図である。
【図11】a〜d:「エクスプレスチェックアウト」例に関する、ブラウザのスクリーンショットを示す図である。
【図12】コンピュータシステムの一実施形態のブロック図である。
【発明を実施するための形態】
【0018】
[0013]本発明は、以下に提供する詳細な記述、及び本発明の様々な実施形態に関する添付の図面から、より完全に理解されるであろう。しかし、図面は、本発明を特定の実施形態に限定するものと考えるべきではなく、説明及び理解のためのものに過ぎない。
【0019】
[0014]タスクの記録(又はタグ付け)及び再生のためのシステム及び関連する方法について述べる。一実施形態では、このタスクは、モバイルのウェブベースの作業である。一実施形態では、タスクを記録及び再生する技法は、3つの際立った特徴を有する。第1に、これらの技法は事後の自動セッションタグ付けを含むが、これは、記録の開始を最初に合図することなく、今しがた完了したセッションをユーザがタグ付けできるようにし、どんなユーザ介入も無くセッションの開始を自動的に見つけて対話雑音を除去する。第2に、これらの技法は「スマートな」セッション再生を含み、記録されたセッションは、ユーザがセッションをタグ付けしたときからユーザがセッションを再生するときまでの間のコンテキスト上の差に適応し、タグ付けされたセッションのパラメータ化を本質的に可能にする。一実施形態では、「スマートな」セッション再生技法はまた、ウェブページの変化にも適応して、ウェブのダイナミクスに耐えると共にユーザタスクの変化に対応する。第3に、これらの技法はリモートセッション実行を含み、イベントをモバイルデバイスから再実行する代わりに、タグ付けされたセッションの多くの部分がプロキシサーバにおいて再生される。プロキシサーバは、固定回線の高速接続を有する場合がある。このようなリモート実行及び他の最適化により、セッションを再生するための時間は、セッション内の最後のページをロードするのに必要とされる時間程度に短縮される。
【0020】
[0015]一実施形態では、セッション記録及び再生技法は、フロントエンド及びバックエンドコンポーネントを使用して実現され、バックエンドコンポーネントは、前述の(且つ以下の各章で詳細に論じる)際立った特徴を実現し、フロントエンドコンポーネントはユーザとの対話を扱う。
【0021】
[0016]具体的には、フロントエンドコンポーネントはユーザの対話状態及び対話コンテキストを監視するが、対話状態は、本明細書ではいくつかのメンバ変数によって定義され、メンバ変数は、ブラウザ中で現在開いているページと、ブラウザ中で現在開いているページ上の強調表示されたテキストと、クリップボードの内容と、ブラウザ中で現在開いているページに対して行われるフォーム入力と、リソース識別子(例えばURL)入力バー(もしあれば)の現在の値と、のうちの1つ又は複数を含む。
【0022】
[0017]対話コンテキストは、本明細書ではユーザの一番最近の対話状態シーケンスとして定義される。ある対話状態から別の対話状態への遷移は、対話イベントに対応する。フロントエンドコンポーネントは、ブラウザ内から対話イベントを傍受(インターセプト)して、ユーザ対話の状態を綿密に監視する。一実施形態では、以下のタイプの対話イベントがある。すなわち、ページロードイベント(これは、ハイパーリンクをクリックすること、URLバー中でエンターキーを押すこと、若しくはURLバーの内容に基づいてブラウザによって提示されたドロップダウンリストから選択すること、フォームサブミットボタンをクリックすること、又は特定のブラウザツールバーボタンをクリックすること、若しくは何らかのブラウザメニュー項目(例えば「ホーム」や「戻る/進む」ボタン、及びブックマークメニュー)を選択すること、などのユーザアクションの結果として生じるページロードに対応する)、URL入力イベント(これは、ユーザがURLバー中でタイプ入力することに対応する)、テキスト強調表示イベント(これは、ユーザが現在のページ上のテキスト文字列を強調表示することに対応する)、テキストコピーイベント(これは、ユーザが強調表示されたテキストをクリップボードにコピーすることに対応する)、フォーム入力イベント(これは、ユーザが現在のページ上のフォームの入力フィールドに入力することに対応する(フォーム入力イベントは、ユーザが入力フィールドにテキストをタイプ入力することによって、又は入力フィールドにテキストを貼り付けることによって引き起こされる可能性がある))、貼付け入力イベント(これは、フォーム入力イベントの特殊形であり、ユーザが現在のページ上のフォームの入力フィールドにクリップボード内容をコピーすることに対応する)、並びにURLコピーイベント(これは、現在のページのURLをクリップボードにコピーすることに対応する)である。
【0023】
[0018]一実施形態では、全てのタイプのイベントは、それ自体の固有の属性の他に、その開始時と終了時を示す共通の属性も有する。
【0024】
[0019]ページを見た後で当該ページをブックマークするのに似て、ユーザは、今しがた完了した、実施容易ではないと思われるが将来繰り返される可能性が高いであろうタスクを、記録又は「タグ付け」するよう依頼することができる。一実施形態では、ユーザは、この今しがた記録されたセッションに名前を割り当てることもできる(例えば図2(a)参照)。この方式のセッション記録を、本明細書では「事後セッションタグ付け」と呼ぶ。その理由は、「記録」は、ユーザがバックエンドコンポーネントにセッションの記録を開始するよう合図することなく実施され、セッションが完了した後で実施されるからである。
【0025】
[0020]バックグラウンドでは、バックエンドコンポーネントが、ユーザの現在の対話コンテキストを得て、この対話コンテキストから、ユーザが記録及びタグ付けしようと思うセッションをどのイベント及び状態が表すかを決定し、そのようなイベント及び状態を、割り当てられた名前と共に記憶する。
【0026】
[0021]その後、ユーザがフロントエンドユーザインタフェース(例えば図2(b)参照)を介してタグ付けされたセッションを再生しようとするとき、バックエンドコンポーネントは、タグ付けされたセッションに対応する対話状態及びイベントを得て、次いでセッションの記録されたイベントの再生を試みる。しかし、一実施形態では、このような再生は通常、元のイベントの正確な「カーボンコピー」の再実行ではない。これは、現時点でのユーザの対話コンテキスト(従って、ユーザの意図するタスク)が、ユーザがセッションタグを作成したときとは異なる可能性があるからである。もう1つの理由は、セッションがタグ付けされたときにユーザが訪れたウェブページが、それ以来、いくつかのイベントの一語一句違わぬ再生がもはや意味を成さない(例えば存在しない句を強調表示するなど)までに変化した可能性があることである。一実施形態では、バックエンドコンポーネントは従って、ユーザコンテキスト及びウェブ内容の変化に適応するために、イベント再生における「スマートさ」を必要とする。
【0027】
[0022]一実施形態では、バックエンドコンポーネントは、セッション再生において手動ユーザ対話の忠実な模倣を目標としない。そうではなく、タグ付けされたセッションのより効率的な(従って、より使い勝手のよい)再生のために、セッションのほとんどをリモート実行することを含めた様々なアプローチを活用する。
【0028】
[0023]以下の記述では、本発明のより完全な説明を提供するために多くの詳細を示す。しかし、これらの具体的詳細がなくても本発明を実施できることは、当業者には明らかであろう。他の場合では、本発明を曖昧にするのを避けるために、周知の構造及びデバイスについては詳細に示すのではなくブロック図の形で示す。
【0029】
[0024]後続の詳細な記述のいくつかの部分は、コンピュータメモリ内のデータビットに対する操作の、アルゴリズム及び象徴表現によって提示する。これらのアルゴリズム的記述及び表現は、データ処理技術の当業者が他の当業者に自身のタスクの実質を最も効果的に伝えるために使用される手段である。アルゴリズムは、ここでは、また一般的には、所望の結果につながる首尾一貫した一連のステップであると考えられる。これらのステップは、物理量の物理的操作を必要とするステップである。必ずしもそうとは限らないが通常は、これらの量は、記憶、転送、結合、比較、及び他の方法で操作することのできる電気的又は磁気的信号の形をとる。主に一般的な慣例の理由で、これらの信号をビット、値、要素、記号、文字、用語、数字などとして言及するのが時として好都合であることが証明されている。
【0030】
[0025]しかし、これら及び類似の用語は全て、適切な物理量に関連付けられるべきであって、単にこれらの量に適用される好都合なラベルに過ぎないことを念頭に置くべきである。以下の考察から明らかなように特に別段の指定がない限り、この記述全体を通して、「処理する」、「計算する」、「算出する」、「決定する」、又は「表示する」などの用語を利用した考察は、コンピュータシステムのレジスタ及びメモリ内の物理的(電子的)量として表されるデータを操作して、コンピュータシステムメモリ若しくはレジスタ内、又は他のそのような情報記憶、伝送、若しくは表示デバイス内で同様に物理量として表される他のデータに変換するコンピュータシステム又は類似の電子計算デバイスの、アクション及びプロセスを指すことを理解されたい。
【0031】
[0026]本発明はまた、本明細書の動作を実施するための装置に関する。この装置は、必要とされる目的のために特に構築されたものであってもよく、或いは、コンピュータに記憶されたコンピュータプログラムによって選択的にアクティブ化又は再構成される汎用コンピュータを含んでもよい。このようなコンピュータプログラムは、コンピュータ可読記憶媒体に記憶することができ、コンピュータ可読記憶媒体は、以下のものに限定されないが、フロッピー(登録商標)ディスクや光ディスクやCD−ROMや光磁気ディスクを含めた任意のタイプのディスク、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気若しくは光学カード、又は、電子的命令を記憶するのに適した任意のタイプの媒体などであり、これらはそれぞれコンピュータシステムバスに結合される。
【0032】
[0027]本明細書に提示するアルゴリズム及び表示は、どんな特定のコンピュータ又は他の装置にも本質的に関係しない。本明細書の教示に従ったプログラムと共に様々な汎用システムを使用することもでき、或いは、必要とされる方法ステップを実施するためのより特殊化された装置を構築するのが好都合であることが判明する場合もある。これらの様々なシステムに必要とされる構造は、以下の記述から明らかになるであろう。加えて、本発明は、特定のプログラミング言語に関して述べるものでもない。様々なプログラミング言語を使用して、本明細書に述べる本発明の教示を実施することができることは、理解されるであろう。
【0033】
[0028]機械可読媒体は、機械(例えばコンピュータ)によって読取り可能な形で情報を記憶又は伝送するための任意の機構を含む。例えば、機械可読媒体は、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイスなどを含む。
【0034】
(概観)
[0029]タスクの記録(又はタグ付け)及び再生のためのシステム及び関連する方法について述べる。一実施形態では、この方法は、記録するセッションの開始を明示的に合図することなくユーザによって今しがた行われたセッション中に実施されたウェブベースのタスクを記録することであって、ユーザ関与無しにセッションの開始を自動的に見つけることを含むこと、記録されたウェブベースのタスクを再生する要求を受信すること、及び、記録されたウェブベースのタスクを再生することを含む。
【0035】
[0030]一実施形態では、ウェブベースのタスクを記録することは、ユーザの対話状態及び対話コンテキストを監視することであって、対話コンテキストが一番最近の対話状態シーケンスであること、並びに、ブラウザ内から対話イベントを傍受することを含み、各対話イベントは、ある対話状態から別の対話状態への遷移に対応する。一実施形態では、ウェブベースのタスクを記録することは、イベントストリームをセグメント化すること、タスクに対して影響を有さないイベントをイベントストリームから除去して、雑音除去されたイベントストリームを生み出すこと、セグメント化された雑音除去済みイベントストリーム中のイベント間の依存関係を決定すること、及び、イベントの最後のセグメントから遡って依存連鎖を横断して、イベントを再生可能セッションの一部として雑音除去されたイベントストリームから識別することを含む。
【0036】
[0031]一実施形態では、イベントストリームをセグメント化することは、イベントストリーム中のイベント間の時間レイテンシに基づいて実施される。一実施形態では、イベントストリームをセグメント化することは、明示的なユーザ入力アクションに基づいて実施される。
【0037】
[0032]一実施形態では、イベントをイベントストリームから除去することは、ユーザ関与無しに行われる。一実施形態では、イベントをストリームから除去することは、タスクにとって重要でないユーザナビゲーションの結果として生じるイベントを除去することを含む。
【0038】
[0033]一実施形態では、依存連鎖を横断することは、強調表示及びコピー操作と、コピー及び貼付け操作と、入力及びサブミット操作とからなるグループから選択されるアクションの1つ又は複数の対を識別することを含む。
【0039】
[0034]一実施形態では、この方法は、タスクを表すセッションを一般化して、このセッションを、セッションが記録されたときに使用されたコンテキストとは異なるコンテキストに適用可能にすることを更に含む。一実施形態では、セッションを一般化することは、セッションを抽象化することを含む。
【0040】
[0035]一実施形態では、記録されたウェブベースのタスクを再生することは、記録されたウェブベースのタスクを表す記録済みセッションのコンテキストを、セッションが記録されたときのユーザに関連する第1の対話コンテキストから、ユーザの現在の対話コンテキストに適応させて、ユーザの現在の対話コンテキストを用いた記録済みセッションを再生することを含む。一実施形態では、コンテキストを適応させることは、記録されたセッション内のどの状態が、タスクの再生要求が行われた時点のユーザのコンテキストに合致するかを決定することを含む。一実施形態では、記録されたウェブベースのタスクを再生することは、記録されたウェブベースのタスクの一部である少なくとも1つのウェブページの変化に適応することによって、記録されたウェブベースのタスクを表す記録済みセッションを適応させることを含む。
【0041】
[0036]一実施形態では、記録されたウェブベースのタスクを再生することは、記録されたウェブベースのタスクを表す記録済みセッションを、プロキシサーバを使用してリモートに再生することを含む。一実施形態では、記録されたウェブベースのタスクを表す記録済みセッションを、プロキシサーバを使用してリモートに再生することは、記録されたセッションをユーザの最新の対話状態と共にプロキシサーバに送信すること、1つ又は複数のサーバに1つ又は複数の要求を送信して1つ又は複数のサーバから応答を受信することを含めて、ユーザの対話状態からの状態を用いてイベントをプロキシサーバによって再生すること、プロキシサーバ上の現在の対話状態と共に、セッション中の最後のページロードイベントに対応する最後のページをプロキシサーバによって送信すること、及び、最後のページによって指定されるリソースをロードして、セッションを終了する1つ又は複数のイベントの再生を完了することを含む。
【0042】
(セッション生成)
[0037]一実施形態では、セッションの生成は、事後方式で行われる。すなわち、ユーザは、対話のシーケンスを行う前に、記録を開始するようシステムに合図する必要はない。そうではなく、ユーザは、セッションを終了した後すぐに、ユーザが行ったセッションをマーク付けするようシステムに依頼することができる。これは少なくとも2つの利益を有する。第1に、ユーザは、退屈なウェブセッションが開始する直前よりも、そのようなセッションを行った直後の方が、セッションタグを作成しようという気になると考えられている。これは、セッションの開始時には、ユーザはまだ、セッションの退屈さ又は再使用可能性を認識していなかったか、タスクを中断せずに完了させることに集中していなかった場合があるからである。第2に、このようなセッションの多くは、事前に準備されるようにして記録されるのには適さないので、事後セッション生成は重要である。これは、このようなセッションを繰り返すことは、望まれない副作用(オンラインストアから小物を購入したり、公開フォーラムにコメントを残したりするなど)をもたらす可能性があるか、或いはユーザにとって退屈過ぎる(何らかのタイプ入力を必要とする、及び/又はウェブページの遅いロードを待機する必要があるなど)からである。
【0043】
ユーザが今しがた実施したセッションをタグ付けするようシステムに要求すると、システムは、どのユーザアクションが、今しがた終了したユーザのタスクの構成要素であるかを識別する必要がある。これは2つのサブ目標を含む。第1のサブ目標は、本明細書では「開始状態認識」と呼ぶが、これは、監視された対話イベントのシーケンスから、意図されたタスクの開始に対応する状態を識別することである。第2のサブ目標は、意図されたタスクの開始状態と、意図されたタスクの終了状態との間の雑音イベントを除去することであり、終了状態は、ユーザがセッションタグの作成を要求するときの現在対話状態である。
【0044】
[0038]図3に、セッション生成に関するイベントシーケンスを示す。図3を参照すると、意図されたタスクの終了状態の後で、セッションタグ作成要求301が発生する。また、雑音イベントを含めてイベントが発生時順に並んだ、いくつかの状態も示す。
【0045】
[0039]一実施形態では、以下の高レベルの順序付けられたステップを含むアルゴリズムを使用して、開始状態認識及び雑音イベント除去が実施される。
【0046】
1)イベントシーケンスを複数のセグメントに分割する(分割)。
【0047】
2)各メンバ変数を直接に決定するイベントを、関連ありとしてマークする(マーク)。
【0048】
3)タスクに関連のないイベントを各セグメントから除去する(除去)。
【0049】
4)関連セグメントから非関連セグメントに関連性を拡張する(拡張)。
【0050】
5)結果として得られたイベントを、些細なナビゲーションシーケンスを除去することによって最適化する(最適化)。
【0051】
[0040]アルゴリズムが完了した後には、全ての関連セグメント(それぞれ、雑音イベント除去済み)がタグ付けされたセッションの状態及びイベントを形成し、最も早い関連セグメントの第1の状態がセッションの開始状態である。
【0052】
(分割)
[0041]分割操作は、ユーザの対話イベントを小さいグループ又はセグメントに分ける。同じセグメント内のイベントは相互に密接に関係し、通常、隣接する任意の2つのイベント間には因果関係がある。例えば、あるセグメントは、blogger.comホームページに対するページロードイベントと、それに続く、このページのユーザ名フィールド中でのフォーム入力イベントとからなる場合がある。
【0053】
[0042]一実施形態では、分割操作は、分割イベントを識別することによって実施される。一実施形態では、各分割イベントは、その前後(それ自体を含む)のイベントを異なるセグメントに分離する。一実施形態では、2つのタイプの分割イベントがある。第1のタイプの分割イベントはURLサブミットイベントであり、これは、ユーザがURLアドレスを明示的にタイプ入力することによって、又はユーザがブックマーク項目を選択するか「ホーム」ボタンをクリックすることによって引き起こされる。第2のタイプの分割イベントは、その開始時と、前のイベントの終了時との間の時間的隔たりが異常に大きいイベントである。一実施形態では、通常生じる時間的隔たりよりもいくらか大きい(例えば2倍、3倍など)時間的隔たりは異常に高いとしてマークされるように、時間的隔たりが異常に大きいかどうかの判定は、イベント間で通常生じる相対的な時間長に基づくことができる。この2つのタイプのイベントにおいて分割することの根拠は、これらのイベントが、ユーザがあるタスクから別のタスクに切り替えたかもしれないことを示す可能性が高いからである。
【0054】
(マーク)
[0043]マーク操作は、各メンバ変数を直接に決定するイベントを、関連ありとしてマークする。例えば、最終状態のドキュメントをロードするページロードイベントは、関連ありとしてマークされる。他のマークされるイベントは、最後のイベントセッションの最終状態のクリップボード内容を設定するテキストコピーイベント、及び、セッションの最後のイベントの最終状態のURLバー内容を設定するURL入力イベントである。
【0055】
(除去)
[0044]除去操作は、前述の分割操作から導出された各セグメントから、現在のタスクに関係のないイベントが除外されるようにする。このような非関連イベントは主に、ユーザ対話における雑音又は間違いの結果であると想定される。除去操作は、分割操作の後で実施される。さもなければ、セグメント化に悪影響を及ぼすことがある。
【0056】
[0045]一実施形態では、セッション生成アルゴリズムは、雑音イベント及び重要でないナビゲーションという、2つのタイプの非関連イベントを対象とする。一実施形態では、除去操作は、まず全ての雑音イベントを除去し、次いで、重要でないナビゲーションがあればそれに関係する全てのイベントを除去する。一実施形態では、イベントは、関連ありとしてまだマークされておらず、以下の条件のうちの1つを満たす場合に、雑音イベントとして定義される。
【0057】
イベントは、対応するページロードイベントがどのセグメント中にもない、フォーム入力イベント又は貼付け入力イベントである。本明細書における「対応するページロードイベント」とは、入力イベントのターゲット入力フィールドを含むフォームのサブミットによって引き起こされるページロードを意味する。このような雑音イベントは、フォームへのユーザ入力が途中で中止されることによって引き起こされる場合がある。
【0058】
イベントは、テキストコピーイベント又はURLコピーイベントであり、このイベントと次のコピーイベントとの間に、(雑音でない)貼付け入力イベントがない。このようなイベントは、クリップボードにコピーしたテキスト値が貼付けに全く使用されないうちに置き換えられるので、雑音と考えられる。
【0059】
イベントは、テキスト強調表示イベントであり、このイベントと、同じページ上の次のテキスト強調表示イベントとの間に、(雑音でない)テキストコピーイベントがない。
【0060】
イベントは、URL入力イベントであり、このイベントと次のURL入力イベントとの間に、対応するページロードイベント又は(雑音でない)URLコピーイベントがない。このような雑音イベントは、ブラウザのURL入力バー中でのユーザ入力が途中で中止されることによって引き起こされる。
【0061】
[0046]一実施形態では、雑音イベントの除去は、上記の条件のうちの1つにそれぞれが対応する、4つの順序付けられた経路中で実施されることに留意されたい。
【0062】
(拡張)
[0047]拡張操作は、マーク操作中に関連ありとしてマークされたイベントから、他のイベントに関連性を拡張する。まず、所与の関連イベントについて、拡張操作は、同じセグメント中の他の全てのイベントもまた関連ありとしてマークし、次いで、すでに関連ありとしてマークされたセグメントから他のセグメントに関連性を反復的に拡張する。新しい関連セグメントが見つからなくなったとき、反復は停止する。一実施形態では、関連性は、以下のイベントの対のうちの少なくとも1対が2つのセグメントにまたがって存在する場合に(セグメント中で発生する対のイベントのうちのいずれかが、すでに関連ありとしてマークされている)、あるセグメントから別のセグメントに拡張することができる。すなわち、テキスト強調表示とテキストコピーのイベント対、テキストコピーと貼付け入力のイベント対、URLコピーと貼付け入力のイベント対、URL入力とページロードのイベント対、及びURL入力とURLコピーのイベント対である。これは本質的に、セグメントにまたがって前方と後方の両方にデータ依存性を拡張する。
【0063】
(最適化)
[0048]最適化操作は、関連のあるイベントのうち、些細なナビゲーションシーケンスを除去する。些細なナビゲーションシーケンスは、本明細書では、1)すぐ後に続くイベントの発火に、又はその特定のイベントをトリガした後の状態に影響を及ぼすことなく除去できるイベントシーケンスであって、2)同じイベントシーケンスが、フォームのサブミットに対応するどんなページロードイベントも含まないものとして定義される。
【0064】
[0049]些細なナビゲーションシーケンスの一例は、単純なナビゲーション循環である。ユーザは、ページ上のハイパーリンクをクリックし、次いでブラウザの「戻る」ボタンを押す。別の例は、ブックマークされた項目を例えば選択することによって他の場所にナビゲートする直前の、些細なページロードである。
【0065】
[0050]セッション生成(タグ付け)アルゴリズムの結果は、ユーザがタグ付けしようと思うタスクに関連があると考えられる対話イベント(及び対応する結果状態)のシーケンスである。タグ付けアルゴリズムは相対的に単純であり実行中に適用することができるが、一実施形態では、他の後処理がかなりの量の時間を要する場合があり、このような後処理は、オフラインでモバイルデバイスの外において実施される。このような後処理の一部を、本明細書では、タグ付けされたセッションの一般化と呼ぶ。簡単に言えば、一般化は、タグ付けされたセッションを、ユーザがセッションタグを作成したコンテキストとはわずかに異なるコンテキストの、他の類似するタスクに適用可能にするために使用される技法である。
【0066】
[0051]一般化は、タグ付けされたセッションを後で再生することを理解する鍵なので、セッション再生について論じる前に、一般化について以下に詳細に論じる。
【0067】
(一般化)
[0052]前にタグ付けしたセッションを再生する要求をユーザが生成するとき、多くのことがその後変化している可能性があり、それにより、タグ付けされたセッション中の各イベントを100%忠実に再生することが不可能であるか又は無意味となる。例えば、eBay.comのホームページの内容は頻繁に変わる。ましてや、特定のオークションカテゴリの最も早く期限切れになる商品を含むページの内容、並びにURLは、変わってしまっている場合がある。
【0068】
[0053]一般化は、タグ付けされたセッションの状態を抽象化するプロセスである。結果として得られる抽象状態を、本明細書では一般化状態と呼び、元の状態を、本明細書では具体的状態と呼ぶ。従って、具体的イベントと一般化イベントとがある。
【0069】
[0054]一実施形態では、状態は5つのメンバ変数(ドキュメント、URL入力、フォーム入力、強調表示テキスト、及びクリップボード内容)からなるので、状態の一般化は、最終的には各状態のメンバ変数の一般化である。各メンバ変数はそれ自体の一般化メソッドによって一般化され、対話状態の5つの一般化メソッドが、その状態の一般化プランを構成する。
【0070】
[0055]一般化メソッドの関数の1つは、具体的イベント、及び具体的イベントのコンテキストをとって、具体的イベントを一般化イベントに変換することである。各一般化メソッドは逆関数も有し、この逆関数は、コンテキスト(具体的状態及びイベントからなる)及び一般化イベントをとって、一般化イベントを具体的イベントに変換する。この逆関数を、本明細書ではインスタンス化と呼ぶ。
【0071】
[0056]一般化メソッドは、状態を入力として抽象状態を生み出す。状態は、その一部としてウェブドキュメントを含むことができる。
【0072】
[0057]以下は、一般化メソッドの例のリストである。
【0073】
NOGEN:これは、全ての状態メンバ変数に適用可能な特別な一般化メソッドである。このメソッドは、どんな一般化も行わない。すなわち、具体的イベントを一般化するとき又は一般化イベントをインスタンス化するときに、何も変更しない。
【0074】
ANY:これもまた、全ての状態メンバ変数に適用可能な特別な一般化メソッドである。このメソッドは、メンバ変数のどんな値も(値が設定されていないときでさえ)相互に等価であると考える。
【0075】
BIN:これもまた、全ての状態メンバ変数に適用可能な特別な一般化メソッドである。このメソッドは、状態メンバ変数の値が設定されているか否かの2値状態を区別するだけである。従って、この関数は、状態に適用されたときに真又は偽を返す。
【0076】
CLK_A:これは、ページ内のハイパーリンク、フォームボタン、又はリスト項目をその後クリックすることに基づく、ドキュメント変数に対する一般化メソッドである。ハイパーリンク又はリスト項目xの場合は、ドキュメントは「URLxへのリンクを含む」に抽象化され、フォームサブミットボタンの場合は、ドキュメントは「アクションx及び入力項目名yを有するフォームを含む」に抽象化される。
【0077】
CLK_T:これは上と同様だが、例外として、ハイパーリンクの場合は、ドキュメントは「アンカーテキストxを有するハイパーリンクを含む」に抽象化される。フォームボタンの場合は、ドキュメントは「アクションx及びサブミットボタン値y(又は画像URIz)を有するフォームを含む」に抽象化される。リストアイテムの場合は、ドキュメントは、「URLが埋め込まれテキストラベルxを有する、リスト項目を含む」に抽象化される。
【0078】
CLK_P:これは上と同様だが、例外として、ハイパーリンク、フォームボタン、及びリスト項目は、ドキュメント中のそれらのxpathによって表され、xpathはHTMLドキュメント技術で周知である。
【0079】
HL_PATH:これは、強調表示テキストを含むテキストノードのxpath、並びにテキストノード内における強調表示テキストのオフセットに基づく、強調表示変数に対する一般化メソッドである。
【0080】
HL_TREE:これは上と同様だが、例外として、xpathは、ドキュメント自体のルートではなくドキュメントのサブツリーのルートから開始される。
【0081】
FI_1:これは、フォーム入力変数に対する一般化メソッドである。フォーム入力先が、「アクションx及び入力フィールド名yを有するフォーム」に抽象化される。
【0082】
URL_1:これは、URL入力変数に対する一般化メソッドである。「http://www2.xyz.com/path1/path2/...」の形の完全なURLが、「xyz.com/path1」に抽象化される。
【0083】
[0058]他の一般化メソッド、特に、ドキュメントの内容に基づく一般化メソッドを使用することもできる。例えば、一実施形態では、ある一般化メソッドは、同じマップアドレスを含むか又は多数の画像を共に含む2つのドキュメントを、同じ一般化ドキュメントに一般化する。
【0084】
[0059]図6に、前述の一般化メソッドを使用したサンプル一般化プランのリストを示す。各状態メンバ変数につきいくつかの異なるメソッドがあってもよいが、多数のメソッド組合せは実行不可能であるか又は冗長なので、実際的な一般化プランの数は指数関数的に大きくはないことに留意されたい。図6を参照すると、表中の一般化プランは、それらが生み出す一般化状態の「忠実度」(元の具体的状態に対する)の順に並んでいる。
【0085】
[0060]セッションがタグ付けされると、同様の一般化プランリストを使用してその状態が一般化される(例えば図5参照)。元の各具体的状態につき、結果は、元の状態に対する忠実度の高い順の一般化状態のリストである。一般化プランは、1つ又は複数の状態を一般化するのに失敗する場合があることに留意されたい(図5のチャート中の「x」)。
【0086】
(セッション再生)
[0061]上に論じたように、タグ付けされたセッションの再生をユーザが要求するとき、ユーザは通常、タグ付けされたセッションの最初から全く同じ対話シーケンスを繰り返すよう求めているのではない。実際、ユーザが自分のセッションの開始と考えていたものは、システムがタグ付けアルゴリズムを通して推論したものとは異なる可能性がある。従って、セッション再生ロジックが、ユーザが再生を要求した時点でのユーザのコンテキストを自動的に決定し、タグ付けされたセッション内のどの状態がそのコンテキストに合致するかを決定することが重要である。合致する状態が、タグ付けされたセッション中の後続イベントを1つずつ再生するための開始点となる。
【0087】
[0062]記録されたセッションの範囲内で、コンテキストは、ユーザによるブラウザとの最新の対話を表す対話状態(並びに対応するイベント)のシーケンスとして定義される。シーケンスの長さはカスタマイズ可能だが、通常は短い(例えば1回の実施において8つ)。コンテキスト中で最も重要な情報は、シーケンス中で最後の(すなわち最新の)対話状態である。
【0088】
[0063]コンテキストCの最新状態をSlとし、Cのi番目の状態をSiとし、優先順位の高い順に並んだ一般化プランのリストをGPLとし、一般化プランgpを状態Siに適用することから導出される一般化状態をSigpとする。
【0089】
[0064]図4の擬似コードは、コンテキスト認識のためのアルゴリズムの一実施形態を記述するものである。本質的に、このアルゴリズムは、最も好ましいものから最も好ましくないものまで、サポートされる各一般化プランをとり、コンテキストの最新状態に適用して一般化状態を生み出す。そのような一般化状態(Slgp)が存在する場合は、そのような一般化状態が、同じプランをタグ付けされたセッションの状態のうちの1つに適用することから導出される一般化状態と等しいかどうかチェックする。少なくとも1つのそのような状態が存在する場合は、そのような状態のうちの第1の(最も早い)状態が、合致状態として返される。どの一般化プランも一般化状態の合致を生み出すことができない場合は、アルゴリズムは、タグ付けされたセッションの第1の状態を合致状態として返す。これは、タグ付けされたセッションを最初から再生する必要があることを示す。
【0090】
[0065]一実施形態では、状態Slの一般化は、状態自体とコンテキストCとの両方を入力とすることに留意されたい。これは、いくつかの一般化メソッドが、状態のメンバ変数を一般化する際に追加の情報を使用する必要があるからである。同じことは、タグ付けされたセッション中の状態が一般化されるときにも当てはまる。
【0091】
[0066]図5は、コンテキスト認識プロセスのより説明的な描写である。セッションがタグ付けされると、その状態が一般化プランによって抽象化される。いくつかのプランから導出された一般化状態は、元の具体的状態に対して高い忠実度を維持するが、他の一般化状態は、ずっと抽象化され、具体的状態の多くの際立った特色を失う。ユーザがセッションの再生を要求すると、ユーザの最終状態が取り出され、最終状態に対して最も高い忠実度を維持する一般化状態の合致を見つける努力がなされる。
【0092】
[0067]セッション再生の開始点を決定する他、コンテキスト認識はまた、ユーザが自分の再生したいタグ付けされたセッションを識別するのを補助するのに用いることもできる。これは、ユーザが全てのタグ付けされたセッションのリストを開いたときに、バックエンドシステムは、ユーザのコンテキストとの高忠実度の合致をそれぞれが有するタグ付けされたセッションのセットを識別することができるからである。このタグ付けされたセッションのセットは、次いで、より目立つように表示して(例えば強調表示するか又はリストの先頭に昇格させて)、ユーザがそれらの位置を突き止めるのを補助することができる。これにより、作成されたタグ付け済みセッションが数十個又はそれ以上あるときにシステムの使い勝手がよりよくなる可能性がある。
【0093】
[0068]タグ付けされたセッション内の合致状態が識別されると、残りのセッション再生プロセスは、ユーザの対話コンテキストから開始し、タグ付けされたセッション中の合致状態の後に続く各イベントを再生する。
【0094】
[0069]図7は、「スマートな」イベント再生のためのアルゴリズムの擬似コードの一例である。図7を参照すると、アルゴリズムの2つのwhileループのうち、外側のループは、タグ付けされたセッションのイベントを通して(合致状態から始まって)反復し、各イベント(Et)につき、そのイベントを再生することを試みる。イベントの再生が失敗した場合は、プロセス全体がアボートし、例外が投げられる。
【0095】
[0070]複雑さの多くは、またセッション再生アルゴリズムの「スマートさ」の源は、内側のwhileループ中にある。内側のループは、タグ付けされたセッション中の次の状態(Su)を首尾よく一般化した各一般化プラン(gp)を、優先順位の高い順にチェックする。gpから、タグ付けされたセッション中の元のイベントEtのタイプに基づいて、一般化メソッド(gm)並びに一般化イベント(Eg)を得る。次いで、現在の具体的状態Scを用いてEgをインスタンス化するようgmに依頼する。このようなインスタンス化が成功した場合は、得られた具体的イベント(Ec)を使用して、更新された現在の具体的状態を導出する。
【0096】
[0071]タグ付けされたセッション中のイベントは、モバイルデバイスから1つずつ再生することができるが、そのような再生は、インターネットへの固定回線の高速接続を有し計算容量がより大きいプロキシサーバにおいて実行する方がよい場合がある。このようなプロキシサーバにおいてタグ付けされたセッションをリモート再生することで、より遅くレイテンシの長いワイヤレスアクセスネットワークの中を通る要求の数及びデータの量が低減され、場合によっては最小限に抑えられる。また、各イベントの「スマートな」再生に関係する処理も高速化される。この結果、このようなリモート実行によってタグ付けされたセッションを再生することは、遥かに短時間で済み、ユーザ体験を改善する。
【0097】
[0072]図8に、タグ付けされたセッションのリモート実行に関係する操作を示す。図8を参照すると、まず、タグ付けされたセッションは、ユーザの最新の対話状態と共に、モバイルハンドセット801からプロキシサーバ802に送られる(1)。次に、プロキシサーバ802は、前述の手順を使用して、合致する状態の後に続くイベントを再生する。このプロセスの間、プロキシサーバ802は、1つ又は複数のウェブサーバ803に要求を送り、そのような(1つ又は複数の)サーバから応答を受信する(2)。最後のページロードイベントで、プロキシサーバ802は、ウェブサーバ803のうちの1つからページを得て、次いで、プロキシサーバ802上の現在の対話状態と共に、ページをモバイルハンドセット801に渡す(3)。次いでモバイルハンドセット801は、最後のページのリソースをロードし、残りのイベントの再生を完了する。ステップ(2)では、ページロードイベントのために、プロキシサーバ802はページのHTMLテキストをダウンロードするだけで済み、画像やスクリプトなどのリソースをダウンロードする必要はないことに留意されたい。
【0098】
[0073]ユーザがタグ付けされたセッションを手動で実施することと比較して、リモート実行によるセッション再生は、以下の理由でより効率的である。すなわち、ページのレンダリングがより少なく、モバイルデバイス上では最後のページをレンダリングするだけで済むことと、ウェブサーバからダウンロードされるデータがより少なく、最後のページを除いては、ページに埋め込まれたダウンロードすべきリソースがないことと、より遅くよりレイテンシの長いワイヤレスアクセスネットワークの中を通る要求の数及びデータの総量が、より少ないことである。最後のページ、それに加えてシステムの少量のオーバヘッド(タグ付けされたセッション及び対話状態)が、モバイルデバイスとプロキシサーバとの間で送信される。
【0099】
[0074]以下の図10に、テキスト形式で記憶された記録済みセッション(後述する期限切れeBayオークションの例についての)を示す。図10を参照すると、セッションは、10個の状態(初期状態(この場合では、デフォルト開始状態である状態0)を含む)及び9個のイベントを有する。
【0100】
(サンプル使用ケース)
(自発的ブログ記入)
[0075]自発的ブログ記入については上に述べた。この使用ケースでは、ユーザがセッションのタグ付けを要求すると、システムは、ユーザがgizmodo.comホームページを開いたときからセッションが開始されたと見なすことになる可能性が高い。しかしその後、ユーザが別のウェブサイトに行き、記事内の何らかのテキストを強調表示し、自発的ブログ記入セッションの再生をシステムに要求すると、システムは、「Gen Plan 6(図6参照)」が、ユーザの現在状態と、Gizmodo記事を強調表示した後のユーザの状態とを同じ一般化状態に抽象化する一般化プランであると認識する。この場合、システムは、ここから開始して残りのイベントを再生する。
【0101】
(期限切れeBayオークション)
[0076]この例では、ユーザが特定の収集品(例えばアンティーク印章)に関心があり、1〜2分の自由時間があるときはいつでも、現在何がeBayでオークションにかけられているかチェックしたいと思っていると考えてみる。ユーザは、eBayのホームページに行き、「アンティーク印章」とタイプ入力し、eBayで検索することができる(図9(a))。検索結果が新規ページにロードされた後(図9(b))、ユーザは、オークション商品を期限切れ時刻でソートし(図9(c))、最後に、最も早く期限切れになる商品に関するページをクリックして開く(図9(d))。
【0102】
[0077]この使用ケースでは、システムは、セッションの開始を、ユーザがebay.comホームページに行くときとして正しく見なす。ユーザが現在ランダムなウェブサイトにいるときにセッションの再生を要求すると、システムは、タグ付けされたセッションの第1の状態から開始する。その理由は、どの一般化プランも、他のいずれかの状態及びユーザの現在状態を全く同様に抽象化することができないからである。
【0103】
(エクスプレスチェックアウト)
[0078]この例では、ユーザが時々オンラインショッピングサイトを使用して小物を購入すると考えてみる(図11(a))。ユーザは、ショッピングカートに行き、欲しい商品を見つけ(図11(b))、精算ボタンをクリックする。これにより、ユーザは配送及び支払情報を入力するためのフォームに導かれ(図11(c))、最後に自分の注文の最終見直しのためのページに行く(図11(d))。画面上では(図11(c))、顧客名や配送情報などいくらかの情報はすでに自動的に記入されているが、ユーザはなお支払関連情報を記入する必要があることに留意されたい。システムは、amazon.comなどのサイトにおける「エクスプレスチェックアウト」に類似するものを様々な理由でサポートしないサイトの場合には、それを自分で生み出すオプションをユーザに提供する。
【0104】
(コンピュータシステムの一例)
図12は、本明細書において説明される1つ又は複数の操作を実行することができる例示的なコンピュータシステムを示すブロック図である。図12を参照すると、コンピュータシステム1200は、例示的なクライアント又はサーバコンピュータシステムを備えることができる。コンピュータシステム1200は、情報を通信するための通信機構又はバス1211と、情報を処理するためにバス1211に結合されたプロセッサ1212とを備える。プロセッサ1212は、マイクロプロセッサを含むが、例えばPentium(登録商標)、PowerPC(登録商標)、Alpha(登録商標)などのようなマイクロプロセッサに限定されることはない。
【0105】
システム1200は、プロセッサ1212によって実行されるべき情報及び命令を記憶するためにバス1211に結合された、ランダムアクセスメモリ(RAM)又はその他の動的記憶デバイス1204(メインメモリとして示される)を更に備える。メインメモリ1204はまた、プロセッサ1212による命令の実行中に、一時変数又は他の中間情報を記憶するために使用されてもよい。
【0106】
コンピュータシステム1200はまた、プロセッサ1212のための静的情報及び命令を記憶するためにバス1211に結合された、読取専用メモリ(ROM)及び/又は他の静的記憶デバイス1206と、磁気ディスク又は光ディスク及びそれに対応するディスクドライブなどのデータ記憶デバイス1207とを備える。データ記憶デバイス1207は、情報及び命令を記憶するためにバス1211に結合される。
【0107】
コンピュータシステム1200は、コンピュータユーザに情報を表示するためにバス1211に結合された、陰極線管(CRT)や液晶表示装置(LCD)などの表示デバイス1221に更に結合されてもよい。情報及びコマンド選択をプロセッサ1212に通信するために、文字数字キー及び他のキーを備える文字数字入力デバイス1222をバス1211に結合させることもできる。追加のユーザ入力デバイスは、方向情報及びコマンド選択をプロセッサ1212に通信するため、及び表示装置1221上のカーソル移動を制御するためにバス1211に結合された、マウス、トラックボール、トラックパッド、スタイラス、又はカーソル方向キーなどのカーソルコントロール1223である。
【0108】
バス1211に結合することができる別のデバイスは、ハードコピーデバイス1224であるが、これは紙、フィルム、又は類似のタイプの媒体上に情報を記憶するために使用されてもよい。バス1211に結合することができる別のデバイスは、電話機又は手持ち式パームデバイスと通信するための、有線/ワイヤレス通信機能1225である。
【0109】
本発明では、システム1200のいずれか又は全てのコンポーネント、及び関連するハードウェアを使用することができることに留意されたい。しかし、コンピュータシステムの他の構成がこれらのデバイスのいくつか又は全てを含んでもよいことを理解することができる。また、これらのコンポーネントのいくつか又は全てを、本明細書に述べた機能を実施するモバイルデバイス(例えばハンドセット)に含めることもできることに留意されたい。
【0110】
前述の説明を読んだ後、当業者にはおそらく、本発明の多くの改変及び修正が明らかとなるであろうが、例示として図示及び記述されたどんな特定の実施形態も、限定的なものと見なされることは決して意図されていないことを理解されたい。従って、様々な実施形態の詳細への参照は、それ自体が本発明に必須であると見なされる特徴のみを列挙する特許請求の範囲を限定することを意図されていない。
【産業上の利用可能性】
【0111】
本発明の実施形態は、ユーザによってデバイス上で実施されるタスクの記録及び再生の分野に関する。より詳細には、本発明の実施形態は、モバイルハンドセットユーザのためのウェブベースのタスクの記録及び再生に関する。
【特許請求の範囲】
【請求項1】
記録するセッションの開始を明示的に合図することなくユーザによって今しがた行われた前記セッション中に実施されたウェブベースのタスクを記録するステップであって、ユーザ関与無しに前記セッションの前記開始を自動的に見つけることを含む、ステップと、
前記記録されたウェブベースのタスクを再生する要求を受信するステップと、
前記記録されたウェブベースのタスクを再生するステップと、
を含む方法。
【請求項2】
前記ウェブベースのタスクを記録するステップが、
ユーザの対話状態及び対話コンテキストを監視するサブステップであって、前記対話コンテキストが一番最近の対話状態シーケンスである、サブステップと、
ブラウザ内から対話イベントを傍受するサブステップと、を含み、
各対話イベントが、ある対話状態から別の対話状態への遷移に対応する、請求項1に記載の方法。
【請求項3】
前記対話状態の少なくとも1つが、前記ブラウザ中で現在開いているページと、前記ブラウザによって現在表示されているページ上の強調表示されたテキストと、クリップボードの内容と、前記ブラウザによって現在表示されているページに対して行われるフォーム入力と、入力バー中のリソース識別子の現在の値とからなるグループから選択される対話状態を含み、
更に、前記対話状態の少なくとも1つが、ページロードイベントと、リソース識別子入力イベントと、テキスト強調表示イベントと、テキストコピーイベントと、フォーム入力イベントと、貼付け入力イベントと、リソース識別子コピーイベントとからなるグループから選択される対話イベントを含む、請求項2に記載の方法。
【請求項4】
前記ウェブベースのタスクを記録するステップが、
イベントストリームをセグメント化するサブステップと、
前記タスクに対して影響を有さないイベントを前記イベントストリームから除去して雑音除去済みイベントストリームを生み出すサブステップと、
前記セグメント化された雑音除去済みイベントストリーム中のイベント間の依存関係を決定するサブステップと、
イベントの最後のセグメントから遡って依存連鎖を横断して、イベントを再生可能セッションの一部として前記雑音除去済みイベントストリームから識別するサブステップと、
を含む、請求項1に記載の方法。
【請求項5】
前記イベントストリームをセグメント化するサブステップが、前記イベントストリーム中のイベント間の時間レイテンシに基づいて実施される、請求項4に記載の方法。
【請求項6】
前記イベントストリームをセグメント化するサブステップが、明示的なユーザ入力アクションに基づいて実施される、請求項4に記載の方法。
【請求項7】
イベントを前記イベントストリームから除去するサブステップが、ユーザ関与無しに行われる、請求項4に記載の方法。
【請求項8】
イベントを前記ストリームから除去するサブステップが、前記タスクにとって重要でないユーザナビゲーションから生じるイベントを除去することを含む、請求項4に記載の方法。
【請求項9】
前記依存連鎖を横断するサブステップが、強調表示及びコピー操作と、コピー及び貼付け操作と、入力及びサブミット操作と、からなるグループから選択されるアクションの1つ又は複数の対を識別することを含む、請求項4に記載の方法。
【請求項10】
前記タスクを表すセッションを一般化して、前記セッションを、前記セッションが記録されたときに使用されたコンテキストとは異なるコンテキストに適用可能にするステップを更に含む、請求項1に記載の方法。
【請求項11】
前記セッションを一般化するステップが、前記セッションを抽象化するサブステップを含む、請求項10に記載の方法。
【請求項12】
前記記録されたウェブベースのタスクを再生するステップが、前記記録されたウェブベースのタスクを表す記録済みセッションのコンテキストを、前記セッションが記録されたときのユーザに関連する第1の対話コンテキストから、ユーザの現在の対話コンテキストに適応させて、前記ユーザの現在の対話コンテキストを用いた記録済みセッションを再生するサブステップを含む、請求項1に記載の方法。
【請求項13】
前記コンテキストを適応させるサブステップが、前記記録済みセッション内のどの状態が、前記タスクの再生要求が行われた時点のユーザのコンテキストに合致するかを決定することを含む、請求項12に記載の方法。
【請求項14】
前記記録されたウェブベースのタスクを再生するステップが、前記記録されたウェブベースのタスクの一部である少なくとも1つのウェブページの変化に適応することによって、前記記録されたウェブベースのタスクを表す記録済みセッションを適応させるサブステップを含む、請求項1に記載の方法。
【請求項15】
前記記録されたウェブベースのタスクを再生するステップが、前記記録されたウェブベースのタスクを表す記録済みセッションを、プロキシサーバを使用してリモートに再生するサブステップを含む、請求項1に記載の方法。
【請求項16】
前記記録されたウェブベースのタスクを表す記録済みセッションを、プロキシサーバを使用してリモートに再生するサブステップが、
前記記録済みセッションをユーザの最新の対話状態と共に前記プロキシサーバに送信すること、
1つ又は複数のサーバに1つ又は複数の要求を送信して前記1つ又は複数のサーバから応答を受信することを含めて、前記ユーザの対話状態からの状態を用いてイベントを前記プロキシサーバによって再生すること、
前記プロキシサーバ上の現在の対話状態と共に、前記セッション中の最後のページロードイベントに対応する最後のページを前記プロキシサーバによって送信すること、及び、
前記最後のページによって指定されるリソースをロードして、前記セッションを終了する1つ又は複数のイベントの再生を完了することを含む、請求項15に記載の方法。
【請求項17】
命令が記憶された1つ又は複数の非一時的コンピュータ可読記憶媒体を有する製造品であって、前記命令が、システムによって実行される時に、
記録するセッションの開始を明示的に合図することなくユーザによって今しがた行われた前記セッション中に実施されたウェブベースのタスクを記録するステップであって、ユーザ関与無しに前記セッションの前記開始を自動的に見つけることを含む、ステップと、
前記記録されたウェブベースのタスクを再生する要求を受信するステップと、
前記記録されたウェブベースのタスクを再生するステップと、
を含む方法を前記システムに実施させる、製造品。
【請求項18】
前記ウェブベースのタスクを記録するステップが、
ユーザの対話状態及び対話コンテキストを監視するサブステップであって、前記対話コンテキストが一番最近の対話状態シーケンスである、サブステップと、
ブラウザ内から対話イベントを傍受するサブステップと、
を含み、各対話イベントが、ある対話状態から別の対話状態への遷移に対応する、請求項17に記載の製造品。
【請求項19】
前記ウェブベースのタスクを記録するステップが、
イベントストリームをセグメント化するサブステップと、
前記タスクに対して影響を有さないイベントを前記イベントストリームから除去して雑音除去済みイベントストリームを生み出すサブステップと、
前記セグメント化された雑音除去済みイベントストリーム中のイベント間の依存関係を決定するサブステップと、
イベントの最後のセグメントから遡って依存連鎖を横断して、イベントを再生可能セッションの一部として前記雑音除去済みイベントストリームから識別するサブステップと、
を含む、請求項17に記載の製造品。
【請求項20】
前記記録されたウェブベースのタスクを再生するステップが、前記記録されたウェブベースのタスクを表す記録済みセッションのコンテキストを、前記セッションが記録されたときのユーザに関連する第1の対話コンテキストから、ユーザの現在の対話コンテキストに適応させて、前記ユーザの現在の対話コンテキストを用いた記録済みセッションを再生するサブステップを含む、請求項17に記載の製造品。
【請求項1】
記録するセッションの開始を明示的に合図することなくユーザによって今しがた行われた前記セッション中に実施されたウェブベースのタスクを記録するステップであって、ユーザ関与無しに前記セッションの前記開始を自動的に見つけることを含む、ステップと、
前記記録されたウェブベースのタスクを再生する要求を受信するステップと、
前記記録されたウェブベースのタスクを再生するステップと、
を含む方法。
【請求項2】
前記ウェブベースのタスクを記録するステップが、
ユーザの対話状態及び対話コンテキストを監視するサブステップであって、前記対話コンテキストが一番最近の対話状態シーケンスである、サブステップと、
ブラウザ内から対話イベントを傍受するサブステップと、を含み、
各対話イベントが、ある対話状態から別の対話状態への遷移に対応する、請求項1に記載の方法。
【請求項3】
前記対話状態の少なくとも1つが、前記ブラウザ中で現在開いているページと、前記ブラウザによって現在表示されているページ上の強調表示されたテキストと、クリップボードの内容と、前記ブラウザによって現在表示されているページに対して行われるフォーム入力と、入力バー中のリソース識別子の現在の値とからなるグループから選択される対話状態を含み、
更に、前記対話状態の少なくとも1つが、ページロードイベントと、リソース識別子入力イベントと、テキスト強調表示イベントと、テキストコピーイベントと、フォーム入力イベントと、貼付け入力イベントと、リソース識別子コピーイベントとからなるグループから選択される対話イベントを含む、請求項2に記載の方法。
【請求項4】
前記ウェブベースのタスクを記録するステップが、
イベントストリームをセグメント化するサブステップと、
前記タスクに対して影響を有さないイベントを前記イベントストリームから除去して雑音除去済みイベントストリームを生み出すサブステップと、
前記セグメント化された雑音除去済みイベントストリーム中のイベント間の依存関係を決定するサブステップと、
イベントの最後のセグメントから遡って依存連鎖を横断して、イベントを再生可能セッションの一部として前記雑音除去済みイベントストリームから識別するサブステップと、
を含む、請求項1に記載の方法。
【請求項5】
前記イベントストリームをセグメント化するサブステップが、前記イベントストリーム中のイベント間の時間レイテンシに基づいて実施される、請求項4に記載の方法。
【請求項6】
前記イベントストリームをセグメント化するサブステップが、明示的なユーザ入力アクションに基づいて実施される、請求項4に記載の方法。
【請求項7】
イベントを前記イベントストリームから除去するサブステップが、ユーザ関与無しに行われる、請求項4に記載の方法。
【請求項8】
イベントを前記ストリームから除去するサブステップが、前記タスクにとって重要でないユーザナビゲーションから生じるイベントを除去することを含む、請求項4に記載の方法。
【請求項9】
前記依存連鎖を横断するサブステップが、強調表示及びコピー操作と、コピー及び貼付け操作と、入力及びサブミット操作と、からなるグループから選択されるアクションの1つ又は複数の対を識別することを含む、請求項4に記載の方法。
【請求項10】
前記タスクを表すセッションを一般化して、前記セッションを、前記セッションが記録されたときに使用されたコンテキストとは異なるコンテキストに適用可能にするステップを更に含む、請求項1に記載の方法。
【請求項11】
前記セッションを一般化するステップが、前記セッションを抽象化するサブステップを含む、請求項10に記載の方法。
【請求項12】
前記記録されたウェブベースのタスクを再生するステップが、前記記録されたウェブベースのタスクを表す記録済みセッションのコンテキストを、前記セッションが記録されたときのユーザに関連する第1の対話コンテキストから、ユーザの現在の対話コンテキストに適応させて、前記ユーザの現在の対話コンテキストを用いた記録済みセッションを再生するサブステップを含む、請求項1に記載の方法。
【請求項13】
前記コンテキストを適応させるサブステップが、前記記録済みセッション内のどの状態が、前記タスクの再生要求が行われた時点のユーザのコンテキストに合致するかを決定することを含む、請求項12に記載の方法。
【請求項14】
前記記録されたウェブベースのタスクを再生するステップが、前記記録されたウェブベースのタスクの一部である少なくとも1つのウェブページの変化に適応することによって、前記記録されたウェブベースのタスクを表す記録済みセッションを適応させるサブステップを含む、請求項1に記載の方法。
【請求項15】
前記記録されたウェブベースのタスクを再生するステップが、前記記録されたウェブベースのタスクを表す記録済みセッションを、プロキシサーバを使用してリモートに再生するサブステップを含む、請求項1に記載の方法。
【請求項16】
前記記録されたウェブベースのタスクを表す記録済みセッションを、プロキシサーバを使用してリモートに再生するサブステップが、
前記記録済みセッションをユーザの最新の対話状態と共に前記プロキシサーバに送信すること、
1つ又は複数のサーバに1つ又は複数の要求を送信して前記1つ又は複数のサーバから応答を受信することを含めて、前記ユーザの対話状態からの状態を用いてイベントを前記プロキシサーバによって再生すること、
前記プロキシサーバ上の現在の対話状態と共に、前記セッション中の最後のページロードイベントに対応する最後のページを前記プロキシサーバによって送信すること、及び、
前記最後のページによって指定されるリソースをロードして、前記セッションを終了する1つ又は複数のイベントの再生を完了することを含む、請求項15に記載の方法。
【請求項17】
命令が記憶された1つ又は複数の非一時的コンピュータ可読記憶媒体を有する製造品であって、前記命令が、システムによって実行される時に、
記録するセッションの開始を明示的に合図することなくユーザによって今しがた行われた前記セッション中に実施されたウェブベースのタスクを記録するステップであって、ユーザ関与無しに前記セッションの前記開始を自動的に見つけることを含む、ステップと、
前記記録されたウェブベースのタスクを再生する要求を受信するステップと、
前記記録されたウェブベースのタスクを再生するステップと、
を含む方法を前記システムに実施させる、製造品。
【請求項18】
前記ウェブベースのタスクを記録するステップが、
ユーザの対話状態及び対話コンテキストを監視するサブステップであって、前記対話コンテキストが一番最近の対話状態シーケンスである、サブステップと、
ブラウザ内から対話イベントを傍受するサブステップと、
を含み、各対話イベントが、ある対話状態から別の対話状態への遷移に対応する、請求項17に記載の製造品。
【請求項19】
前記ウェブベースのタスクを記録するステップが、
イベントストリームをセグメント化するサブステップと、
前記タスクに対して影響を有さないイベントを前記イベントストリームから除去して雑音除去済みイベントストリームを生み出すサブステップと、
前記セグメント化された雑音除去済みイベントストリーム中のイベント間の依存関係を決定するサブステップと、
イベントの最後のセグメントから遡って依存連鎖を横断して、イベントを再生可能セッションの一部として前記雑音除去済みイベントストリームから識別するサブステップと、
を含む、請求項17に記載の製造品。
【請求項20】
前記記録されたウェブベースのタスクを再生するステップが、前記記録されたウェブベースのタスクを表す記録済みセッションのコンテキストを、前記セッションが記録されたときのユーザに関連する第1の対話コンテキストから、ユーザの現在の対話コンテキストに適応させて、前記ユーザの現在の対話コンテキストを用いた記録済みセッションを再生するサブステップを含む、請求項17に記載の製造品。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2011−159281(P2011−159281A)
【公開日】平成23年8月18日(2011.8.18)
【国際特許分類】
【外国語出願】
【出願番号】特願2010−279386(P2010−279386)
【出願日】平成22年12月15日(2010.12.15)
【出願人】(392026693)株式会社エヌ・ティ・ティ・ドコモ (5,876)
【Fターム(参考)】
【公開日】平成23年8月18日(2011.8.18)
【国際特許分類】
【出願番号】特願2010−279386(P2010−279386)
【出願日】平成22年12月15日(2010.12.15)
【出願人】(392026693)株式会社エヌ・ティ・ティ・ドコモ (5,876)
【Fターム(参考)】
[ Back to top ]