(57)【要約】本発明は、モバイルデバイスとのやり取りを記録して、デバイス上で利用できるメニューシステム、モバイルアプリケーション、およびモバイルサービスの構造のマップを生成するための機構を提供する。記録／制御環境が、実物のモバイルデバイスに一体化され、モバイルデバイスを制御し、デバイスから得られるデータを記録する。次いで、記録／制御環境は、データをシステムの構造のマップとして保存する。このグラフが、デバイス上で利用できるすべてのページを表す状態と、デバイスの個々の状態の間をナビゲートするすべての手段を表すリンクとを備えて生成されると、このグラフを、デバイスとのやり取りの体験を再現するために使用することができる。その結果、ユーザが、マップ構造を使用してモバイルデバイスとのやり取りを再生するランタイム環境によって、表現によるデバイスと仮想的にやり取りすることができる。
2010525621.tif 000002
【特許請求の範囲】
【請求項１】
モバイルデバイスとのやり取りを、後の仮想環境での模擬のために記録する方法であって、
インターフェイスによってモバイルデバイスへの制御入力を検出するステップと、
前記モバイルデバイスにより生じる応答を抽出するステップと、
前記応答がこれまでに検出されていない場合に、前記応答を保存するステップと、を含んでいる方法。
【請求項２】
未だナビゲートされていない経路を割り出し、前記経路を選択するための制御入力を選択するステップをさらに含んでいる、請求項１に記載の方法。
【請求項３】
前記応答を、存在する状態および状態間の前置きシーケンスに分割するステップをさらに含んでいる、請求項１に記載の方法。
【請求項４】
前記存在する状態から動的情報を除去することによって、コニカルサンプルを生成するステップをさらに含んでいる、請求項３に記載の方法。
【請求項５】
前記コニカルサンプルを、これまでのすべてのコニカルサンプルと比較し、前記コニカルサンプルがこれまでに保存されているか否かを判断するステップをさらに含んでいる、請求項４に記載の方法。
【請求項６】
これまでに保存された応答をユーザの選択にもとづいてナビゲートするアプリケーションを実行するステップをさらに含んでいる、請求項１に記載の方法。
【請求項７】
前記アプリケーションは、ユーザへと強調すべき所望の特徴一式にもとづいて初期状態を表示する、請求項６に記載の方法。
【請求項８】
前記アプリケーションは、モバイルデバイスの仮想の表現を表示して、ユーザがモバイルデバイスとの物理的なやり取りを模擬すべく仮想のインターフェイスによってナビゲートを行うことができるようにする、請求項６に記載の方法。
【請求項９】
仮想環境を通じてモバイルデバイスとの物理的なやり取りを模擬するための方法であって、
仮想デバイスインタラクティブインターフェイスを表示するステップと、
前記仮想デバイスインタラクティブインターフェイスを通じてユーザの選択を受け付けるステップと、
前記ユーザの選択に応答してアニメーションを再生するステップと、を含んでいる方法。
【請求項１０】
前記仮想デバイスインタラクティブインターフェイスは、実物のモバイルデバイスとの実際のやり取りを模擬する実物のモバイルデバイスを表示する、請求項９に記載の方法。
【請求項１１】
初期の仮想デバイスインタラクティブインターフェイスは、ユーザへと強調すべき一式のやり取りにもとづいて選択される、請求項９に記載の方法。
【請求項１２】
前記再生は、モバイルデバイスの実際の応答を模擬している、請求項９に記載の方法。
【請求項１３】
ユーザのさらなる選択を待ち、前記ユーザのさらなる選択に応答して該当のアニメーションを再生するステップをさらに含んでいる、請求項９に記載の方法。
【請求項１４】
モバイルデバイスとのやり取りを、後の仮想環境での模擬のために記録する装置であって、
モバイルデバイスへとつながるように構成されたインターフェイスと、
前記インターフェイスに通信可能に接続されたプロセッサと、を備えており、
前記プロセッサは、
前記インターフェイスによる前記モバイルデバイスへの制御入力を選択し、
前記モバイルデバイスにより生じる応答を抽出し、
前記応答がこれまでに検出されていない場合に、前記応答を保存する、ことによって、モバイルデバイスとのやり取りを記録するようにプログラムされている装置。
【請求項１５】
前記プロセッサは、未だナビゲートされていない経路を割り出し、前記経路を選択するための制御入力を選択するようにさらにプログラムされている、請求項１４に記載の装置。
【請求項１６】
前記プロセッサは、前記応答を、存在する状態および状態間の前置きシーケンスに分割するようにさらにプログラムされている、請求項１４に記載の装置。
【請求項１７】
前記プロセッサは、前記存在する状態から動的情報を除去することによって、コニカルサンプルを生成するようにさらにプログラムされている、請求項１６に記載の装置。
【請求項１８】
仮想環境を通じて実物のモバイルデバイスとのやり取りを模擬するための装置であって、
ユーザの入力へと通信可能に接続されたプロセッサを備えており、
前記プロセッサは、
実物のモバイルデバイスを表現する仮想デバイスインタラクティブインターフェイスを表示し、
前記ユーザの入力を介してユーザの選択を受け付け、
前記ユーザの選択にもとづく実物のモバイルデバイスの実際の応答を模擬すべく、前記ユーザの選択に応答してアニメーションを再生する、ようにプログラムされている装置。
【請求項１９】
初期の仮想デバイスインタラクティブインターフェイスは、ユーザへと強調すべき一式のやり取りにもとづいて選択される、請求項１８に記載の装置。
【請求項２０】
前記プロセッサは、ユーザのさらなる選択を待ち、前記ユーザのさらなる選択に応答して該当のアニメーションを再生するようにさらにプログラムされている、請求項１８に記載の装置。
【請求項２１】
モバイルデバイスとのやり取りを後の仮想環境での模擬のために記録するためのプログラムコードを含んでいる、コンピュータで読み取り可能な媒体であって、
前記プログラムコードは、
インターフェイスによって前記モバイルデバイスへの制御入力を検出するステップと、
前記モバイルデバイスにより生じる応答を抽出するステップと、
前記応答がこれまでに検出されていない場合に、前記応答を保存するステップと、を含んでいる方法の実行を生じさせる、コンピュータで読み取り可能な媒体。
【請求項２２】
前記プログラムコードは、未だナビゲートされていない経路を割り出し、前記経路を選択するための制御入力を選択するステップをさらに含んでいる方法の実行を生じさせる、請求項２１に記載のコンピュータで読み取り可能な媒体。
【請求項２３】
前記プログラムコードは、前記応答を、存在する状態および状態間の前置きシーケンスに分割するステップをさらに含んでいる方法の実行を生じさせる、請求項２１に記載のコンピュータで読み取り可能な媒体。
【請求項２４】
前記プログラムコードは、前記存在する状態から動的情報を除去することによって、コニカルサンプルを生成するステップをさらに含んでいる方法の実行を生じさせる、請求項２３に記載のコンピュータで読み取り可能な媒体。
【請求項２５】
仮想環境を通じてモバイルデバイスとの実際のやり取りを模擬するためのプログラムコードを含んでいる、コンピュータで読み取り可能な媒体であって、
前記プログラムコードは、
仮想デバイスインタラクティブインターフェイスを表示するステップと、
前記仮想デバイスインタラクティブインターフェイスにもとづいてユーザの選択を受け付けるステップと、
前記ユーザの選択に応答してアニメーションを再生するステップと、を含んでいる方法の実行を生じさせる、コンピュータで読み取り可能な媒体。
【請求項２６】
前記プログラムコードは、ユーザへと強調すべき一式のやり取りにもとづいて初期の仮想デバイスインタラクティブインターフェイスを選択するステップをさらに含んでいる方法の実行を生じさせる、請求項２５に記載のコンピュータで読み取り可能な媒体。
【請求項２７】
前記プログラムコードは、モバイルデバイスの実際の応答を模擬するステップをさらに含んでいる方法の実行を生じさせる、請求項２５に記載のコンピュータで読み取り可能な媒体。
【請求項２８】
前記プログラムコードは、ユーザのさらなる選択を待ち、前記ユーザのさらなる選択に応答して該当のアニメーションを再生するステップをさらに含んでいる方法の実行を生じさせる、請求項２５に記載のコンピュータで読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想デバイスのインタラクティブな記録に関する。
【０００２】
（関連出願）
本発明は、「Ｖｉｒｔｕａｌ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｒｅｃｏｒｄｉｎｇ」という名称の２００７年２月９日付の米国特許仮出願第６０／９００，４０５号について、米国特許法第１１９条（ｅ）に規定の利益を主張し、この米国特許仮出願の内容は、ここでの言及によって本明細書に援用される。
【背景技術】
【０００３】
きわめてさまざまな携帯情報処理装置（「モバイルデバイス」）が、年を追って製造されている。モバイルデバイスの消費者は、デバイスの購入時にさまざまな選択肢を目前にし、全消費者の７０％超が、購入前に何らかの種類のリサーチをインターネット上で行い、全消費者のおおむね１５％が、デバイスをインターネットから実際に購入している。
【０００４】
これまでのところ、モバイルデバイスそのもの、その無線データサービス（「モバイルサービス」）、ならびにダウンロード可能なアプリケーション（「モバイルアプリケーション」）の機能について、概略的な情報だけしか入手することができない。この情報は、通常は、表示画面のサイズ、メモリの大きさ、無線ネットワークの互換性、および電池寿命の情報など、デバイスの仕様で構成されている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
モバイルデバイス、モバイルサービス、およびモバイルアプリケーションがますます高度になるにつれ、デバイスおよび消費者にとって利用可能なサービスについて、より広範囲かつインタラクティブなプレビューを提供する必要が存在している。これまでに、ＨＴＭＬまたはＡｄｏｂｅ  Ｆｌａｓｈなどといった標準的なオーサリングツールで生成される視覚的な実演を使用して、モバイル製品およびサービスを表現することが試みられているが、これらは、通常は、提供される実際の機能について、限定的かつ非インタラクティブな表現を提供するにすぎない。それらの表現は、それらの生成方法（通常は、デバイスのＬＣＤディスプレイの静止画を撮影し、それら個々のフレームを実際のアプリケーションまたはサービスのモックアップへとつなぎ合わせることによる）の本質によって制限される。また、実演を前もって生成しておかなければならないため、それらを本物のデバイス上でのアプリケーションの実際の体験と同様の方法でインタラクティブにすることが、これまでのところ不可能である。
【０００６】
本発明は、デバイス上で利用できるメニューシステム、モバイルアプリケーション、および、モバイルサービスの構造のマップまたはグラフを生成するという目標において、モバイルデバイスとのやり取りを記録およびマッピングするための機構を提供する。その結果、グラフに記録された情報を、後の時点でインタラクティブに再生することができる。
【課題を解決するための手段】
【０００７】
記録は、何らかの方法で記録および制御のための環境（「記録／制御環境」）に一体化された実物のモバイルデバイスとやり取りすることによって行われる。この環境は、モバイルデバイスのインターフェイスを制御して、デバイスから生成される結果としての映像および音声データを記録する能力を有している。
【０００８】
モバイルデバイスのメニュー構造において利用できる各ページを、大きな多方向のグラフにおいて、状態として特定および表現することができる。グラフの各状態は、グラフ内の別の状態へと、ページ間のナビゲートに使用される経路を表すリンクによって接続される。例えば、モバイルデバイスのホームページが、グラフにおいて「ホーム」と標識される状態によって表現され、デバイス上のアプリケーションのメニューが、グラフにおいて「メニュー」と標識される別の状態によって表現される場合、これら２つのページの間をナビゲートするために使用されるキーが、グラフのこれらの状態の間のリンクを形成するであろう。
【０００９】
このグラフが、デバイス上で利用できるすべてのページを表す状態と、デバイスの個々の状態の間をナビゲートするすべての手段を表すリンクとを備えて生成されると、このグラフを、デバイスとのやり取りの体験を再現するために使用することができる。消費者は、仮想のデバイスとやり取りするときに、デバイスの記録済みの種々の状態へとナビゲートするために、仮想のナビゲーションボタンまたは仮想のタッチ画面を使用することができる。各状態へとナビゲートするときに、本物の記録が再生され、その状態においてデバイス上で見られるであろう内容を模擬する。この方法で、グラフを自由にナビゲートして、デバイスまたはデバイスから利用できるアプリケーションおよびサービスを体験することができる。
【００１０】
典型的なモバイルデバイスは、実際のところ、数１００万もの異なる状態および構成を有する可能性があるが、デバイスを表現する豊富な体験を提供するという目的においては、通常は約１００万の異なる状態および各状態の間のナビゲーション経路をマッピングするだけでよい。この多数の状態を、各状態へと手動で移動して、やり取りを記録することによってマッピングでき、あるいは未だマッピングされていない状態を探して自動的にデバイスのやり取りのグラフを作り出す自動化プロセスによって行ってもよい。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態によるデザインタイム環境およびランタイム環境を採用する典型的なシステムのブロック図を示している。
【図２】本発明の実施の形態による典型的な記録／制御環境のロジックを示している。
【図３】本発明の実施の形態による典型的なランタイムデータ変換のロジックを示している。
【図４】本発明の実施の形態による典型的なシリアル／パラレルバス変換を示している。
【図５】本発明の実施の形態による典型的な仮想デバイスインタラクティブインターフェイスのロジックを示している。
【図６】本発明の実施の形態によるデザインタイム環境およびランタイム環境の属性を採用する典型的な装置を示している。
【図７】本発明の実施の形態による典型的なデザインタイム環境インターフェイスを示している。
【図８】本発明の実施の形態による典型的なランタイム環境インターフェイスを示している。
【発明を実施するための形態】
【００１２】
以下の好ましい実施の形態の説明においては、本明細書の一部を構成する添付の図面を参照するが、添付の図面には、本発明を実行できる具体的な実施の形態が、例として示されている。他の実施の形態も可能であり、本発明の好ましい実施の形態の技術的範囲から離れることなく、構造的な変更が可能であることを、理解すべきである。
【００１３】
図１は、実際のモバイルデバイス１０２と、デザインタイム環境１０４と、ランタイム環境１０６とを含んでいるシステム１００の代表的なブロック図を示している。モバイルデバイス１０２は、任意の携帯情報処理装置であってよい。デザインタイム環境１０４は、モバイルデバイスのインターフェイスを制御し、デバイスから生み出される結果としての映像および音声データを記録する能力を有している。最後に、ランタイム環境１０６は、デザインタイム環境１０４からのデータをユーザへの再生のための媒体へと変換し、ユーザが、実際のモバイルデバイスに関する外観、モバイルサービス、およびモバイルアプリケーションを含む模擬のモバイルデバイスをインタラクティブにナビゲートできるようにする。
【００１４】
モバイルデバイス１０２は、モバイルサービスおよびモバイルアプリケーションの実行または閲覧に一般的に使用されている携帯電話機またはＰＤＡなどの携帯情報処理装置である。モバイルデバイスの最も一般的な構成は、小型の携帯デバイスであるが、デジタルオーディオプレイヤー（例えば、ＭＰ３プレイヤー）などといった多数の他のデバイスであってもよい。同様の表示装置を有することができるデジタルカメラも、本発明の技術的範囲に包含される。他のモバイルデバイスとして、ラップトップコンピュータやＧＰＳ装置を挙げることができる。
【００１５】
モバイルデバイス１０２は、典型的には、音声スピーカ１０８、表示装置１１０、および１つ以上の入力装置１１２（キーパッドまたはタッチ画面など）を有している。また、モバイルデバイス１０２は、典型的には、オペレーティングシステム１１４を有している。スピーカ１０８が、キーが押されたときや、アプリケーションがデバイス上で動作しているときに、音を生成することができる。モバイル表示装置１１０は、モバイルデバイスの状態についての情報を表示するために使用され、デバイス上で利用できるモバイルコンテンツまたは他の情報サービスとのやり取りを可能にするために使用されるモバイルデバイスの表示装置である。オペレーティングシステム１１４は、モバイルデバイスの機能を制御するために使用される処理システムである。オペレーティングシステムを、中央演算処理装置（ＣＰＵ）、揮発および不揮発コンピュータメモリ、入力および出力信号線、ならびにデバイスの機能を制御する一式の実行可能なインストラクションで構成することができる。
【００１６】
表示装置１１０の最も一般的な構成は、小型のフラットパネルＬＣＤディスプレイであるが、プラズマまたはＯＬＥＤ技術など、他の任意の種類の表示装置で製作することも可能である。オペレーティングシステム１１４の最も一般的な構成は、ＢＲＥＷ、Ｓｙｍｂｉａｎ、Ｗｉｎｄｏｗｓ（登録商標）  Ｍｏｂｉｌｅ、Ｐａｌｍ  ＯＳ、およびＬｉｎｕｘなどといったオープンな開発プラットフォーム、ならびにモバイルデバイスの製造者によって開発される種々の独自のプラットフォームである。
【００１７】
モバイルデバイス１０２は、通常は、モバイルアプリケーションまたはモバイルサービスを選択または制御するための入力装置１１２を備えている。入力装置１１２として、ボタン、つまみ、タッチ画面、キーパッド、数字パッド、またはこれらの任意の組み合わせを挙げることができる。例えば、モバイルデバイスが、入力装置と表示装置とを１つのユニットへと合体させるタッチ画面センサを備えることができる。タッチ画面の入力を、デバイス上で実行されるメニューまたはアプリケーションを選択するために使用することができる。タッチ画面は、デバイスのＬＣＤ表示装置を覆って装着され、ユーザがスタイラスまたは他の物体を使用して画面の或る領域をクリックできるようにするタッチ感知パネルであってよい。タッチ画面に代え、あるいはタッチ画面に組み合わせて、モバイルデバイスが、キーパッドボタンを備えてもよい。ボタンを、デバイス上のメニューの間をナビゲートするために使用することができ、デバイスに文字および数字データを入力するために使用することができる。モバイルデバイスは、数字の０〜９、＃、＊、ならびに方向矢印、選択、左および右メニューキー、ならびに送信および終了キーなどといった一式のナビゲーションキーを有する数値パッドを含むことができる。いくつかのデバイスは、数値データを入力するための完全なキーパッドを有することができ、あるいは別々のデバイスモードで利用することができる複数のキーパッドを有することができる。
【００１８】
通信データおよび制御信号１１８が、表示装置１１０上でのグラフィック画像の形成および他の情報の表示の目的で、オペレーティングシステム１１４から表示装置１１０へと転送される情報を構成する。情報がオペレーティングシステム１１４から表示装置１１０へと渡されるとき、表示情報の変換が、種々の中間のハードウェアグラフィックプロセッサによって生じてもよい。変換は、パラレルデータストリーム（データが多数の線によって一度に転送される）をシリアルデータストリーム（データがより少数の線にて転送される）へと変換するなど、単純であってよい。また、より高度な描画またはモデル化コマンドを最終的なビットマップ視覚フォーマットへと変換するなど、グラフィック処理ユニット（ＧＰＵ）によって実行されるより複雑な変換が存在してもよい。情報は、種々の処理段階においてさまざまな形態をとることができるが、情報は、表示装置上にグラフィックまたは他の情報を表示するという任務を達成することを目的としており、特定の状態においてデータがどのフォーマットで利用可能であっても、それらは本発明の技術的範囲に包含される。
【００１９】
音声データ１２０が、デバイス１０２において利用可能な聴覚情報のすべてである。この情報は、音声データをデザインタイム環境１０４にとって利用可能にするために、実際のデバイスから抽出される。抽出は、アナログ−デジタル変換器によることができる。これは、通常は、デバイスが設けられたヘッドセットへと接続を行うことによって実行され、あるいはデバイスからスピーカを取り除き、音声がスピーカへと生成されると考えられる地点へと接続を行うことによって実行される。また、この情報を、デジタルへの変換が不要であると考えられる元々のデジタル音声フォーマットでデバイスから抽出することも可能である。
【００２０】
パッシブデータ抽出が、通信データおよび制御信号１１８を傍受およびコピーし、この生の情報を記録／制御環境１３０にとって利用可能にするための手段である。傍受の目的は、情報を表示装置１１０へと転送されるときに受動的にコピーすることにあるが、情報を抽出するために破壊的な手法を用いることも同様に有効である。通信データを抽出するための破壊的な手法は、モバイル表示装置の動作を妨げる可能性があるが、これは、記録／制御環境１３０のみがデバイスとやり取りすればよい場合には、問題にならないと考えられる。
【００２１】
パッシブデータ抽出のための好ましい構成は、表示装置１１０への転送時に通信データおよび制御信号１１８の信号レベルを検出して、その情報のデジタルコピーを生成することができるハードウェアセンサである。ロジック分析器などの一般に入手可能な製品、ならびにモバイルデバイス１０２からこのデジタル情報を抽出するためにとくに設計された専用のハードウェアを、利用することが可能である。この情報を抽出するために使用されるあらゆる方法が、本発明の技術的範囲に包含される。
【００２２】
パッシブデータ抽出の好ましい構成は、通信データおよび制御信号１１８のハードウェアベースの抽出を使用するが、ソフトウェアエージェントベースの同様の手法も、記録／制御環境１３０へと供給される生の情報を抽出するために、代案として使用可能である。この場合には、ソフトウェアエージェントは、モバイルオペレーティングシステム１１４そのものにおいて動作し、モバイルデバイス１０２上に発見できる任意の標準的な通信チャネルによって記録／制御環境１３０と通信するソフトウェアプログラムであると考えられる。この通信チャネルとして、モバイルオペレーティングシステム１１４上で動作しているアプリケーションとの情報の交換に使用される無線通信、ＵＳＢ、シリアル、Ｂｌｕｅｔｏｏｔｈ、または多数の他の通信プロトコルを挙げることができる。
【００２３】
ナビゲーション制御１２４は、デザインタイム環境１０４からモバイルデバイス１０２を制御するための手段である。好ましいデバイスとの一体化は、キーパッドのボタンの押し込みおよびタッチ画面の選択を電気的に刺激するためのハードウェアベースの一体化を使用することである。これを、デバイスのオペレーティングシステム１１４とのソフトウェアインターフェイスを使用して制御することも可能である。ソフトウェアインターフェイスが、デバイスのデータケーブルまたはＢｌｕｅｔｏｏｔｈなどの無線通信によって、デバイス上で動作するソフトウェアエージェントと通信することができる。この通信チャネルとして、モバイルオペレーティングシステム１１４上で動作しているアプリケーションとの情報の交換に使用される無線通信、ＵＳＢ、シリアル、Ｂｌｕｅｔｏｏｔｈ、または多数の他の通信プロトコルを挙げることができる。
【００２４】
記録／制御環境１３０が、モバイルデバイス１０２またはその入力装置１１２（キーパッドボタンまたはタッチ画面など）を刺激し、デバイスからの音声応答１２０または映像応答１２２を記録するために使用される。記録環境の１つの目標は、デバイスのユーザインターフェイスの一意の状態またはページを特定し、それらのページの間のナビゲーションリンクを確立することにある。ナビゲーションリンクは、モバイルデバイス１０２の或るページから別のページへとナビゲートするために押さなければならないキーまたはタッチ画面の一領域である。記録環境を、モバイルデバイス１０２のメニューを手動で移動する者が使用することができ、あるいは記録環境を、マッピングされていないナビゲーション経路を探索し、デバイスの状態を自動的に検出する自動コンピュータプロセスによって制御することができる。自動コンピュータプロセスは、未だマッピングされていないナビゲーション経路を割り出した後で、入力装置１１２を刺激し、あるいは入力装置をバイパスしてオペレーティングシステム１１４へと直接に入力信号を刺激することによって、マッピングされていない状態へとナビゲートするようにデバイス１０２を制御することができる。したがって、モバイルデバイス１０２は、デバイスの入力１１２であっても、あるいはオペレーティングシステム１１４への直接の指令であっても、インターフェイスによって刺激される。
【００２５】
グラフ映像音声ストレージ１３８のシステムは、デザインタイムにおいてデバイスとのやり取りを記録する際に保存される情報の収納庫である。このストレージシステムは、標準的なリレーショナルデータベースシステムであってよく、あるいは単純に、記録情報を有する一式のフォーマット済みファイルであってよい。記録情報は、大きな多方向グラフを表すデータベーステーブルの要素のフォーマットをとることができる。このグラフは、モバイルデバイス１０２上のメニューおよびアプリケーションの構造のマップを表す。さらに、ストレージシステムは、モバイルデバイスから記録された音声および映像（または、静止画）の両方の情報を含んでいる。
【００２６】
ランタイム環境１０６は、ランタイムサーバ１３２およびランタイムクライアント１３４を含むことができる。ランタイム環境１０６は、ユーザによるインタラクションおよびデザインタイム環境１０４からの記録済み情報の再生を可能にする。ランタイム環境１０６を、デザインタイム環境１０４からの情報をユーザへの再生のための形態へと変換するランタイムサーバ１３２と、ユーザがモバイルデバイスの仮想の提示とインタラクションできるようにするランタイムクライアント１３４とに分割することができる。あるいは、ランタイムサーバ１３２およびランタイムクライアント１３４を、情報をおおむね同時に変換および再生するための単一のユニットへと統合してもよい。
【００２７】
ランタイムサーバ１３２は、標準的なウェブアプリケーションサーバであってよい。このサーバは、専用設計のサーバであってもよいが、好ましくはＨＴＴＰプロトコルを使用する標準的なウェブ要求および応答のやり取りに従う。非標準のクライアントが使用される場合には、ランタイムサーバ１３２も、非標準のフォーマットをサポートすることができ、ＨＴＴＰプロトコルの標準に従う必要はないと考えられる。しかしながら、これは、システムが消費者にとってアクセスしにくいものになりかねないため、あまり望ましくない。
【００２８】
ランタイムデータ変換１４２が、モバイルデバイスとのやり取りの記録時にデザインタイム環境１０４から得られた情報を、インターネットウェブサーバおよびインターネットウェブブラウザなどの標準的なプラットフォームから仮想のデバイスを行き来するために使用することができるフォーマットへと変換する。この工程は、主として、ホストされるウェブ環境におけるデータ転送の必要を最小限にするために、記録された情報のより低い分解能およびより低い忠実度への変換を担当する。このプロセスは、別個の工程として最も効率的に実行されるが、記録のプロセスへと組み合わせ、情報が記録されるときに変換を行うようにすることも可能である。また、ランタイム要求システムへと組み合わせることも可能であるが、これは、同じ情報について複数回の変換が必要になりうるため、かなり非効率的であると考えられる。
【００２９】
ランタイムデータストレージ１４０は、インタラクティブデバイスのセッションのランタイム実行時にアクセスされる情報の収納庫である。このストレージシステムは、標準的なリレーショナルデータベースシステムであってよく、あるいは記録情報を有する一式のフォーマット済みファイルであってよい。ランタイム情報は、通常は、ディスクドライブに保存されたフォーマット済み画像、映像、音声、およびＸＭＬファイルのフォーマットをとる。ランタイムデータストレージ１４０は、グラフ／映像／音声ストレージ１３８と同じシステムであってもよいが、通常は、新たな環境へのより容易な展開を可能にするために、これらのシステムを別々にしておくことが好ましい。
【００３０】
仮想デバイスランタイムサーバ１４４は、通常は、標準的なウェブアプリケーションサーバである。このサーバは、専用設計のサーバであってよいが、通常は、ＨＴＴＰプロトコルを使用する標準的なウェブ要求および応答のやり取りに従うべきである。非標準のクライアントが使用される場合には、ランタイムサーバも、非標準のフォーマットをサポートすることができ、ＨＴＴＰプロトコルの標準に従う必要はないと考えられる。しかしながら、これは、システムが消費者にとってアクセスしにくいものになりかねないため、あまり望ましくない。
【００３１】
ランタイムクライアント１３４は、標準的なウェブブラウザアプリケーションであってよい仮想デバイスインタラクティブインターフェイス１４６で構成される。このクライアントは、専用設計のクライアントであってもよい。好ましくは、ランタイムクライアント１３４は、ＨＴＴＰプロトコルを使用する標準的なウェブ要求および応答のやり取りに従う。非標準のサーバが使用される場合には、ランタイムクライアント１３４も、非標準のフォーマットをサポートすることができ、ＨＴＴＰプロトコルの標準に従う必要はないと考えられる。しかしながら、これは、システムが消費者にとってアクセスしにくいものになりかねないため、あまり望ましくない。
【００３２】
デザインタイム環境１０４ならびにランタイムサーバ１３２およびランタイムクライアント１３４を含むランタイム環境１０６をすべて、汎用コンピュータ１３６に収容することができる。各環境を、同じ汎用コンピュータに保存しても、別々のコンピュータに保存してもよい。汎用コンピュータ１３６は、ソフトウェアアプリケーションまたは他の電子インストラクションを実行できる任意のコンピュータシステムである。これには、Ｗｉｎｄｏｗｓ（登録商標）  ＰＣやＡｐｐｌｅ  Ｍａｃｉｎｔｏｓｈなどといった一般的に入手できるコンピュータハードウェアおよびオペレーティングシステム、あるいはＵｎｉｘ（登録商標）またはＬｉｎｕｘサーバなどといったサーバベースのシステムが含まれる。また、汎用のＣＰＵまたは専用設計のプログラマブル論理プロセッサ（ＣＰＬＤ、ＦＰＧＡ、または他の任意の同種のプログラマブル論理技術をベースとする）を使用してインストラクションを処理するように設計された専用のハードウェアも挙げることができる。
【００３３】
図２は、図１のデザインタイム環境１０４における記録／制御環境１３０のロジックの実施の形態を示している。記録／制御環境のロジック２００が、モバイルデバイス１０２から音声および映像データを取得し、その情報がすでに保存された情報の重複でないかどうかを判断する。モバイルデバイスのそれぞれのユーザによる変化または自動の変化において、記録／制御環境が、情報を取得し、すでに保存済みの情報と比較し、すでに保存済みの情報にリンクおよびページを適切に配置する。
【００３４】
図２を参照すると、ブロック２０２の左上の角において、音声サンプル記録工程が、記録のプロセスにおいて、モバイルデバイス１０２によって生成されるあらゆる音声データ１２０を記録する時点である。音声情報１２０は、タッチ画面またはキーパッドボタンなどの入力装置１１２からのデバイスへの刺激に応答して生成される。ブロック２０４の映像アニメーション記録において、記録／制御環境１３０は、モバイルデバイス１０２によって生成されるあらゆる視覚情報１２２（映像または静止画）を記録する。映像情報１２２も、入力装置１１２からのデバイスへの刺激に応答して生成される。記録される映像サンプルは、同時に記録される音声情報と同期される。
【００３５】
音声および映像が記録されて同期された後、ブロック２０６において動的情報がフィルタ処理される。この工程は、モバイルデバイス１０２によって動的に生成されうる映像情報の一部の除去を担当する。このフィルタ処理は、映像サンプルをモバイルデバイスのユーザインターフェイスの他の公知の状態との比較のために準備するために必要である。動的情報の例として、画面のうちの現在の日付または時刻を含んでいる領域や、画面のうちで動的なネットワーク信号強度情報を表示する領域が挙げられる。動的情報を除去することによって、得られる静止画または映像サンプルのコニカルサンプルを直接的に比較することが可能である。
【００３６】
既存ページ検出２０８は、最近に記録された映像サンプルをグラフ／映像／音声ストレージ１３８に保存されているすべての既存のサンプルと比較し、映像サンプルが、モバイルデバイス１０２において過去に見られた状態からのものであるかを判断する工程である。新規の記録を既存の記録と比較することは、保存されているすべてのサンプルを走査し、１対１の比較を行うことによって実行できる。代案として、既存の状態の発見を、直接的な一致を見ない画像を速やかに除去してシステムの性能を向上させるために使用することができるハッシュ値の計算など、多数の標準的なデータ参照技法によって達成することもできる。種々の技法を、既存の画面検出の性能を改善するために使用することができ、それらはすべて、同じ目標を達成し、本発明の技術的範囲に包含される。
【００３７】
次の工程２１０は、今回保存された記録が、すでに保存されている記録の重複でないかどうかを判断する。この決定経路は、画面が重複であると考えられるか否かを判断する。
【００３８】
今回保存された記録が、すでに保存済みの記録の中に見いだされない場合、決定樹は、ブロック２１２へと分岐する。今回保存された記録が、デザインタイム環境１０４がこれまでに見つけていない状態または画面である場合、モバイルデバイスのユーザインターフェイスにおいて利用可能な状態のグラフに、新たなノードが生成される。これが、環境１０４によるこの状態の最初の発見であるが、環境１０４が、将来においてデバイスの他の経路からこの状態に遭遇する可能性があるため、この状態が、他に特定される一意のページのすべてとともにデータベース１３８に保存される。
【００３９】
記録／制御環境１３０は、現在の状態がシステムにおける一意の状態であると判断した場合、次の工程２１４において、音声および映像サンプルをこの一意の状態に関連付けてデータベース１３８へと保存する。一部の映像アニメーションについては、画面が決して終わらないループのアニメーションに進む可能性がある。例えば、点滅するカーソルを有する画面、または小さなアニメーション付きアイコンを有する画面が、終わらないループのアニメーションでありうる。この手のアニメーションは終わりを有さず、したがってブロック２１６において、アニメーションが一連のフレームにおいて連続的にループすることを示す特別なフォーマットでデータベースに保存されなければならない。
【００４０】
ブロック２１０において、今回保存された記録が、すでに保存済みの記録に見いだされる場合、決定樹はブロック２１８へと分岐する。記録／制御環境１３０が、これがグラフ１３８における重複の状態であり、モバイルデバイス１０２がこれまでに見たことがない新たなナビゲーション経路を通ってこの状態に達したと判断する。モバイルデバイスにおいて、同じ状態で終わるが、デバイスの最終状態に応じて異なるアニメーションを使用することは、一般的である。例えば、画面の像を、或る状態から別の状態へとゆっくりとディゾルブさせることがある。これらの場合、映像アニメーションを、状態間の前置きのシーケンスとしてグラフの状態間のリンクに関連付けることが好ましい。また、記録されたアニメーションの全体のうちのどの部分がリンクに特有であるか、およびどの部分が同じ状態へと向かうすべてのリンクに共通であるかを判断することが好ましい。映像のどの部分が最終状態へとつながるすべての経路に共通であるかを判断するためには、到来して記録されるすべてのアニメーションを終わりから始まりへと比較し、いつアニメーションが分岐し始めるかを判断するだけでよい。この同じ手法を、状態について記録された音声データについても採用することができる。
【００４１】
映像のどの部分が最終状態にとって共通であるか、およびどの部分が状態への前置きまたはリンクの一部であるかが判断されると、リンクにのみ関係するデータを、ブロック２２０において保存することができる。残りの共通の映像および音声情報は、最終状態に関連付けてすでに保存されているため、この時点で破棄することができる。
【００４２】
或る状態について記録された映像および音声データについて、その状態へとつながるアニメーションに関して少なくとも２つのサンプルが収集されるまでは、どの部分が到来するすべての経路にとって共通であるかを判断することができない。場合によっては、映像について、到来するすべての状態に共通な部分を最終的に判断できるまでに、特定の状態へとつながりうるすべての経路を分析する必要がある。グラフ内のすべてのリンクを行き来する前に、共通映像−対−前置き映像の区別について誤った評価が行われる可能性があるため、ブロック２２２において、既存の状態を共通映像−対−前置き映像の異なる区分へと分割することが好ましいかもしれない。
【００４３】
デバイスのユーザインターフェイスの任意の所与の状態から、その状態からどのナビゲーション経路がすでにとられたか、およびどのナビゲーション経路がまだ行き来されていないかが既知である。ステップ２２４において、環境１３０は、この情報を使用して、未だ行き来されていないボタンまたはタッチ画面の領域を有効にすることができる。この工程は必須ではないが、この工程がないと、すでに調査済みの状態へと行き来する可能性があるため、この工程が好ましい。これが行われる場合、それらの状態を、すでにシステムへとマッピングされているため、単純に無視することができる。
【００４４】
次の工程２２６は、ユーザ／自動入力を待つ待機である。この工程は、記録インターフェイスを手動で使用するユーザからの入力、またはデバイスの状態の生成および記録を制御している自動コンピュータプロセスからの入力を待つ。待機２２８は、通常は、デバイスが自然に何らかの別の状態へと進んでしまうような長さでない限りにおいて、任意の時間であってよい。この別の状態の例として、短い時間の待機の後に出現する自動のスクリーンセーバーが考えられる。好ましくは、自動プロセスは、可能な限り最も短い時間だけ待機を行うように試みるべきである。
【００４５】
ユーザまたは自動プロセスによって指定される入力にもとづき、ステップ２３０が、その入力をデバイスへと送信し、デバイスが入力への応答を生成するまで待つ次の状態へと移行する。
【００４６】
ステップ２３２は、到来するイベントが、キーパッドボタンまたはタッチ画面の選択のイベントであるか否かを判断する。これは、どのように実際のデバイスが入力によって刺激されたかを判断する。次いで、モバイルデバイス１０２が、適切なキーパッドボタンまたはタッチ画面センサ位置２３６を選択することによって適切に刺激される。
【００４７】
ひとたびナビゲーションが前の状態から知られると、新たなリンクを、ステップ２３８においてグラフに生成することができるが、リンクの起点は前の状態であり、リンクの宛て先はデバイスからの応答にもとづいて決定される。リンクの宛て先は、新たな状態であっても、最終的に既存の状態であると判断されてもよい。このナビゲーション経路が、デバイスにおいてすでにとられた経路である場合、この工程をバイパスすることができる。
【００４８】
デバイス応答待機２４０の工程は、デバイスから入手できる応答を待つ。一般に、応答は、応答が入力に関係しており、スクリーンセーバーなどの内部で生じる何らかの事象に関係しているわけではないことが確実であるために、短い時間（約１０秒程度）で生じなければならない。
【００４９】
記録プロセス２００は、循環プロセスであり、したがって任意の地点から始まることができる。最も自然な出発点は、位置２４２などにおいて、特定の出発状態を選択し、現在の状態からの未だ行き来されていない経路を有効にすることである。循環プロセスであるため、任意の地点で終了することも可能である。最も自然な終了点は、位置２４４においてユーザまたは自動の入力を待っているときである。
【００５０】
図３は、図１のブロック１４２のランタイムデータ変換ロジック３００の一実施の形態を示している。ランタイムデータ変換プロセスは、モバイルデバイスとのやり取りの記録時に得られた情報を、インターネットウェブサーバおよびインターネットウェブブラウザなどの標準的なプラットフォームから仮想のデバイスを行き来するために使用することができるフォーマットへと変換する。この工程は、主として、ホストされるウェブ環境におけるデータ転送の必要を最小限にするために、記録された情報のより低い分解能およびより低い忠実度への変換を担当する。このプロセスは、別個の工程として最も効率的に実行されるが、記録のプロセスへと組み合わせ、情報が記録されるときに変換を行うようにすることも可能である。また、ランタイム要求システムへと組み合わせることも可能であるが、これは、同じ情報について複数回の変換が必要になりうるため、かなり非効率的であると考えられる。
【００５１】
図３を参照すると、ランタイムデータ変換ロジックのプロセス３００は、通常は、記録プロセス（上記図２からのプロセス）の完了後に、ブロック３０２において開始される。このプロセスは、すべての情報を完了まで処理する循環プロセスである。また、この変換を付加的に実行し、これまでに変換されていないデータのみを変換することも可能である。どのようにプロセスが実行されても、結果は、グラフ内のすべての状態がランタイムデータフォーマットへと変換された時点に達することである。
【００５２】
このプロセスは、新たなフォーマットへと変換すべきグラフのノードが存在している限り、続けられる。したがって、ステップ３０４が、行うべきさらなる作業が存在するか否かを判断し、あるいはプロセスを終了させるべきか否かを判断する。すべてのグラフノードが新たなフォーマットへと変換済みである場合、プロセス３００は、ステップ３０６において終了する。この時点で、すべての情報がランタイムフォーマットへと変換済みである。一方で、変換すべきさらなるグラフノードが存在する場合には、プロセス３００は、ブロック３０８において変換を続ける。
【００５３】
グラフノード情報の実際の変換の最初の工程は、ステップ３０８におけるデザインタイムデータの読み出しである。この工程は、グラフ中の特定の状態についてのデザインタイムデータであって、未だランタイムフォーマットへと変換されていないすべてのデザインタイムデータを読み込む。この工程は、デザインタイム情報を保存するために使用されるグラフ／映像／音声ストレージ１３８とやり取りする。
【００５４】
情報を読み出した後で、プロセス３００は、ステップ３１０において映像のフレームレートを下げる。この工程は、映像サンプルのフレームレートを、モバイルデバイス１０２から最初に採取されたときのレートよりも低いレートに下げることを担当する。この工程は、ランタイムのインタラクティブ装置において必要とされる情報の量を少なくするために必要である。この工程は、元のデバイス情報が充分に低いフレームレートで記録されている場合には、不要であるかもしれない。音声サンプルのレートも、ステップ３１２において下げられる。この工程は、音声サンプルのサンプルレートを、モバイルデバイス１０２から最初に採取されたときのレートよりも低いレートに下げることを担当する。この工程は、ランタイムのインタラクティブ装置において必要とされる情報の量を少なくするために必要である。この工程は、元のデバイス情報が充分に低いサンプルレートで記録されている場合には、不要であるかもしれない。代案として、これらのステップ３１０および３１２を同時に実行しても、逆の順序で実行してもよい。
【００５５】
次のステップ３１４は、画像フォーマット変換であるが、デバイスから映像情報を記録するときに使用された内部フォーマットを、ウェブブラウザがサポートするより標準的なフォーマットへと変換する。この工程は、データが元より標準的な画像フォーマットで取得されている場合や、非標準のクライアントアプリケーションまたはプラグインがインタラクティブデバイスを表現するために使用される場合には、不要であるかもしれない。この時点で、標準的な解像度のモニタでの外観を改善するために、画像のサイズを調節してもよい。ステップ３１６が、音声フォーマットの変換を行う。この工程は、デバイスから音声情報を記録するときに使用された内部フォーマットを、ウェブブラウザがサポートするより標準的なフォーマットへと変換する。この工程は、データが元より標準的な音声フォーマットで取得されている場合や、非標準のクライアントアプリケーションまたはプラグインがインタラクティブデバイスを表現するために使用される場合には、不要であるかもしれない。代案として、これらのステップ３１４および３１６を同時に実行しても、逆の順序で実行してもよい。
【００５６】
状態／リンク変換ステップ３１８は、デザインタイム情報を標準的なウェブブラウザによって容易に解釈できるＸＭＬベースのフォーマットへと変換する。本発明の別の実施の形態は、ＸＭＬ以外の別のフォーマットを利用することができるが、それらのフォーマットは、それほど効率的または標準的でないかもしれない。これら他のフォーマットも、本発明の技術的範囲に包含される。この工程は、元々のデータがＸＭＬデータフォーマットへと抽出されている場合や、非標準のクライアントアプリケーションまたはプラグインがインタラクティブデバイスを表現するために使用される場合には、不要であるかもしれない。
【００５７】
ステップ３０４においてさらなるグラフノードが残っていないかどうかを再び判断する前に、今まさに変換された情報が、ファイル保存のステップ３２０において、ウェブサーバストレージへと保存される。この工程は、新たなデータフォーマットをランタイムデータ保存場所１４０に保存する。ランタイムデータ保存所１４０は、デザインタイムストレージ場所１３８と同じであってよいが、通常は、ランタイム情報のより容易な展開を可能にするために、これら２つのストレージシステムを別々にすることが好ましい。
【００５８】
図４が、図１の仮想デバイスランタイムサーバ１４４におけるシリアル／パラレルバス変換４００の一実施の形態を示している。ランタイムサーバ１４４は、通常は、標準的なウェブアプリケーションサーバである。このサーバは、専用設計のサーバであってもよいが、通常は、ＨＴＴＰプロトコルを使用する標準的なウェブ要求および応答のやり取りに従うべきである。非標準のクライアントが使用される場合には、ランタイムサーバも、非標準のフォーマットをサポートすることができ、ＨＴＴＰプロトコルの標準に従う必要はないと考えられる。しかしながら、これは、システムが消費者にとってアクセスしにくいものになりかねないため、あまり望ましくない。
【００５９】
図４を参照すると、仮想デバイスランタイムサーバ１４４が、最初に４０２において状態情報を要求する。これは、グラフ内の特定のノードまたは状態についての情報を求めて到来する要求である。ステップ４０２は、ランタイムデータ保存所１４０からの状態についての情報を要求する。この要求は、通常は、ユーザが特定の状態へとナビゲートするときに行われるが、ユーザが将来において特定の状態へとナビゲートする可能性を先取りして行われてもよい。この場合、情報を、ユーザが実際にその状態へと移動するまで、ランタイムクライアント１３４によって保存することができる。仮想デバイスランタイムサーバ１４４は、ブロック４０４において、到来する状態の要求に対して、要求された状態およびこの状態からのすべてのナビゲーションリンクを表す関連のＸＭＬデータファイルによって応答する。ＸＭＬデータは、通常は、状態および状態情報を適切に表示するためにどの他の種類の媒体（画像、映像、音声）を要求すべきかについての情報を含んでいる。
【００６０】
状態が、１つ以上の画像ファイルまたは複合映像ファイルの表示を必要とする場合、要求４０６が行われる。要求４０６が行われた場合、要求された画像ファイルが、クライアントアプリケーションによる速やかな表示または将来の表示のために、ステップ４０８において返される。状態が音声ファイルの再生を必要とする場合、再生すべきファイルを求めて要求４１０が行われる。要求４１０が行われた場合、要求された音声ファイルが、クライアントアプリケーションによる速やかな再生または将来の再生のために、ステップ４１２において返される。
【００６１】
上記ステップ４０２〜４１２のデータの要求および応答は、標準的なプロトコルを使用して、ローカルエリアネットワークまたはインターネットを介して送信される。したがって、それらは典型的なネットワーク要求４１４であってよい。これらのフォーマットは、通常は、より下位のＴＣＰ／ＩＰまたはＵＤＰプロトコルをベースとするＨＴＴＰプロトコルである。
【００６２】
図５は、図１の仮想デバイスインタラクティブインターフェイス１４６の仮想デバイスインタラクティブインターフェイスロジック５００の一実施の形態を示している。仮想デバイスインタラクティブインターフェイス１４６は、通常は、標準的なウェブブラウザアプリケーションである。このクライアントは、専用設計のクライアントであってもよいが、通常は、ＨＴＴＰプロトコルを使用する標準的なウェブ要求および応答のやり取りに従うべきである。非標準のサーバが使用される場合には、ランタイムクライアントも、非標準のフォーマットをサポートすることができ、ＨＴＴＰプロトコルの標準に従う必要はないと考えられる。しかしながら、これは、システムが消費者にとってアクセスしにくいものになりかねないため、あまり望ましくない。
【００６３】
図５を参照すると、インタラクティブクライアントアプリケーション５００の開始５０２は、通常は、インタラクティブクライアントをホストしているウェブサイトへとナビゲートすることである。したがって、インタラクティブクライアントアプリケーション５００は、通常は、ラッパーＨＴＭＬページおよび埋め込みのクライアント実行スクリプト（Ｊａｖａ（登録商標）  Ｓｃｒｉｐｔなど）の読み込み５０４を実行する。
【００６４】
インタラクティブアプリケーション５００の最初のステップ５０６は、グラフの状態をルート状態に設定することである。グラフのルート状態は、通常は、デバイスユーザインターフェイスのスタートまたはホームページを表す状態である。ルート状態は、必ずしもホーム状態である必要はなく、実際には、アプリケーションのユーザとの共有が意図される体験に応じて、グラフの任意の状態であってよい。本発明の一実施の形態においては、デバイスの種々の能力に着目すべくグラフ内の種々の点から出発できるよう、システムへの種々の進入点が許容される。
【００６５】
ウェブサーバからの状態データの要求５０８が、システム内の現在の状態についての情報を要求する。各状態が、通常は単純な名称または数値によって表されているため、要求は、状態を「名称」によって要求する（５１０）。グラフの現在の状態についての基本情報を要求した後で、通常は、さらにいくつかの要求５１０が、映像および音声情報をウェブサーバから取り出すために必要である。これら後続の要求は、最初の要求と同じ文脈において行うことができ、あるいはこれら後続の要求を行うウェブブラウザ内のドキュメントを読み込むことによって、黙示的に行うことができる。この要求の最も一般的な形態は、Ｊａｖａ（登録商標）  Ｓｃｒｉｐｔなどのクライアント側スクリプティング言語において行われる。この種の要求は、通常は、ＡＪＡＸ要求と称され、その要求および応答を、クライアントのスクリプティングコールによって不可視的に取り扱うことができる。要求が透過的に行われる場合、グラフにおける後続の状態についての情報を、前もって取り出しておくことも可能である。これは、ユーザによるアクションからデータが表示装置において利用可能になるまでの待ち時間を短縮することによってインタラクティブアプリケーションのインタラクティブ性を高めるため、有益でありうる。
【００６６】
要求されたグラフ内の状態に、音声データが関連付けられて記録されている場合、音声の再生が、この時点５１２において開始される。音声の再生を、映像の再生に同期してしばらくの間、続けることができる。音声および映像アニメーションデータを単一の要求へとエンコードすることも可能であり、音声および映像が同時に開始される（５１２および５１４）。状態アニメーション再生５１４は、ユーザが今まさにナビゲートしたナビゲート先の状態を表す単一のフレームまたはアニメーションを再生する。これは、状態と一緒に記録された１つのフレームまたは数分のアニメーションを表示または再生することによって達成できる。
【００６７】
有効ボタン／タッチ画面領域イネーブル状態５１６は、デバイス上で現在の状態からのナビゲートのためにユーザが利用できる有効なナビゲーションボタンおよびタッチ画面領域を、利用できるようにする。ボタンの状態を、それらが利用可能であるか否かを示すべく何らかの方法で強調表示することができる。利用可能状態を、利用不能状態よりも明るい色で示すことができ、あるいはボタンを視覚的に脈動させたり、他の何らかの標識を表示したりすることで、それらが利用可能であることを示してもよい。場合によっては、利用できないナビゲーションボタンおよび制御部を有効なままにしておき、ユーザがそのボタンまたはタッチ画面領域を選択した場合に有用なメッセージを表示できるようにすることが、好ましいかもしれない。
【００６８】
状態が、終わりのないループのアニメーション（点滅するカーソルなど）を含む場合には、アニメーションを連続的に再生しながら（５１８）、ユーザからの入力を待つことができる（５２０）。いくつかの場合には、長いがループではないアニメーションの最中に、ユーザの入力を受け付けて、アニメーションをキャンセルしてもよい。
【００６９】
ユーザ入力待ち５２２は、単純に、仮想インタラクティブデバイス上の有効なナビゲーション制御部のうちの１つへのユーザの入力を待つ。通常は、ウェブアプリケーションにとって待機可能な時間に制限はないが、ウェブサーバ上の制限が、ユーザがサーバとの有効なセッションを持つことができる時間を制限することができる。一般に、セッションを長く利用できるほど、より好都合である。
【００７０】
ボタンまたはタッチ画面の選択など、ひとたびユーザの入力が受信（５２４）されると、仮想デバイスインタラクティブインターフェイスアプリケーション５００は、その入力が終了キーであるか否かを判断する（５２６）。インタラクティブデバイスに、ユーザを現在のグラフのルートへと至らしめる１つ以上の特別なファンクションキーが存在するかもしれない。これは、モバイルデバイスの終了キーであってよいが、デバイスそのものにおいては利用できない仮想のキーまたはアイコンであってもよい。終了キーが押されると、初期設定のルート状態が読み込まれ、再表示される（５２８）。
【００７１】
ユーザの入力が終了キーではなかった場合、アプリケーションは、分岐５３０に沿って、選択肢からの次の状態の選択５３２へと進む。ウェブブラウザ上でのユーザの視覚的選択にもとづき、アプリケーションは、入力をグラフ内の利用可能な状態のうちの１つへと解釈する。一般に、ウェブブラウザ内の仮想のユーザインターフェイスは、本来のモバイルデバイス１０２に可能な限り類似して見えなければならない。最も一般的な場合には、ユーザが、実際のデバイス上に存在するボタンまたは他の入力制御部のうちの１つの視覚的表現をクリックする。各ボタンは、現在の状態から利用可能なナビゲーション経路のうちの１つを表している。タッチ画面の場合には、画面の各領域またはデバイスの視覚的表示の画像においてユーザが選択した位置から、解釈が行われる。デバイスの画像は、タッチ画面の座標と異なるサイズであるかもしれないため、或る種の座標変換も、この時点で必要かもしれない。
【００７２】
行き来すべきリンクが既知となった時点で、次の状態への前置きを、サーバ５３４に対して要求することができる。前置きは、２つの状態の間のリンクに関連付けられており、リンクに対して一意である。なお、この状態は、すべてのリンクが前置きを有するわけではないため、不要であるかもしれない。ウェブアプリケーションの応答性を改善するために、要求を、現在の状態から想定されるリンクの一部またはすべてについて前もって行うようにし、実際に選択されたリンクのみを表示してもよい。このリンクに音声が関連付けて記録されている場合には、前置きのアニメーション５３８と同期して再生できるよう、この時点５３６において開始させることができる。このリンクに前置きのアニメーションが関連付けられている場合には、今やそのアニメーションを、次の状態へとつながるように再生することができる（５３８）。
【００７３】
図６は、本発明の実施の形態によるデザインタイム環境１０４およびランタイム環境１０６の特性を用いる図１の汎用コンピュータ１３６の一実施の形態を示している。図６において、汎用コンピュータ１３６が、プロセッサ６０２、フラッシュ６０４、メモリ６０６、およびスイッチ群６０８を備えて示されている。汎用コンピュータ６００は、入力および出力装置のための複数のポート６１０をさらに備えてもよい。画面６１２を、デザインタイム環境インターフェイスおよびランタイム環境インターフェイスを閲覧するために取り付けることができる。入力装置は、ユーザがデザインタイム環境およびランタイム環境をナビゲートできるようにするためのキーボード６１４またはマウス６１６を備えることができる。コンピュータで読み取り可能な媒体の形態であるメモリ６０６またはフラッシュ６０４に位置するファームウェアを、デザインタイム環境およびランタイム環境に関して上述した動作を実行するために、プロセッサ６０４によって実行することができる。さらに、メモリ６０６またはフラッシュ６０４は、上述のとおり、グラフノードの状態、前置き、およびノード情報間の移行シーケンスを保存することができる。この汎用コンピュータを、コンピュータネットワークまたはインターネットへのアクセスのためにサーバ６１８へと接続することができる。
【００７４】
デザインタイム環境１０４ならびにランタイムサーバ１３２およびランタイムクライアント１３４を含むランタイム環境１０６をすべて、汎用コンピュータ１３６に収容することができる。各環境を、同じ汎用コンピュータに保存しても、別々のコンピュータに保存してもよい。汎用コンピュータ１３６は、ソフトウェアアプリケーションまたは他の電子インストラクションを実行できる任意のコンピュータシステムである。これには、Ｗｉｎｄｏｗｓ（登録商標）  ＰＣやＡｐｐｌｅ  Ｍａｃｉｎｔｏｓｈなどといった一般的に入手できるコンピュータハードウェアおよびオペレーティングシステム、あるいはＵｎｉｘ（登録商標）またはＬｉｎｕｘサーバなどといったサーバベースのシステムが含まれる。また、汎用のＣＰＵまたは専用設計のプログラマブル論理プロセッサ（ＣＰＬＤ、ＦＰＧＡ、または他の任意の同様の種類のプログラマブル論理技術をベースとする）を使用してインストラクションを処理するように設計された専用のハードウェアも挙げることができる。
【００７５】
このファームウェアを、インストラクション実行システム、装置、またはデバイス（コンピュータベースのシステム、プロセッサを含んでいるシステム、あるいはインストラクション実行システム、装置、またはデバイスからインストラクションを取り出して実行することができる他のシステム、など）による使用や、そのようなシステム、装置、またはデバイスに関連しての使用のために、コンピュータで読み取り可能な任意の媒体に保存して運ぶことができることに、注意すべきである。本明細書の文脈において、「コンピュータで読み取り可能な媒体」は、インストラクション実行システム、装置、またはデバイスによる使用や、そのようなシステム、装置、またはデバイスに関連しての使用のためのプログラムを、収容でき、保存でき、通信でき、伝搬させることができ、あるいは運搬することができる任意の媒体であってよい。コンピュータで読み取り可能な媒体は、例えば、これらに限られるわけではないが、電子、磁気、光、電磁気、赤外線、または半導体のシステム、装置、デバイス、または伝搬媒体であってよい。コンピュータで読み取り可能な媒体のさらに具体的な例として、これらに限られるわけではないが、１つ以上の線を有する電気接続（電子）、可搬のコンピュータディスケット（磁気）、ランダムアクセスメモリ（ＲＡＭ）（磁気）、読み出し専用メモリ（ＲＯＭ）（磁気）、消去可能なプログラマブル読み出し専用メモリ（ＥＰＲＯＭ）（磁気）、光ファイバ（光）、ＣＤ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ、ＤＶＤ−Ｒ、またはＤＶＤ−ＲＷなどといった可搬の光ディスク、あるいはコンパクトフラッシュ（登録商標）カード、セキュアデジタルカード、ＵＳＢメモリデバイス、メモリースティック、などといったフラッシュメモリ、などが挙げられる。コンピュータで読み取り可能な媒体が、プログラムが印刷された紙または他の適切な媒体であってもよい（プログラムテキストを、紙または他の媒体を光学的に走査することによって電子的に取得し、次いでコンパイルし、必要であれば適切な方法で解釈または処理し、次いでコンピュータメモリに保存することができる）ことに、注意すべきである。
【００７６】
図７は、図１のデザインタイム環境１０４のインターフェイス７００の例であり、実際のモバイルデバイス１０２から情報を記録するためのデザインタイム環境１０４のインターフェイス７００の例である。デザインタイム環境は、手作業でのデバイスとのやり取りを可能にし、グラフの状態および状態間のリンクの作成を可能にする。デザインタイム環境１０４とやり取りするデバイスは、現場のコンピュータ１３６に位置しても、ローカルエリアネットワークまたはインターネットを介して離れた場所からアクセスされてもよい。
【００７７】
デザインタイム環境インターフェイス７００が、ユーザに、実際のモバイルデバイス７０２の仮想の表現を提示する。デザインタイム環境は、実際のデバイスが行き来されるときに、グラフのノード７０４およびそれらノード間のリンク７０６を生成する。ノードおよびリンクを有するグラフ７０８を、ユーザに対して視覚的に表示でき、あるいは隠すことができる。さらに、デザインタイム環境インターフェイスが、操作対象となりうる実際のデバイスのリストなど、他のメニュー要素７１０を含んでもよい。
【００７８】
図８は、標準的なウェブブラウザならびに標準的なウェブ画像および映像フォーマットを使用するランタイムクライアント環境１３４の仮想デバイスインタラクティブインターフェイス１４６の例である。ランタイムサーバ１３２は、この例では、ローカルなマシンであっても、あるいはインターネット上の他の任意のサーバ上にあってもよい。仮想デバイスインタラクティブインターフェイス１４６は、実際のモバイルデバイス１０２の仮想の表示８０２を含むことができる。ユーザは、この仮想の表示８０２の画面上の各領域を直接的に選択することによって、仮想のデバイスの各要素を行き来すべく入力を選択することができ、あるいは利用可能なボタンが列挙されてなる別途のメニュー８０４を選択することができる。仮想デバイスインタラクティブインターフェイス１４６は、追加のメニュー８０６を含むことができる。例えば、或る追加のメニューは、ユーザが仮想デバイスの間を移動することを可能にでき、あるいはユーザが仮想デバイスの表示の出発ノードを決定すると考えられる強調すべき特徴一式を選択することを可能にする。
【００７９】
当業者であれば、本発明の技術的思想および技術的範囲から離れることなく、多数の変更および変形を行うことが可能である。したがって、例示した実施の形態が、あくまでも例としての目的で説明されており、それらを、決して以下の特許請求の範囲によって定められる本発明を限定するものと解釈してはならないことを、理解しなければならない。例えば、本発明の実施の形態の多くは、特定の結果のための論理プロセスを特定の順序で説明しているが、本発明がそのような順序には限られないことを、理解すべきである。２つ以上の工程を、１つの工程へと組み合わせることが可能であり、プロセスを、上述した順序でない順序で実行することが可能である。例えば、アプリケーションが情報の取り出しまたは保存を行う場合に、上述の実施の形態は、音声および視覚データの記録または再生を、特定の順序で生じる別々の工程として説明している。しかしながら、これらの工程をただ１つの工程へと組み合わせて映像および音声データを同時に再生または記録することや、順序を逆にして音声よりも先に映像を読み出すことや、あるいはその反対も、本発明に包含されると理解すべきである。
【００８０】
本発明および本発明の種々の実施の形態を説明するために本明細書において使用される用語は、それらの一般的に定まった意味だけでなく、本明細書における特別な定義によって、一般的に定まった意味の範囲を超える構造、材料、または行為を含むと理解される。したがって、或る要素を本明細書の文脈において２つ以上の意味を含むと理解できる場合、請求項におけるその使用は、明細書および用語そのものによって裏付けされる考えられるすべての意味を総称していると理解されるべきである。
【００８１】
したがって、以下の特許請求の範囲の用語および構成要素の定義は、記載された文言どおりの構成要素の組み合わせを含むだけでなく、実質的に同じ機能を実質的に同じ方法で果たして実質的に同じ結果を得るすべての均等な構造、材料、または行為を含むものと、本明細書において定義される。したがって、この意味で、以下の請求項の構成要素のうちの任意の１つについて、２つ以上の構成要素による均等な置換を行うことや、請求項中の２つ以上の構成要素をただ１つの構成要素で置き換えることを、想定することができる。
【００８２】
請求項に記載の主題からの変更であって、当業者の眼で見たときに非実質的である変更が、今や既知であり、あるいは後に考案されうるが、それらは、明らかに、均等によって特許請求の範囲の技術的範囲に包含されると考えられる。したがって、当業者に現時点で知られ、あるいは後に知られる自明な置き換えは、所定の請求項の構成要素の技術的範囲に包含されると定義される。
【００８３】
したがって、特許請求の範囲は、上記で具体的に例示および説明した内容、概念的に均等であり得る内容、および自明に置き換えできる内容を含むと解釈されなければならない。例えば、特許請求の範囲に記載される用語「コンピュータ」または「汎用コンピュータ」は、少なくともデスクトップコンピュータ、ラップトップコンピュータ、あるいはモバイル通信デバイス（例えば、携帯電話機またはＷｉ−Ｆｉ／Ｓｋｙｐｅフォン、電子メール通信デバイス、携帯情報端末装置）およびマルチメディア再生デバイス（例えば、ｉＰｏｄ、ＭＰ３プレイヤー、または任意のデジタルグラフィック／写真再生装置）などの任意の携帯演算装置を包含する。汎用コンピュータは、代案として、本発明の実施の形態の記録または再生機能のみをサポートするように設計された限定的な装置であってよい。例えば、汎用コンピュータは、モバイルデバイスと一体化または連絡して、単にデバイスとやり取りして音声および視覚データの応答を記録するようにプログラムされた装置であってよい。
【図１】
2010525621.tif 000003
【図２】
2010525621.tif 000004
【図３】
2010525621.tif 000005
【図４】
2010525621.tif 000006
【図５】
2010525621.tif 000007
【図６】
2010525621.tif 000008
【図７】
2010525621.tif 000009
【図８】
2010525621.tif 000010
【国際調査報告】
2010525621.tif 000011
2010525621.tif 000012