JP7090095B2 - デバイスの相互運用及び同期化のためのシステム及び方法 - Google Patents

デバイスの相互運用及び同期化のためのシステム及び方法 Download PDF

Info

Publication number
JP7090095B2
JP7090095B2 JP2019546110A JP2019546110A JP7090095B2 JP 7090095 B2 JP7090095 B2 JP 7090095B2 JP 2019546110 A JP2019546110 A JP 2019546110A JP 2019546110 A JP2019546110 A JP 2019546110A JP 7090095 B2 JP7090095 B2 JP 7090095B2
Authority
JP
Japan
Prior art keywords
user
user device
connection
operating system
communication module
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.)
Active
Application number
JP2019546110A
Other languages
English (en)
Other versions
JP2019537812A (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 JP2019537812A publication Critical patent/JP2019537812A/ja
Application granted granted Critical
Publication of JP7090095B2 publication Critical patent/JP7090095B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)

Description

本開示は、ユーザデバイスのためのデバイス相互運用に関する。
関連出願の相互参照
本出願は、2016年10月26日に出願された米国特許仮出願第62/413,169号の恩恵及びこの米国特許仮出願に対する優先権を請求し、この米国特許仮出願は、参照によって本明細書にその全体が組み込まれている。
ユーザに関連付けられた1つ以上のユーザデバイスのためのデバイス相互運用システムであって、前記1つ以上のユーザデバイスが第1のユーザデバイスを含んでおり、前記デバイス相互運用システムが、通信モジュールであって、第1の接続が前記第1のユーザデバイスと前記通信モジュールの間で確立される、通信モジュールと、前記デバイス相互運用システムに関連付けられ、前記通信モジュールに結合されたストレージであって、前記ストレージがオペレーティングシステム、1つ以上のプログラム、及びユーザに関連付けられたデータを格納し、さらに前記オペレーティングシステムが前記第1の接続を介して前記第1のユーザデバイスによって起動される、ストレージと、前記デバイス相互運用システムをサポートするための1つ以上のプロセッサとを備えている。
ユーザに関連付けられた1つ以上のユーザデバイスのデバイス相互運用のための方法であって、前記1つ以上のユーザデバイスが第1のユーザデバイスを含んでおり、前記方法が、デバイス相互運用システム内の通信モジュールを介して前記第1のユーザデバイスとデバイス相互運用システムの間で第1の接続を確立することと、デバイス相互運用システム内のストレージを使用して、オペレーティングシステム、1つ以上のプログラム、及びユーザに関連付けられたデータを格納することと、前記第1の接続を介して前記第1のユーザデバイスによって前記オペレーティングシステムを起動することとを含んでいる。
本開示の前述の態様及び追加の態様並びに実施形態は、図面を参照して行われるさまざまな実施形態及び/又は態様の詳細な説明を考慮して当業者に明らかになり、次に、それらの図面の簡単な説明が行われる。
本開示の前述の優位性及びその他の優位性は、以下の詳細な説明を読み、図面を参照したときに、明らかになるであろう。
1つ以上のユーザデバイスを使用しているユーザの状況を示す図である。 ユーザデバイスと連動しているデバイス相互運用システムの例を示す図である。 デバイス相互運用システムの例示的なアーキテクチャを示す図である。 デバイス相互運用システムを実行するための装置の例を示す図である。 デバイス相互運用システムがユーザデバイスに統合された場合の例を示す図である。 デバイス相互運用システムがユーザデバイス上でアプリケーションとして実行される場合の例を示す図である。 「スタンドアロン」モードと「相互運用システム」モードの間でのユーザデバイスの切り替え性のための例示的なアルゴリズムを示す図である。 起動時に異なるハードウェア構成間でオペレーティングシステムを切り替えるための例示的なアルゴリズムを示す図である。 キャッシング動作の実施形態例を示す図である。 データをキャッシュに書き込む前に追加チェックが実行されるキャッシングの実施形態例を示す図である。 キャッシュにプリフェッチする実施形態例を示す図である。
本開示は、さまざまな変形及び代替の形態の影響を受けやすいが、特定の実施形態又は実装が、図面において例として示されており、本明細書において詳細に説明される。しかし、本開示が、開示された特定の形態に限定されるよう意図されていないということが理解されるべきである。むしろ本開示は、添付の特許請求の範囲によって規定された発明の思想及び範囲に含まれるすべての変形、同等のもの、及び代替手段を対象にする。
人間によって所有又は操作されるデバイスの数は、著しく増大している。通常、人間は次のような複数のコンピューティングデバイスを所有する。
- スマートフォン、
- タブレット、
- デスクトップ、
- ラップトップ、
- ゲームコンソール、
- スマートウォッチ/バンド、及び
- スマートグラス。
加えて、多くのその他のデバイス及びアイテムが「スマート」になっており、すなわち、それらのデバイス及びアイテムの計算能力及び処理能力が増大しており、それらはネットワーク使用可能になっている。それらのデバイス及びアイテムの例としては、以下が挙げられる。
- 乗用車及びトラックなどの車両、
- テレビ(TV:Television)セット、
- 冷蔵庫及び電子レンジなどの台所用器具、
- カメラ、
- FitBit(登録商標)などのフィットネスデバイス、
- 血圧計及び心拍数モニターなどの医療機器、
- 空調装置、及び
- スマートホームシステム。
さらに、「モノのインターネット」(IoT:Internet of Things)も著しく増大している。IoTとは、互いに、及び他のコンピューティングデバイスと相互接続された、消費者デバイス及び産業用デバイスのネットワークのことである。
これらはすべて、計算能力及びネットワーク能力を有し、特定のユーザに関連付けられたデバイスの数が、急速に増大していることを意味している。
図1は、この状況を示している。図1では、ユーザデバイス101-1~101-Nが、ユーザ100に関連付けられたデバイスを含んでいる。これらのデバイスの例としては、電子コンピューティングデバイス並びに前述したデバイス及びアイテムが挙げられる。
図1に示された状況を考えると、ユーザ100などのユーザは、さまざまな課題に直面する。第1に、さまざまなデバイスからのドキュメント及びデータを、互いに同期させる必要がある。通常、この同期は、例えば以下を使用して実行される。
- ユニバーサルシリアルバス(USB:Universal Serial Bus)フラッシュドライブ及び取り外し可能ハードドライブなどのポータブルデータストレージデバイス、及び
- ネットワーク又は「クラウド」ベースの技術。
これらのドキュメント及びデータの同期化技術には、欠陥がある。クラウドの接続は、常に存在するとは限らない。接続は、存在する場合でも、断続的であったり、又は低速であったりすることがある。クラウドベースの技術では、プライバシーが問題になることもある。
第2に、同期化は、異なるオペレーティングシステム(OS:operating systems)及び異なるプラットフォームを実行している各コンピューティングデバイス及び消費者のアイテムに起因して、不十分であったり不完全であったりすることがある。図1を参照すると、ユーザデバイス101-1~101-Nは、それら自身の処理能力及び記憶能力を有しており、異なるOS、プラットフォーム、及びソフトウェアを実行することができる。その結果、ユーザは、異なるデバイス上の異なる環境に慣れなければならず、複数のデバイスで同じ作業(例えば、アプリケーションのインストール、設定のカスタマイズ、又はソフトウェアの更新若しくはウイルス対策のスキャンなどのサービス作業の実行)を繰り返さなければならない。互換性が問題になることもある。一例として、ユーザ100が、まずユーザデバイス101-1を使用し、次にユーザデバイス101-2を使用してあるファイルを編集した場合、結果としてそのファイルは、ユーザデバイス101-1及び101-2にインストールされた編集ソフトウェアのバージョンの違いに起因して、破損することがある。
したがって、「スマート」技術の継続的な発達及び採用、並びにこれらのユーザデバイスの相互運用を保証するために、デバイスの同期化におけるこれらの欠陥に対処する必要がある。
本明細書の残りの部分では、前述した問題に対処するデバイス相互運用のためのシステム及び方法について詳述する。そのようなデバイス相互運用システム200の例示的なアーキテクチャが、図2A及び2Bに示されている。図2Aでは、デバイス相互運用システム200と1つ以上のユーザデバイス101-1、101-2、101-3~101-Nとの間の1つ以上の接続201-1、201-2、201-3~201-Nが、必要に応じて確立される。一実施形態では、1つ以上のユーザデバイス101-1、101-2、101-3~101-Nが、接続の確立を開始する。別の実施形態では、デバイス相互運用システム200が、接続の確立を開始する。
デバイス相互運用システム200は、その機能に必要な複数のコンポーネントを備える。デバイス相互運用システム200の一実施形態の図が、図2Bに示されている。図2Bに示されているように、デバイス相互運用システム200は、バッテリー211、バッテリー充電モジュール221、ストレージ212、1つ以上のプロセッサ215、及び通信モジュール213を備えている。
1つ以上のプロセッサ215は、デバイス相互運用システム200の他の要素を支援する機能を実行する。それらの機能の例としては、以下が挙げられる。
- デバイス相互運用システム200の要素間の相互接続を維持すること、
- デバイス相互運用システム200の全体的なセキュリティ維持すること、及び
- デバイス相互運用システム200の動作に必要なサービス機能。
通信モジュール213は、1つ以上の接続201-1~201-Nの確立に参加する。通信モジュール213は、1つ以上のユーザデバイス101-1~101-Nへの1つ以上の接続201-1~201-Nを維持するようにも動作する。通信モジュール213は、接続201-1~201-Nを保護するために必要な処理を実行するようにも動作する。それらの処理の例としては、暗号化処理及びアクセス処理が挙げられる。一実施形態では、通信モジュール213は、1つ以上の接続201-1~201-Nに関連する消費電力を管理し、最適化することも行う。例えば、通信モジュール213は、ユーザデバイス101-1などのユーザデバイスからの距離に基づいて、1つ以上の接続201-1~201-Nに使用される送信電力を調整する。
バッテリー211は、デバイス相互運用システム200の動作のための電力を供給する。充電モジュール221は、外部電源を使用してバッテリー211を充電できるようにする。一実施形態では、充電モジュール221は、ワイヤレス充電を可能にする。
図2Bに示されているように、ストレージ212は、通信モジュール213に結合され、デバイス相互運用システム200の機能に必要なOS214、プログラム及びデータ216を格納するために使用される。例えば、ユーザの選択、アプリケーション、並びにユーザのドキュメント及びデータが、ストレージ212に格納されてもよい。以下では、OS214の機能について詳細に説明する。一実施形態では、ストレージ212は、SSD(半導体ドライブ:Solid State Drive)又は組み込みマルチメディアコントローラ(eMMC:embedded MultiMedia Controller)フラッシュメモリ技術などの、エネルギー効率の良いストレージ技術を使用して構築される。一実施形態では、ストレージ212に格納される情報は暗号化される。これによって、悪意のある人が格納された情報にアクセスするリスクを低減する。一実施形態では、高度暗号化標準(AES:Advanced Encryption Standard)が暗号化に使用される。
図2A及び2Bを参照すると、ユーザデバイス101-1のネイティブOSが読み込まれる前に、デバイス相互運用システム200とユーザデバイス101-1の間の接続202-1が確立される。ユーザデバイス101-1との接続201-1が確立された後に、ユーザデバイス101-1上でストレージ212からOS214が起動し、実行される。その後、ユーザデバイス101-1は、必要に応じて、ストレージ212に格納されたデータ及びプログラムコードにアクセスできる。OS214のプログラムコード及びインストールされたアプリケーションが、デバイス相互運用システム200が接続されているユーザデバイス上で実行され、このユーザデバイスの処理能力を、その動作に使用する。例えば、図2Aを参照すると、デバイス相互運用システム200がユーザデバイス101-1に接続された場合、必要に応じてユーザデバイス101-1の処理能力及びメモリを使用して、ユーザデバイス101-1上でプログラムコードが実行される。接続201-1の確立及びOS214のその後の起動は、さまざまな方法で実行され、下で詳細に説明される。
一実施形態では、接続201-1~201-Nのうちの少なくとも1つは、直接接続である。例えば、直接接続は、直接無線接続であることができる。
一部の実施形態では、ユーザデバイス101-1は、直接無線接続を介してデバイス相互運用システム200から起動することを支援する能力を提供するファームウェアを備える。例えば、一実施形態では、ユーザデバイス101-1は、Media Agnostic USB仕様をサポートする基本入出力システム(BIOS:Basic Input Output System)又はユニファイドエクステンシブルファームウェアインターフェイス(UEFI:Unified Extensible Firmware Interface)を備える。これによって、ユーザデバイス101-1が、直接無線接続を経由してUSBプロトコルを使用できるようになり、ユーザデバイス101-1上でのOS214の起動及びデバイス相互運用システム200とユーザデバイス101-1の間でのデータ転送を容易にする。
一部の実施形態では、ユーザデバイス101-1は、直接無線接続を介してデバイス相互運用システム200から起動することを支援する能力を提供するファームウェアを備えない。その場合、仲介を使用する必要がある。例えば、一実施形態では、デバイス相互運用システム200が、ユーザデバイス101-1上のUSBポートに接続された小型USBドングルに無線で結合される。次に、小型USBドングルが、ユーザデバイス101-1に接続されたUSBフラッシュドライブをシミュレートする。その後、ユーザデバイス101-1のスイッチが入れられたときに、小型USBドングルとデバイス相互運用システム200の間で直接無線接続が確立される。次に、OS214が、USBポートに接続された通常のUSBフラッシュドライブであるかのように、ユーザデバイス101-1上でストレージ212から起動される。一実施形態では、ユーザは、ユーザデバイス101-1がデバイス相互運用システム200から起動するように、ユーザデバイス101-1のBIOS又はUEFIの設定を変更しなければならない。
別の実施形態では、直接接続は直接有線接続である。さらに別の実施形態では、少なくとも1つの直接有線接続が、例えばUSB接続を含む。さらに別の実施形態では、直接有線接続は、ドッキングによって容易にされる接続である。さらに別の実施形態では、接続201-1~201-Nのうちの少なくとも1つが直接無線であり、接続201-1~201-Nのうちの少なくとも1つが直接有線である。
ユーザデバイス101-1とデバイス相互運用システム200の間の接続201-1がドッキングによって容易にされる場合、さらに別の実施形態も可能になる。一実施形態では、デバイス相互運用システム200がインストールされているデバイス及びユーザデバイス101-1が、両方とも直接ドッキング能力(例えば、ドッキングポートなど)を有している。その場合、デバイス相互運用システム200は、それらの直接ドッキング能力によってユーザデバイス101-1と情報をやりとりする。さらに別の実施形態では、デバイス相互運用システム200がインストールされているデバイスが、ユーザデバイス101-1に接続されたドッキングステーションに結合される。さらに別の実施形態では、ドッキングステーションが、例えばUSBケーブルによってユーザデバイス101-1に接続されたときに、ユーザデバイス101-1が、デバイス相互運用システム200がインストールされているデバイスに接続されたドッキングステーションを、接続された外部USBドライブとして認識する。一実施形態では、ユーザは、ユーザデバイス101-1がUSB接続デバイスから起動するように、ユーザデバイス101-1のBIOS又はUEFIの設定を変更しなければならない。さらに別の実施形態では、ドッキングステーションが、デバイス相互運用システム200がインストールされているデバイスを充電する。
上記では、接続201-1~201-Nが2つのデバイス間の直接接続である状況を説明したが、当業者は間接接続も使用できるということを知っているであろう。別の実施形態では、接続201-1~201-Nのうちの少なくとも1つは、間接接続である。それらの間接接続は、例えば、次のうちの1つ以上を含む。
- ローカルエリアネットワーク(LAN:Local Area Network)によって容易にされる接続、又は
- クラウドベースのサービスによって容易にされる接続。
さらに別の実施形態では、前述した接続タイプのうちの少なくとも2つが利用可能である場合、複数の接続タイプからの選択が、接続201-1~201-Nのうちの少なくとも1つに対して自動的に実行される。一実施形態では、この選択は次の要因に基づく。
- 接続速度
- 接続待ち時間
- データ送信コスト
- ユーザの選択
さらに別の実施形態では、接続が失われた場合、別のタイプの直接接続又は間接接続が自動的に選択される。
さらに別の実施形態では、少なくとも1つの接続が保護される。この保護は、例えば以下によって実行される。
- ワイファイプロテクテッドアクセス(WPA2:Wi-Fi Protected Access)などの技術を使用する暗号化、及び、
- 接続が最初に確立されるときに、接続の両方の端点でアクセス認証を要求すること。これは、例えば、パスワード、及び近距離無線通信(NFC:near field communication)又はワイファイプロテクテッドセットアップ(WPS:Wi-Fi Protected Setup)のようなアルゴリズムなどの技術を使用して実行される。
少なくとも1つの接続が確保される実施形態では、接続を確立する前に、端点で(すなわち、デバイス相互運用システム200とユーザデバイス101-1の間で)認証が実行される。
デバイス相互運用システム200は、さまざまな方法で実装され得る。一実施形態では、デバイス相互運用システム200は、図2Cに示されているような装置210などの独立した装置を使用して実装される。その場合、装置210との1つ以上の接続201-1~201-Nが確立される。
別の実施形態では、デバイス相互運用システム200は、ユーザデバイス101-1~101-Nのうちの1つへの統合によってインストールされる。例えば、図2Dに示されているように、デバイス相互運用システム200はユーザデバイス101-1に統合される。この統合は、例えば、デバイス相互運用システム200をユーザデバイス101-1のファームウェアモジュールとして実装することによって実現される。その場合、デバイス相互運用システム200は、ユーザデバイス101-1のバッテリー、ストレージ、通信モジュール、プロセッサ、及びその他の能力のうちの1つ以上を、バッテリー211、ストレージ212、1つ以上のプロセッサ215、及び通信モジュール213の前述した使用に類似する方法で、その動作のために使用する。OS214は、ユーザデバイス101-1のストレージ内に格納される。その後、ユーザデバイス101-1が、ネイティブOSの代わりにOS214を実行する。図2Dに示されているように、ユーザデバイス101-1と他のデバイス101-2~101-Nのうちの少なくとも1つとの間で接続201-2~201-Nのうちの少なくとも1つが確立された場合、デバイス相互運用システム200が、接続されたユーザデバイスが次のことを実行できるようにする。
- ユーザデバイス101-1のストレージに格納されているOS214を起動すること、及び、
- ユーザデバイス101-1のストレージに格納されているプログラム及びデータ216を使用すること。
さらに別の実施形態では、ユーザデバイス101-1に接続された異なるデバイス上でOS214が実行されているときに、デバイス相互運用システム200が統合されたユーザデバイス101-1の一部のハードウェアコンポーネントが、OS214によって、接続された外部デバイスとして認識されて使用される。例えば、ユーザデバイス101-1がスマートフォンである場合、ユーザデバイス101-1に接続されたユーザデバイス101-2上でOS214が実行されているときに、マイクロホン、センサー、移動体通信モジュール、及びディスプレイなどの、ユーザデバイス101-1のハードウェアコンポーネントが、OS214によって外部デバイスとしてとして使用される。
さらに別の実施形態では、デバイス相互運用システム200が、ユーザデバイス101-1~101-Nのうちの1つ(例えば、ユーザデバイス101)で実行される、インストールされたアプリケーション又は「アプリ」として実装される。例えば、図2Eに示されているように、デバイス相互運用システム200はユーザデバイス101-1上でアプリとして実行される。その場合、デバイス相互運用システム200は、図2Dにおいて前述した統合された場合と同様に、ユーザデバイス101-1のバッテリー、ストレージ、通信モジュール、プロセッサ、及びその他の能力のうちの1つ以上を動作のために使用する。前述した場合と同様に、ユーザデバイスとの接続が確立された場合、デバイス相互運用システム200は、ユーザデバイス101-1のストレージに格納されたOS214を起動する能力を、接続されたユーザデバイスに与える。別の実施形態では、アプリが、ユーザデバイス101-2上でOS214を起動するために使用されるユーザデバイス101-1のストレージ212に格納されたデータに対する必要なレベルのアクセス権を提供できない場合、相互運用システム200は、次のいずれかの独立したイメージも含む。
- OS214のコピー、又は、
- コンポーネントの一部。
このイメージは、ユーザデバイス101-2上でOSを起動するために、そのままで使用されるか、又はユーザデバイス101-1のストレージに格納されたユーザデバイス101-1のOSのコンポーネントと共に使用される。前述した場合と同様に、さらに別の実施形態では、ユーザデバイス101-1に接続された異なるデバイス上でOS214が実行されているときに、ユーザデバイス101-1の一部のハードウェアコンポーネントが、OS214によって、接続された外部デバイスとして認識されて使用される。
デバイス相互運用システム200が、ユーザデバイス101-1への統合によって、又はユーザデバイス101-1上のアプリとしてインストールされる実施形態の一部では、通信モジュール213の一部として、性能及び/又はエネルギー効率を改善するために、外部無線アダプタがユーザデバイス101-1に追加され、ユーザデバイス101-1では利用できない追加の通信能力を提供する。この外部無線アダプタは、例えば、ユーザデバイス101-1上にすでに存在する統合されたコントローラと連動する。その場合、通信モジュール213は、ユーザデバイス101-1の統合されたコントローラ及び外部無線アダプタを備える。例えば、WiGig通信技術又はLi-Fi通信技術に基づくUSB無線アダプタが、ユーザデバイス101-1のUSBポートに接続される。この接続された無線アダプタは、ユーザデバイス101-1にすでに存在する統合されたUSBコントローラと情報をやりとりする。その場合、通信モジュール213は、この統合されたUSBコントローラ及び接続されたUSB無線アダプタを備える。これらの追加されたコンポーネントは、最初はユーザデバイス101-1上で利用できない追加の通信技術を提供し、性能及び/又はエネルギー効率を改善する。
以下では、デバイス相互運用システム200の動作の例について、ユーザデバイス(具体的には、ユーザデバイス101-1)を参照して詳細に説明する。下記の説明は、例えば以下を含むさまざまな状況に適用できる。
- 装置210などの装置にインストールされたデバイス相互運用システム200。
- デバイス相互運用システム200が、ユーザデバイス101-1とは異なるユーザデバイス(例えば、ユーザデバイス101-2~101-N)のうちの1つへの統合によってインストールされる。
- デバイス相互運用システム200が、ユーザデバイス101-1とは異なるユーザデバイス(例えば、ユーザデバイス101-2~101-N)のうちの1つに、アプリとしてインストールされる。
さらに、ユーザデバイス101-1が「スタンドアロン」モード又は「デバイス相互運用システム」モードのどちらで動作するかを判定する必要がある。スタンドアロンモードでは、ユーザデバイス101-1はネイティブOSを実行する。相互運用システムモードでは、ユーザデバイス101-1は、デバイス相互運用システム200に接続されて、OS214を実行する。さらに別の実施形態では、ユーザデバイス101-1は、スタンドアロンモードと相互運用システムモードの間で切り替え可能である。
スタンドアロンモードと相互運用システムモードの間で切り替えるための例示的なアルゴリズムは、以下を含む。
- 接続201-1が保護された接続である実施形態における、接続201-1の確立。
- スタンドアロンモード又は相互運用モードのいずれが使用されるかに応じた、その後の適切なOSの起動。
これらが、図3Aに示されている。
図3Aのステップ301で、ユーザデバイス101-1のスイッチが入れられる。ステップ302で、接続201-1を確立する前に、ユーザデバイス101-1が、相互運用システムモードに設定する選択肢をユーザに提示する。
ユーザが、ステップ303で、既定の期間内に相互運用システムモードに設定する選択肢を受け入れた場合、ステップ304で、ユーザが認証を実行する。一実施形態では、ステップ304で、ユーザが、デバイス相互運用システム200に固有の一意の文字列(パスワード又はパスフレーズ)を入力する。別の実施形態では、ステップ304で、ユーザがOS214に固有のログイン名及びパスワードを入力する。さらに別の実施形態では、ユーザは、例えばFacebook(登録商標)、LinkedIn(登録商標)、Twitter(登録商標)、Google(登録商標)、Gmail(登録商標)などの、別のソーシャルメディアサイト又はWebメールサイトからのログインの詳細を使用する。認証のための追加の手順も可能である。別の実施形態では、ユーザは、画像内の文字、数字、及び記号の組み合わせを認識し、その組み合わせをボックスに入力するようさらに要求される。そのようなテストの例は、コンピュータ及び人間を区別するための完全に自動化された公開チューリングテスト(CAPTCHA:Completely Automated Public Turing test to tell Computers and Humans Apart)である。別の実施形態では、ユーザは、そのユーザのみが答えを知っている秘密の質問を尋ねられる。さらに別の実施形態では、ユーザは、生年月日及び自宅の住所などの追加の個人情報を要求されることがある。別の実施形態では、ユーザが、彼自身/彼女自身の写真を撮るように要求され、デバイス相互運用システム200が、その画像を格納済みの画像と照合する。さらに別の実施形態では、指紋のスキャンなどのその他の生体測定が使用される。認証データは、事前に共有される鍵として使用され、暗号化された接続のための認証/暗号鍵が構築される。
ステップ306で、ユーザデバイスが、今後使用するために認証/暗号鍵及び接続パラメータを保存する。
ステップ307で、接続201-1が確立される。
ステップ308で、OS214がユーザデバイス101-1上で起動する。
ステップ309で、ユーザデバイス101-1が、デバイス相互運用システムモードで動作する。
ステップ303で、ユーザが相互運用システムモードに設定する選択肢を受け入れない場合、ステップ305で、ユーザデバイス101-1が、相互運用システムモードにすでに設定されているかどうかを判定する。ステップ305で、ユーザデバイス101-1がすでに設定されている場合、ステップ310で、ユーザデバイスが、格納された認証鍵及びパラメータを使用して、デバイス相互運用システム200との接続を確立しようと試みる。
ステップ310に続いて、ステップ311で接続確立が成功した場合、OS214がユーザデバイス101-1上で起動し(ステップ308)、ユーザデバイス101-1がデバイス相互運用システムモードで動作する(ステップ309)。
ステップ311で接続が成功しなかった場合、ステップ312で、ユーザデバイス101-1がそれ自身のOSを読み込む。ステップ313で、ユーザデバイス101-1が、スタンドアロンモードで動作する。
ステップ305で、ユーザデバイスがまだ設定されていない場合、ユーザデバイス101-1がそれ自身のOSを読み込み(ステップ312)、スタンドアロンモードで動作する(ステップ313)。
一実施形態では、動作速度を改善するため、及び接続201-1などの接続を介して送信されるデータ量を減らすために、OS214のスワップファイル又はスワップパーティションが、ユーザデバイス101-1のストレージに配置される。
一実施形態では、動作速度を改善するために、例えば、接続されたユーザデバイスのストレージの一部をキャッシュ用に確保することによって、キャッシングが実行される。一実施形態では、OS214が起動されるときに、OS214は、接続されたユーザデバイス上にキャッシュが存在するかどうかを判定する。キャッシング動作は、下でさらに詳細に説明される。
一実施形態では、デバイス相互運用システム200に接続されたユーザデバイスのローカルストレージの少なくともある部分が、この特定のデバイスのみでの使用を目的とするデータを格納するために、OS214によって使用される。その1つの例は、ユーザデバイス101-1が、特にビデオゲームなどの多くのリソースを要求するアプリケーションを実行するために、ユーザ100によって使用される、デスクトップである場合である。その場合、多くのリソースを要求するアプリケーションを実行するために必要なデータの一部が、ストレージ212の代わりに、ユーザデバイス101-1のローカルストレージに格納される。さらに別の実施形態では、使用されるユーザデバイス101-1のストレージの一部が、OS214によって、接続された追加ドライブとして認識され、それに応じて提示される。
一実施形態では、デバイス相互運用システム200に接続されたユーザデバイスのローカルストレージ容量の一部が、OS214によって、ストレージ212に格納されたデータの少なくとも一部のバックアップを実行するために使用される。バックアップされるデータ量は、ユーザデバイスのローカルストレージの使用可能な容量によって決まる。さらに別の実施形態では、バックアップは、複数のユーザデバイスを使用して実行される。すなわち、データが、ストレージ212から、複数のユーザデバイスのそれぞれに対応する各ローカルストレージ容量の一部にバックアップされる。
さらに別の実施形態では、キャッシング、スワッピング、ストレージの拡張、バックアップ、又はこれらの目的の任意の組み合わせのために、ユーザデバイス101-1のストレージに格納されるデータの少なくとも一部が、ユーザデバイス101-1のストレージ上の1つ以上のパーティション設定において配置される。別の実施形態では、キャッシング、ストレージの拡張、バックアップ、又はこれらの目的の任意の組み合わせのために、ユーザデバイス101-1のストレージに格納されるデータが、ユーザデバイス101-1の既存のパーティションに作成された1つ以上のファイルコンテナに配置される。これによって、ユーザデバイス101-1のストレージのデータを再分割する必要がなくなり、消去する必要もなくなる。
さらに別の実施形態では、キャッシング、スワッピング、ストレージの拡張、バックアップ、又はこれらの目的の任意の組み合わせのために、ユーザデバイス101-1のストレージに格納されるデータが、暗号化される。OS214によって暗号解読鍵が格納されて管理され、データへの不正なアクセスを防ぐ。
一実施形態では、OS214は、図3Aのステップ308におけるなどの起動中に、異なるハードウェア構成を切り替えることができる。異なるハードウェア構成を切り替えるための例示的なアルゴリズムが、図3Bに示されている。
OS214がユーザデバイス101-1などのユーザデバイス上で起動された場合、ステップ3B-01で、OS214がそのユーザデバイスを識別する。ステップ3B-02で、OS214が、識別されたユーザデバイスに対応する構成のセットをストレージ212に格納しているかどうかを判定する。格納している場合、ステップ3B-03で、OS214が、識別されたユーザデバイス用のドライバ及び設定の正しいセットを使用する。次に、ステップ3B-07で、ユーザデバイスがデバイス相互運用システムモードで動作する。
ステップ3B-02で、OS214が、識別されたユーザデバイスに対応する構成のセットをストレージ212内で検出できない場合、ステップ3B-04で、OS214が、このユーザデバイス上のすべてのハードウェアを検出し、必要なドライバを自動的にインストールする。
ステップ3B-05で、OS214が、ユーザデバイスのストレージがOS214の機能にどのように使用されるかを決定するために、ユーザに対して、1つ以上の質問に対する1つ以上の回答を入力するよう要求する。質問の例としては、以下が挙げられる。
- ユーザデバイスのストレージはキャッシングに使用されるか。
- ユーザデバイスのストレージはバックアップに使用されるか。
- ユーザデバイスのストレージは、OS214の使用のためのOS214用の追加のストレージ容量を提供するために使用されるか。
- 上で指定された目的のために、どれくらいの容量が確保されるか。
ステップ3B-06で、OS214が、構成のセットを保存し、必要に応じて再起動した後に、ステップ3B-07で、デバイス相互運用システムモードで動作する。
前述したように、キャッシング動作の実施形態例が、図4A、4B、及び4Cを参照して以下で詳細に説明される。
図4Aは、受信された読み取り又は書き込み動作要求がOS214によって処理される場合の例示的なフローを示している。この例では、OS214は、デバイス相互運用システム200がインストールされているデバイスに格納される。このデバイスは、ユーザデバイス101-1に接続される。また、キャッシュがユーザデバイス101-1上で設定されている。
ステップ401で、OS214によって要求タイプが決定される。
要求が読み取り動作用であるということが決定された場合、ステップ403で、OS214が、キャッシュが要求されたデータを含んでいるかどうかを判定する。一実施形態では、OS214が、キャッシュサービスデータベースにアクセスし、ユーザデバイス101-1上のキャッシュ設定が要求されたデータを含んでいるかどうかを判定する。キャッシュサービスデータベースは、ユーザデバイス101-1~101-Nのキャッシュのうちの少なくとも1つに格納されたバージョンのファイルの変更時刻、及びストレージ212に格納された元のバージョンのファイルの変更時刻を表す。キャッシュが要求されたデータを含んでいるかどうかの判定は、それらの変更時刻の比較によって実行される。キャッシュサービスデータベースは、ストレージ212に格納される。
表1に、キャッシュサービスデータベースの例を示す。
Figure 0007090095000001
表1において、列1C-01はファイルを表している。各ファイルは、表1の個別の行に対応する。表1を参照すると、ファイル1が行1R-01に割り当てられており、ファイル2が行1R-02に割り当てられている、などとなっている。
表1の列1C-02は、ストレージ212及びユーザデバイス101-1~101-N上のキャッシュのうちの少なくとも1つに格納された元のバージョンのファイルの変更時刻を表している。さらに表1を参照すると、
- セル[1R-01, 1C-02]は、ストレージ212内の元のバージョンのファイル1の変更時刻を表している。
- セル[1R-02, 1C-02]は、ストレージ212内の元のバージョンのファイル2の変更時刻を表している。
列1C-03及び1C-04は、各キャッシュ内のバージョンのファイルの変更時刻を表している。例えば、列1C-03は、ユーザデバイス101-1に格納されたキャッシュ1に対応しており、1C-04は、ユーザデバイス101-2に格納されたキャッシュ2に対応している、などとなる。したがって、
- セル[1R-01, 1C-03]は、キャッシュ1内のバージョンのファイル1の変更時刻を表している。
- セル[1R-01, 1C-04]は、キャッシュ2内のバージョンのファイル1の変更時刻を表している。
- セル[1R-02, 1C-03]は、キャッシュ1内のバージョンのファイル2の変更時刻を表している。
- セル[1R-02, 1C-04]は、キャッシュ2内のバージョンのファイル2の変更時刻を表している。
キャッシュサービスデータベース内の時刻を表すために使用できるさまざまな形式が存在する。その形式の一例は、日/月/年の後に時間:分:秒が続く2桁の表現、すなわち「dd/mm/yy HH:MM:SS」である。
キャッシュサービスデータベースに含めることもできるさまざまなその他の情報が存在する。例えば、キャッシュサービスデータベースは、ファイルサイズ及びデータの完全性をチェックするためのチェックサムを含むこともできる。
別の実施形態では、キャッシュサービスデータベースは、ファイル変更時刻の代わりに、ファイルチェックサムに基づく。その場合、キャッシュサービスデータベースは、ユーザデバイス101-1~101-Nのキャッシュのうちの少なくとも1つに格納されたバージョンのファイルのチェックサム、及びストレージ212に格納された元のバージョンのファイルのチェックサムを表す。キャッシュが要求されたデータを含んでいるかどうかの判定は、それらのチェックサムの比較によって実行される。
ステップ404で、データをキャッシュ上で検出できないか、又はキャッシュ上のデータが、ストレージ212上の対応するデータの変更時刻と異なる変更時刻を有しているか(ステップ405)、又はチェックサムが異なる場合、OS214がデータをストレージ212から取得する(ステップ406)。次に、ステップ408で、その後のデータ読み取り動作がキャッシュを使用して実行されるように、取得されたデータがキャッシュに書き込まれる。デバイス相互運用システム200がインストールされているデバイスからユーザデバイス101-1に接続201-1を介してデータを送信する必要がないため、この動作には、デバイスの消費電力を削減するという利点もある。ステップ409で、キャッシュサービスデータベースも更新される。
ステップ404で、データがキャッシュ上で検出され、キャッシュ上のデータがストレージ212上の対応するデータに一致する場合(ステップ405)、ステップ407で、データがキャッシュから読み込まれる。
さらに別の実施形態では、ステップ401で、要求タイプが書き込み動作であるということが決定された場合、ステップ402で、OS214がデータ書き込み動作を実行する。一実施形態では、このデータ書き込み動作は、ライトスルーモードで実行される。次に、ステップ402で、OS214が接続201-1を介してデータをストレージ212に書き込んだ後に、ステップ408で、OS214が、データをユーザデバイス101-1のキャッシュにも書き込む。ステップ409で、キャッシュサービスデータベースも更新される。
別の実施形態では、データをキャッシュに書き込むべきかどうかを判定するために、1つ以上の追加チェックが実行される。図4Bは、実施形態の一例を示している。ステップ4B-01~4B-07は、図4Aのステップ401~407に似ている。ステップ4B-08で、データがキャッシングに適しているかどうかを判定するために、追加チェックが使用される。データがキャッシングに適しているかどうかを判定するために調べられる要因の例としては、以下が挙げられる。
- キャッシュの最大容量、
- キャッシュ容量の使用率、
- データ項目のサイズ、
- データ項目の使用頻度、
- データ項目の有効期限、
- 現在実行中のアプリケーション、
- 以前に収集されたデータ利用パターン、及び、
- ユーザデバイス101-1のデバイスタイプ。
ステップ4B-08で、データがキャッシングに適しているということが決定された場合、ステップ4B-10で、データがキャッシュに書き込まれ、ステップ4B-11で、キャッシュサービスデータベースが更新される。
一実施形態では、OS214が、例えば次のような追加のキャッシュサービス機能を実行する。
- キャッシュのデフラグメンテーション、又は
- 容量を解放するための、キャッシュにあまり適していないデータの削除。
次に、ステップ4B-08で使用された前述の要因が、これらの追加のキャッシュサービス機能の性能を最適化するためにも使用される。
さらに別の実施形態では、ステップ4B-08で、データがキャッシングに適していないということが決定された場合、ステップ4B-09で、キャッシュサービスデータベースの更新の必要性を決定するための追加チェックが実行される。例えば、データがどのユーザデバイスのどのキャッシュにも存在しないということが決定された場合、キャッシュサービスデータベースを更新する必要はない。
一実施形態では、ユーザデバイス101-1がOS214を実行するときに、データがストレージ212からプリフェッチされ、ユーザデバイス101-1のキャッシュを更新するために使用される。すなわち、データがストレージ212からフェッチされ、今後の使用に備えて、ユーザデバイス101-1のキャッシュに送信される。
図4Cは、プリフェッチの実施形態例を示している。ステップ4C-01で、ストレージ212に格納されたデータが、OS214によって、ユーザデバイス101-1のキャッシュに格納されたデータと比較される。OS214は、ユーザデバイス101-1に対応するキャッシュサービスデータベースからの情報を、ストレージ212のファイルシステムに格納された情報と比較することによって、データ比較を実行する。
ステップ4C-02で、接続されたキャッシュに格納されたデータが、ストレージ212に格納されたデータに一致しないということが決定された場合、ステップ4C-03で、OS214が、ストレージ212に格納されたデータの1つ以上の部分のうちのどれが、ユーザデバイス101-1のキャッシュ上のデータと比較して異なっているかを決定する。
さらに別の実施形態では、ステップ4C-04で、OS214が、ユーザデバイス101-1のキャッシュに格納されたデータと異なっている、ストレージ212に格納されたデータの1つ以上の部分を選択的にプリフェッチする。
データの選択及び優先順位付けは、次の複数の要因によって決まる。
- デバイス相互運用システム200がインストールされているデバイスの、電源への接続、
- バッテリー211の充電レベル、
- バッテリー211の総容量、
- 接続201-1の現在の使用率、
- 現在のユーザの活動、
- ユーザデバイス101-1の現在のハードウェアの使用率、
- 接続されたキャッシュの最大容量、
- キャッシュ容量の使用率、
- データの部分のサイズ、
- データ項目の使用頻度、
- データ項目の有効期限、
- 現在実行中のアプリケーション、
- 以前に収集されたデータ利用パターン、及び、
- ユーザデバイス101-1のデバイスタイプ。
次に、ステップ4C-05で、ユーザデバイス101-1のキャッシュに格納されたデータに基づいて、キャッシュサービスデータベースが適切に更新される。
一実施形態では、悪意のある人がデバイス相互運用システム200にアクセスするリスクを低減するために、セキュリティ対策が使用される。例えば、一実施形態では、指紋のスキャン又は顔認識などの生体測定を使用して、デバイス相互運用システム200へのアクセスが保護される。
一実施形態では、OS214は、接続201-1が失われた場合にその動作を一時停止し、接続が再確立されたときに直ちに動作を再開することができる。
一実施形態では、OS214は、1つ以上のアーキテクチャに対応する1つ以上のカーネルを含む。例えば、OS214は、x86アーキテクチャ及びARMアーキテクチャのカーネルを含む。その場合、接続されたユーザデバイスのアーキテクチャに応じて、適切なカーネルが自動的に使用される。この挙動は、ユーザにとって完全に透過的である。
一実施形態では、ユーザがOS214を含んでいるユーザデバイス101-1と情報をやりとりし、インターフェイスをとることができるように、ユーザデバイス101-1上で、グラフィカルユーザインターフェイス(GUI:graphical user interface)が生成される。一実施形態では、OS214は、次の要因に従って、GUIを自動的に最適化し、適応させる。
- ユーザデバイス101-1の物理的形状因子(例えば、ユーザデバイス101-1はどのタイプのデバイスか。ラップトップ、タブレット、TVセット、ゲームコンソール、又は統合された車載システムか)、
- ユーザデバイス101-1に関連付けられた画面の数及びサイズ、
- 画面解像度、及び、
- 入力方法(例えば、入力デバイスは、キーボード及びマウス、タッチスクリーン、赤外線リモートコントロール、又はゲームパッドか)。
GUIの最適化及び適応の例としては、以下が挙げられる。
- ボタン及びチェックボックスなどのGUIの制御要素のサイズ及び配置を調整する。
- ウィンドウのサイズ及び配置を調整する。
- 画面上のキーボード又は音声テキスト入力などの、特定のテキスト入力方法を有効化又は無効化する。
- 車載空調システムの制御などの、デバイス固有の機能のためのGUI部分を有効化又は無効化する。
一実施形態では、OS214は、一度に1つの接続されたユーザデバイス上でのみ動作することができる。その一例は、OS214がユーザデバイス101-1上で実行されている場合である。その場合、接続201-2を確立した後、ユーザデバイス101-2などの別のユーザデバイス上で動作するには、一実施形態では、OS214は、ユーザデバイス101-1上でシャットダウンされてから、ユーザデバイス101-2上で起動されなければならない。別の実施形態では、ユーザデバイス101-1上のOS214の動作が、まず一時停止される。その後、ユーザデバイス101-2上でOS214が起動されるか、又は前もって一時停止されている場合は、再開される。
別の実施形態では、OS214は、例えばユーザデバイス101-1、101-2、及び101-3などの複数のユーザデバイスで、動作することができる。これを可能にするために、一実施形態では、通信モジュール213が、ユーザデバイス101-1、101-2、及び101-3との接続201-1、201-2、及び201-3をそれぞれ確立し、同時に維持することができる。その後、ユーザデバイス101-1、101-2、及び101-3は、デバイス相互運用システム200に同時に接続され、それらのユーザデバイスそれぞれが、OS214のインスタンスを互いに並列に実行する。一実施形態では、通信モジュール213の送信能力は、各接続の現在の使用率に従って、接続201-1、201-2、及び201-3間でバランス調整される。
さらに別の実施形態では、ユーザデバイス101-1、101-2、及び101-3上で同時に実行されているOS214の異なるインスタンスは、分散ロック管理方法を使用して、ストレージ212への同時アクセスを調整する。例えば、ユーザデバイス101-1、101-2、及び101-3上で実行されているOS214の3つのインスタンスすべてのロックマネージャは、デバイス相互運用システム200並びに接続201-1、201-2、及び201-3を用いてこれらのインスタンス間で分散された、同じロックデータベースを使用する。
一実施形態では、相互運用システム200は、ユーザデバイスの現在の状態に関する何らかの詳細情報を交換するために、異なるユーザデバイス上で同時に実行されているOS214の異なるインスタンスによって使用される。この詳細情報の例としては、以下が挙げられる。
- 同時に動作しているユーザデバイスの数及びデバイスタイプ、
- OSの重要なサービス機能の状態(例えば、OS更新プロセス)、
- 現在のユーザの活動、及び、
- 現在実行中のアプリケーション。
このデータは、OS214のすべての実行中のインスタンスによって、そのサービス機能を調整して最適化するために使用される。例えば、OS214の3つのインスタンスが、ユーザデバイス101-1、101-2、及び101-3上で実行されている場合、OS更新プロセスが3つのデバイスすべてで同時に実行されないことを保証するために、調整が実行される。さらに別の実施形態では、このデータは、確立された接続201-1~201-3間で、通信モジュール213の送信能力のバランス調整を優先順位付けするために使用される。例えば、ユーザ100が現在使用しているユーザデバイスには、より高い優先度が与えられる。
さらに別の実施形態では、OS214が、異なるユーザデバイス上で実行されているOSのインスタンス間での実行中のアプリケーションの移行をサポートする。上の例を参照すると、OS214は、現在実行中のアプリケーションをユーザデバイス101-2からユーザデバイス101-3に移動する能力をサポートする。移行後に、アプリケーションは、以前に開いていた任意のファイルに引き続きアクセスすることができる。さらに別の実施形態では、ユーザがアプリケーションを移行することを選択し、接続201-2及び20103が移行プロセスを容易にするために使用される場合、前述したデータが、さらに詳細な情報をユーザに提示するために使用される。
デバイス相互運用システム200の使用は、複数のその他の利点を提供する。一部の実施形態では、デバイス相互運用システム200は、クラウドベースのデータ同期化能力と共に使用される。例えば、クラウドベースのサービスが、異なるユーザデバイス間のデータの同期化に使用される場合、デバイス相互運用システム200は、ユーザデバイスがクラウドに接続してデータ同期化を実行する必要性を少なくする。代わりに、ユーザデバイスは、ストレージ212からのデータを使用する。これによって、ユーザデバイスとのクラウドの接続の使用率を減らす。さらに、一部の実施形態では、デバイス相互運用システム200は、クラウドの接続が失われたか、又は使用できない場合に、ユーザデバイスがデータをストレージ212から取得できるため、データの可用性を保証する。一部の実施形態では、ユーザに関連する可能性が最も高いデータの可用性を保証するためのインテリジェントな方法が、採用される。そのような方法の例としては、以下に基づく方法が挙げられる。
- 時間的局所性:ユーザデバイス上で最近使用されたデータは、ユーザデバイスが近い将来に再び使用する可能性が高いため、ストレージ212に格納される。
- 空間的局所性:最近使用されたデータに近いメモリ位置を占めるデータセットは、ユーザデバイスが近い将来に使用する可能性が高いため、ストレージ212に格納される。
- 分岐の局所性:条件付き分岐命令からの可能性のある複数の結果が存在する場合、それらの結果それぞれに関連するデータは、ユーザデバイスが使用する可能性が高いため、ストレージ212に格納される。
- ユーザデバイスとのユーザの情報のやりとりの確率論的解析:例えば、ユーザが、特定のプログラムと連動して、又は特定のプログラムを使用した後に、1つ以上のデータセットを使用する高い可能性が存在する場合、それらのデータセットがストレージ212に格納される。
一部の実施形態では、一部のユーザデータが、クラウド内ではなくストレージ212に格納される。この能力は、例えば、ユーザが極秘データを管理下に置きたい場合に役立つ。
デバイス相互運用システム200の使用は、IoT対応のユーザデバイスにも利点をもたらす。クラウドベースのサービスと同様に、デバイス相互運用システム200は、クラウドに接続してデータの同期化を実行する必要性を少なくする。さらに、バイス相互運用システム200は、ユーザデバイスごとに個別のクラウドの認証情報及びデバイス設定を維持する必要があるという困難を軽減する。
前述のフローチャートを参照するアルゴリズムを含む前述のアルゴリズムは、個別に説明されたが、本明細書で開示されたアルゴリズムのうちの任意の2つ以上を任意の組み合わせで組み合わせることができるということが、理解されるべきである。本明細書に記載された方法、アルゴリズム、実装、又は手順は、いずれも(a)プロセッサ、(b)コントローラ、及び/又は(c)任意のその他の適切な処理デバイスによる実行のための機械可読命令を含むことができる。本明細書で開示されたすべてのアルゴリズム、ソフトウェア、又は方法は、例えば、フラッシュメモリ、CD-ROM、フロッピーディスク、ハードドライブ、デジタル多用途ディスク(DVD:digital versatile disk)、又はその他のメモリデバイスなどの、非一時的な有形の媒体に格納されるソフトウェアにおいて具現化することができるが、当業者は、アルゴリズム全体及び/又はアルゴリズムの一部が、コントローラ以外のデバイスによって代替的に実行され得るということ、及び/又は周知の方法でファームウェア若しくは専用ハードウェアにおいて具現化され得る(例えば、特定用途向け集積回路(ASIC:application specific integrated circuit)、プログラマブル論理デバイス(PLD:programmable logic device)、フィールドプログラマブル論理デバイス(FPLD:field programmable logic device)、個別の論理などによって実装されてよい)ということを、容易に理解するであろう。また、本明細書で示されたいずれかのフローチャートにおいて表された機械可読命令のうちの一部又は全部は、コントローラ、プロセッサ、又は同様のコンピューティングデバイス若しくは機械によって自動的に実施されるのとは対照的に、手動で実施され得る。さらに、特定のアルゴリズムが、本明細書で示されたフローチャートを参照して説明されたが、当業者は、例示的な機械可読命令を実施する多くのその他の方法が代替的に使用されてよいということを、容易に理解するであろう。例えば、ブロックの実行順序が変更されてよく、及び/又は説明されたブロックの一部が変更されるか、除去されるか、若しくは組み合わせられてよい。
アルゴリズムが、特定の機能を実行し、互いに情報をやりとりするさまざまなモジュールを含んでいるとして、本明細書において図で示され、説明されたということに、注意するべきである。それらのモジュールが、単に説明の目的でそれらの機能に基づいて分離されており、コンピュータハードウェアを表し、及び/又は適切なコンピューティングハードウェア上での実行のためにコンピュータ可読媒体に格納される実行可能なソフトウェアコードを表すということが、理解されるべきである。異なるモジュール及びユニットのさまざまな機能は、ハードウェア及び/又は上記の非一時的コンピュータ可読媒体にモジュールとして格納されたソフトウェアとして、任意の方法で組み合わせるか、又は分離することができ、別々に、又は組み合わせて使用することができる。
本開示の特定の実装及び適用が図で示され、説明されたが、本開示が、本明細書で開示された正確な構造及び構成に限定されないということ、及び前述の説明から、添付の特許請求の範囲において規定された発明の思想及び範囲を逸脱することなく、さまざまな修正、変更、及び変形が明らかに可能であるということが、理解されるべきである。

Claims (30)

  1. ユーザに関連付けられた1つ以上のユーザデバイスのためのデバイス相互運用システムであって、
    前記1つ以上のユーザデバイスが、第1のユーザデバイスを含んでおり、
    前記デバイス相互運用システムが、
    通信モジュールであって、第1の接続が、前記第1のユーザデバイスと前記通信モジュールの間で確立される、通信モジュールと、
    前記通信モジュールに結合されたストレージであって、オペレーティングシステム、1つ以上のプログラム、及び、前記ユーザに関連付けられたデータを格納しており、さらに、前記オペレーティングシステムが前記第1の接続を介して前記第1のユーザデバイスによって起動される、ストレージと、
    前記デバイス相互運用システムをサポートするための1つ以上のプロセッサと、
    を備え
    前記第1の接続が、直接無線接続、直接有線接続、及びドッキングのうちの1つに基づき、
    前記1つ以上のユーザデバイスが、第2のユーザデバイスを含んでおり、
    前記デバイス相互運用システムが前記第2のユーザデバイスへの統合によってインストールされている、
    ことを特徴とするデバイス相互運用システム。
  2. ユーザに関連付けられた1つ以上のユーザデバイスのためのデバイス相互運用システムであって、
    前記1つ以上のユーザデバイスが、第1のユーザデバイスを含んでおり、
    前記デバイス相互運用システムが、
    通信モジュールであって、第1の接続が、前記第1のユーザデバイスと前記通信モジュールの間で確立される、通信モジュールと、
    前記通信モジュールに結合されたストレージであって、オペレーティングシステム、1つ以上のプログラム、及び、前記ユーザに関連付けられたデータを格納しており、さらに、前記オペレーティングシステムが前記第1の接続を介して前記第1のユーザデバイスによって起動される、ストレージと、
    前記デバイス相互運用システムをサポートするための1つ以上のプロセッサと、
    を備え、
    前記1つ以上のユーザデバイスが、第2のユーザデバイスを含んでおり、
    前記デバイス相互運用システムが前記第2のユーザデバイスへの統合によってインストールされている、
    ことを特徴とするデバイス相互運用システム。
  3. ユーザに関連付けられた1つ以上のユーザデバイスのためのデバイス相互運用システムであって、
    前記1つ以上のユーザデバイスが、第1のユーザデバイスを含んでおり、
    前記デバイス相互運用システムが、
    通信モジュールであって、第1の接続が、前記第1のユーザデバイスと前記通信モジュールの間で確立される、通信モジュールと、
    前記通信モジュールに結合されたストレージであって、オペレーティングシステム、1つ以上のプログラム、及び、前記ユーザに関連付けられたデータを格納しており、さらに、前記オペレーティングシステムが前記第1の接続を介して前記第1のユーザデバイスによって起動される、ストレージと、
    前記デバイス相互運用システムをサポートするための1つ以上のプロセッサと、
    を備え、
    前記1つ以上のユーザデバイスが、第2のユーザデバイスを含んでおり、
    前記デバイス相互運用システムが前記第2のユーザデバイス上のアプリケーションとしてインストールされている、
    ことを特徴とするデバイス相互運用システム。
  4. ユーザに関連付けられた1つ以上のユーザデバイスのためのデバイス相互運用システムであって、
    前記1つ以上のユーザデバイスが、第1のユーザデバイスを含んでおり、
    前記デバイス相互運用システムが、
    通信モジュールであって、第1の接続が、前記第1のユーザデバイスと前記通信モジュールの間で確立される、通信モジュールと、
    前記通信モジュールに結合されたストレージであって、オペレーティングシステム、1つ以上のプログラム、及び、前記ユーザに関連付けられたデータを格納しており、さらに、前記オペレーティングシステムが前記第1の接続を介して前記第1のユーザデバイスによって起動される、ストレージと、
    前記デバイス相互運用システムをサポートするための1つ以上のプロセッサと、
    を備え、
    前記第1のユーザデバイスが、相互運用システムモード又はスタンドアロンモードのいずれかで動作する、
    ことを特徴とするデバイス相互運用システム。
  5. ユーザに関連付けられた1つ以上のユーザデバイスのためのデバイス相互運用システムであって、
    前記1つ以上のユーザデバイスが、第1のユーザデバイスを含んでおり、
    前記デバイス相互運用システムが、
    通信モジュールであって、第1の接続が、前記第1のユーザデバイスと前記通信モジュールの間で確立される、通信モジュールと、
    前記通信モジュールに結合されたストレージであって、オペレーティングシステム、1つ以上のプログラム、及び、前記ユーザに関連付けられたデータを格納しており、さらに、前記オペレーティングシステムが前記第1の接続を介して前記第1のユーザデバイスによって起動される、ストレージと、
    前記デバイス相互運用システムをサポートするための1つ以上のプロセッサと、
    を備え、
    前記1つ以上のユーザデバイスが、第2のユーザデバイスを含んでおり、
    前記オペレーティングシステムが、前記第1のユーザデバイスに対応する第1の構成のセット及び前記第2のユーザデバイスに対応する第2の構成のセットを格納し、
    前記オペレーティングシステムが、前記第1のユーザデバイス又は前記第2のユーザデバイスのどちらが前記オペレーティングシステムの起動に使用されるかに応じて、前記第1の構成のセット及び前記第2の構成のセットを切り替える、
    ことを特徴とするデバイス相互運用システム。
  6. ユーザに関連付けられた1つ以上のユーザデバイスのためのデバイス相互運用システムであって、
    前記1つ以上のユーザデバイスが、第1のユーザデバイスを含んでおり、
    前記デバイス相互運用システムが、
    通信モジュールであって、第1の接続が、前記第1のユーザデバイスと前記通信モジュールの間で確立される、通信モジュールと、
    前記通信モジュールに結合されたストレージであって、オペレーティングシステム、1つ以上のプログラム、及び、前記ユーザに関連付けられたデータを格納しており、さらに、前記オペレーティングシステムが前記第1の接続を介して前記第1のユーザデバイスによって起動される、ストレージと、
    前記デバイス相互運用システムをサポートするための1つ以上のプロセッサと、
    を備え、
    前記第1のユーザデバイスが第1のユーザデバイスのストレージを備えており、
    前記第1のユーザデバイスのストレージが、スワッピング、データのバックアップ、又はキャッシングのうちの少なくとも1つに使用される、
    ことを特徴とするデバイス相互運用システム。
  7. 請求項に記載のデバイス相互運用システムであって、
    前記オペレーティングシステムが、1つ以上のアーキテクチャに対応する1つ以上のカーネルを含んでいる、
    ことを特徴とするデバイス相互運用システム。
  8. ユーザに関連付けられた1つ以上のユーザデバイスのためのデバイス相互運用システムであって、
    前記1つ以上のユーザデバイスが、第1のユーザデバイスを含んでおり、
    前記デバイス相互運用システムが、
    通信モジュールであって、第1の接続が、前記第1のユーザデバイスと前記通信モジュールの間で確立される、通信モジュールと、
    前記通信モジュールに結合されたストレージであって、オペレーティングシステム、1つ以上のプログラム、及び、前記ユーザに関連付けられたデータを格納しており、さらに、前記オペレーティングシステムが前記第1の接続を介して前記第1のユーザデバイスによって起動される、ストレージと、
    前記デバイス相互運用システムをサポートするための1つ以上のプロセッサと、
    を備え、
    前記1つ以上のユーザデバイスが、第2のユーザデバイスを含んでおり、
    第2の接続が、前記第2のユーザデバイスと前記通信モジュールの間で確立され、
    前記オペレーティングシステムが、
    前記第1のユーザデバイス上でシャットダウンされてから、前記第2の接続を介して前記第2のユーザデバイスによって起動されるか、又は、
    前記第1のユーザデバイス上で一時停止されてから、前記第2の接続を介して前記第2のユーザデバイスによって起動される、
    ことを特徴とするデバイス相互運用システム。
  9. ユーザに関連付けられた1つ以上のユーザデバイスのためのデバイス相互運用システムであって、
    前記1つ以上のユーザデバイスが、第1のユーザデバイスを含んでおり、
    前記デバイス相互運用システムが、
    通信モジュールであって、第1の接続が、前記第1のユーザデバイスと前記通信モジュールの間で確立される、通信モジュールと、
    前記通信モジュールに結合されたストレージであって、オペレーティングシステム、1つ以上のプログラム、及び、前記ユーザに関連付けられたデータを格納しており、さらに、前記オペレーティングシステムが前記第1の接続を介して前記第1のユーザデバイスによって起動される、ストレージと、
    前記デバイス相互運用システムをサポートするための1つ以上のプロセッサと、
    を備え、
    前記第1のユーザデバイスのファームウェアを変更することをさらに含む、
    ことを特徴とするデバイス相互運用システム。
  10. 請求項に記載のデバイス相互運用システムであって、
    前記1つ以上のユーザデバイスが、前記第1のユーザデバイスとは異なる1つ以上のユーザデバイスを含んでいるユーザデバイスのセットをさらに含んでおり、
    前記第1の接続とは異なる1つ以上の接続を含んでいる接続のセットが、前記ユーザデバイスのセットと前記通信モジュールの間で確立され、
    前記オペレーティングシステムが、前記接続のセットを介して前記ユーザデバイスのセットによって起動される、
    ことを特徴とするデバイス相互運用システム。
  11. ユーザに関連付けられた1つ以上のユーザデバイスのためのデバイス相互運用システムであって、
    前記1つ以上のユーザデバイスが、第1のユーザデバイスを含んでおり、
    前記デバイス相互運用システムが、
    通信モジュールであって、第1の接続が、前記第1のユーザデバイスと前記通信モジュールの間で確立される、通信モジュールと、
    前記通信モジュールに結合されたストレージであって、オペレーティングシステム、1つ以上のプログラム、及び、前記ユーザに関連付けられたデータを格納しており、さらに、前記オペレーティングシステムが前記第1の接続を介して前記第1のユーザデバイスによって起動される、ストレージと、
    前記デバイス相互運用システムをサポートするための1つ以上のプロセッサと、
    を備え、
    前記1つ以上のユーザデバイスが、前記第1のユーザデバイスとは異なる1つ以上のユーザデバイスを含んでいるユーザデバイスのセットをさらに含んでおり、
    前記第1の接続とは異なる1つ以上の接続を含んでいる接続のセットが、前記ユーザデバイスのセットと前記通信モジュールの間で確立され、
    前記オペレーティングシステムが、前記接続のセットを介して前記ユーザデバイスのセットによって起動され、
    前記通信モジュールが前記ユーザデバイスのセットとの前記接続のセットを同時に維持し、
    前記オペレーティングシステムの複数のインスタンスのそれぞれが、前記ユーザデバイスのセット及び前記第1のユーザデバイスのそれぞれで実行される、
    ことを特徴とするデバイス相互運用システム。
  12. 請求項に記載のデバイス相互運用システムであって、
    前記オペレーティングシステムが前記第1のユーザデバイス上で実行され、
    前記オペレーティングシステムが前記第1のユーザデバイスの処理能力を動作に使用する、
    ことを特徴とするデバイス相互運用システム。
  13. ユーザに関連付けられた1つ以上のユーザデバイスのためのデバイス相互運用システムであって、
    前記1つ以上のユーザデバイスが、第1のユーザデバイスを含んでおり、
    前記デバイス相互運用システムが、
    通信モジュールであって、第1の接続が、前記第1のユーザデバイスと前記通信モジュールの間で確立される、通信モジュールと、
    前記通信モジュールに結合されたストレージであって、オペレーティングシステム、1つ以上のプログラム、及び、前記ユーザに関連付けられたデータを格納しており、さらに、前記オペレーティングシステムが前記第1の接続を介して前記第1のユーザデバイスによって起動される、ストレージと、
    前記デバイス相互運用システムをサポートするための1つ以上のプロセッサと、
    を備え、
    前記1つ以上のデバイスが、統合されたコントローラ及び追加された外部無線アダプタを備える第2のユーザデバイスを含んでおり、
    前記デバイス相互運用システムが前記第2のユーザデバイスにインストールされており、
    前記通信モジュールが、前記統合されたコントローラ及び前記追加された外部無線アダプタを備えている、
    ことを特徴とするデバイス相互運用システム。
  14. ユーザに関連付けられた1つ以上のユーザデバイスのデバイス相互運用のための方法であって、
    前記1つ以上のユーザデバイスが、第1のユーザデバイスを含んでおり、
    前記方法が、
    デバイス相互運用システム内の前記第1のユーザデバイスと通信モジュールの間の第1の接続を確立するステップと、
    前記デバイス相互運用システム内のストレージを使用して、オペレーティングシステム、1つ以上のプログラム、及び、前記ユーザに関連付けられたデータを格納するステップと、
    前記オペレーティングシステムを前記第1の接続を介して前記第1のユーザデバイスによって起動するステップとを含んでおり、
    前記1つ以上のユーザデバイスが、第2のユーザデバイスを含んでおり、
    前記デバイス相互運用システムが前記第2のユーザデバイス上のアプリケーションとしてインストールされており、
    前記第1の接続が、直接無線接続、直接有線接続、及びドッキングのうちの1つに基づく、
    ことを特徴とする方法。
  15. ユーザに関連付けられた1つ以上のユーザデバイスのデバイス相互運用のための方法であって、
    前記1つ以上のユーザデバイスが、第1のユーザデバイスを含んでおり、
    前記方法が、
    デバイス相互運用システム内の前記第1のユーザデバイスと通信モジュールの間の第1の接続を確立するステップと、
    前記デバイス相互運用システム内のストレージを使用して、オペレーティングシステム、1つ以上のプログラム、及び、前記ユーザに関連付けられたデータを格納するステップと、
    前記オペレーティングシステムを前記第1の接続を介して前記第1のユーザデバイスによって起動するステップとを含んでおり、
    前記1つ以上のユーザデバイスが、第2のユーザデバイスを含んでおり、
    前記デバイス相互運用システムが前記第2のユーザデバイスへの統合によってインストールされている、
    ことを特徴とする方法。
  16. ユーザに関連付けられた1つ以上のユーザデバイスのデバイス相互運用のための方法であって、
    前記1つ以上のユーザデバイスが、第1のユーザデバイスを含んでおり、
    前記方法が、
    デバイス相互運用システム内の前記第1のユーザデバイスと通信モジュールの間の第1の接続を確立するステップと、
    前記デバイス相互運用システム内のストレージを使用して、オペレーティングシステム、1つ以上のプログラム、及び、前記ユーザに関連付けられたデータを格納するステップと、
    前記オペレーティングシステムを前記第1の接続を介して前記第1のユーザデバイスによって起動するステップとを含んでおり、
    前記1つ以上のユーザデバイスが、第2のユーザデバイスを含んでおり、
    前記デバイス相互運用システムが前記第2のユーザデバイス上のアプリケーションとしてインストールされている、
    ことを特徴とする方法。
  17. ユーザに関連付けられた1つ以上のユーザデバイスのデバイス相互運用のための方法であって、
    前記1つ以上のユーザデバイスが、第1のユーザデバイスを含んでおり、
    前記方法が、
    デバイス相互運用システム内の前記第1のユーザデバイスと通信モジュールの間の第1の接続を確立するステップと、
    前記デバイス相互運用システム内のストレージを使用して、オペレーティングシステム、1つ以上のプログラム、及び、前記ユーザに関連付けられたデータを格納するステップと、
    前記オペレーティングシステムを前記第1の接続を介して前記第1のユーザデバイスによって起動するステップとを含んでおり、
    前記第1のユーザデバイスが、相互運用システムモード又はスタンドアロンモードのいずれかで動作する、
    ことを特徴とする方法。
  18. ユーザに関連付けられた1つ以上のユーザデバイスのデバイス相互運用のための方法であって、
    前記1つ以上のユーザデバイスが、第1のユーザデバイスを含んでおり、
    前記方法が、
    デバイス相互運用システム内の前記第1のユーザデバイスと通信モジュールの間の第1の接続を確立するステップと、
    前記デバイス相互運用システム内のストレージを使用して、オペレーティングシステム、1つ以上のプログラム、及び、前記ユーザに関連付けられたデータを格納するステップと、
    前記オペレーティングシステムを前記第1の接続を介して前記第1のユーザデバイスによって起動するステップとを含んでおり、
    前記1つ以上のユーザデバイスが、第2のユーザデバイスを含んでおり、
    前記方法が、
    前記オペレーティングシステムによって、前記第1のユーザデバイスに対応する第1の構成のセット及び前記第2のユーザデバイスに対応する第2の構成のセットを格納するステップと、
    前記オペレーティングシステムが、前記第1のユーザデバイス又は前記第2のユーザデバイスのどちらが前記オペレーティングシステムの起動に使用されるかに応じて、前記第1の構成のセット及び前記第2の構成のセットを切り替えるステップとを含んでいる、
    ことを特徴とする方法。
  19. ユーザに関連付けられた1つ以上のユーザデバイスのデバイス相互運用のための方法であって、
    前記1つ以上のユーザデバイスが、第1のユーザデバイスを含んでおり、
    前記方法が、
    デバイス相互運用システム内の前記第1のユーザデバイスと通信モジュールの間の第1の接続を確立するステップと、
    前記デバイス相互運用システム内のストレージを使用して、オペレーティングシステム、1つ以上のプログラム、及び、前記ユーザに関連付けられたデータを格納するステップと、
    前記オペレーティングシステムを前記第1の接続を介して前記第1のユーザデバイスによって起動するステップとを含んでおり、
    前記第1のユーザデバイスが第1のユーザデバイスのストレージを備えており、
    前記第1のユーザデバイスのストレージが、スワッピング、データのバックアップ、又はキャッシングのうちの少なくとも1つに使用される、
    ことを特徴とする方法。
  20. 請求項16に記載の方法であって、
    前記オペレーティングシステムが、1つ以上のアーキテクチャに対応する1つ以上のカーネルを含んでいる、
    ことを特徴とする方法。
  21. ユーザに関連付けられた1つ以上のユーザデバイスのデバイス相互運用のための方法であって、
    前記1つ以上のユーザデバイスが、第1のユーザデバイスを含んでおり、
    前記方法が、
    デバイス相互運用システム内の前記第1のユーザデバイスと通信モジュールの間の第1の接続を確立するステップと、
    前記デバイス相互運用システム内のストレージを使用して、オペレーティングシステム、1つ以上のプログラム、及び、前記ユーザに関連付けられたデータを格納するステップと、
    前記オペレーティングシステムを前記第1の接続を介して前記第1のユーザデバイスによって起動するステップとを含んでおり、
    前記1つ以上のユーザデバイスが、第2のユーザデバイスを含んでおり、
    前記方法が、
    前記第2のユーザデバイスと前記通信モジュールの間で第2の接続を確立するステップと、
    前記第1のユーザデバイス上で前記オペレーティングシステムをシャットダウンしてから、前記オペレーティングシステムが前記第2の接続を介して前記第2のユーザデバイスによって起動されるか、又は、
    前記第1のユーザデバイス上で前記オペレーティングシステムを一時停止してから、前記オペレーティングシステムが前記第2の接続を介して前記第2のユーザデバイスによって起動されるステップとをさらに含んでいる、
    ことを特徴とする方法。
  22. ユーザに関連付けられた1つ以上のユーザデバイスのデバイス相互運用のための方法であって、
    前記1つ以上のユーザデバイスが、第1のユーザデバイスを含んでおり、
    前記方法が、
    デバイス相互運用システム内の前記第1のユーザデバイスと通信モジュールの間の第1の接続を確立するステップと、
    前記デバイス相互運用システム内のストレージを使用して、オペレーティングシステム、1つ以上のプログラム、及び、前記ユーザに関連付けられたデータを格納するステップと、
    前記オペレーティングシステムを前記第1の接続を介して前記第1のユーザデバイスによって起動するステップとを含んでおり、
    前記第1のユーザデバイスのファームウェアを変更するステップをさらに含んでいる、
    ことを特徴とする方法。
  23. 請求項16に記載の方法であって、
    前記1つ以上のユーザデバイスが、前記第1のユーザデバイスとは異なる1つ以上のユーザデバイスを含んでいるユーザデバイスのセットをさらに含んでおり、
    前記方法が、
    前記第1の接続とは異なる1つ以上の接続を含んでいる接続のセットを、前記ユーザデバイスのセットと前記通信モジュールの間で確立するステップと、
    前記オペレーティングシステムを前記接続のセットを介して前記ユーザデバイスのセットによって起動するステップとを含んでいる、
    ことを特徴とする方法。
  24. ユーザに関連付けられた1つ以上のユーザデバイスのデバイス相互運用のための方法であって、
    前記1つ以上のユーザデバイスが、第1のユーザデバイスを含んでおり、
    前記方法が、
    デバイス相互運用システム内の前記第1のユーザデバイスと通信モジュールの間の第1の接続を確立するステップと、
    前記デバイス相互運用システム内のストレージを使用して、オペレーティングシステム、1つ以上のプログラム、及び、前記ユーザに関連付けられたデータを格納するステップと、
    前記オペレーティングシステムを前記第1の接続を介して前記第1のユーザデバイスによって起動するステップとを含んでおり、
    前記1つ以上のユーザデバイスが、前記第1のユーザデバイスとは異なる1つ以上のユーザデバイスを含んでいるユーザデバイスのセットをさらに含んでおり、
    前記方法が、
    前記第1の接続とは異なる1つ以上の接続を含んでいる接続のセットを、前記ユーザデバイスのセットと前記通信モジュールの間で確立するステップと、
    前記オペレーティングシステムを前記接続のセットを介して前記ユーザデバイスのセットによって起動するステップとを含んでおり、
    前記通信モジュールによって、前記ユーザデバイスのセットとの前記接続のセットを同時に維持するステップをさらに含んでおり、
    前記オペレーティングシステムの複数のインスタンスのそれぞれが、前記ユーザデバイスのセット及び前記第1のユーザデバイスのそれぞれで実行される、
    ことを特徴とする方法。
  25. 請求項16に記載の方法であって、
    前記オペレーティングシステムが前記第1のユーザデバイス上で実行され、
    前記オペレーティングシステムが前記第1のユーザデバイスの処理能力を動作に使用する、
    ことを特徴とする方法。
  26. ユーザに関連付けられた1つ以上のユーザデバイスのデバイス相互運用のための方法であって、
    前記1つ以上のユーザデバイスが、第1のユーザデバイスを含んでおり、
    前記方法が、
    デバイス相互運用システム内の前記第1のユーザデバイスと通信モジュールの間の第1の接続を確立するステップと、
    前記デバイス相互運用システム内のストレージを使用して、オペレーティングシステム、1つ以上のプログラム、及び、前記ユーザに関連付けられたデータを格納するステップと、
    前記オペレーティングシステムを前記第1の接続を介して前記第1のユーザデバイスによって起動するステップとを含んでおり、
    前記1つ以上のデバイスが、統合されたコントローラ及び追加された外部無線アダプタを備える第2のユーザデバイスを含んでおり、
    前記デバイス相互運用システムが前記第2のユーザデバイスにインストールされており、
    前記通信モジュールが、前記統合されたコントローラ及び前記追加された外部無線アダプタを備えている、
    ことを特徴とする方法。
  27. 請求項3に記載のデバイス相互運用システムであって、
    前記1つ以上のユーザデバイスが、前記第1のユーザデバイスとは異なる1つ以上のユーザデバイスを含んでいるユーザデバイスのセットをさらに含んでおり、
    前記第1の接続とは異なる1つ以上の接続を含んでいる接続のセットが、前記ユーザデバイスのセットと前記通信モジュールの間で確立され、
    前記オペレーティングシステムが、前記接続のセットを介して前記ユーザデバイスのセットによって起動される、
    ことを特徴とするデバイス相互運用システム。
  28. 請求項3に記載のデバイス相互運用システムであって、
    前記オペレーティングシステムが前記第1のユーザデバイス上で実行され、
    前記オペレーティングシステムが前記第1のユーザデバイスの処理能力を動作に使用する、
    ことを特徴とするデバイス相互運用システム。
  29. 請求項15に記載の方法であって、
    前記1つ以上のユーザデバイスが、前記第1のユーザデバイスとは異なる1つ以上のユーザデバイスを含んでいるユーザデバイスのセットをさらに含んでおり、
    前記方法が、
    前記第1の接続とは異なる1つ以上の接続を含んでいる接続のセットを、前記ユーザデバイスのセットと前記通信モジュールの間で確立するステップと、
    前記オペレーティングシステムを前記接続のセットを介して前記ユーザデバイスのセットによって起動するステップとを含んでいる、
    ことを特徴とする方法。
  30. 請求項15に記載の方法であって、
    前記オペレーティングシステムが前記第1のユーザデバイス上で実行され、
    前記オペレーティングシステムが前記第1のユーザデバイスの処理能力を動作に使用する、
    ことを特徴とする方法。
JP2019546110A 2016-10-26 2017-10-19 デバイスの相互運用及び同期化のためのシステム及び方法 Active JP7090095B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662413169P 2016-10-26 2016-10-26
US62/413,169 2016-10-26
PCT/IB2017/056516 WO2018078495A1 (en) 2016-10-26 2017-10-19 System and method for device interoperability and synchronization

Publications (2)

Publication Number Publication Date
JP2019537812A JP2019537812A (ja) 2019-12-26
JP7090095B2 true JP7090095B2 (ja) 2022-06-23

Family

ID=60484406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019546110A Active JP7090095B2 (ja) 2016-10-26 2017-10-19 デバイスの相互運用及び同期化のためのシステム及び方法

Country Status (7)

Country Link
US (4) US10180846B2 (ja)
EP (1) EP3532928A1 (ja)
JP (1) JP7090095B2 (ja)
KR (1) KR20190071788A (ja)
CN (1) CN109844719A (ja)
DE (1) DE112017005398T5 (ja)
WO (1) WO2018078495A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018078495A1 (en) 2016-10-26 2018-05-03 Simpleway Technologies Ltd. System and method for device interoperability and synchronization
US10330957B2 (en) * 2017-01-25 2019-06-25 International Business Machines Corporation Smart contact lens data transfer using Li-Fi
US11356532B1 (en) * 2018-08-10 2022-06-07 Meta Platforms, Inc. Systems and methods for packaging web resources
CN111596967A (zh) * 2020-04-27 2020-08-28 中国银联股份有限公司 应用功能配置方法、终端设备、服务器及存储介质
WO2022264031A1 (en) * 2021-06-16 2022-12-22 Simpleway Technologies Ltd. System and method for mobile and stationary computing device interworking
US20240095002A1 (en) 2022-09-21 2024-03-21 Ncr Corporation Updated driver installation
KR102651979B1 (ko) * 2023-01-19 2024-03-27 주식회사 뷰텔 소프트웨어를 업그레이드하는 비침습 포도당 측정 장치 및 방법

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005174002A (ja) 2003-12-11 2005-06-30 Fuji Photo Film Co Ltd 外部記憶装置
JP2006099234A (ja) 2004-09-28 2006-04-13 Aruze Corp ネットワーク端末装置、配信サーバ、並びにクライアント/サーバシステム
JP2007525756A (ja) 2004-02-23 2007-09-06 エヌコンピューティング シーオー エルテーディー ダウンロード方式のオペレーティングシステムに駆動されるネットワーク端末装置及びその作動方法
JP2010092240A (ja) 2008-10-07 2010-04-22 Ntt Docomo Inc 情報処理装置およびデバイス認識方法
JP2012085322A (ja) 2011-11-24 2012-04-26 Canon Inc 無線通信装置および通信方法
JP2012172666A (ja) 2011-02-24 2012-09-10 Mazda Motor Corp 火花点火式ガソリンエンジンの制御装置
JP2014135881A (ja) 2013-01-10 2014-07-24 Gcca Inc データセンタ用の電力システム

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6532538B1 (en) * 2000-02-17 2003-03-11 International Business Machines Corporation Method and system for supporting multiple operating systems on the same disk running on different computers at the same time
US9152582B2 (en) * 2010-10-01 2015-10-06 Z124 Auto-configuration of a docked system in a multi-OS environment
US7761863B2 (en) * 2004-06-08 2010-07-20 Covia Labs, Inc. Method system and data structure for content renditioning adaptation and interoperability segmentation model
EP1808763A1 (en) * 2005-12-13 2007-07-18 Neoware, Inc. A procedure for booting a first computer using the operating system of a second computer
US7752278B2 (en) 2006-01-20 2010-07-06 International Business Machines Corporation Instant message method to provide a delayed alarm/reminder
US8626951B2 (en) * 2007-04-23 2014-01-07 4Dk Technologies, Inc. Interoperability of network applications in a communications environment
US20090216866A1 (en) * 2008-02-25 2009-08-27 Ching-Tung Lu Diskless computer-to-remote storage server opeating system installation system and method
TWI421700B (zh) * 2008-06-02 2014-01-01 無線虛擬儲存裝置及取得遠端檔案之方法
US9880954B2 (en) 2008-12-01 2018-01-30 Micron Technology, Inc. Method and apparatus for providing data access
TWI571800B (zh) 2011-04-19 2017-02-21 仁寶電腦工業股份有限公司 電腦開機之方法與電腦系統
KR20130050588A (ko) 2011-11-08 2013-05-16 주식회사 히타치엘지 데이터 스토리지 코리아 나스 서버의 임베디드 시스템 펌웨어 복원 장치 및 방법
US9282168B2 (en) 2011-12-06 2016-03-08 Parablu Systems Pvt. Ltd. Methods, devices, and systems for enabling a personal cloud-computing environment with ubiquitous mobile access and source-independent, automated data aggregation
US20140036767A1 (en) * 2012-08-03 2014-02-06 Broadcom Corporation Proximity Based Wireless Docking
US9450784B2 (en) 2012-09-27 2016-09-20 Blackberry Limited Communicating data among personal clouds
EP2750033A1 (en) * 2012-12-27 2014-07-02 Telefonica S.A. Portable modem communication device and Method to provide connectivity capabilities to a computing device
US9450874B2 (en) 2013-01-04 2016-09-20 Futurewei Technologies, Inc. Method for internet traffic management using a central traffic controller
KR101981258B1 (ko) 2013-01-04 2019-05-22 삼성전자주식회사 개인 클라우드 기기를 이용한 컨텐츠 공유 방법 및 이를 적용한 전자 기기, 그리고 개인 클라우드 시스템
KR102046094B1 (ko) 2013-04-23 2019-11-18 삼성전자주식회사 전자 기기 및 이의 개인 클라우드 기기 등록 방법
US9501666B2 (en) 2013-04-29 2016-11-22 Sri International Polymorphic computing architectures
US20150019705A1 (en) 2013-06-26 2015-01-15 Amazon Technologies, Inc. Management of computing sessions
US9756491B2 (en) 2014-11-14 2017-09-05 Zen-Me Labs Oy System and method for social sensor platform based private social network
CN104375963B (zh) * 2014-11-28 2019-03-15 上海兆芯集成电路有限公司 基于缓存一致性的控制系统和方法
KR102264050B1 (ko) 2014-11-28 2021-06-11 삼성전자주식회사 전자 장치들 간에 기능을 공유하는 방법 및 장치
US20170339251A1 (en) * 2015-01-06 2017-11-23 Hewlett Packard Enterprise Development Lp Supporting interoperability in cloud environments
CN105159720B (zh) * 2015-09-07 2019-06-28 珠海豹趣科技有限公司 硬件设备驱动程序安装方法和系统
US10320583B2 (en) * 2016-10-07 2019-06-11 Verizon Patent And Licensing Inc. System and method for facilitating interoperability across internet of things (IOT) domains
WO2018078495A1 (en) 2016-10-26 2018-05-03 Simpleway Technologies Ltd. System and method for device interoperability and synchronization

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005174002A (ja) 2003-12-11 2005-06-30 Fuji Photo Film Co Ltd 外部記憶装置
JP2007525756A (ja) 2004-02-23 2007-09-06 エヌコンピューティング シーオー エルテーディー ダウンロード方式のオペレーティングシステムに駆動されるネットワーク端末装置及びその作動方法
JP2006099234A (ja) 2004-09-28 2006-04-13 Aruze Corp ネットワーク端末装置、配信サーバ、並びにクライアント/サーバシステム
JP2010092240A (ja) 2008-10-07 2010-04-22 Ntt Docomo Inc 情報処理装置およびデバイス認識方法
JP2012172666A (ja) 2011-02-24 2012-09-10 Mazda Motor Corp 火花点火式ガソリンエンジンの制御装置
JP2012085322A (ja) 2011-11-24 2012-04-26 Canon Inc 無線通信装置および通信方法
JP2014135881A (ja) 2013-01-10 2014-07-24 Gcca Inc データセンタ用の電力システム

Also Published As

Publication number Publication date
JP2019537812A (ja) 2019-12-26
US12118365B2 (en) 2024-10-15
US20180121211A1 (en) 2018-05-03
CN109844719A (zh) 2019-06-04
US11048520B2 (en) 2021-06-29
US20190250927A1 (en) 2019-08-15
KR20190071788A (ko) 2019-06-24
US11650828B2 (en) 2023-05-16
EP3532928A1 (en) 2019-09-04
WO2018078495A1 (en) 2018-05-03
US20240078117A1 (en) 2024-03-07
DE112017005398T5 (de) 2019-07-04
US20210263747A1 (en) 2021-08-26
US10180846B2 (en) 2019-01-15

Similar Documents

Publication Publication Date Title
JP7090095B2 (ja) デバイスの相互運用及び同期化のためのシステム及び方法
US10735427B2 (en) Method and apparatus for managing program of electronic device
US10275581B2 (en) Method and apparatus for sharing content between electronic devices
KR102400384B1 (ko) 외장 메모리를 구비하는 전자장치 및 그 동작 방법
TWI671641B (zh) 具有可移除裝置的資料儲存系統及操作該資料儲存系統的方法
US20220155981A1 (en) Data Migration to a New Device
RU2456662C2 (ru) Согласование загрузки между несколькими способными к загрузке устройствами
US9219611B1 (en) Systems and methods for automating cloud-based code-signing services
KR102358470B1 (ko) 부트 로더 업데이트 펌웨어, 및 부트 로더 업데이트 방법
US10187359B2 (en) Secure message transmission apparatus and processing method thereof
US20220092203A1 (en) Platform root-of-trust system
WO2021022729A1 (zh) root权限的分配方法、装置、存储介质及终端设备
US11671379B1 (en) System and method for subscription management using dynamically composed management entities
US20170078269A1 (en) Method for managing application and electronic device supporting the same
US12093102B2 (en) System and method for power state enforced subscription management
KR20230064623A (ko) 안전한 개인용 메모리가 있는 모바일 장치
US20170046279A1 (en) Content security processing method and electronic device supporting the same
US20240152648A1 (en) System and method for privacy-preserving artificial intelligence and machine learning
US11175833B2 (en) Method for controlling a data storage device based on a user profile, and associated data storage device
US20240289138A1 (en) System and method for mobile and stationary computing device interworking
US11601262B2 (en) Distributed key management system
US10027661B2 (en) Biometric virtual machine image administration
US20150105019A1 (en) Wireless communication device and wireless paring method thereof
US9773108B1 (en) Systems and methods for performing operations on restricted mobile computing platforms

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201012

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211102

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220124

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220428

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: 20220517

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220613

R150 Certificate of patent or registration of utility model

Ref document number: 7090095

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150