(57)【要約】【課題】ユーザ・アクセス基準に基づく動的なピクチャ・サイズ変更のための方法、システム、およびコンピュータ・プログラムを提供する。【解決手段】本発明の態様は、ウェブサイトでのピクチャのレンダリングをインターセプトすることを含み、ピクチャはコンテンツ提供者によってウェブサイトのサーバにアップロードされる。ユーザ・デバイスにおけるユーザに関連するアクセス基準が決定される。アクセス基準は、ユーザと、コンテンツ提供者およびピクチャの内容の一方または両方との間の関係を含む。ピクチャの修正されたレンダリングの解像度が、アクセス基準に少なくとも部分的に基づいて決定される。ピクチャの修正されたレンダリングが、解像度に少なくとも部分的に基づいて生成される。ピクチャの修正されたレンダリングが、ユーザ・デバイスに表示される。【選択図】図３
2020522057.tif 000002
【特許請求の範囲】
【請求項１】
動的なピクチャ・サイズ設定のためのコンピュータ実施方法であって、
処理システムを使用して、ウェブサイトでのピクチャのレンダリングをインターセプトすることであって、前記ピクチャはコンテンツ提供者によって前記ウェブサイトのサーバにアップロードされる、インターセプトすることと、
前記処理システムを使用して、ユーザ・デバイスにおけるユーザに関連するアクセス基準を決定することであって、前記アクセス基準は、前記ユーザと、前記コンテンツ提供者および前記ピクチャの内容の一方または両方との間の関係を含む、決定することと、
前記処理システムを使用して、前記アクセス基準に少なくとも部分的に基づいて前記ピクチャの修正されたレンダリングの解像度を決定することと、
前記処理システムを使用して、前記解像度に少なくとも部分的に基づいて前記ピクチャの前記修正されたレンダリングを生成することと、
前記ピクチャの前記修正されたレンダリングを前記ユーザ・デバイスに表示することと
を含む、コンピュータ実施方法。
【請求項２】
より大きいサイズの前記ピクチャを閲覧するための前記ユーザからの要求をインターセプトすることと、
前記修正されたレンダリングの前記解像度よりも高い解像度の、前記ピクチャの第２の修正されたレンダリングを生成することとをさらに含む、
請求項１に記載のコンピュータ実施方法。
【請求項３】
前記ピクチャの前記内容は人物を含む、請求項１または２に記載のコンピュータ実施方法。
【請求項４】
前記ピクチャの前記内容は被写体を含む、請求項１から３のいずれか一項に記載のコンピュータ実施方法。
【請求項５】
前記アクセス基準は前記ユーザの過去の閲覧行動をさらに含む、請求項１から４のいずれか一項に記載のコンピュータ実施方法。
【請求項６】
前記ユーザ・デバイスからアクセス基準を受信することをさらに含む、請求項１から５のいずれか一項に記載のコンピュータ実施方法。
【請求項７】
前記アクセス基準はシステム制約をさらに含む、請求項１から６のいずれか一項に記載のコンピュータ実施方法。
【請求項８】
動的なピクチャ・サイズ設定のためのシステムであって、
コンピュータ可読命令を有するメモリと、
前記コンピュータ可読命令を実行するための１つまたは複数のプロセッサであって、前記コンピュータ可読命令は、前記１つまたは複数のプロセッサを制御して動作を実行させる、１つまたは複数のプロセッサとを備え、
前記動作は、
ウェブサイトでのピクチャのレンダリングをインターセプトすることであって、前記ピクチャはコンテンツ提供者によって前記ウェブサイトのサーバにアップロードされる、インターセプトすることと、
ユーザ・デバイスにおけるユーザに関連するアクセス基準を決定することであって、前記アクセス基準は、前記ユーザと、前記コンテンツ提供者および前記ピクチャの内容の一方または両方との間の関係を含む、決定することと、
前記アクセス基準に少なくとも部分的に基づいて前記ピクチャの修正されたレンダリングの解像度を決定することと、
前記解像度に少なくとも部分的に基づいて前記ピクチャの前記修正されたレンダリングを生成することと、
前記ピクチャの前記修正されたレンダリングを前記ユーザ・デバイスに表示することと
を含む、システム。
【請求項９】
前記動作は、
より大きいサイズの前記ピクチャを閲覧するための前記ユーザからの要求をインターセプトすることと、
前記修正されたレンダリングの前記解像度よりも高い解像度の、前記ピクチャの第２の修正されたレンダリングを生成することとをさらに含む、
請求項８に記載のシステム。
【請求項１０】
前記ピクチャの前記内容は人物を含む、請求項８または９に記載のシステム。
【請求項１１】
前記ピクチャの前記内容は被写体を含む、請求項８から１０のいずれか一項に記載のシステム。
【請求項１２】
前記アクセス基準は前記ユーザの過去の閲覧行動をさらに含む、請求項８から１１のいずれか一項に記載のシステム。
【請求項１３】
前記動作は、前記ユーザ・デバイスからアクセス基準を受信することをさらに含む、請求項８から１２のいずれか一項に記載のシステム。
【請求項１４】
前記アクセス基準はシステム制約をさらに含む、請求項８から１３のいずれか一項に記載のシステム。
【請求項１５】
動的なピクチャ・サイズ設定のためのコンピュータ・プログラム製品であって、
処理回路によって読み取り可能であり、請求項１から７のいずれか一項に記載の方法を実行するための、前記処理回路によって実行される命令を記憶するコンピュータ可読記憶媒体
を含む、コンピュータ・プログラム製品。
【請求項１６】
コンピュータ可読媒体に記憶され、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で動作する場合に、請求項１から７のいずれか一項に記載の方法を実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、一般にウェブサイト上でピクチャを閲覧することに関し、より詳細にはユーザ・アクセス基準に基づく動的なピクチャ・サイズ変更に関する。
【背景技術】
【０００２】
典型的には、オンラインで閲覧されるピクチャは画質が低下しており、または解像度が低下している。ユーザがピクチャの一部を拡大表示したい場合、閲覧されているピクチャはオリジナルのフル解像度のピクチャではないので、しばしばモザイクがかって不鮮明に見える場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、ピクチャの解像度が高い場合、ウェブサイトから画像をロードするのにより多くの時間がかかる場合があり、より広い帯域幅が必要になる場合があり、これによりデータが制限されているモバイル・ユーザにとってコストがかかる場合があり、ウェブサイトのコンテンツを閲覧する速度が低下する場合がある。したがって、当技術分野では上記課題に対処する必要がある。
【課題を解決するための手段】
【０００４】
第１の態様から見ると、本発明は、動的なピクチャ・サイズ設定のためのコンピュータ実施方法を提供し、この方法は、処理システムを使用して、ウェブサイトでのピクチャのレンダリングをインターセプトすることであって、ピクチャはコンテンツ提供者によってウェブサイトのサーバにアップロードされる、インターセプトすることと、処理システムを使用して、ユーザ・デバイスにおけるユーザに関連するアクセス基準を決定することであって、アクセス基準は、ユーザと、コンテンツ提供者およびピクチャの内容の一方または両方との間の関係を含む、決定することと、処理システムを使用して、アクセス基準に少なくとも部分的に基づいてピクチャの修正されたレンダリングの解像度を決定することと、処理システムを使用して、解像度に少なくとも部分的に基づいてピクチャの修正されたレンダリングを生成することと、ピクチャの修正されたレンダリングをユーザ・デバイスに表示することとを含む。
【０００５】
さらなる態様から見ると、本発明は、動的なピクチャ・サイズ設定のためのシステムを提供し、このシステムは、コンピュータ可読命令を有するメモリと、コンピュータ可読命令を実行するための１つまたは複数のプロセッサであって、コンピュータ可読命令は、１つまたは複数のプロセッサを制御して動作を実行させる、１つまたは複数のプロセッサとを備え、動作は、ウェブサイトでのピクチャのレンダリングをインターセプトすることであって、ピクチャはコンテンツ提供者によってウェブサイトのサーバにアップロードされる、インターセプトすることと、ユーザ・デバイスにおけるユーザに関連するアクセス基準を決定することであって、アクセス基準は、ユーザと、コンテンツ提供者およびピクチャの内容の一方または両方との間の関係を含む、決定することと、アクセス基準に少なくとも部分的に基づいてピクチャの修正されたレンダリングの解像度を決定することと、解像度に少なくとも部分的に基づいてピクチャの修正されたレンダリングを生成することと、ピクチャの修正されたレンダリングをユーザ・デバイスに表示することとを含む。
【０００６】
さらなる態様から見ると、本発明は、動的なピクチャ・サイズ変更のためのコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、処理回路によって読み取り可能であり、本発明のステップを実行する方法を実行するための、処理回路によって実行される命令を記憶するコンピュータ可読記憶媒体を含む。
【０００７】
さらなる態様から見ると、本発明は、コンピュータ可読媒体に記憶され、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムを提供し、このコンピュータ・プログラムは、前記プログラムがコンピュータ上で動作する場合に、本発明のステップを実行するためのソフトウェア・コード部分を含む。
【０００８】
本発明の実施形態は、ユーザ・アクセス基準に基づく動的なピクチャ・サイズ変更のための方法、システム、およびコンピュータ・プログラム製品を含む。非限定的かつ例示的な方法は、ウェブサイトでのピクチャのレンダリングをインターセプトすることを含み、ピクチャはコンテンツ提供者によってウェブサイトのサーバにアップロードされる。ユーザ・デバイスにおけるユーザに関連するアクセス基準が決定される。アクセス基準は、ユーザと、コンテンツ提供者およびピクチャの内容の一方または両方との間の関係を含む。ピクチャの修正されたレンダリングの解像度が、アクセス基準に少なくとも部分的に基づいて決定される。ピクチャの修正されたレンダリングが、解像度に少なくとも部分的に基づいて生成される。ピクチャの修正されたレンダリングが、ユーザ・デバイスに表示される。
【０００９】
本発明の技術によって、さらなる特徴および利点が実現される。本発明の他の実施形態および態様は、本明細書で詳細に説明しており、特許請求された発明の一部とみなされる。本発明をそれらの利点および特徴と共により良く理解するために、説明および図面を参照されたい。
【００１０】
本発明とみなされる主題は、本明細書に添付の特許請求の範囲において詳細に示しており、明確に特許請求している。本発明の上記および他の特徴および利点は、添付の図面と併せて、以下の詳細な説明から明らかとなる。
【図面の簡単な説明】
【００１１】
【図１】本発明の１つまたは複数の実施形態によるクラウド・コンピューティング環境を示す図である。
【図２】本発明の１つまたは複数の実施形態による抽象化モデル・レイヤを示す図である。
【図３】本発明の１つまたは複数の実施形態による動的なピクチャ・サイズ変更のためのシステムのブロック図である。
【図４】本発明の１つまたは複数の実施形態による動的なピクチャ・サイズ変更のための処理のフロー図である。
【図５】本発明の１つまたは複数の実施形態による動的なピクチャ・サイズ変更のための処理のフロー図である。
【図６】本発明の１つまたは複数の実施形態による動的なピクチャ・サイズ変更のためのシステムのいくつかまたは全ての態様を実装するためのコンピューティング・デバイスのブロック図である。
【発明を実施するための形態】
【００１２】
本明細書に記載の本発明の１つまたは複数の実施形態は、ユーザ・アクセス基準に基づく動的なピクチャ・サイズ変更を提供する。本発明の１つまたは複数の実施形態によれば、ウェブサイトをホストするサーバに高解像度のピクチャがアップロードされる。ユーザがウェブサイトから閲覧するピクチャを選択した場合、ユーザに提示されるピクチャの解像度は、ユーザ・アクセス基準に基づいて動的に調整される。加えて、ユーザ・アクセス基準もしくはユーザ要求またはその両方に基づいて、ピクチャを動的にサイズ変更することもできる。
【００１３】
典型的なユーザがソーシャル・ネットワークにログインした場合、そのユーザは自分のニュースフィードにたくさんの友人のピクチャおよびニュースを有する場合がある。画像またはピクチャのレンダリングの解像度は、本発明の１つまたは複数の実施形態によって、ユーザ・アクセス基準に基づいて動的に決定することができる。ユーザ・アクセス基準の例は、限定はしないが、ユーザがピクチャを閲覧するために使用しているユーザ・デバイスの仕様、ピクチャを送信するために利用可能な帯域幅、ユーザ・デバイスにおけるユーザのデータ・プラン制限、ユーザ・デバイス上の記憶空間、ユーザ・デバイスの接続速度、ネットワーク構成、ユーザとピクチャ内の被写体もしくは人物との間の社会的関係もしくは他のつながり、または画像の所有者とユーザとの間の社会的関係、あるいはそれらいずれかの組み合わせを含む。たとえば、ユーザがメアリーの親友である場合、メアリーのピクチャをより高い解像度でレンダリングすることができる。ユーザがピーターと単に知人である場合、ユーザはピーターからのピクチャを詳細に閲覧することに興味がない場合があるので、ピーターのピクチャをより低い解像度でレンダリングすることができる。
【００１４】
本発明の１つまたは複数の実施形態は、ソーシャル・ネットワーキング・ウェブサイトの内容（たとえば、「友達」であるか、もしくは他の方法でつながりがあるか）、もしくは当事者の過去の行動（たとえば、電子メール、およびやりとりの頻度）、またはその両方に基づいて、社会的関係（たとえば、親友、知人）を決定する。また、分析を使用して、２人の友人が互いの投稿に対して行ったいいね！およびコメントに基づいて、彼らがどれほど親密な関係を有するかを決定することができる。また、分析を使用して、いくつのサービスで友人がつながっているか、たとえば、限定はしないが、Ｆａｃｅｂｏｏｋ（Ｒ）での友達であること、Ｔｗｉｔｔｅｒ（Ｒ）およびＩｎｓｔａｇｒａｍ（Ｒ）もしくは他のソーシャル・ネットワークで互いをフォローしていること、またはＦａｃｅｂｏｏｋ（Ｒ）  Ｍｅｓｓｅｎｇｅｒ、Ｇｏｏｇｌｅ  Ｈａｎｇｏｕｔｓ（Ｒ）、もしくは他のメッセージング・アプリケーションなどの様々なメッセージング・サービスで互いにメッセージを送っていること、あるいはそれらいずれかの組み合わせを相互参照することができる。これらのつながりが多いほど、友人関係は親密である。
【００１５】
本明細書で使用する場合、「解像度」という用語は、画像またはピクチャを構成する個別のピクセル（または他の要素）の数を指す。解像度が高くなるにつれて、画像がより鮮明に、より明確に、より詳細になるので、ピクチャの画質が向上する。本明細書で使用する「フル解像度」という用語は、ピクチャを閲覧するために使用されているディスプレイまたは他のデバイスで利用可能な最高解像度を指す。本明細書で使用する場合、「高解像度」および「低解像度」という用語は相対的な用語であり、高解像度のピクチャは低解像度の同じピクチャよりも多くのピクセルを有する。「オリジナル解像度」という用語は、ウェブサイトによりアクセスするためにサーバにアップロードされ記憶されたときのピクチャの解像度を指す。ピクチャのオリジナル解像度は、閲覧可能な最高解像度である。
【００１６】
本明細書で使用する場合、「ピクチャ」および「画像」という用語を、電子形式で作成またはコピーされ記憶されたコンピュータ画像を指すために、交換可能に使用する。ピクチャは、たとえば、限定はしないが、図面、写真、グラフ、ロゴ、個々のビデオ・フレームなどの視覚情報を表すピクセル（または他のバイナリもしくはベクトル表現）で構成することができる。ピクチャは当技術分野で知られている任意のフォーマットで、たとえば、限定はしないが、ジョイント・フォトグラフィック・エキスパート・グループ（ＪＰＥＧ：ｊｏｉｎｔ  ｐｈｏｔｏｇｒａｐｈｉｃ  ｅｘｐｅｒｔｓ  ｇｒｏｕｐ）、タグド・イメージ・ファイル・フォーマット（ＴＩＦＦ：ｔａｇｇｅｄ  ｉｍａｇｅ  ｆｉｌｅ  ｆｏｒｍａｔ）、コンピュータ・グラフィックス・メタファイル（ＣＧＭ：ｃｏｍｐｕｔｅｒ  ｇｒａｐｈｉｃｓ  ｍｅｔａｆｉｌｅ）、ポータブル・ドキュメント・フォーマット（ＰＤＦ：ｐｏｒｔａｂｌｅ  ｄｏｃｕｍｅｎｔ  ｆｏｒｍａｔ）で記憶することができる。
【００１７】
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に列挙した教示の実装形態はクラウド・コンピューティング環境に限定されないことを事前に理解されたい。むしろ、本発明の実施形態は、現在知られているまたは今後開発される他の任意のタイプのコンピューティング環境と共に実施することができる。
【００１８】
クラウド・コンピューティングは、最小限の管理労力またはサービスのプロバイダとのやり取りによって迅速に供給および公開することが可能な、設定可能なコンピューティング・リソース（たとえば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス）の共有プールへの便利かつオンデマンドのネットワーク・アクセスを可能にするためのサービス提供のモデルである。このクラウド・モデルは、少なくとも５つの特徴、少なくとも３つのサービス・モデル、および少なくとも４つの展開モデルを含むことができる。
【００１９】
特徴は以下の通りである。
オンデマンド・セルフサービス：クラウド・コンシューマは、サービスのプロバイダとの人的な対話を必要とせずに、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング能力を一方的に供給することができる。
ブロード・ネットワーク・アクセス：能力はネットワークを介して利用することができ、異種のシンまたはシック・クライアント・プラットフォーム（たとえば、携帯電話、ラップトップ、およびＰＤＡ）による使用を促進する標準的なメカニズムを介してアクセスされる。
リソース・プーリング：プロバイダのコンピューティング・リソースをプールして、様々な物理リソースおよび仮想リソースが需要に応じて動的に割り当ておよび再割り当てされるマルチテナント・モデルを使用して複数のコンシューマにサービス提供する。一般にコンシューマは、提供されるリソースの正確な位置に対して何もできず、知っているわけでもないが、より高い抽象化レベル（たとえば、国、州、またはデータセンターなど）における位置を特定できる場合があるという点で位置非依存の感覚がある。
迅速な弾力性：能力を迅速かつ弾力的に、場合によっては自動的に供給して素早くスケール・アウトし、迅速に解放して素早くスケール・インすることができる。コンシューマにとって、供給可能な能力は無制限であるように見えることが多く、任意の時間に任意の数量で購入することができる。
測定されるサービス：クラウドシステムは、サービスの種類（たとえば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント）に適したある抽象化レベルでの計量能力を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、管理、および報告して、利用されるサービスのプロバイダおよびコンシューマの両方に透明性を提供することができる。
【００２０】
サービス・モデルは以下の通りである。
ソフトウェア・アズ・ア・サービス（ＳａａＳ：Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）：コンシューマに提供される能力は、クラウド・インフラストラクチャ上で動作するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ（たとえば、ウェブ・ベースの電子メール）などのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定を可能性のある例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、さらには個々のアプリケーション機能を含む、基盤となるクラウド・インフラストラクチャを管理も制御もしない。
プラットフォーム・アズ・ア・サービス（ＰａａＳ：Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）：コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、コンシューマが作成または取得したアプリケーションをクラウド・インフラストラクチャ上に展開することである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基盤となるクラウド・インフラストラクチャを管理も制御もしないが、展開されたアプリケーションおよび場合によってはアプリケーション・ホスティング環境構成を制御する。
インフラストラクチャ・アズ・ア・サービス（ＩａａＳ：Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）：コンシューマに提供される能力は、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアをコンシューマが展開し動作させることが可能な、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースを供給することである。コンシューマは、基盤となるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システム、ストレージ、展開されたアプリケーションを制御し、場合によっては選択したネットワーキング・コンポーネント（たとえば、ホスト・ファイアウォール）を限定的に制御する。
【００２１】
展開モデルは以下の通りである。
プライベート・クラウド：クラウド・インフラストラクチャは組織専用に運用される。これは組織または第三者によって管理される場合があり、構内または構外に存在する場合がある。
コミュニティ・クラウド：クラウド・インフラストラクチャはいくつかの組織によって共有され、共通の懸念（たとえば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項など）を有する特定のコミュニティをサポートする。これは組織または第三者によって管理される場合があり、構内または構外に存在する場合がある。
パブリック・クラウド：クラウド・インフラストラクチャは、一般大衆または大規模な業界団体に対して利用可能にされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド：クラウド・インフラストラクチャは、固有のエンティティのままであるが、データおよびアプリケーションの移植性を可能にする標準化技術または独自技術（たとえば、クラウド間の負荷分散のためのクラウド・バースティング）によって結合された２つ以上のクラウド（プライベート、コミュニティ、またはパブリック）を合成したものである。
【００２２】
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味論的相互運用性に重点を置いたサービス指向型である。クラウド・コンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【００２３】
ここで図１を参照すると、例示的なクラウド・コンピューティング環境５０が示されている。図示のように、クラウド・コンピューティング環境５０は１つまたは複数のクラウド・コンピューティング・ノード１０を含み、これらを使用して、たとえば、パーソナル・デジタル・アシスタント（ＰＤＡ：ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）もしくは携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、または自動車コンピュータ・システム５４Ｎ、あるいはそれらいずれかの組み合わせなどの、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスが通信することができる。ノード１０は互いと通信することができる。ノード１０は、たとえば、上述のプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはそれらの組み合わせなどの１つまたは複数のネットワークに、物理的または仮想的にグループ化することができる（図示せず）。これにより、クラウド・コンピューティング環境５０は、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを維持する必要がない、インフラストラクチャ・アズ・ア・サービス、プラットフォーム・アズ・ア・サービス、もしくはソフトウェア・アズ・ア・サービス、またはそれらいずれかの組み合わせを提供することが可能になる。図１に示すコンピューティング・デバイス５４Ａ〜Ｎの種類は例示的なものにすぎないことが意図されており、コンピューティング・ノード１０およびクラウド・コンピューティング環境５０は、任意の種類のネットワークもしくはネットワーク・アドレス指定可能接続（たとえば、ウェブ・ブラウザを使用）またはその両方を介して任意の種類のコンピュータ化デバイスと通信できることを理解されたい。
【００２４】
ここで図２を参照すると、クラウド・コンピューティング環境５０（図１）によって提供される機能的抽象化レイヤのセットが示されている。図２に示すコンポーネント、レイヤ、および機能は例示的なものにすぎないことが意図されており、本発明の実施形態はそれらに限定されないことを事前に理解されたい。図示のように、以下のレイヤおよび対応する機能が提供される。
【００２５】
ハードウェアおよびソフトウェア・レイヤ６０は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム６１、ＲＩＳＣ（縮小命令セット・コンピュータ：Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）アーキテクチャ・ベースのサーバ６２、サーバ６３、ブレード・サーバ６４、記憶デバイス６５、ならびにネットワークおよびネットワーキング・コンポーネント６６を含む。いくつかの実施形態において、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア６７およびデータベース・ソフトウェア６８を含む。
【００２６】
仮想化レイヤ７０は、仮想エンティティの以下の例：仮想サーバ７１、仮想ストレージ７２、仮想プライベート・ネットワークを含む仮想ネットワーク７３、仮想アプリケーションおよびオペレーティング・システム７４、ならびに仮想クライアント７５を提供することができる抽象化レイヤを提供する。
【００２７】
一例では、管理レイヤ８０は、下記の機能を提供することができる。リソース供給８１は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの動的調達を提供する。計量および価格決定８２は、クラウド・コンピューティング環境内でリソースが利用されたときの費用追跡と、これらのリソースの消費に対する会計または請求とを提供する。一例では、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマおよびタスクのＩＤ検証だけでなく、データおよび他のリソースに対する保護も提供する。ユーザ・ポータル８３は、コンシューマおよびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理８４は、要求されたサービス・レベルが満たされるようなクラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス・レベル合意（ＳＬＡ：Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ）の計画および履行８５は、ＳＬＡによれば将来要求されると予想されるクラウド・コンピューティング・リソースの事前手配および調達を提供する。
【００２８】
ワークロード・レイヤ９０は、クラウド・コンピューティング環境を利用することができる機能性の例を提供する。このレイヤから提供可能なワークロードおよび機能の例は、マッピングおよびナビゲーション９１、ソフトウェア開発およびライフサイクル管理９２、仮想教室教育配信９３、データ分析処理９４、取引処理９５、および動的なピクチャ・サイズ変更９６を含む。
【００２９】
ここで図３を参照すると、本発明の１つまたは複数の実施形態による動的なピクチャ・サイズ変更のためのシステム３００のブロック図の全体が示されている。図３に、ユーザ１  ３０６、ユーザ２  ３０８、およびユーザ３  ３１０とラベル付けされた異なるユーザによって１つまたは複数のネットワーク３０４を介してアクセスされるウェブサイト３０２を示す。図３に示すウェブサイト３０２は、サーバ３１２上に位置する、またはサーバ３１２によって管理される。図３に示すように、同じウェブサイト３０２にアクセスするユーザは異なるデバイスを使用している場合があり、アクセス・パターンが異なる場合がある。たとえば、ウェブサイト３０２は、Ｆａｃｅｂｏｏｋ（Ｒ）などの、ピクチャを含むソーシャル・ネットワーキング・ウェブサイトであってもよい。図３に示すように、異なるユーザはウェブサイト３０２に同時にアクセスしている。ユーザ１  ３０６は、自宅のコンピュータ（たとえば、デスクトップ、ラップトップ）および高速インターネット接続を使用してＦａｃｅｂｏｏｋ（Ｒ）にアクセスしている場合がある。ユーザ２  ３０８は、制限されたデータ・プラン（たとえば、１か月あたり１ギガバイト）の携帯電話を使用してＦａｃｅｂｏｏｋ（Ｒ）にアクセスしている場合があり、めったにウェブサイト３０２上で拡大表示したり、より大きいサイズのピクチャを要求したりしない場合がある。ユーザ３  ３１０は、無制限のデータ・プランのｉＰａｄ（Ｒ）を使用してＦａｃｅｂｏｏｋ（Ｒ）にアクセスしている場合があり、普段、拡大表示して見やすくために、ピクチャをクリックしてより大きいサイズのピクチャを要求する場合がある。
【００３０】
図３に示すように、サーバ３１２は、本明細書に記載の本発明の１つまたは複数の実施形態によるユーザ・アクセス基準に基づく動的なピクチャ・サイズ変更を実行するためのレンダリング・モジュール３１４を含む。ピクチャとの社会的つながり、もしくは閲覧パターン、またはその両方などのユーザに関する分析は、レンダリング・モジュール３１４によって実行することができる。本発明の１つまたは複数の実施形態によれば、レンダリング・モジュール３１４は、ユーザ・デバイス（たとえば、ユーザ１  ３０６の自宅のコンピュータ、ユーザ２  ３０８の携帯電話、ユーザ３  ３１０のＡｐｐｌｅ社のｉＰａｄ（Ｒ））上に位置するコンピュータ命令と交信して、アクセス基準を受信する、または特定のサイズもしくは解像度のピクチャのレンダリングを表示する、あるいはその両方を行う。
【００３１】
本明細書で使用する場合、「レンダリング」という用語は、モデル、オブジェクトまたは既存の画像から画像を生成する処理を指す。レンダリングされた画像、または画像のレンダリングは、シェーディング、テクスチャ・マッピング、被写界深度、解像度などを含むがこれらに限定されない、いくつかの視覚的な特徴を修正することによって生成することができる。
【００３２】
本発明の１つまたは複数の実施形態によれば、レンダリング・モジュール３１４は、ユーザのデバイス上でピクチャをレンダリングする際の提案を作成するためにユーザの行動およびアクセス要求をキャプチャするコンピュータ命令を含む。たとえば、レンダリング・モジュール３１４は、ユーザ２  ３０８によって使用されるユーザ・デバイスに対してウェブサイト３０２でのピクチャのレンダリングをインターセプトし、ユーザ２によって使用されるユーザ・デバイスに対してより低い解像度を有する修正されたレンダリングを生成してもよい。この修正されたレンダリングは、ユーザ２  ３０８が制限されたデータ・プランであることと、ユーザ２  ３０８の過去の行動が高解像度のピクチャが表示される必要性を全く示さないこととに基づくことができる。反対に、ユーザ１  ３０６およびユーザ３  ３１０はデータ・プランに制限がない場合があるので、レンダリング・モジュール３１４は、ユーザ１  ３０６およびユーザ３  ３１０に対してより高い解像度でピクチャをレンダリングすることができる。加えて、たとえば、ユーザ３  ３１０がより大きいサイズのピクチャを要求した場合、レンダリング・モジュール３１４の１つまたは複数の実施形態は、ユーザ３  ３１０により使用されているｉＰａｄ（Ｒ）によってサポートされる最高解像度などのより高い解像度（最大で、アップロード時のピクチャの解像度、すなわち、「オリジナル解像度」）であり得るより大きいサイズのピクチャをレンダリングすることができる。
【００３３】
本発明の１つまたは複数の実施形態によれば、ユーザ・アクセス基準は、関係（たとえば、社会的関係）を含むこともでき、画像の解像度は、閲覧者と、コンテンツ提供者もしくはピクチャの内容またはその両方との間の関係に基づいて決定することができる。たとえば、閲覧者はジョンという名前であり、ジョンはＦａｃｅｂｏｏｋ（Ｒ）にアクセスし、ジョンのニュースフィードはピーター、メアリー、スーザン、および他の友人からのコンテンツを含むと仮定する。本発明の１つまたは複数の実施形態によれば、ジョンに送信される画像の解像度を決定するために、ジョンと各個人との間の関係が分析される。本発明の１つまたは複数の実施形態によれば、コンテンツ提供者との関係が親密である場合（たとえば、友人）、コンテンツ提供者との関係がない、またはあまり親密でない場合（たとえば、知人）よりも画像の解像度が高くなる。
【００３４】
また、レンダリング・モジュール３１４の１つまたは複数の実施形態は、ジョンと、特定のピクチャの内容（たとえば、人物、被写体）との間の関係を決定することができる。たとえば、マイケルはジョンの知人であり、メアリーの親友である場合がある。一方、マイケルは、ピクチャ内にメアリーが写っている画像をアップロードする場合がある。メアリーが写っている、ジョンに提示される画像の解像度は、ジョンとメアリーとの社会的関係によって、より高い解像度でジョンに提示することができる。一例では、閲覧者はジョンであり、ジョンはＦａｃｅｂｏｏｋ（Ｒ）にアクセスし、ジョンのＦａｃｅｂｏｏｋ（Ｒ）のニュースフィードはピーター、メアリー、スーザン、および他の友人からのコンテンツを含む。レンダリング・モジュール３１４の１つまたは複数の実施形態は、ジョンと各個人との間の関係を分析して、これらの個人を含む画像の解像度を決定することができる。関係が親密であるほど、解像度は高くなる。
【００３５】
また、レンダリング・モジュール３１４の１つまたは複数の実施形態は、ジョンと特定のピクチャの被写体との間の関係を決定することができる。本明細書で使用する場合、「被写体」という用語は、識別された人物ではないピクチャの任意の内容を指す。被写体は、限定はしないが、ユーザの家またはグレーシャー国立公園などの場所、子猫または山の景色などのあるタイプのオブジェクト、およびペットまたは特定の動物を含むことができる。たとえば、ジョンは虹のピクチャに頻繁にアクセスし、川のピクチャにはめったにアクセスしない場合があり、レンダリング・モジュール３１４はジョンに提供される川のピクチャのレンダリングよりも高い解像度の虹のピクチャのレンダリングをジョンに提供することができる。
【００３６】
レンダリング・モジュール３１４は、様々な関係を決定するために使用することができる。たとえば、ジョンがある時間枠内に指定回数だけメアリーからのニュースフィード項目をクリックした場合、メアリーはジョンの親友であると判定することができるので、メアリーを含むピクチャは、ジョンの親友を含まないピクチャよりも高い解像度にするべきである。メアリーがジョンの親友であると判定することは、他の基準に基づいて、たとえば、限定はしないが、ジョンがメアリーを含むピクチャを定期的に拡大表示すること、メアリーがジョンの連絡先データベースに含まれること、ジョンがメアリーが親友であることを指定していることに基づいて、行うことができる。様々な基準もしくは様々な閾値またはその両方に基づいて、種々の友人カテゴリを実装することができる。友人カテゴリの例は、限定はしないが、親友、友人、知人、および他人を含むことができる。たとえばプロフェッショナル・ネットワークおよびソーシャル・ネットワークなどであるがこれらに限定されないネットワークに基づいて、友人を区別することもできる。
【００３７】
したがって、レンダリング・モジュール３１４の１つまたは複数の実施形態は、閲覧ユーザのアクセス基準、画像の所有者（たとえば、所有者がユーザと何らかの関係を有するか否かを確認する）、およびピクチャの内容（たとえば、人物および被写体であり、ユーザと何らかの関係を有するか否かを確認する）を分析する分析コンポーネントを有する。分析に基づいて、レンダリング・モジュール３１４は、ユーザに表示するためにレンダリングされる画像の解像度を決定する。
【００３８】
ピクチャ内の人物は、そのピクチャ内でタグ付けすることによって識別することができる。たとえば、ジョンがメアリーと一緒に自分のピクチャを撮影した場合、そのピクチャをソーシャル・ネットワークにアップロードするときに、そのピクチャ内でメアリーにタグ付けすることができる。このタグ付けは、ピクチャ内の人物を識別する一手法である。また、Ｆａｃｅｂｏｏｋ（Ｒ）などのサービスは、アップロード時に各ピクチャ内の人物の推測を試みるアルゴリズムを使用することによって、ピクチャを投稿する人、たとえばジョンが、ピクチャ内の人物に簡単にタグ付けすることを支援する。ピクチャまたは投稿の場所は、ピクチャにアップロード時に添付されるメタデータによって決定することができる。このデータは、ピクチャが撮影されたときに収集されることがあり、このデータは、電話の全地球測位システム（ＧＰＳ：ｇｌｏｂａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｓｙｓｔｅｍ）センサおよびセルラー接続に基づく位置データを含むことがある。加えて、ピクチャをソーシャル・メディアに投稿する場合、ジョンなどのユーザは、自分がいた場所を投稿し、その投稿においてメアリーなどの友人にタグ付けすることもできる。これらの投稿は、ジョンとメアリーとの間の関係を示すために使用することができる。
【００３９】
次に図４を参照すると、本発明の１つまたは複数の実施形態による動的なピクチャ・サイズ変更のための処理４００のフロー図の全体が示されている。図４に示す処理の全部または一部は、プロセッサ上で実行される図３に示すレンダリング・モジュール３１４に含まれるコンピュータ命令によって実行することができる。ブロック４０２において、サーバによってホストされるウェブサイトにおけるピクチャのレンダリングがインターセプトされる。ユーザ・デバイスがレンダリングのためにピクチャを要求した場合、どのような種類のユーザ・デバイスがその要求を行っているかに関する情報をレンダリング・モジュール３１４に提供することができる。ユーザ・デバイスの例は、限定はしないが、制限されたデータ・プランの携帯電話、無制限のＷＩＦＩのタブレット・コンピュータ、および無制限の有線の自宅のインターネット接続のデスクトップ・コンピュータを含む。次に、レンダリング・モジュール３１４は、この情報をアクセス基準として、場合によっては他のアクセス基準と共に使用して、閲覧に使用されているユーザ・デバイスのタイプと、サーバへのユーザ・デバイスの接続のタイプとに最適な解像度を選択する。本発明の１つまたは複数の実施形態によれば、ピクチャは、コンテンツ提供者によってウェブサイトに以前にアップロードされており、オリジナル解像度で記憶されている。本発明の１つまたは複数の実施形態によれば、オリジナル解像度は、ピクチャがアップロードされたときにコンテンツ提供者が利用可能な最高解像度である。オリジナル解像度が高いほど、ピクチャのより大きいバージョンの要求などによって要求された場合に提供可能な閲覧がより詳細になる。
【００４０】
ブロック４０４において、ユーザに関連するアクセス基準が取得される。前述のように、アクセス基準はシステム制約、たとえば、限定はしないが、帯域幅、データ・プランの制限、ユーザ・デバイス上の記憶空間、ネットワーク構成、接続速度、ユーザ・デバイスの特徴（たとえば、ユーザ・デバイスによってサポートされる最高解像度、プロセッサ速度）を含むことができる。また、アクセス基準は関係の制約、たとえば、限定はしないが、閲覧者と、コンテンツ提供者もしくはピクチャの内容またはその両方との間の異なる関係に対する異なる解像度（たとえば、友人には最高解像度、知人には最低解像度）を含むことができる。
【００４１】
また、アクセス基準は、特定のコンテンツについてのユーザの過去の閲覧習慣（たとえば、ユーザが普段ジョンを拡大表示するか、もしくはジョンの高解像度のピクチャを要求するか、またはその両方を行うか）、または類似のタイプのコンテンツについてのユーザの過去の閲覧習慣（たとえば、特定のタイプもしくはグループの人々、または特定のタイプの風景、あるいは特定のタイプのオブジェクトをユーザが普段拡大表示するか、もしくはそれらの高解像度のピクチャを要求するか、またはその両方を行うか）を含むことができる。
【００４２】
また、アクセス基準は時間要素を含むことができる。たとえば、メアリーはソーシャル・ネットワーク・ウェブサイトで毎日正午に約１０分、６時に約１時間費やす場合がある。この情報を使用して、たとえば、正午に手早く閲覧するためにより低い解像度のピクチャがメアリーに送信されるべきであり、６時により高い解像度のピクチャが送信されるべきであると判定することができる。
【００４３】
本発明の１つまたは複数の実施形態により、ピクチャの解像度を決定するために使用可能な任意のアクセス基準を実現することができるので、本明細書に記載のアクセス基準は例示的であり限定的ではないものとする。ユーザに対するアクセス制約の全部または一部は、ユーザ・デバイスに記憶し、レンダリング・モジュール３１４によってアクセスするまたはこれに送信することができる。ユーザに対するユーザ・アクセス基準の全部または一部は、画像のレンダリングをインターセプトしたことに応答して、レンダリング・モジュール３１４によって動的に決定することができる。本発明の１つまたは複数の実施形態によれば、レンダリング・モジュール３１４は、上記のアクセス基準の少なくともサブセットを分析して、ブロック４０６において、レンダリングがインターセプトされたピクチャの修正されたレンダリングの解像度を決定する。
【００４４】
ブロック４０８において、ブロック４０６で決定された解像度に少なくとも部分的に基づいて、ピクチャの修正されたレンダリングが生成される。本発明の１つまたは複数の実施形態によれば、修正されたレンダリングは、ブロック４０６において決定された解像度である。ブロック４１０において、修正されたレンダリングがユーザ・デバイスに表示される。ピクチャのより大きいバージョンの要求を受信することができ、より高い解像度であり得るより大きいピクチャを含むピクチャの第２の修正されたレンダリングをレンダリングすることができる。
【００４５】
本明細書に記載の本発明の１つまたは複数の実施形態によれば、ピクチャのサイズを大きくするというユーザの要求があった場合にのみ、ピクチャ・サイズを大きくする。
【００４６】
次に図５を参照すると、本発明の１つまたは複数の実施形態による動的なピクチャ・サイズ変更のための処理５００のフロー図の全体が示されている。図５に示す処理の全部または一部は、プロセッサ上で実行される図３に示すレンダリング・モジュール３１４に含まれるコンピュータ命令によって実行することができる。図５に示す処理５００は、ユーザ・アクセス基準に基づく動的なピクチャ・サイズ変更を実行するための本発明の１つまたは複数の実施形態によって実施することができる処理の一例である。
【００４７】
ブロック５０２において、ユーザは統一資源位置指定子（ＵＲＬ：ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｌｏｃａｔｏｒ）へのアクセスを要求し、ブロック５０４において、ユーザに関連するユーザ・アクセス基準が決定される。ブロック５０６において、ユーザ・アクセス基準が、ユーザまたはユーザ・デバイスに関連するシステム制約に基づく制限を示すか否かが判定される。図５に示すシステム制約の例は、制限された帯域幅５０８、制限されたデータ・プラン５１０、制限されたストレージ５１２、および制限された時間５１４を含む。これらのシステム制約のうちの１つまたは複数が存在する場合、ブロック５１６においてより低い解像度の画像がユーザに提示されることになる。本発明の１つまたは複数の実施形態では、アクセス基準はユーザのシステム制約を含む。たとえば、メアリーという名前のユーザは、休憩中に携帯電話からＩｎｓｔａｇｒａｍ（Ｒ）にアクセスするのに５分を費やし、仕事の後に自宅のコンピュータからＩｎｓｔａｇｒａｍ（Ｒ）でさらに５分を費やす場合がある。メアリーは、携帯電話のデータ・プランおよびストレージが制限されている。メアリーのアクセス基準に基づいて、メアリーに対して彼女の携帯電話にレンダリングされるＩｎｓｔａｇｒａｍ（Ｒ）のピクチャは、彼女に対して彼女の自宅のコンピュータにレンダリングされるＩｎｓｔａｇｒａｍ（Ｒ）のピクチャよりも低い解像度である。加えて、ユーザがウェブサイトにアクセスする場合に時間が限られているか否かは、彼または彼女の過去の閲覧行動によって判定することができる。本発明の１つまたは複数の実施形態では、アクセス基準はユーザの過去の閲覧行動を含む。たとえば、ジョンという名前のユーザは普段、昼休み中にＦａｃｅｂｏｏｋ（Ｒ）にアクセスするのに１０分を費やし、夕食後にＦａｃｅｂｏｏｋ（Ｒ）にアクセスするのにさらに時間を費やす場合がある。ジョンの閲覧行動に基づいて、昼休み中にＦａｃｅｂｏｏｋ（Ｒ）にアクセスするときに、Ｆａｃｅｂｏｏｋ（Ｒ）のピクチャをジョンのデバイスにより低い解像度でレンダリングすることができ、夕食後にＦａｃｅｂｏｏｋ（Ｒ）にアクセスするときに、Ｆａｃｅｂｏｏｋ（Ｒ）のピクチャをジョンのデバイスにより高い解像度でレンダリングすることができる。
【００４８】
ブロック５１８において、ユーザがより大きいサイズのピクチャを要求したか否かが判定される。ユーザがより大きいサイズのピクチャを要求した場合、処理はブロック５２０に進み、より大きいサイズのピクチャであってより高い解像度のピクチャがユーザに提示される。
【００４９】
ブロック５０６において決定されるように、ユーザ・アクセス基準がシステム制約を含まない場合、ブロック５２２が実行されて、ユーザがピクチャの内容、もしくはピクチャのコンテンツ所有者、またはその両方との社会的つながりを有するか否かが判定される。ユーザが社会的つながりを有する場合、ブロック５２４が実行され、より高い解像度のピクチャがユーザに提示される。
【００５０】
次に図６を参照すると、本発明の１つまたは複数の実施形態による動的なピクチャ・サイズ変更を実施するためのシステムのいくつかまたは全ての態様を実施する際に使用するコンピュータ・システム６００のブロック図の全体が示されている。本明細書に記載の処理は、ハードウェア、ソフトウェア（たとえば、ファームウェア）、またはこれらの組み合わせで実装されてもよい。例示的な実施形態では、記載の方法は、少なくとも部分的にハードウェアで実装されてもよく、たとえば、パーソナル・コンピュータ、ワークステーション、ミニコンピュータ、またはメインフレーム・コンピュータなどの専用または汎用コンピュータ・システム６００のマイクロプロセッサの一部であってもよい。
【００５１】
例示的な実施形態では、図６に示すように、コンピュータ・システム６００は、プロセッサ６０５、メモリ・コントローラ６１５に結合されたメモリ６１０、およびローカルＩ／Ｏコントローラ６３５を介して通信可能に結合された周辺機器などの１つまたは複数の入力デバイス６４５または出力デバイス６４０あるいはそれらいずれかの組み合わせを含む。これらのデバイス６４０および６４５は、たとえば、プリンタ、スキャナ、マイクロフォンなどを含んでもよい。従来のキーボード６５０およびマウス６５５が、Ｉ／Ｏコントローラ６３５に結合されてもよい。Ｉ／Ｏコントローラ６３５は、たとえば、当技術分野で知られているように、１つまたは複数のバスあるいは他の有線または無線接続であってもよい。Ｉ／Ｏコントローラ６３５は、通信を可能にするためのコントローラ、バッファ（キャッシュ）、ドライバ、リピータ、および受信機などの、簡単のために省略した追加の要素を有してもよい。
【００５２】
Ｉ／Ｏデバイス６４０、６４５は、入力および出力の両方を伝達するデバイス、たとえば、ディスクおよびテープ・ストレージ、ネットワーク・インターフェース・カード（ＮＩＣ：ｎｅｔｗｏｒｋ  ｉｎｔｅｒｆａｃｅ  ｃａｒｄ）または変調器／復調器（他のファイル、デバイス、システム、またはネットワークへのアクセス用）、無線周波数（ＲＦ：ｒａｄｉｏ  ｆｒｅｑｕｅｎｃｙ）または他の送受信機、電話インターフェース、ブリッジ、ルータなどをさらに含んでもよい。
【００５３】
プロセッサ６０５は、ハードウェア命令またはソフトウェア、特にメモリ６１０に記憶されたものを実行するためのハードウェア・デバイスである。プロセッサ６０５は、特注もしくは市販のプロセッサ、中央処理装置（ＣＰＵ：ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、コンピュータ・システム６００に関連付けられたいくつかのプロセッサのうちの補助プロセッサ、半導体ベースのマイクロプロセッサ（マイクロチップまたはチップ・セットの形態）、マクロプロセッサ、または命令を実行するための他のデバイスであってもよい。プロセッサ６０５はキャッシュ、たとえば、限定はしないが、実行可能命令のフェッチを高速化するための命令キャッシュ、データ・フェッチおよび記憶を高速化するためのデータ・キャッシュ、ならびに実行可能命令およびデータの両方に対する仮想アドレスから物理アドレスへの変換を高速化するために使用されるトランスレーション・ルックアサイド・バッファ（ＴＬＢ：ｔｒａｎｓｌａｔｉｏｎ  ｌｏｏｋ−ａｓｉｄｅ  ｂｕｆｆｅｒ）を含むことができる。キャッシュは、より多くのキャッシュ・レベル（Ｌ１、Ｌ２など）の階層として編成されてもよい。
【００５４】
メモリ６１０は、揮発性メモリ素子（たとえば、ＤＲＡＭ、ＳＲＡＭ、ＳＤＲＡＭなどのランダム・アクセス・メモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ，ＲＡＭ））、および不揮発性メモリ素子（たとえば、ＲＯＭ、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ：ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、電子的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ：ｅｌｅｃｔｒｏｎｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、プログラマブル読み取り専用メモリ（ＰＲＯＭ：ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、テープ、コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、ディスク、ディスケット、カートリッジ、カセットもしくは同様のものなど）のうちの１つまたは組み合わせを含んでもよい。また、メモリ６１０は、電子、磁気、光学、または他のタイプの記憶媒体を組み込んでもよい。メモリ６１０は、様々なコンポーネントが互いに離れて位置しているが、プロセッサ６０５によってアクセスできる分散アーキテクチャを有してもよいことに留意されたい。
【００５５】
メモリ６１０内の命令は、１つまたは複数の別個のプログラムを含んでもよく、各プログラムは、論理的機能を実施するための実行可能命令の順序付きリストを含む。図６の例では、メモリ６１０内の命令は、適切なオペレーティング・システム（ＯＳ：ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）６１１を含む。オペレーティング・システム６１１は、基本的に他のコンピュータ・プログラムの実行を制御することができ、スケジューリング、入出力制御、ファイルおよびデータ管理、メモリ管理、ならびに通信制御および関連サービスを提供する。
【００５６】
例えばプロセッサ６０５に対する命令または他の検索可能な情報を含むさらなるデータがストレージ６２０に記憶されてもよく、ストレージ６２０は、ハード・ディスク・ドライブまたはソリッド・ステート・ドライブなどの記憶デバイスであってもよい。メモリ６１０またはストレージ６２０に記憶された命令は、プロセッサが本開示のディスパッチ・システムおよび方法の１つまたは複数の態様を実行することを可能にする命令を含んでもよい。
【００５７】
コンピュータ・システム６００は、ディスプレイ６３０に結合されたディスプレイ・コントローラ６２５をさらに含んでもよい。例示的な実施形態では、コンピュータ・システム６００は、ネットワーク６６５に結合するためのネットワーク・インターフェース６６０をさらに含んでもよい。ネットワーク６６５は、ブロードバンド接続を介した、コンピュータ・システム６００と、外部サーバ、クライアントなどとの間の通信のためのＩＰベースのネットワークであってもよい。ネットワーク６６５は、コンピュータ・システム６００と外部システムとの間でデータを送受信する。例示的な実施形態では、ネットワーク６６５は、サービス・プロバイダによって運営される管理ＩＰネットワークであってもよい。ネットワーク６６５は、たとえば、ＷｉＦｉ、ＷｉＭａｘなどの無線プロトコルおよび技術を使用して無線方式で実装されてもよい。また、ネットワーク６６５はパケット交換ネットワーク、たとえば、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、メトロポリタン・エリア・ネットワーク、インターネット、または他の類似のタイプのネットワーク環境であってもよい。ネットワーク６６５は、固定無線ネットワーク、無線ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、無線ワイド・エリア・ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、パーソナル・エリア・ネットワーク（ＰＡＮ：ｐｅｒｓｏｎａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、仮想プライベート・ネットワーク（ＶＰＮ：ｖｉｒｔｕａｌ  ｐｒｉｖａｔｅ  ｎｅｔｗｏｒｋ）、イントラネットまたは他の適切なネットワーク・システムであってもよく、信号を送受信するための機器を含んでもよい。
【００５８】
本明細書に記載の本発明の実施形態を提供するためのシステムおよび方法は、コンピュータ・プログラム製品またはコンピュータ・システム６００、たとえば図６に示すようなものにおいて、全体的にまたは部分的に具現化することができる。
【００５９】
本明細書で使用する用語は、本発明の特定の実施形態を説明するためのものにすぎず、本発明を限定することを意図するものではない。本明細書で使用する場合、単数形「ａ」、「ａｎ」および「ｔｈｅ」は、文脈がそうでないことを明確に示さない限り、複数形も含むものとする。本明細書で使用される場合、「備える（ｃｏｍｐｒｉｓｅ）」という用語、もしくは「備えている（ｃｏｍｐｒｉｓｉｎｇ）」という用語、またはその両方は、記述した特徴、完全体（ｉｎｔｅｇｅｒ）、ステップ、動作、要素、もしくは構成要素またはそれらいずれかの組み合わせの存在を指定するものであるが、１つまたは複数の他の特徴、完全体、ステップ、動作、要素、構成要素、もしくはそれらのグループまたはそれらいずれかの組み合わせの存在または追加を排除するものではないことはさらに理解されよう。
【００６０】
添付の特許請求の範囲における全てのミーンズまたはステップ・プラス・ファンクション要素の対応する構造、材料、行為、および均等物は、明確に特許請求された他の特許請求要素と組み合わせて機能を実行するための任意の構造、材料、または行為を含むものとする。本発明の説明は、例示および説明の目的で提示しているが、網羅的であることも、開示した形態の発明に限定されることも意図したものではない。本発明の範囲から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本発明の原理および実際の応用を最もよく説明し、企図した特定の用途に適した様々な修正を有する様々な実施形態について本発明を当業者が理解できるようにするために、本発明の実施形態を選択し、説明している。
【００６１】
本発明は、システム、方法、もしくはコンピュータ・プログラム製品またはそれらいずれかの組み合わせであってもよい。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体を含んでもよい。
【００６２】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を保持し記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、限定はしないが、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、またはそれらの任意の適切な組み合わせであってもよい。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）、メモリー・スティック（Ｒ）、フレキシブル・ディスク、命令が記録されたパンチ・カードまたは溝の隆起構造などの機械的に符号化されたデバイス、およびそれらの任意の適切な組み合わせを含む。コンピュータ可読記憶媒体は、本明細書で使用する場合、たとえば、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を伝播する電磁波（たとえば、光ファイバ・ケーブルを通過する光パルス）、または導線を介して伝送される電気信号などの一過性の信号自体であると解釈されるべきではない。
【００６３】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、あるいはインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはそれらいずれかの組み合わせなどのネットワークを介して外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバ、またはそれらいずれかの組み合わせを含んでもよい。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体に記憶するために転送する。
【００６４】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ：ｉｎｓｔｒｕｃｔｉｏｎ−ｓｅｔ−ａｒｃｈｉｔｅｃｔｕｒｅ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいはＪａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋もしくは同様のもののオブジェクト指向プログラミング言語と、「Ｃ」プログラミング言語または類似のプログラミング言語などの従来の手続き型プログラミング言語とを含む、１つまたは複数のプログラミング言語の任意の組み合わせで書かれたソース・コードまたはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上かつ部分的にリモート・コンピュータ上で、または完全にリモート・コンピュータもしくはサーバ上で実行されてもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてもよく、または（たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータへの接続がなされてもよい。いくつかの実施形態では、たとえば、プログラマブル論理回路、フィールドプログラマブル・ゲートアレイ（ＦＰＧＡ：ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ：ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ａｒｒａｙ）を含む電子回路は、本発明の態様を実行するために、電子回路を個人向けにするためのコンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行してもよい。Ｊａｖａ（Ｒ）および全てのＪａｖａ（Ｒ）ベースの商標およびロゴは、Ｏｒａｃｌｅ社もしくはその関連会社またはそれらいずれかの組み合わせの商標または登録商標である。
【００６５】
本発明の態様は、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照して本明細書で説明している。フローチャート図もしくはブロック図またはその両方の各ブロック、ならびにフローチャート図もしくはブロック図またはその両方におけるブロックの組み合わせが、コンピュータ可読プログラム命令によって実施できることは理解されよう。
【００６６】
これらのコンピュータ可読プログラム命令を汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供して、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行された命令が、フローチャートもしくはブロック図またはその両方の１つまたは複数のブロックにおいて指定された機能／行為を実施するための手段を生成するようなマシンを生成してもよい。また、これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートもしくはブロック図またはその両方の１つまたは複数のブロックにおいて指定された機能／行為の態様を実施する命令を含む製造品を含むような特定の方法で、コンピュータ、プログラム可能データ処理装置、もしくは他のデバイスまたはそれらいずれかの組み合わせを機能させることができるコンピュータ可読記憶媒体に記憶されてもよい。
【００６７】
また、コンピュータ可読プログラム命令をコンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードして、コンピュータ、他のプログラム可能装置または他のデバイス上で一連の演算ステップを実行させることによって、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行された命令が、フローチャートもしくはブロック図またはその両方の１つまたは複数のブロックにおいて指定された機能／行為を実施するようなコンピュータ実施処理を生成してもよい。
【００６８】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理的機能を実施するための１つまたは複数の実行可能命令を含むモジュール、セグメント、または命令の一部を表す場合がある。いくつかの代替的実装形態では、ブロックに示す機能は、図に示した順序以外で実施される場合がある。たとえば、関与する機能性に応じて、連続して示した２つのブロックは、実際には実質的に同時に実行される場合があり、またはそれらのブロックは、場合により逆の順序で実行される場合がある。ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方におけるブロックの組み合わせは、指定された機能または行為を実行するか、または専用ハードウェアとコンピュータ命令との組み合わせを実行する専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
【００６９】
本発明の様々な実施形態の説明は例示の目的で提示しているが、網羅的であることも、開示した実施形態に限定されることも意図するものではない。説明した実施形態の範囲から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用する用語は、実施形態の原理、実際の応用、または市場で見られる技術に対する技術的改善を最もよく説明するために、または当業者が本明細書で開示した実施形態を理解できるようにするために選択されている。
【図１】
2020522057.tif 000003
【図２】
2020522057.tif 000004
【図３】
2020522057.tif 000005
【図４】
2020522057.tif 000006
【図５】
2020522057.tif 000007
【図６】
2020522057.tif 000008
【国際調査報告】
2020522057.tif 000009
2020522057.tif 000010