(57)【特許請求の範囲】
【請求項１】
１つまたは複数のウェブ・クライアントからのセッション・データを自動的に同期させる、機械で実現される方法であって、
前記１つまたは複数のウェブ・クライアントからの更新済みセッション・データが使用可能であるかどうかをモバイル・デバイス上で判断することであって、前記更新済みセッション・データが、前記１つまたは複数のウェブ・クライアント上のそれぞれのセッションにおけるブラウジング・アクティビティを示すものであって前記それぞれのセッション中に前記１つまたは複数のウェブ・クライアントより受信したユーザ入力に基づくウェブ・ページ・フォームエレメント・データを含むことと、
前記更新済みセッション・データが使用可能である場合に、ネットワークにより前記１つまたは複数のウェブ・クライアントから前記更新済みセッション・データを前記モバイル・デバイス上で受信することであって、前記更新済みセッション・データが、前記１つまたは複数のウェブ・クライアント上の前記それぞれのセッションにおけるブラウジング・アクティビティの現在の状態を含み、前記ブラウジング・アクティビティの現在の状態は、前記１つまたは複数のウェブ・クライアント上の前記それぞれのセッション中における、閲覧したウェブ・ページのタブ付きウィンドウ・アクティビティを含み、前記１つまたは複数のウェブ・クライアントのうち少なくとも１つはデスクトップ・コンピューティング・デバイス上で動作するデスクトップ・ウェブ・クライアントを含むことと、
モバイル・ウェブ・クライアントが前記モバイル・デバイス上で起動された後に、前記モバイル・デバイス上の前記モバイル・ウェブ・クライアントのウィンドウ内に、受信した前記更新済みセッション・データを表示することであって、前記モバイル・ウェブ・クライアントの前記ウィンドウ内に表示される前記更新済みセッション・データは、前記１つまたは複数のウェブ・クライアント上の前記それぞれのセッションにおけるブラウジング・アクティビティの現在の状態に対応し、表示される前記更新済みセッション・データは、前記１つまたは複数のウェブ・クライアント上の前記それぞれのセッション中に前記１つまたは複数のウェブ・クライアントより受信した、閲覧したウェブ・ページの前記タブ付きウィンドウ・アクティビティおよびユーザ入力に基づく前記ウェブ・ページ・フォームエレメント・データを含むこと
を含む、方法。
【請求項２】
前記更新済みセッション・データが使用可能であるかどうかを判断することが、通知サーバから前記更新済みセッション・データの通知を受信することを含む、請求項１記載の方法。
【請求項３】
前記更新済みセッション・データが使用可能であるかどうかを判断することが、前記モバイル・ウェブ・クライアントが起動された後に行われる、請求項１記載の方法。
【請求項４】
前記１つまたは複数のウェブ・クライアント上の前記それぞれのセッションにおけるブラウジング・アクティビティが、デスクトップ・ウェブ・クライアント上の１つまたは複数の閲覧したウェブ・ページのナビゲーション履歴データを含む、請求項１記載の方法。
【請求項５】
前記更新済みセッション・データが前記デスクトップ・ウェブ・クライアントからのタブ・ウィンドウ・データを含む、請求項１記載の方法。
【請求項６】
前記タブ・ウィンドウ・データが、リソースの場所を示すユニバーサル・リソース・ロケータを指定する、請求項５記載の方法。
【請求項７】
前記リソースがウェブ・コンテンツを含む、請求項５記載の方法。
【請求項８】
受信した前記更新済みセッション・データを前記モバイル・ウェブ・クライアントのウィンドウ内に表示すること
をさらに含む、請求項１記載の方法。
【請求項９】
前記更新済みセッション・データが、デバイス上で開いた１つまたは複数のタブに対応するそれぞれのデータを含み、１つまたは複数のタブに対応する前記それぞれのデータが、それぞれのタブのナビゲーション履歴を含む、請求項１記載の方法。
【請求項１０】
前記モバイル・ウェブ・クライアントはモバイル・ウェブ・ブラウザである、請求項１記載の方法。
【請求項１１】
ユーザ入力に基づく前記ウェブ・ページ・フォームエレメント・データが、ウェブ検索エンジンにおける検索クエリに対応する、ユーザによって入力された１つまたは複数の検索クエリの語である、請求項１記載の方法。
【請求項１２】
第１のウェブ・クライアントと同期させるために１つまたは複数のウェブ・クライアントからのセッション・データを保存する、機械で実現される方法であって、
更新済みセッション・データが前記１つまたは複数のウェブ・クライアントのそれぞれのセッションで使用可能であるかどうかを判断することであって、前記更新済みセッション・データが前記それぞれのセッション中に前記１つまたは複数のウェブ・クライアントより受信したユーザ入力に基づくウェブ・ページ・フォームエレメント・データを含むことと、
前記更新済みセッション・データが使用可能である場合に、前記更新済みセッション・データに関する要求をネットワークにより前記１つまたは複数のウェブ・クライアントに伝送することと、
前記更新済みセッション・データをネットワークにより前記１つまたは複数のウェブ・クライアントから受信することであって、前記更新済みセッション・データが、前記１つまたは複数のウェブ・クライアント上の前記それぞれのセッションにおけるブラウジング・アクティビティの現在の状態を含み、前記ブラウジング・アクティビティの現在の状態は、前記１つまたは複数のウェブ・クライアントでの前記それぞれのセッション中に閲覧したウェブ・ページのタブ付きウィンドウ・アクティビティを含み、前記１つまたは複数のウェブ・クライアントのうち少なくとも１つはデスクトップ・コンピューティング・デバイス上で動作するデスクトップ・ウェブ・クライアントを含むことと、
前記更新済みセッション・データをネットワークによりモバイル・デバイス上のモバイル・ウェブ・クライアントに伝送して前記モバイル・デバイス上の前記モバイル・ウェブ・クライアント上で表示させることであって、伝送された前記更新済みセッション・データは、前記１つまたは複数のウェブ・クライアントでの前記それぞれのセッションにおけるブラウジング・アクティビティの現在の状態に対応し、伝送された前記更新済みセッション・データは、前記１つまたは複数のウェブ・クライアントでの前記それぞれのセッション中に前記１つまたは複数のウェブ・クライアントから受信した、閲覧したウェブ・ページの前記タブ付きウィンドウ・アクティビティおよびユーザ入力に基づく前記ウェブ・ページ・フォームエレメント・データを含むこと
を含む、方法。
【請求項１３】
前記更新済みセッション・データを示す通知をネットワークによりモバイル・デバイス上のモバイル・ウェブ・クライアントに伝送すること
をさらに含む、請求項１２記載の方法。
【請求項１４】
前記通知が前記モバイル・デバイス上の前記モバイル・ウェブ・クライアントにプッシュされる、請求項１３記載の方法。
【請求項１５】
ネットワークにより前記モバイル・デバイス上の前記モバイル・ウェブ・クライアントに前記更新済みセッション・データを伝送することであって、前記更新済みセッション・データが前記デスクトップ・ウェブ・クライアント上の１つまたは複数の閲覧したウェブ・ページのナビゲーション履歴データを含むこと
をさらに含む、請求項１３記載の方法。
【請求項１６】
前記１つまたは複数のウェブ・クライアントでの前記それぞれのセッションにおけるブラウジング・アクティビティが、前記デスクトップ・ウェブ・クライアントによって閲覧された１つまたは複数の異なるウェブ・サイトを含んだ前記ナビゲーション履歴データを含む、請求項１５記載の方法。
【請求項１７】
ユーザ入力に基づく前記ウェブ・ページ・フォームエレメント・データが、ウェブ検索エンジンにおける検索クエリに対応する、ユーザによって入力された１つまたは複数の検索クエリの語である、請求項１２記載の方法。
【請求項１８】
１つまたは複数のウェブ・クライアントからのセッション・データを自動的に同期させるシステムであって、
メモリと、
１つまたは複数のプロセッサと、
メモリ内に保存され、前記１つまたは複数のプロセッサによる実行のために構成された１つまたは複数のモジュールとを含み、前記モジュールが、
更新済みセッション・データが前記１つまたは複数のウェブ・クライアント上のそれぞれのセッションで使用可能であるかどうかを判断するように構成されたセッション・モニタリング・モジュールであって、前記更新済みセッション・データが、前記１つまたは複数のウェブ・クライアント上のブラウジング・アクティビティを示すものであって前記それぞれのセッション中に前記１つまたは複数のウェブ・クライアントから受信したユーザ入力に基づくウェブ・ページ・フォームエレメント・データを含み、前記更新済みセッション・データが、前記１つまたは複数のウェブ・クライアント上の前記それぞれのセッションにおけるブラウジング・アクティビティの現在の状態を含み、前記ブラウジング・アクティビティの現在の状態は、前記１つまたは複数のウェブ・クライアント上の前記それぞれのセッション中における、閲覧したウェブ・ページのタブ付きウィンドウ・アクティビティを含み、前記１つまたは複数のウェブ・クライアントのうち少なくとも１つはデスクトップ・コンピューティング・デバイス上で動作するデスクトップ・ウェブ・クライアントを含むセッション・モニタリング・モジュールと、
前記更新済みセッション・データが使用可能である場合に第１のウェブ・クライアントに通知を伝送するように構成された通知モジュールと、
ネットワークにより前記第１のウェブ・クライアントに前記更新済みセッション・データを伝送して前記第１のウェブ・クライアント上で表示させるように構成された同期モジュールであって、伝送された前記更新済みセッション・データは、前記１つまたは複数のウェブ・クライアント上の前記それぞれのセッションにおけるブラウジング・アクティビティの現在の状態に対応し、伝送された前記更新済みセッション・データは、前記１つまたは複数のウェブ・クライアント上の前記それぞれのセッション中に前記１つまたは複数のウェブ・クライアントから受信した、閲覧したウェブ・ページの前記タブ付きウィンドウ・アクティビティおよびユーザ入力に基づく前記ウェブ・ページ・フォームエレメント・データを含む同期モジュールと
を含む、システム。
【請求項１９】
前記セッション・モニタリング・モジュールが、前記更新済みセッション・データが使用可能であるかどうかを判断するために前記１つまたは複数のウェブ・クライアントに要求を伝送するようにさらに構成される、請求項１８記載のシステム。
【請求項２０】
１つまたは複数の通知がモバイル・デバイス上のモバイル・ウェブ・クライアントに定期的に伝送される、請求項１８記載のシステム。
【請求項２１】
前記同期モジュールが、前記更新済みセッション・データの前記伝送を抑制するようにさらに構成される、請求項１８記載のシステム。
【請求項２２】
ユーザ入力に基づく前記ウェブ・ページ・フォームエレメント・データが、ウェブ検索エンジンにおける検索クエリに対応する、ユーザによって入力された１つまたは複数の検索クエリの語である、請求項１８記載のシステム。
【請求項２３】
保存された命令を含む機械可読媒体であって、前記命令が機械によって実行されたときに、
更新済みセッション・データが１つまたは複数のウェブ・クライアントでのそれぞれのセッションで使用可能であるかどうかを判断することであって、前記更新済みセッション・データが前記それぞれのセッション中に前記１つまたは複数のウェブ・クライアントより受信したユーザ入力に基づくウェブ・ページ・フォームエレメント・データを含むことと、
前記更新済みセッション・データが使用可能である場合にネットワークにより前記１つまたは複数のウェブ・クライアントに前記更新済みセッション・データに関する要求を伝送することと、
前記１つまたは複数のウェブ・クライアントからネットワークにより前記更新済みセッション・データを受信することであって、前記更新済みセッション・データが、前記１つまたは複数のウェブ・クライアントでの前記それぞれのセッションにおけるブラウジング・アクティビティの現在の状態を含み、前記ブラウジング・アクティビティの現在の状態は、前記１つまたは複数のウェブ・クライアント上の前記それぞれのセッション中における、閲覧したウェブ・ページのタブ付きウィンドウ・アクティビティを含み、前記１つまたは複数のウェブ・クライアントのうち少なくとも１つはデスクトップ・コンピューティング・デバイス上で動作するデスクトップ・ウェブ・クライアントを含むことと、
ネットワークにより第１のウェブ・クライアントに前記更新済みセッション・データを伝送して前記第１のウェブ・クライアント上で表示させることであって、伝送された前記更新済みセッション・データは、前記１つまたは複数のウェブ・クライアント上の前記それぞれのセッションにおけるブラウジング・アクティビティの現在の状態に対応し、伝送された前記更新済みセッション・データは、前記１つまたは複数のウェブ・クライアント上の前記それぞれのセッション中に前記１つまたは複数のウェブ・クライアントから受信した、閲覧したウェブ・ページの前記タブ付きウィンドウ・アクティビティおよびユーザ入力に基づく前記ウェブ・ページ・フォームエレメント・データを含むこと
を含む工程を前記機械に実行させる、機械可読媒体。
【請求項２４】
前記１つまたは複数のウェブ・クライアントでの前記それぞれのセッションにおけるブラウジング・アクティビティが前記１つまたは複数のウェブ・クライアント上の１つまたは複数の閲覧したウェブ・ページのナビゲーション履歴データを含む、請求項２３記載の機械可読媒体。
【請求項２５】
前記第１のウェブ・クライアントがモバイル・デバイス上のモバイル・ウェブ・クライアントである、請求項２３記載の機械可読媒体。
【請求項２６】
ユーザ入力に基づく前記ウェブ・ページ・フォームエレメント・データが、ウェブ検索エンジンにおける検索クエリに対応する、ユーザによって入力された１つまたは複数の検索クエリの語である、請求項２３記載の機械可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つまたは複数のウェブ・クライアントからのセッション・データを同期させる技術に関する。
【背景技術】
【０００２】
所与のウェブ・クライアント（web client）（たとえば、ウェブ・ブラウザ）では、ウェブ・コンテンツ（web content）をウェブ・クライアントに表示することができる。たとえば、ウェブ・コンテンツはテキストとグラフィックス（たとえば、画像または写真など）の混合物を含むことができる。ウェブ・コンテンツを表示するために、種々のウェブ・クライアントが使用可能である。たとえば、デスクトップ・ウェブ・クライアントはウェブ・コンテンツを表示することができる。他の例では、モバイル・デバイス上のモバイル・ウェブ・クライアントがウェブ・コンテンツを表示することができる。
【発明の概要】
【課題を解決するための手段】
【０００３】
主題技術は、１つまたは複数のウェブ・クライアントからのセッション・データ（session data）を自動的に同期させることを提供する。主題技術は、１つまたは複数のウェブ・クライアントからの更新済みセッション・データが使用可能であるかどうかをモバイル・デバイス上で判断する。更新済みセッション・データは、１つまたは複数のウェブ・クライアント上のそれぞれのセッションにおけるブラウジング・アクティビティ（browsing activity）を示し、それぞれのセッション中に１つまたは複数のウェブ・クライアントより受信したユーザ入力に基づくウェブ・ページ・フォームエレメント・データ（web page form element data）を含む。次に主題技術は、更新済みセッション・データが使用可能である場合に、ネットワークにより１つまたは複数のウェブ・クライアントから更新済みセッション・データをモバイル・デバイス上で受信する。このとき更新済みセッション・データが、１つまたは複数のウェブ・クライアント上のそれぞれのセッションにおけるブラウジング・アクティビティの現在の状態を含み、ブラウジング・アクティビティの現在の状態は、１つまたは複数のウェブ・クライアント上のそれぞれのセッション中における、閲覧したウェブ・ページのタブ付きウィンドウ・アクティビティを含み、１つまたは複数のウェブ・クライアントのうち少なくとも１つはデスクトップ・コンピューティング・デバイス上で動作するデスクトップ・ウェブ・クライアントを含む。次に主題技術は、モバイル・ウェブ・クライアントがモバイル・デバイス上で起動された後に、モバイル・デバイス上のモバイル・ウェブ・クライアントのウィンドウ内に、受信した更新済みセッション・データを表示する。このときモバイル・ウェブ・クライアントのウィンドウ内に表示される更新済みセッション・データは、１つまたは複数のウェブ・クライアント上のそれぞれのセッションにおけるブラウジング・アクティビティの現在の状態に対応し、表示される更新済みセッション・データは、１つまたは複数のウェブ・クライアント上のそれぞれのセッション中に１つまたは複数のウェブ・クライアントより受信した、閲覧したウェブ・ページのタブ付きウィンドウ・アクティビティおよびユーザ入力に基づくウェブ・ページ・フォームエレメント・データを含む。
【０００４】
主題技術は、第１のウェブ・クライアントと同期させるために１つまたは複数のウェブ・クライアントからのセッション・データを保存することをさらに提供する。主題技術は、更新済みセッション・データが１つまたは複数のウェブ・クライアントのそれぞれのセッションで使用可能であるかどうかを判断し、更新済みセッション・データはそれぞれのセッション中に１つまたは複数のウェブ・クライアントより受信したユーザ入力に基づくウェブ・ページ・フォームエレメント・データを含む。次に主題技術は、更新済みセッション・データが使用可能である場合に、更新済みセッション・データに関する要求をネットワークにより１つまたは複数のウェブ・クライアントに伝送する。次に更新済みセッション・データがネットワークにより１つまたは複数のウェブ・クライアントから受信される。ここで更新済みセッション・データが、１つまたは複数のウェブ・クライアント上のそれぞれのセッションにおけるブラウジング・アクティビティの現在の状態を含み、ブラウジング・アクティビティの現在の状態は、１つまたは複数のウェブ・クライアントでのそれぞれのセッション中に閲覧したウェブ・ページのタブ付きウィンドウ・アクティビティを含み、１つまたは複数のウェブ・クライアントのうち少なくとも１つはデスクトップ・コンピューティング・デバイス上で動作するデスクトップ・ウェブ・クライアントを含む。次に主題技術は、更新済みセッション・データをネットワークによりモバイル・デバイス上のモバイル・ウェブ・クライアントに伝送してモバイル・デバイス上のモバイル・ウェブ・クライアント上で表示させる。ここで伝送された更新済みセッション・データは、１つまたは複数のウェブ・クライアントでのそれぞれのセッションにおけるブラウジング・アクティビティの現在の状態に対応し、伝送された更新済みセッション・データは、１つまたは複数のウェブ・クライアントでのそれぞれのセッション中に１つまたは複数のウェブ・クライアントから受信した、閲覧したウェブ・ページのタブ付きウィンドウ・アクティビティおよびユーザ入力に基づくウェブ・ページ・フォームエレメント・データを含む。
【０００５】
主題技術のさらに他の態様は、１つまたは複数のウェブ・クライアントからのセッション・データを自動的に同期させるためのシステムを提供する。このシステムは、メモリと、１つまたは複数のプロセッサと、メモリ内に保存され、１つまたは複数のプロセッサによる実行のために構成された１つまたは複数のモジュールとを含む。このシステムは、更新済みセッション・データが１つまたは複数のウェブ・クライアント上のそれぞれのセッションで使用可能であるかどうかを判断するように構成されたセッション・モニタリング・モジュール（session monitoring module）を含み、更新済みセッション・データは１つまたは複数のウェブ・クライアント上のブラウジング・アクティビティを示し、それぞれのセッション中に１つまたは複数のウェブ・クライアントから受信したユーザ入力に基づくウェブ・ページ・フォームエレメント・データを含み、更新済みセッション・データが、１つまたは複数のウェブ・クライアント上のそれぞれのセッションにおけるブラウジング・アクティビティの現在の状態を含み、ブラウジング・アクティビティの現在の状態は、１つまたは複数のウェブ・クライアント上のそれぞれのセッション中における、閲覧したウェブ・ページのタブ付きウィンドウ・アクティビティを含み、１つまたは複数のウェブ・クライアントのうち少なくとも１つはデスクトップ・コンピューティング・デバイス上で動作するデスクトップ・ウェブ・クライアントを含む。このシステムは、更新済みセッション・データが使用可能である場合に第１のウェブ・クライアントに通知を伝送するように構成された通知モジュール（notification module）をさらに含む。さらに、このシステムは、ネットワークにより第１のウェブ・クライアントに更新済みセッション・データを伝送して第１のウェブ・クライアント上で表示させるように構成された同期モジュール（synchronization module）を含み、伝送された更新済みセッション・データは、１つまたは複数のウェブ・クライアント上のそれぞれのセッションにおけるブラウジング・アクティビティの現在の状態に対応し、伝送された更新済みセッション・データは、１つまたは複数のウェブ・クライアント上のそれぞれのセッション中に１つまたは複数のウェブ・クライアントから受信した、閲覧したウェブ・ページのタブ付きウィンドウ・アクティビティおよびユーザ入力に基づくウェブ・ページ・フォームエレメント・データを含む。
【０００６】
主題技術は、更新済みセッション・データが１つまたは複数のウェブ・クライアントでのそれぞれのセッションで使用可能であるかどうかを判断することをさらに提供し、更新済みセッション・データはそれぞれのセッション中に１つまたは複数のウェブ・クライアントより受信したユーザ入力に基づくウェブ・ページ・フォームエレメント・データを含む。主題技術は、更新済みセッション・データが使用可能である場合に、ネットワークにより１つまたは複数のウェブ・クライアントに更新済みセッション・データに関する要求を伝送する。次に更新済みセッション・データがネットワークにより１つまたは複数のウェブ・クライアントから受信される。ここで更新済みセッション・データが、１つまたは複数のウェブ・クライアントでのそれぞれのセッションにおけるブラウジング・アクティビティの現在の状態を含み、ブラウジング・アクティビティの現在の状態は、１つまたは複数のウェブ・クライアント上のそれぞれのセッション中における、閲覧したウェブ・ページのタブ付きウィンドウ・アクティビティを含み、１つまたは複数のウェブ・クライアントのうち少なくとも１つはデスクトップ・コンピューティング・デバイス上で動作するデスクトップ・ウェブ・クライアントを含む。さらに、主題技術は、ネットワークにより第１のウェブ・クライアントに更新済みセッション・データを伝送して第１のウェブ・クライアント上で表示させる。ここで伝送された更新済みセッション・データは、１つまたは複数のウェブ・クライアント上のそれぞれのセッションにおけるブラウジング・アクティビティの現在の状態に対応し、伝送された更新済みセッション・データは、１つまたは複数のウェブ・クライアント上のそれぞれのセッション中に１つまたは複数のウェブ・クライアントから受信した、閲覧したウェブ・ページのタブ付きウィンドウ・アクティビティおよびユーザ入力に基づくウェブ・ページ・フォームエレメント・データを含む。

【０００７】
主題技術の様々な構成が例示として示され記載されている以下の詳細な説明から主題技術のその他の構成が当業者にとって容易に明らかになることは言うまでもない。認識されるように、主題技術はその他の種々の構成が可能であり、そのいくつかの詳細は、いずれも主題技術の範囲を逸脱せずに、様々なその他の点で変更可能である。したがって、図面および詳細な説明は、限定的なものとしてではなく、本質的に例示的なものと見なすべきである。
【０００８】
主題技術の新規の特徴は特許請求の範囲に明記されている。しかし、説明のために、主題技術のいくつかの構成が以下の図面に明記されている。
【図面の簡単な説明】
【０００９】
【図１】デスクトップ・ウェブ・クライアントからのセッション・データをモバイル・デバイスに自動的に同期させるためのプロセスの一例を概念的に示す図である。
【図２】モバイル・ウェブ・クライアントと同期させるためにデスクトップ・ウェブ・クライアントからのセッション・データを保存するためのプロセスの一例を概念的に示す図である。
【図３】主題技術のいくつかの構成を実現可能なグラフィカル・ユーザ・インターフェースを概念的に示す図である。
【図４】コンピューティング環境の一例を概念的に示す図である。
【図５】アプリケーション・プログラミング・インターフェース（ＡＰＩ）のアーキテクチャの一例を概念的に示す図である。
【図６】モバイル・デバイス・アーキテクチャの一例である。
【図７】主題技術のいくつかの実現例を実現可能なシステムを概念的に示す図である。
【発明を実施するための形態】
【００１０】
以下に明記されている詳細な説明は、主題技術の様々な構成の説明として意図されており、主題技術を実践可能な唯一の構成を表すためのものではない。添付図面は本明細書に組み込まれ、詳細な説明の一部を構成する。詳細な説明は、主題技術の詳細な理解を可能にするための特定の詳細を含む。しかし、主題技術が本明細書に明記されている特定の詳細に限定されず、このような特定の詳細なしで実践可能であることは、当業者にとって明確かつ明らかになるであろう。場合によっては、主題技術の概念を不明瞭にするのを回避するために、周知の構造およびコンポーネントがブロック図形式で示されている。
【００１１】
主題技術は、デスクトップ・ウェブ・クライアント（たとえば、デスクトップ・ウェブ・ブラウザ）からのブラウザ・データをモバイル・デバイス上のウェブ・クライアントに自動同期させることを提供する。デスクトップ・ウェブ・クライアントとのセッション中に、ユーザは、１つまたは複数の異なるページに移動する（navigate）ことによりデスクトップ・ウェブ・クライアントと対話することができ、１つまたは複数のタブ付きウィンドウ（tabbed window）が前述のページを表示することができる。一例では、ユーザは検索エンジンに検索クエリをサブミットし、検索結果項目は、デスクトップ・ウェブ・クライアントによって、対応するタブ付きウィンドウ内に表示することができる。ユーザは、その後、検索結果項目の１つを異なるタブ付きウィンドウで開くことができる。場合によっては、ユーザは、タブ付きウィンドウ・アクティビティ（tabbed window activity）を含むセッションの状態を、モバイル・デバイス（たとえば、携帯電話、スマートフォン、タブレットなど）上のモバイル・ウェブ・クライアント（たとえば、モバイル・ウェブ・ブラウザ）など、他のデバイスに同期させたいと希望する可能性がある。しかし、モバイル・ウェブ・クライアントが（たとえば、デスクトップ・ウェブ・クライアント上のセッションからの）タブ付きウィンドウ・アクティビティを再表示できるように、デスクトップ・ウェブ・クライアントから閲覧したウェブ・ページのタブ付きウィンドウ・アクティビティに関するユーザのセッション・データがモバイル・ウェブ・クライアントと同期することは、容易ではない。
【００１２】
前述の問題（複数も可）に対処するために、デスクトップ・ウェブ・クライアントからのセッション・データをモバイル・デバイスに同期させるためのプロセスが提供される。一例では、モバイル・デバイスは、デスクトップ・ウェブ・クライアントのセッション・データに対する更新が行われたときに（たとえば、ユーザが異なるウェブ・ページをブラウズしたときに）通知サーバから通知を受信するよう申し込むことができる。たとえば、ユーザは、１つまたは複数のウェブ・ページに移動することによりデスクトップ・ウェブ・クライアントと対話するので、デスクトップ・ウェブ・クライアントは保存のために更新済みセッション・データをリモート・サーバ（たとえば、ストレージ・サーバ）に伝送することができる。いくつかの構成の通知サーバは、リモート・サーバ上のセッション・データに対する更新を追跡し、更新済みセッション・データが使用可能であることを示す１つまたは複数の通知をモバイル・デバイスに定期的に伝送することができる。次にモバイル・デバイスは、通知を受信した後にリモート・サーバから更新済みセッション・データを受信することができる。モバイル・ウェブ・クライアントがモバイル・デバイス上で起動されると、更新済みセッション・データは、ユーザがアクセスするためにモバイル・ウェブ・クライアント上で（たとえば、１つまたは複数のタブ付きウィンドウで）使用可能になる。更新済みセッション・データは、デスクトップ・ウェブ・クライアントから閲覧したウェブ・ページのナビゲーション履歴（navigation history）を含むことができる。
【００１３】
上記のデータに加えて、主題技術は、ブラウジング・コンテキストまたはセッション内のデータをモバイル・デバイスに同期させるための追加のタイプのデータを含むことができる。たとえば、ウェブ・ページ・フォームエレメントを持続するためのデータを同期させることができる。一例では、（たとえば、ウェブ検索エンジンのウェブ・ページ上のテキストボックス・フォームエレメントに１つまたは複数の検索クエリのキーワードを入力することにより）デスクトップ・ウェブ・クライアント上においてウェブ検索エンジンでウェブ検索を実行することができる。その場合、モバイル・デバイス上に示されたウェブ検索エンジンのウェブ・ページ上のテキストボックス・フォームエレメントに（たとえば、デスクトップ・ウェブ・クライアントに入力されたように）同じキーワードが自動入力されるように、ウェブ検索エンジンのウェブ・ページ内のテキストボックス・フォームエレメントに入力された１つまたは複数の検索クエリのキーワードをモバイル・デバイスに同期させることができる。さらに、ブックマーク、パスワード／オートフィル・データ、オムニボックス・データ（たとえば、タイプ入力したＵＲＬに関する統計、前のクエリなど）、テキスト・フィールド、テキスト領域、選択ポップアップなどを含む、その他のタイプのデータをモバイル・デバイスに同期させることができる。本明細書で具体的に言及されていないその他のタイプのデータは、モバイル・デバイスに同期させることができ、依然として主題技術の範囲内に含まれる。
【００１４】
上記の例ではデスクトップ・ウェブ・クライアントからのセッション・データをモバイル・ウェブ・クライアントに同期させることについて説明しているが、１つまたは複数のウェブ・クライアント間でセッション・データを同期させることができることを理解されたい。たとえば、モバイル・ウェブ・クライアントからのセッション・データは、上記と同様にデスクトップ・ウェブ・クライアントに同期させることができる。さらに、モバイル・ウェブ・クライアントおよび／またはデスクトップ・ウェブ・クライアントを１つまたは複数の他のウェブ・クライアント（たとえば、１つまたは複数のデスクトップ・ウェブ・クライアント、１つまたは複数のモバイル・ウェブ・クライアントなど）と同期させることができる。その上、構成によっては、更新済みセッション・データを示すための通知がモバイル・デバイスに伝送されない。その代わりに、モバイル・デバイスは、リモート・ストレージ・サーバから更新済みセッション・データ（ある場合）を要求することができる。構成によっては、リモート・ストレージ・サーバおよび通知サーバは、モバイル・デバイスおよび／またはデスクトップ・ウェブ・クライアントと通信するための単一サーバとして実現される。
【００１５】
図１は、１つまたは複数のウェブ・クライアントからのセッション・データを自動的に同期させるためのプロセス１００の一例を概念的に示している。一例では、デスクトップ・ウェブ・クライアントおよび／または他のウェブ・クライアントからのセッション・データを同期させるために、モバイル・デバイスによってプロセス１００を実現することができる。構成によっては、プロセス１００は、セッション・データを同期させるために、定期的に以下に記載する動作を実行する。たとえば、プロセス１００は、モバイル・デバイス上で実行されるモバイル・ウェブ・クライアントを更新するために１つまたは複数のウェブ・クライアントからの更新済みセッション・データが使用可能であることを検出することができる。
【００１６】
プロセス１００は、１つまたは複数のウェブ・クライアントからの更新済みセッション・データが使用可能であるかどうかを判断することにより、１０５から始まる。一例では、通知サーバから更新済みセッション・データの通知を受信したときに、更新済みセッション・データが使用可能である。通知サーバは、デスクトップ・ウェブ・クライアントからのセッション・データをモニターする、ネットワーク上のリモート・サーバにすることができる。更新済みセッション・データが使用可能であるかどうかを判断することは、モバイル・ウェブ・クライアントが起動された後に行うことができる。一例では、モバイル・ウェブ・クライアントはモバイル・ウェブ・ブラウザである。更新済みセッション・データは、デスクトップ・ウェブ・クライアント（複数も可）上の１つまたは複数の閲覧したウェブ・ページのナビゲーション履歴データを含む。さらに、更新済みセッション・データは、１つまたは複数のウェブ・サイト（たとえば、デスクトップ・ウェブ・クライアント（複数も可）によって保存されたもの）に対応するブックマーク・データ（たとえば、ローカルに保存されたユニフォーム・リソース・アイデンティファイア（Uniform Resource Identifier））を含むことができる。また、更新済みセッション・データは、デスクトップ・ウェブ・クライアント（複数も可）（または任意のその他のウェブ・クライアント）からのタブ・ウィンドウ・データ（またはその他のウィンドウ・データ）も含むことができる。構成によっては、タブ・ウィンドウ・データは、リソースの場所を示すユニバーサル・リソース・ロケータを指定する。このリソースは、ウェブ・コンテンツ、画像データ、オーディオ、ビデオなどを含むことができる。一例では、更新済みセッション・データは、（たとえば、上述のように、ユーザがテキストボックス・フォームエレメントに対する入力を提供したときに）ユーザ入力に基づくウェブ・ページ・フォームエレメント・データを含む。
【００１７】
上述のように、その他のタイプのデータは、更新済みセッション・データに含めることができ、依然として主題技術の範囲内に含まれる。たとえば、ウェブ・ページ・フォームエレメントを持続するためのデータ、１つまたは複数のブックマーク、パスワード／オートフィル・データ、オムニボックス・データ（たとえば、タイプ入力したＵＲＬに関する統計、前のクエリなど）、テキスト・フィールド、テキスト領域、選択ポップアップなどはモバイル・デバイスに同期させることができる。本明細書で具体的に言及されていないその他のタイプのデータは、モバイル・デバイスに同期させることができ、依然として主題技術の範囲内に含まれる。
【００１８】
次にプロセス１００は１１０で、更新済みセッション・データが使用可能である場合にネットワークにより１つまたは複数のウェブ・クライアントから更新済みセッション・データを受信する。上述のように、更新済みセッション・データを受信することは、受信側ウェブ・クライアント（たとえば、モバイル・デバイス上のモバイル・ウェブ・ブラウザ）内で行うことができる。プロセス１００は１１５で、受信側ウェブ・クライアントのウィンドウ内に受信した更新済みセッション・データを表示する。表示されたセッション・データの一例については以下の図３に関連してより詳細に説明する。その後、プロセス１００は終了する。
【００１９】
図２は、第１のウェブ・クライアントと同期させるために１つまたは複数のウェブ・クライアントからのセッション・データを保存するためのプロセス２００の一例を概念的に示している。構成によっては、プロセス２００は、デスクトップ・ウェブ・クライアントおよび／または他のウェブ・クライアントからのセッション・データを受信するストレージ・サーバによって実現することができる。ストレージ・サーバは、構成によっては、ネットワークによりデスクトップ・ウェブ・クライアントおよび第１のウェブ・クライアント（たとえば、モバイル・ウェブ・クライアント）と通信することができる。
【００２０】
プロセス２００は、更新済みセッション・データが１つまたは複数のウェブ・クライアントで使用可能であるかどうかを判断することにより、２０５から始まる。プロセス２００は２１０で、更新済みセッション・データが使用可能である場合に更新済みセッション・データに関する要求を伝送する。一例では、プロセス２００は、使用可能な更新済みセッション・データを取り出すために１つまたは複数のウェブ・クライアントに要求を伝送する。プロセス２００は２１５で、１つまたは複数のウェブ・クライアントから更新済みセッション・データを受信する。次にプロセス２００は２２０で、更新済みセッション・データを保存する。
【００２１】
構成によっては、プロセス２００は２２５で、更新済みセッション・データを示す通知をネットワークにより第１のウェブ・クライアントに伝送する。一例では、第１のウェブ・クライアントはモバイル・デバイス上のモバイル・ウェブ・クライアントである。たとえば、プロセス２００はモバイル・デバイス上のモバイル・ウェブ・クライアントに通知をプッシュすることができる。次にプロセス２００は２３０で、ネットワークにより第１のウェブ・クライアントに更新済みセッション・データを伝送する。一例では、更新済みセッション・データは、デスクトップ・ウェブ・クライアント上の１つまたは複数の閲覧したウェブ・ページのナビゲーション履歴データを含む。その後、プロセス２００は終了する。
【００２２】
プロセス２００は、２１０で更新済みセッション・データに関する要求を伝送する動作と、２２５で通知を伝送する動作を含むが、主題技術はプロセス２００で前述の動作のすべてを実行する必要はない。たとえば、プロセス２００のいくつかの構成では、２１０の要求の伝送および／または２２５の通知の伝送を行わずに済ますことができる。このような場合（複数も可）、プロセス２００は、２１０の要求なしに２１５でセッション・データを受信するか、および／または２２５の通知なしに２３０でセッション・データを伝送するか、を行うことができる。
【００２３】
図３は、主題技術のいくつかの構成を実現可能なグラフィカル・ユーザ・インターフェース（ＧＵＩ）３００を概念的に示している。より具体的には、ＧＵＩ３００は、ウェブ・クライアント（たとえば、デスクトップ・ウェブ・クライアント）から受信したかまたは同期させたセッション・データを表示するための図形要素の種々のセットを含むことができる。図形要素は、ボタン、チェック・ボックス、ラジオ・ボタン、スライダ、リスト・ボックス、ドロップダウン・リスト、メニュー、コンボ・ボックス、アイコン、テキストボックス、スクロールバーなどを含むことができるが、これらに限定されない。一例では、ＧＵＩ３００は、図１のプロセス１００の動作を実行した後にウェブ・クライアントに表示される。特に、ＧＵＩ３００は、モバイル・デバイス上のモバイル・ウェブ・クライアントのウィンドウ内に（たとえば、モバイル・ウェブ・ブラウザのタブ・ウィンドウ内に）表示することができる。他の例では、ＧＵＩ３００は、デスクトップ・ウェブ・クライアントおよび／または任意のその他のウェブ・クライアントのウィンドウ内に表示することができる。
【００２４】
図３に示されているように、ＧＵＩ３００は１つまたは複数のタブを含む。特に、ＧＵＩ３００は、１つまたは複数の異なる表示領域３１０、３２０、３３０、および３４０を表示するためのタブ３０５を含む。表示領域３１０、３２０、３３０、および３４０は、それぞれ、デスクトップ・ウェブ・クライアントからのセッション・データによるウェブ・サイトを含む。表示領域のそれぞれでは、ウェブ・サイトは、それぞれのウェブ・サイトを示すためのアイコン３７０、３７２、３７４、または３７６を含むことができる。さらに、デスクトップ・ウェブ・クライアントからのセッション・データに含まれるウェブ・サイトを示すために、ＧＵＩ３００はセッション・データのソースを示すアイコン３５０を含むことができる。示されているように、表示領域３１０、３２０、３３０、および３４０のそれぞれは、セッション・データのソースを示すためにこのようなアイコンを含む。たとえば、ＧＵＩ３００は、あるウェブ・サイトについて「ウェブ・サイト４」と呼ばれる特定のウェブ・サイトがモバイル・ウェブ・クライアントからのものである（たとえば、モバイル・ウェブ・クライアント上で開かれた）ことを示すアイコン３６０（たとえば、モバイル・デバイスを表す）を含む。
【００２５】
ユーザはモバイル・ウェブ・クライアント上のＧＵＩ３００と対話することができる。一例として、ユーザは、表示領域３１０、３２０、３３０、および３４０のいずれかを選択して、それぞれの表示領域にリストされた選択済みウェブ・サイトを開くかまたはブラウズすることができる。一例では、モバイル・ウェブ・クライアントは、デスクトップ・ウェブ・クライアントからのセッション・データに含まれる１つまたは複数のウェブ・サイトを自動的に開くことができる。このように、モバイル・ウェブ・クライアントは、デスクトップ・ウェブ・クライアント内のユーザ・セッションを反映することができる。
【００２６】
図３に関する上記の説明はＧＵＩ３００内の種々の図形要素の例を含むが、実現例によっては、ＧＵＩ３００内に他の図形要素を含むことができ、依然として主題技術の範囲内に含まれる。さらに、ＧＵＩ３００は前述の図形要素のすべてを含む必要はない。たとえば、ＧＵＩ３００は、デスクトップ・ウェブ・クライアントおよび／またはモバイル・ウェブ・クライアントからのセッション・データを表示するときにアイコン（複数も可）またはタブ（複数も可）を省略することができる。
【００２７】
図４は、システムを含むコンピューティング環境４００の一例を概念的に示している。特に、図４は図２の上記のプロセスを実現するためのシステム４０５を示している。構成によっては、システム４０５は特定の機械（たとえば、サーバ）を実行させる実現例の一部である。
【００２８】
図４に示されているように、システム４０５は、異なる機能を提供するためのいくつかのモジュールを含む。システム４０５は、セッション・モニタリング・モジュール４１０と、通知モジュール４１５と、同期モジュール４２０とを含むように構成される。セッション・モニタリング・モジュール４１０は、更新済みセッション・データが１つまたは複数のウェブ・クライアント上で使用可能であるかどうかを判断するように構成される。セッション・モニタリング・モジュール４１０は、更新済みセッション・データが使用可能であるかどうかを判断するための要求を１つまたは複数のウェブ・クライアントに伝送するようにさらに構成され、更新済みセッション・データは１つまたは複数のウェブ・クライアント上のブラウジング・アクティビティを示し、ユーザ入力に基づくウェブ・ページ・フォームエレメント・データを含む。通知モジュール４１５は、更新済みセッション・データが使用可能である場合に第１のウェブ・クライアントに通知を伝送するように構成される。一例では、第１のウェブ・クライアントはモバイル・デバイス上のモバイル・ウェブ・クライアントにすることができる。通知モジュール４１５は、更新済みセッション・データが使用可能である場合に異なるウェブ・クライアント（たとえば、デスクトップ・ウェブ・クライアント、他のモバイル・ウェブ・クライアントなど）に１つまたは複数の通知を伝送するように構成される。構成によっては、１つまたは複数の通知は、モバイル・ウェブ・クライアントおよび／またはその他のウェブ・クライアントに定期的に伝送される。同期モジュール４２０は、１つまたは複数のウェブ・クライアントから更新済みセッション・データを受信することができる。同期モジュール４２０は、ネットワークにより第１のウェブ・クライアント（たとえば、モバイル・デバイス上のモバイル・ウェブ・クライアント）に更新済みセッション・データを伝送するように構成される。同期モジュールは、構成によっては、更新済みセッション・データの伝送を抑制するようにさらに構成される。
【００２９】
図４にさらに示されているように、前述のモジュールのそれぞれは、相互に通信するように構成することができる。たとえば、システム４０５内の異なるモジュール間で異なるデータ、メッセージ、ＡＰＩ呼び出し、および戻り値を渡すことができる。
【００３０】
システム４０５は、ネットワーク４５０により、デスクトップ・クライアント４６０およびモバイル・デバイス４７０ならびに１つまたは複数の異なるクライアント４８０と通信することができる。デスクトップ・クライアント４６０、モバイル・デバイス４７０および１つまたは複数の異なるクライアント４８０はそれぞれ、システム４０５の前述のモジュールと通信するように構成することができる。たとえば、デスクトップ・クライアント４６０は、ネットワーク４５０によりシステム４０５にセッション・データを伝送することができる。次にシステム４０５は、ネットワーク４５０によりモバイル・デバイス４７０および／またはその他のクライアント４８０にセッション・データを伝送することができる。
【００３１】
上述の特徴および適用例の多くは、機械可読記憶媒体（コンピュータ可読媒体ともいう）上に記録された１組の命令として規定されるソフトウェア・プロセスとして実現される。これらの命令が１つまたは複数の処理装置（たとえば、１つまたは複数のプロセッサ、プロセッサのコア、あるいはその他の処理装置）によって実行される場合、これらの命令はその命令に示されているアクションを処理装置（複数も可）に実行させる。機械可読媒体の例としては、ＣＤ−ＲＯＭ、フラッシュ・ドライブ、ＲＡＭチップ、ハード・ドライブ、ＥＰＲＯＭなどを含むが、これらに限定されない。機械可読媒体は、無線によるかまたは有線接続により通過する電子信号ならびに搬送波を含まない。
【００３２】
本明細書では、「ソフトウェア」という用語は、読み取り専用メモリに常駐するファームウェアおよび／または磁気記憶装置に保存されたアプリケーションを含むものであり、どちらもプロセッサによる処理のためにメモリに読み込むことができる。また、実現例によっては、複数のソフトウェア・コンポーネントは、別個のソフトウェア・コンポーネントでありながら、より大きいプログラムのサブパートとして実現することができる。また、実現例によっては、複数のソフトウェア・サブジェクト・コンポーネントを別々のプログラムとして実現することもできる。最後に、ここに記載したソフトウェア・コンポーネント（複数も可）を一緒に実現する別々のプログラムの任意の組み合わせは主題技術の範囲内に含まれる。実現例によっては、ソフトウェア・プログラムは、１つまたは複数のシステム上で動作するようにインストールされると、ソフトウェア・プログラムの動作を実行する１つまたは複数の特定の機械実現例を定義する。
【００３３】
コンピュータ・プログラム（プログラム、ソフトウェア、ソフトウェア・アプリケーション、スクリプト、またはコードとしても知られている）は、コンパイル済みまたは解釈済み（interpreted）言語、宣言形または手続き形言語を含む、任意の形のプログラミング言語で作成することができ、スタンドアロン・プログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクト、あるいはコンピューティング環境での使用に適したその他のユニットとしてを含む、任意の形で配備することができる。コンピュータ・プログラムは、ファイル・システム内のファイルに対応することができるが、対応する必要はない。プログラムは、その他のプログラムまたはデータ（たとえば、マークアップ言語文書に保存された１つまたは複数のスクリプト）を保持するファイルの一部分に保存するか、当該プログラムに専用の単一ファイル内に保存するか、あるいは複数の協調ファイル（たとえば、１つまたは複数のモジュール、サブプログラム、またはコードの一部分を保存するファイル）内に保存することができる。コンピュータ・プログラムは、１つのコンピュータ上で実行するか、あるいは１つの場所または複数の場所に分散されて位置し通信ネットワークによって相互接続された複数のコンピュータ上で実行するように配備することができる。
【００３４】
いくつかの構成は、呼び出しプログラム・コードが１つまたは複数のインターフェースを介して呼び出される他のプログラム・コードと対話する環境において、１つまたは複数のアプリケーション・プログラミング・インターフェース（ＡＰＩ）を含むソフトウェア・プロセスとして実現される。様々なファンクション呼び出し、メッセージ、またはその他のタイプの呼び出しは、様々な種類のパラメータを含むことができ、呼び出しプログラムと呼び出されるコードとの間でＡＰＩを介して伝送することができる。加えて、ＡＰＩは、ＡＰＩで定義され、呼び出されるプログラム・コードで実現されるデータ型またはクラスを使用する能力を呼び出しプログラム・コードに提供することができる。
【００３５】
構成によっては、１つまたは複数のＡＰＩを使用することができる。ＡＰＩは、プログラム・コード・コンポーネントまたはハードウェア・コンポーネント（「ＡＰＩ実装コンポーネント（API implementing component）」）によって実装されるインターフェースであって、種々のプログラム・コード・コンポーネントまたはハードウェア・コンポーネント（「ＡＰＩ呼び出しコンポーネント（API calling component）」）がＡＰＩ実装コンポーネントによって提供される１つまたは複数のファンクション、メソッド、プロシージャ、データ構造、クラス、あるいはその他のサービス、またはこれらの組み合わせにアクセスし使用できるようにするものである。ＡＰＩは、ＡＰＩ呼び出しコンポーネントとＡＰＩ実装コンポーネントとの間で渡される１つまたは複数のパラメータを定義することができる。
【００３６】
ＡＰＩは、ＡＰＩ呼び出しコンポーネントの開発者（サードパーティ開発者である可能性がある）がＡＰＩ実装コンポーネントによって提供された特定の機能を使用できるようにするものである。ＡＰＩ呼び出しコンポーネントが１つである場合もあれば、このようなコンポーネントが２つ以上ある場合もある。ＡＰＩは、アプリケーションからのサービスに関する要求をサポートするためにコンピューティング・システムまたはプログラム・ライブラリが提供するソース・コード・インターフェースにすることができる。オペレーティング・システム（ＯＳ）はそのＯＳ上で実行されるアプリケーションがＡＰＩのうちの１つまたは複数を呼び出せるようにするために複数のＡＰＩを有することができ、サービス（プログラム・ライブラリなど）はそのサービスを使用するアプリケーションがＡＰＩのうちの１つまたは複数を呼び出せるようにするために複数のＡＰＩを有することができる。ＡＰＩは、アプリケーションが構築されるときに解釈またはコンパイルすることができるプログラミング言語に関して規定することができる。
【００３７】
構成によっては、ＡＰＩ実装コンポーネントは２つ以上のＡＰＩを提供することができ、そのそれぞれは、ＡＰＩ実装コンポーネントによって実現される機能の異なる態様にアクセスするように異なるビューまたは異なる態様を提供する。たとえば、ＡＰＩ実装コンポーネントの１つのＡＰＩは、第１の機能セットを提供することができ、サードパーティ開発者に公開される可能性があり、ＡＰＩ実装コンポーネントのもう１つのＡＰＩは、隠され（公開されず）、第１の機能セットのサブセットを提供し、さらに第１の機能セットに含まれないテストまたはデバッグ機能などのもう１つの機能セットも提供することができる。他の構成では、ＡＰＩ実装コンポーネントは、基礎をなすＡＰＩを介して１つまたは複数のその他のコンポーネントを自分で呼び出すことができ、したがって、ＡＰＩ呼び出しコンポーネントおよびＡＰＩ実装コンポーネントのどちらにもなり得る。
【００３８】
ＡＰＩは、ＡＰＩ実装コンポーネントの指定の機能にアクセスして使用するときにＡＰＩ呼び出しコンポーネントが使用する言語およびパラメータを定義する。たとえば、ＡＰＩ呼び出しコンポーネントは、ＡＰＩによって公開される（たとえば、ファンクション呼び出しまたはメソッド呼び出しによって実施される）１つまたは複数のＡＰＩ呼び出しまたは起動によりＡＰＩ実装コンポーネントの指定の機能にアクセスし、ＡＰＩ呼び出しまたは起動を介して、パラメータを使用するデータおよび制御情報を渡す。ＡＰＩ実装コンポーネントは、ＡＰＩ呼び出しコンポーネントからのＡＰＩ呼び出しに応答してＡＰＩを介して値を返すことができる。ＡＰＩはＡＰＩ呼び出しの構文および結果（たとえば、ＡＰＩ呼び出しを起動する方法およびＡＰＩ呼び出しが実行すること）を定義するが、ＡＰＩはＡＰＩ呼び出しによって指定された機能をＡＰＩ呼び出しがどのように達成するかを明らかにしない可能性がある。様々なＡＰＩ呼び出しは、呼び出し側（ＡＰＩ呼び出しコンポーネント）とＡＰＩ実装コンポーネントとの間で１つまたは複数のアプリケーション・プログラミング・インターフェースを介して伝送される。ＡＰＩ呼び出しの伝送は、ファンクション呼び出しまたはメッセージの発行、開始、起動、呼び出し、受信、戻り、または応答を含むことができる。換言すれば、伝送は、ＡＰＩ呼び出しコンポーネントまたはＡＰＩ実装コンポーネントのいずれかによるアクションを表すことができる。ＡＰＩのファンクション呼び出しまたはその他の呼び出しは、パラメータ・リストまたはその他の構造により１つまたは複数のパラメータを送信または受信することができる。パラメータは、定数、キー、データ構造、オブジェクト、オブジェクト・クラス、変数、データ型、ポインタ、配列、リスト、もしくはＡＰＩを介して渡すべきデータまたはその他の項目を参照するための関数またはメソッドあるいは他の方法を指すポインタにすることができる。
【００３９】
さらに、データ型またはクラスは、ＡＰＩによって提供し、ＡＰＩ実装コンポーネントによって実現することができる。したがって、ＡＰＩ呼び出しコンポーネントは、ＡＰＩで提供された定義を使用することにより、変数を宣言し、ポインタを使用し、このような型またはクラスの定数値を使用するかまたはインスタンス化することができる。
【００４０】
一般に、ＡＰＩを使用して、ＡＰＩ実装コンポーネントによって提供されるサービスまたはデータにアクセスするか、あるいはＡＰＩ実装コンポーネントによって提供される動作または計算の実行を開始することができる。一例として、ＡＰＩ実装コンポーネントおよびＡＰＩ呼び出しコンポーネントはそれぞれ、オペレーティング・システム、ライブラリ、デバイス・ドライバ、ＡＰＩ、アプリケーション・プログラム、またはその他のモジュールのいずれかにすることができる（ＡＰＩ実装コンポーネントおよびＡＰＩ呼び出しコンポーネントは同じタイプまたは互いに異なるタイプのモジュールにすることができることを理解されたい）。場合によっては、ＡＰＩ実装コンポーネントは、少なくとも部分的に、ファームウェア、マイクロコード、またはその他のハードウェア・ロジックで実施することができる。構成によっては、ＡＰＩにより、クライアント・プログラムはソフトウェア開発キット（ＳＤＫ）ライブラリによって提供されるサービスを使用することができる。他の構成では、アプリケーションまたはその他のクライアント・プログラムは、アプリケーション・フレームワークによって提供されるＡＰＩを使用することができる。このような構成では、アプリケーションまたはクライアント・プログラムは、ＳＤＫによって提供され、ＡＰＩによって提供されるファンクションまたはメソッドに対する呼び出しを取り入れるか、あるいはＳＤＫで定義され、ＡＰＩによって提供されるデータ型またはオブジェクトを使用することができる。このような構成では、アプリケーション・フレームワークは、そのフレームワークによって定義される様々なイベントに応答するプログラムに関する主要イベント・ループを提供することができる。ＡＰＩによりアプリケーションは、アプリケーション・フレームワークを使用して、イベントおよびイベントに対する応答を規定することができる。実現例によっては、ＡＰＩ呼び出しは、入力機能および状態、出力機能および状態、処理機能、電力状態、記憶容量および状態、通信機能などの諸態様に関連するものを含む、ハードウェア・デバイスの諸機能または状態をアプリケーションに対して報告することができ、ＡＰＩは、ファームウェア、マイクロコード、または部分的にハードウェア・コンポーネント上で実行されるその他の低レベルなロジックによって部分的に実現することができる。
【００４１】
ＡＰＩ呼び出しコンポーネントは、ネットワークによりＡＰＩを介してＡＰＩ実装コンポーネントと通信するローカル・コンポーネント（すなわち、ＡＰＩ実装コンポーネントと同じデータ処理システム上にある）またはリモート・コンポーネント（すなわち、ＡＰＩ実装コンポーネントとは異なるデータ処理システム上にある）にすることができる。ＡＰＩ実装コンポーネントはＡＰＩ呼び出しコンポーネントとしても動作可能であり（すなわち、異なるＡＰＩ実装コンポーネントによって公開されたＡＰＩに対してＡＰＩ呼び出しを行うことができる）、ＡＰＩ呼び出しコンポーネントは異なるＡＰＩ呼び出しコンポーネントに対して公開されるＡＰＩを実装することによりＡＰＩ実装コンポーネントとしても動作可能であることを理解されたい。
【００４２】
ＡＰＩにより、異なるプログラミング言語で作成された複数のＡＰＩ呼び出しコンポーネントがＡＰＩ実装コンポーネントと通信することができる（したがって、ＡＰＩはＡＰＩ実装コンポーネントとＡＰＩ呼び出しコンポーネントとの間の呼び出しおよび戻り値を変換するための機能を含むことができる）。しかし、ＡＰＩは、特定のプログラミング言語に関して実現することができる。ある構成では、ＡＰＩ呼び出しコンポーネントは、ＯＳの提供者からの１組のＡＰＩと、プラグインの提供者からのもう１組のＡＰＩと、他の提供者（たとえば、ソフトウェア・ライブラリの提供者）あるいはもう１組のＡＰＩの作成者からのもう１組のＡＰＩなど、種々の提供者からのＡＰＩを呼び出すことができる。
【００４３】
以下の説明では、主題技術のいくつかの構成を実現可能なＡＰＩアーキテクチャの一例について記載する。
【００４４】
図５は、主題技術のいくつかの構成で使用可能なＡＰＩアーキテクチャの一例を示すブロック図である。図５に示されているように、ＡＰＩアーキテクチャ５００は、ＡＰＩ５１０を実装するＡＰＩ実装コンポーネント５１５（たとえば、オペレーティング・システム、ライブラリ、デバイス・ドライバ、ＡＰＩ、アプリケーション・プログラム、ソフトウェア、またはその他のモジュール）を含む。ＡＰＩ５１０は、ＡＰＩ呼び出しコンポーネント５０５によって使用可能なＡＰＩ実装コンポーネントの１つまたは複数のファンクション、メソッド、クラス、オブジェクト、プロトコル、データ構造、フォーマット、あるいはその他の特徴、またはこれらの組み合わせを規定する。ＡＰＩ５１０は、ＡＰＩ実装コンポーネント内の１つのファンクションがどのようにＡＰＩ呼び出しコンポーネントからパラメータを受信するか、ならびにそのファンクションがどのようにＡＰＩ呼び出しコンポーネントに結果を返すかを規定する、少なくとも１つの呼び出し規則を規定することができる。ＡＰＩ呼び出しコンポーネント５０５（たとえば、オペレーティング・システム、ライブラリ、デバイス・ドライバ、ＡＰＩ、アプリケーション・プログラム、ソフトウェア、またはその他のモジュール）は、ＡＰＩ５１０によって規定されるＡＰＩ実装コンポーネント５１５のファンクションにアクセスして使用するために、ＡＰＩ５１０によりＡＰＩ呼び出しを行う。ＡＰＩ実装コンポーネント５１５は、ＡＰＩ呼び出しに応答して、ＡＰＩ５１０によりＡＰＩ呼び出しコンポーネント５０５に値を返すことができる。
【００４５】
ＡＰＩ実装コンポーネント５１５は、ＡＰＩ５１０により規定されておらず、ＡＰＩ呼び出しコンポーネント５０５にとって使用可能ではない追加のファンクション、メソッド、クラス、データ構造、あるいはその他の特徴、またはこれらの組み合わせを含むことができることが認識されるであろう。また、ＡＰＩ呼び出しコンポーネント５０５は、ＡＰＩ実装コンポーネント５１５と同じシステム上にある場合もあれば、リモートに位置する場合もあり、ネットワークによりＡＰＩ５１０を使用してＡＰＩ実装コンポーネント５１５にアクセスすることを理解されたい。図５はＡＰＩ５１０と対話する単一のＡＰＩ呼び出しコンポーネント５０５を示しているが、ＡＰＩ呼び出しコンポーネント５０５とは異なる言語（または同じ言語）で作成可能なその他のＡＰＩ呼び出しコンポーネントもＡＰＩ５１０を使用できることを理解されたい。
【００４６】
ＡＰＩ実装コンポーネント５１５、ＡＰＩ５１０、およびＡＰＩ呼び出しコンポーネント５０５は機械可読媒体に保存することができ、この機械可読媒体は、機械（たとえば、コンピュータまたはその他のデータ処理システム）によって読み取り可能な形式で情報を保存するための任意のメカニズムを含む。たとえば、機械可読媒体は、磁気ディスク、光ディスク、ランダム・アクセス・メモリ、読み取り専用メモリ、フラッシュ・メモリ・デバイスなどを含む。
【００４７】
図６は、モバイル・デバイス・アーキテクチャ６００の一例である。モバイル・デバイスの実現例は、１つまたは複数の処理装置６０５と、メモリ・インターフェース６１０と、周辺装置インターフェース６１５とを含むことができる。コンピューティング・デバイス・アーキテクチャを構成するこれらのコンポーネントのそれぞれは、別々のコンポーネントにするか、あるいは１つまたは複数の集積回路内に統合することができる。また、これらの様々なコンポーネントは、１つまたは複数の通信バスまたは信号線によって一緒に連結することもできる。
【００４８】
周辺装置インターフェース６１５は、カメラ・サブシステム６２０、無線通信サブシステム（複数も可）６２５、オーディオ・サブシステム６３０、および入出力サブシステム６３５を含む、様々なセンサおよびサブシステムに連結することができる。周辺装置インターフェース６１５はプロセッサと周辺装置との間の通信を可能にする。周辺装置はモバイル・デバイスにそれぞれ異なる機能を提供する。方位センサ６４５または加速センサ６５０などの周辺装置は、方位機能および加速機能を容易にするために周辺装置インターフェース６１５に連結することができる。さらに、モバイル・デバイスは種々の位置データを提供するための位置センサ６７５を含むことができる。特に、位置センサは、経度、緯度、および高度などの種々の位置データを提供するために全地球測位システム（ＧＰＳ）を使用することができる。
【００４９】
カメラ・サブシステム６２０は、電荷結合素子（ＣＣＤ）光センサまたは相補形金属酸化膜半導体（ＣＭＯＳ）光センサなどの１つまたは複数の光センサに連結することができる。センサに連結されたカメラ・サブシステム６２０は、画像および／またはビデオ・データの取り込みなどのカメラ機能を容易にすることができる。無線通信サブシステム６２５は、通信機能を容易にするように働くことができる。無線通信サブシステム６２５は、無線周波受信機および送信機、ならびに光受信機および送信機を含むことができる。前述の受信機および送信機は、ロング・ターム・エボリューション（ＬＴＥ）、移動体通信用グローバル・システム（ＧＳＭ（登録商標））ネットワーク、Ｗｉ−Ｆｉネットワーク、ブルートゥース・ネットワークなどの１つまたは複数の通信ネットワークにより動作するように実現することができる。オーディオ・サブシステム６３０は、音声認識、デジタル記録などの音声対応機能を容易にするために、スピーカおよびマイクロホンに連結される。
【００５０】
入出力サブシステム６３５は、周辺装置インターフェースを介した、ディスプレイ、タッチスクリーンなどの入出力周辺装置と、プロセッサ６０５のデータ・バスとの間の伝送に関わる。入出力サブシステム６３５は、これらの機能を容易にするためにタッチスクリーン・コントローラ６５５とその他の入力コントローラ６６０を含むことができる。タッチスクリーン・コントローラ６５５は、タッチスクリーン６６５に連結することができ、複数のタッチセンス技術のいずれかを使用してスクリーン上の接触および移動を検出することができる。その他の入力コントローラ６６０は、１つまたは複数のボタンなど、その他の入力制御装置に連結することができる。
【００５１】
メモリ・インターフェース６１０はメモリ６７０に連結することができ、そのメモリは、高速ランダム・アクセス・メモリおよび／またはフラッシュ・メモリなどの不揮発性メモリを含むことができる。メモリ６７０はオペレーティング・システム（ＯＳ）を保存することができる。ＯＳは、基本的なシステム・サービスを処理し、ハードウェア依存タスクを実行するための命令を含むことができる。
【００５２】
一例として、メモリは、１つまたは複数の追加のデバイスとの通信を容易にするための通信命令、グラフィック・ユーザ・インターフェース処理を容易にするためのグラフィカル・ユーザ・インターフェース命令、画像／ビデオ関連の処理および機能を容易にするための画像／ビデオ処理命令、電話関連のプロセスおよび機能を容易にするための電話命令、メディア通信および処理関連のプロセスおよび機能を容易にするためのメディア交換処理命令、カメラ関連のプロセスおよび機能を容易にするためのカメラ命令、ならびにビデオ会議のプロセスおよび機能を容易にするためのビデオ会議命令も含むことができる。上記の命令は、別々のソフトウェア・プログラムまたはモジュールとして実現する必要はない。モバイル・デバイスの様々な機能は、１つまたは複数の信号処理集積回路および／または特定用途向け集積回路を含む、ハードウェアおよび／またはソフトウェアで実現することができる。
【００５３】
以下の説明では、主題技術の諸態様を実現可能なシステムの一例について記載する。
【００５４】
図７は、それにより主題技術のいくつかの実現例を実現可能なシステム７００を概念的に示している。システム７００は、コンピュータ、電話、ＰＤＡ、または任意のその他の種類の電子デバイスにすることができる。このようなシステムは、様々なタイプのコンピュータ可読媒体と、様々な他のタイプのコンピュータ可読媒体用のインターフェースとを含む。システム７００は、バス７０５と、処理装置（複数も可）７１０と、システム・メモリ７１５と、読み取り専用メモリ７２０と、記憶装置７２５と、任意選択の入力インターフェース７３０と、任意選択の出力インターフェース７３５と、ネットワーク・インターフェース７４０とを含む。
【００５５】
バス７０５は、システム７００の多数の内部デバイスを通信可能に接続する、システム・バス、周辺機器用バス、およびチップセット・バスのすべてをひとまとめにして表している。たとえば、バス７０５は、処理装置（複数も可）７１０を、読み取り専用メモリ７２０、システム・メモリ７１５、および記憶装置７２５と通信可能に接続する。
【００５６】
これらの様々なメモリ・ユニットから、処理装置（複数も可）７１０は、主題技術のプロセスを実行するために、実行すべき命令および処理すべきデータを取り出す。処理装置（複数も可）は、種々の実現例において単一プロセッサまたはマルチコア・プロセッサにすることができる。
【００５７】
読み取り専用メモリ（ＲＯＭ）７２０は、システム７００の処理装置（複数も可）７１０およびその他のモジュールが必要とする静的データおよび命令を保存する。これに対して、記憶装置７２５は読み取り書き込みメモリ・デバイスである。このデバイスは、システム７００がオフのときでも命令およびデータを保存する不揮発性メモリ・ユニットである。主題技術のいくつかの実現例では、記憶装置７２５として大容量記憶装置（磁気ディスクまたは光ディスクおよびそれに対応するディスク・ドライブなど）を使用する。
【００５８】
他の実現例では、記憶装置７２５として取り外し可能記憶装置（フラッシュ・ドライブ、フロッピー（登録商標）・ディスク、およびそれに対応するディスク・ドライブなど）を使用する。記憶装置７２５のように、システム・メモリ７１５は読み取り書き込みメモリ・デバイスである。しかし、記憶装置７２５とは異なり、システム・メモリ７１５は、ランダム・アクセス・メモリなどの揮発性読み取り書き込みメモリである。システム・メモリ７１５は、プロセッサが実行時に必要とする命令およびデータの一部を保存する。実現例によっては、主題技術のプロセスは、システム・メモリ７１５、記憶装置７２５、あるいは読み取り専用メモリ７２０、またはこれらの組み合わせに保存される。たとえば、いくつかの実現例によりマルチメディア項目を処理するための命令を様々なメモリ・ユニットが含んでいる。これらの様々なメモリ・ユニットから、処理装置（複数も可）７１０は、いくつかの実現例のプロセスを実行するために、実行すべき命令および処理すべきデータを取り出す。
【００５９】
また、バス７０５は、任意選択の入力インターフェース７３０および任意選択の出力インターフェース７３５にも接続する。任意選択の入力インターフェース７３０により、ユーザはシステムに対して情報を伝達し、コマンドを選択することができる。任意選択の入力インターフェース７３０は、英数字キーボードおよびポインティング・デバイス（「カーソル制御装置」ともいう）とインタフェース接続することができる。任意選択の出力インターフェース７３５は、システム７００によって生成された表示画像を提供することができる。任意選択の出力インターフェース７３５は、プリンタならびに陰極線管（ＣＲＴ）または液晶ディスプレイ（ＬＣＤ）などの表示装置とインタフェース接続することができる。いくつかの実現例は、入力装置および出力装置の両方として機能する、タッチスクリーンなどのデバイスとインタフェース接続することができる。
【００６０】
最後に、図７に示されているように、バス７０５はネットワーク・アダプタ（図示せず）によりシステム７００をネットワーク・インターフェース７４０にも連結する。このように、コンピュータは、ローカル・エリア・ネットワーク（「ＬＡＮ」）、広域ネットワーク（「ＷＡＮ」）、またはイントラネットなどの複数コンピュータからなるネットワークの一部にするか、あるいはインターネットなどの複数ネットワークからなる相互接続ネットワークの一部にすることができる。システム７００のコンポーネントの一部または全部は主題技術に併せて使用することができる。
【００６１】
上記のこれらの機能は、デジタル電子回路、コンピュータ・ソフトウェア、ファームウェア、またはハードウェアで実現することができる。これらの技法は１つまたは複数のコンピュータ・プログラム・プロダクトを使用して実現することができる。プログラム可能プロセッサおよびコンピュータはモバイル・デバイスに含まれるかまたはモバイル・デバイスとしてパッケージ化することができる。プロセスおよびロジック・フローは、１つまたは複数のプログラム可能プロセッサならびに１つまたは複数のプログラム可能論理回路によって実行することができる。汎用および特殊目的のコンピューティング・デバイスならびに記憶装置は、通信ネットワークにより相互接続することができる。
【００６２】
いくつかの実現例は、機械可読媒体またはコンピュータ可読媒体（代わって、コンピュータ可読記憶媒体、機械可読メディア、または機械可読記憶媒体ともいう）にコンピュータ・プログラム命令を保存する、マイクロプロセッサ、ストレージ、およびメモリなどの電子部品を含む。このようなコンピュータ可読媒体のいくつかの例としては、ＲＡＭ、ＲＯＭ、読み取り専用コンパクト・ディスク（ＣＤ−ＲＯＭ）、記録可能コンパクト・ディスク（ＣＤ−Ｒ）、書き換え可能コンパクト・ディスク（ＣＤ−ＲＷ）、読み取り専用デジタル多用途ディスク（たとえば、ＤＶＤ−ＲＯＭ、二層ＤＶＤ−ＲＯＭ）、様々な記録可能／書き換え可能ＤＶＤ（たとえば、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷなど）、フラッシュ・メモリ（たとえば、ＳＤカード、ミニＳＤカード、マイクロＳＤカードなど）、磁気および／またはソリッドステートのハード・ドライブ、読み取り専用および記録可能Ｂｌｕ−Ｒａｙ（登録商標）ディスク、超高密度光ディスク、任意のその他の光または磁気メディア、フロッピー・ディスクを含む。コンピュータ可読媒体は、少なくとも１つの処理装置によって実行可能であって、様々な動作を実行するための複数の命令セットを含む、コンピュータ・プログラムを保存することができる。コンピュータ・プログラムまたはコンピュータ・コードの例としては、コンパイラによって生成されるような機械コード、ならびに、インタプリタを使用してコンピュータ、電子部品、またはマイクロプロセッサによって実行される高レベルのコードを含むファイルを含む。
【００６３】
上記の考察では主にソフトウェアを実行するマイクロプロセッサまたはマルチコア・プロセッサに言及しているが、いくつかの実現例は、特定用途向け集積回路（ＡＳＩＣ）またはフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）などの１つまたは複数の集積回路によって実行される。実現例によっては、このような集積回路は集積回路自体に保存された命令を実行する。
【００６４】
本明細書ならびに本出願のいずれかの請求項で使用されるように、「コンピュータ」、「サーバ」、「プロセッサ」、および「メモリ」という用語はいずれも、電子デバイスまたはその他の技術的デバイスを指している。これらの用語は人または人のグループを除外するものである。本明細書のために、ディスプレイまたは表示という用語は、電子デバイス上で表示することを意味する。本明細書ならびに本出願のいずれかの請求項で使用されるように、「コンピュータ可読媒体」および「コンピュータ可読メディア」という用語は、コンピュータによって読み取り可能な形で情報を保存する、有形かつ物理的な対象物に完全に限定される。これらの用語は、任意の無線信号、有線ダウンロード信号、および任意のその他の一過性の信号を除外するものである。
【００６５】
ユーザとの対話を可能にするために、本明細書に記載された主題の実現例は、ユーザに対して情報を表示するための表示装置、たとえば、ＣＲＴ（陰極線管）またはＬＣＤ（液晶ディスプレイ）モニターと、それによりユーザがコンピュータに対して入力を行うことができるキーボードおよびポインティング・デバイス、たとえば、マウスまたはトラックボールとを有するコンピュータ上で実現することができる。ユーザとの対話を可能にするために、その他の種類のデバイスを使用することもでき、たとえば、ユーザに提供されるフィードバックは任意の形の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックにすることができ、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む、任意の形で受け取ることができる。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、そのデバイスから文書を受信することによって、ユーザと対話することができ、たとえば、ウェブ・ブラウザから受信した要求に応答してユーザのクライアント・デバイス上のウェブ・ブラウザにウェブ・ページを送信することによって対話することができる。
【００６６】
本明細書に記載された主題の構成は、バックエンド・コンポーネント、たとえば、データ・サーバを含むか、ミドルウェア・コンポーネント、たとえば、アプリケーション・サーバを含むか、あるいはフロントエンド・コンポーネント、たとえば、ユーザが本明細書に記載された主題の一実現例と対話することができるグラフィカル・ユーザ・インターフェースまたはウェブ・ブラウザを有するクライアント・コンピュータを含むか、１つまたは複数のこのようなバックエンド・コンポーネント、ミドルウェア・コンポーネント、またはフロントエンド・コンポーネントの任意の組み合わせを含む、コンピュータ・システムで実現することができる。システムのコンポーネントは、任意の形または手段のデジタル・データ通信、たとえば、通信ネットワークによって相互接続することができる。通信ネットワークの例としては、ローカル・エリア・ネットワーク（「ＬＡＮ」）および広域ネットワーク（「ＷＡＮ」）、インターネットワーク（たとえば、インターネット）、ならびにピアツーピア・ネットワーク（たとえば、アドホック・ピアツーピア・ネットワーク）を含む。
【００６７】
コンピューティング・システムはクライアントとサーバを含むことができる。クライアントとサーバは一般に相互に遠く離れており、典型的に通信ネットワークにより対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され、相互にクライアント・サーバの関係を有するコンピュータ・プログラムによって発生する。実現例によっては、サーバはクライアント・デバイスにデータ（たとえば、ＨＴＭＬページ）を伝送する（たとえば、クライアント・デバイスと対話するユーザにデータを表示し、そのユーザからユーザ入力を受信するため）。クライアント・デバイスで生成されたデータ（たとえば、ユーザ対話の結果）はサーバ側でクライアント・デバイスから受信することができる。
【００６８】
開示されているプロセスにおける諸ステップの任意の特定の順序または階層は手法例の例示であることは言うまでもない。設計上の好みに基づいて、プロセスにおける諸ステップの特定の順序または階層を再編成できることあるいは例示されているすべてのステップを実行できることは言うまでもない。諸ステップのうちのいくつかは同時に実行することができる。たとえば、特定の状況では、多重タスク処理および並列処理が有利である可能性がある。その上、上記の構成における様々なシステム・コンポーネントの分離はすべての構成においてこのような分離を要求するものと理解すべきではなく、上記のプログラム・コンポーネントおよびシステムは一般に単一ソフトウェア・プロダクトに一緒に統合できるかまたは複数のソフトウェア・プロダクトにパッケージ化できることを理解されたい。
【００６９】
上記の説明は、当業者が本明細書に記載された様々な態様を実践できるように提供されたものである。これらの態様に対する様々な変更は当業者にとって容易に明らかになり、本明細書に定義された包括的原理はその他の態様に適用することができる。したがって、特許請求の範囲は本明細書に示されている諸態様に限定するためのものではなく、請求項の表現と一致した全範囲が授与されるべきであり、その請求項においては単数形の要素に対する言及は、特にそのように指定されない限り、「唯一のもの（one and only one）」を意味するものではなく、むしろ「１つまたは複数（one or more）」を意味するものである。特に他の指定がない限り、「いくつかの（some）」という用語は１つまたは複数を指している。男性形の代名詞（たとえば、彼の（his））は女性形および中性形（たとえば、彼女の（her）およびそれの（its））を含み、逆もまた同様である。見出しおよび小見出しがある場合、便宜上使用されているだけであり、主題技術を限定するものではない。
【００７０】
「態様（aspect）」などの語句は、このような態様が主題技術にとって不可欠であることまたはこのような態様が主題技術のすべての構成に適用されることを意味するものではない。一態様に関連する開示内容はすべての構成に適用される場合もあれば、１つまたは複数の構成に適用される場合もある。一態様などの語句は１つまたは複数の態様を指す可能性があり、逆もまた同様である。「構成（configuration）」などの語句は、このような構成が主題技術にとって不可欠であることまたはこのような構成が主題技術のすべての構成に適用されることを意味するものではない。一構成に関連する開示内容はすべての構成に適用される場合もあれば、１つまたは複数の構成に適用される場合もある。一構成などの語句は１つまたは複数の構成を指す可能性があり、逆もまた同様である。
【００７１】
「例（example）」という単語は、「一例または例示として機能すること」を意味するために本明細書で使用されている。「例」として本明細書に記載されている任意の態様または設計は必ずしも他の態様または設計より好ましいものまたは有利なものと解釈すべきではない。
【００７２】
本明細書全体を通して記載されている様々な態様の諸要素と構造上および機能上同等のものであって、当業者に知られているものまたは今後知られることになるものはいずれも、参照により本明細書に明白に組み込まれ、特許請求の範囲によって包含されるものである。その上、本明細書に開示されているものはいずれも、このような開示内容が明示的に特許請求の範囲に列挙されているかどうかにかかわらず、公衆に捧げられるものではない。
【図１】
0005291240.tif 000002
【図２】
0005291240.tif 000003
【図３】
0005291240.tif 000004
【図４】
0005291240.tif 000005
【図５】
0005291240.tif 000006
【図６】
0005291240.tif 000007
【図７】
0005291240.tif 000008