(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6584954
(24)【登録日】2019年9月13日
(45)【発行日】2019年10月2日
(54)【発明の名称】スクローリングを修正するためのクランピングの使用
(51)【国際特許分類】
G06F 3/0485 20130101AFI20190919BHJP
G06F 3/0488 20130101ALI20190919BHJP
【FI】
G06F3/0485
G06F3/0488 130
【請求項の数】23
【全頁数】27
(21)【出願番号】特願2015-545204(P2015-545204)
(86)(22)【出願日】2013年11月27日
(65)【公表番号】特表2016-502722(P2016-502722A)
(43)【公表日】2016年1月28日
(86)【国際出願番号】US2013072116
(87)【国際公開番号】WO2014085514
(87)【国際公開日】20140605
【審査請求日】2016年11月24日
(31)【優先権主張番号】13/689,598
(32)【優先日】2012年11月29日
(33)【優先権主張国】US
(31)【優先権主張番号】13194371.4
(32)【優先日】2013年11月26日
(33)【優先権主張国】EP
(73)【特許権者】
【識別番号】508178054
【氏名又は名称】フェイスブック,インク.
(74)【代理人】
【識別番号】110002974
【氏名又は名称】特許業務法人World IP
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ハウザー、ジャスパー リード
(72)【発明者】
【氏名】シン、ジャスリーン
(72)【発明者】
【氏名】カルドア、ジョナサン エム.
(72)【発明者】
【氏名】ベイリー、ウィリアム エス.
(72)【発明者】
【氏名】コレスニコフ、ウラジミール
【審査官】
酒井 優一
(56)【参考文献】
【文献】
特開2010−182029(JP,A)
【文献】
特開2011−191577(JP,A)
【文献】
米国特許出願公開第2010/0095240(US,A1)
【文献】
特開2012−168890(JP,A)
【文献】
特開2005−044036(JP,A)
【文献】
特表2012−503223(JP,A)
【文献】
米国特許出願公開第2008/0165161(US,A1)
【文献】
米国特許出願公開第2010/0149115(US,A1)
【文献】
米国特許出願公開第2011/0185321(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/0485
G06F 3/0488
(57)【特許請求の範囲】
【請求項1】
コンピューティングデバイスのタッチスクリーン上に表示されたグラフィカルユーザインターフェース(GUI)内でスクロールするための第1のユーザ入力であって、前記タッチスクリーン上での第1の開始点と1つまたは複数の第1の軌跡点とを含む第1の軌跡を含む前記タッチスクリーン上での第1のタッチジェスチャを含む前記第1のユーザ入力を前記コンピューティングデバイスが受信し、
前記第1の開始点に対して画定される前記タッチスクリーンの複数の領域であって、前記複数の領域のうちの第1の領域が第1のスクロール軸に対応し、前記複数の領域のうちの第2の領域が前記第1のスクロール軸に対して直角をなす第2のスクロール軸に対応している前記複数の領域を前記コンピューティングデバイスが判定し、
前記第1の軌跡のすべてまたは一部が前記第1の領域に収容された場合に前記コンピューティングデバイスは前記第1の軌跡が前記第1の領域に対応すると判定し、
前記第1の軌跡が前記第1の領域に対応するとの判定に基づき、前記コンピューティングデバイスが、前記第1のユーザ入力に従って前記第1のスクロール軸と平行かつ直線的に前記GUI内でスクロールし、
前記GUI内でスクロールするための第2のユーザ入力を前記コンピューティングデバイスが受信し、前記第2のユーザ入力は、前記タッチスクリーン上での第2の開始点と1つまたは複数の第2の軌跡点とを含む第2の軌跡を含む第2のタッチジェスチャを含み、
前記第1のユーザ入力から所定の時間量以内に前記第2のユーザ入力が生じた場合に、前記コンピューティングデバイスが、前記第2のユーザ入力の前記第1のスクロール軸に沿う第1の成分に従って前記第1のスクロール軸と平行かつ直線的に前記GUI内でスクロールし、
前記第1のユーザ入力から所定の時間量後に前記第2のユーザ入力が生じた場合に、前記第2のユーザ入力の前記第2の軌跡が前記複数の領域のうちの前記第2の領域に対応する場合、前記コンピューティングデバイスが、前記第2のユーザ入力の前記第2のスクロール軸に沿う第2の成分に従って前記第2のスクロール軸と平行かつ直線的に前記GUI内でスクロールすることを備える方法。
【請求項2】
前記複数の領域のうちの第3の領域も前記第1のスクロール軸に対応し、
前記複数の領域のうちの第4の領域も前記第2のスクロール軸に対応し、
前記第1の軌跡のすべてまたは一部が前記第3の領域に収容された場合に前記コンピューティングデバイスは前記第1の軌跡が前記第3の領域に対応すると判定し、
前記第1の軌跡が前記第3の領域に対応するとの判定に基づき、前記コンピューティングデバイスが、前記第1のユーザ入力に従って前記第1のスクロール軸に平行かつ直線的に前記GUI内でスクロールし、
前記第1の軌跡のすべてまたは一部が前記第4の領域に収容された場合に前記コンピューティングデバイスは前記第1の軌跡が前記第4の領域に対応すると判定し、
前記第1の軌跡が前記第4の領域に対応するとの判定に基づき、前記コンピューティングデバイスが、前記第1のユーザ入力に従って、前記第2のスクロール軸に平行かつ直線的に前記GUI内でスクロールすることをさらに備える請求項1に記載の方法。
【請求項3】
前記複数の領域のうちの第3の領域は前記第1のスクロール軸または前記第2のスクロール軸に対応しておらず、
前記第1の軌跡のすべてまたは一部が前記第3の領域に収容された場合に前記コンピューティングデバイスは前記第1の軌跡が前記第3の領域に対応すると判定し、
前記第1の軌跡が前記第3の領域に対応するとの判定に基づき、前記コンピューティングデバイスが、前記第1のユーザ入力に従って前記第1のスクロール軸及び前記第2のスクロール軸から独立して前記GUI内でスクロールすることをさらに備える請求項1に記載の方法。
【請求項4】
各領域は、前記第1の開始点を中心とした所定の長さの半径を有する円の扇形である、請求項1に記載の方法。
【請求項5】
各扇形は前記円の円周の8分の1である円弧を含む、請求項4に記載の方法。
【請求項6】
前記第1のスクロール軸は水平であり、前記第2のスクロール軸は垂直である、請求項1に記載の方法。
【請求項7】
前記第1の軌跡のすべてまたは一部が前記第1の領域または前記第2の領域に収容された場合に前記コンピューティングデバイスは前記第1の軌跡が前記第1の領域または前記第2の領域に対応すると判定し、
前記第1の軌跡が前記第1の領域または前記第2の領域に対応するとの判定に基づき、前記コンピューティングデバイスが、前記第1のタッチジェスチャ後の所定の時間量の間、前記第1のスクロール軸または前記第2のスクロール軸の対応するものにもっぱら平行かつ直線的に前記GUI内でスクロールすることをさらに備える請求項1に記載の方法。
【請求項8】
隣接するコンテンツオブジェクトの境界によって画定される前記隣接するコンテンツオブジェクトの所定量が、前記GUIのビューポートにまたは前記GUIに移動すると、前記隣接するコンテンツオブジェクトが、自動的に所定の場所にはめ込まれて、前記ビューポートまたは前記GUIに表示される唯一のコンテンツオブジェクトとなる、請求項1乃至7のいずれか一項に記載の方法。
【請求項9】
タッチスクリーンと、
1つまたは複数のプロセッサと、
前記プロセッサに結合されるとともに前記プロセッサによって実行可能な命令を含むメモリとを備えるシステムであって、前記プロセッサは、前記命令を実行すると請求項1乃至8のいずれか一項に記載の方法を行うように動作可能である、システム。
【請求項10】
実行されると請求項1乃至8のいずれか一項に記載の方法を行うように動作可能なソフトウェアを具現化する、1つまたは複数のコンピュータ可読非一時的記録媒体。
【請求項11】
タッチスクリーンと、
1つまたは複数のプロセッサと、
前記プロセッサに結合されるとともに前記プロセッサによって実行可能な命令を含むメモリとを備えるシステムであって、
前記プロセッサは、前記命令を実行すると、
前記タッチスクリーン上に表示されたグラフィカルユーザインターフェース(GUI)内でスクロールするための第1のユーザ入力であって、前記タッチスクリーン上での第1の開始点と1つまたは複数の第1の軌跡点とを含む第1の軌跡を含む前記タッチスクリーン上での第1のタッチジェスチャを含む前記第1のユーザ入力を受信し、
前記第1の開始点に対して画定される前記タッチスクリーンの複数の領域であって、前記複数の領域のうちの第1の領域が第1のスクロール軸に対応し、前記複数の領域のうちの第2の領域が前記第1のスクロール軸に対して直角をなす第2のスクロール軸に対応している前記複数の領域を判定し、
前記第1の軌跡のすべてまたは一部が前記第1の領域に収容された場合に前記第1の軌跡が前記第1の領域に対応すると判定し、
前記第1の軌跡が前記第1の領域に対応するとの判定に基づき、前記第1のユーザ入力に従って前記第1のスクロール軸に平行かつ直線的に前記GUI内でスクロールし、
前記GUI内でスクロールするための第2のユーザ入力を受信し、前記第2のユーザ入力は、前記タッチスクリーン上での第2の開始点と1つまたは複数の第2の軌跡点とを含む第2の軌跡を含む第2のタッチジェスチャを含み、
前記第1のユーザ入力から所定の時間量以内に前記第2のユーザ入力が生じた場合に、前記第2のユーザ入力の前記第1のスクロール軸に沿う第1の成分に従って前記第1のスクロール軸に平行かつ直線的に前記GUI内でスクロールし、
前記第1のユーザ入力から所定の時間量後に前記第2のユーザ入力が生じた場合に、前記第2のユーザ入力の前記第2の軌跡が前記複数の領域のうちの前記第2の領域に対応する場合、前記第2のユーザ入力の前記第2のスクロール軸に沿う第2の成分に従って前記第2のスクロール軸と平行かつ直線的に前記GUI内でスクロールするように動作可能である、システム。
【請求項12】
前記複数の領域のうちの第3の領域も前記第1のスクロール軸に対応し、
前記複数の領域のうちの第4の領域も前記第2のスクロール軸に対応し、
前記プロセッサは、前記命令を実行すると、
前記第1の軌跡のすべてまたは一部が前記第3の領域に収容された場合に前記第1の軌跡が前記第3の領域に対応すると判定し、
前記第1の軌跡が前記第3の領域に対応するとの判定に基づき、前記第1のユーザ入力に従って前記第1のスクロール軸に平行かつ直線的に前記GUI内でスクロールし、
前記第1の軌跡のすべてまたは一部が前記第4の領域に収容された場合に前記第1の軌跡が前記第4の領域に対応すると判定し、
前記第1の軌跡が前記第4の領域に対応するとの判定に基づき、前記第1のユーザ入力に従って前記第2のスクロール軸に平行かつ直線的に前記GUI内でスクロールするようにさらに動作可能である、請求項11に記載のシステム。
【請求項13】
前記複数の領域のうちの第3の領域が、前記第1のスクロール軸または前記第2のスクロール軸に対応しておらず、
前記プロセッサは、前記命令を実行すると、
前記第1の軌跡のすべてまたは一部が前記第3の領域に収容された場合に前記第1の軌跡が前記第3の領域に対応すると判定し、
前記第1の軌跡が前記第3の領域に対応するとの判定に基づき、前記第1のユーザ入力に従って前記第1のスクロール軸および前記第2のスクロール軸から独立して前記GUI内でスクロールするようにさらに動作可能である、請求項11に記載のシステム。
【請求項14】
各領域は、前記第1の開始点を中心とした所定の長さの半径を有する円の扇形である、請求項11に記載のシステム。
【請求項15】
各扇形は前記円の円周の8分の1である円弧を含む、請求項14に記載のシステム。
【請求項16】
前記第1のスクロール軸は水平であり、前記第2のスクロール軸は垂直である、請求項11に記載のシステム。
【請求項17】
前記プロセッサは、前記命令を実行すると、
前記第1の軌跡のすべてまたは一部が前記第1の領域または前記第2の領域に収容された場合に前記第1の軌跡が前記第1の領域または前記第2の領域に対応すると判定し、
前記第1の軌跡が前記第1の領域または前記第2の領域に対応するとの判定に基づき、前記第1のタッチジェスチャ後の所定の時間量の間、前記第1のスクロール軸または前記第2のスクロール軸の対応するものにもっぱら平行かつ直線的に前記GUI内でスクロールするようにさらに動作可能である、請求項11に記載のシステム。
【請求項18】
1つまたは複数のコンピュータ可読非一時的記録媒体であって、実行されると、
タッチスクリーン上に表示されたグラフィカルユーザインターフェース(GUI)内でスクロールするための第1のユーザ入力であって、前記タッチスクリーン上での第1の開始点と1つまたは複数の第1の軌跡点とを含む第1の軌跡を含む前記タッチスクリーン上での第1のタッチジェスチャを含む前記第1のユーザ入力を受信し、
前記第1の開始点に対して画定される前記タッチスクリーンの複数の領域であって、前記複数の領域のうちの第1の領域が第1のスクロール軸に対応し、前記複数の領域のうちの第2の領域が前記第1のスクロール軸に対して直角をなす第2のスクロール軸に対応している前記複数の領域を判定し、
前記第1の軌跡のすべてまたは一部が前記第1の領域に収容された場合に前記第1の軌跡が前記第1の領域に対応すると判定し、
前記第1の軌跡が前記第1の領域に対応するとの判定に基づき、前記第1のユーザ入力に従って前記第1のスクロール軸に平行かつ直線的に前記GUI内でスクロールし、
前記GUI内でスクロールするための第2のユーザ入力を受信し、前記第2のユーザ入力は、前記タッチスクリーン上での第2の開始点と1つまたは複数の第2の軌跡点とを含む第2の軌跡を含む第2のタッチジェスチャを含み、
前記第1のユーザ入力から所定の時間量以内に前記第2のユーザ入力が生じた場合に、前記第2のユーザ入力の前記第1のスクロール軸に沿う第1の成分に従って前記第1のスクロール軸に平行かつ直線的に前記GUI内でスクロールし、
前記第1のユーザ入力から所定の時間量後に前記第2のユーザ入力が生じた場合に、前記第2のユーザ入力の前記第2の軌跡が前記複数の領域のうちの前記第2の領域に対応する場合、前記第2のユーザ入力の前記第2のスクロール軸に沿う第2の成分に従って前記第2のスクロール軸と平行かつ直線的に前記GUI内でスクロールするように動作可能なソフトウェアを具現化する、1つまたは複数のコンピュータ可読非一時的記録媒体。
【請求項19】
前記複数の領域のうちの第3の領域も前記第1のスクロール軸に対応し、
前記複数の領域のうちの第4の領域も前記第2のスクロール軸に対応し、
前記ソフトウェアは、実行されると、
前記第1の軌跡のすべてまたは一部が前記第3の領域に収容された場合に前記第1の軌跡が前記第3の領域に対応すると判定し、
前記第1の軌跡が前記第3の領域に対応するとの判定に基づき、前記第1のユーザ入力に従って前記第1のスクロール軸に平行かつ直線的に前記GUI内でスクロールし、
前記第1の軌跡のすべてまたは一部が前記第4の領域に収容された場合に前記第1の軌跡が前記第4の領域に対応すると判定し、
前記第1の軌跡が前記第4の領域に対応するとの判定に基づき、前記第1のユーザ入力に従って前記第2のスクロール軸に平行かつ直線的に前記GUI内でスクロールするようにさらに動作可能である、請求項18に記載の記録媒体。
【請求項20】
前記複数の領域のうちの第3の領域が、前記第1のスクロール軸または前記第2のスクロール軸に対応しておらず、
前記ソフトウェアは、実行されると、
前記第1の軌跡のすべてまたは一部が前記第3の領域に収容された場合に前記第1の軌跡が前記第3の領域に対応すると判定し、
前記第1の軌跡が前記第3の領域に対応するとの判定に基づき、前記第1のユーザ入力に従って前記第1のスクロール軸および前記第2のスクロール軸から独立して前記GUI内でスクロールするようにさらに動作可能である、請求項18に記載の記録媒体。
【請求項21】
各領域は、前記第1の開始点を中心とした所定の長さの半径を有する円の扇形であり、各扇形は、前記円の円周の8分の1である円弧を含む、請求項18に記載の記録媒体。
【請求項22】
前記第1のスクロール軸が水平であり、前記第2のスクロール軸が垂直である、請求項18に記載の記録媒体。
【請求項23】
前記ソフトウェアは、実行されると、
前記第1の軌跡のすべてまたは一部が前記第1の領域または前記第2の領域に収容された場合に前記第1の軌跡が前記第1の領域または前記第2の領域に対応すると判定し、
前記第1の軌跡が前記第1の領域または前記第2の領域に対応するとの判定に基づき、前記第1のタッチジェスチャ後の所定の時間量の間、前記第1のスクロール軸または前記第2のスクロール軸の対応するものにもっぱら平行かつ直線的に前記GUI内でスクロールするようにさらに動作可能である、請求項18に記載の記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、モバイルコンピューティングデバイスに関する。
【背景技術】
【0002】
スマートフォン、タブレットコンピュータ、またはラップトップコンピュータなどのモバイルコンピューティングデバイスは、その位置、方向、または向きを判定するための機能、たとえば、GPS受信機、コンパス、またはジャイロスコープを含むことがある。そのようなデバイスはまた、BLUETOOTH通信、近距離無線通信(NFC)、もしくは赤外線(IR)通信、または、ワイヤレスローカルエリアネットワーク(WLAN)もしくはセルラー電話ネットワークとの通信などのワイヤレス通信のための機能を含むことがある。そのようなデバイスは、1つまたは複数のカメラ、スキャナ、タッチスクリーン、マイクロフォン、またはスピーカも含むことがある。モバイルコンピューティングデバイスはまた、ゲーム、ウェブブラウザ、またはソーシャルネットワーキングアプリケーションなどのソフトウェアアプリケーションを実行することがある。ソーシャルネットワーキングアプリケーションを用いて、ユーザは、自分のソーシャルネットワークにおける他のユーザと、接続し、通信し、情報を共有することができる。
【発明の概要】
【0003】
特定の実施形態において、(モバイルコンピューティングデバイスでありえる)コンピューティングデバイスは、コンピューティングデバイスのタッチスクリーン上に表示されたグラフィカルユーザインターフェース(GUI)内でスクロールするためのユーザ入力を受信することがある。ユーザ入力は、タッチスクリーン上でのタッチジェスチャを含むことができ、タッチジェスチャは、タッチスクリーン上での開始点と1つまたは複数の他の点(たとえば、終止点)とを有する軌跡を含むことがある。コンピューティングデバイスは、開始点に対して画定されるタッチスクリーンの複数の領域を判定することがある。それらの領域のうちの第1の領域は、第1のスクロール軸(たとえば、水平軸)に対応し、第2の領域は、第1のスクロール軸に対して直角をなしていてよい第2のスクロール軸(たとえば、垂直軸)に対応することがある。軌跡が第1の領域に対応するならば、コンピューティングデバイスは、前記ユーザ入力に従って第1のスクロール軸に平行かつ直線的にGUI内でスクロールすることがある。軌跡が第2の領域に対応するならば、コンピューティングデバイスは、前記ユーザ入力に従って第2のスクロール軸に平行かつ直線的にGUI内でスクロールすることがある。タッチスクリーンの一部の他の領域も第1の軸または第2の軸に対応することがある。加えて、タッチスクリーンのさらに他の領域は、どちらの軸にも対応していないことがあり、軌跡がこれらの領域のうちの1つに対応するならば、コンピューティングデバイスは、前記ユーザ入力に従って第1のスクロール軸および第2のスクロール軸から独立してGUI内でスクロールすることがある。
【0004】
本発明による実施形態は、とりわけ、方法、記録媒体、およびシステムを対象とする添付の請求項に開示されており、1つの請求項カテゴリ、たとえば方法において述べた任意の特徴が、別の請求項カテゴリ、たとえば、媒体またはシステムにおいて特許請求されることがある。
【0005】
一実施形態の方法は、コンピューティングデバイスのタッチスクリーン上に表示されたグラフィカルユーザインターフェース(GUI)内でスクロールするためのユーザ入力であって、前記タッチスクリーン上での開始点と1つまたは複数の他の点とを含む軌跡を含む前記タッチスクリーン上でのタッチジェスチャを含む前記ユーザ入力をコンピューティングデバイスが受信し、前記開始点に対して画定されるタッチスクリーンの複数の領域であって、前記複数の領域のうちの第1の領域が第1のスクロール軸に対応し、前記複数の領域のうちの第2の領域が前記第1のスクロール軸に対して直角をなす第2のスクロール軸に対応している前記複数の領域をコンピューティングデバイスが判定し、前記軌跡が前記第1の領域に対応するならば、前記ユーザ入力に従って、コンピューティングデバイスが前記第1のスクロール軸に平行かつ直線的にGUI内でスクロールし、前記軌跡が前記第2の領域に対応するならば、前記ユーザ入力に従って、コンピューティングデバイスが第2のスクロール軸に平行かつ直線的にGUI内でスクロールすることを備える。
【0006】
一実施形態では、前記複数の領域のうちの第3の領域も第1のスクロール軸に対応し、前記複数の領域のうちの第4の領域も第2のスクロール軸に対応しており、方法は、軌跡が第3の領域に対応するならば、前記ユーザ入力に従って、コンピューティングデバイスが第1のスクロール軸に平行かつ直線的にGUI内でスクロールし、軌跡が第4の領域に対応するならば、前記ユーザ入力に従ってコンピューティングデバイスが第2のスクロール軸に平行かつ直線的にGUI内でスクロールすることをさらに含む。
【0007】
さらなる実施形態では、前記複数の領域のうちの第3の領域が第1のスクロール軸または第2のスクロール軸に対応しておらず、方法は、軌跡が第3の領域に対応するならば、前記ユーザ入力に従って第1のスクロール軸および第2のスクロール軸から独立してコンピューティングデバイスがGUI内でスクロールすることをさらに含む。
【0008】
とりわけ、各領域は、開始点における中心と、所定の長さの半径とを有する円の扇形であり、好ましくは各扇形が、円の円周の8分の1である円弧を含む。
有利な実施形態において、第1のスクロール軸は水平であり、第2のスクロール軸は垂直である。
【0009】
好ましくは、方法は、軌跡が第1の領域または第2の領域に対応するならば、タッチジェスチャ後の所定の時間量の間、第1のスクロール軸または第2のスクロール軸の対応するものにもっぱら平行かつ直線的に、コンピューティングデバイスがGUI内でスクロールすることをさらに含む。
【0010】
その上、隣接するコンテンツオブジェクトの境界によって画定される隣接するコンテンツオブジェクトの所定量、たとえば50%が、GUIのビューポートにまたはGUIに移動すると、隣接するコンテンツオブジェクトが、自動的に所定の場所にはめ込まれて、ビューポートまたはGUIに表示される唯一のコンテンツオブジェクトとなることができる。
【0011】
さらなる実施形態において、システムは、タッチスクリーンと、1つまたは複数のプロセッサと、プロセッサに結合されるとともにプロセッサによって実行可能な命令を含むメモリとを含み、プロセッサは命令を実行すると本発明による方法を行うように動作可能である。
【0012】
さらなる実施形態において、実行されると本発明による方法を行うように動作可能なソフトウェアを具現化する、1つまたは複数のコンピュータ可読非一時的記録媒体が提供されてよい。
【0013】
特許請求され得るさらなる実施形態において、システムが、タッチスクリーンと、1つまたは複数のプロセッサと、プロセッサに結合されるとともにプロセッサによって実行可能な命令を含むメモリとを含み、プロセッサは命令を実行すると、タッチスクリーン上に表示されたグラフィカルユーザインターフェース(GUI)内でスクロールするためのユーザ入力であって、タッチスクリーン上での開始点と1つまたは複数の他の点とを含む軌跡を含むタッチスクリーン上でのタッチジェスチャを含む前記ユーザ入力を受信し、開始点に対して画定されるタッチスクリーンの複数の領域であって、前記複数の領域のうちの第1の領域が第1のスクロール軸に対応し、前記複数の領域のうちの第2の領域が前記第1のスクロール軸に対して直角をなす第2のスクロール軸に対応している前記複数の領域を判定し、軌跡が第1の領域に対応するならば、前記ユーザ入力に従って第1のスクロール軸に平行かつ直線的にGUI内でスクロールし、軌跡が第2の領域に対応するならば、前記ユーザ入力に従って第2のスクロール軸に平行かつ直線的にGUI内でスクロールするように動作可能である。
【0014】
一実施形態のシステムでは、複数の領域のうちの第3の領域も第1のスクロール軸に対応し、複数の領域のうちの第4の領域も第2のスクロール軸に対応し、プロセッサは、命令を実行すると、軌跡が第3の領域に対応するならば、前記ユーザ入力に従って第1のスクロール軸に平行かつ直線的にGUI内でスクロールし、軌跡が第4の領域に対応するならば、前記ユーザ入力に従って第2のスクロール軸に平行かつ直線的にGUI内でスクロールするようにさらに動作可能である。
【0015】
さらなる実施形態のシステムでは、複数の領域のうちの第3の領域が第1のスクロール軸または第2のスクロール軸に対応しておらず、プロセッサは、命令を実行すると、軌跡が第3の領域に対応するならば、前記ユーザ入力に従って第1のスクロール軸および第2のスクロール軸から独立してGUI内でスクロールするように、さらに動作可能である。
【0016】
さらなる実施形態のシステムでは、各領域は、開始点を中心とした所定の長さの半径を有する円の扇形であり、各扇形がその円の円周の8分の1である円弧を含むことができる。
【0017】
一実施形態のシステムでは、第1のスクロール軸は水平で、第2のスクロール軸は垂直である。
さらなる実施形態のシステムでは、プロセッサは、命令を実行すると、軌跡が第1の領域または第2の領域に対応するならば、タッチジェスチャ後の所定の時間量の間、第1のスクロール軸または第2のスクロール軸の対応するものにもっぱら平行かつ直線的にGUI内でスクロールするように、さらに動作可能である。
【0018】
特許請求され得る別の実施形態が提供する1つまたは複数のコンピュータ可読非一時的記録媒体は、実行されると、タッチスクリーン上に表示されたグラフィカルユーザインターフェース(GUI)内でスクロールするためのユーザ入力であって、タッチスクリーン上での開始点と1つまたは複数の他の点とを含む軌跡を含むタッチスクリーン上でのタッチジェスチャを含むユーザ入力を受信し、開始点に対して画定されるタッチスクリーンの複数の領域であって、前記複数の領域のうちの第1の領域が第1のスクロール軸に対応し、複数の領域のうちの第2の領域が第1のスクロール軸に対して直角をなす第2のスクロール軸に対応している前記複数の領域を判定し、軌跡が第1の領域に対応するならば、前記ユーザ入力に従って第1のスクロール軸に平行かつ直線的にGUI内でスクロールし、軌跡が第2の領域に対応するならば、前記ユーザ入力に従って第2のスクロール軸に平行かつ直線的にGUI内でスクロールするように動作可能なソフトウェアを具現化するものである。
【0019】
一実施形態の媒体では、複数の領域のうちの第3の領域も第1のスクロール軸に対応し、複数の領域のうちの第4の領域も第2のスクロール軸に対応し、ソフトウェアは、実行されるとき、軌跡が第3の領域に対応するならば、前記ユーザ入力に従って第1のスクロール軸に平行かつ直線的にGUI内でスクロールし、軌跡が第4の領域に対応するならば、前記ユーザ入力に従って第2のスクロール軸に平行かつ直線的にGUI内でスクロールするようにさらに動作可能である。
【0020】
一実施形態の媒体では、複数の領域のうちの第3の領域が第1のスクロール軸または第2のスクロール軸に対応しておらず、ソフトウェアは、実行されると、軌跡が第3の領域に対応するならば、前記ユーザ入力に従って第1のスクロール軸および第2のスクロール軸から独立してGUI内でスクロールするように、さらに動作可能である。
【0021】
一実施形態の媒体では、各領域は、開始点を中心とした所定の長さの半径を有する円の扇形であり、各扇形が、好ましくはその円の円周の8分の1である円弧を含む。
さらに別の実施形態の媒体では、第1のスクロール軸は水平であり、第2のスクロール軸は垂直である。
【0022】
ソフトウェアは、好ましくは、実行されると、軌跡が第1の領域または第2の領域に対応するならば、タッチジェスチャ後の所定の時間量の間、第1のスクロール軸または第2のスクロール軸の対応するものにもっぱら平行かつ直線的にGUI内でスクロールするように、さらに動作可能である。
【図面の簡単な説明】
【0023】
【
図2】モバイルデバイスの例示的なコンピューティングプラットフォームを示す図。
【
図3A】例示的なユーザタッチジェスチャを示す図。
【
図3B】コンピューティングデバイスの例示的なビューポートを示す図。
【
図3C】コンピューティングデバイスの表示の例示的な領域を示す図。
【
図4A】スクロール挙動をクランプするための例示的な方法を示す図。
【
図4B】コンテンツオブジェクトの境界から独立してスクロールするための例示的な方法を示す図。
【発明を実施するための形態】
【0024】
図1は、例示的なモバイルデバイス100を示す。本開示は、任意の好適な物理的形態を取るモバイルデバイス100を企図している。限定としてではなく例として、モバイルデバイス100は、シングルボードコンピュータシステム(SBC)(たとえば、コンピュータオンモジュール(COM)もしくはシステムオンモジュール(SOM)など)、ラップトップもしくはノートブックコンピュータシステム、モバイル電話機、スマートフォン、携帯情報端末(PDA)、タブレットコンピュータシステム、またはこれらのうちの2つ以上の組合せであってよい。特定の実施形態において、モバイルデバイス100は、入力コンポーネントとしてのタッチスクリーン112を有することができる。
図1の例において、タッチスクリーン112は、モバイルデバイス100の前面に組み込まれている。静電容量式タッチセンサのケースでは、送信および受信の、2つのタイプの電極があってよい。これらの電極は、電気パルスで送信電極を駆動し、タッチ入力または近接入力によって引き起こされた受信電極からの静電容量の変化を測定するように設計されたコントローラに接続されてよい。
図1の例において、1つまたは複数のアンテナ114A〜Cが、モバイルデバイス100の1つまたは複数の側面に組み込まれていてよい。アンテナ114A〜Cは、電流を電波に変換する、およびその逆を行うコンポーネントである。信号の送信の間、送信機は、発振無線周波数(RF)電流をアンテナ114A〜Cの端子に印加し、アンテナ114A〜Cは、印加された電流のエネルギーを電磁(EM)波として放射する。信号の受信の間、アンテナ114A〜Cは、入って来るEM波の電力を、アンテナ114A〜Cの端子において電圧に変換する。電圧は、増幅のために受信機に送信されてよい。
【0025】
モバイルデバイス100は、さまざまに異なるハードウェアおよびコンピューティングシステムにおいて実装され得るが、
図2は、さまざまな特定の実施形態による、モバイルデバイスの例示的なコンピューティングプラットフォームの主要なコンポーネントの概略描写を示している。特定の実施形態において、コンピューティングプラットフォーム202は、コントローラ204と、メモリ206と、入力出力サブシステム210とを含むことができる。特定の実施形態において、1つまたは複数のプロセッサおよび/または1つまたは複数のマイクロコントローラを含むことができるコントローラ204は、コンピューティングプラットフォームに関連付けられた、命令を実行し、動作を遂行するように構成されている。さまざまな実施形態において、コントローラ204は、シングルチップ、マルチプルチップ、および/または、1つまたは複数の集積回路およびプリント回路基板を含む他の電気コンポーネントとして、実装されてよい。コントローラ204は、オプションで、命令、データ、またはコンピュータアドレスの一時的なローカルストレージのためのキャッシュメモリユニットを収容することができる。例として、メモリから取り出された命令を使用して、コントローラ204は、コンピューティングプラットフォーム202のコンポーネント間で、入力データおよび出力データの受信および操作を制御することができる。例として、コントローラ204は、コンピューティングプラットフォーム202の一定の処理タスクに専用の、たとえば、2D/3Dグラフィック処理、画像処理、またはビデオ処理のための、1つもしくは複数のプロセッサ、または1つまたは複数のコントローラを含むことができる。
【0026】
コントローラ204は、好適なオペレーティングシステムと共に、コンピュータコードの形態での命令を実行し、データを生成し、使用するように動作することができる。限定としてではなく例として、オペレーティングシステムは、好適なオペレーティングシステムの中でも特に、Windowsベース、Macベース、またはUnixもしくはLinuxベース、またはSymbianベースであってよい。オペレーティングシステム、他のコンピュータコードおよび/またはデータは、コントローラ204に動作可能に結合されたメモリ206内に物理的に記憶されてよい。
【0027】
メモリ206は、1つまたは複数の記録媒体を包含し、一般に、コンピューティングプラットフォーム202によって使用される、コンピュータコード(たとえば、ソフトウェアおよび/またはファームウェア)およびデータを記憶するための場所を提供することができる。例として、メモリ206は、読み出し専用メモリ(ROM)および/またはランダムアクセスメモリ(RAM)を含む、さまざまな有形のコンピュータ可読記録媒体を含むことができる。本技術分野でよく知られるように、ROMは、データおよび命令をコントローラ204に一方向に転送するように働き、RAMは、通常、双方向のやり方で、データおよび命令を転送するために使用される。メモリ206はまた、コントローラ204に双方向に結合されるメモリの好適な形態の中でも特に、例として、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、フラッシュメモリカード(たとえば、セキュアなデジタル、すなわちSDカード)の形態での、1つまたは複数の固定式ストレージデバイスを含むことができる。情報はまた、必要なときに、コンピューティングプラットフォーム202にロードされる、またはインストールされる、1つまたは複数のリムーバブル記録媒体に常駐していてもよい。例として、任意の数の好適なメモリカード(たとえば、SDカード)を、一次的なまたは永続的なベースで、コンピューティングプラットフォーム202にロードすることができる。
【0028】
入力出力サブシステム210は、コントローラ204に動作可能に接続された、1つまたは複数の入力デバイスおよび出力デバイスを含むことができる。たとえば、入力出力サブシステムは、キーボード、マウス、1つまたは複数のボタン、および/または表示装置(たとえば、液晶表示装置(LCD)、もしくは任意の他の好適な表示技術)を含むことができる。一般に、入力デバイスは、外界からのデータ、コマンド、および応答を、コンピューティングプラットフォーム202に転送するように構成されている。表示装置は、一般に、グラフィカルユーザインターフェース(GUI)を表示するように構成されており、グラフィカルユーザインターフェース(GUI)は、コンピューティングプラットフォーム202のユーザと、モバイルデバイス上で稼働するオペレーティングシステムまたはアプリケーションとの間に、使用しやすいビジュアルインターフェースを提供する。一般に、GUIは、プログラム、ファイル、および動作上のオプションを、グラフィカルな画像で提示する。動作中、ユーザは、グラフィカルな画像に関連付けられた機能およびタスクを開始するために、表示装置に表示されたさまざまなグラフィカルな画像を選択し、作動させることができる。入力出力サブシステム210はまた、タッチパッドおよびタッチスクリーンなどの、タッチ式デバイスを含むことができる。タッチパッドは、ユーザのタッチ式入力を検出する表面を含む入力デバイスである。同様に、タッチスクリーンは、ユーザのタッチ入力の存在および位置を検出する表示装置である。入力出力システム210はまた、2本または3本指のタッチなどの2つ以上のタッチ入力の存在、位置、および動きを識別することができる、デュアルタッチもしくはマルチタッチの表示装置またはタッチパッドを含むことができる。
【0029】
特定の実施形態において、コンピューティングプラットフォーム202は、コンピューティングプラットフォーム202のさまざまな機能を促進にするためにコントローラ204に動作可能に接続された、オーディオサブシステム212、カメラサブシステム212、ワイヤレス通信サブシステム216、センササブシステム218、および/またはワイヤード通信サブシステム220を追加的に含むことができる。たとえば、スピーカ、マイクロフォン、およびオーディオ信号を処理するように構成されたコーデックモジュールを含むオーディオサブシステム212を利用して、音声認識、音声複製、デジタル記録、およびテレフォニー機能などの音声対応機能を促進することができる。たとえば、光学センサ(たとえば、電荷結合デバイス(CCD)、画像センサ)を含むカメラサブシステム212を利用して、写真およびビデオクリップを記録するなどのカメラ機能を促進することができる。たとえば、ワイヤード通信サブシステム220は、ファイル転送するためのユニバーサルシリアルバス(USB)ポート、またはローカルエリアネットワーク(LAN)に接続するためのイーサネットポートを含むことができる。加えて、コンピューティングプラットフォーム202は、電源232によって電力供給されてよい。
【0030】
ワイヤレス通信サブシステム216は、たとえば、ワイヤレスPAN(WPAN)(たとえば、BLUETOOTH)、WI−FIネットワーク(たとえば、802.11a/b/g/nネットワーク)、WI−MAXネットワーク、セルラネットワーク(たとえば、モバイル通信用グローバルシステム(GSM)ネットワーク、ロングタームエボリューション(LTE)ネットワークなど)の、1つまたは複数のワイヤレスネットワーク上で動作するように設計されてよい。加えて、ワイヤレス通信サブシステム216は、コンピューティングプラットフォーム202が他のワイヤレスデバイスのための基地局として構成され得るように、ホスティングプロトコルを含むことができる。他の入力/出力デバイスは、デバイスの向きを検出するために使用され得る加速度計を含むことができる。
【0031】
センササブシステム218は、追加的な入力を提供し、コンピューティングプラットフォーム202の機能を増進するための、1つまたは複数のセンサデバイスを含むことができる。たとえば、センササブシステム218は、位置測位のためのGPSセンサ、高度測位のための高度計、モバイルデバイスの向きを判定するための動きセンサ、カメラサブシステム214による撮影機能のための光センサ、大気温度を測定するための温度センサ、および/または、セキュリティアプリケーションのためのバイオメトリックセンサ(たとえば、指紋読み取り機)を含むことができる。
【0032】
特定の実施形態において、コンピューティングプラットフォーム202のさまざまなコンポーネントは、1つまたは複数のバス(ハードウェアおよび/またはソフトウェアを含む)によって、互いにかつ動作可能に接続されてよい。限定としてではなく例として、1つまたは複数のバスは、アクセラレーテッドグラフィックポート(AGP)もしくは他のグラフィックバス、フロントサイドバス(FSB)、ハイパートランスポート(HT)相互接続、業界標準アーキテクチャ(ISA)バス、INFINIBAND相互接続、ローピンカウント(LPC)バス、メモリバス、周辺コンポーネント相互接続エクスプレスPCI−エクスプレスバス、シリアル高度技術アタッチメント(SATA)バス、集積回路間(I2C)バス、セキュアデジタル(SD)メモリインターフェース、セキュアデジタル入力出力(SDIO)インターフェース、ユニバーサルシリアルバス(USB)バス、汎用入力/出力(GPIO)バス、高度マイクロコントローラバスアーキテクチャ(AMBA)バス、または別の好適なバス、あるいはこれらの2つ以上の組合せを含むことができる。
【0033】
特定の実施形態において、モバイルデバイス100は、入力デバイスとしてのタッチパッドまたはタッチスクリーン112を含むことができる。タッチパッドは、ユーザのタッチ式入力を検出する表面を含む入力デバイスである。同様に、タッチスクリーンは、ユーザのタッチ入力の存在および位置を検出することができる電子的なビジュアル表示面である。タッチスクリーン112は、シングルタッチスクリーン、デュアルタッチスクリーン、またはマルチタッチスクリーンであってよい。いわゆるデュアルタッチまたはマルチタッチ入力デバイスは、2本または3本指のタッチなどの、2つ以上のタッチ入力の存在、位置、および動きを識別することができるデバイスを指す。1つまたは複数のタッチ式入力デバイスを組み込むシステムは、ユーザからのタッチ入力またはニアタッチ入力について、1つまたは複数のタッチ感応表面をモニタすることができる。1つまたは複数のそのようなユーザ入力が生じるとき、システムは、接触の別個のエリアを判定し、たとえば、幾何学的な特徴および配置(たとえば、位置または動き)を介して、タッチ入力またはニアタッチ入力の性質を識別することができる。
【0034】
システムはまた、入力が、さまざまなタッチイベントまたはタッチジェスチャ(たとえば、タップ、ドラッグ、スワイプ、ピンチ、またはフリック)に対応するかどうかを判定することができる。これらのタッチイベントは、モバイルデバイス100によって取られることになる一定のアクションに各々対応してよい。たとえば、上へのフリックは、タッチスクリーン112を介して表示されるアプリケーション内で上向きにスクロールするアクションに対応することができ、下へのフリックは、タッチスクリーン112を介して表示されるアプリケーション内で下向きにスクロールするアクションに対応することができる。ユーザはまた、ユーザのタッチジェスチャを介して伝達される意図を有することがある。たとえば、ユーザは、フリックのジェスチャが、タッチスクリーン112を介して表示されるアプリケーション内でスクロールすることになるのを知っていることがある。ユーザのジェスチャの速度は、たとえば、タッチスクリーン112によって表示されるアプリケーションのグラフィカルユーザインターフェース内のアニメーションに関連付けられた速度に対する、ユーザの意図を指し示すことができる。ユーザは、素早くフリックして、モバイルデバイス100による対応するアクションが、アプリケーション内で素早くスクロールするように意図することができる。ユーザはまた、ゆっくりフリックして、モバイルデバイス100による対応するアクションが、アプリケーション内でゆっくりスクロールするように意図することができる。
【0035】
1つまたは複数のタッチ式入力デバイスを有するシステムによるタッチイベントの認識、たとえば、ユーザによる1つまたは複数のタッチ入力を識別し、対応するタッチイベントを判定することは、ハードウェア、ソフトウェア、またはファームウェア(もしくはデバイスドライバ)の組合せによって実装されてよい。1つまたは複数のライブラリが、モバイルデバイス100上で稼働する1つまたは複数のアプリケーションによって使用されて、タッチイベントを認識することができる。たとえば、モバイルデバイス100は、タッチ入力を検出するために、1つまたは複数のタッチ式入力デバイスと通信する1つまたは複数のデバイスドライバを(たとえば、コンピューティングプラットフォーム202の一部として)含むことができる。モバイルデバイス100は、タッチイベントまたはタッチジェスチャ(たとえば、タップ、ドラッグ、スワイプ、ピンチ、またはフリック)としてデバイスドライバによって検出されたタッチ入力を認識するためのタッチイベントモジュール(たとえば、コンピュータコード)または論理を収容する、タッチジェスチャライブラリを含むことができる。モバイルデバイス100上で稼働する1つまたは複数のアプリケーションは、タッチジェスチャライブラリにおけるタッチイベントモジュールにリスナーとしてサブスクライブすることによって、タッチイベントまたはタッチジェスチャを検出し、処理する、またはタッチイベントまたはタッチジェスチャに応答することができる。
【0036】
ユーザは、タッチスクリーン112の表面上でタッチジェスチャ(たとえば、上にフリックする)を行うことができる。デバイスドライバおよびタッチジェスチャライブラリと組み合わされたタッチスクリーン112は、モバイルデバイス100(たとえば、コントローラ204)が、タッチスクリーン112の表面上でのユーザのタッチジェスチャ入力のタッチ軌道(たとえば、一連のデータ点)に基づいて、タッチジェスチャを判定するのを可能にすることができる。
図3Aは、モバイルデバイス100のタッチスクリーン112の表面上でユーザによって行われた例示的なタッチジェスチャの跡を図示する。
図3Aの例において、ユーザは、タッチスクリーン112の表面上で上向きのフリックを行う。ユーザによって(たとえば、指を用いて)行われたフリックジェスチャは、タッチスクリーン112上の点305で始まり、タッチスクリーン112上の点315で終わる。その開始点と終止点とを含むフリックジェスチャを、
図3Aの破線x軸およびy軸によって指し示された、タッチスクリーン112の表面上の点の2次元座標系内に位置付けることができる。
【0037】
特定の実施形態において、モバイルデバイス100のユーザは、タッチスクリーン112によって表示されたアプリケーションのグラフィカルユーザインターフェースにおいて構造化ドキュメントを見ることができる。ウェブページなどの構造化ドキュメントは、たとえば、ページレイアウト情報(たとえば、フレーム)、スクリプト、テキストなどのページコンテンツ(たとえば、ASCIIまたはHTML)、メディアデータ(たとえば、画像、ビデオクリップ、またはアニメーション)、および実行可能なコードオブジェクト(たとえばブラウザウィンドウまたはフレーム内で実行可能なゲーム)を含む、多数のコンテンツオブジェクトを含むことができる。構造化ドキュメントは、ハイパーテキストマークアップ言語(HTML)、拡張可能なマークアップ言語(XML)、拡張可能なハイパーテキストマークアップ言語(XHTML)、JavaScript、WebGL、CSSアニメーションおよびトランジションを含むカスケーディングスタイルシート(CSS)、Java、またはグラフィカルユーザインターフェースを有するアプリケーションを稼働するモバイルデバイス100のプロセッサにネイティブなコードなどの、言語および技術を用いて実装されてよい。構造化ドキュメントは、それ自体が、多数の構造化ドキュメントおよびコンテンツへの参照を含むことができる。たとえば、ウェブページは、ユニフォームリソースロケーション(URL)またはスクリプトコード(たとえば、JavaScript、PHP、またはAJAX)を組み込むことによって、1つまたは複数のインライン参照を含むことができ、それにより、ユーザイベント(たとえば、マウスクリックまたはタッチイベント)に応答して、グラフィカルユーザインターフェースにおいてウェブページを表示しているアプリケーションに、URLおよびスクリプトコードによって指定されたコンテンツを動的に取り出させる。レイアウトエンジン(またはウェブブラウザエンジン)は、グラフィカルユーザインターフェースにおいて構造化ドキュメントをレンダリングし、表示するためのソフトウェアコンポーネントまたはライブラリである。たとえば、Google社のChromeウェブブラウザ、およびApple社のSafariウェブブラウザは、WebKitソフトウェアを使用して、表示のためにウェブページをレンダリングする。WebKitは、レイアウトエンジンWebCore、および(JavaScriptコードを解釈し、実行するための)JavaScriptエンジンJavaScriptCoreを含む。コンピューティングデバイス(たとえば、モバイルデバイス100)によってホストされるアプリケーションは、レイアウトエンジンへのアプリケーションプログラミングインターフェース(API)を介して、モジュールをレイアウトエンジンに組み込むことによって、表示のために構造化ドキュメントをレンダリングするために、レイアウトエンジンを利用することができる。
【0038】
特定の実施形態において、ユーザが現在、グラフィカルユーザインターフェース内で見ている構造化ドキュメントの1つまたは複数の領域は、「ビューポート」として知られている。一実施形態において、レンダリングまたは表示することが、スクローリングフレームレート、利用可能な処理リソース、または利用可能なメモリリソースに基づいて、ビューポートのサイズを判定することができる。ユーザがアプリケーション(たとえば、ウェブブラウザ)のグラフィカルユーザインターフェースにおいて、大量のコンテンツ(たとえば、テキストデータまたはメディアデータなどのコンテンツオブジェクト)による構造化ドキュメントを見るとき、アプリケーションは、グラフィカルユーザインターフェースのビューポート内のコンテンツのみをレンダリングし、表示することができる。ユーザがグラフィカルユーザインターフェースにおいて構造化ドキュメントを上にスクロールする、または下にスクロールするにつれ、アプリケーションは、ビューポート内の構造化ドキュメントの追加的なコンテンツを取り出し、レンダリングし、表示することができる。(たとえば、構造化ドキュメントにおける)コンテンツオブジェクトの集合は、一連のものとして配置されてよい。この一連のものは、コンテンツオブジェクトの有限の集合、またはコンテンツオブジェクトの潜在的に無限の集合であってよく(たとえば、潜在的には無限の数のコンテンツオブジェクトがサーバから取り出され得る)、この一連のものは、任意の好適なやり方で順序付けされてよい。特定の実施形態において、この一連のコンテンツオブジェクトを(たとえば、サーバから)取り出す、またはタッチスクリーン上に表示されたグラフィカルユーザインターフェースのビューポートに、オンデマンド式に表示することができる。特定の実施形態において、たとえば、ページの高さに関係なく、構造化ドキュメント内の任意の方向に(たとえば、垂直に、水平に、対角線状に、など)スクロールすることが(潜在的には無限に)可能であってよい。たとえば、ビューポートは、構造化ドキュメント内のどこにでも(たとえば、コンテンツオブジェクトの潜在的には無限の集合またはリスト内のどこにでも)結び付けられてよく、スクローリングは、構造化ドキュメントにおける任意の2点の間で行われてよい。例として、構造化ドキュメントは、発生順により順序付けられ、一連のものとして配置されたコンテンツオブジェクトを含むことができる。ユーザが構造化ドキュメント内で垂直に上にスクロールする場合、ビューポートは、より古いコンテンツオブジェクトを連続的に表示することができ、ユーザが構造化ドキュメント内で垂直に下にスクロールする場合、ビューポートは、より新しいコンテンツオブジェクトを連続的に表示することができる。加えて、ユーザが構造化ドキュメント内で上にスクロールする、または下にスクロールするにつれ、アプリケーションは、サーバからコンテンツオブジェクトを取り出す(かつ、ビューポート内に表示する)ことができる。アプリケーションは、たとえば、新しく取り出されたコンテンツオブジェクトを、スクロールポジションによって示された一定のポジションで、構造化ドキュメントにおける一連のコンテンツオブジェクトの中に挿入することができる。例として、新しく取り出されたコンテンツオブジェクトは、スクロールポジション0で、構造化ドキュメントの中に置かれてよい。この例において、この一連のコンテンツオブジェクトにおける他のコンテンツオブジェクトは、(たとえば、新しく取り出されたコンテンツオブジェクトの数だけインクリメントされて)新しいスクロールポジションを与えられてよく、構造化ドキュメントのスクロール範囲を、一連のコンテンツオブジェクトでのすべてのコンテンツオブジェクトのスクロールポジション(たとえば、0から50)を含むように調整することができる。ビューポートのスクロールポジションもまた、同じ組のコンテンツオブジェクトを表示し続けるために、(たとえば、新しく取り出されたコンテンツオブジェクトの数だけインクリメントされて)調整され得る。別の例として、新しく取り出されたコンテンツオブジェクトは、一連のコンテンツオブジェクトにおける最後のコンテンツオブジェクト(たとえば、スクロールポジション0)を超えた負のスクロールポジションの中(たとえば、−1で始まり、たとえば、−2、−3、などと続く)に置かれてもよく、構造化ドキュメントのスクロール範囲は、新しく取り出されたコンテンツオブジェクトおよび一連のコンテンツオブジェクトにおける他のコンテンツオブジェクト(たとえば、−50から50まで)を含むように調整されてもよい。一連のコンテンツオブジェクトにおける他のコンテンツオブジェクトのポジションは、この例では調整される必要はなく、したがって、ビューポートのポジションもまた調整される必要がない。特定の実施形態において、ユーザは、一連のコンテンツオブジェクトのコンテンツオブジェクトをスクロールすることができる。例として、ユーザは、一連のコンテンツオブジェクトに沿って前方または後方に動かすように、タッチスクリーンにわたって自分の指をスワイプすることができる。たとえば、一連のコンテンツオブジェクトに沿って前方にスクロールするために、ユーザは、タッチスクリーン上で、左に向けて、または上向きの動きで、自分の指をスワイプすることができる。逆に、一連のコンテンツオブジェクトに沿って後方にスクロールするために、ユーザは、タッチスクリーン上で、右に向けて、または下向きの動きで、自分の指をスワイプすることができる。
【0039】
上で議論したように、特定の実施形態において、任意の所与の時間に、コンテンツオブジェクトの集合(たとえば、一連のコンテンツオブジェクト)の一部のみを、スクリーン(たとえば、タッチスクリーン112)上のグラフィカルユーザインターフェースのビューポートに表示することができ、スクリーン上に現在表示されていないコンテンツオブジェクトを見るために、ユーザは、一連のコンテンツオブジェクトをスクロールすることができる。たとえば、ユーザは、マウスまたはポインティングデバイスを使用して、グラフィカルユーザインターフェースのスクロールバーを、上にドラッグする、または下にドラッグすることができる。別の例として、ユーザは、グラフィカルユーザインターフェースを表示するタッチスクリーン上でスワイプするジェスチャを使用することができる。一連のコンテンツオブジェクトの1例である電子書籍は、一連のページを含むことができ、ユーザは、これらのページをスクロールすることができる。特定の時間には、書籍のいくつかのページのみが、スクリーン上でユーザに表示されてよい。一連のコンテンツオブジェクトの別の例として、アルバムが一連の画像を含むことができ、ユーザは、これらの画像をスクロールすることができる。特定の時間には、アルバムのいくつかの画像のみが、スクリーン上でユーザに表示されてよい。(たとえば、一連のコンテンツオブジェクトにおける)これらのコンテンツオブジェクトの各々は、コンテンツオブジェクトのエリアを画定する境界を有することができる。この境界は、たとえば、コンテンツオブジェクトを収容する構造化ドキュメントを実装する言語(たとえば、Javascript)によって指定されてよい。例として、書籍のページ、またはアルバムの画像は、(たとえば、タッチスクリーン112上に表示されたアプリケーションのグラフィカルユーザインターフェース内で)2次元のエリアを画定する境界を有することができる。
図3Bは、ウェブページなどの例示的な構造化ドキュメント325を示す。構造化ドキュメント325は、複数のコンテンツオブジェクト335を含むことができるが、
図3Bの例では、コンテンツオブジェクトの一部のみが、コンピューティングデバイス、たとえば、モバイルデバイス100によってホストされるアプリケーションのグラフィカルユーザインターフェースのビューポート345内に表示されている。
図3Bの例はまた、コンテンツオブジェクト335がビューポート345のサイズよりも小さくてもよいことを示している。
図3Bの例には示されていないが、本開示では、構造化ドキュメント325が、ビューポート345よりも大きい、小さい、またはビューポート345と同じサイズであってよいことを企図している。加えて、
図3Bの例は、垂直に配置された一連のコンテンツオブジェクトを有する構造化ドキュメントを示しているが、本開示は、コンテンツオブジェクトの水平配置またはタイル状配置を含む、コンテンツオブジェクトの任意の好適な配置を企図している。
【0040】
特定の実施形態において、構造化ドキュメント(またはグラフィカルユーザインターフェースによって表示された他のアイテム)は、表示を基準としてスクロール軸によって画定された2次元のエリアまたは領域内で、スクロール可能であってよい。たとえば、
図3Aに示すように、スクロール軸は、タッチスクリーン112の表示に対して画定される、(「X」とラベル付けされた)水平軸、および(「Y」とラベル付けされた)垂直軸であってよく、ユーザは、水平スクロール軸および垂直スクロール軸によって画定された2次元のエリアまたは領域内の任意の方向(たとえば、対角線状に、または非直線的に)スクロールすることができる。たとえば、タッチスクリーン112の表示が、回転可能または、別のやり方で変化可能な場合、表示に対して画定されるスクロール軸もまた変化することができる。
図3Bに示すように、1つまたは複数のコンテンツオブジェクト335の全部または一部分が、ビューポート345内で見えてよい。(たとえば、上向きに、下向きに、左もしくは右に、またはタッチスクリーン112の表面上で任意の他の方向にスワイプするなどのタッチジェスチャを使用することにより)スクロールすることによって、ビューポートの中の1つまたは複数のコンテンツオブジェクトがビューから外れ、隣接するコンテンツオブジェクト(たとえば、全体のコンテンツオブジェクトまたはコンテンツオブジェクトの部分)を、同時かつシームレスに、ビューの中へとスクロールすることができる。特定の実施形態において、ビューポートは、一度に1つのみのコンテンツオブジェクト335を表示することができ、ユーザがスクロールすると、ユーザは、コンテンツオブジェクトを別個にページ付けし、これは、しばしばページ付けスクローリングと呼ばれる。たとえば、ユーザがスクロールすると、ビューポートの中の1つのコンテンツオブジェクトがビューから外れてよく、(たとえば、水平に、垂直に、または対角線状に隣接する)隣接するコンテンツオブジェクトを、同時にビューの中へとスクロールすることができる。隣接するコンテンツオブジェクト335の所定量(たとえば、隣接するコンテンツオブジェクトの境界によって画定される50%)がビューポートに移動すると、隣接するコンテンツオブジェクト335は、自動的に所定の場所に「はめ込まれ」てビューポートに表示される唯一のコンテンツオブジェクトとなることができる。
図3Bに示した実施形態を含むさらに他の実施形態において、ユーザは、コンテンツオブジェクトを自由にスクロールさせることができる。たとえば、ビューポートは、多数のコンテンツオブジェクトまたはコンテンツオブジェクト335の部分を表示することがあり、ユーザがスクロールすると、スクローリングは、1つまたは複数のコンテンツオブジェクト335の境界を連続的にまたいでもよい(たとえば、コンテンツオブジェクトの境界の有無に関係なく、境界におけるスクロール挙動を変化させずに、または一旦境界を超えると所定の場所に「はめ込んで」、スクロールしてもよい)。たとえば、ビューポート345が1つまたは複数のコンテンツオブジェクト335またはコンテンツオブジェクト335の部分を収容できるようなやり方で、スクローリングを停止点まで動かすことができる。さらに他の実施形態において、ページ付けスクローリングと自由スクローリングとの組合せが使用されてもよい。例として、ビューポート345が単一のコンテンツオブジェクト335を表示する場合、ユーザは、コンテンツオブジェクト335内で自由にスクロールさせることができ、一旦ユーザがコンテンツオブジェクトの境界に達すると、別のコンテンツオブジェクト(たとえば、隣接するコンテンツオブジェクト)が今度はビューポートに入るように、スクローリングが、ページ付けスクローリングに切り替わることができる。この時点で、スクローリングは再度、現在表示されているコンテンツオブジェクトの境界内で自由スクローリングになっていてよい。
【0041】
特定の実施形態において、ユーザのタッチジェスチャの速度が、アプリケーションのグラフィカルユーザインターフェースを介して表示された構造化ドキュメント(または他のコンテンツ)内でのスクロール挙動に影響することがある。たとえば、ユーザのタッチジェスチャ入力のベクトルまたは軌跡(またはそのスピード)を使用して、ユーザが望むのは、隣接するコンテンツオブジェクトをブラウズすることか、または構造化ドキュメント内のさらに離れたコンテンツオブジェクトをブラウズすることかを突き止めることができる。たとえば、ユーザがアルバムの一連の写真をスクロールするためにスワイプしている場合、ユーザのタッチジェスチャの速度が、スクローリングを隣接する写真まで進めるか(たとえば、速度が比較的低い場合)、またはスクローリングを多数の写真進めるか(たとえば、速度が比較的高い場合)どうかを判定することができる。例として、ユーザが比較的短い時間量で、比較的大きい距離をスワイプした場合、タッチジェスチャの速度が比較的高く、スクロールすることによって多数のコンテンツオブジェクトを進めると判定されてよい。加えて、ユーザのジェスチャの速度を使用して、スクローリングが、ページ付けスクローリング(たとえば、速度が比較的低い場合)か、または連続したスクローリングもしくは自由スクローリング(たとえば、速度が比較的高い場合)かを、判定することもまたできる。さらに他の実施形態において、ユーザが所与の時間期間内に一定の数を超えるタッチジェスチャ(たとえば、2秒以内に2度を超えるスワイプ)を行った場合、構造化ドキュメント内のスクローリングのスピードは、たとえば、倍数因子によって、その時間期間内の各追加的なスワイプと共に増加してよい。たとえば、2秒以内の3度目のスワイプは、2度目のスワイプのスクロールスピードよりも1.2倍速い(たとえば、レイアウトエンジンによって動かされるとき)スクロールスピードを有することができる。加えて、2秒以内の4度目のスワイプは、2度目のスワイプのスクロールスピードよりも1.4倍速いスクロールスピードを有することができる。特定の実施形態において、スクローリングは、構造化ドキュメント内でのナビゲーションの間に、任意の点で、休止または一時停止されてもよい。たとえば、タッチスクリーン112にわたって指をスワイプすることによってページ間でスクロールするユーザは、スワイプする動きを中断し、自分の指を所定の場所に保持することによって、スクローリングを中断し、所定の場所に表示を「フリーズ」させることができる。加えて、ユーザは、進行中のスクロールの間に、スクローリングを中断し、反対の方向にスワイプすることによって、スクロール方向を切り替えることができる。
【0042】
特定の実施形態において、スクロールするためのユーザのタッチジェスチャを使用して、スクローリングにおいてクランプ挙動を関与させるどうかを判定することができる。たとえば、ユーザが、ドキュメント内で上にスクロールしようとしたものの、完全に垂直ではなく、クランプなしでスクロールジェスチャ(たとえば、スワイプ)を行った場合、ドキュメントは、垂直型ではなく、対角線型にスクロールされることがある。特定の実施形態において、ユーザの意図とよりよく一致させるために、もっぱら垂直であるように(または同様に、もっぱら水平であるように)、スクロール挙動を「クランプする」ことが望ましいことがある。
図3Aの例では、タッチスクリーン112上で垂直にスクロールするためのユーザのタッチジェスチャ軌跡が示されている。
図3Cは、同じタッチジェスチャ軌跡を示す。
図3Cにおける中心の星形は、タッチジェスチャ軌跡の開始点305を示し、軌跡の終止点は、終止点315によって示されている。上で論じたように、ユーザがもっぱら垂直にスクロールするように望むことがあったとしても、ユーザのタッチジェスチャ軌跡は、純粋に垂直ではない。スクロール挙動をクランプすることは、ユーザのタッチジェスチャ軌跡に基づいて行われてよい。タッチスクリーン112を、任意の好適な数の領域(たとえば、
図3Cの8つの領域310〜380)に分割することができる。加えて、領域は、サイズまたは角度スパンにおいて均等であってもよく、あるいは、サイズまたは角度スパンにおいて均等でなくてもよい。これらの領域は、タッチジェスチャの開始点および表示のスクロール軸に対して画定されてよい。たとえば、領域は、タッチスクリーン112の表示を基準として、垂直(たとえば、「Y」)または水平(たとえば、「X」)のスクロール軸から測定された、1つまたは複数の角度によって各々画定されてよい。
図3Cにおいて、タッチスクリーン表示の領域330は、水平スクロール軸より上22.5度と、開始点305を通過して水平スクロール軸より下22.5度との間にある、タッチスクリーン上のすべての点を含むように画定されてよい。加えて、タッチスクリーン表示の領域310は、水平スクロール軸より上67.5度と、水平スクロール軸より上112.5度との間にある、タッチスクリーン上のすべての点を含むように画定されてよい。
図3Cの例において、領域310および350は、垂直スクロール軸に対応し、領域330および370は、水平スクロール軸に対応する。領域320、340、360、および380は、どちらのスクロール軸にも対応しない。
図3Cの円300は、開始点305からの所定の長さを示す。特定の実施形態において、対象となる領域は、(上で説明したように)角度によって画定されるだけでなく、円300内にも入らなければならない。したがって、この例では、対象となる領域は円300の扇形となる。
図3Cの例は、均等なサイズにされた角度スパンによって画定された8つの領域を示しているが、領域は、開始点305に対して任意の好適なやり方で画定され得ることに留意されたい。特定の実施形態において、ユーザのタッチジェスチャの軌跡の少なくとも一部に対応する(またはそれを収容する)タッチスクリーン112の領域(または複数の領域)が判定される。
図3Cの例において、領域310が、スクロールするためのユーザのタッチジェスチャの軌跡を完全に収容している。領域310は垂直スクロール軸に対応するので、スクロール挙動は、垂直に上にスクロールするようにのみ(たとえば、垂直「Y」スクロール軸に直線的かつ平行に)「クランプされて」よい。同様に、領域350が、スクロールするためのユーザのタッチジェスチャの軌跡のすべてまたは一部を収容した場合、スクロール挙動は、垂直に下にスクロールするようにのみクランプされてよい。特定の実施形態において、ユーザのタッチジェスチャ軌跡の垂直成分のみが、垂直にクランプされるスクロール挙動の作成において使用される。領域330または370が、スクロールするためのユーザのタッチジェスチャの軌跡のすべてまたは一部を収容した場合、スクロール挙動は、水平に(右または左へのどちらかにそれぞれ)スクロールするようにのみクランプされてよい。特定の実施形態において、ユーザのタッチジェスチャ軌跡の水平成分のみが、水平にクランプされるスクロール挙動の作成において使用される。最後に、ユーザのタッチジェスチャの軌跡が、領域320、340、360、または380内に入る場合、スクロール挙動は、どちらのスクロール軸にもクランプされなくてよく、たとえば、構造化ドキュメント内で自由なスクロールであってよい。
【0043】
特定の実施形態において、(たとえば、垂直に下向きにスクロールするための第1のタッチジェスチャに基づいて)一旦クランピングが始まると、スクローリングにおけるクランプ挙動は、所定の時間量(たとえば、1秒)の間持続してよい。したがって、たとえば、ユーザが、クランプタイマーが終わる前(たとえば、1秒間が終了する前)に下向きにスクロールするための第2のタッチジェスチャを行い、しかしこの第2のジェスチャ軌跡が(第2の開始点に対して判定された)領域340に入る場合、スクローリングは、クランプタイマーの期限まで垂直に下向きにクランプされ続けてよい。この例において、(領域340に入る)第2のジェスチャ軌跡の垂直成分を使用して、垂直にクランプされるスクロール挙動を作成することができる。別の例として、(たとえば、垂直に下向きにスクロールするための第1のタッチジェスチャに基づいて)垂直クランピングが始まった後で、ユーザが、クランプタイマーが終わる前に水平にスクロールするための第2のタッチジェスチャを行い、かつこの第2のジェスチャ軌跡が(第2の開始点に対して判定された)領域330に入る場合、スクローリングは、クランプタイマーの期限まで垂直に下向きにクランプされ続けてよい。この例において、(領域330に入る)第2のジェスチャ軌跡の垂直成分を使用して、垂直にクランプされるスクロール挙動を作成することができる。さらに別の例として、(たとえば、垂直に下向きにスクロールするための第1のタッチジェスチャに基づいて)垂直クランピングが始まった後で、ユーザが、クランプタイマーが終わる前に垂直にスクロールするための第2のタッチジェスチャを行い、かつこの第2のジェスチャ軌跡が(第2の開始点に対して判定された)領域310に入る場合、スクローリングは、垂直にクランプされ続けてよいが、代わりに、クランプタイマーの期限まで垂直に上向きにクランプされ得る。この例において、(領域310に入る)第2のジェスチャ軌跡の垂直成分を使用して、垂直に上向きにクランプされるスクロール挙動を作成することができる。これらの例において、クランピングは、領域ごとではなく、軸ごとに行われる。上の例は、(下向きまたは上向きのいずれかの)垂直クランピングを示しているが、(たとえば、左または右へのいずれかの)水平クランプ挙動もまた、一旦始まると、所定の時間量の間持続することができることが理解されるだろう。クランプタイマーの期限後に、クランプ挙動を再度始めるかどうかを判定するために、スクロールするための任意の新しいタッチジェスチャを評価することができる。クランプタイマーの期限に加えて、ユーザが新しいジェスチャを開始せずに、所定の時間量の間、タッチスクリーン112をおさえる(たとえば、指またはスタイラスをその上に維持する)場合、クランプ挙動は終わってよい。それまでのユーザジェスチャからのアクションまたは挙動全部が終結した(たとえば、それまでのジェスチャについての動きが完全に止んでいる)場合にもまた、クランプ挙動は終わってよい。
【0044】
特定の実施形態において、(たとえば、Javascriptの)スクロールライブラリのユーザは、スクロール挙動が、たとえば、グラフィカルユーザインターフェース内でどのようにユーザ体験にマップするかを指定することができる。例として、ビューポート345の中の要素が回転または並進するが、スクローリングは生じないように、典型的なスクロールアクション(たとえば、上向きのスワイプ、またはスクロールバーの上へのボタンを押すこと)を再構成することができる。同様に、スクロールバーを使用して、たとえば、画像彩度または画像色調を含む、グラフィカルユーザインターフェースを介して見られる、いくつかの異なるプロパティのうちのいずれかを制御することができる。
【0045】
図4Aは、スクロール挙動をクランプするための例示的な方法を示す。ステップ410で、コンピューティングデバイス(たとえば、モバイルデバイス100)が、コンピューティングデバイスのタッチスクリーン(たとえば、タッチスクリーン112)上に表示されたグラフィカルユーザインターフェース(GUI)内でスクロールするためのユーザ入力を受信する。ユーザ入力は、タッチスクリーン上でのタッチジェスチャを含み、タッチジェスチャは、タッチスクリーン上での開始点と1つまたは複数の他の点(たとえば、終止点およびその中間にある点)とを有する軌跡を含む。ステップ420で、コンピューティングデバイスは、開始点に対して画定されるタッチスクリーンの複数の領域を判定する。複数の領域のうちの第1の領域は、第1のスクロール軸(たとえば、水平軸)に対応し、複数の領域のうちの第2の領域は、第1のスクロール軸に対して直角をなす第2のスクロール軸(たとえば、垂直軸)に対応する。ステップ430で、軌跡が第1の領域に対応するならば、コンピューティングデバイスは、前記ユーザ入力に従って第1のスクロール軸に平行かつ直線的にGUI内でスクロールする。ステップ440で、軌跡が第2の領域に対応するならば、コンピューティングデバイスは、前記ユーザ入力に従って第2のスクロール軸に平行かつ直線的にGUI内でスクロールする。特定の実施形態は、適切な場合、
図4Aの方法の1つまたは複数のステップを繰り返すことができる。本開示は、特定の順序で生じるように
図4Aの方法の特定のステップを説明し、示しているが、本開示は、任意の好適な順序で生じる
図4Aの方法の任意の好適なステップを企図している。さらに、本開示は、
図4Aの方法の特定のステップを遂行する特定のコンポーネント、デバイス、またはシステムを説明し、示しているが、本開示は、
図4Aの方法の任意の好適なステップを遂行する任意の好適なコンポーネント、デバイス、またはシステムの任意の好適な組合せを企図している。
【0046】
図4Bは、コンテンツオブジェクトの境界から独立してスクロールするための例示的な方法を示す。ステップ415で、コンピューティングデバイス(たとえば、モバイルデバイス100)は、ユーザに表示するためにコンテンツを提供し、コンテンツ(たとえば、構造化ドキュメント)は、各々が2次元のエリアを画定する境界を有する複数のコンテンツオブジェクトを含む。ステップ425で、コンピューティングデバイスは、コンテンツ内でユーザがスクロールするための、(たとえば、タッチスクリーン112を基準としてスクロール軸に対して画定される)2次元のスクロール領域を判定する。2次元のスクロール領域は、コンテンツオブジェクトの2次元のエリアから独立している。ステップ435で、コンピューティングデバイスは、境界のうちの1つまたは複数にまたがる2次元の1つまたは両方においてコンテンツ内でスクロールするためのユーザ入力を受信する。ステップ445で、コンピューティングデバイスは、前記ユーザ入力に従ってコンテンツ内でスクロールする。このスクローリングは、複数コンテンツオブジェクト境界にまたがる連続的なものである。特定の実施形態は、適切な場合、
図4Bの方法の1つまたは複数のステップを繰り返すことができる。本開示は、特定の順序で生じるように
図4Bの方法の特定のステップを説明し、示しているが、本開示は、任意の好適な順序で生じる
図4Bの方法の任意の好適なステップを企図している。さらに、本開示は、
図4Bの方法の特定のステップを遂行する特定のコンポーネント、デバイス、またはシステムを説明し、示しているが、本開示は、
図4Bの方法の任意の好適なステップを遂行する任意の好適なコンポーネント、デバイス、またはシステムの任意の好適な組合せを企図している。
【0047】
図5は、例示的なコンピュータシステム500を示す。特定の実施形態において、1つまたは複数のコンピュータシステム500が、本明細書で説明された、または示された1つまたは複数の方法の1つまたは複数のステップを行う。特定の実施形態において、1つまたは複数のコンピュータシステム500は、本明細書で説明された、または示された機能性を提供する。特定の実施形態において、1つまたは複数のコンピュータシステム500上で稼働するソフトウェアが、本明細書で説明された、または示された1つまたは複数の方法の1つまたは複数のステップを行う、あるいは、本明細書で説明された、または示された機能性を提供する。特定の実施形態は、1つまたは複数のコンピュータシステム500の1つまたは複数の部分を含む。本明細書において、コンピュータシステムへの言及は、適切な場合、コンピューティングデバイスを包含することができる。さらに、コンピュータシステムへの言及は、適切な場合、1つまたは複数のコンピュータシステムを包含することができる。
【0048】
本開示は、任意の好適な数のコンピュータシステム500を企図している。本開示は、任意の好適な物理的形態を取るコンピュータシステム500を企図している。限定としてではなく例として、コンピュータシステム500は、埋め込み型コンピュータシステム、システムオンチップ(SOC)、シングルボードコンピュータシステム(SBC)(たとえば、コンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)など)、デスクトップコンピュータシステム、ラップトップもしくはノートブックコンピュータシステム、インタラクティブキオスク、メインフレーム、コンピュータシステムのメッシュ、モバイル電話機、携帯情報端末(PDA)、サーバ、タブレットコンピュータシステム、またはこれらのうちの2つ以上の組合せであってよい。適切な場合、コンピュータシステム500は、ユニットである、もしくは分散した、多数の位置にわたる、多数のマシンにわたる、多数のデータセンタにわたる、または、1つもしくは複数のネットワークにおいて1つもしくは複数のクラウドコンポーネントを含むことができるクラウドに常駐する、1つまたは複数のコンピュータシステム500を含むことができる。適切な場合、1つまたは複数のコンピュータシステム500は、実質的な空間的または時間的限定なしに、本明細書で説明された、または示された1つまたは複数の方法の1つまたは複数のステップを行うことができる。限定としてではなく例として、1つまたは複数のコンピュータシステム500は、リアルタイムで、またはバッチモードで、本明細書で説明された、または示された1つまたは複数の方法の1つまたは複数のステップを行うことができる。1つまたは複数のコンピュータシステム500は、適切な場合、異なる時間に、または異なる位置で、本明細書で説明された、または示された1つまたは複数の方法の1つまたは複数のステップを行うことができる。
【0049】
特定の実施形態において、コンピュータシステム500は、プロセッサ502と、メモリ504と、ストレージ506と、入力/出力(I/O)インターフェース508と、通信インターフェース510と、バス512とを含む。本開示は、特定の配置において特定の数の特定のコンポーネントを有する特定のコンピュータシステムを説明し、示しているが、本開示は、任意の好適な配置において任意の好適な数の任意の好適なコンポーネントを有する任意の好適なコンピュータシステムを企図している。
【0050】
特定の実施形態において、プロセッサ502は、コンピュータプログラムを構成する命令などの、命令を実行するためのハードウェアを含む。限定としてではなく例として、命令を実行するために、プロセッサ502は、内部レジスタ、内部キャッシュ、メモリ504、またはストレージ506から命令を取り出し(またはフェッチし)、命令を復号し、実行し、次いで、1つまたは複数の結果を、内部レジスタ、内部キャッシュ、メモリ504、またはストレージ506に書き込むことができる。特定の実施形態において、プロセッサ502は、データ、命令、またはアドレスのための、1つまたは複数の内部キャッシュを含むことができる。本開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ502を企図している。限定としてではなく例として、プロセッサ502は、1つまたは複数の命令キャッシュ、1つまたは複数のデータキャッシュ、および1つまたは複数のトランスレーションルックアサイドバッファ(TLB)を含むことができる。命令キャッシュにおける命令は、メモリ504またはストレージ506における命令の複製であってよく、命令キャッシュは、プロセッサ502によるそれらの命令の取り出しをスピードアップすることができる。データキャッシュにおけるデータは、それに演算するためにプロセッサ502で実行する命令のための、メモリ504もしくはストレージ506におけるデータの複製、プロセッサ502で実行する後続の命令によるアクセスのための、またはメモリ504もしくはストレージ506に書き込むための、プロセッサ502で実行されたそれまでの命令の結果、または他の好適なデータであってよい。データキャッシュは、プロセッサ502による読み込み動作または書き込み動作をスピードアップすることができる。TLBは、プロセッサ502のための仮想アドレス変換をスピードアップすることができる。特定の実施形態において、プロセッサ502は、データ、命令、またはアドレスのための、1つまたは複数の内部レジスタを含むことができる。本開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ502を企図している。適切な場合、プロセッサ502は、1つまたは複数の算術論理演算ユニット(ALU)を含むか、マルチコアプロセッサであるか、あるいは、1つまたは複数のプロセッサ502を含むことができる。本開示は、特定のプロセッサを説明し、示しているが、本開示は、任意の好適なプロセッサを企図している。
【0051】
特定の実施形態において、メモリ504は、プロセッサ502が実行するための命令、またはプロセッサ502が演算するためのデータを記憶するためのメインメモリを含む。限定としてではなく例として、コンピュータシステム500は、ストレージ506または別のソース(たとえば、別のコンピュータシステム500など)からの命令を、メモリ504にロードすることができる。プロセッサ502が次いで、メモリ504からの命令を、内部レジスタまたは内部キャッシュにロードすることができる。命令を実行するために、プロセッサ502は、内部レジスタ、または内部キャッシュから命令を取り出し、それを復号することができる。命令の実行の間、または命令の実行後、プロセッサ502は、(中間結果または最終結果であってよい)1つまたは複数の結果を、内部レジスタまたは内部キャッシュに書き込むことができる。プロセッサ502は次いで、それらの結果の1つまたは複数を、メモリ504に書き込むことができる。特定の実施形態において、プロセッサ502は、(ストレージ506または他の場合とは対照的に)1つもしくは複数の内部レジスタ、または内部キャッシュ、またはメモリ504における命令のみを実行し、(ストレージ506または他の場合とは対照的に)1つもしくは複数の内部レジスタ、または内部キャッシュ、またはメモリ504におけるデータのみに演算する。1つまたは複数のメモリバス(各々がアドレスバスおよびデータバスを含んでよい)が、プロセッサ502をメモリ504に結合することができる。バス512は、以下で論じるように、1つまたは複数のメモリバスを含むことができる。特定の実施形態において、1つまたは複数のメモリ管理ユニット(MMU)が、プロセッサ502とメモリ504との間に常駐し、プロセッサ502によって要求されるメモリ504へのアクセスを促進する。特定の実施形態において、メモリ504は、ランダムアクセスメモリ(RAM)を含む。このRAMは、適切な場合、揮発性メモリであってよい。適切な場合、このRAMは、動的RAM(DRAM)または静的RAM(SRAM)であってよい。さらに、適切な場合、このRAMは、シングルポートRAMまたはマルチポートRAMであってよい。本開示は、任意の好適なRAMを企図している。メモリ504は、適切な場合、1つまたは複数のメモリ504を含むことができる。本開示は、特定のメモリを説明し、示しているが、本開示は、任意の好適なメモリを企図している。
【0052】
特定の実施形態において、ストレージ506は、データまたは命令のためのマスストレージを含む。限定としてではなく例として、ストレージ506は、ハードディスクドライブ(HDD)、フロッピーディスクドライブ、フラッシュメモリ、光学ディスク、磁気光学ディスク、磁気テープ、またはユニバーサルシリアルバス(USB)ドライブ、あるいはこれらの2つ以上の組合せを含むことができる。ストレージ506は、適切な場合、リムーバブル、または非リムーバブル(すなわち固定式)媒体を含むことができる。ストレージ506は、適切な場合、コンピュータシステム500の内部にあっても、外部にあってもよい。特定の実施形態において、ストレージ506は、不揮発性のソリッドステートメモリであってよい。特定の実施形態において、ストレージ506は、読み出し専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムされたROM、プログラマブルROM(PROM)、消去可能なPROM(EPROM)、電気的に消去可能なPROM(EEPROM)、電気的に変更可能なROM(EAROM)、またはフラッシュメモリ、あるいはこれらの2つ以上の組合せであってよい。本開示は、任意の好適な物理的形態を取るマスストレージ506を企図している。ストレージ506は、適切な場合、プロセッサ502とストレージ506との間の通信を促進する、1つまたは複数のストレージ制御ユニットを含むことができる。適切な場合、ストレージ506は、1つまたは複数のストレージ506を含むことができる。本開示は、特定のストレージを説明し、示しているが、本開示は、任意の好適なストレージを企図している。
【0053】
特定の実施形態において、I/Oインターフェース508は、コンピュータシステム500と1つまたは複数のI/Oデバイスとの間で通信するための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム500は、適切な場合、これらのI/Oデバイスのうちの1つまたは複数を含むことができる。これらのI/Oデバイスのうちの1つまたは複数は、人とコンピュータシステム500との間の通信を可能にすることができる。限定としてではなく例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、静止カメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の好適なI/Oデバイス、またはこれらのうちの2つ以上の組合せを含むことができる。I/Oデバイスは、1つまたは複数のセンサを含むことができる。本開示は、任意の好適なI/Oデバイス、およびI/Oデバイスのための任意の好適なI/Oインターフェース508を企図している。適切な場合、I/Oインターフェース508は、プロセッサ502がこれらのI/Oデバイスのうちの1つまたは複数を駆動するのを可能にする、1つまたは複数のデバイスまたはソフトウェアドライバを含むことができる。I/Oインターフェース508は、適切な場合、1つまたは複数のI/Oインターフェース508を含むことができる。本開示は、特定のI/Oインターフェースを説明し、示しているが、本開示は、任意の好適なI/Oインターフェースを企図している。
【0054】
特定の実施形態において、通信インターフェース510は、コンピュータシステム500と、1つもしくは複数の他のコンピュータシステム500または1つもしくは複数のネットワークとの間で通信する(たとえば、パケットベースの通信など)ために1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく例として、通信インターフェース510は、イーサネットもしくは他のワイヤベースのネットワークと通信するためのネットワークインターフェースコントローラ(NIC)もしくはネットワークアダプタ、または、WI−FIネットワークなどのワイヤレスネットワークと通信するためのワイヤレスNIC(WNIC)もしくはワイヤレスアダプタを含むことができる。本開示は、任意の好適なネットワーク、およびそのネットワークのための任意の好適な通信インターフェース510を企図している。限定としてではなく例として、コンピュータシステム500は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、またはインターネットの1つまたは複数の部分、あるいはこれらのうちの2つ以上の組合せと通信することができる。これらのネットワークのうちの1つまたは複数の、1つまたは複数の部分は、ワイヤードであっても、ワイヤレスであってもよい。例として、コンピュータシステム500は、ワイヤレスPAN(WPAN)(たとえば、BLUETOOTH WPANなど)、WI−FIネットワーク、WI−MAXネットワーク、セルラー電話ネットワーク(たとえば、モバイル通信用グローバルシステム(GSM)ネットワークなど)、または他の好適なワイヤレスネットワーク、あるいはこれらのうちの2つ以上の組合せと通信することができる。コンピュータシステム500は、適切な場合、これらのネットワークのうちのいずれかのための任意の好適な通信インターフェース510を含むことができる。通信インターフェース510は、適切な場合、1つまたは複数の通信インターフェース510を含むことができる。本開示は、特定の通信インターフェースを説明し、示しているが、本開示は、任意の好適な通信インターフェースを企図している。
【0055】
特定の実施形態において、バス512は、コンピュータシステム500のコンポーネント同士を互いに結合する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく例として、バス512は、アクセラレーテッドグラフィックポート(AGP)もしくは他のグラフィックバス、拡張業界標準アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、ハイパートランスポート(HT)相互接続、業界標準アーキテクチャ(ISA)バス、INFINIBAND相互接続、ローピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、周辺コンポーネント相互接続(PCI)バス、PCIエクスプレス(PCIe)バス、シリアル高度技術アタッチメント(SATA)バス、ビデオ電子標準協会ローカル(VLB)バス、または別の好適なバス、あるいはこれらのうちの2つ以上の組合せを含むことができる。バス512は、適切な場合、1つまたは複数のバス512を含むことができる。本開示は、特定のバスを説明し、示しているが、本開示は、任意の好適なバスまたは相互接続を企図している。
【0056】
本明細書において、1つまたは複数のコンピュータ可読非一時的記録媒体は、適切な場合、1つまたは複数の半導体ベースの集積回路もしくは他の集積回路(IC)(たとえば、フィールドプログラマブルゲートアレイ(FPGA)もしくは特定用途向けIC(ASIC)など)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光学ディスク、光学ディスクドライブ(ODD)、磁気光学ディスク、磁気光学ドライブ、フロッピーディスケット、フロッピーディスクドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカードもしくはドライブ、任意の他の好適なコンピュータ可読非一時的記録媒体、またはこれらのうちの2つ以上の任意の好適な組合せを含むことができる。コンピュータ可読非一時的記録媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性との組合せであってよい。
【0057】
本明細書において、「または(or)」は、そうでないと明確に指し示されない、または文脈によってそうでないと指し示されない限り、包括的であって、排他的ではない。したがって、本明細書において、「AまたはB」は、そうでないと明確に指し示されない、または文脈によってそうでないと指し示されない限り、「A、B、またはその両方」を意味する。さらに、「および(and)」は、そうでないと明確に指し示されない、または文脈によってそうでないと指し示されない限り、共同および個別の両方である。したがって、本明細書において、「AおよびB」は、そうでないと明確に指し示されない、または文脈によってそうでないと指し示されない限り、「共同的に、または個別的に、AおよびB」を意味する。
【0058】
本開示の範囲は、当業者が把握するであろう、本明細書で説明または示された例示的な実施形態に対するすべての変更形態、置換形態、変形形態、改変形態、および修正形態を包含する。本開示の範囲は、本明細書で説明または示された例示的な実施形態に限定されない。さらに、本開示は、特定のコンポーネント、要素、機能、動作、またはステップを含むように、本明細書においてそれぞれの実施形態を説明し、示しているが、これらの実施形態のうちのいずれかが、当業者が把握するであろう、本明細書のどこかで説明された、または示されたコンポーネント、要素、機能、動作、またはステップのうちのいずれかの任意の組合せ、または並べ換えを含めばよい。その上、添付の特許請求の範囲において、特定の機能を行うように適応され、配置され、可能であり、構成され、可能にされ、動作可能であり、または動作する、装置、またはシステム、または装置もしくはシステムのコンポーネントへの言及は、それもしくはその特定の機能が作動していてもいなくても、オンにされていてもいなくても、またはロック解除されていてもいなくても、その装置、システム、またはコンポーネントがそのように適応され、配置され、可能であり、構成され、可能にされ、動作可能であり、動作する限り、その装置、システム、コンポーネントを包含する。