(57)【特許請求の範囲】
【請求項１】
画像オブジェクトを取得するための要求を生成する要求側のコンピューティング・ノード、該要求された画像オブジェクトを提供するソース側のコンピューティング・ノード、及び、要求をソース側のコンピューティング・ノードに転送するため及び要求された画像オブジェクトを要求側のコンピューティング・ノードに転送するために要求側のコンピューティング・ノードとソース側のコンピューティング・ノードとの間に挿入された複数の中間コンピューティング・ノードの各ノード間をデータネットワークを介して接続したシステムにおける方法であって、
ある画像オブジェクトに対する生成された要求に要求側特有の能力情報を含めるステップと、
要求される画像オブジェクトに画像オブジェクト特有の記述子情報を含めるステップと、
少なくとも１つの中間コンピューティング・ノードで、前記要求側特有の能力情報および画像オブジェクト特有の記述子情報を審査し、要求画像オブジェクトを要求側特有の能力情報に完全にまたは部分的に適合させるために画像オブジェクトを完全にまたは部分的に処理する決定を下すステップと、
画像オブジェクト処理の量を複数のステップに分割するステップと、
データ・ネットワークを介して前記少なくとも１つの中間コンピューティング・ノード以外の少なくとも１つの他の中間コンピューティング・ノードに渡される割当て計画を生成するステップと、
画像オブジェクトを処理する際に、前記少なくとも１つの中間コンピューティング・ノードで実行された処理を反映するように、前記画像オブジェクト特有の記述子情報を全部または部分的に変更するステップと、
前記少なくとも１つの他の中間コンピューティング・ノードで、ネットワーク帯域幅の縮小のため、もしくはコンピューティング・ノードの負荷の不均衡の量の削減のため、またはこの２つの組合せのため前記割当て計画を変更するステップと、
を含む、方法。
【請求項２】
前記データ・ネットワークがインターネットで構成される、請求項１に記載の方法。
【請求項３】
前記決定を下すステップが、画像オブジェクトを処理しないことを決定することもでき、前記決定を下すステップが中間コンピューティング・ノードの少なくとも１つの局所状態を考慮する、請求項１に記載の方法。
【請求項４】
中間コンピューティング・ノードが要求画像オブジェクトのコピーを格納し、前記中間コンピューティング・ノードがソースコンピューティング・ノードとして機能する、請求項１に記載の方法。
【請求項５】
中間コンピューティング・ノードが、要求側が表示できることを示す要求側特有の能力情報よりも詳細でないバージョンの要求画像オブジェクトを格納し、前記方法が、前記要求を少なくとも１つの他のコンピューティング・ノードに転送するステップと、より詳細なバージョンの要求オブジェクトを有する別のコンピューティング・ノードで、局所レンダリングを行わずに前記より詳細なバージョンの要求画像オブジェクトを返すか、それともその代わりに局所レンダリングを実行し、部分的にレンダリングされた画像オブジェクトを返すか、またはその代わりに局所レンダリングを実行し、完全にレンダリングされた画像オブジェクトを返すかの決定を下すステップとをさらに含む、請求項１に記載の方法。
【請求項６】
中間コンピューティング・ノードが、要求側が表示できることを示す要求側特有の能力情報よりも詳細なバージョンの要求画像オブジェクトを格納し、前記方法が、局所レンダリングを行わずに前記より詳細なバージョンの要求画像オブジェクトを返すか、それともその代わりに局所レンダリングを実行し、部分的にレンダリングされた画像オブジェクトを返すか、またはその代わりに局所レンダリングを実行し、完全にレンダリングされた画像オブジェクトを返すかの決定を下すステップをさらに含む、請求項１に記載の方法。
【請求項７】
前記決定を下すステップが少なくとも部分的に、前記中間コンピューティング・ノードのレンダリング能力を考慮することによって行われる、請求項１に記載の方法。
【請求項８】
前記決定を下すステップが少なくとも部分的に、前記中間コンピューティング・ノードの現在の処理負荷を考慮することによって行われる、請求項１に記載の方法。
【請求項９】
前記決定を下すステップが少なくとも部分的に、要求側までのネットワーク遅延の量を考慮することによって行われる、請求項１に記載の方法。
【請求項１０】
前記画像オブジェクト特有の記述子情報が少なくとも、画像オブジェクトの色がどのように表現されるか、および画像オブジェクトのサイズをも指定する、請求項１に記載の方法。
【請求項１１】
前記要求側コンピューティング・ノードが画像オブジェクトを表示するためのディスプレイで構成され、前記要求側特有の能力情報が少なくとも、色を表示する要求側の能力、および表示できる画像オブジェクトの最大のサイズを指定する、請求項１に記載の方法。
【請求項１２】
少なくとも要求側特有の能力情報がメタ情報として表現される、請求項１に記載の方法。
【請求項１３】
少なくとも要求側特有の能力情報が、インターネット内容選択のためのプラットフォーム・フォーマットを用いて表現される、請求項１に記載の方法。
【請求項１４】
画像オブジェクトに対する生成された要求に要求側特有の能力情報を含める前記段階が要求側によって実行される、請求項１に記載の方法。
【請求項１５】
画像オブジェクトに対する生成された要求に要求側特有の能力情報を含める前記段階が中間コンピューティング・ノードによって実行される、請求項１に記載の方法。
【請求項１６】
要求画像オブジェクトに画像オブジェクト特有の記述子情報を含める前記段階が要求画像オブジェクトのソースによって実行される、請求項１に記載の方法。
【請求項１７】
要求画像オブジェクトに画像オブジェクト特有の記述子情報を含める前記段階が中間コンピューティング・ノードによって実行される、請求項１に記載の方法。
【請求項１８】
画像オブジェクトを取得するための要求を生成する要求側のコンピューティング・ノード、該要求された画像オブジェクトを提供するソース側のコンピューティング・ノード、及び、要求をソース側のコンピューティング・ノードに転送するため及び要求された画像オブジェクトを要求側のコンピューティング・ノードに転送するために要求側のコンピューティング・ノードとソース側のコンピューティング・ノードとの間に挿入された複数の中間コンピューティング・ノードの各ノード間をデータネットワークを介して接続したシステムであって、前記要求側が、要求された画像オブジェクトを表示するためのディスプレイを含み、前記要求側または前記中間コンピューティング・ノードの１つが、画像オブジェクトに対する生成された要求に要求側特有の画像表示能力情報を追加し、前記ソースまたは前記中間コンピューティング・ノードの１つが、返される要求画像オブジェクトに画像オブジェクト特有の記述子情報を追加し、前記画像オブジェクト特有の記述子情報は、関連付けられた画像オブジェクトに加えられた変化を反映するように変更可能であり、少なくとも１つの中間コンピューティング・ノードは、前記要求側特有の画像表示能力情報および前記オブジェクト特有の記述子情報の検査、ならびに少なくとも１つの局所状態に応答して、要求された画像オブジェクトの画像オブジェクト特有の記述子情報を要求側特有の画像表示能力情報に完全にまたは部分的に適合させるように、関連付けられた返却画像オブジェクトを完全にまたは部分的にレンダリングするか、それとも関連付けられた画像オブジェクトを全くレンダリングしないかの決定を下し、前記少なくとも１つの中間コンピューティング・ノードがさらに、画像オブジェクト・レンダリングの量を複数のステップに分割し、前記少なくとも１つの中間コンピューティング・ノードが、前記データ・ネットワークを介して少なくとも１つの他の中間コンピューティング・ノードに渡されるレンダリング・ステップ割当て計画を導出し、前記少なくとも１つの他の中間コンピューティング・ノードで、ネットワーク帯域幅の縮小のため、もしくはコンピューティング・ノードの負荷の不均衡の量の削減のため、またはこの２つの組合せのため前記割当て計画を変更し、前記少なくとも１つの中間コンピューティング・ノードが、画像オブジェクトのレンダリングの後、前記少なくとも１つの中間コンピューティング・ノードによって実行されたレンダリング動作の結果を示すように、関連付けられた画像オブジェクト特有の記述子情報を変更する、システム。
【請求項１９】
データ・ネットワークがインターネットで構成される、請求項１８に記載のシステム。
【請求項２０】
前記少なくとも１つの中間コンピューティング・ノードが前記画像オブジェクトのコピーを格納するためのメモリを含み、前記中間コンピューティング・ノードが、格納されたコピーを要求側に返すことによって、前記ソースコンピューティング・ノードとして機能することができる、請求項１８に記載のシステム。
【請求項２１】
前記少なくとも１つの中間コンピューティング・ノードが、要求側が表示できることを示す要求側特有の画像表示能力情報より詳細でないバージョンの要求画像オブジェクトを格納し、前記少なくとも１つの中間コンピューティング・ノードが、より詳細なバージョンの要求画像オブジェクトを格納している別の中間コンピューティング・ノードに要求を転送し、前記別の中間コンピューティング・ノードが、前記要求側特有の画像表示能力情報および前記オブジェクト特有の記述子情報の検査、ならびに少なくとも１つの局所状態に応答して、格納された画像オブジェクトの画像オブジェクト特有の記述子情報を要求側特有の画像表示能力情報に完全にまたは部分的に適合させるように、格納された画像オブジェクトを完全にまたは部分的にレンダリングするか、それとも格納された画像オブジェクトを全くレンダリングしないかの決定を下す、請求項２０に記載のシステム。
【請求項２２】
前記少なくとも１つの中間コンピューティング・ノードが、要求側が表示できることを示す要求側特有の画像表示能力情報よりより詳細なバージョンの要求画像オブジェクトを格納し、前記少なくとも１つの中間コンピューティング・ノードが、前記要求側特有の画像表示能力情報および前記オブジェクト特有の記述子情報の検査、ならびに少なくとも１つの局所状態に応答して、格納された画像オブジェクトの画像オブジェクト特有の記述子情報を要求側特有の画像表示能力情報に完全にまたは部分的に適合させるように、格納された画像オブジェクトを完全にまたは部分的にレンダリングするか、それとも格納された画像オブジェクトを全くレンダリングしないかの決定を下す、請求項２０に記載のシステム。
【請求項２３】
前記少なくとも１つの局所状態が、前記中間コンピューティング・ノードのレンダリング能力の少なくとも１つ、前記中間コンピューティング・ノードの現在の処理負荷、および要求側までのネットワーク遅延の量を含む、請求項１８に記載のシステム。
【請求項２４】
前記画像オブジェクト特有の記述子情報が少なくとも、前記画像オブジェクトの色がどのように表現されるか、および画像オブジェクトのサイズをも指定し、前記要求側特有の画像表示能力情報が少なくとも、色を表示する要求側の能力、および表示できる画像オブジェクトの最大サイズを指定する、請求項１８に記載のシステム。
【請求項２５】
少なくとも前記要求側特有の画像表示能力情報がメタ情報として表現される、請求項１８に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ・ネットワークに関し、さらに詳しくは、データ・ネットワークで分散オブジェクト・レンダリングを実行する能力に関する。特に、複数の協調プロキシ・サーバは、オブジェクト内容を様々な種類のクライアント装置上に表示したりそれらによって使用することができるように、それらのそれぞれの装置能力および仕様に基づいて、分散オブジェクト・レンダリングを実行する。
【０００２】
【従来の技術】
インターネットがどんどん普及するにつれて、ますます多くのいわゆるスマートホンやＰＤＡ（パーソナル・デジタル・アシスタント）などパーソナル・コンピュータ（ＰＣ）装置が、有線または無線接続のいずれかによって、インターネットに接続されている。インターネットは、ＰＣおよびその他のサーバ・コンピュータと同様に、様々な種類の情報機器／装置も全て接続される、いわゆる一般にパーベイシブ・コンピューティング環境になってきている。そのような一般にパーベイシブ・コンピューティング環境では、個々の機器／装置が異なる計算能力および表示機能を持つことが予想される。例えば、一部の装置はカラー画像を表示することができるかもしれないが、他の装置は白黒画像しか表示できないかもしれない。また、一部の装置は大きく見易いディスプレイを備えているかもしれないが、他の装置はそれに比べてずっと小さいディスプレイしか持たないかもしれない。したがって、そのような一般にパーベイシブ・コンピューティング環境では、同じ情報オブジェクトでも、異なる装置ディスプレイ仕様に従って異なる形式または解像度でレンダリングしなければならないことを理解することができる。
【０００３】
様々な解像度で情報を表現するために、様々な技術が開発されてきた。Ａ．オーテガ（Ortega）らによる「A Framework for Optimization of a Multiresolution Remote Image Retrieval System」（１９９４年IEEE InforCom会報）で、複数の解像度で画像および映像を伝送するシステムが開示された。Ｇ．ウォレス（Wallace）による「The JPEG Still Picture Compression Standard」（IEEE Transactions on Consumer Electronicｓ第３８巻第１号）１９９２年２月に、複数の異なる解像度で画像を表現するためのＪＰＥＧ画像圧縮標準が記載された。
【０００４】
様々な形式または解像度へのオブジェクトのレンダリングは、様々な場所で実行することができる。１つの可能な場所は、内容サーバ内である。しかし、内容サーバは、多数の様々なクライアント要求が全部同じ内容サーバに入ってくる場合には特に、簡単に過負荷状態になる。オブジェクト・レンダリングの別の可能な場所は、実際にオブジェクトを使用するクライアント・マシン内である。しかし、多くの一般的なクライアント・マシンは必要なレンダリング機能を実行するにはコンピューティング能力が限られている傾向があるので、これは望ましくない。
【０００５】
別法として、レンダリングは、内容サーバとクライアント装置との間のデータ・ネットワーク内に配置された１つ以上のプロキシ・サーバによって行うことができる。このシナリオでは、装置特有の情報をオブジェクトに関連付けられたメタ情報に付加することができ、プロキシ・サーバは、このメタ情報に従ってオブジェクト・レンダリングを実行することができる。ひとたびオブジェクト・レンダリングがプロキシ・サーバによって実行されると、その結果をプロキシ・サーバのキャッシュ（格納）することができる。この場合、同種の装置からの同じオブジェクトへのその後の要求は、プロキシ・サーバのキャッシュ内に格納されたコピーから直接満たすことができる。その結果、同種の装置のためのオブジェクトの反復レンダリングを回避することができる。応答時間を改善するために、ＩＢＭ  ＮＥＴＦＩＮＩＴＹサーバなど多くのＰＣサーバが、インターネット内でプロキシ・サーバのネットワークとして展開されつつある（ＩＢＭおよびＮＥＴＦＩＮＩＴＹはどちらもインターナショナル・ビジネス・マシーンズ・コーポレイションの登録商標である）。これらのプロキシ・サーバは、オブジェクト・レンダリングおよびキャッシングにおいて協調的に作動することができる。
【０００６】
例えば、上で参照したＢ．へイルパーン（Hailpern）らの「Collaborative Server Processing of Content and Meta-Information with Application to Virus Checking in a Server Network」という名称の本願譲受人に譲渡された米国特許出願に、１つのプロキシ・サーバを選択することによってプロキシ・ネットワークのメタ情報に基づいてウィルス検査を実行する方法が開示されている。この方法は、ネットワーク内のプロキシの１つによってメタ情報に基づいてオブジェクトに特定の計算を実行する方法を開示している。計算後のオブジェクトのキャッシングの態様には、特に注意は払われなかった。また、計算は、選択されたプロキシ・サーバによって完全に行われるのであって、２つ以上のプロキシ・サーバによって分散された方法では行われない。
【０００７】
上で参照したＪ．ベールケット（Beurket）らの「Method for Collaborative Transformation and Caching of Web Objects in a Proxy Network」という名称の本願譲受人に譲渡された米国特許出願に、１つ以上の特殊プロキシを配置して変形およびキャッシングを実行する方法が提示されている。ひとたび変形／レンダリングが行われ、キャッシングが行われると、希望の解像度のその後の要求は全て、これらの特殊変形用プロキシによって満たされる。この方法では、オブジェクトのキャッシングおよびレンダリングは同一特殊プロキシで完全に行われ、オブジェクトのレンダリングは、異なる段階でまたは協調的に２つ以上の異なるプロキシによって分散された方法では簡単に実行されない。
【０００８】
Ａ．フォックス（Fox）の論文「Adapting to Network and Client Variation Using Infrastructural Proxies:Lessons and Perspective」（IEEE Personal Communications, pp.10-19, 1998年8月）には、データ型特有のディスティレーション（distillation）をプロキシ・クラスタに対して実行する方法が開示されている。オブジェクト・レンダリングおよびキャッシングは全て、特定のプロキシ・クラスタによって実行される。クラスタ内のプロキシ間の負荷の均衡化を実行するために、集中型マネージャが使用される。この方法の欠点は、オブジェクトのレンダリングおよびキャッシングが、同一のプロキシ・クラスタで完全に行われ、分散された方法では行われないことである。ネットワーク内の他のプロキシは、同一クラスタ内のものを除いて、オブジェクト・レンダリング・プロセスの段階の一部に参加することができない。
【０００９】
以上に鑑みて、オブジェクト・レンダリングを分散方式で展開できる協調プロキシ・システムの必要が存在することが理解できる。本発明以前には、この必要性は満たされていなかった。
【００１０】
【発明が解決しようとする課題】
本発明の第１の目的および利点は、分散方式でオブジェクト・レンダリングを実行する協調プロキシ・システムを提供することである。
【００１１】
本発明の別の目的および利点は、プロキシ・ネットワーク全体にオブジェクト・レンダリング処理を分散し、特殊オブジェクト・レンダリング・プロキシのみにオブジェクト・レンダリング処理を集中させない技術を提供することである。
【００１２】
本発明のさらなる目的および利点は、レンダリングなどのオブジェクト処理タスクが例えばプロキシ・ネットワークの動的ローディング特性に基づいて適応方式で分散される、協調プロキシ・ネットワークを提供することである。
【００１３】
【課題を解決するための手段】
本発明の実施形態に係る方法および装置によって、上記の他の問題は克服され、目的および利点は実現される。
【００１４】
本発明の教示によれば、協調データ・ネットワークの分散オブジェクト・レンダリング方法が開示される。インターネットを含むことができるこのデータ・ネットワークは、オブジェクト要求側ノードと、オブジェクト・ソース・ノードと、プロキシ・サーバとすることのできる中間ノードとを含む、接続されたコンピューティング・ノードを備えている。この方法は、各参加プロキシ・サーバ（これは単に「プロキシ」と呼ぶことができる）をそれ自体および複数のプロキシの動的負荷状態のみならず、データ・ネットワーク内の動的トラヒック状態にも適応させることができる。どのプロキシまたはプロキシの組がオブジェクト・レンダリングおよびキャッシングを実行するかの決定は、プロキシ間で採用される分散協調方法に基づく。そのような方法の判断基準には、プロキシ間のネットワーク・リンクの帯域幅および現在の負荷、および／またはプロキシのそれぞれのＣＰＵの使用状態を含めることができる。例えば異なる解像度レンダリングなど、オブジェクト・レンダリングを段階化することができる場合、それは２つ以上のプロキシによって実行することができる。どのプロキシが多段レンダリングのどの段階を実行するかの決定もまた、動的負荷状態およびネットワーク状態に適応させることができる。
【００１５】
その結果、参加プロキシは、オブジェクトの要求を満たした後、まず最初に、クライアント装置の種類に基づいて、オブジェクト・レンダリング処理が必要であるかどうかを決定する。オブジェクト・レンダリング処理が必要であることが分かった場合には、要求オブジェクトの型およびネットワーク内の他のプロキシに関する協調情報に基づいて、参加プロキシは、（ａ）単独で完全なオブジェクト・レンダリングを実行すること、（ｂ）レンダリング・プロセスを段階化することができるならば、部分レンダリングを実行すること、または（ｃ）何もせず、別のプロキシにレンダリング・タスクを実行させることを選択することができる。目的は、レンダリング処理を、単に特殊オブジェクト・レンダリング・プロキシだけでなく、プロキシ・ネットワーク全体に分散させることである。
【００１６】
本発明はこのようにして、相互接続されたコンピューティング・ノードで構成されるネットワークの分散動的階層レンダリング方法を提供する。この方法は、オブジェクト要求ノードまたはオブジェクト要求ノードに結合されたプロキシ・ノードで、オブジェクト要求ノードの能力を記述する特定のメタ情報（以下、レシーバ・ヒント情報（ＲＨＩ）または要求側特有の能力情報と呼ぶ）をオブジェクト要求に含める段階と、中間ノードでオブジェクト要求を受信し、要求オブジェクトが局所的に得られなかった場合には、レンダリング・サービスを提供するためのその局所状態を示す情報を含めるようにＲＨＩを変更しながら、その要求を別の中間ノード（または要求オブジェクトのソース）へ転送する段階を含む。そうでない場合には、中間ノードは、必要なレンダリングを決定し、選択関数を呼び出して、ＲＨＩに基づき、必要なレンダリングのどの部分またはサブセットをその中間ノードで実行するかを決定する。次いで中間ノードはレンダリングを実行し、レンダリングされたオブジェクトを要求ノードに渡す。本発明の一部として、部分的にレンダリングされたオブジェクトを受信する別の中間ノードは、選択関数を呼び出して、ＲＨＩに基づき、必要なレンダリングの残りのどの部分（または全部）をこの中間ノードによって実行するかを決定し、次いでレンダリングを実行し、レンダリングされたオブジェクトを要求ノードに渡す。
【００１７】
あまり詳細でないバージョンの要求オブジェクトを持つ中間ノードでは、この方法はそのような情報をＲＨＩに含み、要求を別のノードに転送し、より詳細なバージョンの要求オブジェクトを持つ別の中間ノードでは、より詳細なバージョンの要求オブジェクトをさらなる局所レンダリング無しで返すか、それともその代わりに多少のレンダリングを実行し、部分的にレンダリングされたオブジェクトを返すか、それともその代わりに完全にレンダリングされたオブジェクトを返すかどうかを、ノードが決める。
【００１８】
局所状態情報は、ノードのローディングおよび／または能力（ＣＰＵの利用率など）を含めることができ、かつネットワーク遅延（要求ノードからの）の関数とすることができる。局所状態情報はさらに、そのノードで実行できるレンダリングの種類（これはそのノードで利用できるソフトウェアによって決まる）を含めることができる。局所状態情報はさらに、その局所ノードにおける記憶場所の使用可能性を含めることができる。
【００１９】
ＲＨＩ情報を使用して必要なレンダリングのどの部分を局所的に実行するかを、動的にかつ他のノードとは独立して決定するために、選択方法が各中間ノードに提供される。この選択方法は、（ａ）残りのレンダリング動作を複数のステップに分割するステップと、（ｂ）ＲＨＩ情報を入力パラメータとして使用して、任意の目的関数を最適化するために局所的に実行すべき１つ以上のレンダリング・ステップを選択するステップと、（ｃ）現在のノードに選択された１つ以上のレンダリング・ステップを実行するステップとを含むことができる。目的関数は、最大の帯域幅の削減を先にしてレンダリング・ステップを実行し、かつ／または要求クライアント装置ノードまでの経路上の残りのノード間の負荷の不均衡を軽減するようにレンダリング・ステップを実行することができる。目的関数はまた、ＲＨＩ情報に基づくこのノードから要求ノードまでの推定応答時間とすることもできる。
【００２０】
別法として、選択方法は、（ａ）残りのレンダリング動作を複数のステップに分割するステップと、（ｂ）ＲＨＩ情報を入力パラメータとして使用して、任意の目的関数を最適化するために、割当て計画に従って、レンダリング・ステップを要求クライアント装置ノードまでの経路上の他のノードに割り当てるステップと、（ｃ）現在のノードに割り当てられた単数または複数のレンダリング・ステップを実行するステップとを含むことができる。また、割当て計画を、レンダリングされるオブジェクトに関連付けられたメタ情報として次のノードに渡し、次いでこれが、前記次のノードのＣＰＵのローディングなどの局所的考慮点に従って割当て計画を変更することも、本発明の教示の範囲内である。
【００２１】
レンダリングされたオブジェクトおよび／または受信オブジェクトは、レンダリングされたオブジェクトを生成するためのコストなど、キャッシング上の考慮のためにキャッシュ・マネージャに渡すことができる。
【００２２】
一般的に、異なる中間ノードは、レンダリングのために異なる選択関数を使用することができ、各中間ノードは、ノードの局所状態（例えばＣＰＵのローディング）によって、異なる選択関数を選択することができる。
【００２３】
各ノードはまた、各要求に関連付けられたＲＨＩに情報を含める代わりに、隣接するノードから負荷統計情報を定期的に収集することもできる。
【００２４】
【発明の実施の形態】
図１は、本発明の例示的実施形態に係るプロキシ・ネットワークの全体的構造を示すブロック図である。図示する通り、様々なクライアント１３０、１３１が、プロキシ・サーバ（またはプロキシ）１１０、１１１、１１２を介して内容サーバ１２０、１２１の情報オブジェクトにアクセスするために接続することができる。クライアント、プロキシ、および内容サーバは全て、インターネットなどのネットワーク１０１を介して接続することができる。プロキシ１１０、１１１、１１２は一般的に、アクセス時間を改善するため、およびキャッシングおよび内容フィルタリングなどのサービスを提供するために使用される。例えば、ＩＳＰ（インターネット・サービス・プロバイダ）は、様々な場所に配置されたプロキシ・サーバ１１０、１１１、１１２の階層ネットワーク（例えば、局所的、地域的、および全国的プロキシ・サーバ）を含むことができる。別法として、かつ同じく例として、専用または半専用ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）内で機能する１つまたは複数のプロキシ・サーバを設けることができ、この１つ以上のプロキシ・サーバはＬＡＮまたはＷＡＮのセキュリティを提供する防火壁の後ろに配置することができる。
【００２５】
オブジェクト・レンダリングは、内容サーバ１２０、１２１から検索されたオブジェクトに基づいて、プロキシ１１０、１１１、１１２によって実行される。ここではレシーバ・ヒント情報（ＲＨＩ）と呼ぶ特定の装置能力と同様にオブジェクト・データ型（一般的にここではオブジェクト特有の記述子情報と呼ぶ）も、要求および要求オブジェクトに関連付けられるメタ情報に付加されることによって含められる。ＲＨＩは、要求クライアント装置１３０、１３１による、またはプロキシの１つ（例えば要求装置に結合された第１プロキシ）によるオブジェクト要求に含めることができる。後者の場合、プロキシ１１０、１１１、１１２は、要求と一緒に送信される要求装置の識別子に基づいて、装置能力テーブルにアクセスすることができ、かつこのテーブル内の格納情報に基づいてＲＨＩを構成することができる。一例として、かつＩＳＰ配列を想定して、局所プロキシ・サーバは、局所プロキシがサービスを提供できる様々なクライアント装置の特性（例えば、ディスプレイの種類、グラフィックス・メモリの大きさなど）が格納されているテーブルにアクセスできる。特定のクライアント装置１３０、１３１のテーブル項目は、装置が最初にＩＳＰに登録するときに格納することができる。その後、局所プロキシ・サーバは、クライアント装置が要求を出したときに、クライアント装置の識別子を受信し、テーブルにアクセスし、オブジェクト要求に含めるために適切なＲＨＩを構成する。同様の方法で、要求オブジェクトのソースは、返されるオブジェクトにオブジェクト特有の記述子情報を付加することができ、またはこの情報は、要求オブジェクトのソースに局所的なプロキシ・サーバによって付加することができる（以下で詳しく記述するように、プロキシ・サーバがプロキシに格納されたオブジェクトのコピーから要求を満たさない場合）。
【００２６】
本発明の現在の好適な実施形態では、ＲＨＩはＰＩＣＳ（登録商標）（「インターネット内容選択のためのプラットフォーム（Platform for Internet Content Selection）」）を用いて実現され、本発明のこの態様を以下でさらに詳しく述べる。
【００２７】
要求オブジェクトがプロキシ・ネットワーク内を通過するときに、いずれかのプロキシ・サーバ１１０、１１１、１１２が、関連ＲＨＩに基づいて、完全または部分レンダリングを実行することができる。例えば、レンダリング・プロセス全体を２つ以上のステップに分割することができる場合、プロキシ・サーバの任意の１つ（例えば１１０）は、レンダリング・ステップの１つだけを実行し、次いで部分的にレンダリングされたオブジェクトを別のプロキシ・サーバ（例えば１１１）に転送することを決定するかもしれない。プロキシ・サーバ１１０はまた、それが実行した処理を反映するようにＲＨＩを変更し、変更したＲＨＩをもプロキシ・サーバ１１１に転送する。さらに、プロキシ・サーバ１１０、１１１、１１２の任意の１つに関する局所状態、例えばＣＰＵの負荷およびネットワークのトラヒック負荷なども、ＲＨＩに含めることができ、かつネットワーク１０１に沿って受け渡すことができる。本発明のこれらの態様については、以下でさらに詳しく述べる。
【００２８】
本発明の例示的実施形態では、クライアント１３０、１３１は、例えばパーソナル・コンピュータ（ＰＣ）、ワークステーション、スマートホン、パーソナル・デジタル・アシスタント（ＰＤＡ）などを含むことができる。プロキシ・サーバ１１０、１１１、１１２は例えばＩＢＭから入手できるインターネット・コネクション・サーバ（ＩＣＳ）を実行するＰＣサーバ、ＲＩＳＣ  ＳＹＳＴＥＭ／６０００サーバ、またはＳ／３９０サーバを含むことができる（ＲＩＳＣ  ＳＹＳＴＥＭ／６０００、Ｓ／３９０、およびインターネット・コネクション・サーバは全て、International Business Machines Corporationの商標である）。ネットワーク１０１は、例えば、インターネット、ワールド・ワイド・ウェブ、イントラネット、およびローカル・エリア・ネットワーク（ＬＡＮ）とすることができる。内容サーバ１２０、１２１は、Lotus Go WebサーバまたはＬｏｔｕｓ  Ｄｏｍｉｎｏ  Ｇｏサーバを実行するＰＣサーバ、ＲＳ／６０００サーバ、またはＳ／３９０サーバを含むことができる（Go WebおよびDomino GoはLotus Development Corporationの商標である）。
【００２９】
図２は、本発明の例示的実施形態に係る一般プロキシ環境を示すブロック図である。プロキシ・サーバ・ノード２０１（これは例えば、図１のプロキシ・サーバ１１０、１１１、１１２のいずれか１つとすることができる）は、図１のネットワーク１０１のようなネットワーク２１２を介して要求を満たすことができるコンピューティング・ノードを表すために使用される。プロキシ・サーバ・ノード２０１は、ＣＰＵ２１１、ＲＡＭなどのメモリ２０２、およびディスク記憶装置またはより一般的に直接アクセス記憶装置（ＤＡＳＤ）などの記憶装置２１０を含むことが好ましい。プロキシ・サーバ論理２０３はメモリ２０２内に格納することができ、ＣＰＵ２１１で実行するためにディスク２１０からメモリ２０２にロードされる、コンピュータ読み出し可能および実行可能コードとして実現することが望ましい。プロキシ・サーバ論理２０３については図３に関連してさらに詳しく説明するが、これはオブジェクト・ハンドラ２０４（図５でさらに詳述する）およびオブジェクト要求ハンドラ２０５（図４でさらに詳述する）を含む。特定のオブジェクトに関連付けられたＲＨＩに従ってオブジェクト・レンダリングを実行するオブジェクト・レンダラ２０６はまた、プロキシ・サーバ論理２０３にも含めることができる。オブジェクト・レンダラは、例えばカラー画像を白黒画像にするコンピュータ・プログラム、または複雑なハイパテキスト・マークアップ言語（ＨＴＭＬ）テキストをＨＴＭＬヘッダの要約だけを含む単純なＨＴＭＬテキストに簡約するコンピュータ・プログラムとすることができる。プロキシ・サーバ論理２０３はまた、同一プロキシ・サーバによる一部のオブジェクト・レンダリング動作の繰返しを回避するために、部分的にまたは完全にレンダリングされたオブジェクトの局所コピーを維持するキャッシュ・マネージャ２０７を含むことができる。
【００３０】
図３は、本発明の例示的実施形態に係る、入力を受信したときのプロキシ・サーバ・ノード２０１の一般動作を示す流れ図である。ステップ３０１で、プロキシ・サーバ・ノード２０１は入力を待つ。受信する入力によって、異なる処置が講じられる。ステップ３０２で、受信した入力がオブジェクト要求（例えばＰＤＡ型のクライアント１３０、１３１からのハイパテキスト転送プロトコル（ＨＴＴＰ））である場合には、ステップ３０３でオブジェクト要求ハンドラ２０５が呼び出される。ＨＴＴＰは一般的に、文書内容および／または記述ヘッダ情報を検索するために使用される。オブジェクト要求ハンドラ２０５の詳細な実現については、図４で説明する。ステップ３０４で、受信した入力がオブジェクト（例えば、プロキシ・サーバ・ノード２０１によって行われた要求に応答して、現在のプロキシ・サーバ・ノード２０１に返されるオブジェクト）である場合、ステップ３０５でオブジェクト・ハンドラ２０６が呼び出される。オブジェクト・ハンドラ２０６の詳細な実現については、図５で説明する。ファイル転送プロトコル（ＦＴＰ）要求など、他の種類の要求の場合、ステップ３０６で雑ハンドラが呼び出される。適切なハンドラを呼び出した後、制御はステップ３０１に戻り、ネットワーク２１２からプロキシ・サーバ・ノード２０１への次の入力を待つ。
【００３１】
図４は、本発明の例示的実施形態に係るオブジェクト要求ハンドラ２０５の動作を示す流れ図である。ステップ４０１で、オブジェクト要求ハンドラ２０５はキャッシュ・マネージャ２０７を検査して、要求オブジェクトがキャッシュ内にあるかどうかを決定する。キャッシュは、あまり詳細でないバージョンの要求オブジェクトを含んでいるかもしれず、あるいはより詳細なバージョンを含んでいるかもしれないことに留意されたい。あまり詳細でないバージョンのオブジェクトは要求事項を満たさず、オブジェクトの要求は、一般的には内容サーバ１２０、１２１のうちの適切な１つ、または別のプロキシ・サーバに送出しなければならない。しかし、より詳細なバージョンのオブジェクトは、要求を満たすために、プロキシ・サーバ１１０、１１１、１１２によってさらにレンダリングを行うことができる。ステップ４０４で、要求オブジェクトがキャッシュ内で見つけることができない場合、プロキシ・サーバ１１０、１１１、１１２は、レンダリング・サービスを提供するためのその能力を示すように関連ＲＨＩを変更し、次いで要求および変更されたＲＨＩを、プロキシ・チェーン全体におけるそのプロキシ・サーバの位置によって、別のプロキシ・サーバまたは内容サーバ１２０、１２１に送信する。
【００３２】
ステップ４０２で、要求オブジェクトのコピーが局所キャッシュ内で見つけることができた場合、プロキシ・サーバはキャッシュ内のオブジェクトをＲＨＩに照らして検査して、さらなるレンダリングが必要かどうかを調べる。ＲＨＩには受信装置（つまりキャッシュ内で今見つかったオブジェクトを最初に要求した装置）の能力仕様が含まれることに留意されたい。ＲＨＩを検査することによって、プロキシ・サーバ１１０、１１１、１１２は、それ以上のレンダリングが必要であるかどうかを決定することができる。それ以上のレンダリングが必要でなければ、ステップ４０３でプロキシ・サーバは、レンダリング・サービスを提供するためのその局所状態を示すようにＲＨＩを変更し、オブジェクトを返す。ＲＨＩまたは要求装置に基づいて、それ以上のレンダリングが必要であることが明らかになった場合には、ステップ４０５で、プロキシ・サーバは選択関数を実行して、それがレンダリングを局所的に実行したいか否かを決定する。プロキシ・サーバがレンダリングを局所的に実行しないと決定した場合、ステップ４０６で、プロキシ・サーバは、そのようなレンダリング・サービスを提供するためのその局所負荷状態を示すようにＲＨＩを変更し、変更されたＲＨＩと一緒にオブジェクトを返す。そうではなくプロキシ・サーバがレンダリングを局所的に実行すると決定した場合、ステップ４０７で、それはＲＨＩを検査して、それがレンダリング・プロセス全体を完遂するか、それとも必要なレンダリング・プロセスの一部だけを実行することを希望するかを決定する。プロキシ・サーバがレンダリング・プロセスの一部だけを実行することを希望する場合には、ステップ４０９で、それは別の選択関数を実行して、レンダリング・プロセスのどの部分を実行するかを決定する。いずれの場合も、ステップ４０５で局所レンダリングを実行すると決定した後、プロキシ・サーバ１１０、１１１、１１２はステップ４０８でオブジェクト・レンダラ２０６を呼び出して、オブジェクト・レンダリングを実行する。レンダリング・プロセス（完全または部分レンダリングのどちらでも）が完了した後、ステップ４１０でキャッシュ・マネージャ２０７が呼び出され、局所的にレンダリングされたオブジェクトのコピーをキャッシュするかどうかが決定される。次いでプロキシ・サーバ１１０、１１１、１１２はステップ４０６で、その局所状態を反映するようにＲＨＩを変更し、レンダリング（完全レンダリングまたは部分レンダリング）が行われたオブジェクトを変更されたＲＨＩと一緒に返す。
【００３３】
ステップ４０４でプロキシ・サーバ１１０、１１１、１１２が、キャッシュにあまり詳細でないバージョンの要求オブジェクトが含まれることをＲＨＩで示し、次いでオブジェクトの要求を別のプロキシ・サーバに送信することができることを、当業者なら理解されよう。より詳細なバージョンの要求オブジェクトを格納しているプロキシ・サーバは、次いで、このより詳細なオブジェクトを要求プロキシ・サーバに送信することを決定するかもしれず、あるいはその代わりに、要求プロキシ・サーバが必要な解像度にオブジェクトをレンダリングするために必要などんな情報でも送信するかもしれない。別法として、より詳細なバージョンの要求オブジェクトを含むプロキシ・サーバ１１０、１１１、１１２は、要求プロキシ・サーバのために必要なレンダリングを実行し、完全にレンダリングされたオブジェクトを要求プロキシ・サーバに返すことを決定するかもしれない。この種の決定は、例えば、要求プロキシ・サーバのローディング対より詳細なバージョンの要求オブジェクトを格納しているプロキシ・サーバのローディングに基づくことができる。
【００３４】
さらに、プロキシ・サーバ１１０、１１１、１１２のうちの任意の１つが残りのレンダリング全体を局所的に実行するか否か、あるいはオブジェクト・レンダリングのどの部分を局所的に実行するかを決定するための選択関数に多くの様々な変形例があることを当業者なら理解されよう。
【００３５】
例えば、選択基準は、現在のＣＰＵの負荷および／または要求ノードからのネットワーク遅延、ならびに要求ノードの負荷状態を含むことができる。基準はさらに、実行すべきレンダリングの種類、およびレンダリングを行うために必要なソフトウェアの利用可能性を含むことができる。例えば、プロキシ・サーバ１１０、１１１、１１２のうちの任意の１つは負荷は軽度であるが、クライアント１３０、１３１のうちの要求クライアントのディスプレイ能力と矛盾しない方法でのオブジェクト・レンダリングに必要な特定の種類のソフトウェアがまだ欠如しているかもしれない。基準はまた、局所記憶場所の利用可能性をも含むことができる。しかし、特定のプロキシ・サーバが要求装置への経路における最後の１つである場合には、それは残りのレンダリングを局所的に実行することができなければならない。
【００３６】
また、プロキシ・サーバ１１０、１１１、１１２のうちの任意の１つが部分レンダリングを実行することを決定した場合、それはまず最初に残りのレンダリング動作を複数のステップに分割し、次いでそれ自身で局所的に処理する１つ以上のステップを選択することができることを当業者なら理解されよう。目標は、関連ＲＨＩを入力パラメータとして使用して、任意の目的関数を最適化することである。さらに、プロキシ・サーバ１１０、１１１、１１２のうちの任意の１つは、残りのステップを、要求クライアント装置１３０、１３１までの経路に沿った残りのプロキシ・サーバに割り当てることもできる。そのような割当て計画を受信したプロキシ・サーバは、それ自身の局所状態に基づいて（例えば、ローディング、記憶場所、割当て計画のその割り当てられた部分を実行するために必要なソフトウェアの利用可能性に基づいて）割当を変更することができる。最適化することが望ましい目的関数は、最大量の帯域幅を削減すること、要求装置までの経路における残りのプロキシ間の最大量の負荷の不均衡を削減すること、またはこの２つの組合せを実行することができる。ＲＨＩに基づいて、現在のプロキシ・サーバ１１０、１１１、１１２から要求クライアント装置１３０、１３１までの推定応答時間を最小化することもできる。
【００３７】
図５は、プロキシ・サーバ論理２０３のオブジェクト・ハンドラ２０４を示す流れ図である。ステップ５０１で、プロキシ・サーバがオブジェクトを受信すると、それは最初に関連ＲＨＩを試験して、それ以上のレンダリングが必要かどうかを決定する。必要でなければ、ステップ５０２で、それはキャッシングを考慮するために、オブジェクトをキャッシュ・マネージャ２０７に渡す。ステップ５０３で、受信したオブジェクトは要求クライアント装置１３０、１３１に、または受信クライアント装置までの経路上の別のプロキシ・サーバ１１０、１１１、１１２に返される。オブジェクトを返すときに、プロキシ・サーバはその局所状態を示すように関連ＲＨＩを変更することができる。
【００３８】
プロキシ・サーバが代わりにステップ５０１で、オブジェクトのさらなるレンダリングが必要であると決定した場合、それはステップ５０４で、ＣＰＵのローディングなど、その局所状態に基づいて、レンダリングを実行するか否かを決定する。ステップ５０５で、局所レンダリングを実行しないと決定した場合、それはＲＨＩを変更し、次いで要求クライアント装置１３０、１３１までの経路上の別のプロキシ・サーバにオブジェクトを返す。一方、ステップ５０４でプロキシ・サーバがオブジェクトの局所レンダリングを実行すると決定した場合、ステップ５０６でプロキシ・サーバはさらに、残りのレンダリング・プロセス全体を局所的に実行するかどうかを決定する。しない場合、それは残りのレンダリング・プロセスを複数のステップに分割し、次いで、ステップ５０８で局所的に実行するステップのサブセットを選択することができる。次に、ステップ５０７で局所レンダリングを実行するために、オブジェクト・レンダラ２０６が呼び出される。レンダリング計算の後、ステップ５０９で、レンダリングされたオブジェクトをキャッシュすべきかどうかを決定するために、キャッシュ・マネージャ２０７が呼び出される。次にプロキシ・サーバ１１０、１１１、１１２は関連ＲＨＩを変更し、オブジェクトを要求クライアント装置１３０、１３１、または要求クライアント装置１３０、１３１までの経路上の別のプロキシ・サーバのいずれかに返す。
【００３９】
異なる中間プロキシ・サーバは、局所的に実行するオブジェクト・レンダリングの量を決定するために、異なる選択関数を選択することが可能である。さらに、プロキシ・ネットワーク内の各ノードは、各要求に関連付けられたＲＨＩにそのような負荷状態を含める代わりに、隣接するプロキシ・サーバ・ノードから定期的に負荷統計を収集することができる。
【００４０】
当業者は、キャッシュ・マネージャ２０７がキャッシュを管理するときに、レンダリングされたオブジェクトを生成するための処理コストを考慮に入れることができることを理解されるであろう。したがって、キャッシュ・マネージャは、他のオブジェクトのための定期的なスタック以外に、局所的にレンダリングされたオブジェクトのために別個のスタックを維持することができる。また、そうすることが有益である場合には、他のプロキシ・サーバによってレンダリングされたオブジェクトをキャッシュすることもできる。
【００４１】
本発明の例示的実施形態に関連して本発明をこのように説明したが、次に、本発明の特定の態様、特にレシーバ・ヒント情報（ＲＨＩ）の現在好適な実施形態のさらに詳しい説明を、本発明の使用例と共に示す。
【００４２】
一般に、メタデータ情報は、ＰＩＣＳ（登録商標）（「インターネット内容選択のためのプラットフォーム」）の場合と大体同様に、ＨＴＴＰ要求ヘッダおよび応答ヘッダに格納することができる。非常に一般的に、ＰＩＣＳ（登録商標）仕様は、ラベル（メタデータ）をインターネット内容に関連付けることを可能にする。ＰＩＣＳ（登録商標）は電子内容に関するメタ情報を送信する方法を規定するものであり、ウェブ・コンソーシアム・プロトコル勧告である（http://www.w3.org/PICS参照）。ＰＩＣＳ（登録商標）は最初、電子内容の価値に基づく格付けラベルを送信するために使用されたが、コード署名およびプライバシーなど、ラベルのその他の使用法をも促進することができる。しかし、メタ情報のフォーマットおよび意味は完全に一般的である。ＰＩＣＳ（登録商標）で、電子内容を記述するメタ情報は、情報の生成者および意図された使用法に従ってグループ化され、そのような１つのグループ内で、任意の数のカテゴリまたは寸法の情報を伝送するすることができる。各カテゴリは許可された値の範囲を持つ。内容の特定の一片に対して、特定のカテゴリは単一の値または複数の値を持つことができる。さらに、「ＰＩＣＳ（登録商標）ラベル」として知られるメタ情報グループは、期限情報を含むことができる。電子内容の特定の一片に対する各ＰＩＣＳ（登録商標）ラベルは独立して、内容に追加したり、内容から除去することができる。
【００４３】
「PICS Label Distribution Label Syntax and Communications Protocols」（REC-PICS-labels-961031, Version1.1, W3Ｃ勧告，1996年10月31日）と題する刊行物を参照することができる。これは、http://www.w3.org/PICSで入手可能であり、その全文を参照によりここに組み込む。また、「Filtering Information on the Internet」（Paul Resnick, Scientific American, 1997年3月）と題する論文も参照することができる。
【００４４】
本発明の教示によれば、例として、画像ファイルは、画像の解像度を含むために設定されたフィールド（単数または複数）を持つＰＩＣＳラベルを付けて、サーバから送信することができる。そのような解像度ラベルは、１対のカラー符号化および画像サイズｒ（ｃ  １６  ｓ  １０００）によって指定することができる。ここで「ｃ」および「ｓ」は様々なメタ情報型の伝送名であり、この画像内容に対する適用可能な値は１６（ｃについて）および１０００（ｓについて）であり、１６ビット・カラー符号化および１０００Ｍバイトの画像サイズを示している。分散オブジェクト・レンダリングに参加するプロキシ・サーバ１１０、１１１、１１２は、これらのカテゴリおよび値をどのように解釈すべきかを知っている。他の装置能力およびプロキシ・サーバの負荷状態も同様にＰＩＣＳ（登録商標）ラベルとして符号化し、ＨＴＴＰ要求ヘッダおよび／または応答ヘッダと一緒に伝送することができる。
【００４５】
例えば、ＰＤＡなどのパーソナル・デジタル装置（ＰＤＤ）の装置能力は、１対のカラー符号化および画像サイズｄ（ｃ  １  ｓ  ２）として指定することができ、ＰＤＤが最高２Ｍバイト（２メガバイト）までの画像サイズを１ビット・カラー符号化（ｃ）を表示（ｄ）することしかできないことを示す。この装置能力ＰＩＣＳラベルは、ＰＤＤによって、または上述のようにＰＤＤに結合されたプロキシ・サーバによって、様々なプロキシ・サーバ１１０、１１１、１１２の間で送信されるＨＴＴＰ要求ヘッダに挿入することができる。このＰＩＣＳラベルを、本発明の文脈では、レシーバ・ヒント情報（ＲＨＩ）と呼ぶ。
【００４６】
上記ＲＨＩ  ｄ（ｃ  １  ｓ  ２）を有するＰＤＤからの要求に応答して、上記ＰＩＣＳラベル  ｒ（ｃ  １６  ｓ  １０００）を有する画像オブジェクトを受信するプロキシ・サーバ１１０、１１１、１１２は、ＰＤＤが画像オブジェクトを受信したままでは表示することができないこと、および画像オブジェクトをＰＤＤが表示できる形式にレンダリングする必要があることを知らされることを理解されたい。プロキシ・サーバはレンダリング・プロセス全体を実行することができ、次いで画像オブジェクトのＰＩＣＳラベルをｒ（ｃ  １  ｓ  ２）に、つまり要求ＰＤＤのディスプレイ能力と互換可能なフォーマットを示すように、変更する。しかし、何らかの理由でプロキシ・サーバが画像オブジェクトを完全にはレンダリングしないか、または例えばローディング上の問題点のため、あるいは適切なソフトウェアの欠如のため、画像オブジェクトのレンダリングを全く行わないことを選択した場合には、画像オブジェクトのＰＩＣＳラベルは、ＰＤＤのディスプレイ能力と互換可能な状態を反映しない。例えば、プロキシ・サーバ１１０、１１１、１１２のうちの任意の１つが受信した画像オブジェクトのカラー符号化を１６レベルから１に変更することだけを選択すると仮定すると、次のプロキシ・サーバが受信する変更されたＰＩＣＳラベルはｒ（ｃ  １  ｓ  １０００）となり、これは依然としてＰＤＤのＲＨＩのｄ（ｃ  １  ｓ  ２）と互換性の無い形式である。次いで、次のプロキシ・サーバ１１０、１１１、１１２は、受信した画像オブジェクトをレンダリングして、画像サイズを１０００メガバイトから２メガバイトに縮小することを選択することができ、その結果変更されたＰＩＣＳラベルのｒ（ｃ  １  ｓ  ２）が得られ、これはＰＤＤのＲＨＩのｄ（ｃ  １  ｓ  ２）と互換可能な形式である。
【００４７】
分散オブジェクト・レンダリングのさらなる例として、パーソナル・デジタル装置ＰＤＤが画像ファイルを要求しており、そのような画像ファイルはネットワーク１０１内のプロキシ・サーバ１１０、１１１、１１２のどれにも現在存在していないと仮定する。この要求は最初に、ローカルＩＳＰ（インターネット・サービス・プロバイダ）などの局所プロキシ・サーバＡに送信され、次いで地域プロキシ・サーバＢに転送され、次いで国内プロキシ・サーバＣに転送される。国内プロキシ・サーバＣは次に、適切な内容サーバ１２０または１２１に要求を行う。
【００４８】
本発明の教示の一態様によれば、局所プロキシ・サーバＡは、装置のＩＤを認識することによって、画像ファイルのＨＴＴＰ要求が特定の装置ＰＤＤから来ていることを認識する。局所プロキシ・サーバＡは次に、装置ＰＤＤの装置能力およびそれに対応する、例えばこの装置が最高３Ｍバイトまでの画像サイズを１ビット・カラー符号化でしか表示できないことを示すｄ（ｃ  １  ｓ  ３）などの装置能力ＰＩＣＳラベルを捜すために、局所メモリまたは別のメモリに格納されたテーブルまたはディレクトリを探索する。次いでそのようなＰＩＣＳラベルはＨＴＴＰ要求ヘッダ内に（そのＰＤＤのＲＨＩとして）入れられ、その後、地域および国内プロキシ・サーバＢおよびＣに送信される。国内プロキシ・サーバＣからの要求に応答して、内容サーバ１２０または１２１は解像度ＰＩＣＳラベルｒ（ｃ  １６  ｓ  １００）を作成し、それを応答ＨＴＴＰヘッダに挿入する。次いで画像ファイルは国内プロキシ・サーバＣに送信される。解像度ＰＩＣＳラベルを装置能力ＰＩＣＳ（ＲＨＩ）ラベルと比較した後、プロキシ・サーバＣは、この画像ファイルにレンダリングが必要であると判断する。次いでプロキシ・サーバＣは、レンダリングを局所的に行うかどうかを決定する。レンダリングを局所的に実行する場合には、国内プロキシ・サーバＣは次に、レンダリング自体を全部完遂するか、それともレンダリングを複数のステップに分割してその一部だけを局所的に実行するかを決定する。国内プロキシ・サーバＣが、部分的レンダリングを実行すると決定するものとすると、同サーバは、イメージ・ファイルを部分的にレンダリングし、それに応じて解像度ＰＩＣＳラベルを更新する。次に、結果的に得られた解像度ＰＩＣＳラベルが、部分的にレンダリングされた画像ファイルと一緒に、地域プロキシ・サーバＢに送られると仮定する。同様に、プロキシ・サーバＢは、それが残りのレンダリングを局所的に実行するかどうかを決定する。そうでない場合、それは単に、以前に変更された解像度ＰＩＣＳラベルを、部分的にレンダリングされた画像ファイルと一緒に、局所プロキシ・サーバＡに転送するだけである。プロキシ・サーバＡが最終的に画像ファイルを受信すると、それは残りのレンダリングを行う必要があるかどうかを決定する。イエスの場合、プロキシ・サーバＡはＰＤＤクライアント装置１３０、１３１の前のプロキシ・ネットワークの最後のプロキシ・サーバ１１０、１１１、１１２であるため、それはレンダリングを局所的に完遂する。プロキシ・サーバＡは、画像がＰＩＣＳラベルｄ（ｃ  １  ｓ  ３）によって示される装置仕様を満たすようにレンダリングを完遂し、レンダリングされた画像ファイルを要求ＰＤＤクライアント装置１３０または１３１に送信する。
【００４９】
多数の可能なネットワーク・トポロジおよびアーキテクチャが、本発明の教示から利益を得、かつ動作することができること、したがって本発明の教示が上述した特定の例示的実施形態のみに限定して解釈するように意図されていないことを当業者は理解されたい。
【００５０】
さらに、本発明の教示は、ＲＨＩの実現のためにＰＩＣＳ（登録商標）フォーマット・ラベルまたはデータ構造を使用することに限定されない。
【００５１】
さらに、画像オブジェクト以外のオブジェクトを、１つ以上の中間コンピューティング・ノードによって要求し、返却し、かつ処理することができる。一例として、音声オブジェクトを、上述の画像オブジェクトと同一または同様の方法で処理することができ、その場合、ＲＨＩは要求側の音声再生能力を示すことができる。本発明の教示はまた、制限されたディスプレイ能力を持つＰＤＤなどの装置によって要求されたときに文書を簡約するために、テキストの多くの見出しおよび段落を含む複雑なＨＴＭＬ文書にも適用することができる。
【００５２】
本発明の教示が、協調サーバのネットワーク内に、オブジェクトを使用する装置の能力に従って、画像レンダリングなどのオブジェクト処理を実行することができる個々のサーバを提供するために、コンピュータ読み取り可能な媒体（ディスク２１０など）上で実施されるコンピュータ・プログラムを含んでいることも理解されたい。このコンピュータ・プログラムは、オブジェクトの要求に含まれる要求側特有の能力情報および受信オブジェクトに含まれるオブジェクト特有の情報に応答して、オブジェクトを要求側の能力に適合させるためにオブジェクトを部分的または全体的に処理するためのコード・セグメントを含む。
【００５３】
本発明はまた、相互接続された協調コンピューティング・ノードの階層ネットワーク内の個々のコンピューティング・ノード・マシンが、オブジェクトを使用する装置の能力に従って、レンダリングなどのオブジェクト処理を実行できるようにする方法ステップを実行するために、マシンによって実行可能な命令のプログラムを有形に実施する、マシンによって読み取り可能なプログラム記憶装置をも含む。この方法は、オブジェクトの要求に含まれる要求側特有の能力情報に応答し、さらにオブジェクトのソースまたは別のコンピューティング・ノード・マシンから受信するオブジェクトに含まれるオブジェクト特有の情報にも応答して、オブジェクトを使用する要求側の能力に適合させるようにオブジェクトを部分的または全体的に処理する。
【００５４】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００５５】
（１）少なくとも１つのコンピューティング・ノードがオブジェクトの要求側であって要求を生成し、少なくとも１つのコンピューティング・ノードが要求されるオブジェクトのソースであり、少なくとも１つのコンピューティング・ノードが、要求をソースへ転送するため、またソースから要求側に要求オブジェクトを転送するために、要求側とソースとの間に挿入された中間コンピューティング・ノードである、データ・ネットワークに結合された複数のコンピューティング・ノードを提供するステップと、
あるオブジェクトに対する生成された要求に要求側特有の能力情報を含めるステップと、
要求されるオブジェクトにオブジェクト特有の記述子情報を含めるステップと、
前記少なくとも１つの中間コンピューティング・ノードで、前記要求つまり特有の能力情報およびオブジェクト特有の記述子情報を審査し、要求オブジェクトを要求側特有の能力情報に完全にまたは部分的に適合させるためにオブジェクトを完全にまたは部分的に処理する決定を下すステップと
を含む、データ・ネットワークを操作するための方法。
（２）オブジェクトを処理する際に、少なくとも１つの中間コンピューティング・ノードで実行された処理を反映するように、前記オブジェクト特有の記述子情報を全部または部分的に変更するステップを含む、上記（１）に記載の方法。
（３）オブジェクトが画像オブジェクトであり、前記要求側特有の能力情報がオブジェクトを表示する要求側の能力を示す、上記（１）に記載の方法。
（４）前記データ・ネットワークがインターネットで構成される、上記（１）に記載の方法。
（５）前記決定を下すステップが、オブジェクトを処理しないことを決定することもでき、前記決定を下すステップが中間コンピューティング・ノードの少なくとも１つの局所状態を考慮する、上記（１）に記載の方法。
（６）中間コンピューティング・ノードが要求オブジェクトのコピーを格納し、前記中間コンピューティング・ノードがソースコンピューティング・ノードとして機能する、上記（１）に記載の方法。
（７）中間コンピューティング・ノードが、要求側が表示できることを示す要求側特有の能力情報よりも詳細でないバージョンの要求オブジェクトを格納し、前記方法が、前記要求を少なくとも１つの他のコンピューティング・ノードに転送するステップと、より詳細なバージョンの要求オブジェクトを有する別のコンピューティング・ノードで、局所レンダリングを行わずに前記より詳細なバージョンの要求オブジェクトを返すか、それともその代わりに局所レンダリングを実行し、部分的にレンダリングされたオブジェクトを返すか、またはその代わりに局所レンダリングを実行し、完全にレンダリングされたオブジェクトを返すかの決定を下すステップとをさらに含む、上記（３）に記載の方法。
（８）中間コンピューティング・ノードが、要求側が表示できることを示す要求側特有の能力情報よりも詳細なバージョンの要求オブジェクトを格納し、前記方法が、局所レンダリングを行わずに前記より詳細なバージョンの要求オブジェクトを返すか、それともその代わりに局所レンダリングを実行し、部分的にレンダリングされたオブジェクトを返すか、またはその代わりに局所レンダリングを実行し、完全にレンダリングされたオブジェクトを返すかの決定を下すステップをさらに含む、上記（３）に記載の方法。
（９）中間コンピューティング・ノードが、要求側が表示できることを示す要求側特有の能力情報よりも詳細なバージョンの要求オブジェクトを受信または格納し、前記方法が、オブジェクトを中間コンピューティング・ノードから転送するのに必要なデータ・ネットワーク帯域幅の量を縮小するために、オブジェクトをレンダリングするステップをさらに含む、上記（３）に記載の方法。
（１０）中間コンピューティング・ノードが、要求側が表示できることを示す要求側特有の能力情報よりも詳細なバージョンの要求オブジェクトを受信または格納し、前記方法が、この中間コンピューティング・ノードと要求側との間に配置された別の中間コンピューティング・ノードの負荷の不均衡の量を削減するために、オブジェクトをレンダリングするステップをさらに含む、上記（３）に記載の方法。
（１１）前記決定を下すステップが少なくとも部分的に、前記中間コンピューティング・ノードのレンダリング能力を考慮することによって行われる、上記（１）に記載の方法。
（１２）前記決定を下すステップが少なくとも部分的に、前記中間コンピューティング・ノードの現在の処理負荷を考慮することによって行われる、上記（１）に記載の方法。
（１３）前記決定を下すステップが少なくとも部分的に、要求側までのネットワーク遅延の量を考慮することによって行われる、上記（１）に記載の方法。
（１４）中間コンピューティング・ノードが、要求側が表示できることを示す要求側特有の能力情報よりも詳細なバージョンの要求オブジェクトを受信または格納し、前記決定を下すステップが、画像オブジェクト処理の量を複数のステップに分割するステップと、前記ステップの少なくとも１つを前記中間コンピューティング・ノードと要求側との間に配置された少なくとも１つの他の中間コンピューティング・ノードに割り当てるステップとをさらに含む、上記（３）に記載の方法。
（１５）前記割当ステップが、データ・ネットワークを介して前記少なくとも１つの他の中間コンピューティング・ノードに渡される割当て計画を生成する、上記（１４）に記載の方法。
（１６）前記少なくとも１つの他の中間コンピューティング・ノードで、局所状態に従って、前記割当て計画を変更するステップをさらに含む、上記（１５）に記載の方法。
（１７）オブジェクトが画像オブジェクトであり、前記オブジェクト特有の記述子情報が少なくとも、画像オブジェクトの色がどのように表現されるか、および画像オブジェクトのサイズをも指定する、上記（１）に記載の方法。
（１８）オブジェクトが画像オブジェクトであり、前記要求側コンピューティング・ノードが画像オブジェクトを表示するためのディスプレイで構成され、前記要求側特有の能力情報が少なくとも、色を表示する要求側の能力、および表示できる画像オブジェクトの最大のサイズを指定する、上記（１）に記載の方法。
（１９）少なくとも要求側特有の能力情報がメタ情報として表現される、上記（１）に記載の方法。
（２０）少なくとも要求側特有の能力情報が、インターネット内容選択のためのプラットフォーム・フォーマットを用いて表現される、上記（１）に記載の方法。
（２１）オブジェクトに対する生成された要求に要求側特有の能力情報を含める前記段階が要求側によって実行される、上記（１）に記載の方法。
（２２）オブジェクトに対する生成された要求に要求側特有の能力情報を含める前記段階が中間コンピューティング・ノードによって実行される、上記（１）に記載の方法。
（２３）要求オブジェクトにオブジェクト特有の記述子情報を含める前記段階が要求オブジェクトのソースによって実行される、上記（１）に記載の方法。
（２４）要求オブジェクトにオブジェクト特有の記述子情報を含める前記段階が中間コンピューティング・ノードによって実行される、上記（１）に記載の方法。
（２５）コンピューティング・ノードが結合されたデータ・ネットワークであって、少なくとも１つのコンピューティング・ノードは画像オブジェクトの要求側であって要求を生成し、前記要求側が、要求された画像オブジェクトを表示するためのディスプレイを含み、少なくとも１つのコンピューティング・ノードは要求された画像オブジェクトのソースであり、少なくとも１つのコンピューティング・ノードは、要求をソースに転送するため、および要求画像オブジェクトをソースから要求側に転送するために要求側とソースとの間に挿入された中間コンピューティング・ノードであり、前記要求側または前記中間コンピューティング・ノードの１つが、画像オブジェクトに対する生成された要求に要求側特有の画像表示能力情報を追加し、前記ソースまたは前記中間コンピューティング・ノードの１つが、返される要求画像オブジェクトに画像オブジェクト特有の記述子情報を追加し、前記画像オブジェクト特有の記述子情報は、関連付けられた画像オブジェクトに加えられた変化を反映するように変更可能であり、前記少なくとも１つの中間コンピューティング・ノードは、前記要求側特有の画像表示能力情報および前記オブジェクト特有の記述子情報の検査、ならびに少なくとも１つの局所状態に応答して、要求された画像オブジェクトの画像オブジェクト特有の記述子情報を要求側特有の画像表示能力情報に完全にまたは部分的に適合させるように、関連付けられた返却画像オブジェクトを完全にまたは部分的にレンダリングするか、それとも関連付けられた画像オブジェクトを全くレンダリングしないかの決定を下す、データ・ネットワーク。
（２６）前記少なくとも１つの中間コンピューティング・ノードが、画像オブジェクトのレンダリングの後、前記少なくとも１つの中間コンピューティング・ノードによって実行されたレンダリング動作の結果を示すように、関連付けられた画像オブジェクト特有の記述子情報を変更する、上記（２５）に記載のネットワーク。
（２７）データ・ネットワークがインターネットで構成される、上記（２５）に記載のネットワーク。
（２８）前記少なくとも１つの中間コンピューティング・ノードが前記画像オブジェクトのコピーを格納するためのメモリを含み、前記中間コンピューティング・ノードが、格納されたコピーを要求側に返すことによって、前記ソースコンピューティング・ノードとして機能することができる、上記（２５）に記載のネットワーク。
（２９）前記少なくとも１つの中間コンピューティング・ノードが、要求側が表示できることを示す要求側特有の画像表示能力情報より詳細でないバージョンの要求画像オブジェクトを格納し、前記少なくとも１つの中間コンピューティング・ノードが、より詳細なバージョンの要求画像オブジェクトを格納している別の中間コンピューティング・ノードに要求を転送し、前記別の中間コンピューティング・ノードが、前記要求側特有の画像表示能力情報および前記オブジェクト特有の記述子情報の検査、ならびに少なくとも１つの局所状態に応答して、格納された画像オブジェクトの画像オブジェクト特有の記述子情報を要求側特有の画像表示能力情報に完全にまたは部分的に適合させるように、格納された画像オブジェクトを完全にまたは部分的にレンダリングするか、それとも格納された画像オブジェクトを全くレンダリングしないかの決定を下す、上記（２８）に記載のネットワーク。
（３０）前記少なくとも１つの中間コンピューティング・ノードが、要求側が表示できることを示す要求側特有の画像表示能力情報よりより詳細なバージョンの要求画像オブジェクトを格納し、前記少なくとも１つの中間コンピューティング・ノードが、前記要求側特有の画像表示能力情報および前記オブジェクト特有の記述子情報の検査、ならびに少なくとも１つの局所状態に応答して、格納された画像オブジェクトの画像オブジェクト特有の記述子情報を要求側特有の画像表示能力情報に完全にまたは部分的に適合させるように、格納された画像オブジェクトを完全にまたは部分的にレンダリングするか、それとも格納された画像オブジェクトを全くレンダリングしないかの決定を下す、上記（２８）に記載のネットワーク。
（３１）前記少なくとも１つの中間コンピューティング・ノードが、前記要求側に返される要求画像オブジェクトをレンダリングする際に、画像オブジェクトを伝送するために必要なデータ・ネットワーク帯域幅の量を削減するように、画像オブジェクトをレンダリングする、上記（２５）に記載のネットワーク。
（３２）前記少なくとも１つの中間コンピューティング・ノードが、前記要求側に返される要求画像オブジェクトをレンダリングする際に、前記少なくとも１つの中間コンピューティング・ノードと前記要求側との間に配置された別の中間コンピューティング・ノードの負荷の不均衡の量を削減するように画像オブジェクトをレンダリングする、上記（２５）に記載のネットワーク。
（３３）前記少なくとも１つの局所状態が、前記中間コンピューティング・ノードのレンダリング能力の少なくとも１つ、前記中間コンピューティング・ノードの現在の処理負荷、および要求側までのネットワーク遅延の量を含む、上記（２５）に記載のネットワーク。
（３４）前記少なくとも１つの中間コンピューティング・ノードがさらに、画像オブジェクト・レンダリングの量を複数のステップに分割し、前記ステップの少なくとも１つを前記少なくとも１つの中間コンピューティング・ノードと前記要求側との間に配置された少なくとも１つの他の中間コンピューティング・ノードに割り当てる、上記（２５）に記載のネットワーク。
（３５）前記少なくとも１つの中間コンピューティング・ノードが、前記データ・ネットワークを介して前記少なくとも１つの他の中間コンピューティング・ノードに渡されるレンダリング・ステップ割当て計画を導出し、前記少なくとも１つの他の中間コンピューティング・ノードが、少なくとも１つの局所状態に応答して前記割当て計画を変更することができる、上記（３４）に記載のネットワーク。
（３６）前記画像オブジェクト特有の記述子情報が少なくとも、前記画像オブジェクトの色がどのように表現されるか、および画像オブジェクトのサイズをも指定し、前記要求側特有の画像表示能力情報が少なくとも、色を表示する要求側の能力、および表示できる画像オブジェクトの最大サイズを指定する、上記（２５）に記載のネットワーク。
（３７）少なくとも前記要求側特有の画像表示能力情報がメタ情報として表現される、上記（２５）に記載のネットワーク。
（３８）少なくとも前記要求側特有の画像表示能力情報がインターネット内容選択フォーマットのためのプラットフォームを使用して表現される、上記（２５）に記載のネットワーク。
（３９）協調サーバのネットワーク内の個々のサーバに、オブジェクトを使用する装置の能力に従ってオブジェクト処理を選択的に実行する能力を提供するための、コンピュータ読み取り可能な媒体上で実施されるコンピュータ・プログラムであって、オブジェクトの要求に含まれる要求側特有の能力情報、ならびに要求側に返される受信オブジェクトに含まれるオブジェクト特有の記述子情報に応答して、オブジェクトを処理しないか、またはオブジェクトを使用する要求側の能力にオブジェクトを適応させるためにオブジェクトを部分的または全体的に処理するかのどちらかを選択的に実行するためのコード・セグメントを含むコンピュータ・プログラム。
（４０）相互接続された協調コンピューティング・ノードの階層ネットワーク内の個々のコンピューティング・ノード・マシンが、オブジェクトを使用する装置の能力に従ってオブジェクト処理を実行できるようにする方法ステップを実行するための、マシンによって実行可能な命令のプログラムを有形的に実施する、マシンによって読み取り可能なプログラム記憶装置であって、前記方法が、オブジェクトの要求に含まれる要求側特有の能力情報に応答し、さらにオブジェクトのソースまたは別のコンピューティング・ノード・マシンから受信するオブジェクトに含まれるオブジェクト特有の記述子情報にも応答して、オブジェクトを処理しないか、またはオブジェクトを使用する要求側の能力にオブジェクトを適合させるためにオブジェクトを部分的または全体的に処理するかのどちらかを選択的に実行する、プログラム記憶装置。
【図面の簡単な説明】
【図１】本発明の例示的実施形態に係るインターネット環境のブロック図である。
【図２】本発明の例示的実施形態に係るプロキシ環境を示すブロック図である。
【図３】本発明の例示的実施形態に係るプロキシ・サーバの構成を示す流れ図である。
【図４】本発明の例示的実施形態に係るオブジェクト要求を受信したときのプロキシ・サーバの動作を示す流れ図である。
【図５】本発明の例示的実施形態に係るオブジェクトを受信したときのプロキシ・サーバの動作を示す流れ図である。
【符号の説明】
１０１  ネットワーク
１１０  プロキシ・サーバ
１１１  プロキシ・サーバ
１１２  プロキシ・サーバ
１２０  内容サーバ
１２１  内容サーバ
１３０  クライアント
１３１  クライアント
【図１】
0003974307.tif 000002
【図２】
0003974307.tif 000003
【図３】
0003974307.tif 000004
【図４】
0003974307.tif 000005
【図５】
0003974307.tif 000006