(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-03-11
(54)【発明の名称】リアルタイム通信のデバイス拡張
(51)【国際特許分類】
H04L 67/146 20220101AFI20220304BHJP
【FI】
H04L67/146
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021539663
(86)(22)【出願日】2020-01-06
(85)【翻訳文提出日】2021-08-17
(86)【国際出願番号】 US2020012321
(87)【国際公開番号】W WO2020146235
(87)【国際公開日】2020-07-16
(32)【優先日】2019-01-07
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-03-04
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】397074301
【氏名又は名称】サイトリックス システムズ,インコーポレイテッド
(74)【代理人】
【識別番号】110002310
【氏名又は名称】特許業務法人あい特許事務所
(72)【発明者】
【氏名】ベジャンキ,サンソッシュ クマール
(72)【発明者】
【氏名】シュクラバク,セルギー
(72)【発明者】
【氏名】サンピエリ,トーマス ジョン
(72)【発明者】
【氏名】ボシコ,ドミトロ
(57)【要約】
本明細書には、モバイルデバイスからの入力データを使用して通信を拡張するための方法およびシステムが記載されている。1つまたはそれ以上の入力デバイス402を有するモバイルデバイス401との接続を確立することができるコンピューティングデバイス301は、バーコードを表示することができ、このバーコードは、モバイルデバイス401によってスキャンされるときに、モバイルデバイス401をして、ウェブページへとアクセスさせる。ウェブページは、モバイルデバイス401をして、入力デバイス402からの入力データを、例えば、モバイルデバイス401上で実行されるウェブブラウザを介して、かつコンピューティングデバイス301へと伝送させるように構成されている。入力データは、コンピューティングデバイス301により、コンピューティングデバイス301に接続された物理入力デバイス402を複製する目的で使用される。コンピューティングデバイス301は、入力データを異なるコンピューティングデバイスに伝送することができる。
【選択図】
図5
【特許請求の範囲】
【請求項1】
方法であって、
コンピューティングデバイスにより、モバイルデバイスのユーザから入力データを受信するように構成された前記モバイルデバイスとの接続を確立することと、
前記コンピューティングデバイスに接続された物理入力デバイスを複製するために、前記コンピューティングデバイスにより、前記モバイルデバイスから前記入力データを受信することと、
前記モバイルデバイスと第2のコンピューティングデバイスとの間の通信を確立するために、前記コンピューティングデバイスにより、かつ前記第2のコンピューティングデバイスに、前記入力データを伝送することと、を含む方法。
【請求項2】
前記モバイルデバイスとの前記接続を確立することは、前記コンピューティングデバイスと関連付けられたウェブページに対応するバーコードを表示することを含み、前記入力データを受信することは、前記ウェブページを介して前記入力データを受信することを含む、請求項1に記載の方法。
【請求項3】
前記バーコードは、前記ウェブページと関連付けられたユニフォームリソースロケータ(URL)を含む、請求項2に記載の方法。
【請求項4】
前記コンピューティングデバイスにより、かつ前記コンピューティングデバイスに接続された1つまたはそれ以上の出力デバイスを介して、前記入力データを出力することをさらに含む、請求項1に記載の方法。
【請求項5】
前記モバイルデバイスから前記入力データを受信することは、前記モバイルデバイス上で実行されるウェブブラウザを介して前記入力データを受信することを含む、請求項1に記載の方法。
【請求項6】
前記入力データを受信することは、前記モバイルデバイスの異なる入力デバイスにそれぞれが対応する複数組の入力データを受信することを含む、請求項1に記載の方法。
【請求項7】
前記物理入力デバイスは、カメラ、マイクロフォン、または加速度計のうちの1つまたはそれ以上であるデバイスタイプを有する、請求項1に記載の方法。
【請求項8】
装置であって、
1つまたはそれ以上のプロセッサと、
命令を記憶するメモリと、を備え、前記命令は、前記1つまたはそれ以上のプロセッサによって実行されるときに、前記装置をして、
モバイルデバイスのユーザから入力データを受信するように構成された前記モバイルデバイスとの接続を確立することと、
前記装置に接続された物理入力デバイスを複製するために、前記モバイルデバイスから前記入力データを受信することと、
前記モバイルデバイスとコンピューティングデバイスとの間の通信を確立するために、前記コンピューティングデバイスに前記入力データを伝送することと、を行わせる、装置。
【請求項9】
前記モバイルデバイスとの前記接続を確立することは、前記装置と関連付けられたウェブページに対応するバーコードを表示することを含み、前記入力データを受信することは、前記ウェブページを介して前記入力データを受信することを含む、請求項8に記載の装置。
【請求項10】
前記バーコードは、前記ウェブページと関連付けられたユニフォームリソースロケータ(URL)を含む、請求項9に記載の装置。
【請求項11】
前記命令は、前記1つまたはそれ以上のプロセッサによって実行されるときに、前記装置をして、1つまたはそれ以上の出力デバイスを介して前記入力データを出力することをさらに行わせる、請求項8に記載の装置。
【請求項12】
前記モバイルデバイスから前記入力データを受信することは、前記モバイルデバイス上で実行されるウェブブラウザを介して前記入力データを受信することを含む、請求項8に記載の装置。
【請求項13】
前記入力データを受信することは、前記モバイルデバイスの異なる入力デバイスにそれぞれが対応する複数組の入力データを受信することを含む、請求項8に記載の装置。
【請求項14】
前記物理入力デバイスは、カメラ、マイクロフォン、または加速度計のうちの1つまたはそれ以上であるデバイスタイプを有する、請求項8に記載の装置。
【請求項15】
命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、コンピューティングデバイスによって実行されるときに、前記コンピューティングデバイスをして、
モバイルデバイスのユーザから入力データを受信するように構成された前記モバイルデバイスとの接続を確立することと、
前記装置に接続された物理入力デバイスを複製するために、前記モバイルデバイスから前記入力データを受信することと、
前記モバイルデバイスとコンピューティングデバイスとの間の通信を確立するために、前記コンピューティングデバイスに前記入力データを伝送することと、を行わせる、非一時的コンピュータ可読媒体。
【請求項16】
前記モバイルデバイスとの前記接続を確立することは、前記装置と関連付けられたウェブページに対応するバーコードを表示することを含み、前記入力データを受信することは、前記ウェブページを介して前記入力データを受信することを含む、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記バーコードは、前記ウェブページと関連付けられたユニフォームリソースロケータ(URL)を含む、請求項16に記載の非一時的コンピュータ可読媒体。
【請求項18】
前記命令は、前記コンピューティングデバイスによって実行されるときに、前記コンピューティングデバイスをして、1つまたはそれ以上の出力デバイスを介して前記入力データを出力することをさらに行わせる、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記モバイルデバイスから前記入力データを受信することは、前記モバイルデバイス上で実行されるウェブブラウザを介して前記入力データを受信することを含む、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記入力データを受信することは、前記モバイルデバイスの異なる入力デバイスにそれぞれが対応する複数組の入力データを受信することを含む、請求項15に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書に記載の発明の態様は、概してコンピューティングデバイス、コミュニケーション(例えば、映像会議や音声会議)、モバイルデバイスなどに関するものである。
【背景技術】
【0002】
映像会議や音声会議など、コンピュータによって実施されるコミュニケーションがますます普及してきた。現在の通信技術は、2人以上のユーザがコミュニケーションを行うのに、カメラおよび/またはマイクロフォンに頼ることが多い。例えば、会議室内のユーザの集団と通信会議に参加している他のユーザとの間でのコミュニケーションを支援する目的で、多くの会議室では、テーブル周りの一連のマイクロフォン、および中央に設置された大型のカメラが使用されている。通信には、他の入力デバイス(ひいては他の入力データ)も必要とされ得る。例えば、リアルタイムビデオゲームでは、異なるコンピューティングデバイスのユーザが入力データを提供するのに、ゲームコントローラが必要となり得る。
【発明の概要】
【0003】
以下の内容は、本明細書に記載されている発明の様々な態様を簡略化してまとめたものである。この概要は、包括的な概略ではなく、必須または肝要な要素を特定したり、請求項の範囲を明確化したりすることを意図してはいない。以下の概要は、後述の詳細な説明に入る前の導入部として、いくつかの概念を簡略化して提示しているに過ぎない。
【0004】
コンピューティングデバイスは、所与の時期に接続され得る入力デバイスの数および範囲に関して実用上の制限を有していてもよい。例えば、会議室内のコンピューティングデバイスは、会議室内の参加者全員の映像および音声を捕捉するための単一のカメラと単一のマイクロフォンとを有していてもよい。多数のカメラおよびマイクロフォンを前述のコンピューティングデバイス(例えば、会議室内の各参加者用のマイクロフォン)に接続することが望ましいかもしれないが、実用上の制限(例えば、ポートの数、利用可能な処理能力、コスト)により、それができない場合がある。
【0005】
上記の先行技術の制限を克服し、本明細書を読んで理解すれば明らかとなる他の制限を克服するために、本明細書に記載の態様は、モバイルデバイスからの入力データをローカルコンピューティングデバイスによって使用することに関する。
【0006】
コンピューティングデバイスは、仮想入力デバイスで構成されていてもよい。この仮想入力デバイスは、例えば、カメラやマイクロフォンなどの物理入力デバイスを複製するコンピューティングデバイス上で実行されるソフトウェアであってもよい。仮想入力デバイスは、ネットワーク経由でモバイルデバイスとコンピューティングデバイスとの間の通信を確立するように構成されていてもよい。かかる通信は、モバイルデバイスをして、モバイルデバイス上で実行されるウェブブラウザを介してウェブページへとアクセスさせることによって確立されることができ、このウェブページは、モバイルデバイスをして、プロトコル経由で、かつコンピューティングデバイスの仮想入力デバイスへと入力データを伝送させる。いくつかの例において、モバイルデバイスは、かかる入力データを、モバイルデバイスの1つまたはそれ以上の入力デバイス(例えば、カメラまたはマイクロフォン)からコンピューティングデバイスの仮想入力デバイスに伝送するように構成されていてもよい。入力データは、例えば、モバイルデバイスのカメラからの映像ストリーム、モバイルデバイスの加速度計からのデータ、モバイルデバイスのマイクロフォンからの音声ストリームなどであってもよい。コンピューティングデバイスは、モバイルデバイスからの入力データを、映像および/または音声会議、ビデオゲームなどでの使用など、第2のコンピューティングデバイスとの通信に使用し得ることから、入力を受信し、かつ出力を生成して、コンピューティングデバイス上でアプリケーションを実行するために、煩雑な追加アクセサリまたは周辺構成要素を接続する必要、または他の方法で設置する必要がなくなる。コンピューティングデバイスは、(例えば、複数のモバイルデバイスおよび/またはモバイルデバイスの複数の入力デバイスからの)複数組の入力データを受信することができ、異なるコンピューティングデバイスへの伝送のために、および/または、例えば、コンピューティングデバイスのディスプレイに表示される映像のように、コンピューティングデバイスの1つまたはそれ以上の出力デバイスを介した出力のために、かかる入力データをまとめるように構成されていてもよい。
【0007】
例えば、コンピューティングデバイスは、会議室内のデスクトップコンピュータであることができ、モバイルデバイスは、ユーザと関連付けられたスマートフォンまたはタブレットであってもよい。デスクトップコンピュータ上で実行される仮想入力デバイスアプリケーションは、デスクトップコンピュータの表示デバイスにバーコードを表示するように構成されていてもよい。モバイルデバイスは、モバイルデバイスのカメラを使用して、記号を検出することができ、例えば、記号に埋め込まれ、かつ仮想入力デバイスアプリケーションと関連付けられたユニフォームリソースロケータ(URL)にアクセスすることなどによって、仮想入力デバイスアプリケーションとの通信を確立することができる。モバイルデバイスは、WebRTCプロトコルなどのプロトコルを介して、および/またはモバイルデバイスのウェブブラウザアプリケーションを使用して、モバイルデバイスの入力データを仮想入力デバイスアプリケーションに送信するように構成されていてもよい。これにより、モバイルデバイスは、モバイルデバイスにインストールされるのが典型的であるソフトウェアを使用して、デスクトップコンピュータに入力データを伝送することができる。コンピューティングデバイスは、かかる追加の周辺構成部分を調達および設置するために必要な時間および費用をかけずに、仮想入力デバイスアプリケーションを使用して、入力データを、コンピューティングデバイスに物理的に接続されたデバイスが起点であるのように扱うように構成されていてもよい。
【0008】
これらの態様および追加的な態様が、以下でさらに詳述する開示内容により理解されるであろう。
【0009】
本明細書に記載の態様およびそれらの利点は、添付の図面を考慮して以下の説明を参照することにより、より深い理解が得られ得る。これらの図面において、同様の参照番号は同様の特徴を示している。
【図面の簡単な説明】
【0010】
【
図1】本明細書に記載された1つまたはそれ以上の例示的な態様に従って使用され得るコンピュータシステムアーキテクチャ例を示している。
【
図2】本明細書に記載された1つまたはそれ以上の例示的な態様に従って使用され得るリモートアクセスシステムアーキテクチャ例を示している。
【
図4】モバイルデバイスとの通信セッション例を示している。
【
図5】モバイルデバイスからの入力データがローカルコンピューティングデバイスへと流れる通信セッション例を示している。
【
図6】ローカルコンピューティングデバイスおよびモバイルデバイスに関するシーケンス図を示している。
【
図7】ローカルコンピューティングデバイス上で実行され、かつ映像会議通話を表示する表示デバイスを示している。
【
図8】複数のモバイルデバイスがローカルコンピューティングデバイスに接続している映像会議通話を示している。
【
図9】モバイルデバイスに関してローカルコンピューティングデバイスによって実施され得るステップを表したフローチャートである。
【
図10】複数のモバイルデバイスに関してローカルコンピューティングデバイスによって実施され得るステップを表したフローチャートである。
【
図11】ウェブページに関してローカルコンピューティングデバイスによって実施され得るステップを表したフローチャートである。
【
図12】ウェブページに関してモバイルデバイスによって実施され得るステップを表したフローチャートである。
【発明を実施するための形態】
【0011】
様々な実施の形態に関する以降の記述においては、本明細書の一部を形成する上記の添付図面が参照されており、本明細書に記載された態様が実施され得る様々な実施の形態が例として示されている。本明細書に記載された範囲から逸脱しない限り、他の実施の形態を利用したり、構造上および機能上の変更を行ったりし得るものと理解されたい。様々な態様で、他の実施の形態が可能であり、種々の異なる方法で実施または実行することができる。
【0012】
以下に詳述する主題の一般的な紹介として、本明細書に記載された態様は、コンピューティングデバイス間の映像会議および音声会議といったコミュニケーションに関するものである。かかるコミュニケーションは、カメラ、マイクロフォン、ポインタ(例えば、コンピュータのマウスやタッチスクリーン)、および/または他の入力デバイスの使用を伴い得る。かかるコミュニケーションに関わるコンピューティングデバイスは、スマートフォン、ラップトップ、タブレットなどのモバイルデバイスと、例えばネットワーク経由で通信することができ得る。かかるモバイルデバイスは、カメラ、マイクロフォン、タッチスクリーンなどの入力デバイスも備え得る。
【0013】
本明細書で使われている表現や用語は説明上のものであり、制限的なものとみなすべきでない。本明細書で使われている句および用語には、むしろ最も広義の解釈および意味が与えられるべきである。「含む」、「備える」、およびこれらの変形が使用されている場合には、以降に列挙された項目およびそれらの均等物、ならびに追加項目およびそれらの均等物を包含するものとする。「接続」、「連結」という用語、および同様の用語が使用されている場合には、直接的および間接的な搭載、接続、連結、位置付け、および係合を含むものとする。
【0014】
コンピューティングアーキテクチャ
コンピュータソフトウェア、ハードウェア、およびネットワークは、特にスタンドアロン、被ネットワーク接続、リモートアクセス(リモートデスクトップとも称される)、被仮想化、および/またはクラウドベースの環境など、種々の異なるシステム環境で利用され得る。
【0015】
図1は、本明細書に記載された1つまたはそれ以上の例示的な態様を、スタンドアロンおよび/または被ネットワーク接続環境で実装する目的で使用され得るシステムアーキテクチャおよびデータ処理デバイスの一例を表している。様々なネットワークノード103、105、107、および109は、インターネットなどのワイドエリアネットワーク(WAN)101を介して相互接続され得る。追加または代替として、プライベートイントラネット、企業ネットワーク、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、無線ネットワーク、パーソナルネットワーク(PAN)など、他のネットワークが使用され得る。ネットワーク101は説明用であり、より少数または追加的なコンピュータネットワークに置き換えられてもよい。ローカルエリアネットワーク133は、任意の既知のLANトポロジーのうちの1つまたはそれ以上を有することができ、イーサネットなど、様々な異なるプロトコルのうちの1つまたはそれ以上を使用することができる。デバイス103、105、107および109、ならびに他のデバイス(非図示)は、ツイストペアワイヤ、同軸ケーブル、光ファイバ、電波、または他の通信媒体を介して、ネットワークのうちの1つまたはそれ以上に接続され得る。
【0016】
本明細書で使用され、図面に描かれている「ネットワーク」という用語は、遠隔の記憶デバイスが1つまたはそれ以上の通信経路を介して連結されているシステムを表すだけでなく、記憶能力を有するかかるシステムに随時連結され得るスタンドアロンデバイスも表す。したがって、「ネットワーク」という用語は、「物理ネットワーク」だけでなく、すべての物理ネットワークにまたがって所在する単一の実体に帰属するデータで構成される「コンテンツネットワーク」も含む。
【0017】
構成要素としては、データサーバ103、ウェブサーバ105、クライアントコンピュータ107、109が挙げられ得る。データサーバ103は、本明細書に記載された1つまたはそれ以上の例示的な態様を実施するためのデータベースおよび制御ソフトウェアの全体的なアクセス、制御、および管理を提供する。データサーバ103はウェブサーバ105に接続されることができ、ユーザはウェブサーバ105を介して、リクエストされたデータと対話し、データを取得する。代替として、データサーバ103は、ウェブサーバそのものとなってインターネットに直接接続されてもよい。データサーバ103は、ローカルエリアネットワーク133、ワイドエリアネットワーク101(例えば、インターネット)、直接もしくは間接的な接続を介して、または他の何らかのネットワークを介して、ウェブサーバ105に接続され得る。
【0018】
ユーザは、リモートコンピュータ107、109を使用してデータサーバ103と対話することができ、例えば、ウェブブラウザを使用して、ウェブサーバ105がホストする1つまたはそれ以上の外部公開されたウェブサイトを介してデータサーバ103に接続することができる。クライアントコンピュータ107、109は、データサーバ103に記憶されているデータにアクセスするために、データサーバ103と連携して使用され得るか、他の目的で使用され得る。例えば、クライアントデバイス107から、ユーザは、当技術分野で既知のインターネットブラウザを使用して、またはコンピュータネットワーク(インターネットなど)を経由してウェブサーバ105および/もしくはデータサーバ103と通信するソフトウェアアプリケーションを実行することによって、ウェブサーバ105にアクセスすることができる。
【0019】
サーバおよびアプリケーションは、同じ物理マシン上で組み合わせられ、別々の仮想アドレスまたは論理アドレスを保持し得るか、別々の物理マシン上に所在することができる。
【0020】
図1は、使用され得るネットワークアーキテクチャの一例を表しているに過ぎず、当業者であれば、使用される特定のネットワークアーキテクチャおよびデータ処理デバイスが多様であることができ、本明細書にさらに記載のとおり、それらが提供する機能に対して二次的であることを理解するであろう。例えば、ウェブサーバ105およびデータサーバ103によって提供されるサービスは、単一サーバ上で組み合わせられ得る。
【0021】
各構成要素103、105、107、109は、任意のタイプの既知のコンピュータ、サーバ、またはデータ処理デバイスであってもよい。データサーバ103は、例えば、データサーバ103の動作全体を制御するプロセッサ111を含んでいてもよい。データサーバ103は、ランダムアクセスメモリ(RAM)113、読み出し専用メモリ(ROM)115、ネットワークインターフェース117、入出力インターフェース119(例えば、キーボード、マウス、ディスプレイ、プリンタなど)、およびメモリ121をさらに含み得る。入出力(I/O)119は、データまたはファイルの読み出し、書き込み、表示、および/または印刷を行うための様々なインターフェースユニットおよびドライブを含んでいてもよい。
【0022】
メモリ121は、データ処理デバイス103の動作全体を制御するためのオペレーティングシステムソフトウェア123と、本明細書に記載された態様を実施するようにデータサーバ103に指示するための制御ロジック125と、本明細書に記載された態様と組み合わせて使用してもしなくてもよい二次的な機能、サポート機能、および/または他の機能を提供する他のアプリケーションソフトウェア127と、をさらに記憶することができる。本明細書では、制御ロジック125はデータサーバソフトウェア125とも称されてもよい。データサーバソフトウェア125の機能とは、制御ロジック125へと符号化された規則に基づいて自動的に行われ、システムに入力を提供するユーザによって手動で行われる動作もしくは決定、および/またはユーザ入力(例えば、クエリやデータアップデートなど)に基づく自動処理の組み合わせのことであってもよい。
【0023】
メモリ121は、第1のデータベース129および第2のデータベース131を含む、本明細書に記載された1つまたはそれ以上の態様の実施に使用されるデータも記憶することができる。第1のデータベース129は、第2のデータベース131を(例えば、別々のテーブルやレポートなどとして)含み得る。つまり、情報は、システム設計に応じて、単一のデータベースに記憶すること、または異なる論理、仮想、もしくは物理データベースへと分けることができる。デバイス105、107、および109は、デバイス103に関して説明したのと同様のアーキテクチャまたは異なるアーキテクチャを有していてもよい。当業者であれば、例えば、処理負荷を複数のコンピュータに分配したり、地理的な箇所、ユーザのアクセスレベル、サービス品質(QoS)などに基づいてトランザクションを分離したりする目的で、本明細書に記載されているデータ処理デバイス103(またはデバイス105、107、もしくは109)の機能が複数のデータ処理デバイスに分散され得るということを理解するであろう。
【0024】
1つまたはそれ以上の態様は、本明細書に記載のとおり、1つまたはそれ以上のプログラムモジュールなど、1つまたはそれ以上のコンピュータまたは他のデバイスによって実行されるコンピュータ使用可能もしくは可読データおよび/またはコンピュータ実行可能命令で具現化され得る。一般に、プログラムモジュールとしては、コンピュータまたは他のデバイス内のプロセッサによって実行されるときに、特定のタスクを実施したり、特定の抽象データ型を実装したりするルーチン、プログラム、オブジェクト、構成要素、データ構造体などが挙げられる。モジュールは、実行のために後でコンパイルされるソースコードプログラミング言語で記述され得るか、ハイパーテキストマークアップ言語(HTML)または拡張マークアップ言語(XML)(これらに限定されない)などのスクリプト言語で記述され得る。
【0025】
コンピュータ実行可能命令は、不揮発性記憶デバイスなどのコンピュータ可読媒体に記憶される。ハードディスク、CD-ROM、光学式記憶デバイス、磁気記憶デバイス、および/またはそれらの任意の組み合わせなど、任意の適切なコンピュータ可読記憶媒体が利用され得る。加えて、本明細書に記載されているデータまたはイベントを表す様々な伝送(非記憶)媒体は、金属線、光ファイバ、および/または無線伝送媒体(例えば、空気および/または空間)などの信号伝導媒体を通過する電磁波という形態で、送信元と送信先との間で転送され得る。本明細書に記載されている様々態様は、方法、データ処理システム、またはコンピュータプログラム製品として具現化され得る。そのため、様々な機能の全体または一部は、ソフトウェア、ファームウェア、および/または、集積回路、フィールドプログラマブルゲートアレイ(FPGA)などのハードウェアもしくはハードウェア等価物で具現化され得る。本明細書に記載されている1つまたはそれ以上の態様をより効果的に実装する目的で、特定のデータ構造体が使用されることができ、かかるデータ構造体は、本明細書に記載されているコンピュータ実行可能命令およびコンピュータ使用可能データの範囲内で企図される。
【0026】
図2をさらに参照すると、本明細書に記載されている1つまたはそれ以上の態様が、リモートアクセス環境で実装されている。
図2は、本明細書に記載された1つまたはそれ以上の例示的な態様に従って使用され得る例示的なコンピューティング環境200内のコンピューティングデバイス201を含むシステムアーキテクチャ例を示している。コンピューティングデバイス201は、単一サーバまたは複数サーバのデスクトップ仮想化システム(例えば、リモートアクセスまたはクラウドシステム)内のサーバ206aとして使用され、クライアントアクセスデバイスに仮想マシンを提供するように構成することができる。コンピューティングデバイス201は、コンピューティングデバイス201の動作全体を制御するためのプロセッサ203と、RAM205、ROM207、入出力(I/O)モジュール209、およびメモリ215など、コンピューティングデバイス201の関連構成要素を有していてもよい。
【0027】
I/Oモジュール209は、コンピューティングデバイス201のユーザが入力を提供する手段であり得るマウス、キーパッド、タッチスクリーン、スキャナ、光学式読取機、および/もしくはスタイラス(または他の入力デバイス(複数であってもよい。以下「複数可」と表示する))を含み得ることに加え、音声出力を提供するための1つまたはそれ以上のスピーカと、テキスト、オーディオビジュアル、および/またはグラフィッカル出力を提供するための1つまたはそれ以上の映像表示デバイスと、も含み得る。
【0028】
ソフトウェアは、本明細書に記載されているような様々な機能を実施するために、コンピューティングデバイス201を特殊目的のコンピューティングデバイスへと構成するための命令をプロセッサ203に提供する目的で、メモリ215および/または他のストレージ内に記憶され得る。例えば、メモリ215は、オペレーティングシステム217、アプリケーションプログラム219、および関連付けられたデータベース221など、コンピューティングデバイス201で使用されるソフトウェアを記憶することができる。
コンピューティングデバイス201は、端末240(クライアントデバイスおよび/またはクライアントマシンとも称される)など、1つまたはそれ以上のリモートコンピュータへの接続をサポートする被ネットワーク接続環境で動作することができる。端末240は、コンピューティングデバイス103もしくは201に関して上述した要素の多くまたはすべてを含むパーソナルコンピュータ、モバイルデバイス、ラップトップコンピュータ、タブレット、またはサーバであってもよい。
【0029】
図2に描かれているネットワーク接続は、ローカルエリアネットワーク(LAN)225およびワイドエリアネットワーク(WAN)229を含むが、他のネットワークも含み得る。コンピューティングデバイス201は、LANネットワーク接続環境で使用される場合、ネットワークインターフェースまたはアダプタ223を介してLAN225に接続されてもよい。WANネットワーク接続環境で使用される場合、コンピューティングデバイス201は、コンピュータネットワーク230(例えば、インターネット)などのWAN229を経由した通信を確立するためのモデムまたは他のワイドエリアネットワークインターフェース227を含んでいてもよい。
【0030】
図示されたネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段が使用され得るということは理解されよう。コンピューティングデバイス201および/または端末240は、バッテリ、スピーカ、アンテナ(非図示)など、他の様々な構成要素を含むモバイル端末(例えば、携帯電話、スマートフォン、携帯型情報端末(PDA)、ノートパソコンなど)であってもよい。
【0031】
また、本明細書に記載の態様は、数々の他の汎用または特殊目的のコンピューティングシステム環境または構成でも動作可能であってもよい。本明細書に記載の態様で使用するのに適し得る他のコンピューティングシステム、環境、および/または構成の例としては、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラミング可能家電製品、ネットワークパーソナルコンピュータ(PC)、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが挙げられるが、これらに限定されない。
【0032】
図2に示すとおり、1つまたはそれ以上のクライアントデバイス240は、1つまたはそれ以上のサーバ206a~206n(本明細書では概して「サーバ(複数可)206」と称される)と通信することができる。コンピューティング環境200は、サーバ(複数可)206とクライアントマシン(複数可)240との間に設置されたネットワーク機器を含んでいてもよい。ネットワーク機器は、クライアント/サーバ接続を管理することができ、場合によっては、複数のバックエンドサーバ206間でクライアント接続の負荷分散を行うことができる。
【0033】
クライアントマシン(複数可)240は、単一クライアントマシン240または単一群のクライアントマシン240と称されてもよく、サーバ(複数可)206は、単一サーバ206または単一群のサーバ206と称されてもよい。単一クライアントマシン240は、1つより多くのサーバ206と通信することができ、および/または、単一サーバ206は、1つより多くのクライアントマシン240と通信することができる。単一クライアントマシン240は、単一サーバ206と通信することができる。
【0034】
クライアントマシン240は、クライアントマシン(複数可)、クライアント(複数可)、クライアントコンピュータ(複数可)、クライアントデバイス(複数可)、クライアントコンピューティングデバイス(複数可)、ローカルマシン、リモートマシン、クライアントノード(複数可)、エンドポイント(複数可)、またはエンドポイントノード(複数可)という非網羅的な用語のうちのいずれか1つによって表現され得る。サーバ206は、サーバ(複数可)、ローカルマシン、リモートマシン、サーバファーム(複数可)、またはホストコンピューティングデバイス(複数可)という非網羅的な用語のうちのいずれか1つによって表現され得る。
【0035】
クライアントマシン240は、仮想マシンであってもよい。仮想マシンは、任意の仮想マシンであることができ、および/または、仮想マシンは、例えば、シトリックス・システムズ(Citrix Systems)、IBM、VMware、またはその他任意のハイパーバイザによって開発されたハイパーバイザなど、タイプ1またはタイプ2のハイパーバイザによって管理される任意の仮想マシンであってもよい。いくつかの態様においては、仮想マシンがハイパーバイザによって管理され得るのに対し、他の態様においては、仮想マシンが、サーバ206上で実行されるハイパーバイザ、またはクライアント240上で実行されるハイパーバイザによって管理され得る。
【0036】
クライアントデバイス240は、サーバ206または遠隔地にある他のマシン上でリモートで実行されるアプリケーションによって生成されたアプリケーション出力を表示することができる。クライアントデバイス240は、アプリケーションウィンドウ、ブラウザ、または他の出力ウィンドウに出力を表示するために、仮想マシンレシーバプログラムまたはアプリケーションを実行することができる。一例において、アプリケーションはデスクトップであるのに対し、他の例においては、アプリケーションが、デスクトップを生成または提示するアプリケーションである。デスクトップは、ローカルおよび/またはリモートのアプリケーションを統合できるオペレーティングシステムのインスタンスにユーザインターフェースを提供するグラフィカルシェルを含む。
【0037】
本明細書で使用されているアプリケーションとは、オペレーティングシステムのインスタンスが(および任意選択でデスクトップも)ロードされた後に実行されるプログラムのことである。
【0038】
サーバ206は、リモートプレゼンテーションプロトコルまたは他のプログラムを使用して、クライアント上で実行されるシンクライアントまたはリモートディスプレイアプリケーションにデータを送信し、これによって、サーバ206上で実行されるアプリケーションによって生成された表示出力を提示することができる。シンクライアントまたはリモートディスプレイプロトコルは、フロリダ州フォートローダーデールにあるシトリックス・システムズ社(Citrix Systems, Inc.)が開発したインディペンデントコンピューティングアーキテクチャ(ICA)プロトコル、またはワシントン州レドモンドにあるマイクロソフト社(Microsoft Corporation)が製造したリモートデスクトッププロトコル(RDP)という非網羅的なプロトコルリスト内のいずれか1つであってもよい。
【0039】
リモートコンピューティング環境は、例えばクラウドコンピューティング環境において、論理的にグループ化されてサーバファーム206にまとめられるような1つより多くのサーバ206a~206nを含んでいてもよい。サーバファーム206は、論理的にグループ化されつつ地理的に分散したサーバ206、または論理的にグループ化されつつ互いに近接して所在するサーバ206を含んでいてもよい。
【0040】
サーバファーム206内で地理的に分散したサーバ206a~206nは、WAN(ワイド)、MAN(メトロポリタン)、またはLAN(ローカル)を使用して通信することができ、ここで、異なる地理的領域は、異なる大陸、異なる大陸領域、異なる国、異なる州、異なる都市、異なるキャンパス、異なる部屋、または前述の地理的位置の任意の組み合わせとして特徴付けることができる。サーバファーム206は、単一の実体として管理されることができ、および/または、サーバファーム206は、複数のサーバファームを含むことができる。
【0041】
サーバファームは、略同様のタイプのオペレーティングシステムプラットフォーム(例えば、WINDOWS(登録商標)、UNIX(登録商標)、LINUX、iOS、ANDROID(登録商標)、SYMBIANなど)を実行するサーバ206を含んでいてもよい。サーバファーム206は、第1のタイプのオペレーティングシステムプラットフォームを実行する第1の群の1つまたはそれ以上のサーバと、第2のタイプのオペレーティングシステムプラットフォームを実行する第2の群の1つまたはそれ以上のサーバと、を含んでいてもよい。
【0042】
サーバ206は、必要に応じて任意のタイプのサーバ、例えば、ファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、機器、ネットワーク機器、ゲートウェイ、アプリケーションゲートウェイ、ゲートウェイサーバ、仮想化サーバ、展開サーバ、セキュアソケットレイヤ(SSL)VPNサーバ、ファイアウォール、ウェブサーバ、アプリケーションサーバとして構成されていてもよいか、マスターアプリケーションサーバ、アクティブディレクトリを実行するサーバ、もしくはファイアウォール機能、アプリケーション機能、または負荷分散機能を提供するアプリケーション加速プログラムを実行するサーバとして構成されていてもよい。また、他のサーバタイプも使用され得る。
第1のサーバ206aは、クライアントマシン240からリクエストを受信することができ、リクエストを第2のサーバ206b(非図示)に転送し、第2のサーバ206b(非図示)からの応答を使用してクライアントマシン240によって生成されたリクエストに応答する。第1のサーバ206aは、クライアントマシン240にとって利用可能なアプリケーション一覧と、アプリケーション一覧内で識別されたアプリケーションをホストするアプリケーションサーバ206と関連付けられたアドレス情報と、を取得することができる。第1のサーバ206aはその後、ウェブインターフェースを使用してクライアントのリクエストに対する応答を提示することができ、識別されたアプリケーションへのアクセスをクライアント240に提供するために、クライアント240と直接通信することができる。1つまたはそれ以上のクライアント240および/または1つまたはそれ以上のサーバ206は、ネットワーク230、例えばネットワーク101を経由してデータを伝送することができる。
【0043】
図3は、通信セッション例を示している。かかる通信セッションは、例えば、映像通話や音声通話などであることができ、かつリアルタイムであってもよい。ローカルコンピューティングデバイス301は、コンピュータネットワーク230を介して、リモートコンピューティングデバイス304と通信することができる。ローカルコンピューティングデバイス301および/またはリモートコンピューティングデバイス304は、コンピューティングデバイス201と同一または同様であってもよい。ローカルコンピューティングデバイス301およびリモートコンピューティングデバイス304は、説明の便宜上、ローカルおよびリモートとして区別されているが、互いに任意の特定の距離に所在する必要はない。ローカルコンピューティングデバイス301およびリモートコンピューティングデバイス304のは両方とも、入力デバイス302を有していてもよい。ローカルコンピューティングデバイス301用の入力デバイス302は、カメラ303a、マイクロフォン303b、および/またはキーボード303cを備えていてもよい。リモートコンピューティングデバイス304用の入力デバイス302は、カメラ303d、マイクロフォン303e、および/またはゲームコントローラ303fを備えていてもよい。入力デバイス302は、I/Oモジュール209を備えていてもよく、および/またはI/Oモジュール209の一部であってもよい。
【0044】
ローカルコンピューティングデバイス301および/またはリモートコンピューティングデバイス304のいずれかまたは両方は、入力デバイス302からの入力データを相互に伝送するように構成されていてもよい。例えば、ローカルコンピューティングデバイス301は、カメラ330aからの入力データをリモートコンピューティングデバイス304に伝送することができ、リモートコンピューティングデバイスは、マイクロフォン303bからの入力データをローカルコンピューティングデバイス301に伝送することができる。
【0045】
ローカルコンピューティングデバイス301および/またはリモートコンピューティングデバイス304は、表示デバイスやスピーカなどの出力デバイス(非図示)を使用して、かかる入力データをそれぞれのデバイスのユーザに出力するように構成されていてもよい。例えば、ローカルコンピューティングデバイス301は、リモートコンピューティングデバイス304のカメラ303dからの映像を備えるインターフェースを表示スクリーン上に表示し得ると共に、ローカルコンピューティングデバイス301と通信可能に連結されたスピーカを介して、リモートコンピューティングデバイス304のマイクロフォン303eからの入力データを、ローカルコンピューティングデバイス301のユーザに出力することができる。
【0046】
ローカルコンピューティングデバイス301および/またはリモートコンピューティングデバイス304など、任意のコンピューティングデバイスを介して伝送された入力データは、圧縮、再フォーマット、および/または他の方法で所望どおりに変更され得る。例えば、ローカルコンピューティングデバイスは、映像をリモートコンピューティングデバイス304に伝送する前に、カメラ303aからの映像を圧縮および符号化することができる。
【0047】
図3に描かれた通信セッションの性質および品質は、入力デバイス302のうちのどれがリモートコンピューティングデバイス304および/またはローカルコンピューティングデバイス301にとって利用可能であるかに依存することができる。例えば、リモートコンピューティングデバイス304は、ローカルコンピューティングデバイス301に映像を伝送できるようにするためにウェブカムを接続する必要があり得るデスクトップコンピュータであってもよい。別の例として、ローカルコンピューティングデバイス301のマイクロフォン303bに欠陥があり得る。つまり、マイクロフォン303bからの入力データは、ローカルコンピューティングデバイス301のユーザとリモートコンピューティングデバイス304のユーザとの間の通信を困難にするような過度に劣悪な品質を有していてもよい。さらなる別の例として、多くのコンピューティングデバイス(ローカルコンピューティングデバイス301および/またはリモートコンピューティングデバイス304を含む)は、加速度計を備えていない。つまり、かかる加速度計を含む通信セッション(例えば、かかる加速度計を含むリアルタイムビデオゲーム)で、特殊かつ高価なデバイスをローカルコンピューティングデバイス301および/またはリモートコンピューティングデバイス304に追加する必要があり得る。
【0048】
通信拡張
図4は、モバイルデバイス401を含む通信セッション例を示している。ローカルコンピューティングデバイス301、リモートコンピューティングデバイス304、および入力デバイス302は同じものである。モバイルデバイス401は、スマートフォン、タブレット、または他の同様のコンピューティングデバイスであることができ、および/またはコンピューティングデバイス201と同一または同様であってもよい。モバイルデバイス401は、例えばコンピュータネットワーク230を介して、ローカルコンピューティングデバイス301に通信可能に接続され得る。追加および/または代替として、モバイルデバイス401は、(例えば、ユニバーサルシリアルバス(USB)コードを介して)ローカルコンピューティングデバイス301に直接接続され得る。
【0049】
モバイルデバイス401は、カメラ403a、マイクロフォン403b、および/または加速度計403cなど、1つまたはそれ以上の入力デバイス402を有していてもよい。入力デバイス402は、入力デバイス302と同一または同様であってもよい。入力デバイス402は、音声デバイス、映像デバイス、ゲームコントローラなどの入力デバイスタイプと関連付けられ得る。例えば、モバイルデバイス401がスマートフォンであれば、1つまたはそれ以上のカメラ(例えば、前面カメラおよび背面カメラ)とマイクロフォンとを有していてもよい。モバイルデバイス401は、入力デバイス402からの入力データを、例えばコンピュータネットワーク230経由で、ローカルコンピューティングデバイス301および/またはリモートコンピューティングデバイス304に伝送するように構成されていてもよい。例えば、モバイルデバイス401は、ローカルコンピューティングデバイス301との音声通信セッションを確立するように構成されることができ、モバイルデバイス401は、ユーザの声を入力データとしてマイクロフォン403bからローカルコンピューティングデバイス301に伝送する。別の例として、モバイルデバイス401は、モバイルデバイス上で実行されるウェブブラウザを使用して、タッチ入力および/またはカメラ403aからの映像データを伝送するように構成されていてもよい。
【0050】
ローカルコンピューティングデバイス301は、モバイルデバイス401からの入力データをリモートコンピューティングデバイス304に伝送するように構成されていてもよい。さらに後述するとおり、ローカルコンピューティングデバイス301は、それによって、モバイルデバイス401からの入力データを使用して、接続された物理入力デバイスの存在を複製することができる。例えば、モバイルデバイス401は、コンピュータネットワーク230経由で、カメラ403aからの入力データをローカルコンピューティングデバイス301に伝送することができ、ローカルコンピューティングデバイス301は、入力データをリモートコンピューティングデバイス304に伝送することができる。
図5は、入力デバイス402からの入力データがモバイルデバイス401からローカルコンピューティングデバイス301へと流れる通信セッション例を示している。ローカルコンピューティングデバイス301は、仮想入力デバイス501を有して構成されていてもよい。仮想入力デバイス501は、入力デバイス402などの入力デバイスの存在をエミュレートし得るソフトウェアおよび/またはハードウェアであってもよい。かかるエミュレーションは、コンピューティングデバイスに接続された物理入力デバイスを複製することができる。例えば、かかるエミュレーションは、コンピューティングデバイスに接続された入力デバイス(例えば、モバイルデバイス401上の入力デバイス)の機能を、異なるコンピューティングデバイス(例えば、ローカルコンピューティングデバイス301)上で提供することを含んでいてもよい。
【0051】
仮想入力デバイス501は、より大きなソフトウェアスイート(例えば、映像会議アプリケーション)の一部であることができ、および/またはスタンドアロンのソフトウェア(例えば、ドライバまたはコンピュータプログラム)であってもよい。例えば、仮想入力デバイス501は、1つまたはそれ以上のドライバであることができ、この1つまたはそれ以上のドライバは、カメラ403aおよび/またはマイクロフォン403bの存在を複製するローカルコンピューティングデバイス301のオペレーティングシステムにインストールされている。仮想入力デバイス501は、入力デバイス402に基づいて1つまたはそれ以上の入力デバイスをエミュレートするように構成されていてもよい。例えば、仮想入力デバイス501は、モバイルデバイス401がどの入力デバイスを有するかを判断することができ、その後、ローカルコンピューティングデバイス301上の入力デバイスの機能を、ローカルコンピューティングデバイスに直接接続されている物理入力デバイスであるかのように複製することにより、各入力デバイスをエミュレートすることができる。仮想入力デバイス501は、複数の入力デバイスを同時にエミュレートすることができ、その結果、例えば、仮想入力デバイス501は、(例えば、モバイルデバイス401のカメラ403aおよびマイクロフォン403bから)映像および音声の両方を受信および/または伝送することができる。
【0052】
なお、仮想入力デバイス501は、メディアエンジン503aおよび通信エンジン503bを備えていてもよい。通信エンジン503bは、入力デバイス402からの入力データをローカルコンピューティングデバイス301に伝送するようモバイルデバイスに促すために、モバイルデバイス401の通信エンジン504bとの通信を確立するなどして、モバイルデバイス401との通信を確立するように構成されていてもよい。例えば、通信エンジン503bは、モバイルデバイス401上で実行されるウェブブラウザを介してモバイルデバイス401がアクセスするURLを通信エンジン504bに伝送するように構成されていてもよい。別の例として、通信エンジン503bは、ローカルコンピューティングデバイス301をモバイルデバイス401に対して認証するか、またはその逆を行うように構成されていてもよい。通信エンジン503bは、仮想入力デバイス501に対応するウェブページを生成するように構成されたハイパーテキスト転送プロトコル(HTTP)サーバを備えていてもよい。例えば、通信エンジン503bは、モバイルデバイス401からローカルコンピューティングデバイス301への入力データの転送を開始するためにモバイルデバイス401によってアクセスされ得るWebRTCプロトコル準拠のウェブページを生成するように構成されていてもよい。
【0053】
ローカルコンピューティングデバイス301のメディアエンジン503aは、モバイルデバイス401のメディアエンジン504aから、入力デバイス402からの入力データを受信するように構成されていてもよい。例えば、メディアエンジン503aは、入力データを受信するように構成されたソフトウェアを備えていてもよく、メディアエンジン504aは、WebRTCプロトコルを使用して入力データを送信するように構成されたソフトウェアを備えていてもよい。
【0054】
メディアエンジン504aは、入力デバイス402からの入力データをメディアエンジン503aに送信する前に、かかる入力データを処理および/またはフォーマットするように構成されていてもよい。入力データは、例えば、帯域幅を節約したり、出力デバイス502を介した出力用に入力データをフォーマットしたりするために、符号化され、および/または他の方法で圧縮された上で伝送され得る。例えば、ローカルコンピューティングデバイス301は、映像を備える入力データを特定の映像コーデックを用いて符号化するリクエストを、通信エンジン503bを介して通信エンジン504bに伝送することができる。別の例として、メディアエンジン504aは、メディアエンジン503aへの入力データの伝送を改善するために、限られた量の帯域幅、および/または閾値を超える遅延を有するネットワーク(例えば、コンピュータネットワーク230)に基づき、入力デバイス402からの入力データを圧縮して伝送することができる。
【0055】
メディアエンジン503aによって受信された入力データ、およびメディアエンジン504aからの入力データは、ローカルコンピューティングデバイス301の出力デバイス502に提供され得る。ローカルコンピューティングデバイス301の出力デバイス502は、表示スクリーン、スピーカ、または出力用に構成された他のデバイスを備えていてもよい。例えば、ローカルコンピューティングデバイス301は、カメラ403aからの映像データを、メディアエンジン504aおよびメディアエンジン503aを介して受信することができ、出力デバイス502の表示スクリーンに映像データを表示させることができる。別の例として、ローカルコンピューティングデバイス301は、マイクロフォン403bからの音声データを、メディアエンジン504aおよびメディアエンジン503aを介して受信することができ、出力デバイス502の1つまたはそれ以上のスピーカを使用して音声データを出力することができる。
【0056】
ローカルコンピューティングデバイス301によって受信された入力データは、出力デバイス502を介して出力される前に、フォーマット、配置、および/または他の形で修正され得る。例えば、ローカルコンピューティングデバイス301は、映像会議における異なるユーザにそれぞれが対応する複数の映像フィードを表示することができ、映像フィードのうちの1つは、カメラ403aから受信した入力データを符号化した小型版であってもよい。別の例として、メディアエンジン504aからメディアエンジン503aに送信された、マイクロフォン403bからの入力データは、音声会議における不本意なノイズを低減するために、1つまたはそれ以上のノイズフィルタに通されてもよい。
【0057】
通信エンジン503bおよび通信エンジン504bは、ローカルコンピューティングデバイス301とモバイルデバイス401との間の通信(例えば、メディアエンジン504aからメディアエンジン503aへの入力データの伝送)を管理するように構成されていてもよい。例えば、通信エンジン503bおよび通信エンジン504bは、ローカルコンピューティングデバイス301とモバイルデバイス401との間のセッションをインスタンス化および/または管理することができる。別の例として、通信エンジン504bは、入力デバイス402の各入力デバイスのリストを通信エンジン503bに伝送することができる。さらに別の例として、通信エンジン503bは、音声および/または映像入力データを求めるリクエストを通信エンジン504bに伝送することができる。
【0058】
通信アプリケーション601のユーザの観点からの例として、ユーザはまず、自分のスマートフォン(例えば、モバイルデバイス401)を使用して、ローカルコンピューティングデバイス301の表示スクリーンに表示されたバーコードをスキャンすることができる。バーコードをスキャンしたことを受けて、ユーザのスマートフォンは、ウェブブラウザを使用して、ユーザのスマートフォンとローカルコンピューティングデバイス301との間のWebRTC接続を初期化するウェブページ(例えば、ローカルコンピューティングデバイス上で実行されるもの)へとナビゲートすることができる。このWebRTC接続により、ユーザはその後、スマートフォンからローカルコンピューティングデバイス301に映像および/または音声を送信できるようになり得る。このようにして、ユーザのスマートフォンは、特殊なアプリケーションではなく、標準的なウェブブラウザを使用して、ローカルコンピューティングデバイス301との通信を確立することができる。
【0059】
図6は、ローカルコンピューティングデバイス301およびモバイルデバイス401に関するシーケンス図を示している。ローカルコンピューティングデバイスは、映像および/または音声会議アプリケーションやビデオゲームなど、通信を実施するように構成された通信アプリケーション601を実行することができる。モバイルデバイス401は、ウェブブラウザ602などのアプリケーションを有して構成されていてもよい。
図6には、ローカルコンピューティングデバイス301および/またはモバイルデバイス401の要素間に矢印が示されているが、かかる要素間で特定のフォーマットまたはデータを伝送する必要はない。
【0060】
ステップ603で、通信アプリケーション601は、仮想入力デバイス501をロードすることができる。仮想入力デバイス501は、ローカルコンピューティングデバイスに接続された入力デバイスをエミュレートするようにロードされ得る。仮想入力デバイス501をロードすることは、仮想入力デバイス501を、ローカルコンピューティングデバイス301のオペレーティングシステムに、および/またはローカルコンピューティングデバイス301上で実行されるソフトウェアに入力デバイスとして提示させることを含んでいてもよい。仮想入力デバイス501をロードすることは、入力デバイス402をオペレーティングシステムに、および/またはローカルコンピューティングデバイス301上で実行されるソフトウェアに登録することを含んでいてもよい。仮想入力デバイス501をロードすることは、入力デバイス402のうち、ローカルコンピューティングデバイス301上でエミュレートする1つまたはそれ以上の入力デバイスを決定することを含んでいてもよい。例えば、ローカルコンピューティングデバイス301は、入力デバイス402のリストをモバイルデバイス401に照会することができ、そのリストに基づいて、ローカルコンピューティングデバイス301で1つまたはそれ以上の入力デバイスをエミュレートすることができる。
【0061】
仮想入力デバイス501をロードすることは、メディアエンジン503aおよび/または通信エンジン503bを初期化することを含んでいてもよい。メディアエンジン503aおよび/または通信エンジン503bの初期化は、1つまたはそれ以上のエミュレートされた入力デバイスを仮想入力デバイス501のオペレーティングシステムに表示することを含んでいてもよい。メディアエンジン503aおよび/または通信エンジン503bの初期化は、ローカルコンピューティングデバイス301上で実行される1つまたはそれ以上のアプリケーションによって行われ得る。例えば、ローカルコンピューティングデバイス301で電話会議アプリケーションを実行すると、メディアエンジン503aおよび/または通信エンジン503bが初期化され得る。
【0062】
ステップ604aで、仮想入力デバイス501は、通信アプリケーション601を介してバーコードを表示することができる。バーコードは、出力デバイス502の一部であり得る表示デバイスを介して表示され得る。バーコードは、日本の愛知県知多郡にあるデンソーウェーブ社(Denso Wave Corporation)によるクイックレスポンス(QR)コードなど、1次元または2次元のバーコードであってもよい。バーコードは、仮想入力デバイス501および/またはローカルコンピューティングデバイス301の一意のURLまたは識別子などの情報を含んでいてもよい。例えば、仮想入力デバイス501は、ローカルコンピューティングデバイス301上で、特定のURLおよび/またはインターネットプロトコル(IP)アドレスにおいてHTTPサーバをインスタンス化することができ、HTTPサーバを介して仮想入力デバイス501に対応するウェブページを表示することができ、特定のURLおよび/またはIPアドレスを含むバーコードを表示することができる。ステップ604aはバーコードに関して記載されているが、仮想入力デバイス501および/またはローカルコンピューティングデバイス301についての他の明示が表示され得る。例えば、仮想入力デバイス501と関連付けられた短縮URLが表示され得る。別の例として、ローカルコンピューティングデバイス301と関連付けられたIPアドレスが表示され得る。
【0063】
ステップ604bでは、モバイルデバイス401が、ウェブブラウザ602を使用して、ステップ604aで表示されたバーコードを、例えばカメラ403aを使用してスキャンすることができる。ローカルコンピューティングデバイス301およびモバイルデバイス401によって、かかるバーコードを使用することには、モバイルデバイス401のユーザが、かかる詳細を手動で入力する必要性が回避されるという利点があり得る。追加または代替として、ステップ604aおよび604bは飛ばしてもよく、ユーザが、仮想入力デバイス501および/またはローカルコンピューティングデバイス301の一意の識別子を入力するように促されてもよい(例えば、ユーザが、仮想入力デバイス501および/またはローカルコンピューティングデバイス301に対応するURLをウェブブラウザ602に入力するように手動で促されてもよい)。
【0064】
ステップ605aで、仮想入力デバイス501は、メディアエンジン503aを初期化する。ステップ605bで、仮想入力デバイス501は、通信エンジン503bを初期化する。ステップ605cで、ウェブブラウザ602は、通信エンジン504bを初期化する。ステップ605dで、ウェブブラウザ602は、メディアエンジン504aを初期化する。ステップ605a、ステップ605b、ステップ605c、およびステップ605dというこの特定の順序は、
図6に示す順序である必要はない。例えば、メディアエンジン503aは、最初または最後に初期化されたり、メディアエンジン504aに対して任意の関係で初期化されたりすることができる。初期化は、メディアエンジン503a、通信エンジン503b、メディアエンジン504a、および/または通信エンジン504bを、ローカルコンピューティングデバイス301および/またはモバイルデバイス401についての情報を有して構成することを含んでいてもよい。初期化は、メディアエンジン503a、通信エンジン503b、メディアエンジン504a、および/または通信エンジン504bを、入力デバイス402のうちの1つまたはそれ以上の識別情報など、入力デバイス402についての情報を有して構成することを含んでいてもよい。
【0065】
メディアエンジン504aおよび/または通信エンジン504bの初期化は、ウェブブラウザ602によってアクセスされたウェブページに基づいてもよく、ステップ604bでスキャンされたバーコードに基づいてもよい。仮想入力デバイス501は、モバイルデバイス401をして、メディアエンジン504aおよび/または通信エンジン504bを初期化させるウェブページへと、バーコードを介してアクセスさせ得る。メディアエンジン504aおよび/またはメディアエンジン503aの初期化が、JAVASCRIPT(登録商標)および/またはWebRTCなどのプログラミング言語を使用して実施され得るのに対し、通信エンジン504bおよび/または通信エンジン503bの初期化は、ウェブソケット(websocket)の使用を含んでいてもよい。それにより、メディアエンジン504aおよび/または通信エンジン504bの初期化が、モバイルデバイス401のウェブブラウザ602を使用して実施されることができ、その結果、モバイルデバイス401は、ウェブページにアクセスしてステップを実施し得るため、特別にインストールされたソフトウェアを備える必要がない。モバイルデバイス401がアクセスするウェブページは、ローカルコンピューティングデバイス301により、例えばHTTPサーバソフトウェアを介してホストされ得る。そのため、ステップ604aでローカルコンピューティングデバイスによって表示されるバーコードは、ローカルコンピューティングデバイス301のURLおよび/またはIPアドレスに対応することができ、そのURLおよび/またはIPアドレス自体が、モバイルデバイス401をしてメディアエンジン504aおよび/または通信エンジン504bを初期化させるウェブページに対応することができる。
【0066】
ステップ606では、通信エンジン503bと通信エンジン504bとの間でシグナリングが実施され得る。シグナリングは、入力デバイス402、仮想入力デバイス501、ローカルコンピューティングデバイス301、および/またはモバイルデバイス401についての情報を交換することを含んでいてもよい。かかる情報は、例えば、入力データが利用可能であるという明示を備えていてもよい。例えば、ローカルコンピューティングデバイス301は、モバイルデバイス401に対して認証することができ、入力デバイス402のうち、仮想入力デバイス501を介して受信およびエミュレートする1つまたはそれ以上の入力デバイスを決定することができる。別の例として、ローカルコンピューティングデバイス301は、通信アプリケーション601が実行を停止し、入力デバイス402からの入力データが不要となったという明示をモバイルデバイス401に伝送することができる。かかるシグナリングは、例えばセッション記述プロトコル(SDP)を介してプロトコルデータを交換することを含んでいてもよい。
【0067】
ステップ607では、入力デバイス402のうちの1つまたはそれ以上が初期化され得る。初期化は、入力デバイス402のうちの1つまたはそれ以上からの入力データの受信を活性化させるか、他の形で開始するための任意のステップを含んでいてもよい。例えば、初期化は、カメラ403および/またはマイクロフォン403bを活性化させることと、かかる入力デバイスから入力データのストリームを受信し始めることと、を含んでいてもよい。初期化は、モバイルデバイス401上で実行されるオペレーティングシステムが入力デバイス402からの入力データを受信するのに必要とする任意のステップを含んでいてもよい。例えば、モバイルデバイス401がセキュリティ機能を備えたスマートフォンである場合、モバイルデバイス401のユーザは、ウェブブラウザ602により、カメラ403へのアクセスを手動で承認する必要があることがある。
【0068】
ステップ608a、ステップ608b、ステップ608c、およびステップ608dで、入力データは、モバイルデバイス401の入力デバイス402からローカルコンピューティングデバイス301の通信アプリケーション601へとストリームで送信され得る。ステップ608aで、入力データは、入力デバイス402からメディアエンジン504aへと送信され得る。ステップ608bで、入力データは、モバイルデバイス401のメディアエンジン504aからローカルコンピューティングデバイス301のメディアエンジン503aへと送信され得る。ステップ608cで、入力データは、メディアエンジン503aから仮想入力デバイス501へと送信され得る。ステップ608dで、仮想入力デバイス501は、入力データを通信アプリケーション601に送信することができる。これにより、通信アプリケーション601は、入力データを、ローカルコンピューティングデバイス301に物理的に接続されている入力デバイスが起点であるかのように扱うことができる。このようにして、ローカルコンピューティングデバイス301上で実行されるアプリケーションは、モバイルデバイス401から入力データを取得するように特別に構成される必要がなくなる。
【0069】
図7は、映像会議通話を示す表示デバイス701を表している。表示デバイス701は、以下に詳述するとおり、同じ部屋にいる複数のユーザが、別のコンピューティングデバイス(例えば、リモートコンピューティングデバイス304)との通信を確立するために通信アプリケーション601にアクセスできるように構成されていてもよい。表示デバイス701は、ローカルコンピューティングデバイス301の出力デバイス502の一部であってもよい。表示デバイス701は、通信アプリケーション601の出力を表示することができる。
【0070】
図6に描かれたステップに基づき、モバイルデバイス401からの映像は、モバイルデバイス704aからの映像として表示デバイス701に表示される。第2のモバイルデバイス702a、第3のモバイルデバイス702b、および第4のモバイルデバイス702cも表示され、ひいては、第2のモバイルデバイス704bからの映像、第3のモバイルデバイス704cからの映像、および第4のモバイルデバイス704dからの映像が、表示デバイス701に表示される。第5のモバイルデバイス702dは、通信アプリケーション601に接続でき得るが、まだ通信アプリケーション601に接続していない場合がある。表示デバイス701にはバーコード703も表示されており、
図6に示すステップと同様のステップを実施して、入力データ(例えば、第5のモバイルデバイス702dからのカメラデータ)をローカルコンピューティングデバイス301に伝送し、これによって表示デバイス701に表示するために、バーコード703が第5のモバイルデバイス702dでスキャンされ得る。その入力データはまだ表示されていないが、モバイルデバイス704aからの映像、第2のモバイルデバイス704bからの映像、第3のモバイルデバイス704cからの映像、および第4のモバイルデバイス704dからの映像と共に表示デバイス701に表示され得る。
【0071】
表示デバイス701は、同じ部屋にいる複数のユーザが、追加の機器を(例えば、ローカルコンピューティングデバイス301に対して)接続および/または設定することなく、通信アプリケーション601にアクセスできるように構成されていてもよい。例えば、通信アプリケーション601がビデオゲームである場合、既存のプレイヤーの映像ストリーム(例えば、モバイルデバイス704aからの映像)と共に表示デバイス701上にバーコードを配置することにより、他のユーザによってアクティビティが中断されることなく、かつ通信アプリケーション601を実行するコンピューティングデバイスに追加の入力デバイスを直接差し込む必要なく、ユーザが自身を通信アプリケーション601に追加でき得るという利点がある。別の例として、通信アプリケーション601は、通信アプリケーション601を実行するコンピューティングデバイスに追加のマイクロフォンおよび/またはカメラを接続することなく、出席者が(例えば、スマートフォンを使用して)参加し得る即興の会合を可能にし得るオンライン会議アプリケーションであってもよい。
【0072】
図8は、ローカルコンピューティングデバイス301に複数のモバイルデバイスが接続されている映像会議通話を示している。
図8に描かれた映像会議通話は、
図7に示されたものと同一または同様であり得るため、例えば、モバイルデバイス401、第2のモバイルデバイス702a、第3のモバイルデバイス702b、および第4のモバイルデバイス702cは、
図7に示されたものと同じであってもよい。モバイルデバイス401、第2のモバイルデバイス702a、第3のモバイルデバイス702b、および第4のモバイルデバイス702cなど複数のモバイルデバイスが、ローカルコンピューティングデバイス301の仮想入力デバイス501のメディアエンジン503aに接続することができる。例えば、メディアエンジン503aは、異なるモバイルデバイスとそれぞれ関連付けられた複数のピア接続を維持することができ、それにより、複数の異なるモバイルデバイスから入力データを同時に受信することができる。
【0073】
ローカルコンピューティングデバイス301の出力デバイス502の一部として、入力データ作成装置801が示されている。入力データ作成装置801は、複数組の入力データ(例えば、異なるモバイルデバイスからの複数の映像ストリーム)を収集し、出力デバイス502を介した提示および/または出力のためにその入力データをまとめるように構成されていてもよい。例えば、入力データ作成装置801は、
図7に示す方法などで、複数の映像ストリームを収集するように、かつ電話会議用にそれらがすべて同時に参照できるよう配置するように構成されていてもよい。特定の例として、入力データ作成装置801は、映像を備える複数の入力ストリームを受信することができ、表示デバイス701上の利用可能なスペースを入力ストリームの数で分割することができ、各入力ストリームを表示デバイス701の異なる部分に表示することができる。別の例として、入力データ作成装置801は、あるモバイルデバイスからの音声が発話を示したことに基づき、他のモバイルデバイスからの音声の音量を下げる(ただし出力はする)ように構成されていてもよい。例えば、入力データ作成装置801は、音声(例えば、話し声の音声)を備える複数組の入力データを受信することができ、すべての音声が同時に出力されたときに略同じ音量になるように、それぞれの組の入力データのゲインを修正することができる。このようにして、入力データ作成装置801および/またはメディアエンジン503aにおける複数のピア接続は、複数組の入力データの受信および出力を容易にすることができ、その結果、単一のコンピューティングデバイス(例えば、ローカルコンピューティングデバイス301)は、複数の映像ストリーム、音声ストリーム、または他の同様の入力データを同時に提示および/または出力することができる。
【0074】
図9は、ローカルコンピューティングデバイス301によって実施され得るフローチャート例である。ステップ901では、仮想入力デバイス501などの仮想入力デバイスが初期化され得る。初期化は、仮想入力デバイスと関連付けられた実行可能プログラムまたはソフトウェアを稼働すること、および/または仮想入力デバイス501をローカルコンピューティングデバイス301が利用できるようにすること、を含んでいてもよい。初期化により、仮想入力デバイス501が、1つまたはそれ以上の入力デバイスの存在をエミュレートすることができる。
【0075】
ステップ902では、モバイルデバイス401および/またはモバイルデバイス702a~702dなど、1つまたはそれ以上のモバイルデバイスとの接続が確立され得る。接続は、コンピュータネットワーク230などのネットワークを介して行われ得る。接続は、仮想入力デバイス501を介して確立されることができ、および/またはWebRTCなどのプロトコルを介して確立され得る。接続は、ローカルコンピューティングデバイス301とモバイルデバイス(複数可)との間の通信を認証および/または暗号化する1つまたはそれ以上のメッセージを備えていてもよい。接続は、通信エンジン504bおよび/または通信エンジン503bを介して確立され得る。接続を確立することは、(例えば、HTTPサーバを実行してウェブページを利用可能にすることにより、)仮想入力デバイス501と関連付けられたウェブページを初期化することを含んでいてもよい。接続を確立することは、ウェブページの箇所についての明示(例えば、ウェブページと関連付けられたURLを含むバーコード)を生成および/または表示することを含んでいてもよい。
【0076】
ステップ903では、モバイルデバイス(複数可)から入力データが受信され得る。入力データは、入力デバイス402を介して受信されることができ、メディアエンジン504aを介して伝送されることができ、および/またはメディアエンジン503aによって受信されることができ、および/または出力デバイス502によって出力され得る。入力データは、メディアエンジン503aによって受信されたときに、(例えば、メディアエンジン504aによって)処理および/またはフォーマットされることができ、および/またはメディアエンジン504aによって受信およびフォーマットされ得る。入力データをフォーマットすることは、入力データの想定用途に基づき得る。例えば、入力データが、映像会議アプリケーションによって使用される映像データを備える場合、映像データは、映像会議アプリケーションによって使用され得るコーデックを用いて符号化され得る。入力データは、ステップ902で接続を確立するのに使用されたプロトコルとは異なるプロトコル内にあり得る。例えば、ステップ902で確立された接続がHTTP接続を介し得るのに対し、入力データはWebRTCを介して伝送され得るため、モバイルデバイスの典型的なウェブブラウザで容易に利用可能なプロトコルが使用され得る。入力データは、モバイルデバイス(複数可)上で実行されるウェブブラウザを介して受信され得る。仮想入力デバイス501には、複数の異なるモバイルデバイスが接続され得ることから、仮想入力デバイス501は、モバイルデバイスのうち、どのモバイルデバイスから入力データを受信するかに基づいて入力データを受信および分離するように構成されていてもよい。例えば、モバイルデバイス401のメディアエンジン504aは、入力デバイスによって生成された入力データに、モバイルデバイス401を一意に識別する情報を挿入することができる。追加および/または代替として、メディアエンジン503aは、入力データと関連付けられたセッションであって、通信エンジン503bによって確立されたセッションに基づき、受信した入力データをタグ付けすることができる。
【0077】
ステップ904では、受信した入力データを異なるコンピューティングデバイスに伝送すべきかどうかが決定され得る。仮想入力デバイスを実行するコンピューティングデバイスは、受信した入力データを(例えば、コンピューティングデバイスに接続された表示デバイス上で)自ら出力することができ、および/または入力データを異なるコンピューティングデバイスに(例えば、ネットワーク経由で、通信アプリケーションを実行するサーバに)伝送することができる。答えが「はい」であれば、ステップ905で、入力データは、(例えば、リモートコンピューティングデバイス304など、異なるコンピューティングデバイスに、かつコンピュータネットワーク230経由で)伝送され得る。例えば、入力データは、電話会議アプリケーションを実行するリモートサーバに伝送されることができ、その結果、電話会議アプリケーションによって入力データが使用され得る。そうでなければ、ステップ906で、入力データが(例えば、出力デバイス502を使用して)出力され得る。例えば、入力データを受信したコンピューティングデバイスは、自ら電話会議アプリケーションを実行中であることができ、その結果、受信した入力データは、さらに伝送されることなくコンピューティングデバイスによって出力され得る。
【0078】
図10は、ローカルコンピューティングデバイス301により、かつ複数のモバイルデバイスに関して実施され得るフローチャート例である。ステップ1001は、ステップ901と同一または同様であってもよい。ステップ1002は、ステップ902と同一または同様であることができ、ステップ1001で、ローカルコンピューティングデバイス301は、複数の異なるモバイルデバイスとの接続を確立することができる。例えば、モバイルデバイスは、会議室などにあるモバイルデバイス401および/またはモバイルデバイス702a~702dであってもよい。ステップ903と同一または同様であり得るステップ1003で、複数組の入力データは、異なるモバイルデバイスから受信され得る。ステップ1004では、ステップ1003で受信した複数組の入力データがまとめられ得る。複数組の入力データをまとめることは、例えば入力データ作成装置801により、入力データの音声および/または映像をまとめて単一の出力ストリームにすることを含んでいてもよい。例えば、複数の映像ストリームは、単一の映像ストリームが表示されるように出力ディスプレイ上に配置されることができ、複数の映像ストリームのそれぞれは、単一の映像ストリームの異なる部分を備える。別の例として、複数の音声ストリームは、スピーカによる出力のために単一の音声ストリームにまとめられ得る。ステップ904、ステップ905、およびステップ906と同一または同様であり得るステップ1005、ステップ1006、およびステップ1007で、まとめられた入力データは、異なるコンピューティングデバイスに伝送されることができ、および/または出力され得る。
【0079】
図11は、ローカルコンピューティングデバイス301などのローカルコンピューティングデバイスによって実施され得るフローチャートである。ステップ1101において、ローカルコンピューティングデバイスは、モバイルデバイス401および/またはモバイルデバイス702a~702dなどのモバイルデバイスから入力データを受信するように構成されていてもよいウェブページを生成することができる。ウェブページの生成は、例えば、モバイルデバイス上で実行されるウェブブラウザを使用して、1つまたはそれ以上のモバイルデバイスによってアクセスされ得るサーバ(例えば、HTTPサーバ)を実行することを含んでいてもよい。ウェブページは、モバイルデバイスをして、例えばWebRTCプロトコルを介して入力データを伝送させるコードを備えていてもよい。
【0080】
ステップ1102で、ローカルコンピューティングデバイスは、ウェブページについての明示を表示することができる。明示は、例えば、ウェブページのURLおよび/または他の識別子を含むバーコードであることができ、モバイルデバイスがバーコードを使用してウェブページを見つけられるようになっている。かかるバーコードは、1次元や2次元などであってもよい。追加および/または代替として、明示は、ウェブページと関連付けられた短縮URLおよび/またはIPアドレスであってもよい。
【0081】
ステップ1103で、ローカルコンピューティングデバイスは、ウェブページを介して、かつモバイルデバイスから、入力データを受信することができる。ステップ1103は、ステップ903および/または1003と同一または同様であってもよい。入力データは、メディアエンジン503aおよび/またはメディアエンジン504aを介して受信され得る。入力データは、WebRTCなどのプロトコルを介して受信されることができ、ローカルコンピューティングデバイスが、モバイルデバイス上で実行されるウェブブラウザを介して入力データを受信できるようになっている。ステップ904、ステップ905、および/もしくはステップ906と同一または同様であり得るステップ1104、ステップ1105、およびステップ1106、ならびに/またはステップ1005、ステップ1006、および/もしくはステップ1007で、入力データは、異なるコンピューティングデバイスに伝送されることができ、および/または出力され得る。
【0082】
図12は、モバイルデバイス401などのモバイルデバイスによって実施され得るフローチャートである。ステップ1201で、モバイルデバイスは、ウェブページについての明示を判断することができる。ウェブページについての明示を判断することは、例えば、ユーザが入力デバイスを使用してモバイルデバイスにURLおよび/もしくはIPアドレスを手動で入力することにより、ならびに/または、URLおよび/もしくはIPアドレスを含むバーコードをスキャンすることにより、ウェブページのURL、またはウェブページと関連付けられたIPアドレスを受信することを含んでいてもよい。
【0083】
ステップ1202で、モバイルデバイスは、ウェブページをロードすることができ、ステップ1203で、モバイルデバイスは、コンピューティングデバイスと、ウェブページを介して、通信を確立することができる。ウェブページをロードすることは、モバイルデバイスで実行されるウェブブラウザでウェブページをロードすることを含んでいてもよい。ウェブページは、モバイルデバイス上で実行されるウェブブラウザを介して実行され得るコード(例えば、WebRTCコマンドや、JAVASCRIPT(登録商標)などのプログラミング言語など)を備えていてもよい。ウェブページ(例えば、ウェブページ上のコード)を使用して、モバイルデバイスは、コンピューティングデバイスとの通信を確立(例えば、ローカルコンピューティングデバイス301の通信エンジン503bとの通信を確立)することができる。ステップ1202でロードされたウェブページ上のコードは、通信エンジン504bとして機能し得るため、モバイルデバイス401がローカルコンピューティングデバイス301と通信するように特別に構成される必要はない。
【0084】
ステップ1204で、モバイルデバイスは、入力デバイス(例えば、入力デバイス402)からの入力データをコンピューティングデバイス(例えば、ローカルコンピューティングデバイス301)に伝送することができる。入力データは、WebRTCなどのプロトコルを介して伝送され得る。入力データは、例えばメディアエンジン504aによってフォーマットおよび/または処理され得る。例えば、ステップ1203で確立された通信は、ローカルコンピューティングデバイス301が特定のフォーマットの映像を求めるリクエストをモバイルデバイス401に伝送することを含むことができ、メディアエンジン504aは、カメラ403aからの映像を特定のフォーマットで符号化することができる。
【0085】
主題は、構造的な特徴および/または方法論的な行為に特有の言語で記載したものの、添付の請求項において定義される主題は、上記の特定の特徴または行為に必ずしも制限されるものではないことを理解すべきである。むしろ、上記の特定の特徴および行為は、以下の請求項の実装例として記載されている。
【0086】
関連出願の相互参照
本出願は、2019年1月7日に出願された米国仮特許出願第62/789,189号、および2019年3月4日に出願された米国非仮特許出願第16/291,596号に対する優先権を主張するものであり、両出願の内容は、参照により、それらの全体が本明細書に明示的に組み込まれる。
【手続補正書】
【提出日】2021-08-20
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
方法であって、
ユーザから入力データを受信するように構成された
複数のモバイルデバイスとの接続を
、コンピューティングデバイスによって確立することと、
前記コンピューティングデバイスにより、前記
複数のモバイルデバイスから前記入力データを受信することと、
前記複数のモバイルデバイスからの前記入力データに基づき、前記コンピューティングデバイスに接続された物理入力デバイスを複製することと、
前記コンピューティングデバイスにより、前記複製された物理入力デバイスを、前記コンピューティングデバイスと第2のコンピューティングデバイスとの間の通信を確立するために、
アプリケーションで使用することと、を含む方法。
【請求項2】
前記
複数のモバイルデバイスとの前記接続を確立することは、前記コンピューティングデバイスと関連付けられたウェブページに対応するバーコードを表示することを含み、前記入力データを受信することは、前記ウェブページを介して前記入力データを受信することを含む、請求項1に記載の方法。
【請求項3】
前記バーコードは、前記ウェブページと関連付けられたユニフォームリソースロケータ(URL)を含む、請求項2に記載の方法。
【請求項4】
前記コンピューティングデバイスにより、かつ前記コンピューティングデバイスに接続された1つまたはそれ以上の出力デバイスを介して、前記入力データを出力することをさらに含む、請求項1に記載の方法。
【請求項5】
前記
複数のモバイルデバイスから前記入力データを受信することは、前記
複数のモバイルデバイス上で実行される
1つまたはそれ以上のウェブブラウザを介して前記入力データを受信することを含む、請求項1に記載の方法。
【請求項6】
前記入力データを受信することは、前記
複数のモバイルデバイスの異なる入力デバイスに対応する複数組の入力データを受信することを含む、請求項1に記載の方法。
【請求項7】
前記物理入力デバイスは、カメラ、マイクロフォン、または加速度計のうちの1つまたはそれ以上であるデバイスタイプを有する、請求項1に記載の方法。
【請求項8】
装置であって、
1つまたはそれ以上のプロセッサと、命令を記憶するメモリと、を備え、
前記命令は、前記1つまたはそれ以上のプロセッサによって実行されるときに、前記装置をして、
ユーザから入力データを受信するように構成された
複数のモバイルデバイスとの接続を確立することと、
前記
複数のモバイルデバイスから前記入力データを受信することと、
前記複数のモバイルデバイスからの前記入力データに基づき、前記装置に接続された物理入力デバイスを複製することと、
前記複製された物理入力デバイスを、前記装置とコンピューティングデバイスとの間の通信を確立するために、アプリケーションで使用することと、を行わせる、装置。
【請求項9】
前記命令は、前記1つまたはそれ以上のプロセッサによって実行されるときに、前記装置をして、前記装置と関連付けられたウェブページに対応するバーコードを表示させることにより、前記装置をして、前記複数のモバイルデバイスとの 前記接続を確立することを行わせ、前記入力データを受信することは、前記ウェブページを介して前記入力データを受信することを含む、請求項8に記載の装置。
【請求項10】
前記バーコードは、前記ウェブページと関連付けられたユニフォームリソースロケータ(URL)を含む、請求項9に記載の装置。
【請求項11】
前記命令は、前記1つまたはそれ以上のプロセッサによって実行されるときに、前記装置をして、1つまたはそれ以上の出力デバイスを介して前記入力データを出力することをさらに行わせる、請求項8に記載の装置。
【請求項12】
前記命令は、前記1つまたはそれ以上のプロセッサによって実行されるときに、前記装置をして、前記複数のモバイルデバイス上で実行される1つまたはそれ以上のウェブブラウザを介して前記入力データを受信させることにより、前記装置をして、前記複数のモバイルデバイスから前記入力データを受信することを行わせる、請求項8に記載の装置。
【請求項13】
前記命令は、前記1つ以上のプロセッサによって実行されるときに、前記装置をして、前記複数のモバイルデバイスの異なる入力デバイスにそれぞれが対応する複数組の入力データを受信させることにより、前記装置をして、前記入力データを受信することを行わせる、請求項8に記載の装置。
【請求項14】
前記物理入力デバイスは、カメラ、マイクロフォン、または加速度計のうちの1つまたはそれ以上であるデバイスタイプを有する、請求項8に記載の装置。
【請求項15】
命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、コンピューティングデバイスによって実行されるときに、前記コンピューティングデバイスをして、
ユーザから入力データを受信するように構成された
複数のモバイルデバイスとの接続を確立することと、
前記
複数のモバイルデバイスから前記入力データを受信することと、
前記複数のモバイルデバイスからの前記入力データに基づき、前記コンピューティングデバイスに接続された物理入力デバイスを複製することと、
前記複製された物理入力デバイスを、前記コンピューティングデバイスと第2のコンピューティングデバイスとの間の通信を確立するために、アプリケーションで使用することと、を行わせる、非一時的コンピュータ可読媒体。
【請求項16】
前記命令は、実行されるときに、前記コンピューティングデバイスをして、前記コンピューティングデバイスと関連付けられたウェブページに対応するバーコードを表示させることにより、前記コンピューティングデバイスをして、前記複数のモバイルデバイスとの前記接続を確立することを行わせ、前記入力データを受信することは、前記ウェブページを介して前記入力データを受信することを含む、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記バーコードは、前記ウェブページと関連付けられたユニフォームリソースロケータ(URL)を含む、請求項16に記載の非一時的コンピュータ可読媒体。
【請求項18】
前記命令は、前記コンピューティングデバイスによって実行されるときに、前記コンピューティングデバイスをして、1つまたはそれ以上の出力デバイスを介して前記入力データを出力することをさらに行わせる、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記命令は、実行されるときに、前記コンピューティングデバイスをして、前記複数のモバイルデバイス上で実行される1つまたはそれ以上のウェブブラウザを介して前記入力データを受信させることにより、前記コンピューティングデバイスをして、前記複数のモバイルデバイスから前記入力データを受信することを行わせる、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記命令は、実行されるときに、前記コンピューティングデバイスをして、前記複数のモバイルデバイスの異なる入力デバイスに対応する複数組の入力データを受信させることにより、前記コンピューティングデバイスをして、前記入力データを受信することを行わせる、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項21】
複数のモバイルデバイスからの入力データを受信するための接続を前記複数のモバイルデバイスに提供することと、
前記複数のモバイルデバイスからの前記入力データに基づき、前記コンピューティングデバイスに接続された物理入力デバイスを複製することと、
前記複製された物理入力デバイスを使用して、前記コンピューティングデバイスと第2のコンピューティングデバイスとの間の通信を提供することと、を含む、コンピュータ実施方法。
【請求項22】
前記接続を提供することは、
ウェブページを示すバーコードを表示することと、
前記ウェブページを介して前記入力データを受信することと、を含む、請求項21に記載の方法。
【請求項23】
前記バーコードは、前記ウェブページのユニフォームリソースロケータ(URL)を含む、請求項22に記載の方法。
【請求項24】
前記コンピューティングデバイスにより、前記コンピューティングデバイスに接続された1つまたはそれ以上の他のデバイスを介して前記入力データを出力することをさらに含む、請求項21に記載の方法。
【請求項25】
前記複数のモバイルデバイス上で実行可能な1つまたはそれ以上のウェブブラウザを介して前記入力データを受信することをさらに含む、請求項21に記載の方法。
【請求項26】
前記複数のモバイルデバイスの第1のモバイルデバイスの第1の入力デバイスに対応する第1の組のデータを、前記入力データの一部として受信することと、
前記第1のモバイルデバイスの第2の入力デバイスに対応する第2の組のデータを、前記入力データの一部として受信することと、をさらに含む、請求項21に記載の方法。
【請求項27】
前記物理入力デバイスは、カメラ、マイクロフォン、または加速度計のうちの1つまたはそれ以上である、請求項21に記載の方法。
【請求項28】
装置であって、
1つまたはそれ以上のプロセッサと、命令を記憶するメモリと、を備え、前記命令は、前記1つまたはそれ以上のプロセッサによって実行されるときに、前記装置をして、
複数のモバイルデバイスからの入力データを受信するための接続を前記複数のモバイルデバイスに提供することと、
前記複数のモバイルデバイスからの前記入力データに基づき、前記装置に接続された物理入力デバイスを複製することと、
前記複製された物理入力デバイスを使用して、前記装置とコンピューティングデバイスとの間の通信を提供することと、を行わせる、装置。
【請求項29】
前記命令は、前記1つまたはそれ以上のプロセッサによって実行されるときに、前記装置をして、ウェブページに対応するバーコードを表示させることと、前記ウェブページを介して前記入力データを受信させることとにより、前記装置をして、前記接続を提供することを行わせる、請求項28に記載の装置。
【請求項30】
前記バーコードは、前記ウェブページと関連付けられたユニフォームリソースロケータ(URL)を含む、請求項29に記載の装置。
【請求項31】
前記命令は、前記1つまたはそれ以上のプロセッサによって実行されるときに、前記装置をして、1つまたはそれ以上の出力デバイスを介して前記入力データを出力することをさらに行わせる、請求項28に記載の装置。
【請求項32】
前記命令は、前記1つまたはそれ以上のプロセッサによって実行されるときに、前記装置をして、前記複数のモバイルデバイス上で実行される1つまたはそれ以上のウェブブラウザを介して前記入力データを受信することをさらに行わせる、請求項28に記載の装置。
【請求項33】
前記命令は、前記1つまたはそれ以上のプロセッサによって実行されるときに、前記装置をして、前記複数のモバイルデバイスの第1のモバイルデバイスの第1の入力デバイスに対応する第1の組のデータを、前記入力データの一部として受信させることと、前記第1のモバイルデバイスの第2の入力デバイスに対応する第2の組のデータを、前記入力データの一部として受信させることとにより、前記装置をして、前記入力データを受信することを行わせる、請求項28に記載の装置。
【請求項34】
前記物理入力デバイスは、カメラ、マイクロフォン、または加速度計のうちの1つまたはそれ以上であるデバイスタイプを有する、請求項28に記載の装置。
【請求項35】
命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、コンピューティングデバイスの1つまたはそれ以上のプロセッサによって実行されるときに、前記コンピューティングデバイスをして、
複数のモバイルデバイスからの入力データを受信するための接続を前記複数のモバイルデバイスに提供することと、
前記複数のモバイルデバイスからの前記入力データに基づき、前記コンピューティングデバイスに接続された物理入力デバイスを複製することと、
前記複製された物理入力デバイスを使用して、前記コンピューティングデバイスにより、前記コンピューティングデバイスと第2のコンピューティングデバイスとの間の通信を提供することと、を行わせる、非一時的コンピュータ可読媒体。
【請求項36】
前記命令は、前記コンピューティングデバイスの前記1つまたはそれ以上のプロセッサによって実行されるときに、前記コンピューティングデバイスをして、ウェブページに対応するバーコードを表示させることと、前記ウェブページを介して前記入力データを受信させることとにより、前記コンピューティングデバイスをして、前記接続を提供することを行わせる、請求項35に記載の非一時的コンピュータ可読媒体。
【請求項37】
前記バーコードは、前記ウェブページと関連付けられたユニフォームリソースロケータ(URL)を含む、請求項36に記載の非一時的コンピュータ可読媒体。
【請求項38】
前記命令は、前記コンピューティングデバイスの前記1つまたはそれ以上のプロセッサによって実行されるときに、前記コンピューティングデバイスをして、1つまたはそれ以上の出力デバイスを介して前記入力データを出力することをさらに行わせる、請求項35に記載の非一時的コンピュータ可読媒体。
【請求項39】
前記命令は、前記コンピューティングデバイスの前記1つまたはそれ以上のプロセッサによって実行されるときに、前記コンピューティングデバイスをして、前記複数のモバイルデバイスを実行する1つまたはそれ以上のウェブブラウザを介して前記入力データを受信することをさらに行わせる、請求項35に記載の非一時的コンピュータ可読媒体。
【請求項40】
前記命令は、前記コンピューティングデバイスの前記1つまたはそれ以上のプロセッサによって実行されるときに、前記コンピューティングデバイスをして、
前記複数のモバイルデバイスの第1のモバイルデバイスの第1の入力デバイスに対応する第1の組のデータを、前記入力データの一部として受信することと、
前記第1のモバイルデバイスの第2の入力デバイスに対応する第2の組のデータを、前記入力データの一部として受信することと、をさらに行わせる、請求項35に記載の非一時的コンピュータ可読媒体。
【国際調査報告】