JP2017507447A - Usbオーバーipを用いた、別のデバイスとの非usbセンサの共有 - Google Patents

Usbオーバーipを用いた、別のデバイスとの非usbセンサの共有 Download PDF

Info

Publication number
JP2017507447A
JP2017507447A JP2016570946A JP2016570946A JP2017507447A JP 2017507447 A JP2017507447 A JP 2017507447A JP 2016570946 A JP2016570946 A JP 2016570946A JP 2016570946 A JP2016570946 A JP 2016570946A JP 2017507447 A JP2017507447 A JP 2017507447A
Authority
JP
Japan
Prior art keywords
computing device
sensor
uoip
subsystem
usb
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016570946A
Other languages
English (en)
Other versions
JP6250842B2 (ja
Inventor
タティヤ,ルペシュ
カンドワル,ニーラージ
ディー. トラン,ズン
ディー. トラン,ズン
Original Assignee
インテル コーポレイション
インテル コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インテル コーポレイション, インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2017507447A publication Critical patent/JP2017507447A/ja
Application granted granted Critical
Publication of JP6250842B2 publication Critical patent/JP6250842B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q9/00Arrangements in telecontrol or telemetry systems for selectively calling a substation from a main station, in which substation desired apparatus is selected for applying a control signal thereto or for obtaining measured values therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3808Network interface controller
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C2201/00Transmission systems of control signals via wireless link
    • G08C2201/90Additional features
    • G08C2201/93Remote control using other portable devices, e.g. mobile phone, PDA, laptop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2209/00Arrangements in telecontrol or telemetry systems
    • H04Q2209/30Arrangements in telecontrol or telemetry systems using a wired architecture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2209/00Arrangements in telecontrol or telemetry systems
    • H04Q2209/40Arrangements in telecontrol or telemetry systems using a wireless architecture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2209/00Arrangements in telecontrol or telemetry systems
    • H04Q2209/40Arrangements in telecontrol or telemetry systems using a wireless architecture
    • H04Q2209/43Arrangements in telecontrol or telemetry systems using a wireless architecture using wireless personal area networks [WPAN], e.g. 802.15, 802.15.1, 802.15.4, Bluetooth or ZigBee

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Systems (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

モバイルコンピューティングデバイスからクライアントコンピューティングデバイスにセンサデータを通信するための技術は、ユニバーサルシリアルバスオーバーインターネットプロトコル(「UoIP」)アーキテクチャを含む。UoIPアーキテクチャは、モバイルコンピューティングデバイス上の非USBセンサデバイスを仮想センサとして仮想化し、クライアントコンピューティングデバイスが、仮想センサをUSBデバイスとして認識することを可能にする。結果として、モバイルコンピューティングデバイスの非USBセンサデバイスにより得られたセンサデータは、クライアントコンピューティングデバイス上で実行されているアプリケーションによりアクセスされ使用され得る。

Description

(関連米国特許出願の相互参照)
本出願は、2014年3月25日に出願された「USBオーバーIPを用いた、別のデバイスとの非USBセンサの共有」という名称の米国特許出願第14/224343号の優先権を主張する。
多くの既存のコンピューティングデバイス(デスクトップコンピュータ、ラップトップコンピュータ、及びノートブックコンピュータ等)は、動きセンサ及びモバイルポインティングデバイス等の統合されたセンサハードウェアを有していない。しかしながら、統合されたセンサハードウェアは、スマートフォン、タブレットコンピュータ、及びウェアラブルデバイス等のモバイルデバイスにおいて標準的になってきている。センサハードウェアは、ユニバーサルシリアルバス(「USB」)接続を介して電子デバイスに接続されないという点で、「非USB」ということができる。モバイルデバイスから、クライアントデバイス上で実行されているアプリケーションに、センサデータを送信することができるいくつかのアプリケーションが存在するが、これは、現在、USB接続以外の直接ネットワーク接続を介して行われている。したがって、現在の方法は、特定のアプリケーション向けに設計されている専用アプリケーションプログラミングインタフェースを必要とする。例えば、いくつかのゲームアプリケーションは、スマートフォンのタッチスクリーン上でなされた動きを、別のデバイス(例えば、ラップトップコンピュータ)上で実行されている同じゲームアプリケーションの表示と「同期させる」ことができるが、そうするために、これらのゲームアプリケーションは、特定のタイプのブラウザソフトウェアを必要とし、同じ専用ブラウザソフトウェアを実行中でないデバイス又は他のブラウザとともに使用することはできない。
USBは、パーソナルコンピュータ等のコンピューティングデバイスを、プリンタ、スキャナ、キーボード、及びカメラ等の周辺デバイスと相互接続することを容易にするために初期には開発された仕様である。その後、USBは、消費者向け電子機器及びモバイルデバイスの業界における製造業者により採用された。例えば、USBを使用して、モバイルデバイス(タブレットコンピュータ等)をキーボード及びマウスに接続することができる、又は、プリンタを、パーソナルコンピュータを介さずに、カメラに直接接続することができる。
本明細書に記載のコンセプトが、限定ではなく例として、添付の図面に示される。図示の単純さ及び明瞭さのために、図面に示される要素は、必ずしも縮尺通りに描かれてはいない。参照ラベルは、適切であると考えられる場合、対応要素又は類似要素を示すために、図面間で繰り返されている。
クライアントコンピューティングデバイス、モバイルコンピューティングデバイス、及び、本明細書で開示するユニバーサルシリアルバスオーバーインターネットプロトコル(UoIP)アーキテクチャを含むコンピューティングシステムの少なくとも一実施形態の簡略化されたブロック図。 図1のコンピューティングシステムの環境の少なくとも一実施形態の簡略化されたブロック図。 図1のクライアントコンピューティングデバイス上のユーザレベルアプリケーションが、図1のモバイルコンピューティングデバイスの非USBセンサにより得られたセンサデータにアクセスして該センサデータを使用することを可能にするための方法の少なくとも一実施形態の簡略化されたフロー図。 図1のクライアントコンピューティングデバイスのデバイスマネージャプログラムのグラフィカルユーザインタフェースであって、図1のモバイルコンピューティングデバイスの仮想USBセンサへの例示的な通信接続を表示するグラフィカルユーザインタフェースの少なくとも一実施形態の簡略化された図。
本開示のコンセプトは、様々な変更形態及び代替形態を受け入れる余地があるが、その特定の実施形態が、例として、図面に示され本明細書で詳細に説明される。しかしながら、本開示のコンセプトを、開示する特定の形態に限定する意図はなく、反対に、意図は、本開示及び添付の特許請求の範囲と整合する全ての変更形態、均等形態、及び代替形態をカバーすることにあることを理解されたい。
「一実施形態」、「ある実施形態」、「例示的な実施形態」等の本明細書における言及は、説明する実施形態が、特定の特徴、構造、又は特性を含み得るが、全ての実施形態が、そのような特定の特徴、構造、又は特性を含んでもよいし、又は、必ずしもそのような特定の特徴、構造、又は特性を含む必要がなくてもよいことを示す。さらに、このような語句は、必ずしも同じ実施形態を指すわけではない。さらに、特定の特徴、構造、又は特性がある実施形態との関連で記載されている場合には、明示されていようといまいと、他の実施形態との関連でそのような特徴、構造、又は特性を実装することは当業者の知識の範囲内であるとする。さらに、「A、B、及びCのうちの少なくとも1つ」という形のリストに含まれる項目は、(A);(B);(C);(A及びB);(B及びC);(A及びC);又は(A、B、及びC)を意味し得ることを理解されたい。同様に、「A、B、又はCのうちの少なくとも1つ」という形でリストされる項目は、(A);(B);(C);(A及びB);(B及びC);(A及びC);又は(A、B、及びC)を意味し得る。
開示する実施形態は、場合に応じて、ハードウェア、ファームウェア、ソフトウェア、又はこれらの任意の組合せにより実装することができる。開示する実施形態はまた、1以上のプロセッサにより読み取られ実行され得る、一時的又は非一時的なマシン読み取り可能な記憶媒体(例えば、コンピュータ読み取り可能な記憶媒体)により運ばれる命令又はそのような媒体に記憶される命令として実装することができる。マシン読み取り可能な記憶媒体は、マシンにより読み取ることができる形式で情報を記憶又は伝送する任意の記憶デバイス、メカニズム、又は他の物理的構造(例えば、揮発性メモリ、不揮発性メモリ、メディアディスク、又は他のメディアデバイス)として具現化することができる。
図面において、いくつかの構造的特徴又は方法的特徴が、特定の配置及び/又は順序で示され得る。しかしながら、そのような特定の配置及び/又は順序が必須とされるわけではないことを理解されたい。そうではなく、いくつかの実施形態においては、そのような特徴は、例示する図面に示される態様及び/又は順序と異なる態様及び/又は順序で構成することもできる。さらに、特定の図面内に構造的特徴又は方法的特徴が含まれることは、そのような特徴が全ての実施形態において必要とされることを意味しないし、いくつかの実施形態においては、そのような特徴が含まれないことを意味しない、又はそのような特徴が他の特徴と組み合わされないことを意味しない。
次に図1を参照すると、例示的な実施形態において、ユニバーサルシリアルバスオーバーインターネットプロトコル(「UoIP」)アーキテクチャは、コンピューティングシステム100のモバイルコンピューティングデバイス150及びクライアントコンピューティングデバイス110においてそれぞれ具現化される、モバイルUoIPサブシステム又は「ドック(dock)」UoIPサブシステム170、及びクライアントUoIPサブシステム132を含む。モバイルコンピューティングデバイス150及びクライアントコンピューティングデバイス110は、1以上の無線ネットワーク及び/又は有線ネットワーク180を介して、通信可能に接続される。モバイルUoIPサブシステム170及びクライアントUoIPサブシステム132は、別々のデバイス上に存在するものとして図示されているが、他の実施形態においては、同じデバイス上に存在してもよい。例示的なモバイルコンピューティングデバイス150は、非USBセンサ158を含み、例示的なクライアントコンピューティングデバイス110は、そのようなセンサを有さない。例えば、クライアントコンピューティングデバイス110は、「レガシー」ラップトップコンピュータ又は「レガシー」パーソナルコンピュータとして具現化され得る。しかしながら、他の実施形態においては、クライアントコンピューティングデバイス110は、非USBセンサ158と同様の統合されたセンサを有してもよいが、モバイルコンピューティングデバイス150の非USBセンサ158の使用は、他の理由から(例えば、クライアントコンピューティングデバイス110及び/又はモバイルコンピューティングデバイス150と相対するエンドユーザに、より優れた移動性を提供するために)望ましいことがある。「モバイル」及び「クライアント」という用語は、2つのデバイス110、150を説明するのを明瞭にするために本明細書において使用されるが、デバイス110、150の一方又は両方は、コンピューティングシステム100の様々な実装において、モバイルデバイス(例えば、ハンドヘルドデバイス又はウェアラブルデバイス)又は他のタイプのコンピューティングデバイス(例えば、サーバ、ラップトップ、又はパーソナルコンピュータ)として具現化されてもよいことを理解されたい。開示する実施形態は、USB仕様を参照するが、本開示の態様は、他のタイプの「プラグアンドプレイ」アーキテクチャにも適用可能であることを理解されたい。
モバイルUoIPサブシステム170は、非USBセンサ158を、仮想USBデバイス(例えば、図2の仮想USBセンサ218)としてエミュレートすることができる。モバイルUoIPサブシステム170は、例えば、クライアントコンピューティングデバイス110上で実行されているユーザレベルアプリケーション118による使用のために、非USBセンサ158により得られたデータを、仮想USBデバイスを介して、クライアントコンピューティングデバイス110のクライアントUoIPサブシステム132に通信する。以下で説明するように、動作中、クライアントコンピューティングデバイス110は、非USBセンサ158が、あたかもクライアントコンピューティングデバイス110の統合されたセンサであるかのように、あるいは、非USBセンサ158が、あたかもクライアントコンピューティングデバイス110に直接接続されているUSBデバイスであるかのように、非USBデバイス158を認識して使用することができる。とりわけ、開示する技術は、クライアントコンピューティングデバイス150が、ユーザレベルアプリケーション118に透過的であるように(例えば、ユーザレベルアプリケーション118を変更又は再コンパイルする必要なく)、ヒューマンインタフェースデバイスとして、モバイルコンピューティングデバイス150の非USBセンサ158にアクセスして非USBセンサ158を使用することを可能にし得る。例えば、開示する技術を使用すると、非USBセンサ158により得られたセンサデータは、センサデータがローカルセンサハードウェア(例えば、統合されたセンサハードウェア又はUSB接続されたセンサハードウェア)から得られたものではないということをクライアントコンピューティングデバイス110又はユーザレベルアプリケーション118が認識することなく、ユーザレベルアプリケーション118により処理され得る。さらに、開示する技術を使用すると、非USBセンサ158により得られたセンサデータは、モバイルコンピューティングデバイス150にインストールされモバイルコンピューティングデバイス150上で実行される、ユーザレベルアプリケーション118のコピー又は対応部分をモバイルコンピューティングデバイス150が有する必要なく、クライアントコンピューティングデバイス110により使用され得る。さらに、開示する技術を使用すると、デバイス110、150が、同じオペレーティングシステムを有する必要はないし、又は、同じブラウザソフトウェアを実行する必要はない。さらに、開示する技術を使用すると、デバイス110、150のいずれかが、さらなる特別なハードウェア(例えば、無線USBアダプタ等)を有する必要はない。
クライアントコンピューティングデバイス110は、本明細書に記載の機能を実行する任意のタイプのデバイスとして具現化され得る。例えば、クライアントコンピューティングデバイス110は、スマートフォン、タブレットコンピュータ、ウェアラブルコンピューティングデバイス、ラップトップコンピュータ、ノートブックコンピュータ、モバイルコンピューティングデバイス、携帯電話機、ハンドセット、メッセージングデバイス、車両テレマティックスデバイス、サーバコンピュータ、デスクトップコンピュータ、ワークステーション、分散コンピューティングシステム、マルチプロセッサシステム、消費者向け電子デバイス、及び/又は、本明細書に記載の機能を実行するよう構成される任意の他のコンピューティングデバイスとして具現化され得るが、これらに限定されるものではない。図1に示されるように、例示的なクライアントコンピューティングデバイス110は、プロセッサ112、メモリ114、入力/出力(I/O)サブシステム116、ユーザレベルアプリケーション118、及びデータ記憶デバイス122を含む。データ記憶デバイス122は、以下で説明するUSBリクエスト124を記憶する。クライアントコンピューティングデバイス110はまた、ユーザインタフェース(UI)サブシステム126、システムソフトウェアコンポーネント128、クライアントUoIPサブシステム132、及び通信サブシステム130を含む。クライアントコンピューティングデバイス110は、他の実施形態においては、モバイルコンピュータ及び/又は固定型コンピュータにおいて通常見つけられるコンポーネント(例えば、様々なセンサ及び入力/出力デバイス)等の他のコンポーネント又はさらなるコンポーネントを含んでもよい。さらに、いくつかの実施形態において、例示的なコンポーネントのうちの1以上のコンポーネントは、別のコンポーネントに組み込まれ得る、又は、別のコンポーネントの一部を形成し得る。例えば、クライアントUoIPサブシステム132又はクライアントUoIPサブシステム132の一部は、いくつかの実施形態において、システムソフトウェアコンポーネント128及び/又は通信サブシステム130に組み込まれ得る。
プロセッサ112は、本明細書に記載の機能を実行することができる任意のタイプのプロセッサとして具現化され得る。例えば、プロセッサ112は、シングルコアプロセッサ若しくはマルチコアプロセッサ、デジタル信号プロセッサ、マイクロコントローラ、又は、他のプロセッサ若しくは処理/制御回路として具現化され得る。メモリ114は、本明細書に記載の機能を実行することができる任意のタイプの揮発性メモリ、不揮発性メモリ、又はデータストアとして具現化され得る。動作中、メモリ114は、オペレーティングシステム、アプリケーション、プログラム、ライブラリ、及びドライバ等の、クライアントコンピューティングデバイス110の動作中に使用される様々なソフトウェア及びデータを記憶することができる。例えば、メモリ114は、ユーザレベルアプリケーション118及び/又はUSBリクエスト124の諸部分を、少なくとも一時的に記憶することができる。
メモリ114は、例えば、I/Oサブシステム116を介して、プロセッサ112に通信可能に接続される。I/Oサブシステム116は、プロセッサ112、メモリ114、及び、クライアントコンピューティングデバイス110の他のコンポーネントによる入力/出力動作を円滑にする回路及び/又はコンポーネントとして具現化され得る。例えば、I/Oサブシステム116は、メモリコントローラハブ、入力/出力制御ハブ、ファームウェアデバイス、通信リンク(すなわち、ポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、ライトガイド、プリント回路基板トレース等)、並びに/又は、入力/出力動作を円滑にする他のコンポーネント及びサブシステムとして具現化され得る、又は、これらを含み得る。いくつかの実施形態において、I/Oサブシステム116は、システムオンチップ(SoC)の一部を形成し、プロセッサ112、メモリ114、及び/又は、クライアントコンピューティングデバイス110の他のコンポーネントとともに、単一の集積回路チップ上に組み込まれ得る。
ユーザレベルアプリケーション118は、キーボード、マウス、又はタッチスクリーン等のヒューマンインタフェースデバイスを介してエンドユーザとインタフェースをとるよう構成される任意のタイプのソフトウェアアプリケーションとして具現化され得る。例えば、ユーザレベルアプリケーション118は、コンピュータゲーム若しくはビデオゲーム、プレゼンテーションソフトウェア、又は、クライアントコンピューティングデバイス110上で実行することができる別のタイプのセンサベースのアプリケーションとして具現化され得る。本明細書で使用されるとき、「センサベースのアプリケーション」とは、とりわけ、動きセンサ又はポインティングデバイス等のセンサにより得られたデータに応じて使用される且つ/又は動作するよう設計されているソフトウェアアプリケーションを指し得る。クライアントコンピューティングデバイス110の実施形態が、必要なセンサを有さない場合であっても、開示する技術は、エンドユーザに透過的であるように、そのようなユーザレベルアプリケーション118の使用を可能にする。
データ記憶デバイス122は、例えば、メモリデバイス及び回路、メモリカード、ハードディスクドライブ、ソリッドステートドライブ、又は他のデータ記憶デバイス等の、データの短期記憶又は長期記憶のために構成される任意のタイプの1以上のデバイスとして具現化され得る。データ記憶デバイス122は、クライアントコンピューティングデバイス110のためのファームウェアコード及びデータを記憶するシステムパーティションを含み得る。データ記憶デバイス122はまた、クライアントコンピューティングデバイス110のシステムソフトウェアコンポーネント128(例えば、オペレーティングシステム)のための実行ファイル及びデータファイルを記憶するオペレーティングシステムパーティションを含み得る。
ユーザインタフェースサブシステム126は、物理的若しくは仮想的なコントロールボタン若しくはキー、マイクロフォン、スピーカ、ゲームコントローラ、単方向及び/若しくは双方向のスチールカメラ及び/若しくはビデオカメラ、並びに/又はその他を含む、クライアントコンピューティングデバイス110とのユーザインタラクションを円滑にする複数のデバイスを含み得る。ユーザインタフェースサブシステム126はまた、クライアントコンピューティングデバイス110を伴う他の形態の様々なヒューマンインタラクションを検出、キャプチャ、及び処理するよう構成され得る、動きセンサ、近接センサ、キネティックセンサ、バイオメトリックセンサ、及び/又はアイトラッキングデバイス等のデバイスを含み得る。
システムソフトウェアコンポーネント128は、オペレーティングシステム、1以上のデバイスドライバ、及びミドルウェアコンポーネント(例えば、アプリケーションプログラミングインタフェース(API)、ランタイムライブラリ、及び/又はその他)等の複数のコンピュータプログラムコンポーネントを含む。本明細書で開示するように、システムソフトウェアコンポーネント128の諸部分は、クライアントコンピューティングデバイス110のユーザレベルアプリケーション118とモバイルコンピューティングデバイス150の非USBセンサ158との間の通信を円滑にすることができる。クライアントコンピューティングデバイス110は、マイクロソフト(登録商標)社によるWINDOWS(登録商標)のバージョン、LINUX(登録商標)のバージョン(グーグル(登録商標)社によるANDROID(登録商標)、インテル(登録商標)社及びノキア(登録商標)社によるMEEGO(登録商標)を含む)、アップルコンピュータ(登録商標)社によるiOS(登録商標)、及び/又はその他等の、本明細書に記載の機能を実行することができるオペレーティングシステムを有することができる。
クライアントUoIPサブシステム132は、コンピュータソフトウェア、ハードウェア、又はこれらの組合せとして具現化され得る。以下でより詳細に説明するように、クライアントUoIPサブシステム132の諸部分は、クライアントコンピューティングデバイス110が、モバイルコンピューティングデバイス150の非USBセンサ158をUSBヒューマンインタフェースデバイスとして認識又は「列挙(enumerate)」して、非USBセンサ158に接続することを可能にするために、システムソフトウェアコンポーネント128及びモバイルUoIPサブシステム170とインタフェースをとる。いくつかの実施形態において、クライアントUoIPサブシステム132は、非USBセンサ158に代えて又は非USBセンサ158に加えて、他の周辺デバイスを列挙して他の周辺デバイスに接続することができる。
クライアントコンピューティングデバイス110は、通信サブシステム130をさらに含む。通信サブシステム130は、クライアントコンピューティングデバイス110とモバイルコンピューティングデバイス150を含む他の電子デバイスとの間の電子的通信を可能にすることができる任意のタイプの通信回路、通信デバイス、又はこれらの集合として具現化され得る。通信サブシステム130は、任意の1以上の通信技術(例えば、光通信、無線通信、又は有線通信)及び関連プロトコル(例えば、イーサネット(登録商標)、Bluetooth(登録商標)、Wi−Fi(登録商標)、WiMAX(登録商標)、3G/LTE等)を使用して、そのような通信を実施するよう構成され得る。通信サブシステム130は、無線ネットワークアダプタを含む1以上のネットワークアダプタとして具現化され得る。
モバイルコンピューティングデバイス150は、本明細書に記載の機能を実行する任意のタイプのデバイスとして具現化され得る。例えば、モバイルコンピューティングデバイス150は、スマートフォン、タブレットコンピュータ、ウェアラブルコンピューティングデバイス、ラップトップコンピュータ、ノートブックコンピュータ、モバイルコンピューティングデバイス、携帯電話機、ハンドセット、メッセージングデバイス、車両テレマティックスデバイス、サーバコンピュータ、ワークステーション、分散コンピューティングシステム、マルチプロセッサシステム、消費者向け電子デバイス、及び/又は、本明細書に記載の機能を実行するよう構成される任意の他のコンピューティングデバイスとして具現化され得るが、これらに限定されるものではない。図1に示されるように、例示的なモバイルコンピューティングデバイス150は、プロセッサ152、メモリ154、入力/出力(I/O)サブシステム156、非USBセンサ158、及びデータ記憶デバイス160を含む。データ記憶デバイス160は、以下で説明する仮想センサ記述子162を記憶する。モバイルコンピューティングデバイス150はまた、ユーザインタフェース(UI)サブシステム164、システムソフトウェアコンポーネント166、モバイルUoIPサブシステム170、及び通信サブシステム168を含む。もちろん、モバイルコンピューティングデバイス150は、他の実施形態においては、モバイルコンピュータ及び/又は固定型コンピュータにおいて通常見つけられるコンポーネント(例えば、様々なセンサ及び入力/出力デバイス)等の他のコンポーネント又はさらなるコンポーネントを含んでもよい。さらに、いくつかの実施形態において、例示的なコンポーネントのうちの1以上のコンポーネントは、別のコンポーネントに組み込まれ得る、又は、別のコンポーネントの一部を形成し得る。例えば、モバイルUoIPサブシステム170又はモバイルUoIPサブシステム170の一部は、いくつかの実施形態において、システムソフトウェアコンポーネント166及び/又は通信サブシステム168に組み込まれ得る。
クライアントコンピューティングデバイス110の要素の前述の説明は、同じ名前又は類似する名前を有する、モバイルコンピューティングデバイス150の要素(例えば、プロセッサ112とプロセッサ152等)に適用される。したがって、簡潔さのために、その説明はここでは繰り返さない。しかしながら、モバイルコンピューティングデバイス150のシステムソフトウェアコンポーネント166が、クライアントコンピューティングデバイス110のシステムソフトウェアコンポーネント128と同じである又は互換性がある必要はないことに留意すべきである。例えば、モバイルコンピューティングデバイス150は、ANDROID(登録商標)オペレーティングシステム及びグーグル(登録商標)クローム(登録商標)ウェブブラウザ、又は、iOS(登録商標)オペレーティングシステム及びサファリ(登録商標)ウェブブラウザを実行中であり得るのに対し、クライアントコンピューティングデバイス110は、WINDOWS(登録商標)オペレーティングシステム及びインターネットエクスプローラ(登録商標)ブラウザを実行中であり得る。
非USBセンサ158は、動きセンサデバイス(例えば、加速度計、傾斜計、キネティックセンサ、又は近接センサ)、方位センサ(例えば、ジャイロスコープ)、モバイルポインティングデバイス(例えば、赤外線デバイス)、位置センサ(例えば、全地球測位システム(GPS))、又は、人若しくは物体の動き(回転若しくは並進)若しくは位置を検知若しくは検出することができる別のタイプのハードウェアデバイスとして具現化され得る。モバイルUoIPサブシステム170は、コンピュータソフトウェア、ハードウェア、又はこれらの組合せとして具現化され得、本明細書で開示するように、ネットワーク180を介する非USBセンサ158の共有を可能にする。いくつかの実施形態において、モバイルUoIPサブシステム170は、非USBセンサ158に代えて又は非USBセンサ158に加えて、1以上の他の周辺デバイスの共有を可能にし得る。本明細書で使用されるとき、「周辺デバイス」とは、とりわけ、データを生成、取得、キャプチャ、若しくは収集する、又は、コンピュータアプリケーションによりリクエストされ得るサービスを実行するデバイスを指し得、「周辺デバイス」は、物理USBデバイス、仮想USBデバイス、非USBデバイス、様々なバス及びサービスを含み得る「一般」デバイス(例えば、パーソナルコンピュータ、スマートフォン、タブレットコンピュータ、カメラ、マイクロフォン、タッチセンサ等)、及び/又は他のデバイスを含み得る。
ネットワーク180は、セルラネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク(例えば、Wi−Fi(登録商標))、パーソナルクラウド、仮想パーソナルネットワーク(例えば、VPN)、エンタープライズクラウド、パブリッククラウド、イーサネット(登録商標)、及び/又は、インターネット等のパブリックネットワークとして具現化され得る。代替的又は追加的に、ネットワーク180は、例えば、Bluetooth(登録商標)技術及び/又は近距離無線通信(NFC)技術を使用して、モバイルコンピューティングデバイス150とクライアントコンピューティングデバイス150との間のより短距離の無線通信を可能にしてもよい。
次に図2を参照すると、いくつかの実施形態において、コンピューティングシステム100は、動作中に環境200を確立する。例示的な環境200は、モバイルコンピューティングデバイス150及びクライアントコンピューティングデバイス110の両デバイス上のアクティブコンポーネント(例えば、ロードされているコンポーネント及び/又は実行中のコンポーネント)(例えば、コンポーネント210、212、214、218、220、230、232、234、236、238、240)を含む。モバイルコンピューティングデバイス150上では、オペレーティングシステム210、モバイルセンサドライバ212、及びモバイルセンサフレームワーク214が、システムソフトウェア166の実行可能なコンポーネントである。クライアントコンピューティングデバイス110上では、オペレーティングシステム230、クライアントセンサフレームワーク234、及びクライアントセンサドライバ236が、システムソフトウェア128の実行可能なコンポーネントである。さらに、UoIPサブシステム132、170の実行可能なコンポーネントが、図2においてより詳細に示されている。モバイルUoIPサブシステム170は、仮想USBセンサ218及びUSBトランスポートメカニズム220を含み、USBトランスポートメカニズム220は、モバイルUSBプロトコル適応層(「PAL」)222及びネットワークトランスポート層224を含む。クライアントUoIPサブシステム132は、仮想USBセンサハブ238及びUSBトランスポートメカニズム240を含み、USBトランスポートメカニズム240は、クライアントUSB PAL242及びネットワークトランスポート層244を含む。いくつかの実施形態において、ネットワークトランスポート層224、244はそれぞれ、UoIPサブシステム170、132のコンポーネントとしてではなく、システムソフトウェア166、128のコンポーネントとして(例えば、オペレーティングシステム210、230のコンポーネントとして)具現化され得る。例えば、ネットワークトランスポート層224、244はそれぞれ、標準的なオペレーティングシステム依存のソケットベースのネットワークトランスポートメカニズムとして具現化され得る。すなわち、ネットワークトランスポート層224、244の実装は、デバイス150、110に提供される1以上のオペレーティングシステムに依存し得る。環境200の様々なモジュールは、ハードウェア、ファームウェア、ソフトウェア、又はこれらの組合せとして具現化され得る。さらに、いくつかの実施形態において、環境200のモジュールの一部又は全ては、他のモジュール若しくはソフトウェア/ファームウェア構造と統合され得る、又は、他のモジュール若しくはソフトウェア/ファームウェア構造の一部を形成し得る。
図2に示されるモバイルコンピューティングデバイス150を参照すると、例示的なモバイルUoIPサブシステム170は、モバイルコンピューティングデバイス150上の別個のアプリケーションとして取得され(例えば、ユーザにより、ウェブサイト又は「アプリケーションストア」からネットワークを介してダウンロードされ)インストールされ得るソフトウェアスタックとして具現化され得る。モバイルUoIPサブシステム170の諸部分は、ユーザモードサービス(例えば、特権なし)又はカーネルモードサービス(例えば、特権あり)として実装され得る。UoIPサブシステム170のコンポーネントは、モバイルコンピューティングデバイス150上に仮想USBセンサ218を作成し、非USBセンサ158からセンサデータを得、クライアントコンピューティングデバイス110から受信される、センサデータを求めるリクエストに従うために、複数の異なるシステムソフトウェアコンポーネント166と通信する。上述したように、例示的な仮想USBセンサ218は、非USBセンサ158のソフトウェアエミュレーション(又は、「抽象化(abstraction)」)である。仮想USBセンサ218を作成するために、非USBセンサ158の論理表現が、モバイルUoIPサブシステム170のコンポーネントとして、モバイルコンピューティングデバイス150上に定義されてインストールされる。非USBセンサ158の論理表現を定義するために、非USBセンサ158の様々な特性(デバイスタイプ、機能、データのタイプ、及び有効データ範囲等)が、例えば、ユニバーサルシリアルバスヒューマンインタフェースデバイス(「USB HID」)仕様を使用して、記述子又はバイナリコードにマッピング又は変換される。非USBセンサ158の論理表現は、仮想センサ記述子162として、モバイルコンピューティングデバイス150に記憶され得る。仮想センサ記述子162は、例えば、電子ファイル又はデータ構造として具現化され得る。仮想センサ記述子162の一部の例が、以下のコード例1に示される。
Figure 2017507447
コード例1において、仮想USBセンサ218は、3次元動き加速度計として定義されており、センサの様々な属性が、記述子言語を使用して成文化されている。仮想USBセンサ218は、いくつかの実施形態において、クライアントUoIPサブシステム132からのデバイス列挙リクエストに応じて「アクティブ」になり、それ以外は非アクティブであり得る。仮想USBセンサ218が、モバイルコンピューティングデバイス150上に作成されると、モバイルUoIPサブシステム170は、仮想センサ仕様(例えば、USB HID動きセンサ仕様)に従って、(非USBセンサ158によりキャプチャされた)センサデータをパッケージ化することにより、クライアントUoIPサブシステム132からのデバイス列挙リクエストに応答することができる。
仮想センサ仕様(例えば、USB HID)に従ってパッケージ化するためのセンサデータを得るために、モバイルUoIPサブシステム170は、モバイルセンサフレームワーク214のアプリケーションプログラミングインタフェース(API)を使用する。非USBセンサ158からセンサデータを得るために使用される特定のAPIは、オペレーティングシステムに依存し得る。例えば、モバイルコンピューティングデバイス150が、ANDROID(登録商標)オペレーティングシステムを実行中である場合、モバイルセンサフレームワーク214は、センサデータを得るために使用され得るSensorManagerクラスAPIを含み得る。一方、モバイルコンピューティングデバイス150が、iOS(登録商標)オペレーティングシステムを実行中である場合、モバイルセンサフレームワーク214は、CMotionManagerクラスAPIを含み得る。モバイルセンサフレームワーク214のこれらのAPIは、モバイルセンサドライバ212とモバイルUoIPサブシステム170との間の通信を円滑にする。例えば、モバイルセンサフレームワーク214が、関連APIを使用して、非USBセンサ158によりキャプチャされた動きセンサデータをモバイルUoIPサブシステム170に定期的に(例えば、数ミリ秒(2〜3ミリ秒)ごとに)送信するように、モバイルUoIPサブシステム170は、モバイルUoIPサブシステム170自身をモバイルセンサフレームワーク214に登録することができる。モバイルセンサドライバ212は、オペレーティングシステム210が、非USBセンサ158と直接通信して非USBセンサ158からセンサデータを得、モバイルUoIPサブシステム170による使用のためにセンサデータを編成することを可能にするデバイス固有のドライバソフトウェアとして具現化され得る。モバイルセンサドライバ212は、非USBセンサ158により理解可能なフォーマットで、センサデータリクエストを非USBセンサ158に通信し、非USBセンサ158からレスポンス(例えば、センサデータ)を受信し、非USBセンサ158のレスポンスをモバイルセンサフレームワーク214に通信するために、オペレーティングシステム210及びモバイルセンサフレームワーク214とインタフェースをとる。センサデータをクライアントコンピューティングデバイス110に送信するために、モバイルUSBプロトコル適応層222は、USB PALプロトコルに従ってセンサデータをカプセル化し、ネットワークトランスポート層224は、(例えば、伝送制御プロトコル(「TCP」)を使用して、)カプセル化されたデータをUoIP通信250としてクライアントコンピューティングデバイス110に送信する。モバイルUSB PAL222は、USBリクエスト及びレスポンスをPALリクエスト及びレスポンスにマッピングすることにより、例えば、TCPオーバーIPを用いて、デバイス110とデバイス150との間の完全なUSB転送への論理トランスポートを提供する。モバイルUSB PAL222は、例えば、メモリ管理ロジックとデータ構造と転送キューとの組合せとして具現化され得る。USB PALプロトコル仕様は、コンピューティングシステム100の特定の実装の要件に従って定義され得る。いくつかの実施形態において、USB PALプロトコルの諸部分は、WiGigシリアル拡張(「WSE」)PAL仕様の後にモデル化され得る。
図2に示されるクライアントコンピューティングデバイス110を参照すると、例示的なクライアントUoIPサブシステム132は、クライアントコンピューティングデバイス110上の別個のアプリケーションとして取得され(例えば、ユーザにより、ウェブサイト又は「アプリケーションストア」からネットワークを介してダウンロードされ)インストールされ得るソフトウェアスタックとして具現化され得る。クライアントUoIPサブシステム132は、クライアントコンピューティングデバイス110と、リモートにある(例えば、ネットワーク化された)USB周辺デバイスが共有されることを可能にする。クライアントUoIPサブシステム132の諸部分は、UoIPサービスを提供し、必要に応じて既存のUSBソフトウェアとインタフェースをとるよう設計されているソフトウェアを含む。クライアントUoIPサブシステム132の諸部分は、ユーザモードサービス(例えば、特権なし)又はカーネルモードサービス(例えば、特権あり)として実装され得る。クライアントUoIPサブシステム132のコンポーネントは、ユーザレベルアプリケーション118から、センサデータを求めるリクエスト(例えば、USBリクエスト124)を受信し、リクエスト124をUoIP通信250として編成し、ネットワーク180を介してUoIP通信250をモバイルコンピューティングデバイス150に送信するために、複数の異なるシステムソフトウェアコンポーネント128と通信する。USBリクエスト124は、サービスリクエストをクライアントUoIPサブシステム132に送信するためにクライアントセンサドライバ236により使用されるデータ構造を含む。
動作中、ユーザレベルアプリケーション118は、ユーザレベルアプリケーション118自身をセンサフレームワーク234に登録し、センサデータを求めるUSBリクエスト124をセンサフレームワーク234に定期的に送信することができる。センサフレームワーク234は、リクエスト124がUSBセンサドライバ236により読み取られ処理され得るように、ユーザレベルアプリケーション118から受信されたリクエスト124を編成する。しかしながら、USBセンサドライバ236は、センサハードウェアと直接インタフェースをとる代わりに、クライアントUoIPサブシステム132とインタフェースをとる。これを行うために、USBセンサドライバ236は、クライアントUoIPサブシステム132により読み取られ処理され得るフォーマットで(例えば、USB HIDリクエストとして)、センサデータリクエスト124をクライアントUoIPサブシステム132に渡す。
仮想USBセンサハブ238は、仮想USBセンサ218がUSBトランスポートメカニズム220、240を介して接続する「スロット」として動作する。したがって、仮想USBセンサハブ238は、http://www.usb.org/developers/docs/においてアクセスすることができるUSB仕様書に記載されているハードウェアUSBハブインタフェースのソフトウェアエミュレーションとして具現化され得る。仮想USBセンサハブ238は、仮想USBセンサ218及び/又は他のUSB周辺デバイスを列挙し、適用可能なUSBクライアントドライバ(例えば、USBセンサドライバ236)をロードし、USBクライアントドライバからのUSBリクエスト124を、クライアントUSB PAL242により読み取られ処理され得るリクエストに変換する仮想ハブドライバ又はサービスとして具現化され得る。クライアントUSB PAL242は、USB PALプロトコルに従ってUSBリクエスト124をカプセル化し、(例えば、TCPを使用して、)カプセル化されたリクエストをUoIP通信250としてモバイルコンピューティングデバイス150に送信するために、ネットワークトランスポート層244とインタフェースをとる。カプセル化されたセンサデータリクエストが、ネットワーク180を介して送信され、モバイルコンピューティングデバイス150においてネットワークトランスポート層224により受信され、モバイルUSB PAL222により復号され、上述したように、モバイルコンピューティングデバイス150により処理される。
次に図3を参照すると、クライアントコンピューティングデバイス110上のクライアントアプリケーション(例えば、ユーザレベルアプリケーション118)が、モバイルコンピューティングデバイス150の非USBセンサ158により得られたセンサデータにアクセスして該センサデータを使用することを可能にするための方法300の例が示されている。方法300の諸部分は、コンピューティングシステム100、例えば、クライアントコンピューティングデバイス110及び/又はモバイルコンピューティングデバイス150により実行され得る。ブロック310において、コンピューティングシステム100は、モバイルコンピューティングデバイス150上に仮想USBセンサ218を作成する。これを行うために、モバイルUoIPサブシステム170が、モバイルコンピューティングデバイス150にインストールされ、仮想センサ記述子162が、モバイルコンピューティングデバイス150により読み取られ実行される。モバイルUoIPサブシステム170のインストールは、エンドユーザにより又は(例えば、ソフトウェアアップデートの場合には)自動プロセスにより開始され得る。ブロック312において、クライアントアプリケーション(例えば、ユーザレベルアプリケーション118等のセンサベースのアプリケーション)の使用が、クライアントコンピューティングデバイス110上で開始される。これを行うために、エンドユーザ又は自動プロセスは、(例えば、クライアントコンピューティングデバイス110のディスプレイスクリーン上のグラフィカル要素をタップ又は選択することにより)クライアントアプリケーションを起動することができる。起動プロセスの一部として、クライアントアプリケーションは、クライアントアプリケーションの実行中に必要なセンサデータをクライアントアプリケーションに提供するために使用され得るセンサを識別するためのデバイス列挙リクエストを発することができる。
ブロック314において、クライアントコンピューティングデバイス110が仮想USBセンサ218を検出して認識したかどうかについて判定がなされる。モバイルコンピューティングデバイス150とクライアントコンピューティングデバイス110との間にネットワーク接続(例えば、TCP接続)が存在する場合、仮想USBセンサ218は、アクティブになってセンサデータを送信するために利用可能になり、モバイルコンピューティングデバイス150(例えば、モバイルUoIPサブシステム170)は、クライアントコンピューティングデバイス110から、仮想USBセンサ218を求めるデバイス列挙リクエストを受信する。仮想USBセンサ218がアクティブになった場合、モバイルコンピューティングデバイス150は、デバイス列挙リクエストに対するレスポンスをクライアントコンピューティングデバイス110に送信する。クライアントコンピューティングデバイス150が、仮想USBセンサ218を検出していない場合、方法300はブロック314に戻る。クライアントコンピューティングデバイス110が、仮想USBセンサ218を認識した場合、方法300はブロック316に進む。デバイス列挙リクエストに対するモバイルコンピューティングデバイス150のレスポンスのクライアントコンピューティングデバイス110による受信は、ブロック316における、クライアントコンピューティングデバイス110による対応するセンサ機能ドライバ(例えば、クライアントセンサドライバ236)のロードをトリガする。
ブロック318において、クライアントアプリケーション(例えば、ユーザレベルアプリケーション118)が、仮想USBセンサ218を介して非USBセンサ158により提供され得る種類のセンサデータを求めるリクエスト(例えば、USBリクエスト124)を発したかどうかについて判定がなされる。クライアントセンサドライバ236が、ユーザレベルアプリケーション118から、センサデータを求める(例えば、「動きセンサデータを得る(get motion sensor data)」)リクエストを受信した場合、この判定は肯定的な結果となる。そのようなリクエストが受信されていない場合、方法300はブロック318に戻る。センサデータリクエストが、ユーザレベルアプリケーション118から受信された場合、クライアントセンサドライバ236は、センサデータリクエストをUSBリクエスト124として(例えば、USB HIDリクエストとして)編成し、方法300はブロック320に進む。ブロック320において、クライアントUoIPサブシステム132は、例えば、上述したUSB PALプロトコルを使用して、USBリクエスト124をUoIP通信250として編成する。ブロック322において、クライアントUoIPサブシステム132は、例えば、TCP/IPプロトコルを使用して、UoIP通信250をモバイルコンピューティングデバイス150に送信する。
ブロック324において、モバイルUoIPサブシステム170は、モバイルコンピューティングデバイス150上のオペレーティングシステム210から、リクエストされたセンサデータを得る。これを行うために、モバイルUoIPサブシステム170は、モバイルセンサフレームワーク214を介して、モバイルセンサドライバ212とインタフェースをとることができる。例えば、モバイルUoIPサブシステム170が、モバイルセンサフレームワーク214に登録されると、モバイルセンサフレームワーク214は、モバイルセンサドライバ212が非USBセンサ158から定期的に受信するセンサデータを、モバイルUoIPサブシステム170に転送することができ、モバイルUoIPサブシステム170は、センサデータをUSB HIDレスポンスとして編成することができる。ブロック326において、USBトランスポートメカニズム220は、例えば、上述したUSB PALプロトコルを使用して、センサデータ(例えば、USB HIDレスポンスとしてフォーマット化されたセンサデータ)をUoIP通信250として編成する。必要とされる場合、モバイルUoIPサブシステム170及び/又はクライアントUoIPサブシステム132は、1つのオペレーティングシステムフォーマットから別のオペレーティングシステムフォーマットへのセンサデータの適切な変換を実行する。例えば、モバイルUoIPサブシステム170又はクライアントUoIPサブシステム132は、モバイルコンピューティングデバイス150及びクライアントコンピューティングデバイス110により使用され得る異なるオペレーティングシステム(例えば、ANDROID(登録商標)若しくはiOS(登録商標)からWINDOWS(登録商標)へ、又はその逆)にわたる加速度計範囲差又は基準軸差(references axis difference)を補償するための数式を適用することができる。もちろん、モバイルコンピューティングデバイス150及びクライアントコンピューティングデバイス110の両方が、同じオペレーティングシステムを実行中である場合、そのような変換は必要でない。
ブロック328において、モバイルUoIPサブシステム170は、例えば、TCP/IPプロトコルを使用して、センサデータ(例えば、USB HIDレスポンスとしてフォーマット化されたセンサデータ)をUoIP通信250としてクライアントコンピューティングデバイス110に送信する。ブロック330において、クライアントUoIPサブシステム132は、UoIP通信250を復号し、センサデータ(例えば、USB HIDレスポンスとしてフォーマット化されたセンサデータ)をクライアントセンサドライバ236に転送し、クライアントセンサドライバ236は、クライアントセンサフレームワーク234を介して、クライアントアプリケーションにより使用可能なフォーマットで(ここで、クライアントアプリケーションにより使用可能なフォーマットは実装に固有であり得る)、センサデータをユーザレベルアプリケーション118に提供する。ブロック332において、クライアントアプリケーション(例えば、ユーザレベルアプリケーション118)が、クライアントコンピューティングデバイス110上でまだ実行中であるかどうかについて判定がなされる。クライアントアプリケーションがまだ実行中であるとクライアントコンピューティングデバイス110が判定した場合、方法300はブロック318に戻り、センサデータを求める次のリクエストを処理する。クライアントアプリケーションが実行中でない場合、方法300は、終了する、又は、クライアントアプリケーション又は別のセンサベースのアプリケーションの次の起動を待つ。
次に図4を参照すると、「デバイスマネージャ」ユーティリティの一部としてクライアントコンピューティングデバイス110のディスプレイ上に提示され得るユーザインタフェースディスプレイスクリーン400の例が示されている。ディスプレイスクリーン400は、USBデバイス(仮想USBセンサ218)としての非USBセンサ158のクライアントコンピューティングデバイス110による認識を示す、すなわち、別の言い方をすると、ネットワーク180を介するモバイルコンピューティングデバイス150による非USBセンサ158の共有を示す。ディスプレイスクリーン400は、上述したように、クライアントコンピューティングデバイス110が、デバイス列挙リクエストをモバイルコンピューティングデバイス150に発し、デバイス列挙リクエストに対するレスポンスを受信した後、エンドユーザに対して提示され得る。例示的なディスプレイスクリーン400は、リスト410を表示する。リスト410は、クライアントコンピューティングデバイス110に接続されているデバイス又はクライアントコンピューティングデバイス110と通信しているデバイスを識別するものである。仮想USBセンサ218が、クライアントコンピューティングデバイス110に接続されているとして、スクリーン位置420において識別される。ディスプレイスクリーン400及び/又はデバイスマネージャは、いくつかの実施形態において、ユーザレベルアプリケーション118の一部として具現化され得る。

本明細書で開示した技術の例示的な例が、以下に提供される。本技術の実施形態は、以下に記載の例の任意の1以上及び任意の組合せを含み得る。
例1は、モバイルデバイスの非ユニバーサルシリアルバス(非USB)ハードウェアセンサにより得られたセンサデータを使用するユーザレベルアプリケーションを実行するためのコンピューティングデバイスであって、前記モバイルデバイスは、ネットワークを介して、前記コンピューティングデバイスに通信可能に接続される、コンピューティングデバイスを含む。前記コンピューティングデバイスは、前記ユーザレベルアプリケーションに通信可能に接続されるユニバーサルシリアルバスオーバーインターネットプロトコル(UoIP)サブシステムを含む。前記コンピューティングデバイスの前記UoIPサブシステムは、前記ユーザレベルアプリケーションから、前記センサデータを求めるリクエストを受信し、前記モバイルデバイスの前記非USBハードウェアセンサをユニバーサルシリアルバスデバイスとして認識し、前記モバイルデバイスのUoIPサブシステムと通信して、前記モバイルデバイスから前記センサデータを受信する。前記コンピューティングデバイスは、前記コンピューティングデバイスの前記UoIPサブシステムに通信可能に接続されるセンサフレームワークであって、前記ユーザレベルアプリケーションによる使用のために、前記の受信されたセンサデータを編成するセンサフレームワークをさらに含む。
例2は、例1の主題を含み、前記コンピューティングデバイスの前記UoIPサブシステムは、トランスポートメカニズム及び仮想センサハブを含み、前記トランスポートメカニズムは、前記モバイルデバイスへの送信のために、USB通信プロトコルに従って、前記センサデータを求める前記リクエストを編成し、前記USB通信プロトコルに従って編成された前記センサデータを受信し、前記仮想センサハブは、前記の受信されたセンサデータを、前記コンピューティングデバイスにより使用可能なフォーマットに変換する。
例3は、例1又は2の主題を含み、前記コンピューティングデバイスの前記UoIPサブシステムは、前記センサデータを求める前記リクエストを、UoIPデータ読み取りリクエストとして編成し、前記UoIPデータ読み取りリクエストを、前記モバイルデバイスの前記UoIPサブシステムに送信し、前記モバイルデバイスの前記UoIPサブシステムから、前記センサデータを受信する。
例4は、例1〜3のうちのいずれかの主題を含み、前記コンピューティングデバイスの前記UoIPサブシステムは、ユニバーサルシリアルバスヒューマンインタフェースデバイス(USB HID)仕様に従って、前記モバイルデバイスの前記UoIPサブシステムから受信された前記センサデータを編成する。
例5は、例1〜4のうちのいずれかの主題を含み、前記モバイルデバイスの前記UoIPサブシステムは、前記非USBハードウェアセンサを、前記モバイルデバイス上の仮想センサとして仮想化する。
例6は、例5の主題を含み、前記モバイルデバイスの前記UoIPサブシステムは、USB HID仕様に従って前記仮想センサを作成する。
例7は、例6の主題を含み、前記モバイルデバイスの前記UoIPサブシステムは、USB HID記述子ファイルを読み取ることにより前記仮想センサを作成する。
例8は、例1〜7のうちのいずれかの主題を含み、前記コンピューティングデバイスの前記UoIPサブシステムは、デバイス列挙リクエストを前記モバイルデバイスに送信し、前記モバイルデバイスの前記UoIPサブシステムは、前記デバイス列挙リクエストに対するレスポンスを、前記コンピューティングデバイスの前記UoIPサブシステムに送信し、前記デバイス列挙リクエストに対する前記レスポンスは、前記コンピューティングデバイスに対して、前記モバイルデバイスの前記非USBハードウェアセンサをUSBデバイスとして識別させるものである。
例9は、例8の主題を含み、前記コンピューティングデバイスに対する前記USBデバイスの識別に応じて、前記コンピューティングデバイスは、仮想の前記USBデバイスに対応するセンサドライバをロードし、前記センサドライバは、前記コンピューティングデバイスの前記UoIPサブシステムと通信する。
例10は、例1〜9のうちのいずれかの主題を含み、前記モバイルデバイスの前記非USBハードウェアセンサは、動きセンサを含み、前記ユーザレベルアプリケーションは、前記センサデータに応じたモーション機能(motion feature)を含み、前記コンピューティングデバイスの前記UoIPサブシステムは、前記ユーザレベルアプリケーションと通信して、前記モバイルデバイスの前記UoIPサブシステムと通信することにより前記ユーザレベルアプリケーションの前記モーション機能を動作させる。
例11は、モバイルデバイスの非ユニバーサルシリアルバス(非USB)ハードウェアセンサにより得られたセンサデータを使用する、コンピューティングデバイス上のユーザレベルアプリケーションの実行を可能にするための方法であって、前記モバイルデバイスは、ネットワークを介して、前記コンピューティングデバイスに通信可能に接続され、前記方法は、前記コンピューティングデバイスにより、前記ユーザレベルアプリケーションから、前記センサデータを求めるリクエストを受信するステップと、前記コンピューティングデバイスにより、前記モバイルデバイスの前記非USBハードウェアセンサをユニバーサルシリアルバスデバイスとして認識するステップと、前記コンピューティングデバイスにより、前記モバイルデバイスのユニバーサルシリアルバスオーバーインターネットプロトコル(UoIP)サブシステムと通信して、前記モバイルデバイスから前記センサデータを受信するステップと、前記コンピューティングデバイスにより、前記ユーザレベルアプリケーションによる使用のために、前記の受信されたセンサデータを編成するステップと、を含む、方法を含む。
例12は、例11の主題を含み、前記モバイルデバイスへの送信のために、USB通信プロトコルに従って、前記センサデータを求める前記リクエストを編成するステップと、前記USB通信プロトコルに従って編成された前記センサデータを受信するステップと、前記の受信されたセンサデータを、前記コンピューティングデバイスにより使用可能なフォーマットに変換するステップと、をさらに含む。
例13は、例11の主題を含み、前記センサデータを求める前記リクエストを、UoIPデータ読み取りリクエストとして編成するステップと、前記UoIPデータ読み取りリクエストを、前記モバイルデバイスの前記UoIPサブシステムに送信するステップと、前記モバイルデバイスの前記UoIPサブシステムから、前記センサデータを受信するステップと、をさらに含む。
例14は、例11の主題を含み、ユニバーサルシリアルバスヒューマンインタフェースデバイス(USB HID)仕様に従って、前記モバイルデバイスの前記UoIPサブシステムから受信された前記センサデータを編成するステップをさらに含む。
例15は、例11の主題を含み、前記非USBハードウェアセンサを、前記モバイルデバイス上の仮想センサとして仮想化するステップをさらに含む。
例16は、例15の主題を含み、USB HID仕様に従って前記仮想センサを作成するステップをさらに含む。
例17は、例16の主題を含み、USB HID記述子ファイルを読み取ることにより前記仮想センサを作成するステップをさらに含む。
例18は、例11の主題を含み、デバイス列挙リクエストを前記モバイルデバイスに送信するステップと、前記デバイス列挙リクエストに対するレスポンスを、前記コンピューティングデバイスの前記UoIPサブシステムに送信するステップと、をさらに含み、前記デバイス列挙リクエストに対する前記レスポンスは、前記コンピューティングデバイスに対して、前記モバイルデバイスの前記非USBハードウェアセンサをUSBデバイスとして識別させるものである。
例19は、例18の主題を含み、前記コンピューティングデバイスに対する仮想の前記USBデバイスの識別に応じて、仮想の前記USBデバイスに対応するセンサドライバをロードするステップをさらに含み、前記センサドライバは、前記コンピューティングデバイスの前記UoIPサブシステムと通信する。
例20は、例11の主題を含み、前記モバイルデバイスの前記非USBハードウェアセンサは、動きセンサを含み、前記ユーザレベルアプリケーションは、前記センサデータに応じたモーション機能を含み、前記方法は、前記モバイルデバイスの前記UoIPサブシステムと通信することにより前記ユーザレベルアプリケーションの前記モーション機能を動作させるステップを含む。
例21は、複数の命令を記憶しているメモリを含むコンピューティングデバイスであって、前記複数の命令が、前記コンピューティングデバイスにより実行されたときに、前記複数の命令は、前記コンピューティングデバイスに、例11〜20のうちのいずれかの方法を実行させる、コンピューティングデバイスを含む。
例22は、複数の命令を記憶している1以上のマシン読み取り可能な記憶媒体であって、前記複数の命令が実行されたことに応じて、前記複数の命令は、コンピューティングデバイスに、例11〜20のうちのいずれかの方法を実行させる、1以上のマシン読み取り可能な記憶媒体を含む。
例23は、例11〜20のうちのいずれかの方法を実行する手段を含むコンピューティングデバイスを含む。
例24は、統合された動きセンサを有さないコンピューティングデバイスであって、前記コンピューティングデバイスは、前記コンピューティングデバイス上の動きセンサベースのアプリケーションを実行するよう構成されており、前記コンピューティングデバイスは、ユニバーサルシリアルバスオーバーインターネットプロトコル(UoIP)サブシステムであって、モバイルデバイスの非ユニバーサルシリアルバス動きセンサを、ユニバーサルシリアルバスヒューマンインタフェースデバイスとして認識し、ここで、前記モバイルデバイスは、ネットワークを介して、前記コンピューティングデバイスに通信可能に接続され、前記動きセンサベースのアプリケーションから、動きセンサデータを求めるリクエストを受信し、前記動きセンサデータを求める前記リクエストを、前記モバイルデバイスのUoIPサブシステムに通信し、前記モバイルデバイスの前記UoIPサブシステムから、前記のリクエストされた動きセンサデータを受信するUoIPサブシステムを含む、コンピューティングデバイスを含む。
例25は、例24の主題を含み、前記コンピューティングデバイスは、前記コンピューティングデバイス上の前記動きセンサベースのアプリケーションによる使用のために、前記の受信された動きセンサデータを編成する。
例26は、例24又は25の主題を含み、前記モバイルデバイスの前記UoIPサブシステムは、前記モバイルデバイスの前記非ユニバーサルシリアルバス動きセンサを仮想化することによりユニバーサルシリアルバスセンサを作成する。
例27は、統合された動きセンサを有さないコンピューティングデバイス上の動きセンサベースのアプリケーションの実行を可能にするための方法であって、前記コンピューティングデバイスにより、モバイルデバイスの非ユニバーサルシリアルバスセンサを、ユニバーサルシリアルバスデバイスとして認識するステップであって、前記モバイルデバイスは、ネットワークを介して、前記コンピューティングデバイスに通信可能に接続される、ステップと、前記コンピューティングデバイスにより、前記動きセンサベースのアプリケーションから、動きセンサデータを求めるリクエストを受信するステップと、前記コンピューティングデバイスにより、前記動きセンサデータを求める前記リクエストを、前記モバイルデバイスのユニバーサルシリアルバスオーバーインターネットプロトコル(UoIP)サブシステムに通信するステップと、前記コンピューティングデバイスにより、前記モバイルデバイスの前記UoIPサブシステムから、前記のリクエストされた動きセンサデータを受信するステップと、を含む、方法を含む。
例28は、例27の主題を含み、前記の受信された動きセンサデータを、1つのオペレーティングシステムフォーマットから別のオペレーティングシステムフォーマットに変換することにより、前記コンピューティングデバイス上の前記動きセンサベースのアプリケーションによる使用のために、前記の受信された動きセンサデータを編成するステップをさらに含む。
例29は、例27の主題を含み、前記モバイルデバイスの前記非ユニバーサルシリアルバスセンサを仮想化することによりユニバーサルシリアルバスセンサを作成するステップをさらに含む。
例30は、複数の命令を記憶しているメモリを含むコンピューティングデバイスであって、前記複数の命令が、前記コンピューティングデバイスにより実行されたときに、前記複数の命令は、前記コンピューティングデバイスに、例27〜29のうちのいずれかの方法を実行させる、コンピューティングデバイスを含む。
例31は、複数の命令を記憶している1以上のマシン読み取り可能な記憶媒体であって、前記複数の命令が実行されたことに応じて、前記複数の命令は、コンピューティングデバイスに、例27〜29のうちのいずれかの方法を実行させる、1以上のマシン読み取り可能な記憶媒体を含む。
例32は、例27〜29のうちのいずれかの方法を実行する手段を含むコンピューティングデバイスを含む。
例33は、モバイルデバイスの非ユニバーサルシリアルバス(非USB)ハードウェアセンサにより得られたセンサデータを使用するユーザレベルアプリケーションを実行するためのコンピューティングデバイスであって、前記モバイルデバイスは、ネットワークを介して、前記コンピューティングデバイスに通信可能に接続される、コンピューティングデバイスを含む。前記コンピューティングデバイスは、前記ユーザレベルアプリケーションから、前記センサデータを求めるリクエストを受信する手段と、前記モバイルデバイスの前記非USBハードウェアセンサをユニバーサルシリアルバスデバイスとして認識する手段と、前記モバイルデバイスのユニバーサルシリアルバスオーバーインターネットプロトコル(UoIP)サブシステムと通信して、前記モバイルデバイスから前記センサデータを受信する手段と、前記ユーザレベルアプリケーションによる使用のために、前記の受信されたセンサデータを編成する手段と、を含む。
例34は、例33の主題を含み、前記モバイルデバイスへの送信のために、USB通信プロトコルに従って、前記センサデータを求める前記リクエストを編成する手段と、前記USB通信プロトコルに従って編成された前記センサデータを受信する手段と、前記の受信されたセンサデータを、前記コンピューティングデバイスにより使用可能なフォーマットに変換する手段と、を含む。
例35は、例33の主題を含み、前記センサデータを求める前記リクエストを、UoIPデータ読み取りリクエストとして編成する手段と、前記UoIPデータ読み取りリクエストを前記モバイルデバイスに送信する手段と、前記モバイルデバイスから前記センサデータを受信する手段と、を含む。
例36は、例33の主題を含み、ユニバーサルシリアルバスヒューマンインタフェースデバイス(USB HID)仕様に従って、前記の受信されたセンサデータを編成する手段を含む。
例37は、例33の主題を含み、前記非USBハードウェアセンサを、前記モバイルデバイス上の仮想センサとして仮想化する手段を含む。
例38は、例37の主題を含み、USB HID記述子ファイルを読み取ることにより前記仮想センサを作成する手段を含む。
例39は、例38の主題を含み、デバイス列挙リクエストを前記モバイルデバイスに送信する手段と、前記デバイス列挙リクエストに対するレスポンスを、前記コンピューティングデバイスのUoIPサブシステムに送信する手段と、前記コンピューティングデバイスに対して、前記モバイルデバイスの前記非USBハードウェアセンサをUSBデバイスとして識別させる手段と、を含む。
例40は、例39の主題を含み、前記コンピューティングデバイスに対する前記USBデバイスの識別に応じて、仮想の前記USBデバイスに対応するセンサドライバをロードする手段を含む。
例41は、例40の主題を含み、前記モバイルデバイスの前記非USBハードウェアセンサは、動きセンサを含み、前記ユーザレベルアプリケーションは、前記センサデータに応じたモーション機能を含み、前記コンピューティングデバイスは、前記ユーザレベルアプリケーションと通信して、前記モバイルデバイスの前記UoIPサブシステムと通信することにより前記ユーザレベルアプリケーションの前記モーション機能を動作させる手段を含む。

Claims (26)

  1. モバイルデバイスの非ユニバーサルシリアルバス(非USB)ハードウェアセンサにより得られたセンサデータを使用するユーザレベルアプリケーションを実行するためのコンピューティングデバイスであって、前記モバイルデバイスは、ネットワークを介して、前記コンピューティングデバイスに通信可能に接続され、前記コンピューティングデバイスは、
    前記ユーザレベルアプリケーションに通信可能に接続されるユニバーサルシリアルバスオーバーインターネットプロトコル(UoIP)サブシステムであって、
    前記ユーザレベルアプリケーションから、前記センサデータを求めるリクエストを受信し、
    前記モバイルデバイスの前記非USBハードウェアセンサをユニバーサルシリアルバスデバイスとして認識し、
    前記モバイルデバイスのUoIPサブシステムと通信して、前記モバイルデバイスから前記センサデータを受信する
    UoIPサブシステムと、
    前記コンピューティングデバイスの前記UoIPサブシステムに通信可能に接続されるセンサフレームワークであって、前記ユーザレベルアプリケーションによる使用のために、前記の受信されたセンサデータを編成するセンサフレームワークと、
    を備えた、コンピューティングデバイス。
  2. 前記コンピューティングデバイスの前記UoIPサブシステムは、トランスポートメカニズム及び仮想センサハブを含み、前記トランスポートメカニズムは、前記モバイルデバイスへの送信のために、USB通信プロトコルに従って、前記センサデータを求める前記リクエストを編成し、前記USB通信プロトコルに従って編成された前記センサデータを受信し、前記仮想センサハブは、前記の受信されたセンサデータを、前記コンピューティングデバイスにより使用可能なフォーマットに変換する、請求項1記載のコンピューティングデバイス。
  3. 前記コンピューティングデバイスの前記UoIPサブシステムは、前記センサデータを求める前記リクエストを、UoIPデータ読み取りリクエストとして編成し、前記UoIPデータ読み取りリクエストを、前記モバイルデバイスの前記UoIPサブシステムに送信し、前記モバイルデバイスの前記UoIPサブシステムから、前記センサデータを受信する、請求項1又は2記載のコンピューティングデバイス。
  4. 前記コンピューティングデバイスの前記UoIPサブシステムは、ユニバーサルシリアルバスヒューマンインタフェースデバイス(USB HID)仕様に従って、前記モバイルデバイスの前記UoIPサブシステムから受信された前記センサデータを編成する、請求項1乃至3いずれか一項記載のコンピューティングデバイス。
  5. 前記モバイルデバイスの前記UoIPサブシステムは、前記非USBハードウェアセンサを、前記モバイルデバイス上の仮想センサとして仮想化する、請求項1乃至4いずれか一項記載のコンピューティングデバイス。
  6. 前記モバイルデバイスの前記UoIPサブシステムは、USB HID仕様に従って前記仮想センサを作成する、請求項5記載のコンピューティングデバイス。
  7. 前記モバイルデバイスの前記UoIPサブシステムは、USB HID記述子ファイルを読み取ることにより前記仮想センサを作成する、請求項6記載のコンピューティングデバイス。
  8. 前記コンピューティングデバイスの前記UoIPサブシステムは、デバイス列挙リクエストを前記モバイルデバイスに送信し、前記モバイルデバイスの前記UoIPサブシステムは、前記デバイス列挙リクエストに対するレスポンスを、前記コンピューティングデバイスの前記UoIPサブシステムに送信し、前記デバイス列挙リクエストに対する前記レスポンスは、前記コンピューティングデバイスに対して、前記モバイルデバイスの前記非USBハードウェアセンサをUSBデバイスとして識別させるものである、請求項1乃至7いずれか一項記載のコンピューティングデバイス。
  9. 前記コンピューティングデバイスに対する前記USBデバイスの識別に応じて、前記コンピューティングデバイスは、仮想の前記USBデバイスに対応するセンサドライバをロードし、前記センサドライバは、前記コンピューティングデバイスの前記UoIPサブシステムと通信する、請求項8記載のコンピューティングデバイス。
  10. 前記モバイルデバイスの前記非USBハードウェアセンサは、動きセンサを含み、前記ユーザレベルアプリケーションは、前記センサデータに応じたモーション機能を含み、前記コンピューティングデバイスの前記UoIPサブシステムは、前記ユーザレベルアプリケーションと通信して、前記モバイルデバイスの前記UoIPサブシステムと通信することにより前記ユーザレベルアプリケーションの前記モーション機能を動作させる、請求項1乃至9いずれか一項記載のコンピューティングデバイス。
  11. モバイルデバイスの非ユニバーサルシリアルバス(非USB)ハードウェアセンサにより得られたセンサデータを使用する、コンピューティングデバイス上のユーザレベルアプリケーションの実行を可能にするための方法であって、前記モバイルデバイスは、ネットワークを介して、前記コンピューティングデバイスに通信可能に接続され、前記方法は、
    前記コンピューティングデバイスにより、前記ユーザレベルアプリケーションから、前記センサデータを求めるリクエストを受信するステップと、
    前記コンピューティングデバイスにより、前記モバイルデバイスの前記非USBハードウェアセンサをユニバーサルシリアルバスデバイスとして認識するステップと、
    前記コンピューティングデバイスにより、前記モバイルデバイスのユニバーサルシリアルバスオーバーインターネットプロトコル(UoIP)サブシステムと通信して、前記モバイルデバイスから前記センサデータを受信するステップと、
    前記コンピューティングデバイスにより、前記ユーザレベルアプリケーションによる使用のために、前記の受信されたセンサデータを編成するステップと、
    を含む、方法。
  12. 前記モバイルデバイスへの送信のために、USB通信プロトコルに従って、前記センサデータを求める前記リクエストを編成するステップと、
    前記USB通信プロトコルに従って編成された前記センサデータを受信するステップと、
    前記の受信されたセンサデータを、前記コンピューティングデバイスにより使用可能なフォーマットに変換するステップと、
    を含む、請求項11記載の方法。
  13. 前記センサデータを求める前記リクエストを、UoIPデータ読み取りリクエストとして編成するステップと、
    前記UoIPデータ読み取りリクエストを、前記モバイルデバイスの前記UoIPサブシステムに送信するステップと、
    前記モバイルデバイスの前記UoIPサブシステムから、前記センサデータを受信するステップと、
    を含む、請求項11記載の方法。
  14. ユニバーサルシリアルバスヒューマンインタフェースデバイス(USB HID)仕様に従って、前記モバイルデバイスの前記UoIPサブシステムから受信された前記センサデータを編成するステップを含む、請求項11記載の方法。
  15. 前記非USBハードウェアセンサを、前記モバイルデバイス上の仮想センサとして仮想化するステップを含む、請求項11記載の方法。
  16. USB HID記述子ファイルを読み取ることにより前記仮想センサを作成するステップを含む、請求項15記載の方法。
  17. デバイス列挙リクエストを前記モバイルデバイスに送信するステップと、
    前記デバイス列挙リクエストに対するレスポンスを、前記コンピューティングデバイスのUoIPサブシステムに送信するステップと、
    を含み、
    前記デバイス列挙リクエストに対する前記レスポンスは、前記コンピューティングデバイスに対して、前記モバイルデバイスの前記非USBハードウェアセンサをUSBデバイスとして識別させるものである、請求項11記載の方法。
  18. 前記コンピューティングデバイスに対する仮想の前記USBデバイスの識別に応じて、仮想の前記USBデバイスに対応するセンサドライバをロードするステップを含み、
    前記センサドライバは、前記コンピューティングデバイスの前記UoIPサブシステムと通信する、請求項17記載の方法。
  19. 前記モバイルデバイスの前記非USBハードウェアセンサは、動きセンサを含み、前記ユーザレベルアプリケーションは、前記センサデータに応じたモーション機能を含み、前記方法は、前記モバイルデバイスの前記UoIPサブシステムと通信することにより前記ユーザレベルアプリケーションの前記モーション機能を動作させるステップを含む、請求項11記載の方法。
  20. 複数の命令を記憶しているメモリを備えたコンピューティングデバイスであって、前記複数の命令が、前記コンピューティングデバイスにより実行されたときに、前記複数の命令は、前記コンピューティングデバイスに、請求項11乃至19いずれか一項記載の方法を実行させる、コンピューティングデバイス。
  21. コンピューティングデバイスに、請求項11乃至19いずれか一項記載の方法を実行させるプログラム。
  22. 統合された動きセンサを有さないコンピューティングデバイスであって、前記コンピューティングデバイスは、前記コンピューティングデバイス上の動きセンサベースのアプリケーションを実行するよう構成されており、前記コンピューティングデバイスは、
    ユニバーサルシリアルバスオーバーインターネットプロトコル(UoIP)サブシステムであって、
    モバイルデバイスの非ユニバーサルシリアルバス動きセンサを、ユニバーサルシリアルバスヒューマンインタフェースデバイスとして認識し、ここで、前記モバイルデバイスは、ネットワークを介して、前記コンピューティングデバイスに通信可能に接続され、
    前記動きセンサベースのアプリケーションから、動きセンサデータを求めるリクエストを受信し、
    前記動きセンサデータを求める前記リクエストを、前記モバイルデバイスのUoIPサブシステムに通信し、
    前記モバイルデバイスの前記UoIPサブシステムから、前記のリクエストされた動きセンサデータを受信する
    UoIPサブシステム
    を備えた、コンピューティングデバイス。
  23. 前記コンピューティングデバイスは、前記コンピューティングデバイス上の前記動きセンサベースのアプリケーションによる使用のために、前記の受信された動きセンサデータを編成する、請求項22記載のコンピューティングデバイス。
  24. 統合された動きセンサを有さないコンピューティングデバイス上の動きセンサベースのアプリケーションの実行を可能にするための方法であって、
    前記コンピューティングデバイスにより、モバイルデバイスの非ユニバーサルシリアルバスセンサを、ユニバーサルシリアルバスデバイスとして認識するステップであって、前記モバイルデバイスは、ネットワークを介して、前記コンピューティングデバイスに通信可能に接続される、ステップと、
    前記コンピューティングデバイスにより、前記動きセンサベースのアプリケーションから、動きセンサデータを求めるリクエストを受信するステップと、
    前記コンピューティングデバイスにより、前記動きセンサデータを求める前記リクエストを、前記モバイルデバイスのユニバーサルシリアルバスオーバーインターネットプロトコル(UoIP)サブシステムに通信するステップと、
    前記コンピューティングデバイスにより、前記モバイルデバイスの前記UoIPサブシステムから、前記のリクエストされた動きセンサデータを受信するステップと、
    を含む、方法。
  25. 前記の受信された動きセンサデータを、1つのオペレーティングシステムフォーマットから別のオペレーティングシステムフォーマットに変換することにより、前記コンピューティングデバイス上の前記動きセンサベースのアプリケーションによる使用のために、前記の受信された動きセンサデータを編成するステップを含む、請求項24記載の方法。
  26. 請求項21記載のプログラムを記憶しているマシン読み取り可能な記憶媒体。
JP2016570946A 2014-03-25 2015-03-04 Usbオーバーipを用いた、別のデバイスとの非usbセンサの共有 Expired - Fee Related JP6250842B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/224,343 2014-03-25
US14/224,343 US20150281409A1 (en) 2014-03-25 2014-03-25 Using usb over ip to share a non-usb sensor with another device
PCT/US2015/018763 WO2015148078A1 (en) 2014-03-25 2015-03-04 Using usb over ip to share a non-usb sensor with another device

Publications (2)

Publication Number Publication Date
JP2017507447A true JP2017507447A (ja) 2017-03-16
JP6250842B2 JP6250842B2 (ja) 2017-12-20

Family

ID=54192090

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016570946A Expired - Fee Related JP6250842B2 (ja) 2014-03-25 2015-03-04 Usbオーバーipを用いた、別のデバイスとの非usbセンサの共有

Country Status (5)

Country Link
US (1) US20150281409A1 (ja)
EP (1) EP3123701A4 (ja)
JP (1) JP6250842B2 (ja)
TW (1) TWI628938B (ja)
WO (1) WO2015148078A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11374809B2 (en) * 2015-01-01 2022-06-28 Harman Becker Automotive Systems Gmbh Auxiliary device to enhance native in-vehicle systems by adding interfaces and computational power
WO2017052582A1 (en) * 2015-09-25 2017-03-30 Intel Corporation Sensor lifecycle management system
US10135954B2 (en) * 2015-12-21 2018-11-20 Intel Corporation Access dock device content on a remote client device wirelessly
US10078609B1 (en) * 2017-03-16 2018-09-18 Wyse Technology L.L.C. Virtualizing a non-USB device as a USB device
US11677547B1 (en) * 2022-07-22 2023-06-13 HYPR Corp. Mobile authenticator for performing a role in user authentication
CN116074615B (zh) * 2023-03-07 2023-09-08 荣耀终端有限公司 摄像头控制方法、装置及终端设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008210115A (ja) * 2007-02-26 2008-09-11 Nec Corp リモートコンピュータ上でローカル端末のusbデバイスを操作するシステム、その方法及びそのプログラム
US20090060452A1 (en) * 2007-09-04 2009-03-05 Apple Inc. Display of Video Subtitles
US20100271302A1 (en) * 2008-12-31 2010-10-28 Trevor Pering Sensor fusion to combine sensor input data from multiple devices into one input stream
US20110205965A1 (en) * 2009-11-19 2011-08-25 Sprigg Stephen A Virtual peripheral hub device and system
JP2013250681A (ja) * 2012-05-30 2013-12-12 Nec Corp 情報処理装置、および携帯通信端末、それらの制御方法ならびに制御プログラム
US20140071147A1 (en) * 2012-09-10 2014-03-13 Intel Corporation Providing Support for Display Articulation-Related Applications

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7436300B2 (en) * 2004-11-12 2008-10-14 Microsoft Corporation Wireless device support for electronic devices
US8279471B2 (en) * 2008-08-28 2012-10-02 Sharp Laboratories Of America, Inc. Virtual USB over NFC printing method and system
US20110191787A1 (en) * 2010-02-02 2011-08-04 Sun Microsystems, Inc. System and method for providing sensor data from embedded device to software development environment
KR101080674B1 (ko) * 2011-03-09 2011-11-08 (주)자람테크놀로지 입력 인터페이스를 제공하는 usb 장치 및 그 인터페이스 제공 방법
US9116821B2 (en) * 2011-03-23 2015-08-25 Avocent Corporation Method and system for USB device virtualization
US9389681B2 (en) * 2011-12-19 2016-07-12 Microsoft Technology Licensing, Llc Sensor fusion interface for multiple sensor input
US9838651B2 (en) * 2012-08-10 2017-12-05 Logitech Europe S.A. Wireless video camera and connection methods including multiple video or audio streams
US9417704B1 (en) * 2014-03-18 2016-08-16 Google Inc. Gesture onset detection on multiple devices

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008210115A (ja) * 2007-02-26 2008-09-11 Nec Corp リモートコンピュータ上でローカル端末のusbデバイスを操作するシステム、その方法及びそのプログラム
US20090060452A1 (en) * 2007-09-04 2009-03-05 Apple Inc. Display of Video Subtitles
US20100271302A1 (en) * 2008-12-31 2010-10-28 Trevor Pering Sensor fusion to combine sensor input data from multiple devices into one input stream
US20110205965A1 (en) * 2009-11-19 2011-08-25 Sprigg Stephen A Virtual peripheral hub device and system
JP2013250681A (ja) * 2012-05-30 2013-12-12 Nec Corp 情報処理装置、および携帯通信端末、それらの制御方法ならびに制御プログラム
EP2858029A1 (en) * 2012-05-30 2015-04-08 NEC Corporation Information processing device, mobile communication terminal, and control method and control program therefor
US20150208921A1 (en) * 2012-05-30 2015-07-30 Nec Corporation Information processing apparatus, portable communication terminal, and control methods and control programs thereof
US20140071147A1 (en) * 2012-09-10 2014-03-13 Intel Corporation Providing Support for Display Articulation-Related Applications

Also Published As

Publication number Publication date
JP6250842B2 (ja) 2017-12-20
WO2015148078A1 (en) 2015-10-01
EP3123701A1 (en) 2017-02-01
EP3123701A4 (en) 2017-12-06
TW201603547A (zh) 2016-01-16
TWI628938B (zh) 2018-07-01
US20150281409A1 (en) 2015-10-01

Similar Documents

Publication Publication Date Title
JP6250842B2 (ja) Usbオーバーipを用いた、別のデバイスとの非usbセンサの共有
US10884767B2 (en) Service processing methods and devices
US8966508B2 (en) Method for executing hybrid web application and apparatus therefor
US9727507B2 (en) USB device remote control method and system
US11693707B2 (en) Electronic device for executing multiple operating systems and method of controlling same
KR102631745B1 (ko) 이종 운영체제의 실행을 제어하기 위한 방법, 이를 위한 전자 장치 및 저장 매체
WO2020009545A1 (en) System and method for device audio
WO2014051785A1 (en) Systems and methods for capability sharing over a communicative link
US10120697B2 (en) Mobile device support for sensors in peripherals
US20140351833A1 (en) Multi-computing environment operating on a single native operating system
CN102937963A (zh) 使用协议处理程序的模板和服务器内容下载
CN111654539B (zh) 基于云原生的物联网操作系统构建方法、系统及电子设备
KR20160082229A (ko) 프로세싱을 수행하는 컴퓨팅 시스템 및 그것의 동작 방법
US11836503B2 (en) Electronic device for executing heterogeneous operating systems and method therefor
CN106922189B (zh) 设备代理装置及其控制方法
KR101412310B1 (ko) 가상단말 클라우드 네트워크 시스템 및 이기종 단말 플랫폼 어플리케이션 제공방법
KR20210101075A (ko) 전자 장치 및 전자 장치의 클립 보드 운용 방법
US20130080659A1 (en) Device and method for controlling usb terminal
US9967410B2 (en) Mobile device, computer device and image control method thereof for editing image via undefined image processing function
KR102666045B1 (ko) 클라우드 서비스를 제공하는 전자 장치 및 그 동작 방법
WO2017082570A1 (ko) 전자 장치 및 이의 제어 방법
KR101430927B1 (ko) 클라우드 스트리밍 기반의 가상 api 제공 방법, 시스템, 서비스장치 및 클라이언트 단말기
US20210342308A1 (en) System and method for performing context aware operating file system virtualization
US20230418624A1 (en) File opening optimization
US20220309253A1 (en) Method for providing remote service capable of multilingual input and server performing the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170718

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171016

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171024

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171122

R150 Certificate of patent or registration of utility model

Ref document number: 6250842

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees