(57)【要約】  本発明は、動的ユーザインターフェイスが、リモートサーバにおいて実行する１以上のアプリケーションの出力を表示する、電子デバイスにおける動的ユーザインターフェイスを生成する方法およびシステムに関する。一の好ましい実施形態において、１以上のアプリケーションはロボットにより操作される。別の好ましい実施形態において、１以上のアプリケーションは、電子デバイスから１以上のアプリケーションと遠隔でロバストユーザインタラクションできるようにする、クライアントデバイスのハードウェアデバイスを含むクライアントデバイスと結合する。【選択図】図１
2016533576.tif 000002
【特許請求の範囲】
【請求項１】
１以上のクライアントと、
前記１以上のクライアントとネットワーク接続される１以上のサーバと、
前記１以上のサーバに存在する１以上のアプリケーションと、
前記１以上のサーバに存在する１以上のロボットと、を備え、
前記１以上のロボットは、前記１以上のアプリケーションを実行するよう構成され、前記１以上のサーバは前記１以上のアプリケーションの出力を、前記１以上のアプリケーションが前記１以上のロボットにより操作されている間に、前記１以上のクライアントに提供するよう構成される、
動的ユーザインターフェイスを生成するシステム。
【請求項２】
前記１以上のサーバに存在するスーパバイザをさらに備える、
請求項１に記載のシステム。
【請求項３】
前記出力は、前記１以上のアプリケーションの出力からとられたテキスト、スナップ写真または一連のスナップ写真、または一部または全部の低速度撮影映像データおよび／または音声データを備える、
請求項１に記載のシステム。
【請求項４】
前記１以上のサーバは、前記１以上のクライアントから１以上の要求を受け取る、
請求項１に記載のシステム。
【請求項５】
前記要求はオンライン検索に関連する、
請求項４に記載のシステム。
【請求項６】
前記要求は、アプリケーションのレンタルの用途のための１以上のアプリケーションへの要求に関連する、
請求項４に記載のシステム。
【請求項７】
前記要求は、アプリケーション購入の用途のための１以上のアプリケーションへの要求に関連する、
請求項４に記載のシステム。
【請求項８】
前記クライアントに送信される前記１以上のアプリケーションの前記出力は、前記１以上の要求に関連するアプリケーションからのものである、
請求項４に記載のシステム。
【請求項９】
関連はｉｎ−ａｐｐデータを用いて決定される、
請求項８に記載のシステム。
【請求項１０】
前記１以上のアプリケーションからの前記出力を含むｉｎ−ａｐｐデータを記憶するデータベースをさらに備える、
請求項１に記載のシステム。
【請求項１１】
前記１以上のクライアントへの前記出力のソースは、前記データベースに記憶される出力を備える、
請求項１０に記載のシステム。
【請求項１２】
前記１以上のアプリケーションの実行をサポートするよう構成される１以上のアプリケーションサーバをさらに備える、
請求項１に記載のシステム。
【請求項１３】
前記１以上のアプリケーションと、対応するアプリケーションサーバとの間で交換されるデータを含むｉｎ−ａｐｐデータを記憶するデータベースをさらに備える、
請求項１に記載のシステム。
【請求項１４】
前記クライアントに存在するメディア出力部をさらに備える、
請求項４に記載のシステム。
【請求項１５】
前記メディア出力部を介して前記サーバから送信される前記１以上のアプリケーションの出力を表示するよう構成される前記クライアントに存在するクライアントアプリケーションをさらに備える、
請求項１４に記載のシステム。
【請求項１６】
前記メディア出力部に表示される前記クライアントアプリケーションにより示される前記アプリケーションの出力は、クライアントアプリケーションを介しての前記１以上のアプリケーションとのユーザインタラクションを許可するよう構成される、
請求項１５に記載のシステム。
【請求項１７】
前記メディア出力部に表示される前記クライアントアプリケーションにより示される前記１以上のアプリケーションは、前記１以上の対応するアプリケーションに結合される、
請求項１６に記載のシステム。
【請求項１８】
前記結合は、座標およびイベントタグペアの通信を含む、
請求項１７に記載のシステム。
【請求項１９】
前記メディア出力部における前記クライアントアプリケーションにより表示される前記１以上のアプリケーションの前記出力とのユーザインタラクションに基づくシミュレーションにより、前記１以上のアプリケーションとインタラクトするために要求される物理的動きをシミュレートする手段をさらに備える、
請求項１６に記載のシステム。
【請求項２０】
前記クライアントは１以上のハードウェアデバイスをさらに備える、
請求項１に記載のシステム。
【請求項２１】
前記１以上のアプリケーションは前記１以上のハードウェアデバイスと結合される、
請求項２０に記載のシステム。
【請求項２２】
前記結合は、ハードウェア値の通信を含む、
請求項２１に記載のシステム。
【請求項２３】
前記１以上のアプリケーションは、前記１以上のアプリケーションに結合される、前記１以上のハードウェアデバイス、前記ハードウェア値を受信するよう構成される疑似ドライバ、ＨＡＬレイヤおよびライブラリに対応する前記クライアントの少なくとも１つのドライバから前記ハードウェア値を受信するよう構成される、
請求項２２に記載のシステム。
【請求項２４】
前記１以上のサーバでネイティブに実行できない前記１以上のアプリケーションを補助するための１以上の仮想マシンをさらに備える、
請求項１に記載のシステム。
【請求項２５】
ユーザインタラクションを容易にするために前記１以上のアプリケーションのインスタンスが生成される、
請求項１５に記載のシステム。
【請求項２６】
前記ユーザインタラクションのために生成される前記アプリケーションの前記インスタンスは、前記アプリケーションの開始時に開始する、
請求項２５に記載のシステム。
【請求項２７】
前記ユーザインタラクションのために生成される前記アプリケーションの前記インスタンスは、前記アプリケーションとの前記ユーザインタラクションが始動する際に、前記アプリケーションが実行される場所で開始する、
請求項２５に記載のシステム。
【請求項２８】
前記ユーザインタラクションのために生成される前記アプリケーションの前記インスタンスは、前記アプリケーションにおける、前記ユーザの要求に最も関連する場所で開始する、
請求項２５に記載のシステム。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本出願は、その全てを参照により本明細書に援用される、「ＭＥＴＨＯＤＳ  ＡＮＤ  ＳＹＳＴＥＭＳ  ＦＯＲ  ＩＮ−ＡＰＰ  ＳＥＡＲＣＨ  ＡＮＤ  ＡＰＰ  ＢＲＯＷＳＥＲＳ」と題する、２０１３年８月７日出願の米国仮特許出願第６１８６２９６７号、「ＭＥＴＨＯＤＳ  ＡＮＤ  ＳＹＳＴＥＭＳ  ＦＯＲ  ＧＥＮＥＲＡＴＩＮＧ  ＵＳＥＲ  ＩＮＴＥＲＦＡＣＥＳ  ＲＥＬＡＴＩＮＧ  ＴＯ  ＡＰＰ  ＳＥＡＲＣＨ」と題する、２０１４年１月１日出願の米国仮特許出願第６１９２２８６０号、「ＭＥＴＨＯＤＳ  ＡＮＤ  ＳＹＳＴＥＭＳ  ＦＯＲ  ＧＥＮＥＲＡＴＩＮＧ  ＵＳＥＲ  ＩＮＴＥＲＦＡＣＥ  ＲＥＬＡＴＩＮＧ  ＴＯ  ＡＰＰ  ＳＥＡＲＣＨ」と題する、２０１４年３月１２日出願の米国仮特許出願第６１９５１５４８号、および「ＭＥＴＨＯＤＳ  ＡＮＤ  ＳＹＳＴＥＭＳ  ＦＯＲ  ＣＯＭＭＵＮＩＣＡＴＩＯＮＳ  ＢＥＴＷＥＥＮ  ＡＰＰＳ  ＡＮＤ  ＶＩＲＴＵＡＬ  ＭＡＣＨＩＮＥＳ」と題する、２０１４年３月２７日出願の米国仮特許出願第６１９７１０２９号の優先権を主張する。
【技術分野】
【０００２】
本発明は、電子デバイスにおけるユーザインターフェイスを生成する方法およびシステムに関する。特に、本発明は、ユーザにインターフェイスに提示されるアイテムの動的出力を提供する電子デバイスにおけるユーザインターフェイスを生成する方法およびシステムに関する。
【背景技術】
【０００３】
現在、Ｇｏｏｇｌｅ（登録商標）またはＹａｈｏｏ（登録商標）等のオンライン検索エンジンの検索結果、またはＡｎｄｒｏｉｄ（登録商標）のＰｌａｙストアまたはＡｐｐｌｅのＡｐｐ  Ｓｔｏｒｅ等のモバイルアプリマーケットのアプリ等のアイテムを提示するため生成されるユーザインターフェイスの多くは、事実上、静的である。例えば、インターフェイスに提示される各アイテムについて、オンライン検索結果およびモバイルアプリマーケットは、アイテムがウェブページ、ソフトウェアアプリケーション、オンラインＰＣゲーム、モバイルアプリ等のいずれであるかを、一般的に静的テキストおよび／または画像で示す。テキストおよび／または画像は、アイテムを作成した開発者によりあらかじめ定められているため、静的である。
【０００４】
この静的情報は、アイテムが新しく変更されたときには提示される静的情報が古いものとなるため、有益だが限定的な情報をユーザに提供するものである。加えて、静的テキストおよび画像が、各アイテムの見た目や操作感について提供する情報は少ない。より多くの情報を取得し見た目や操作感を体験するためには、ユーザはそれらのアイテムをダウンロード、実行および／またはインストールする必要がある。例えば、アイテムがウェブページである場合、ユーザはそのウェブサイトに入る必要があり、またはアイテムがモバイルアプリである場合、ユーザはアプリをダウンロード、インストール、そして実行する必要がある。
【０００５】
したがって、自身のデバイスでアイテムをダウンロード、インストールまたは実行することなく、ユーザがインターフェイスに提示されるアイテムのロバストで最新の情報を受け取ることができるように、また、アイテムの見た目や操作感について良い理解を得られるように、または、インターフェイス上でのアイテムとの直接のインタラクトさえできるように、あらかじめ定められた静的なテキストおよび／または画像以上のものを提供できる、改善されたユーザインターフェイスが必要となる。
【発明の概要】
【０００６】
本発明は、インターフェイスに提示されるアイテムの動的出力をユーザに提供する、電子デバイスにおけるユーザインターフェイスを生成する方法およびシステムを提供する。
【０００７】
したがって、第一の主要な実施形態において本発明は、１以上のクライアントと、前記１以上のクライアントとネットワーク接続される１以上のサーバと、前記１以上のサーバに存在する１以上のアプリケーションと、前記１以上のサーバに存在する１以上のロボットと、を備え、前記１以上のロボットは、前記１以上のアプリケーションを実行するよう構成され、前記１以上のサーバは前記１以上のアプリケーションの出力を、前記１以上のアプリケーションが前記１以上のロボットにより操作されている間、前記１以上のクライアントに提供するよう構成される、動的ユーザインターフェイスを生成するシステムを提供する。
【０００８】
さらなる実施形態によれば、本発明は、１以上のクライアントと、前記１以上のクライアントとネットワーク接続される１以上のサーバと、前記１以上のサーバに存在する１以上のアプリケーションと、前記１以上のクライアントに存在する１以上のクライアントアプリケーションと、を備え、前記１以上のクライアントを介した前記１以上のアプリケーションとのユーザインタラクションを可能にするために、前記１以上のクライアントアプリケーションが前記サーバに存在する前記１以上のアプリケーションと結合される、動的ユーザインターフェイスを生成するシステムを提供する。
【０００９】
本発明のいくつかの例において、前記システムは前記１以上のサーバに存在するスーパバイザをさらに備える。また、前記システムの出力は、前記１以上のアプリケーションの出力からとられたテキスト、スナップ写真または一連のスナップ写真、または一部または全部の低速度撮影映像データおよび／または音声データを備える。前記１以上のサーバは、前記１以上のクライアントから１以上の要求を受け取ってもよい。他の例において、前記要求は、オンライン検索、アプリケーションのレンタルの用途のための１以上のアプリケーションへの要求、またはアプリケーション購入の用途のための１以上のアプリケーションへの要求に関連してもよい。前記１以上のアプリケーションの出力は、前記１以上の要求に関連するアプリケーションから前記クライアントに送信される。また、前記関連はｉｎ−ａｐｐデータを用いて決定されてもよい。
【００１０】
本発明のある例によれば、前記システムは前記１以上のアプリケーションからの出力を含むｉｎ−ａｐｐデータを記憶するデータベースを備えてもよい。また、前記１以上のクライアントへの前記出力のソースは、前記データベースに記憶される出力を備える。前記システムは、前記メディア出力部を介して前記サーバから送信される前記１以上のアプリケーションの出力を表示するよう構成される前記クライアントに存在するクライアントアプリケーションをさらに備えてもよい。本発明のさらに別の例において、前記システムは、前記クライアントに存在するメディア出力部をさらに備える。また、前記システムは、前記メディア出力部を介して前記サーバから送信される前記１以上のアプリケーションの出力を表示するよう構成される前記クライアントに存在するクライアントアプリケーションも備える。
【００１１】
一の例において、前記メディア出力部に表示される前記クライアントアプリケーションにより示される前記アプリケーションの出力は、クライアントアプリケーションを介した前記１以上のアプリケーションとのユーザインタラクションを許可するよう構成されてもよい。前記メディア出力部に表示される前記クライアントアプリケーションにより示される前記１以上のアプリケーションの出力は、前記１以上の対応するアプリケーションに結合されてもよく、前記結合は、座標およびイベントタグペアの通信を含む。別の例において、前記システムは、前記メディア出力部における前記クライアントアプリケーションにより表示される前記１以上のアプリケーションの前記出力とのユーザインタラクションに基づくシミュレーションにより、前記１以上のアプリケーションとインタラクトするために要求される物理的動きをシミュレートする手段をさらに備えてもよい。
【００１２】
本発明のいくつかの例によれば、前記クライアントは１以上のハードウェアデバイスをさらに備える。また、前記１以上のアプリケーションは前記１以上のハードウェアデバイスと結合されてもよく、前記結合は、ハードウェア値の通信を含む。前記１以上のアプリケーションは、前記１以上のアプリケーションに結合される、前記１以上のハードウェアデバイス、前記ハードウェア値を受信するよう構成される疑似ドライバ、ＨＡＬレイヤおよびライブラリに対応する前記クライアントの少なくとも１つのドライバから前記ハードウェア値を受信するよう構成されてもよい。
【００１３】
他の例において、前記システムは、前記１以上のサーバでネイティブに実行できない前記１以上のアプリケーションを補助するための１以上の仮想マシンをさらに備える。また、ユーザインタラクションを容易にするために前記１以上のアプリケーションのインスタンスが生成される。例えば、前記ユーザインタラクションのために生成される前記アプリケーションの前記インスタンスは、前記アプリケーションの開始時に開始してもよく、前記アプリケーションとの前記ユーザインタラクションが始動する際に、前記アプリケーションが実行される場所で、または、前記アプリケーションにおける、前記ユーザの要求に最も関連する場所で開始してもよい。
【００１４】
別の実施形態において、本発明は、１以上のロボットを用いて１以上のサーバの１以上のアプリケーションを実行することと、前記１以上のクライアントに前記１以上のアプリケーションの出力を送信することと、を備える、動的ユーザインターフェイスを生成する方法を提供する。前記１以上のアプリケーションの送信された出力は、前記１以上のアプリケーションのテキスト、スナップ写真または一連のスナップ写真、一部または全部の低速度撮影映像出力および／または音声出力を含む。
【００１５】
本発明のいくつかの例について、前記方法は、前記１以上のクライアントからの１以上の要求を受け取ることをさらに備える。また、前記１以上の要求は、１以上のオンライン検索クエリーを備え、前記１以上の要求は、アプリケーションのレンタルの用途またはアプリケーションの購入の用途のための１以上のアプリケーションへの１以上の要求を備える。ある例によれば、出力を送信することは、前記１以上の要求に関連する前記１以上のアプリケーションの出力を備え、前記１以上のアプリケーションの関連は、ｉｎ−ａｐｐデータを用いて決定される。さらに別の例において、前記１以上のアプリケーションの出力を送信することは、前記１以上のアプリケーションにより出力が生成されている間、ライブまたはほぼライブで行なわれてもよい。前記方法は、１以上のデータベースにおける前記１以上のアプリケーションからの出力を含む、ｉｎ−ａｐｐデータを記憶することをさらに備える。また、前記１以上のアプリケーションの出力を送信することは、前記１以上のデータベースに記憶される出力を送信することで行なわれてもよい。前記方法は、１以上のアプリケーションサーバを用いて前記１以上のアプリケーションの実行をサポートすることも備えても良い。一の例において、前記方法は、１以上のデータベースにおいて、前記１以上のアプリケーションと前記１以上の対応するアプリケーションサーバとの間で交換されるデータを含む、ｉｎ−ａｐｐデータを記憶することをさらに備える。別の例において、前記方法は、１以上のメディア出力部に前記１以上のアプリケーションの出力を表示することをさらに備える。
【００１６】
前記方法は、本発明のある例によれば、１以上のクライアントアプリケーションを用いて、１以上のメディア出力部に前記１以上のアプリケーションの出力を表示することをさらに備える。また別の例において、前記方法は、前記メディア出力部の前記クライアントアプリケーションにより表示される前記１以上のアプリケーションの出力を介した前記１以上のアプリケーションとのユーザインタラクションを許可することと、前記１以上のメディア出力部に表示される前記１以上のクライアントアプリケーションにより示される前記１以上のアプリケーションの出力を前記１以上の対応するアプリケーションに結合することと、をさらに備える。一の例によれば、前記１以上のメディア出力部に表示される前記１以上のクライアントアプリケーションにより示される前記１以上のアプリケーションの出力を前記１以上の対応するアプリケーションに結合することは、１以上の座標およびイベントタグペアの通信を備える。また前記方法は、前記メディア出力部における前記１以上のクライアントアプリケーションにより表示される前記１以上のアプリケーションの出力とのユーザインタラクションに基づくシミュレーションにより、前記１以上のアプリケーションとインタラクトするために要求される物理的動きをシミュレートすることをさらに備えてもよい。本発明のさらに別の例において、前記方法は、前記アプリケーションのインスタンスとのユーザインタラクションを可能にするため、前記アプリケーションのインスタンスを生成することを備える。
【００１７】
さらに別の実施形態において、本発明は、１以上のサーバにおいてアプリケーションのインスタンスを生成して始動することと、前記１以上のクライアントを用いて前記１以上のアプリケーションとのユーザインタラクションを可能にするために、１以上のサーバにおいてアプリケーションの前記インスタンスを前記１以上のサーバに対して遠くに位置する１以上のクライアントに結合することと、を備える動的ユーザインターフェイスを生成する方法を提供する。
【００１８】
本発明のさらなる利点は、以下の説明において部分的に記載され、一部は説明から明らかになるものであり、または本発明の実施によって知られてもよい。本発明の利点は、添付の特許請求の範囲に特に指摘される要素および組み合わせによって実現および達成される。前述の一般的な説明および以下の詳細な説明の両方は、例示および説明のみであり、発明を限定するものではないことは、理解されるところである。
【図面の簡単な説明】
【００１９】
【図１】本発明の動的ユーザインターフェイスの実施形態の出力を示す。
【図２】インターフェイスとのユーザインタラクションが可能な、本発明の動的ユーザインターフェイスの第２の実施形態の出力を示す。
【図３】本発明の動的ユーザインターフェイスのシステムの好ましい実施形態を示す。
【図４Ａ】本発明の動的ユーザインターフェイスのシステムの好ましい実施形態のソフトウェアおよび関連するハードウェアアーキテクチャを示す。
【図４Ｂ】本発明の動的ユーザインターフェイスのシステムの好ましい実施形態のソフトウェアおよび関連するハードウェアアーキテクチャを示す。
【図５Ａ】本発明の動的ユーザインターフェイスの方法の好ましい実施形態の処理フローを示す。
【図５Ｂ】本発明の動的ユーザインターフェイスの方法の好ましい実施形態の処理フローを示す。
【図５Ｃ】ロボットがアプリケーションの実行を要求されない、本発明の動的ユーザインターフェイスの方法の第２の好ましい実施形態の処理フローを示す。
【図５Ｄ】ロボットがアプリケーションの実行を要求されない、本発明の動的ユーザインターフェイスの方法の第２の好ましい実施形態の処理フローを示す。
【図６】カメラを用いた写真撮影に関連するアプリケーションの出力を示す動的ユーザインターフェイスの出力の好ましい実施形態を示す。
【発明を実施するための形態】
【００２０】
本発明の典型的な動的ユーザインターフェイスは、１以上のアプリケーションに関連する情報を表示するインターフェイスを生成する方法およびシステムを好適に備え、アプリケーションについて、動的ユーザインターフェイスは、ユーザにアプリケーションのダウンロード、インストールまたは実行を要求することなくアプリケーションが実行されている間、アプリケーションのテキスト、１以上の画像、１以上のスナップ写真、部分的または全部の低速度撮影映像（time-lapsed visual）および／または音声を含むアプリケーションの出力を好適に表示する。図１は、出力の少なくとも一部が、ロボットによりアプリケーションが実行される遠隔サーバ（例えば、図３に照らして説明および図示されるサーバ１０）から好適にストリームされる、本発明の動的ユーザインターフェイスの好ましい実施形態の出力を示す。アプリケーションが実行される間、アプリケーションの出力が表示されることにより、本発明の動的ユーザインターフェイスは、アプリケーションの見た目や操作感を含むアプリケーションに関する情報を提供する。加えて、本発明の好ましい実施形態において、動的ユーザインターフェイスは、ユーザがアプリケーションとインタラクトできるように構成される。また別の好ましい実施形態において、遠隔サーバにて実行するアプリケーションは、ハードウェア値がアプリケーションに転送されるように、ユーザデバイス内蔵のハードウェアデバイス（例えば、センサまたは入力デバイス）に結合されてもよい。
【００２１】
本発明の動的ユーザインターフェイスは、様々なアプリケーションを好適に処理可能である。例えば、アプリケーションがモバイルアプリを含む場合、モバイルアプリに関連する静的テキストの記述および／または、静的画像を提供することに加えて、本発明の動的ユーザインターフェイスは、アプリが実行されている間、モバイルアプリのテキスト、１以上のスナップ写真、または部分的または全部の低速度撮影映像および／または音声出力を好適に表示する。別の例において、アプリケーションがモバイルゲームを含む場合、モバイルゲームに関連する静的テキストの記述および／または静的画像を提供することに加えて、本発明の動的ユーザインターフェイスは、ゲームがユーザによってスマートデバイスにおいてプレイされているかのように１以上のロボットがゲームを操作する際にアプリケーションにより生成されるテキスト、１以上のスナップ写真または部分的または全部の低速度撮影映像および／または音声出力を好適に表示し、したがって、動的ユーザインターフェイスを見ているユーザは、ロボットによりプレイされている間、モバイルゲームを見ることができる。別の例において、アプリケーションが複数のウェブページを持つウェブサイトを含む場合、ウェブサイトに関する静的テキストの記述および／または静的画像を提供することに加えて、本発明の動的ユーザインターフェイスは、ユーザがウェブサイトの様々なウェブページをクリックして進んでいるかのように、ウェブサイトのテキスト、１以上のスナップ写真、または部分的または全部の低速度撮影映像および／または音声出力を好適に表示する。出力にテキスト、ビデオ、アニメーション、または写真やウェブページのような複数の静的画像等の動画および／または音声を含む、いずれのアプリケーションにも本発明を適用することができることは、当業者に識別されるところである。
【００２２】
別の例において、いくつかのアプリケーションには、どのようにアプリケーションが実行／操作されるかユーザに示すよう、少なくともアプリケーションの一部を実行するサブプログラムまたはアクティビティが既に付随してもよいため（すなわち、これらの種類のアプリケーションは、サブプログラム／アクティビティが開始された後に自動的に動的出力を生成することができる）、ロボットは本発明の動的ユーザインターフェイスを実行するのに必須ではない。この例において、本発明のシステムは、１以上のロボットにアプリケーションを操作することを要求することなく、このタイプのアプリケーションの開始／起動および動的ユーザインターフェイスの相当部分への出力のストリームのみを必要とする。
【００２３】
また、好ましい実施形態において、本発明の動的ユーザインターフェイスは、アプリケーションの出力を提供するだけでなく、ユーザにアプリケーションをダウンロード、インストールまたは実行するよう要求することなく、ユーザが動的ユーザインターフェイスを介してアプリケーションにインタラクトできるようにするものである。
【００２４】
図２は、ユーザインタラクションのために構成された本発明の好ましい実施形態を示す。図２に示すように、本発明の動的ユーザインターフェイスに表示されるアプリケーション９００について、インターフェイスは、アプリケーション９００をローカルにダウンロードする必要なしに、ユーザがボックス９１２にテキストメッセージを入力して、そのテキストメッセージをアプリケーションに好適に送信できるようにする。別の例において、ユーザは、インターフェイス上のホームボタン９１８または地図ボタン９２０を直接クリックすることで、本発明の動的ユーザインターフェイスを介して地図アプリケーション８００を制御することができる。こうすることで、本発明の動的インターフェイスは、アプリケーションの出力を表示するだけでなく、ユーザに動的インターフェイスを介してアプリケーションとインタラクトする機会も提供する。
【００２５】
本発明の別の実施形態において、動的ユーザインターフェイスは、ユーザが、ユーザデバイスを回転させる、傾ける、または振り動かす等アプリケーションを制御するための物理的動きを必要とする、インターフェイスに表示されるアプリケーションとインタラクトできるように構成される。本発明のこの実施形態において、これらの物理的動きは、インターフェイスに表示されるアプリケーションの出力とのユーザインタラクションによって好適にシミュレートすることができる。具体的には、ユーザは、物理的動きをシミュレートするため１以上の方向にアプリケーションの映像出力をドラッグすることで、動的ユーザインターフェイスに表示されるアプリケーションとインタラクトすることができる。一例として、アプリケーションがゲームデバイスを左または右に物理的に傾けることでユーザにゲームにおける車の方向を制御させるスポーツカードライビングゲームである場合、動的インターフェイスにおいてアプリケーションの出力を右または左にドラッグすることがユーザにこの傾ける動作をシミュレートできるようにすることになる。同様に、ゲームが、ゲームとインタラクトするためにユーザに振り動かす動作の利用を許可する場合、検索結果とインタラクトするよう振り動かす動作をシミュレートするため、動的ユーザインターフェイスの範囲内で検索結果を間断なく左右にドラッグすることで、ユーザはアプリケーションとインタラクトすることができる。
【００２６】
別の好ましい実施形態において、本発明の動的ユーザインターフェイスは、本発明のインターフェイスが表示されるデバイスのハードウェアデバイスと結合し、くだんのアプリケーションへの入力としてハードウェアデバイスにより生成されたハードウェア値を使用するよう構成される。例えば、くだんのアプリケーションは、デバイスのＧＰＳモジュール、またはＩＰ２Ｌｏｃａｔｉｏｎ（登録商標）機能といった手段を介してさらにシミュレートされた位置情報、またはＩＰアドレスにより物理的位置を発見可能な他の機能を介して本発明のインターフェイスが表示されるユーザデバイスから、実際のまたはシミュレートされた座標（または物理的位置）を好適に受信可能である。別の例において、アプリケーションは、本発明のインターフェイス、または本発明のインターフェイスが存在するデバイスの方位の変更の収集および受信が可能であり、ユーザのより良いアプリケーションの制御／操作を補助するよう適宜回転する。物理的制御を必要とする複数のアプリケーションが存在する場合、ユーザインターフェイスは、例えば、動的ユーザインターフェイスに表示される他のアプリケーションを見えないようにしつつ、アプリケーション／アプリケーションのユーザインターフェイスまたは出力を強調させることで、特定のアプリケーションに焦点を絞るよう構成されることができる。本発明の動的ユーザインターフェイスは、検索結果がデバイスのローカルにインストールされた場合と同様の体験をユーザに提供するために、知的にデバイスと通信する能力を備える。
【００２７】
本発明の動的ユーザインターフェイスは、検索結果の提供関連において、特に有用である。現在、ＧｏｏｇｌｅやＹａｈｏｏ等の一般に普及している検索エンジンにより提供される検索結果は、静的データおよび画像に限られている。従来の検索エンジンにより提供される静的データおよび画像に加えて、本発明の動的ユーザインターフェイスは、検索結果がロボットにより実行される間、検索結果のテキスト、１以上のスナップ写真、または部分的または全部の低速度撮影映像および／または音声出力の提供が可能である。さらに、本発明は、アプリケーションの実行中にアプリケーションにより生成されたデータ（このような動的データを「ｉｎ−ａｐｐデータ」と呼ぶ）へのアクセスを有するため、検索は検索結果の静的な記述に加えてｉｎ−ａｐｐデータに基づいてもよい。ｉｎ−ａｐｐデータに基づく検索を行なうことで、より豊富な量のデータに検索をかけることとなり、結果として従来の検索方法およびシステムに比べてより正確な検索結果につながるのである。ｉｎ−ａｐｐ検索方法およびシステムについて、より詳しくは、米国特許出願第１３９６０７７９号に記載されている。さらに、本発明の一の実施形態において、本発明の動的ユーザインターフェイスは、ユーザが、図１および２に示されるような検索結果インターフェイスに表示されるアプリケーション出力とインタラクトできるようにする。検索コンテクストに本発明を適用することで、従来の検索結果に比べ、本発明は、ユーザにアプリケーションのダウンロード、インストールまたは実行を要求することなく、より多くの情報の検索におけるより高い正確性と、検索結果の見た目や操作感のより良い理解とをユーザに提供することができる。
【００２８】
加えて、本発明の動的ユーザインターフェイスは、アプリケーション購入での用途、またはアプリケーションのレンタルでの用途に有益となる可能性も有している。具体的には、本発明が、購入および／またはダウンロードする前にユーザがアプリケーションを体験できるようにする、Ａｎｄｒｏｉｄのアプリストア等のモバイルアプリマーケットプレイスに本発明を適用することができる。さらに本発明は、ユーザがアプリケーションをダウンロードするのではなく本発明の動的ユーザインターフェイスを介してアプリケーションをレンタルできる、アプリケーションの販売ではなくレンタルを望むビジネスにも有用となることもできる。本発明が大量のビジネスコンテキストに利用できることは、当業者に識別されるところである。
【００２９】
図３は、本発明の動的ユーザインターフェイスを生成するシステムの好ましい実施形態を示す。図３に示す通り、システムは、１以上のサーバ１０、１以上のクライアント２０および／または１以上のアプリケーションサーバ３０を好適に備える。
【００３０】
各サーバ１０は、スーパバイザ１００、１以上のロボット１１０、１以上のアプリケーション１２０、１以上のプロセッサ１３０および／または１以上のネットワークインターフェイス１４０を好適にさらに備える。スーパバイザ１００は、本発明の制御部として動作するソフトウェアプログラムを好適に備える。各ロボット１１０は、１以上のアプリケーション１２０を実行するよう構成されたソフトウェアプログラムを好適に備える。各アプリケーション１２０は、ソフトウェアアプリケーション、オンラインＰＣゲーム、モバイルアプリ、ウェブブラウザ等を好適に備える。プロセッサ１３０は、スーパバイザ１００、ロボット１１０、アプリケーション１２０、ネットワークインターフェイス１４０、データベース１５０または１以上の仮想マシン１６０のうちの１つ等のサーバ１０の要素のためのデータを処理するよう好適に構成される。データベース１５０はシステムにより要求されたときデータを好適に記憶する。
【００３１】
本発明のシステムは、サーバ１０のオペレーションシステムにおいて、アプリケーション１２０のいずれかがネイティブに実行不可能である場合にサーバ１０におけるアプリケーション１２０の実行を補助可能な１以上の仮想マシン１６０を好適にさらに備える。システム１０がＡｎｄｒｏｉｄ、Ｗｉｎｄｏｗｓ（登録商標）、ｉＯＳ（登録商標）、ＵＮＩＸ（登録商標）等のオペレーションシステムの多様性をエミュレート可能となるよう、サーバ１０は複数の仮想マシン１６０を好適に備えるという点に留意する必要がある。
【００３２】
アプリケーションサーバ３０は、対応するアプリケーション１２０と通信するおよび／または実行を支援するよう構成されたサーバを好適に備える。例えば、本発明の一の好ましい実施形態において、アプリケーション１２０はオンラインＰＣゲームを備えてもよく、この場合において、対応するアプリケーションサーバ３０はオンラインＰＣゲーム１２０をホストするサーバを備え、オンラインＰＣゲーム１２０のために、データの受信、データの提供および／またはデータの処理等の、だがこれに限られないタスクを好適に実行する。本発明の別の好ましい実施形態において、アプリケーション１２０は、モバイルアプリを備えてもよく、この場合において、対応するアプリケーションサーバ３０は、モバイルアプリ１２０をホストし、また対応するモバイルアプリ１２０のデータ受信、データ提供および／またはデータ処理等の、だがこれに限られないタスクを実行するサーバを好適に備える。本発明の別の好ましい実施形態において、アプリケーション１２０は、ウェブサイトを表示可能なウェブブラウザを備えてもよく、この場合において、対応するアプリケーションサーバ３０は、ウェブサイトをホストし、またウェブブラウザアプリケーション１２０のデータ受信、データ提供および／またはデータ処理等の、だがこれに限られないタスクを実行するウェブサーバを好適に備える。本発明の別の好ましい実施形態において、アプリケーション１２０は、この例のシステムにおける対応するアプリケーションサーバ３０を必要としないよう、いずれのアプリケーションサーバ３０の操作も必要としないスタンドアロンソフトウェアアプリケーションであってもよい。
【００３３】
１以上のクライアント２０は、１以上の入力モジュール２１０、１以上のネットワークインターフェイス２２０、１以上のプロセッサ２３０、１以上のメディア出力部２４０、１以上のハードウェアデバイス２５０および／または１以上のクライアントアプリケーション２６０を備える。１以上の入力モジュール２１０は、ユーザの要求等の入力を受け取るよう構成される。入力モジュール２１０は、オンスクリーンキーボード、物理的なキーボード、手書き入力モジュール、マイクまたはその組み合わせ体等の音声入力を備えてもよい。１以上のネットワークインターフェイス２２０は、サーバ１０とクライアント２０との通信ができるようにする。メディア出力部２４０は、１以上のアプリケーション１２０に関連するサーバ１０から受信される出力等のテキスト、映像および／または音声情報を好適に出力可能である。
【００３４】
加えて、アプリケーションとユーザインタラクションできるようにする本発明の好ましい実施形態において、メディア出力部２４０はユーザからの入力も受け取り可能である。例えば、メディア出力部２４０は、カーソル等のポインティングデバイスの位置、またはタッチスクリーンの場合においては、ユーザがスタイラスまたは指の先端等でメディア出力部２４０と物理的接触をする位置を検出可能である。
【００３５】
さらに、この好ましい実施形態において、クライアント２０は、カメラ、マイク、ＧＰＳ、加速度計、ジャイロスコープ、光検出子、温度計、磁気計、気圧計、接近センサ、湿度計、ＮＦＣ、ラウドスピーカ、またはイメージセンサ（しかし、それに限られない）を有する１以上のハードウェアデバイス２５０を好適にさらに備える。一の例において、ハードウェアデバイス２５０は、画像、音、加速度、周囲温度、回転速度、周囲照度、地球磁場、周囲気圧、デバイスのスクリーンに対する物体の接近、関連する周囲湿度、座標（ＧＰＳ／ＡＧＰＳモジュール）等の環境値を探知するよう好適に構成される。本発明のシステムは、ハードウェアデバイス２５０とこれらの環境値を含むアプリケーション１２０が通信できるよう好適に構成される。そのような通信の処理フローは、図５Ｂに関連して以下に説明される。一の例において、クライアントアプリケーション２６０は、本発明の動的ユーザインターフェイスの出力を表示可能な、ウェブブラウザまたはカスタマイズされたソフトウェアアプリケーション（アプリ）等の、メディア出力部２４０を含むあるいは結合されるソフトウェアアプリケーションを好適に備えるまたは結合するよう構成されることができる。
【００３６】
図４は、ユーザが、動的ユーザインターフェイスに表示されるアプリケーションとインタラクトすることができる、本発明の好ましい実施形態におけるサーバ１０およびクライアント２０の好ましいソフトウェアおよび関連するハードウェアアーキテクチャを示す。図４を参照すると、サーバ１０のアーキテクチャは、仮想マシン１６０（アプリケーション１２０に要求された場合）、カーネル４１０、ハードウェア抽象化レイヤ４２０、１以上のライブラリ４３０、アプリケーションフレームワーク４４０、アプリケーション４５０および／または疑似ドライバ４６０を好適に備える。クライアント２０のアーキテクチャは、ハードウェアデバイス２５０、デバイスドライバ５２０、メモリ５３０、ハードウェア抽象化レイヤ５４０、１以上のライブラリ５５０、アプリケーションフレームワーク５６０および／またはアプリケーション２６０を好適に備える。
【００３７】
ハードウェア抽象化レイヤ（ＨＡＬ）４２０および５４０は、ハードウェアリソースにアプリケーション４５０へのアクセスを提供する複数のソフトウェアを好適に備える。ＨＡＬはＡｎｄｒｏｉｄオペレーティングシステムソフトウェアアーキテクチャの標準部品であるが、ｉＯＳおよびＷｉｎｄｏｗｓ等の他のオペレーティングシステムにおいて、ＨＡＬは必ずしも同じ形式で存在しない、またはまったく存在しない場合があるという点に留意する必要がある。そのため、クライアント２０が非Ａｎｄｒｏｉｄオペレーションシステムで実行する本発明の代替の実施形態は、Ｗｉｎｄｏｗｓ  Ｄｒｉｖｅｒ  Ｍｏｄｅｌ等のハードウェア制御および通信を処理するための同様のソフトウェアアーキテクチャを好適に備える。別の好ましい実施形態において、ＨＡＬは不要である。アプリケーション４５０は、スーパバイザ１００、ロボット１１０および／またはアプリケーション１２０を好適に備える。一の好ましい実施形態において、アプリケーション２６０はウェブブラウザを備える。ライブラリ４３０および５５０ならびにアプリケーションフレームワーク４４０および５６０は、アプリケーション４５０および２６０が実行してもよいソフトウェアプラットフォームを好適に提供する。上述のとおり、アプリケーション１２０がネイティブにサーバ１０で実行できる場合、仮想マシン１６０は必要とされないことがある。
【００３８】
メモリ５３０は、ハードウェアデバイス２５０により生成されるハードウェア値が記憶されてもよいランダムアクセスメモリを好適に備える。疑似ドライバ４６０は、好適には、クライアント２０から受信したハードウェア値をアプリケーション１２０またはアプリケーション１２０のＡＰＩが理解できるデータに変換し、変換済データをアプリケーション１２０またはＡＰＩに送信するソフトウェアである。好ましい実施形態において、疑似ドライバは一組のハードウェア値において作動するよう構成されることができる（例えば、ＧＰＳ座標のみを処理し、その値をロケーションに関連するＡＰＩに転送するよう構成されることができる）。別の好ましい実施形態において、疑似ドライバ４６０は、１つのアプリケーション１２０を複数のハードウェアデバイス２５０で処理するよう好適に構成されることができ（例えば、様々なハードウェアデバイスから異なる種類のハードウェア値を変換／転送することが可能になるよう構成されることができる）、そのため、アプリケーション１２０と複数のハードウェアデバイスとの結合を容易にする。疑似ドライバは、以下に図５Ｂに関連してより詳細に説明される。
【００３９】
当業者に識別されるとおり、システムの様々な要素はより少数のサーバあるいは１つのコンピュータにさえも組み合わされてもよい。例えば、サーバ１０およびサーバ３０のいずれかは、どちらも１つのマシンに存在してもよい。その一方で、サーバ１０の様々な要素、クライアント２０および／またはアプリケーションサーバ３０は、必ずしも１つのサーバまたはクライアントに存在することを必要とせず、しかし別々のサーバおよび／またはクライアントに位置してもよい。例えば、サーバ１０のデータベース１５０は、別々だがサーバ１０にネットワーク接続された自身のデータベースサーバに位置することができる。別の例として、クライアント２０のメディア出力部２４０は、ビルトインスクリーンである必要はないが、クライアント２０にネットワーク接続された別々のスタンドアロンモニタであってよい。
【００４０】
図５Ａは、本発明の動的ユーザインターフェイスを生成する方法の好ましい実施形態を示すフローチャートである。ステップ１０００において、スーパバイザ１００は、１以上のアプリケーション１２０を実行するよう１以上のロボット１１０を好適に起動する。ロボット１１０は、アプリケーションを自動的に実行するため、ユーザの行動を真似るよう好適にプログラムされる。別の好ましい実施形態において、ロボット１１０は、アプリケーション１２０のユーザインターフェイスをランダムにプローブすることで、アプリケーション１２０をランダムに動作するよう構成されることができる。このタイプのロボット１１０は、幅広い種類のアプリケーション１２０を動作させるのに適している。ロボット１１０の様々な実施形態の例は、米国特許出願第１３９６０７７９号に記載されている。発明の一の好ましい実施形態において、ロボット１１０は、アプリケーション１２０を実行するようあらかじめプログラムされたロジックを使用するソフトウェアプログラムを備える。発明の別の好ましい実施形態において、ロボット１１０は、アプリケーション１２０を制御するようＯＣＲロジックを使用するソフトウェアプログラムを備える。発明のさらに別の好ましい実施形態において、ロボット１１０は、アプリケーション１２０の人間による操作から学習されたロジックの使用を含む、アプリケーション１２０のあらかじめ記録された人間による操作に応じてアプリケーション１２０を操作するソフトウェアプログラムを備える。
【００４１】
例えば、ユーザが動的ユーザインターフェイスに表示されたアプリケーションとインタラクトできる本発明の好ましい実施形態において、ユーザが検索結果を動的ユーザインターフェイスを介して実行および制御することで操作する場合、ユーザの行動（例えば、「タッチ／タップ」イベントをシミュレートするインターフェイス上でのクリック、または「スライド／移動」イベントをシミュレートするドラッグの動作）は、ロボットが後にスクリプトを使用して同じアプリケーションを動作／制御するのを補助するためのスクリプト（またはプログラミングコードの一部）を形成するよう記録するため、クライアントアプリケーション２６０および／または１以上のハードウェアデバイス２５０により好適に検出され、スーパバイザ１００および／またはロボット１１０に好適に送信される。この教示／機械学習の仕組みを通し、ロボット１１０はより人間らしく行動するよう学習することで好適に、より「知的」になる。したがって、ロボット１１０がより「人間らしく」なることから、動的ユーザインターフェイスに示されるアプリケーション１２０の出力は、ユーザに、より意味のあるものになる。発明の第４の好ましい実施形態において、ロボット１１０は、説明してきた４つのタイプのロジックの２つ以上の組み合わせに応じてアプリケーション１２０を操作するソフトウェアプログラムを備える。
【００４２】
ステップ１０１０において、スーパバイザ１００またはロボット１１０は、アプリケーション１２０のそれぞれがサーバ１０のオペレーティングシステムでネイティブに動作可能か、またはステップ１０２０において、仮想マシン１６０上で実行される必要があるかを好適に決定する。好ましい実施形態において、アプリケーション１２０がサーバ１０で実行する本来のＯＳ以外の特定のＯＳでネイティブに実行することが既に知られている場合、仮想マシン１６０において対応するＯＳ上でアプリケーション１２０が実行されるよう、ステップ１０１０をとばしてステップ１０２０に直接進むことができる。ステップ１０３０において、必要であれば、アプリケーション１２０は、ステップ１０４０において適切に実行するために、１以上の対応するアプリケーションサーバ３０に接続する。ステップ１０５０において、アプリケーション１２０は、テキスト、映像および／または音声出力を含むが、これに限られないデータを出力する。ステップ１０６０において、スーパバイザ１００は、データベース１５０におけるアプリケーション１２０からのデータ出力を記憶するか否か決定する。記憶することが求められる場合、アプリケーション１２０によるデータ出力はステップ１０７０においてデータベース１５０に好適に記憶される。
【００４３】
一の好ましい実施形態において、データベース１５０に記憶されるデータは、ロボット１１０により実行されている間、１以上のアプリケーション１２０の出力を備える。出力は、テキスト、映像および／または音声出力を好適に備える。本発明の別の好ましい実施形態において、データベース１５０に記憶されるデータは、アプリケーション１２０と対応するアプリケーションサーバ３０との間で送信されるデータを備える。本発明のさらに別の好ましい実施形態において、データベース１５０に記憶されるデータは、説明された両方のタイプのデータを備える。
【００４４】
本発明の一の好ましい実施形態において、スーパバイザ１００は、データベース１５０におけるアプリケーション１２０からの出力全てならびにアプリケーション１２０と対応するアプリケーションサーバ３０との間の通信全体を記憶すると判定する。本発明の別の好ましい実施形態において、スーパバイザ１００は一部のデータのみを記憶すると判定してもよい。これは、処理能力および／または記憶領域を含むサーバ１０のリソースの保護等のために好適に行なわれる。例えば、くだんのアプリケーション１２０のうちの１つがノーカットのムービーを備える場合、本発明のシステムは、ムービー全体を記憶するのではなく、ムービーの一連のスナップ写真、ムービーの短い断片、一連のムービーの短い断片または低解像度のムービーのノーカットバージョンのみ記憶する。
【００４５】
好ましい実施形態において、ステップ１０００から１０７０は連続して繰り返される。別の好ましい実施形態において、ステップ１０００から１０７０は定期的にまたは必要に応じてだけ繰り返される。例えば本発明は、ユーザが存在する場合、データベース１５０において使用可能ではない情報を要求するユーザが存在する場合または十分なシステムリソースがある場合などでのみ実行する。
【００４６】
ステップ２０００において、本発明のシステムのユーザは入力モジュール２１０を介して要求を生成することができる。本発明の一の好ましい実施形態において、入力モジュール２１０が物理的なキーボードを備える場合、要求は、ある指示／キーボードをタイプすることで生成されてもよい。本発明の別の好ましい実施形態において、入力モジュールがマイク等の音声入力デバイスを備える場合、要求を生成するよう指示／キーボードの音声形式が受信され音声形式が認識された後に要求が生成されてもよい。
【００４７】
アプリケーション２６０は、ステップ２０１０において、ネットワークインターフェイス２２０および１４０を介してスーパバイザ１００に要求を送信する。スーパバイザ１００は、ステップ２０２０においてその要求を受信する。ステップ２０３０において、スーパバイザ１００は、当該要求に関連するアプリケーション１２０を識別する。本発明の好ましい実施形態において、アプリケーション１２０のうちの１つの、特定の要求との関連性を決定するためにデータベース１５０内に記憶されるデータがスーパバイザ１００によって使用されてもよい。上述のとおり、データベース１５０内に記憶されるデータは、アプリケーション１２０と、対応するアプリケーションサーバ３０との間で通信されるデータとともに、アプリケーション１２０のうちの１つが実行されている間の、アプリケーション１２０のうちの１つのテキスト、映像および／または音声出力を好適に備えるｉｎ−ａｐｐデータを備えてもよい。適合性の決定は、様々なアルゴリズムを使用して行なわれてもよく、最もシンプルなアルゴリズムは根本的な検索データへの要求に一致する単語を備える。
【００４８】
ステップ２０４０において、スーパバイザ１００は、くだんの要求に関連するアプリケーション１２０の出力を、ネットワークインターフェイス１４０および２２０を介してクライアント２０に送信すると判定する。本発明の一の好ましい実施形態において、スーパバイザ１００はアプリケーション１２０のうちの１つから出力をすべて送信する。本発明の別の好ましい実施形態において、スーパバイザ１００は一部の出力のみ送信するよう好適に構成される。例えば、好ましい実施形態において、スーパバイザ１００は処理能力および／または記憶領域等のシステムリソースを保護するため、クライアント２０への送信を限定可能である。具体的には、くだんのアプリケーション１２０のうちの１つがノーカットのムービーを備える場合、スーパバイザ１００は、ムービー全体を送信するのではなく、クライアントアプリケーション２６０への出力の送信をムービーの一連のスナップ写真、ムービーの短い断片またはムービーの一連の短い断片のみに好適に限定する。
【００４９】
ステップ２０５０においてくだんの要求に関連するアプリケーション１２０の出力を受信すると、クライアントアプリケーション２６０はステップ２０６０においてメディア出力部２４０に出力を表示する。発明の一の好ましい実施形態において、メディア出力部２４０は、１以上の関連するアプリケーション１２０からの１以上の出力を表示するよう構成される。上述のとおり、出力には、ほぼリアルタイムでアプリケーション１２０が実行されているかのような、アプリケーション１２０のテキスト、音声、１以上のスナップ写真および／または一部または全部の低速度撮影映像および／または音声出力が含まれることが好ましい。本発明の別の好ましい実施形態において、サーバ１０からストリームされるデータはライブまたはライブに近い状態ではなく、むしろデータベース１５０にあらかじめ記憶されたデータから供給される。
【００５０】
図５Ｂは、ユーザが動的インターフェイスから１以上のアプリケーション１２０とインタラクトできる本発明の好ましい方法を示す。このインタラクションを容易にするため、ステップ３０００において、ユーザがアプリケーション１２０のうちの特定の１つとインタラクションを開始する場合にスーパバイザ１００が検出できるよう、スーパバイザ１００はメディア出力部２４０および／または入力モジュール２１０に表示されるクライアントアプリケーション出力に好適に結合される。
これは、座標を用いてメディア出力部２４０に表示されるクライアントアプリケーション２６０のマッピング出力を好適に備える。例えば、メディア出力部２４０が解像度４８０×８００のスクリーンを備える場合、デカルト座標［３３，８８］は、アプリケーション１２０のアクティビティを表示するウィンドウの左側上部から３３行目のピクセルおよび８８列目のピクセルの位置を好適に示す。生成される表示の左側上部の角および右側下部の角の位置を特定するよう、クライアントアプリケーション２６０の中心および／またはＸＹ座標のペア、例えば［３３，８８］および［１０９，２０８］に対応する座標等の情報を提供することで、メディア出力部２４０に表示されるクライアントアプリケーション２６０の出力は、スーパバイザ１００に結合されてもよい。デカルト座標システム以外の座標システムが、必要に応じて使用されてもよいという点に留意する必要がある。
【００５１】
別の好ましい実施形態において、メディア出力部２４０に表示されるクライアントアプリケーション２６０の出力を結合することは、座標に関連付けられたイベントを示す１以上のイベントタグの使用を好適にさらに備える。例えば、「ＴＯＵＣＨ［３３，６６］」は、メディア出力部２４０において、ピクセルで［３３，６６］とアドレス指定されるユーザのスクリーンのクリックまたはタッチ位置を表す。スーパバイザ１００がメディア出力部２４０の解像度に比べて異なる解像度に構成されてもよく、またはメディア出力部２４０の一部のみが動的ユーザインターフェイスを表示するのに使用される等の理由により、座標および／またはイベントタグがスーパバイザ１００のための適切な翻訳または変換を要求してもよいことは、当業者に理解されるところである。座標およびイベントタグを提供することで、ユーザが本発明の動的ユーザインターフェイスに表示されるアプリケーション１２０の特定の１つとインタラクションを開始することを望んでいるとユーザのアクションが示す場合に、スーパバイザ１００は好適に検出することができる。ユーザはステップ３０１０において、様々な方法で行うことができる、アプリケーション１２０とのインタラクションを好適に開始する。例えば、メディア出力部２４０がタッチ感知型スクリーンを備える場合、ユーザは指先等でメディア出力部２４０に表示されるアプリケーション１２０の特定の１つ出力との物理的接触を好適に行う。本発明の別の好ましい実施形態において、メディア出力部２４０に表示されるアプリケーション１２０のうちの１つの出力にマウスを向けてクリックすることにより、ユーザはオンスクリーンカーソルでアプリケーション１２０のうちの１つとインタラクトすることができる。どちらの場合においても、当該座標の位置に対応するアプリケーション１２０のうちの１つとインタラクトすることをユーザが望んでいると示すよう、一連の座標およびタッチイベントタグはスーパバイザ１００に送られる。さらに別の好ましい実施形態において、入力モジュールがキーボードを備える場合、ナンバー９に対応するアプリケーション１２０のうちの１つとのインタラクションを開始するために、ユーザはシンプルにナンバー９等の特定のキーを打つことができる。
【００５２】
次に、ステップ３０２０において、特にそのユーザと単独でインタラクトするようスーパバイザ１００はアプリケーション１２０の新しいインスタンスを作成する。アプリケーションのこの新しいインスタンスはユーザにより手動で好適に操作されることから、ロボット１１０に接続される必要はない。１つのアプリケーション１２０とのインタラクトを望むユーザが複数存在する場合、各ユーザがアプリケーション１２０のインスタンスに別個にインタラクトできるよう、当該アプリケーション１２０の複数のインスタンスがサーバ１０に作成されることができる。アプリケーション１２０が仮想マシン１６０に実行するよう要求する場合、一の好ましい実施形態において、アプリケーション１２０の他のインスタンスとして、アプリケーション１２０の新しいインスタンスを同じ仮想マシン１６０内で作成することができるという点に留意する必要がある。別の好ましい実施形態において、アプリケーション１２０の他のいずれのインスタンスとも共有されない自身の仮想マシン１６０内で実行する、アプリケーション１２０の新しいインスタンスを作成することができる。
【００５３】
アプリケーション１２０の新しいインスタンスが作成される場合、ユーザがアプリケーションを開始したばかりのように、アプリケーション１２０の新しいインスタンスは最初から好適に初期化される。例えば、くだんのアプリケーションがゲームである場合、ユーザがゲームを最初から体験できるよう、アプリケーション１２０の新しいインスタンスはゲームの一番最初から実行開始することができる。別の例において、アプリケーション１２０がユーザにストリーム音声を聞くことができるようにするモバイルアプリである場合、モバイルアプリの新しいインスタンスは、ユーザが異なるカテゴリの音楽を閲覧できる最初のデフォルトページで実行開始することができる。
【００５４】
あるいはまた、アプリケーション１２０の新しいインスタンスが作成された場合、ユーザがアプリケーション１２０とのインタラクションを要求した正確なまたはおおよその箇所からアプリケーション１２０の新しいインスタンスは実行できる。例えば、くだんのアプリケーション１２０がアニメーションまたはビデオを表示するモバイルアプリである場合、モバイルアプリの新しいインスタンスは、ユーザがアプリケーション１２０とのインタラクションを要求した際に、アニメーションが再生された正確なまたはおおよその箇所から実行開始することができる。別の例において、くだんのアプリケーション１２０が、そのうちの１つが新車の紹介に関連する、複数のアクティビティまたはページ含むモバイルアプリであり、要求が新車を購入する場所等の情報に関するものである場合、アプリケーション１２０の新しいインスタンスは複数ページのモバイルアプリの新車の販売代理店の位置情報を示す特定ページにまでユーザを直接導く。本発明のさらに別の好ましい実施形態において、アプリケーション１２０の新しいインスタンスが作成された場合、アプリケーション１２０の新しいインスタンスは、アプリケーション１２０の、関連づけられた要求に最も関連する部分で実行開始することができる。例えば、くだんのアプリケーション１２０がレストランＸの複数ページにわたるウェブサイトであり、要求がレストランＸの場所に関するものである場合、ロボットはウェブページの新しいインスタンスを複数ページにわたるウェブサイトのレストランＸの位置情報を示す特定のウェブページにまで直接導くことができる。同様に、くだんのアプリケーション１２０がレストランＸのマルチスクリーンモバイルアプリであり、要求がレストランＸの場所に関するものである場合、ロボットは新しいインスタンスをマルチスクリーンモバイルアプリのレストランＸの位置情報を示す特定のスクリーンにまで直接導くことができる。
【００５５】
次に、アプリケーション１２０とのユーザインタラクションを容易にするため、クライアント２０はサーバ１０において実行するアプリケーション１２０と好適に結合される。これはアプリケーション１２０に結合するメディアモジュール２４０ならびにハードウェアデバイス２５０を好適に備える。
【００５６】
一の好ましい実施形態において、ステップ３０３０にて、スーパバイザ１００との結合とともに、メディア出力部２４０に表示されるクライアントアプリケーション２６０の出力をアプリケーション１２０に結合することは、座標及び／またはイベントタグを利用するマッピングを好適に備える。アプリケーション１２０がメディア出力部２４０の解像度に比べて異なる解像度に構成される場合があること、および／またはアプリケーション１２０の出力がメディア出力部２４０におけるクライアントアプリケーション２６０の出力の一部のみを占めること等の理由によって、スーパバイザ１００との結合とともに、座標がアプリケーション１２０のための適切な翻訳または変換を要求してもよいことは当業者に理解されるところである。クライアントアプリケーション２６０の出力をアプリケーション１２０に結合させることで、アプリケーション１２０に、メディア出力部２４０におけるユーザアクションを受け取らせることができるようにする。
【００５７】
メディア出力部２４０に表示されるクライアントアプリケーション２６０の出力がアプリケーション１２０に結合される場合、本発明の動的ユーザインターフェイスは、ユーザがアプリケーションを操作するために物理的動きを要求するアプリケーションとインタラクトできるよう構成されることができる。前述の例において、物理的動きをシミュレートするため、ユーザはアプリケーション１２０の映像出力を１以上の方向にドラッグすることで動的ユーザインターフェイスに表示されるアプリケーションと好適にインタラクトまたは操作および制御することができる。一の好ましい実施形態において、ドラッグ動作は、対応するアプリケーション１２０により、ＸおよびＹの値の変化が特定の方向であると解釈できるようにする一連の「ＤＲＡＧ［Ｘ，Ｙ］」座標およびイベントタグペアの生成を好適に生じさせることができる。代替の実施形態において、クライアントアプリケーション２６０は、一連の「ＤＲＡＧ［Ｘ，Ｙ］」座標およびイベントタグペアを、アプリケーション１２０が、アプリケーション１２０と適切にインタラクトするための方向であると解釈できるデータに変換してもよい。
【００５８】
このドラッグの仕組みを利用するアプリケーションの例として、アプリケーションがゲームデバイスを物理的に左または右に傾けることでユーザにゲームにおける車の方向を制御できるようにするスポーツカードライビングゲームである場合、動的ユーザインターフェイスにおいてアプリケーションの出力を右または左にドラッグすることがユーザにこの傾ける動作をアプリケーション１２０においてシミュレートできるようにする。同様に、ゲームとインタラクトするために、ゲームがユーザに振り動かす動作を利用できるようにする場合、アプリケーション１２０とインタラクトするよう振り動かす動作をシミュレートするため、動的ユーザインターフェイスの範囲内で、検索結果を間断なく左右にドラッグすることで、ユーザは検索結果とインタラクトすることができる。
【００５９】
本発明の別の好ましい実施形態において、クライアント２０のハードウェアデバイス２５０もアプリケーション１２０と結合することができる。センサデバイス２５０をアプリケーション１２０と結合させることは、クライアント２０が、アプリケーション１２０が要求するハードウェア設定を得るステップ３０４０を好適に備える。
【００６０】
ハードウェアデバイス設定は、アプリケーション１２０に要求される、ハードウェアデバイス２５０を構成するため利用される一組の値であることが好ましい。本発明の一の好ましい実施形態において、クライアント２０が合計８のハードウェアデバイスを有する場合、アプリケーション１２０のハードウェア値の要求を表すために、ハードウェア設定は好適に８ディジットの形式（各々「０」または「１」の値を有する）をとることができる。一例として、［０，１，１，０，０，０，０，０］のハードウェア設定は、第２および第３のドライバ／ハードウェアデバイスが要求されていることを表すのに使用されてもよく、またクライアント２０からアプリケーション１２０に転送されるべきである。アプリケーション１２０のハードウェア設定は、アプリケーション１２０を分析することで得ることができる。Ａｎｄｒｏｉｄアプリの例において、ＡｎｄｒｏｉｄＭａｎｉｆｅｓｔ．ｘｍｌファイルは、アプリを実行するのにどれだけの数のアクティビティ、インテントフィルタ等が必要かを表し、したがってアプリのハードウェア要求の提供もする。この例において、仮想マシンにおいて実行される各アプリは少なくとも１つのハードウェア設定を有することができる。
【００６１】
ハードウェア設定を受信すると、ステップ３０５０において、スーパバイザ１００は好適に開始して、要求されたハードウェアデバイス２５０をアプリケーション１２０に結合する。このステップは、疑似ドライバ４６０およびドライバ５２０の利用を好適に伴う。あるいはまた、アプリケーション１２０はアプリケーション１２０のハードウェア設定にかかわらず複数のドライバに結合し、ハードウェア設定により選択されたドライバから第２環境へハードウェア値を送信することができる。ドライバが常時実行する必要がないことは当業者に理解されるところである。それらはハードウェア設定を受信した後に起動するように構成されることができ、またドライバは、ユーザが他のアプリケーションに乗り換えたためアプリケーション１２０から必要とされなくなったまたはクライアント２０が電源を切ることができる場合に停止されることができる。
【００６２】
一度ハードウェアデバイス２５０がアプリケーション１２０と結合されると、ステップ３０６０においてハードウェアデバイス２５０がトリガされた場合、メモリ５３０はステップ３０６０において１以上のハードウェア値をドライバ５２０から受信する。そしてクライアント２０は、ステップ３０７０において、サーバ１０のＨＡＬ４２０を介してハードウェア値をアプリケーション１２０に送信する。疑似ドライバ４６０はハードウェア値を受信し、ハードウェア値をアプリケーション１２０に適したフォーマットに変換し、処理のため、変換したハードウェア値をアプリケーション１２０に送信する。
【００６３】
本発明の別の好ましい実施形態において、疑似ドライバを実行する必要はない。ハードウェア値をＨＡＬ４２０に送信し、直接アプリケーション１２０に転送することができる。例えば、ユーザがナビゲーションアプリを操作するために動的ユーザインターフェイスを使用する場合、ナビゲーションアプリはＧＰＳ／ＡＧＰＳモジュールに直接結合することなく実際に実行している。動的ユーザインターフェイス自身がアプリケーションでありハードウェア値を受信するよう構成されない場合があるため、クライアント２０で生成されるＧＰＳ信号はナビゲーションアプリ１２０に送信できない（例えば、Ａｎｄｒｏｉｄアプリについて、アプリケーションパッケージファイル（例えば、Ａｎｄｒｏｉｄにおける．ａｐｋファイル）をパックする前に座標を取得するため、プログラマは、ａｎｄｒｏｉｄ．ｌｏｃａｔｉｏｎパッケージに「Ｇｐｓ  Ｓａｔｅｌｌｉｔｅ」と呼ばれるクラスをロードするための行をプログラムコードに書き記すことを要求される。動的ユーザインターフェイスで実行できるアプリケーションを予測または制限することは不可能であるため、すべての潜在的なハードウェアから提供されるすべての機能を知ることは困難である。）本発明の一の例において、動的ユーザインターフェイスは処理のためにデフォルトですべてのクラスをロードしてもよい。本発明の別の例において、関連するハードウェア値を受信した後に、特定の種類のクラスをロードするためまたは特定のハードウェアと結合するために動的ユーザインターフェイスは自身を動的に構成することができる（すなわち、対応するクラスをロードするためハードウェア値に応じて動的ユーザインターフェイスにて実行されるプログラム）。
【００６４】
一の好ましい実施形態において、対応するハードウェア値／ハードウェアに生成されたファイルが、要求された際にはステップ３０５０を介していつでもアプリケーション１２０に送られることができるよう、ハードウェアデバイス２５０に対応するドライバは継続的にアプリケーション１２０に結合されることができる。別の好ましい実施形態において、ハードウェア値は、ネットワークサービスがない場合にメモリ５６０においてバッファされることができ、ネットワークサービスが再開した場合にだけアプリケーション１２０に送信されることができる。
【００６５】
本発明の好ましい実施形態において、ハードウェア値は、クライアント２０のカメラ、マイク、加速度計、温度計、ジャイロスコープ、磁気計、気圧計、接近センサ、湿度計等のハードウェアからの画像、音、加速度、周囲温度、回転速度、周囲照度、地球磁場、周囲気圧、デバイスのスクリーンに対する物体の接近、関連する周囲湿度、座標（ＧＰＳ／ＡＧＰＳモジュール）等を備える。
【００６６】
本発明の方法の上記の説明にて示された通り、スーパバイザ１００は多くのタスクを行う。スーパバイザ１００は１つのソフトウェアモジュールとして構成されることができる、またはスーパバイザ１００は、スーパバイザ１００が行う様々な機能により分割された、いくつかのモジュールを備えることができるという点に留意する必要がある。例えば、特にアプリケーション１２０の出力を送信するスーパバイザ１００のモジュールが存在でき、またデータベースストレージを制御するための異なるモジュール、またアプリケーションのインスタンスを生成するさらに別のモジュール等が存在できる。加えて、スーパバイザ１００により行われるあるタスクを必要としない代替の実施形態において、スーパバイザ１００のそれらのモジュールは本発明の方法およびシステムに含まれない。例えば、アプリケーション１２０の出力すべてが常にクライアント２０に送信されている場合、クライアント２０に何を送るか判定するスーパバイザ１００のモジュールは不要である。極端な場合には、スーパバイザ１００により行なわれるほとんどのタスクが必要ない場合、スーパバイザ１００の残りの機能は、ロボット１１０等の本発明の方法およびシステムの他の要素に組み込まれてもよい。例えば、特定のユーザからの要求が常に唯一のアプリケーションを参照する場合、出力は常に当該アプリケーションのすべてであり、ユーザインタラクションの必要がなくなり、スーパバイザ１００の制御および意思決定機能は必要ではなくなる。代わりに、ロボット１１０は、要求ステップ２２０の受信および、ステップ２３０および２４０において、要求されたアプリケーション１２０の送信を処理することができる。
【００６７】
一例として、図４、５Ｂおよび６は、アプリケーション１２０のためにユーザが写真を撮影するためハードウェアデバイス２５０としてカメラを使用する好ましい実施形態を説明するのに使用されてもよい。図５において、破線は関数呼び出しまたは指示（ハードウェアまたは対応するＡＰＩへの呼び出し／指示）を表し、実線は実際のデータ送信、例えば写真または他の種類のハードウェア値を表す。
【００６８】
ステップ３０００において、好適にはスーパバイザ１００はメディア出力部２４０においてクライアントアプリケーション２６０の出力に結合し、ユーザアクションを聞く。ステップ３０１０において、アプリケーション１２０とインタラクションを開始するために、ユーザは、座標およびユーザイベントをスーパバイザ１００に送る、本発明の動的ユーザインターフェイスに表示されるアプリケーション１２０を好適に選択する。座標およびタッチイベントを受信すると、スーパバイザ１００はアプリケーション１２０を開始する。ステップ３０２０において、スーパバイザ１００は特にユーザのためにアプリケーション１２０の新しいインスタンスを生成する。次に、ステップ３０３０において、スーパバイザ１００は座標およびイベントタグを用いて、メディア出力部２４０に表示されるクライアントアプリケーション２６０の出力をアプリケーション１２０に結合する。ステップ３０４０において、スーパバイザ１００は、要求されたハードウェア２５０の１つがカメラである、アプリケーション１２０のハードウェア設定を受信する。ステップ３０５０において、スーパバイザ１００はカメラのドライバをアプリケーション１２０に結合する。これは、ドライバ５２０および疑似ドライバ４６０の開始を要求してもよい。ステップ３０６０において、ハードウェア２５０はトリガされる。これは、ユーザが図６のボタン６１０等の、動的ユーザインターフェイスに表示されるアプリケーションのビジュアルイメージにおけるカメラに対応するボタンを打つことを含んでもよい。タッチイベントを受信した後、スーパバイザ１００はタッチイベントを認識してタッチイベントをアプリケーション１２０に適用する。解像度の差異に対するいずれかの適切な変換の後、タッチイベントが、タッチイベントがカメラトリガボタン内で発生したことを示しているため、アプリケーション１２０はユーザが写真の撮影を望んでいることを認識する。本発明の代替の実施形態において、アプリケーション１２０は、図６に示されるようにカメラをトリガするためのボタンに対応するメディア出力部２４０のエリア６２０を構成するために一組の座標を送ってもよい。例えば、クライアントアプリケーション２６０が最初のタッチイベントを生成するようユーザがスクリーンをタッチした位置を認識するように構成されてもよいため、一組の座標をアプリケーション１２０に送信するステップが必要ない。１つの例において、ボタンに対応するビューは動的出力インターフェイスによりローカルに生成されることができ、そのため解像度はローカルに固定されることができる。しかし、動的ユーザインターフェイスの残りのスクリーンはアプリケーション１２０からの出力を表示するためのものであり、解像度はネットワークの帯域幅に調整するよう構成されることができる（例えば、帯域幅が高い場合は１０８０Ｐになり、低い場合は３６０Ｐになる）。
【００６９】
一度カメラがトリガされると、ステップ３０７０においてハードウェア値がメモリ５３０に送られる。ハードウェア値は１以上の撮影された画像を好適に備える。そして、ステップ３０８０において、このデータはＨＡＬ４２０および５４０を介してアプリケーション１２０に送られる。
【００７０】
本発明の別の好ましい実施形態においては、ロボットがアプリケーション１２０を実行することは、必要とされない。代わりに、ユーザは、彼または彼女が使用を望んでいるアプリケーション１２０を簡単に要求することができ、その応答として、サーバ１０が、アプリケーション１２０の出力をユーザに最初に見せる必要なく、アプリケーション１２０がロボット１１０に実行されている間、ユーザが使用するためのアプリケーション１２０の新しいインスタンスを生成する。したがって、図３に示されるこの特定の実施形態に対応するシステムはロボット１１０を必要としない。図５Ｃおよび５Ｄは、本発明のこの好ましい実施形態の処理を示す。
【００７１】
ステップ４０００において、ユーザは入力モジュール２１０を介して要求を入力する。そしてクライアント２０は、ステップ４０１０において、要求をサーバ１０に送信する。次に、ステップ４０２０において要求を受信すると、スーパバイザ１００はステップ４０３０において要求に関連するアプリケーション１２０を決定する。ステップ４０４０において、スーパバイザ１００はアプリケーション１２０の新しいインスタンスを生成する。アプリケーション１２０のこの新しいインスタンスの生成において、スーパバイザ１００は、ステップ４０５０から４０８０において、適正に実行するために、アプリケーション１２０が仮想マシンならびにアプリケーションサーバ３０を要求するかを決定する。一度アプリケーション１２０の新しいインスタンスが生成されると、ステップ４０９０において、アプリケーション１２０は起動して出力の生成を開始する。この時点でのアプリケーション１２０の出力は、アプリケーション１２０の起動画面の表示等のアプリケーション１２０の通常の起動に関連し、ロボット１１０の実行によるものでないことは強調されなければならない。ステップ４１００において、スーパバイザ１００は、ステップ４１１０でクライアント２０が受信する出力をクライアント２０に送信する。ステップ４１２０において、クライアント２０が、メディア出力部２４０に表示されるクライアントアプリケーション２６０を介してサーバ１０から送信されるアプリケーション１２０の出力を表示する。
【００７２】
次に、ステップ４１３０において、スーパバイザは、メディア出力部２４０に表示されるクライアントアプリケーション２６０により示されるアプリケーション１２０の出力を介してユーザとアプリケーション１２０とをインタラクションできるようにするために、ＸＹ座標および／またはイベントタグを用いてメディア出力部２４０に表示されるアプリケーション２６０の出力とアプリケーション１２０を結合する。アプリケーション１２０とのインタラクションのためにハードウェアが要求される場合、クライアント２０はアプリケーション１２０からハードウェア設定を得る。ステップ４１５０において、スーパバイザ１００は、ドライバ５２０、ＨＡＬ５４０、疑似ドライバ４６０およびＨＡＬ４２０を用いて、要求されたハードウェアデバイス２５０をアプリケーション１２０に結合する。一度アプリケーション１２０およびハードウェアデバイス２５０が結合されると、ステップ４１６０においてハードウェアデバイス２５０をトリガすることが可能になる。ステップ４１７０において、ハードウェアデバイス４１６０は、ハードウェア値をアプリケーション１２０が処理できる形式に変換する疑似ドライバ４６０を介してアプリケーション１２０に転送されることができるハードウェア値を生成する。デバイス２０と完全に結合しているアプリケーション１２０を用いることで、ユーザは、デバイス２０においてアプリケーション１２０を実際にダウンロード、インストールおよび／または実行することなく、クライアント２０においてアプリケーション１２０が実行しているかのように、クライアント２０を介してアプリケーション１２０を使用することができる。
【００７３】
本発明の広範な発明の概念から逸脱することなく、上述の例に変更を加えることが可能であることは当業者に識別されるところである。本発明は、したがって、特定の開示された例に限定されないものと理解されるが、添付の請求項により定義される本発明の範囲および趣旨から逸脱することない修正を含むことが意図されている。
【００７４】
さらに、本発明の代表的な例の説明において、本明細書は特定のステップのシークエンスとして、本発明の方法および／または処理を提示してもよい。しかし、方法または処理がここに定められた特定の順序に依拠しない場合においては、方法または処理は説明された特定のステップのシークエンスに限定されるべきではない。ステップの他のシークエンスが可能であることは当業者に識別されるところである。したがって、本明細書に定められたステップの特定の順序は請求項に記載の範囲に制限されると解釈されるべきではない。加えて、本発明の方法および／または処理は、記載の順序でのステップの実行に限定されるべきものではなく、シークエンスは変更されてもよく、本発明の範囲および趣旨から逸脱しないことは当業者に識別されるところである。
【図１】
2016533576.tif 000003
【図２】
2016533576.tif 000004
【図３】
2016533576.tif 000005
【図４Ａ】
2016533576.tif 000006
【図４Ｂ】
2016533576.tif 000007
【図５Ａ】
2016533576.tif 000008
【図５Ｂ】
2016533576.tif 000009
【図５Ｃ】
2016533576.tif 000010
【図５Ｄ】
2016533576.tif 000011
【図６】
2016533576.tif 000012
【手続補正書】
【提出日】平成28年1月15日(2016.1.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１以上のクライアントと、
前記１以上のクライアントとネットワーク接続される１以上のサーバと、
前記１以上のサーバに存在する１以上のアプリケーションと、
前記１以上のサーバに存在する１以上のロボットと、を備え、
前記１以上のロボットは前記１以上のクライアントからの１以上の要求に応じて前記１以上のアプリケーションを実行するよう構成され、前記１以上のサーバは前記１以上のアプリケーションの出力を、前記１以上のアプリケーションが前記１以上のロボットにより実行されている間に、ライブ又はほぼライブで前記１以上のクライアントに提供するよう構成される、
動的ユーザインターフェイスを生成するシステム。
【請求項２】
前記出力は、前記１以上のアプリケーションの出力からとられたテキスト、スナップ写真または一連のスナップ写真、または一部または全部のラプス動画および／または音声データを備える、
請求項１に記載のシステム。
【請求項３】
前記１以上の要求はオンライン検索に関連する、
請求項１に記載のシステム。
【請求項４】
前記クライアントに送信される前記１以上のアプリケーションの前記出力は、前記１以上の要求に関連するアプリケーションからのものである、
請求項１に記載のシステム。
【請求項５】
前記関連はｉｎ−ａｐｐデータを用いて決定される、
請求項４に記載のシステム。
【請求項６】
前記１以上のアプリケーションの実行をサポートするよう構成される１以上のアプリケーションサーバをさらに備える、
請求項１に記載のシステム。
【請求項７】
前記１以上のアプリケーションと対応するアプリケーションサーバとの間で交換されるデータを含むｉｎ−ａｐｐデータを記憶するデータベースをさらに備える、
請求項１に記載のシステム。
【請求項８】
前記クライアントに存在するメディア出力部と、前記メディア出力部を介して前記サーバから送信される前記１以上のアプリケーションの出力を表示するよう構成される前記クライアントに存在するクライアントアプリケーションをさらに備える、
請求項１に記載のシステム。
【請求項９】
前記メディア出力部に表示される前記クライアントアプリケーションにより示される前記１以上のアプリケーションの出力は、前記クライアントアプリケーションを介しての前記１以上のアプリケーションとのユーザインタラクションを許可するよう構成される、
請求項８に記載のシステム。
【請求項１０】
前記メディア出力部に表示される前記クライアントアプリケーションにより示される前記１以上のアプリケーションは、前記１以上の対応するアプリケーションに結合され、前記結合が座標及びイベントタグペアの通信を含む、
請求項９に記載のシステム。
【請求項１１】
前記メディア出力部における前記クライアントアプリケーションにより表示される前記１以上のアプリケーションの前記出力とのユーザインタラクションに基づくシミュレーションにより、前記１以上のアプリケーションとインタラクトするために要求される物理的動作をシミュレートする手段をさらに備える、
請求項９に記載のシステム。
【請求項１２】
前記１以上のクライアントは１以上のハードウェアデバイスをさらに備え、前記１以上のアプリケーションは前記１以上のハードウェアデバイスと結合される、
請求項１に記載のシステム。
【請求項１３】
前記１以上のサーバでネーティブに実行できない前記１以上のアプリケーションを補助するよう１以上の仮想マシンをさらに備える、
請求項１に記載のシステム。
【請求項１４】
ユーザインタラクションを容易にするために、前記１以上のアプリケーションのインスタンスが生成される、
請求項８に記載のシステム。
【請求項１５】
前記ユーザインタラクションのために生成される前記１以上のアプリケーションの前記インスタンスは、前記アプリケーションにおける、前記１以上のクライアントからの前記１以上の要求に最も関連する場所で開始する、
請求項１４に記載のシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３１
【補正方法】変更
【補正の内容】
【００３１】
本発明のシステムは、サーバ１０のオペレーションシステム において、アプリケーション１２０のいずれかがネイティブに実行不可能である場合にサーバ１０におけるアプリケーション１２０の実行を補助可能な１以上の仮想マシン１６０を好適にさらに備える。システムがＡｎｄｒｏｉｄ、Ｗｉｎｄｏｗｓ（登録商標）、ｉＯＳ（登録商標）、ＵＮＩＸ（登録商標）等のオペレーションシステム の多様性をエミュレート可能となるよう、サーバ１０は複数の仮想マシン１６０を好適に備えるという点に留意する必要がある。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００６６
【補正方法】変更
【補正の内容】
【００６６】
本発明の方法の上記の説明にて示された通り、スーパバイザ１００は多くのタスクを行う。スーパバイザ１００は１つのソフトウェアモジュールとして構成されることができる、またはスーパバイザ１００は、スーパバイザ１００が行う様々な機能により分割された、いくつかのモジュールを備えることができるという点に留意する必要がある。例えば、特にアプリケーション１２０の出力を送信するスーパバイザ１００のモジュールが存在でき、またデータベースストレージを制御するための異なるモジュール、またアプリケーションのインスタンスを生成するさらに別のモジュール等が存在できる。加えて、スーパバイザ１００により行われるあるタスクを必要としない代替の実施形態において、スーパバイザ１００のそれらのモジュールは本発明の方法およびシステムに含まれない。例えば、アプリケーション１２０の出力すべてが常にクライアント２０に送信されている場合、クライアント２０に何を送るか判定するスーパバイザ１００のモジュールは不要である。極端な場合には、スーパバイザ１００により行なわれるほとんどのタスクが必要ない場合、スーパバイザ１００の残りの機能は、ロボット１１０等の本発明の方法およびシステムの他の要素に組み込まれてもよい。例えば、特定のユーザからの要求が常に唯一のアプリケーションを参照する場合、出力は常に当該アプリケーションのすべてであり、ユーザインタラクションの必要がなくなり、スーパバイザ１００の制御および意思決定機能は必要ではなくなる。代わりに、ロボット１１０は、要求ステップ２０２０の受信および、ステップ２０３０および２０４０において、要求されたアプリケーション１２０の送信を処理することができる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
一例として、図４、５Ｂおよび６は、アプリケーション１２０のためにユーザが写真を撮影するためハードウェアデバイス２５０としてカメラを使用する好ましい実施形態を説明するのに使用されてもよい。図４において、破線は関数呼び出しまたは指示（ハードウェアまたは対応するＡＰＩへの呼び出し／指示）を表し、実線は実際のデータ送信、例えば写真または他の種類のハードウェア値を表す。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
次に、ステップ４１３０において、スーパバイザ１００は、メディア出力部２４０に表示されるクライアントアプリケーション２６０により示されるアプリケーション１２０の出力を介してユーザとアプリケーション１２０とをインタラクションできるようにするために、ＸＹ座標および／またはイベントタグを用いてメディア出力部２４０に表示されるアプリケーション２６０の出力とアプリケーション１２０を結合する。アプリケーション１２０とのインタラクションのためにハードウェアが要求される場合、クライアント２０はアプリケーション１２０からハードウェア設定を得る。ステップ４１５０において、スーパバイザ１００は、ドライバ５２０、ＨＡＬ５４０ 、疑似ドライバ４６０およびＨＡＬ４２０を用いて、要求されたハードウェアデバイス２５０をアプリケーション１２０に結合する。一度アプリケーション１２０およびハードウェアデバイス２５０が結合されると、ステップ４１６０においてハードウェアデバイス２５０をトリガすることが可能になる。ステップ４１７０において、ハードウェアデバイス２５０は、ハードウェア値をアプリケーション１２０が処理できる形式に変換する疑似ドライバ４６０を介してアプリケーション１２０に転送されることができるハードウェア値を生成する。デバイス２０と完全に結合しているアプリケーション１２０を用いることで、ユーザは、デバイス２０においてアプリケーション１２０を実際にダウンロード、インストールおよび／または実行することなく、クライアント２０においてアプリケーション１２０が実行しているかのように、クライアント２０を介してアプリケーション１２０を使用することができる。
【国際調査報告】
2016533576.tif 000013
2016533576.tif 000014
2016533576.tif 000015