(57)【要約】  遠隔ブラウザにより、ローカルマウス情報とローカルウィンドウサイズとを受信し、仮想マウス位置を計算し、遠隔ブラウザのウィンドウ上に仮想マウス位置を表示することを含む方法が記載される。また、ローカルマウス情報とローカルウィンドウサイズとをWebSocketサーバに送信することを含む方法も記載される。更に、WebSocketサーバにより、ローカルマウス情報とローカルウィンドウサイズとを遠隔ブラウザに転送することを含む方法も記載される。
2014533396.tif 000002
【特許請求の範囲】
【請求項１】
遠隔ブラウザにより、ローカルマウス情報とローカルウィンドウサイズとを受信するステップと、
仮想マウス位置を計算するステップと、
前記遠隔ブラウザのウィンドウ上に前記仮想マウス位置を表示するステップと
を有する方法。
【請求項２】
前記ローカルマウス情報及びローカルウィンドウサイズは、関数呼び出しのパラメータとして受信される、請求項１に記載の方法。
【請求項３】
前記遠隔ブラウザは、遠隔コンピュータデバイスで実行される、請求項１に記載の方法。
【請求項４】
前記遠隔コンピュータデバイスは、ラップトップ、デュアルモード・スマートフォン、iPhone、iPad、iPod、タブレットデバイス及びテレビのうち１つである、請求項３に記載の方法。
【請求項５】
ローカルマウス情報とローカルウィンドウサイズとをWebSocketサーバに送信するステップを有する方法。
【請求項６】
前記ローカルマウス情報及びローカルウィンドウサイズは、関数呼び出しのパラメータとして受信される、請求項５に記載の方法。
【請求項７】
WebSocketサーバにより、ローカルマウス情報とローカルウィンドウサイズとを遠隔ブラウザに転送するステップを有する方法。
【請求項８】
前記ローカルマウス情報及びローカルウィンドウサイズは、関数呼び出しのパラメータとして受信される、請求項７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マウスカーソルの位置指定に関する。特に、本発明は、遠隔ブラウザ上の仮想マウス位置を判定するために、ローカルブラウザでマウス位置を解釈する方法を対象とする。
【背景技術】
【０００２】
本発明は、仮想マウスカーソル機能をサポートし、複数のUIの間でオブジェクト制御の柔軟性を向上させるブラウザに基づく遠隔ユーザインタフェース（UI：user  interface）（HTML5等）の方法である。従来技術のブラウザに基づく遠隔UIの１つの欠点は、固定サイズのブラウザのウィンドウを明示的に定めない点にある。適切なスケーリング情報なしでは２つのUIのブラウザサイズが異なる可能性があるため、第２のUIと同じ分解能又はアスペクト比を共有しない第１のUI上で、第２のUIの仮想マウスカーソルを位置指定又はオーバーレイ（overlay）することはできない。
【０００３】
遠隔UI技術は、Windows（登録商標）のRemote  Desktop及びLogmeinのように、インターネット又はローカルエリアネットワークを介して他のUIを遠隔で制御することを可能にする。しかし、Remote  Desktopは、ローカルユーザが遠隔コンピュータにアクセスを試みたときに、遠隔コンピュータをログアウトする。Logmeinソフトウェアは、ウェブブラウザに基づく遠隔UIをユーザに提供する。これは遠隔コンピュータをログアウトしないが、遠隔コンピュータのデスクトップのスクリーンショットを全体イメージとしてレンダリング（表示）する。遠隔UIとローカルUIとの間にメディア（media）の関係は存在しない。遠隔UIは、単にローカルUI上のウィンドウである。
【０００４】
HTML5に基づく遠隔UI技術又はCE-HTMLでは、異なるコンピュータの複数のUI上で完全な品質の画像及び音声を用いて同時に同じメディア（ビデオ、ラジオ）を再生することができる。ユーザは、１つのUIから異なるコンピュータ上の他のUIにピクチャ・イン・ピクチャ・ビデオをドラッグすることができる。ドラッグ・アンド・ドロップのインタラクティブ効果は、HTML5を使用して実施されてもよい。HTML5を使用して、遠隔UIの間での仮想マウスカーソル位置指定、マウスクリック／ドラッグのシミュレーション、メディア同期タイマ等のようなのような一連のWebSocketコマンドを送信しさえすればよい。ウェブサーバは、メディアファイル及びHTMLページを保持する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ドラッグ・アンド・ドロップ機能がUIの間で実施される場合、ブラウザのウィンドウサイズに応じて２つのUI上のマウス移動可能な範囲が同じでない可能性があるという問題が生じる。ローカル（第２）のブラウザサイズが遠隔（第１）のブラウザサイズより小さい場合、マウス移動が適切にスケーリングされない場合に、遠隔（第１）の画面上に仮想マウスカーソルをどのように表示するかの混乱が生じる可能性がある。
【０００６】
本発明は、第２の画面の適用シナリオを実現するためにUI技術を使用する。すなわち、遠隔UIサーバは、第１の画面（デバイス）の第１のUIと、他の画面（デバイス）の第２のUIとをホストすることができる。本発明は、CE-HTM又はHTML5のようなブラウザに基づく遠隔UI技術を使用する。ただし、双方のUIは、ブラウザのウィンドウにより制限される。
【０００７】
本発明は、以下の例のようなユースケースを紹介する。Tom及び彼の兄は、家でTV番組を見ている。Tomはショートメッセージを受信し、自分のiPhoneでショートメッセージをブラウズする。このショートメッセージは、複数のおもしろい写真が埋め込まれたリッチテキストメッセージである。Tomはこれらの写真を彼の兄と共有したいと思う。Tomは、閲覧のために彼の電話を彼の兄に渡す必要はない。Tomは、これらのおもしろい写真を１つずつドラッグし、TVアイコンにドロップし、そして、写真をTV画面の適切な位置に配置させるため、Tomは、自分の指をiPhoneの画面上で動かす。最終的に、Tomの兄はこれらの写真をTV上で閲覧することができる。
【０００８】
インターネットブラウザに基づく遠隔UIを使用してマウスカーソル位置を送信することは、マウスが第２のUIのブラウザのウィンドウから出るときに、第１のUIのマウス位置を明示的に定めない。また逆も同様である。２つのUIは、異なるウィンドウサイズのブラウザを使用してもよい。異なるウィンドウサイズは、モニタ（例えば、デジタルTV又はラップトップ画面）によりサポートされる分解能及びユーザにより選択されたウィンドウサイズに依存する。本発明は、第２のUIのブラウザのウィンドウサイズと第１のUIのブラウザのウィンドウサイズとの比に従って第１のUI上で仮想マウスカーソルを位置指定する方法を提案する。
【課題を解決するための手段】
【０００９】
遠隔ブラウザにより、ローカルマウス情報とローカルウィンドウサイズとを受信し、仮想マウス位置を計算し、遠隔ブラウザのウィンドウ上に仮想マウス位置を表示することを含む方法が記載される。また、ローカルマウス情報とローカルウィンドウサイズとをWebSocketサーバに送信することを含む方法も記載される。更に、WebSocketサーバにより、ローカルマウス情報とローカルウィンドウサイズとを遠隔ブラウザに転送することを含む方法も記載される。
【図面の簡単な説明】
【００１０】
【図１】複数の画面上のカーソル位置を示す図
【図２】ローカルコンピュータの観点からの本発明の方法の例示的な実施例のフローチャート
【図３】WebSocketサーバの観点からの本発明の方法の例示的な実施例のフローチャート
【図４】遠隔コンピュータの観点からの本発明の方法の例示的な実施例のフローチャート
【発明を実施するための形態】
【００１１】
本発明は、添付図面と共に読まれたときに以下の詳細な説明から最も良く理解される。図面は、以下に簡単に説明する以下の図面を含む。
【００１２】
本発明は、遠隔ブラウザ上の仮想マウス位置を判定するために、ローカルブラウザのマウス位置を解釈する方法を対象とする。仮想マウスカーソルの位置指定は重要な機能である。以下では、関係する機能をサポートする方法について説明する。
【００１３】
以下の擬似コードは、遠隔コンピュータの遠隔UIで実行され、ローカルマウスカーソル位置（X,Y）の位置に従って仮想カーソルの位置を戻す。
【００１４】
入力パラメータは、ローカルの遠隔UIにより送信されたWebSocketコマンド列により割り当てられる。
【００１５】
【表１】
2014533396.tif 000003
localXは、ローカルブラウザのウィンドウ上のローカルマウスの現在位置Xである。localYは、ローカルブラウザのウィンドウ上のローカルマウスの現在位置Yである。localWidthは、ローカルブラウザのウィンドウの幅である。localHeightは、ローカルブラウザのウィンドウの高さである。remoteXは、遠隔ブラウザのウィンドウ上の仮想マウスカーソル位置Xである。remoteYは、遠隔ブラウザのウィンドウ上の仮想マウスカーソル位置Yである。remoteWidthは、遠隔ブラウザのウィンドウの幅である。remoteHeightは、遠隔ブラウザのウィンドウの高さである。scaleWは、localWidthとremoteWidthとの間のアスペクト比である。scaleHは、localHeightとremoteHeightとの間のアスペクト比である。
【００１６】
ローカルラップトップ（コンピュータ、デバイス）と遠隔コンピュータ（デバイス）との間に接続が確立された場合、ローカルラップトップ（コンピュータ、デバイス）は、そのローカル画面の高さ、ローカル画面の幅、カーソルのローカルx位置及びカーソルのローカルy位置を送信する。遠隔コンピュータ（デバイス）は、遠隔コンピュータ（デバイス）上のローカルカーソルの仮想カーソル位置を計算する。遠隔コンピュータは、ラップトップ（コンピュータ、デバイス）のローカル画面の高さ、ラップトップ（コンピュータ、デバイス）のローカル画面の幅、ラップトップ（コンピュータ、デバイス）のカーソルのローカルx位置及びラップトップ（コンピュータ、デバイス）のカーソルのローカルy位置を受信する。遠隔コンピュータ（デバイス）は、遠隔コンピュータ（デバイス）上のローカルカーソルの仮想カーソル位置を計算する。
【００１７】
ラップトップ（ローカルデバイス）及び遠隔コンピュータ（デバイス）は、これらの間の接続を確立する。ローカルコンピュータ（ラップトップ、デバイス）は、関数呼び出しでパラメータを遠隔コンピュータ（デバイス）に送信する。擬似コードでは、遠隔コンピュータは、パラメータを受信し、関数呼び出しのコードを実行する。まず、遠隔コンピュータは、ローカルの幅（localWidth）により除算された遠隔の幅（remoteWidth）として幅のスケール（scaleW）を計算し、ローカルの高さ（localHeight）により除算された遠隔の高さ（remoteHeight）として高さのスケール（scaleH）を計算する。remoteXは、scaleW（倍）により乗算されたlocalXに等しくなるように設定される。remoteYは、scaleH（倍）により乗算されたlocalYに等しくなるように設定される。
【００１８】
遠隔コンピュータ（デバイス）は、遠隔コンピュータのプロセッサで関数呼び出しを実行する。プロセッサは、特定用途向け集積回路（ASIC：application  specific  integrated  circuit）又はフィールドプログラマブルゲートアレイ（FPGA：field  programmable  gate  array）のような特殊用途のプロセッサでもよく、仮想カーソル位置を判定するために関数呼び出しを実行することができる他のプロセッサでもよい。ローカルコンピュータ及び遠隔コンピュータは、ラップトップ、コンピュータ、パーソナルデジタルアシスタント（PDA：personal  digital  assistant）、デュアルモード・スマートフォン、タブレットコンピュータデバイス、デジタルテレビ（TV）又は他の同等なデバイスでもよい。
【００１９】
図１は、複数の画面上のカーソル位置を示している。遠隔コンピュータ（デバイス、ラップトップ）及びローカルコンピュータ（ラップトップ、デバイス）は、WebSocketサーバと通信している。ローカルコンピュータ（ラップトップ、デバイス）及び遠隔コンピュータ（ラップトップ、デバイス）がこれらの間に接続を確立した場合、ローカルコンピュータ（ラップトップ、デバイス）は、関数呼び出し及びパラメータを遠隔コンピュータ（ラップトップ、デバイス）に送信する。パラメータは、localWidth、localHeight、localX及びlocalYを含む。遠隔コンピュータ（ラップトップ、デバイス）は、関数呼び出し及びパラメータを受信し、関数呼び出しのコードを実行することにより、マウスの仮想カーソル位置を計算する。全ての通信はWebSocketサーバを介する。すなわち、関数呼び出しは、ローカルコンピュータ（ラップトップ、デバイス）が関数呼び出しをWebSocketサーバに送信し、WebSocketサーバが関数呼び出し及びパラメータを遠隔コンピュータ（ラップトップ、デバイス）に送信することにより、関数呼び出し及びパラメータを遠隔コンピュータ（ラップトップ、デバイス）に送信することで呼び出される。
【００２０】
図２は、ローカルコンピュータ（ラップトップ、デバイス）の観点からの本発明の方法の例示的な実施例のフローチャートである。遠隔コンピュータ（ラップトップ、デバイス）とローカルコンピュータ（ラップトップ、デバイス）との間の接続が確立されていることを仮定する。205において、ローカルブラウザのウィンドウサイズ（localWidth及びlocalHeight）及びローカルカーソル位置（localX及びlocalY）が、関数呼び出しでWebSocketサーバに送信される。
【００２１】
図３は、WebSocketサーバの観点からの本発明の方法の例示的な実施例のフローチャートである。305において、WebSocketサーバは、情報（localWidth、localHeight、localX及びlocalY）を関数呼び出しで遠隔ブラウザに転送（送信、伝送）する。
【００２２】
図４は、遠隔コンピュータの観点からの本発明の方法の例示的な実施例のフローチャートである。405において、遠隔ブラウザは、WebSocketサーバからローカルマウス情報とローカル画面サイズと関数呼び出しとを受信し、仮想マウス位置を計算する（擬似コードの説明及び図１を参照）。410において、遠隔ブラウザは、そのブラウザのウィンドウに仮想マウスを表示する。仮想マウスカーソルは、遠隔ブラウザ上のそれぞれの角に届いてもよい。仮想マウスカーソルは、遠隔オブジェクトをドラッグし、そのオブジェクトをローカルブラウザのウィンドウにドロップしてもよい。
【００２３】
本発明は、ハードウェア、ソフトウェア、ファームウェア、特殊用途プロセッサ又はこれらの組み合わせの様々な形式で実装されてもよいことが分かる。好ましくは、本発明は、ハードウェアとソフトウェアとの組み合わせとして実装される。更に、ソフトウェアは、プログラム記憶デバイスに具体的に具現されたアプリケーションプログラムとして実装されることが好ましい。アプリケーションプログラムは、いずれか適切なアーキテクチャを有する機械にアップロードされて実行されてもよい。機械は、１つ以上の中央処理装置（CPU：central  processing  unit）、ランダムアクセスメモリ（RAM：random  access  memory）及び入出力（I/O）インタフェースのようなハードウェアを有するコンピュータプラットフォーム上に実装されることが好ましい。コンピュータプラットフォームはまた、オペレーティングシステムとマイクロ命令コードとを含む。ここに記載の様々な処理及び機能は、マイクロ命令コードの一部でもよく、オペレーティングシステムを介して実行されるアプリケーションプログラムの一部（又はこれらの組み合わせ）でもよい。更に、更なるデータ記憶デバイス及び印刷デバイスのように、様々な他の周辺デバイスがコンピュータプラットフォームに接続されてもよい。
添付図面に示す構成要素のシステムコンポーネント及び方法のステップのいくつかはソフトウェアで実装されることが好ましいため、システムコンポーネント（又は処理ステップ）の間の実際の接続は、本発明がプログラムされる方法に応じて異なってもよいことが分かる。ここでの教示を前提として、当業者は、本発明の前記及び同様の実装又は構成を検討することができる。
【図１】
2014533396.tif 000004
【図２】
2014533396.tif 000005
【図３】
2014533396.tif 000006
【図４】
2014533396.tif 000007
【手続補正書】
【提出日】平成26年5月1日(2014.5.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
遠隔ブラウザにより、ローカルマウス情報とローカルウィンドウサイズとを受信するステップと、
仮想マウス位置を計算するステップと、
前記遠隔ブラウザのウィンドウ上に前記仮想マウス位置を表示するステップと
を有する方法。
【請求項２】
前記ローカルマウス情報及びローカルウィンドウサイズは、関数呼び出しのパラメータとして受信される、請求項１に記載の方法。
【請求項３】
前記遠隔ブラウザは、遠隔コンピュータデバイスで実行される、請求項１に記載の方法。
【請求項４】
前記遠隔コンピュータデバイスは、ラップトップ、デュアルモード・スマートフォン、iPhone、iPad、iPod、タブレットデバイス及びテレビのうち１つである、請求項３に記載の方法。
【請求項５】
ローカルマウス情報とローカルウィンドウサイズとをWebSocketサーバに送信するステップを有する方法。
【請求項６】
前記ローカルマウス情報及びローカルウィンドウサイズは、関数呼び出しのパラメータとして受信される、請求項５に記載の方法。
【国際調査報告】
2014533396.tif 000008
2014533396.tif 000009