(57)【要約】【課題】本発明は、サーバから複数の表示用データをデータ毎の最適な優先順位が設定されたストリームで情報処理装置に対して提供することで、情報処理装置でのフォアグラウンド処理が適切に行われ、データ表示速度が向上する仕組みを提供する。【解決手段】サーバコンピュータ１０２が、ＨＴＭＬデータで指定されるコンテンツの属性に基づいて、コンテンツの優先順位を設定し、上記優先順位を含むＨＴＭＬデータをクライアントコンピュータ１０３に提供する。クライアントコンピュータ１０３が、サーバコンピュータ１０２から提供されるＨＴＭＬデータで指定されるコンテンツの優先順位に応じた優先度のストリームを用いてサーバコンピュータ１０２からコンテンツを取得する。クライアントコンピュータ１０３が、取得されたコンテンツのうち、一部のコンテンツを用いた表示の制御を行い、他のコンテンツをキャッシュする。【選択図】図１
2014021728.tif 000002
【特許請求の範囲】
【請求項１】
構造化言語で記述されたデータを提供するサーバと、前記提供されたデータに従う表示制御を行う情報処理装置とを含むシステムであって、
前記サーバは、
前記データで指定されるコンテンツの属性に基づいて、前記コンテンツの優先順位を設定する設定手段と、
前記設定された優先順位を含む前記データを前記情報処理装置に提供する提供手段とを有し、
前記情報処理装置は、
前記サーバから提供されるデータで指定される各コンテンツの優先順位に応じた優先度のストリームを用いて前記サーバからコンテンツを取得する取得手段と、
前記取得されたコンテンツのうち、一部のコンテンツを用いた表示の制御を行う表示手段と、
前記取得されたコンテンツのうち、他のコンテンツをキャッシュする管理手段とを有することを特徴とする情報処理システム。
【請求項２】
前記コンテンツの属性は、少なくとも、前記コンテンツのサイズ、種別、及び内容の何れかであることを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記サーバが備える前記設定手段は、前記データで指定されるコンテンツのうち、サイズが閾値以上であるコンテンツに第１の優先順位を設定し、サイズが閾値未満であるコンテンツに前記第１の優先順位より高い第２の優先順位を設定することを特徴とする請求項２に記載の情報処理システム。
【請求項４】
前記サーバが備える前記設定手段は、前記データで指定されるコンテンツの属性と、前記情報処理装置の環境情報とに基づいて、前記コンテンツの優先順位を設定することを特徴とする請求項１乃至３の何れか１項に記載の情報処理システム。
【請求項５】
前記情報処理装置の環境情報は、少なくとも、前記情報処理装置と前記サーバとの間のアップロード／ダウンロード帯域幅、ラウンドトリップタイムの何れかを含むことを特徴とする請求項４に記載の情報処理システム。
【請求項６】
前記サーバが備える前記設定手段は、前記情報処理装置と前記サーバとの間のラウンドトリップタイムに基づいて、前記情報処理装置と前記サーバとの間の通信環境が高速通信環境であるか低速通信環境であるかを判断し、前記通信環境が低速通信環境である場合に優先順位を低く設定するコンテンツの数を、前記通信環境が高速通信環境である場合に優先順位を低く設定するコンテンツの数より少なくすることを特徴とする請求項５に記載の情報処理システム。
【請求項７】
前記情報処理装置が備える取得手段が同時に用いることができる前記ストリームの数は、前記情報処理装置の環境情報により制限されることを特徴とする請求項４乃至６のいずれか１項に記載の情報処理システム。
【請求項８】
構造化言語で記述されたデータを提供するサーバと、前記提供されたデータに従う表示制御を行う情報処理装置とを含むシステムにおける制御方法であって、
前記サーバが、前記データで指定されるコンテンツの属性に基づいて、前記コンテンツの優先順位を設定する工程と、
前記サーバが、前記設定された優先順位を含む前記データを前記情報処理装置に提供する工程と、
前記情報処理装置が、前記データで指定される各コンテンツの優先順位に応じた優先度のストリームを用いて前記サーバからコンテンツを取得する工程と、
前記情報処理装置が、前記取得されたコンテンツのうち、一部のコンテンツを用いた表示の制御を行う工程と、
前記情報処理装置が、前記取得されたコンテンツのうち、他のコンテンツをキャッシュする工程とを有することを特徴とする制御方法。
【請求項９】
構造化言語で記述されたデータを、前記データに従う表示制御を行う情報処理装置に提供するサーバであって、
前記データで指定されるコンテンツの属性に基づいて、前記コンテンツの優先順位を設定する設定手段と、
前記設定された優先順位を含む前記データを前記情報処理装置に提供する提供手段と、
前記データで指定される各コンテンツの優先順位に応じた優先度のストリームを用いてコンテンツの取得要求を行う前記情報処理装置から、前記コンテンツの取得要求を受け付け、前記情報処理装置に対してコンテンツを配信する配信手段とを備え、
前記情報処理装置において、前記配信されたコンテンツのうち、一部のコンテンツを用いた表示の制御が行われ、他のコンテンツがキャッシュされる
ことを特徴とするサーバ。
【請求項１０】
前記コンテンツの属性は、少なくとも、前記コンテンツのサイズ、種別、及び内容の何れかであることを特徴とする請求項９に記載のサーバ。
【請求項１１】
前記設定手段は、前記データで指定されるコンテンツのうち、サイズが閾値以上であるコンテンツに第１の優先順位を設定し、サイズが閾値未満であるコンテンツに前記第１の優先順位より高い第２の優先順位を設定することを特徴とする請求項９に記載のサーバ。
【請求項１２】
前記設定手段は、前記データで指定されるコンテンツの属性と、前記情報処理装置の環境情報とに基づいて、前記コンテンツの優先順位を設定することを特徴とする請求項９乃至１１の何れか１項に記載のサーバ。
【請求項１３】
前記情報処理装置の環境情報は、少なくとも、前記情報処理装置と前記サーバとの間のアップロード／ダウンロード帯域幅、ラウンドトリップタイムの何れかを含むことを特徴とする請求項１２に記載のサーバ。
【請求項１４】
前記設定手段は、前記情報処理装置と前記サーバとの間のラウンドトリップタイムに基づいて、前記情報処理装置と前記サーバとの間の通信環境が高速通信環境であるか低速通信環境であるかを判断し、前記通信環境が低速通信環境である場合に優先順位を低く設定するコンテンツの数を、前記通信環境が高速通信環境である場合に優先順位を低く設定するコンテンツの数より少なくすることを特徴とする請求項１３に記載のサーバ。
【請求項１５】
前記情報処理装置が同時に用いることができる前記ストリームの数は、前記情報処理装置の環境情報により制限されることを特徴とする請求項１２乃至１４のいずれか１項に記載のサーバ。
【請求項１６】
構造化言語で記述されたデータを、前記データに従う表示を行う情報処理装置に提供するサーバの制御方法であって、
前記データで指定されるコンテンツの属性に基づいて、前記コンテンツの優先順位を設定する工程と、
前記設定された優先順位を含む前記データを前記情報処理装置に提供する工程と、
前記データで指定される各コンテンツの優先順位に応じた優先度のストリームを用いてコンテンツの取得要求を行う前記情報処理装置から、前記コンテンツの取得要求を受け付け、前記情報処理装置に対してコンテンツを配信する工程とを有し、
前記情報処理装置において、前記配信されたコンテンツのうち、一部のコンテンツを用いた表示の制御が行われ、他のコンテンツがキャッシュされる
ことを特徴とする制御方法。
【請求項１７】
請求項９乃至１５の何れか１項に記載の手段としてコンピュータを機能させることを特徴とするコンピュータプログラム。
【請求項１８】
サーバから提供される、構造化言語で記述されたデータで指定されるコンテンツの属性に基づいて前記コンテンツの優先順位を設定した前記サーバから、前記優先順位を含む前記データの提供を受け、前記データで指定される各コンテンツの優先順位に応じた優先度のストリームを用いて前記サーバからコンテンツを取得する取得手段と、
前記取得されたコンテンツのうち、一部のコンテンツを用いた表示の制御を行う表示手段と、
前記取得されたコンテンツのうち、他のコンテンツをキャッシュする管理手段とを有することを特徴とする情報処理装置。
【請求項１９】
前記コンテンツの属性は、少なくとも、前記コンテンツのサイズ、種別、及び内容の何れかであることを特徴とする請求項１８に記載の情報処理装置。
【請求項２０】
前記サーバは、前記データで指定されるコンテンツのうち、サイズが閾値以上であるコンテンツに第１の優先順位を設定し、サイズが閾値未満であるコンテンツに前記第１の優先順位より高い第２の優先順位を設定することを特徴とする請求項１９に記載の情報処理装置。
【請求項２１】
前記サーバは、前記データで指定されるコンテンツの属性と、前記情報処理装置の環境情報とに基づいて、前記コンテンツの優先順位を設定することを特徴とする請求項１８乃至２０の何れか１項に記載の情報処理装置。
【請求項２２】
前記情報処理装置の環境情報は、少なくとも、前記情報処理装置と前記サーバとの間のアップロード／ダウンロード帯域幅、ラウンドトリップタイムの何れかを含むことを特徴とする請求項２１に記載の情報処理装置。
【請求項２３】
前記サーバは、前記情報処理装置と前記サーバとの間のラウンドトリップタイムに基づいて、前記情報処理装置と前記サーバとの間の通信環境が高速通信環境であるか低速通信環境であるかを判断し、前記通信環境が低速通信環境である場合に優先順位を低く設定するコンテンツの数を、前記通信環境が高速通信環境である場合に優先順位を低く設定するコンテンツの数より少なくすることを特徴とする請求項２２に記載の情報処理装置。
【請求項２４】
前記取得手段が同時に用いることができる前記ストリームの数は、前記情報処理装置の環境情報により制限されることを特徴とする請求項２１乃至２３の何れか１項に記載の情報処理装置。
【請求項２５】
情報処理装置が、構造化言語で記述されたデータで指定されるコンテンツの属性に基づいて前記コンテンツの優先順位を設定した前記サーバから、前記優先順位を含む前記データの提供を受ける工程と、
前記情報処理装置が、前記データで指定される各コンテンツの優先順位に応じた優先度のストリームを用いて前記サーバからコンテンツを取得する工程と、
前記情報処理装置が、前記取得されたコンテンツのうち、一部のコンテンツを用いた表示の制御を行う工程と、
前記情報処理装置が、前記取得されたコンテンツのうち、他のコンテンツをキャッシュする工程とを有することを特徴とする制御方法。
【請求項２６】
請求項１８乃至２４の何れか１項に記載の手段としてコンピュータを機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フォアグラウンド処理に支障をきたさないで、高速にデータ表示を行うデータ通信の制御技術に関する。
【背景技術】
【０００２】
フォアグラウンド処理のバックグラウンドで、以降の表示に必要な表示用データを先読みしてバックグラウンド処理を行う装置が提案されている。フォアグラウンド処理とは、画像の表示や音声の出力など、ユーザへの出力を伴う処理である。また、バックグラウンド処理とは、ユーザへの出力を伴わない処理であり、例えば、外部から取得したデータを、ユーザには出力せずに、記憶部にキャッシュしておく処理が該当する。
【０００３】
特許文献１は、画像表示部に電力が供給されていない場合や、フォアグラウンドのジョブが実行されない状態の場合に、将来表示する可能性の高いウェブページ等の表示用データを先読みして取得し、データ記憶部に書き込むデータ表示装置を開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１４１８６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１は、データ表示装置が、複数の表示用データを複数のストリームで取得する場合を想定していない。また、特許文献１は、複数段階の優先度が設定された複数のストリームがあり、かつ、複数のストリームが同時に通信を行うことが可能である環境を想定していない。したがって、特許文献１が開示する技術では、複数のストリームが含む各々のストリームに対する優先度を適切に決定することができないので、例えば以下の問題が生じる。
【０００６】
サーバが、クライアントが優先的にフォアグラウンド処理に利用するデータＡと、データＡよりも優先順位の低いバッググラウンド処理に利用するデータＢと保持しているものとする。そして、サーバが、データＡ，Ｂを、クライアントに対して、互いに異なるストリームで送信する場合を想定する。
【０００７】
データＡを送信するためのストリームをストリームＡとする。また、データＢを送信するためのストリームをストリームＢとする。そして、ストリームＢのほうがストリームＡより優先度が低いものとする。
【０００８】
ここで、サーバが、データＡの送信時に、データＢの送信を行っていると、データＢに対応する優先度の低いストリームＢの送信処理や送信停止処理などにより、データＡの送信が遅延する場合がある。つまり、データＢの送信により、本来届けられるべきデータＡのクライアントへの送信が遅延する問題が生じる可能性がある。
【０００９】
さらに、サーバからクライアントに送信すべきデータが複数存在する場合、サーバは、送信するデータや、クライアントとサーバ間のネットワーク環境の違いなどにより、データ毎の最適なストリームの優先度を設定できない可能性がある。そのため、データの適切な転送が行われず、バッググラウンド処理に利用するデータＢにより、本来なされるべきフォアグラウンド処理（データＡの表示）が遅延する．
【００１０】
本発明は、上記の課題の少なくとも一つを解決するためになされたものである。本発明は、サーバから複数の表示用データをデータ毎の最適な優先度が設定されたストリームで情報処理装置に対して提供することで、情報処理装置でのフォアグラウンド処理が適切に行われ、データ表示速度が向上する仕組みの提供を目的とする。
【課題を解決するための手段】
【００１１】
本発明の一実施形態の情報処理システムは、構造化言語で記述されたデータを提供するサーバと、前記提供されたデータに従う表示制御を行う情報処理装置とを含むシステムである。前記サーバは、前記データで指定されるコンテンツの属性に基づいて、前記コンテンツの優先順位を設定する設定手段と、前記設定された優先順位を含む前記データを前記情報処理装置に提供する提供手段とを有する。前記情報処理装置は、前記サーバから提供されるデータで指定される各コンテンツの優先順位に応じた優先度のストリームを用いて前記サーバからコンテンツを取得する取得手段と、前記取得されたコンテンツのうち、一部のコンテンツを用いた表示の制御を行う表示手段と、前記取得されたコンテンツのうち、他のコンテンツをキャッシュする管理手段とを有する。
【発明の効果】
【００１２】
サーバからクライアントに送信するべきデータが複数存在する場合、サーバは、送信するデータや、クライアントとサーバ間のネットワーク環境の違いなどにより、データ毎の最適なストリームの優先度を設定できるようになる。そのためデータの適切な転送が行われ、フォアグラウンド処理が適切に行われ、データ表示速度が向上する。
【図面の簡単な説明】
【００１３】
【図１】本実施形態のシステム構成例を示す図である。
【図２】クライアントコンピュータとサーバコンピュータのハードウェア構成例を示す図である。
【図３】ＴＣＰコネクション上で送信されるフレームを説明する図である。
【図４】対象プロトコルのデータ構造図の例である。
【図５】サーバコンピュータのソフトウェア構成の一例を示す図である。
【図６】クライアントコンピュータのソフトウェア構成の一例を示す図である。
【図７】サーバコンピュータの動作処理の例を説明する図である。
【図８】クライアントコンピュータの動作処理の例を説明する図である。
【図９】優先順位情報を含む返信データの例を示す図である。
【図１０】サーバコンピュータの動作処理の例を説明する図である。
【図１１】サーバコンピュータとクライアントコンピュータとの間の通信処理の例を説明する図である。
【図１２】サーバコンピュータの動作処理の例を説明する図である。
【発明を実施するための形態】
【００１４】
本実施形態の説明の前提として、説明に用いる用語および、本実施形態が対象とする通信プロトコルについて定義する。本実施形態が対象とする通信プロトコルの例としては、ＳＰＤＹ（登録商標）プロトコルが挙げられる。
【００１５】
ソケットとは、ＴＣＰレイヤにおいて、通信を識別、分類するための表記である。多くの場合、ＴＣＰレイヤは、ＩＰプロトコルを下位レイヤとして用いるのが一般的である。ソケットは、例えばＩＰアドレスとポート番号の組を含む。
【００１６】
ＴＣＰコネクションとは、ＴＣＰレイヤにおける一つの通信路を意味する。ＴＣＰコネクションは、具体的には受信側ソケットと送信側ソケットの組のことである。ストリームとは、対象とする上位通信プロトコルにおける論理チャネルのことである。フレームとは、実際にデータを送信する際に、データを細切れにした最少単位のブロックのことである。
【００１７】
ここで、本実施形態が対象とする通信プロトコル（以下、「対象プロトコル」と記述）について説明する。ただし、対象プロトコルとの透過性を維持する中間プロトコル（ＴＬＳ、ＳＳＬ等）が存在してもよい。対象プロトコルは、ＴＣＰコネクション上をフレームと呼ばれるデータを送受信することで通信を行う。
【００１８】
図３は、ＴＣＰコネクション上で送信されるフレームを説明する図である。
フレーム３０１は、ＴＣＰコネクション３００上で送信先に送信される。フレーム３０１は、ヘッダにフレームサイズを持つ。
【００１９】
図４は、対象プロトコルのデータ構造図の例である。
対象プロトコルは、該当する一つのＴＣＰコネクション３００上における通信をセッション４００として管理する。一つのセッション４００上には一つのコントロールフレーム４０１がある。セッション４００に関する通信は、コントロールフレーム４０１を用いて行われる。
【００２０】
対象プロトコルは、コントロールフレーム４０１以外に、任意の数のデータストリーム４０２を保持してもよい。なお、本発明は、対象プロトコルを特定のプロトコルに限定するものではない。図４中に示す構造のプロトコルであれば、ＯＳＩ参照モデルの第７層（アプリケーション層）、第６層（プレゼンテーション層）、第５層（セッション層）などにおいても本発明を適用できる。なお、本明細書において、データストリームとストリームとは同義である。
【００２１】
実際の上位アプリケーションおよび上位プロトコルのデータ通信は、図４中に示すデータストリーム４０２を用いて行われる。データストリーム４０２には、それぞれ優先度を設定することができる。説明の便宜上、優先度の段階数は、最も高い０から最も低い７の８段階とするが、実際には８段階に限定されない。優先度の段階を任意の数としてもよい。
【００２２】
本実施形態において、クライアントコンピュータ１０３は、サーバコンピュータ１０２に対してオブジェクトの取得を要求する。クライアントコンピュータ１０３は、サーバコンピュータ１０２がオブジェクトに対して設定している優先順位に応じて、当該オブジェクトを取得するためのデータストリーム４０２に優先度を設定する。データストリームは、それぞれを特定できるストリームＩＤを持つ。例えば、クライアントコンピュータ１０３が、優先順位が高いオブジェクトを取得しにいくときは、図４中のストリーム１を用い、クライアントコンピュータ１０３が優先順位が低いオブジェクトを取得しにいくときはストリーム２を用いる。
【００２３】
また、本実施形態において、データストリーム４０２間に依存関係を持たせることができる。データストリーム４０２に親ストリームがあれば、その親ストリームのストリームＩＤ（図４中のＡｓｓｏｃｉａｔｅｄ  Ｓｔｒｅａｍ  ＩＤ）をデータストリーム４０２に設定することによって依存関係を表現できる。データストリーム４０２に親ストリームがなければ、親ストリームのストリームＩＤに０番を設定するか、または親ストリームのストリームＩＤを設定しない。データストリームに依存関係を持たせることで、サーバは、クライアントが要求したデータを返信する以外に、クライアントが要求したデータに関連するデータをプッシュ送信すること等ができる。図４を参照して説明した対象プロトコルは、サーバ、クライアントの主従関係は無く、対等に通信を行う。
【００２４】
次に、対象プロトコルの簡単な通信手順について説明する。具体的には、通信開始から、何らかのデータ通信を行い、通信終了を行うまでの手順を説明する。
【００２５】
まず、ＴＣＰコネクションが確立された場合を想定する。この時点で、サーバとクライアントとは、双方向の通信チャネルを保持している。次に、コントロールフレーム４０１を用いてデータストリーム４０２の作成を行う。サーバ側からでもクライアント側からでもデータストリーム４０２を作成することができる。
【００２６】
クライアントがサーバからＷｅｂのコンテンツを取得する処理を例にとって説明する。クライアントは、Ｗｅｂのコンテンツを取得するために、サーバに対してＨＴＴＰプロトコルのＧＥＴコマンドを送る必要がある。そのためクライアントはコンテンツストリームを用いてデータストリーム４０２の作成要求を行う。サーバが作成要求を受け入れる場合はコントロールフレーム４０１を通して受け入れ許可を応答する。サーバは、その応答中にコンテンツに対応するオブジェクトの優先順位を設定する。クライアントがその優先順位に基づいて、優先順位と依存関係が設定されたデータストリームを作成する。データストリーム４０２が作成された後、サーバとクライアントとは、作成されたデータストリーム４０２を利用してＨＴＴＰプロトコルのＧＥＴ要求／返信を行うことができる。
【００２７】
クライアント側が必要なデータをサーバから受信後、ストリームを閉じる必要がある。この時、クライアント側、サーバ側のどちらの側からでもストリームを閉じることができる。その後、ストリームの終了要求を受けた側は送信するデータがなくなり次第、ストリームの終了要求を出し、ストリームを終了する。また、例えばクライアント側が意図的が終了要求を出さないことで片方向通信を行うこともできる。
【００２８】
また、サーバ側からデータストリーム４０２を作成する例として、クライアント側からＧＥＴ要求を受けたサーバが、動的にコンテンツをクライアントにプッシュするために新たなデータストリーム４０２を作成することが考えられる。この例から分かるように、対象プロトコルの通信において、ストリームの数は時間に応じて動的に変動する。
【００２９】
図１は、本実施形態のシステム構成例を示す図である。
図１に示す情報処理システムは、ＬＡＮ２０７およびインターネット１０１を介して接続されたクライアントコンピュータ１０３とサーバコンピュータ１０２とを備える。本実施形態の制御方法は、上記情報処理システムが備える各装置の機能によって実現される。また本実施形態のコンピュータプログラムは、上記制御方法をコンピュータに実行させる。本発明を実現するにあたって、クライアントコンピュータ１０３およびサーバコンピュータ１０２は、図４を参照して説明した対象プロトコルを管理する機構を備える。以下では、サーバコンピュータ１０２とクライアントコンピュータ１０３とで本発明を実現する例を示す。しかし、本発明は、サーバコンピュータ１０２またはクライアントコンピュータ１０３のいずれか一方だけでも実現できる。
【００３０】
サーバコンピュータ１０２は、クライアントコンピュータ１０３からコンテンツの取得リクエストを受け、このリクエストに対応するコンテンツが含むオブジェクトをクライアントコンピュータ１０３に送信するサーバである。サーバコンピュータ１０２は、コンテンツの取得リクエストを受けると、まず、対応するコンテンツが含むオブジェクトに優先順位を設定し、オブジェクトに対する優先順位に関する優先順位情報を含む返信データをクライアントコンピュータ１０３に提供する。
【００３１】
返信データは、コンテンツの取得リクエストに対応するオブジェクトをクライアントコンピュータ１０３に取得させるための情報を含むデータである。この例では、サーバコンピュータ１０２は、構造化言語（例えば、ＨＴＭＬ）で記述されたデータを返信データとしてクライアントコンピュータ１０３に提供する。
【００３２】
クライアントコンピュータ１０３は、サーバコンピュータ１０２から提供されたデータに従う表示制御を行う情報処理装置である。具体的には、クライアントコンピュータ１０３は、サーバコンピュータ１０２から提供された返信データに含まれる優先順位情報に基づいて、オブジェクトをサーバコンピュータ１０２から取得するために用いるデータストリームの優先度を設定する。クライアントコンピュータ１０３は、優先度が設定されたデータストリームで、オブジェクトをサーバコンピュータ１０２から取得することを通じて、所望のコンテンツを取得する。クライアントコンピュータ１０３は、取得されたコンテンツのうち、一部のコンテンツを用いた表示の制御を行い、他のコンテンツをキャッシュする。具体的には、クライアントコンピュータ１０３は、現在の表示に必要なコンテンツを表示し、現在の表示以降の表示に必要なコンテンツを記憶手段にキャッシュする。クライアントコンピュータ１０３としての情報処理装置は、ウェブブラウザといったプログラムを備える装置であって、例えば、ノートＰＣ、タブレット、携帯電話、プリンターや複合機などの画像形成装置といった装置が挙げられる。
【００３３】
ＬＡＮ２０７は、クライアントコンピュータ１０３とサーバコンピュータ１０２との間で情報をやり取りするための通信回線である。インターネット１０１は、ファイアウォールを越えて上述の各装置間で情報をやり取りするための通信回線である。インターネット１０１により、サーバコンピュータ１０２とクライアントコンピュータ１０３が属するＬＡＮ２０７とは、ファイアウォールを越えて通信が可能である。ＬＡＮ２０７、インターネット１０１は、例えば、ＴＣＰ／ＩＰプロトコルなどをサポートする通信回線網であり有線・無線は問わない。図１において、サーバコンピュータ１０２は、１台のサーバとして示されているが複数台のサーバコンピュータで構成されていても構わない。また、サーバコンピュータ１０２は、仮想ＰＣとして構成されていても構わない。
【００３４】
なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器から成るシステムであっても、本発明を適用できることは言うまでもない。また、特に断らない限り、本発明の機能が実行されるのであれば、インターネット以外のネットワーク（例えばＷＡＮ）を介して接続が為され処理が行われるシステムであっても本発明を適用できることは言うまでもない。
【００３５】
図２は、クライアントコンピュータとサーバコンピュータのハードウェア構成例を示す図である。
図２中に示すコンピュータ２００は、クライアントコンピュータ１０３またはサーバコンピュータ１０２に対応する。
【００３６】
コンピュータ２００は、ＲＯＭ２０２が有するプログラム用ＲＯＭ、あるいは外部記憶装置２０５に記憶された文書処理プログラム等に基づいて、図形、イメージ、文字、表（表計算等を含む）等が混在した処理を実行するＣＰＵ２０１を備える。ＣＰＵ２０１は、システムバス２０４に接続される各デバイスを統括的に制御する。コンピュータ２００が、入出力装置を備えていてもよい。
【００３７】
また、ＲＯＭ２０２のプログラム用ＲＯＭあるいは外部記憶装置２０５には、ＣＰＵ２０１の制御プログラムであるオペレーションシステム等が記憶されている。また、ＲＯＭ２０２のデータ用ＲＯＭあるいは外部記憶装置２０５には各種データが記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ネットワークＩ／Ｆ制御部２０６は、ＬＡＮ２０７とのデータの送受信を制御する。
【００３８】
ＣＰＵ２０１が、外部記憶装置２０５に記憶されているプログラムに基づき処理を実行することによって、図５に示すサーバコンピュータ１０２のソフトウェア構成及び図７、図８、図１０、図１２に示すフローチャートの各ステップの処理が実現される。
【００３９】
図５は、サーバコンピュータのソフトウェア構成の一例を示す図である。
サーバコンピュータ１０２は、通信Ｉ／Ｆ部５００、通信制御部５０１、Ｗｅｂサーバ部５０２、コンテンツ情報保持部５０３、セッション／ストリーム管理部５０４を備える。また、サーバコンピュータ１０２は、クライアント情報管理部５０５、優先順位情報生成部５０６、コンテンツ情報管理部５０７を備える。
【００４０】
通信Ｉ／Ｆ部５００は、ＴＣＰレイヤまでの管理機構であるＲＦＣ７９３（ＴＲＡＮＳＭＩＳＳＩＯＮ  ＣＯＮＴＲＯＬ  ＰＲＯＴＯＣＯＬ）を満たし、利用可能なＡＰＩが提供されていればよい。通信Ｉ／Ｆ部５００は、オペレーティングシステムがＴＣＰレイヤを操作するためのＡＰＩを提供する。
【００４１】
通信制御部５０１は、対象プロトコルや、ＳＳＬ、ＴＬＳレイヤを管理する。対象プロトコルとしては、ＴＣＰが利用される。対象プロトコルは、ＳＳＬ、ＴＬＳを利用する必要はないが、セキュリティやファイアウォールの問題からＳＳＬ、ＴＬＳを利用する場合が多い。ＳＳＬ、ＴＬＳは、規格（ＲＦＣ２２４６、ＲＦＣ４３４６）に準拠した実施になっていれば、どのような実施方法でも構わない。
【００４２】
通信制御部５０１が、ＳＳＬ、ＴＬＳ以外の中間プロトコルであっても構わない。具体的には、通信制御部５０１は、上位レイヤアプリケーションであるＷｅｂサーバ部５０２へのインターフェースを提供する。また、通信制御部５０１は、下位レイヤの通信Ｉ／Ｆ部５００を介したデータの送受信を管理する。通信制御部５０１は、全ての対象プロトコルの処理を行わず、セッション／ストリーム管理部５０４に実際の処理を委譲する。
【００４３】
Ｗｅｂサーバ部５０２は、ＨＴＴＰプロトコルによって、クライアントコンピュータ１０３が備えるＷｅｂブラウザに、オブジェクト（ＨＴＭＬやスクリプト、画像、スタイルシートなど）の表示情報を配信する。本実施例では、サーバコンピュータ１０２が、Ｗｅｂサーバ部５０２を備えるが、対象プロトコルが適用できる通信システムにおいては、Ｗｅｂサービスやその他のＷｅｂサーバ以外の通信サービスを適用することができる。
【００４４】
また、Ｗｅｂサーバ部５０２は、コンテンツ取得リクエストの送信元であるクライアントコンピュータ１０３に対する返信データに、優先順位情報生成部５０６によって生成された優先順位情報を設定して、クライアントコンピュータ１０３に対して提供する。
【００４５】
コンテンツ情報保持部５０３は、オブジェクト（ＨＴＭＬ、スクリプト、画像、スタイルシートなど）の表示情報を保持する。Ｗｅｂサーバ部５０２は、コンテンツ情報保持部５０３が保持するオブジェクトをクライアントコンピュータ１０３のＷｅｂブラウザに送信する。クライアントコンピュータ１０３がサーバコンピュータ１０２に対してリクエストを行うコンテンツは、複数のオブジェクトを含む。Ｗｅｂサーバ部５０２がクライアントコンピュータ１０３のＷｅｂブラウザに送信するデータには、Ｗｅｂサーバ部５０２において動的に生成されるデータもある。また、Ｗｅｂサーバ部５０２が、データの一部を外部記憶装置（不図示）であるデータベースなどに保存する場合もある。
【００４６】
セッション／ストリーム管理部５０４は、対象プロトコルのセッションが保持するストリームの情報を管理情報として管理する。管理情報には、セッションに関連する情報として、ストリームの管理ＩＤ、ストリームの優先度、ストリームに関連する関連ストリームＩＤ情報、状態情報、送受信バッファ情報などが含まれる。
【００４７】
クライアント情報管理部５０５は、クライアントコンピュータ１０３の環境情報であるクライアント情報を管理する。クライアント情報は、セッション／ストリーム管理部５０４が保持するセッションとストリームの通信状態に関する情報を含む。クライアント情報は、後述する優先順位情報の生成に用いられる。具体的には、クライアント情報は、対象プロトコルにおけるサーバコンピュータ１０２とクライアントコンピュータ１０３間の以下の取得値を含む。
・Upload Bandwidth（アップロード帯域幅)
・Download Bandwidth（ダウンロード帯域幅）
・Round Trip Time（ラウンドトリップタイム）
・Max Concurrent Streams（最大同時接続ストリーム数)
・TCP CWND size（輻輳ウインドウサイズ)
・Download retrans rate（再送バイト数／送信済みバイト数）
・Initial window size（初期ウインドウサイズ）
【００４８】
優先順位情報生成部５０６は、クライアント情報管理部５０５が管理するクライアント情報、またはコンテンツ情報管理部５０７が管理するコンテンツ情報に基づいて、優先順位情報を生成する。例えば、優先順位情報生成部５０６は、返信データで指定されるコンテンツ（オブジェクト）の属性に基づいて、コンテンツ（オブジェクト）の優先順位を決定し、決定した優先順位に関する優先順位情報を生成する。優先順位情報は、コンテンツ取得リクエストを行ったクライアントコンピュータ１０３に送信するコンテンツに対応するオブジェクトの、サーバコンピュータ１０２からの取得に関する優先順位の情報である。
【００４９】
コンテンツ情報管理部５０７は、コンテンツ情報を管理する。コンテンツ情報は、クライアントコンピュータ１０３への送信対象となるコンテンツに関する情報である。コンテンツは、複数のオブジェクトを含んでいる。また、オブジェクトとしては、スクリプト、画像、スタイルシートなどがある。
【００５０】
具体的には、コンテンツ情報は、コンテンツ属性として、少なくとも以下の項目を含む。
・オブジェクトのサイズ
・オブジェクト種別（スクリプト、スタイルシート、ＨＴＭＬ、画像、背景画像など）
・階層、ドメイン等のオブジェクトの内容（同一ページ、ネクストページ、リンク先、同一ドメイン、別ドメイン）
【００５１】
図６は、クライアントコンピュータのソフトウェア構成の一例を示す図である。
通信Ｉ／Ｆ部６００は、ＴＣＰレイヤまでの管理機構であるＲＦＣ７９３（ＴＲＡＮＳＭＩＳＳＩＯＮ  ＣＯＮＴＲＯＬ  ＰＲＯＴＯＣＯＬ）を満たし、利用可能なＡＰＩが提供されていればよい。また、通信Ｉ／Ｆ部６００は、他のプロトコルを含む通信制御を行うことが可能である。通信Ｉ／Ｆ部６００は、オペレーティングシステムがＴＣＰレイヤを操作するためのＡＰＩを提供する。
【００５２】
クライアント通信制御部６０１は、対象プロトコルや、ＳＳＬ、ＴＬＳレイヤを管理する。ＳＳＬ、ＴＬＳは、規格（ＲＦＣ２２４６、ＲＦＣ４３４６）に準拠した実施になっていればよい。また、クライアント通信制御部６０１が、ＳＳＬ、ＴＬＳ以外の中間プロトコルを管理するようにしてもよい。具体的には、クライアント通信制御部６０１は、上位レイヤアプリケーションであるＷｅｂクライアント部６０２へのインターフェースを提供する。また、クライアント通信制御部６０１は、下位レイヤの通信Ｉ／Ｆ部６００を介したデータの送受信を管理する。クライアント通信制御部６０１は、全ての対象プロトコルの処理を行わず、セッション／ストリーム管理部６０３に実際の処理を委譲する。
【００５３】
Ｗｅｂクライアント部６０２は、オブジェクト（ＨＴＭＬやスクリプト、画像、スタイルシートなど）の表示情報を、ＨＴＴＰプロトコルによってサーバコンピュータ１０２のＷｅｂサーバ部５０２から取得する。Ｗｅｂクライアント部６０２は、Ｗｅｂブラウザの機能を備える。なお、クライアントコンピュータ１０３は、対象プロトコルが適用できる通信システムにおいては、Ｗｅｂサービスクライアントやその他のＷｅｂ以外の通信サービスのクライアントアプリケーションをＷｅｂクライアント部６０２として適用することもできる。
【００５４】
セッション／ストリーム管理部６０３は、対象プロトコルのセッションおよびストリームを作成する。また、セッション／ストリーム管理部６０３は、作成したストリームに関する情報を管理情報として管理する。この管理情報には、セッションに関連する情報として、ストリームの管理ＩＤ、ストリームの優先度、ストリームに関連する関連ストリームＩＤ情報、状態情報、送受信バッファ情報などが含まれる。
【００５５】
優先順位管理部６０４は、Ｗｅｂクライアント部６０２がサーバコンピュータ１０２から受信した返信データに含まれる優先順位情報に基づいて、サーバコンピュータ１０２からオブジェクトを取得するためのストリームに設定する優先度を決定する。Ｗｅｂクライアント部６０２は、クライアント通信制御部６０１に、決定された優先度を有するセッションおよびストリームを作成させ、作成されたセッションおよびストリームを用いて、サーバコンピュータ１０２からオブジェクトを取得する。
【００５６】
具体的には、Ｗｅｂクライアント部６０２が、サーバコンピュータ１０２のＷｅｂサーバ部５０２から受信した返信データのＨＴＭＬに設定されている、オブジェクト毎の優先順位情報を取得する。そして、優先順位管理部６０４が、上記取得された優先順位情報に基づいて、適切なストリームの優先度を決定する。そして、クライアント通信制御部６０１が、送信データのＨＴＭＬに関連するオブジェクトを取得するための、上記決定された優先度が設定されたストリームを作成する。クライアント通信制御部６０１は、ストリームの作成時に、サーバコンピュータ１０２が設定したオブジェクト毎の優先順位と、オブジェクトを取得するためのストリームの優先度とを関連付ける。つまり、オブジェクトの優先順位が高いほど、そのオブジェクトを取得するためのストリームの優先度として高い優先度を設定する。
【００５７】
図７は、サーバコンピュータの動作処理の例を説明するフローチャートである。
図７では、サーバコンピュータ１０２とクライアントコンピュータ１０３との間での、対象プロトコルを用いたデータの送受信の流れを例にとって説明する。サーバコンピュータ１０２のＷｅｂサーバ部５０２が、クライアントコンピュータ１０３からコンテンツの取得リクエストを受信すると、Ｗｅｂサーバ部５０２が、受信したコンテンツの取得リクエストに応じた返信データを作成する（ステップＳ７００）。この例では、返信データは、構造化言語（例えばＨＴＭＬ）で記述されており、返信データに含まれるタグの中に、当初は、リクエストされたコンテンツを構成するオブジェクト毎のデフォルトの優先順位を含む優先順位情報が設定されている。
【００５８】
次に、Ｗｅｂサーバ部５０２が、コンテンツ情報管理部５０７が管理するコンテンツ情報に基づいて、返信データに含まれる優先順位情報が示す優先順位の変更が必要であるかを判断する（ステップＳ７０１）。Ｗｅｂサーバ部５０２は、例えば、以下の（１）乃至（４）のいずれかの基準に基づいて、優先順位の変更が必要であるかを判断する。
（１）オブジェクトのサイズが規定値（閾値）を越えていないか
（２）オブジェクト種別（スクリプト、スタイルシート、ＨＴＭＬ、画像、背景画像など）
（３）リンクの階層（同一ページ、ネクストページ、リンク先）が規定値を越えていないか
（４）ドメイン（同一ドメイン、別ドメイン）が規定値に含まれるか
【００５９】
例えば、オブジェクトのサイズが大きいものがあれば、そのオブジェクトの優先順位を低くしなければならない。Ｗｅｂサーバ部５０２は、サイズが閾値以上であるオブジェクトに第１の優先順位を設定し、サイズが閾値未満であるコンテンツに第１の優先順位より高い第２の優先順位を設定する。したがって、例えば閾値を越えるサイズのオブジェクトがある場合、Ｗｅｂサーバ部５０２は、優先順位の変更が必要であると判断する。
【００６０】
また、オブジェクトが、例えばＨＴＭＬである場合、Ｗｅｂサーバ部５０２は、クライアントコンピュータ１０３に早く取得させるために、ＨＴＭＬのオブジェクトに対する優先順位を高い優先順位に変更する。また、オブジェクトが画像である場合、Ｗｅｂサーバ部５０２は、優先順位を低く設定してもよい。また、Ｗｅｂサーバ部５０２は、画像の中でも例えばロゴなど重要度の高いオブジェクトに対しては優先順位を高くし、サムネイルに対しては低い優先順位を設定してもよい。また、例えば、先読み対象のオブジェクトについて、リンクの階層が１階層である場合は、優先順位を高く、２階層目からは優先順位を低く設定するようにしてもよい。
【００６１】
Ｗｅｂサーバ部５０２が、優先順位の変更が必要でないと判断した場合、Ｗｅｂサーバ部５０２は、デフォルトの優先順位情報のままにする。この場合には、ステップＳ７０７、Ｓ７０８の処理が省略される。Ｗｅｂサーバ部５０２が、優先順位の変更が必要であると判断した場合は、ステップＳ７０２に進む。そして、Ｗｅｂサーバ部５０２が、オブジェクト毎の優先順位の設定が必要であるかを判断する（ステップＳ７０２）。
【００６２】
具体的には、Ｗｅｂサーバ部５０２は、リクエストされたコンテンツに含まれるオブジェクトの優先順位が、全て同一であるかを判断する。オブジェクトの優先順位が全て同一である場合、Ｗｅｂサーバ部５０２が、オブジェクト毎の優先順位の設定が必要でないと判断して、ステップＳ７０３に進む。そして、優先順位情報生成部５０６が、コンテンツ情報管理部５０７が管理するコンテンツ情報に基づいて、返信データに含まれるオブジェクト全体に共通する優先順位を算出して（ステップＳ７０３）、ステップＳ７０７に進む。
【００６３】
優先順位が異なるオブジェクトがある場合、Ｗｅｂサーバ部５０２が、オブジェクト毎の優先順位の設定が必要であると判断して、ステップＳ７０４に進む。続いて、返信データにＰｕｓｈデータが含まれるかを判断する（ステップＳ７０４）。Ｐｕｓｈデータは、サーバコンピュータ１０２から自律的にクライアントコンピュータ１０３に送信するデータである。ステップＳ７０４の判断処理を行うのは、継続的にサーバコンピュータ１０２からクライアントコンピュータ１０３にＰｕｓｈするデータがある場合は、ストリームをつないだままにするために、専用のストリームの作成が必要になるからである。
【００６４】
返信データにＰｕｓｈデータが含まれる場合、優先順位情報生成部５０６は、コンテンツ情報管理部５０７が管理するコンテンツ情報に基づいて、Ｐｕｓｈデータ毎の優先順位を決定して（ステップＳ７０６）、ステップＳ７０７に進む。返信データにＰｕｓｈデータが含まれない場合、優先順位情報生成部５０６は、コンテンツ情報管理部５０７が管理するコンテンツ情報に基づいて、オブジェクト毎の優先順位を決定して（ステップＳ７０５）、ステップＳ７０７に進む。
【００６５】
ステップＳ７０７において、Ｗｅｂサーバ部５０２が、優先順位情報生成部５０６によって決定された優先順位に基づいて、返信データに設定する優先順位情報を作成する。そして、Ｗｅｂサーバ部５０２が、返信データの優先順位情報を、デフォルト値からステップＳ７０７で作成した優先順位情報に更新する（ステップＳ７０８）。
【００６６】
図９は、優先順位情報を含む返信データの例を示す図である。
＜ｂｏｄｙ＞内には、フォアグラウンドで処理されるオブジェクトの情報が設定される。また、＜ｌｉｎｋ  ｒｅｌ＞タグには、バックグラウンドで処理して取得されるべきオブジェクトの情報が設定される。つまり、＜ｂｏｄｙ＞内に設定されるオブジェクトの優先順位は高く、＜ｌｉｎｋ  ｒｅｌ＞タグに設定されるオブジェクトの優先順位は低いことを意味する。
【００６７】
図７に戻って、Ｗｅｂサーバ部５０２が、未処理リクエストがあるかを判断する（ステップＳ７０９）。未処理リクエストがない場合は処理を終了する。例えば、Ｗｅｂサーバ部５０２は、セッションやストリームの終了処理を行う。未処理リクエストがある場合は、ステップＳ７００に戻る。
【００６８】
図７を参照して説明した動作処理により、サーバコンピュータ１０２は、クライアントコンピュータ１０３が最適なストリームを作成できるための優先順位情報をＨＴＭＬの返信データに含めてクライアントコンピュータ１０３に提供することができる。
【００６９】
図８は、クライアントコンピュータの動作処理の例を説明するフローチャートである。  まず、Ｗｅｂクライアント部６０２が、返信データを受信する（ステップＳ８０１）。この例では、返信データは、ＨＴＭＬデータであるものとする。次に、Ｗｅｂクライアント部６０２が、受信した返信データが、送信データすなわちサーバコンピュータ１０２へのコンテンツ取得リクエストに対応する返信データかを判断する（ステップＳ８０２）。返信データが送信データに対応する返信データでない場合は、受信処理を継続する。返信データが送信データに対応する返信データである場合、Ｗｅｂクライアント部６０２が、返信データを解析する（ステップＳ８０３）。
【００７０】
次に、Ｗｅｂクライアント部６０２が、上記ステップＳ８０３での解析結果に基づいて、データ取得にストリームの作成が必要であるかを判断する（ステップＳ８０４）。具体的には、Ｗｅｂクライアント部６０２が、返信データに含まれる、取得対象のオブジェクトに関する情報に基づいて、当該オブジェクトがページの作成に必要であるかを判断する。オブジェクトがページの作成に必要でない場合は、そのオブジェクトを取得する必要がない。したがって、この場合は、Ｗｅｂクライアント部６０２が、データ取得にストリームの作成が必要でないと判断して、ステップＳ８０９に進む。オブジェクトがページの作成に必要である場合、Ｗｅｂクライアント部６０２が、データ取得にストリームの作成が必要であると判断して、ステップＳ８０５に進む。
【００７１】
ステップＳ８０５において、Ｗｅｂクライアント部６０２が、返信データにサーバコンピュータ１０２が決定した優先順位が設定されているかを判断する（ステップＳ８０５）。返信データにサーバコンピュータ１０２が決定した優先順位が設定されていない場合は、ステップＳ８０７に進む。そして、Ｗｅｂクライアント部６０２は、セッション／ストリーム管理部６０３を通じて、デフォルトの優先度が設定されたストリームを作成し（ステップＳ８０７）、ステップＳ８０８に進む。
【００７２】
返信データにサーバコンピュータ１０２が決定した優先順位が設定されている場合は、Ｗｅｂクライアント部６０２が、セッション／ストリーム管理部６０３を通じて、返信データに設定された優先順位に対応する優先度が設定されたストリームを作成する。
【００７３】
以下に、返信データに設定された優先順位に基づくストリームの生成について説明する。Ｗｅｂクライアント部６０２は、Ｗｅｂサーバ部５０２から，図９で示されるＨＴＭＬデータを返信データとして受信したものとする。
【００７４】
Ｗｅｂクライアント部６０２は、＜ｌｉｎｋ  ｒｅｌ＞タグで設定したオブジェクト毎の優先順位情報を取得する。ｌｉｎｋ  ｒｅｌ＝”ｐｒｅｆｅｔｃｈ”およびｌｉｎｋ
ｒｅｌ＝”ｎｅｘｔ”で指定された、ｐｈｏｔｏ．ｊｐｇおよび２ｎｄｐａｇｅ．ｈｔｍｌは、優先順位が低い。ｌｉｎｋ  ｒｅｌ＝”ｐｒｅｆｅｔｃｈ”およびｌｉｎｋ  ｒｅｌ＝”ｎｅｘｔ”で指定されたオブジェクトは、バックグラウンドで処理して取得するオブジェクトを示す。つまり、このオブジェクトは、＜ｂｏｄｙ＞内で示されたフォアグラウンドで処理されるべき通常優先順位のオブジェクトを取得した後に取得されるべきオブジェクトである。本実施例のＨＴＭＬの＜ｌｉｎｋ  ｒｅｌ＞タグは一例であり、これに限定するものではない。
【００７５】
ＨＴＭＬデータ内の優先順位情報に基づいて、適切なストリームの優先度を優先順位管理部６０４が決定する。Ｗｅｂクライアント部６０２が、クライアント通信制御部６０１に指示して、ＨＴＭＬデータに対応するオブジェクトを取得するためのストリームを作成させる。ストリーム作成時には、ＨＴＭＬデータ内の優先情報と適切なストリームの優先情報とを関連付ける。
【００７６】
図９に示す例では、ｐｈｏｔｏ．ｊｐｇおよび２ｎｄｐａｇｅ．ｈｔｍｌは、ｌｏｇｏ．ｊｐｇよりも優先順位が低い。したがって、Ｗｅｂクライアント部６０２は、ｐｈｏｔｏ．ｊｐｇおよび２ｎｄｐａｇｅ．ｈｔｍｌをサーバから取得する時に、データストリーム４０２の作成時の優先度として、最も低い７を指定する。
【００７７】
また、ｌｏｇｏ．ｊｐｇについては、デフォルト値である４や、最も優先度が高い０を指定してデータストリーム４０２を作成する。データストリームの優先度の数は、説明の便宜上、最も高い０から最も低い７の８段階とするが、実際にはこの８段階でなく、任意の優先度の数であってもよい。このように、サーバコンピュータ１０２が指定したオブジェクトの優先順位に応じた優先度が設定されたデータストリームを用いて、オブジェクトの取得が行われる。
【００７８】
本実施例は、例えば、Ｗｅｂを使ったメールシステムにおいて好適である。クライアントコンピュータ１０３のＷｅｂブラウザにおいて、サーバ上のメールリストを表示した場合、サーバコンピュータ１０２は、未読メールのリンク先をＨＴＭＬのｌｉｎｋ  ｒｅｌ＝”ｎｅｘｔ”で指定する。
【００７９】
クライアントコンピュータ１０３のＷｅｂクライアント部６０２は、本文（＜Ｂｏｄｙ＞）であるメールリストの取得をするためのデータストリーム４０２を、デフォルト値の優先度である４を指定して作成する。これに対して、Ｗｅｂクライアント部６０２は、サーバコンピュータ１０２からｌｉｎｋ  ｒｅｌ＝”ｎｅｘｔ”で指定された未読メールの本文を取得するためのデータストリーム４０２については、優先度の低い５を指定して作成する。また、添付ファイルなどが含まれる既定サイズ以上の未読メールについては、サーバコンピュータ１０２からｌｉｎｋ  ｒｅｌ＝”ｐｒｅｆｅｔｃｈ”で指定される。したがって、Ｗｅｂクライアント部６０２は、当該未読メールを取得するためのデータストリーム４０２については、優先度を６に指定して取得する。
【００８０】
図８に戻って、Ｗｅｂクライアント部６０２が、ステップＳ８０６またはＳ８０７で作成したストリームを用いて、ステップＳ８０３で解析したＨＴＭＬのオブジェクトをサーバコンピュータ１０２から受信する（ステップＳ８０８）。
【００８１】
次に、Ｗｅｂクライアント部６０２は、受信したデータ（オブジェクト）の表示を行う（ステップＳ８０９）。ステップＳ８０９においては、Ｗｅｂクライアント部６０２は、さらに、優先度の低いストリームで取得した先読み返信データをキャッシュに保存する。キャッシュに保存したデータについては、ユーザの表示指示に対して高速に表示することが可能となる。
【００８２】
次に、Ｗｅｂクライアント部６０２が、ステップＳ８０３で解析したＨＴＭＬのオブジェクトの未受信データがあるかを判断する（ステップＳ８１０）。未受信データがある場合は、ステップＳ８０１に戻って、Ｗｅｂクライアント部６０２が、サーバコンピュータ１０２から未受信データを受信する。未受信データがない場合は、処理を終了する。
【００８３】
以上により、クライアントコンピュータ１０３は、サーバコンピュータ１０２が設定した優先順位に基づいて、コンテンツに含まれるオブジェクトを取得するための最適なストリームを作成することができる。
【００８４】
上記の説明により、サーバコンピュータ１０２からクライアントコンピュータ１０３に対して送信するべきデータが複数存在する場合、サーバコンピュータ１０２が、以下の処理を実行できる。サーバコンピュータ１０２は、送信するオブジェクトの属性に基づいて、オブジェクトの取得に用いられる最適なストリームの優先度を設定できるようになる。その結果、データの適切な転送が行われ、フォアグラウンド処理が適切に行われて、データ表示速度が向上する。
【００８５】
（実施例２）
実施例２では、サーバコンピュータ１０２が、サーバコンピュータ１０２とクライアントコンピュータ１０３との間の通信状態に基づいて、優先順位制御を行う。
【００８６】
図１０は、実施例２におけるサーバコンピュータの動作処理の例を説明するフローチャートである。
まず、Ｗｅｂサーバ部５０２が、クライアントコンピュータ１０３からの受信データ待ち処理を行う（ステップＳ１０００）。続いて、Ｗｅｂサーバ部５０２が、受信データに対応する返信データの生成処理が必要かを判断する（ステップＳ１００１）。返信データの生成処理が必要でない場合は、ステップＳ１０００に戻る。返信データの生成処理が必要である場合は、ステップＳ１００２に進む。
【００８７】
次に、Ｗｅｂサーバ部５０２が、クライアント情報管理部５０５から、サーバコンピュータ１０２とクライアントコンピュータ１０３との間の通信状態をクライアント情報として取得する（ステップＳ１００２）。
【００８８】
クライアント情報管理部５０５は、クライアント情報として、クライアントコンピュータ１０３との通信におけるセッションとストリーム情報を管理している。通信時に取得できるセッションとストリームの情報は、対象プロトコルにおけるサーバコンピュータ１０２とクライアントコンピュータ１０３間の以下の取得値を含む。
・Upload Bandwidth（アップロード帯域幅）
・Download Bandwidth（ダウンロード帯域幅）
・Round Trip Time（ラウンドトリップタイム）
・Max Concurrent Streams（最大同時接続ストリーム数)
・TCP CWND size（輻輳ウインドウサイズ）
・Download retrans rate（再送バイト数／送信済みバイト数）
・Initial window size（初期ウインドウサイズ）
【００８９】
次に、Ｗｅｂサーバ部５０２が、返信データの生成処理を行う（ステップＳ１００３）。具体的には、Ｗｅｂサーバ部５０２が、コンテンツ情報保持部５０３が保持するコンテンツ情報に基づいて、クライアントコンピュータ１０３へ返信する返信データを生成する。
【００９０】
次に、Ｗｅｂサーバ部５０２が、オブジェクトの優先順位変更が必要であるかを判断する（ステップＳ１００４）。オブジェクトの優先順位変更が必要でない場合は、ステップＳ１００６に進み、Ｗｅｂサーバ部５０２が、例えばデフォルトの優先順位を設定した返信データを生成する。Ｗｅｂサーバ部５０２が、優先順位を設定せずに返信データを生成するようにしてもよい。
【００９１】
オブジェクトの優先順位変更が必要である場合は、ステップＳ１００６に進む。そして、Ｗｅｂサーバ部５０２が、上記ステップＳ１００２において取得したクライアント情報に基づいて、優先順位情報を生成し（ステップＳ１００５）、ステップＳ１００６に進む。Ｗｅｂサーバ部５０２が、生成した優先順位情報を含む返信データを生成する（ステップＳ１００６）。そして、Ｗｅｂサーバ部５０２が、生成した返信データをクライアントコンピュータ１０３に返信する（ステップＳ１００７）。
【００９２】
図１１は、実施例２におけるサーバコンピュータ１０２とクライアントコンピュータ１０３との間の通信処理の例を説明するシーケンス図である。
クライアントコンピュータ１０３が、サーバコンピュータ１０２に対して、ページ情報取得を行う（ステップＳ１１０１）。例えば、クライアントコンピュータ１０３は、サーバコンピュータ１０２のＵＲＬを指定して、対象プロトコルのＧｅｔコマンドを実行する。
【００９３】
次に、サーバコンピュータ１０２が、指定されたＵＲＬのＧｅｔコマンド返信情報として、ページ情報をＨＴＭＬで作成する（ステップＳ１１０２）。続いて、サーバコンピュータ１０２が、クライアント情報の取得要求、すなわち、サーバコンピュータ１０２とクライアントコンピュータ１０３との間の通信状態の取得要求を行う（ステップＳ１１０３）。
【００９４】
クライアントコンピュータ１０３のセッション／ストリーム管理部６０３が、クライアント情報の取得要求に応じて、サーバコンピュータ１０２とクライアントコンピュータ１０３との間の通信状態を示すクライアント情報を作成する（ステップＳ１１０４）。そして、クライアントコンピュータ１０３が、クライアント情報をサーバコンピュータ１０２に返信する（ステップＳ１１０５）。
【００９５】
なお、サーバコンピュータ１０２とクライアントコンピュータ１０３との間の通信状態を示す情報のうち、クライアントコンピュータ１０３が取得できない情報は、サーバコンピュータ１０２が自ら取得する。例えば、サーバコンピュータ１０２からクライアントコンピュータ１０３へのラウンドトリップタイムは、以下のようにして取得できる。サーバコンピュータ１０２がラウンドトリップタイム計測用のパケットをクライアントコンピュータ１０３に送信し、クライアントコンピュータ１０３から返信を受けることでラウンドトリップタイムを取得する。取得されたクライアント情報は、クライアント情報管理部５０５によって管理される。
【００９６】
次に、サーバコンピュータ１０２の優先順位情報生成部５０６が、クライアント情報に基づいて、クライアントコンピュータ１０３に対する返信データに設定する優先順位情報を生成する（ステップＳ１１０６）。サーバコンピュータ１０２のＷｅｂサーバ部５０２は、優先順位の変更が不要と判断した場合は、デフォルト優先順位または優先順位情報を付けないで返信データの生成を行う。Ｗｅｂサーバ部５０２は、優先順位の変更が必要と判断した場合は、優先順位情報を付けて返信データの生成を行う。
【００９７】
次に、Ｗｅｂサーバ部５０２が、クライアントコンピュータ１０３に対して返信データを返信する（ステップＳ１１０７）。この例では、Ｗｅｂサーバ部５０２は、ページ情報のＨＴＭＬを返信する。
【００９８】
クライアントコンピュータ１０３のＷｅｂクライアント部６０２が、以下の処理を、ページ情報に含まれるオブジェクトを取得し終わるまで繰り返す。Ｗｅｂクライアント部６０２が、サーバコンピュータ１０２から受信したページ情報のＨＴＭＬに設定されている優先順位情報に従って、対象プロトコルでのストリームを作成する。そして、Ｗｅｂクライアント部６０２が、作成したストリームを用いたオブジェクト取得要求を行う（ステップＳ１１０８，Ｓ１１０９）。
【００９９】
サーバコンピュータ１０２のＷｅｂサーバ部５０２が、クライアントコンピュータ１０３からのオブジェクト取得要求に対応するオブジェクトデータの作成を行う（ステップＳ１１１０）。そして、Ｗｅｂサーバ部５０２が、クライアントコンピュータ１０３に対して、オブジェクトデータの返信を行う（ステップＳ１１１１）。これにより、クライアントコンピュータ１０３のＷｅｂクライアント部６０２が、返信されたオブジェクトデータからなるコンテンツを取得する。そして、Ｗｅｂクライアント部６０２が、取得されたコンテンツのうち、現在の表示に必要なコンテンツを表示する（ステップＳ１１１２）。ステップＳ１１１２においては、Ｗｅｂクライアント部６０２は、さらに、現在の表示以降の表示に必要なコンテンツをキャッシュする管理手段として機能する。
【０１００】
本実施例は、例えば、Ｗｅｂを使ったメールシステムにおいて好適である。クライアントコンピュータ１０３のウェブブラウザから、サーバコンピュータ１０２上のメールリストを表示する場合を想定する。サーバコンピュータ１０２は、サーバコンピュータ１０２からクライアントコンピュータ１０３へのラウンドトリップタイム（ＲＴＴ）の取得を行う。
【０１０１】
サーバコンピュータ１０２は、取得したＲＴＴに基づいて、サーバコンピュータ１０２とクライアントコンピュータ１０３との間の通信環境が高速通信環境であるか低速通信環境であるかを判断する。サーバコンピュータ１０２は、通信環境が低速通信環境である場合に優先順位を低く設定するコンテンツの数を、通信環境が高速通信環境である場合に優先順位を低く設定するコンテンツの数より少なくする。この例では、サーバコンピュータ１０２は、ＲＴＴの値に応じて、未読メールの本文の先読みを行う件数を制限するための優先順位制御を行う。
【０１０２】
例えば、ＲＴＴが３秒の場合、サーバコンピュータ１０２は、サーバコンピュータ１０２とクライアントコンピュータ１０３との間の通信環境が低速通信環境であると判断する。そして、サーバコンピュータ１０２が、未読メールの本文の先読みを行う件数を１件に限定して、１件分だけＨＴＭＬのｌｉｎｋ  ｒｅｌ＝”ｎｅｘｔ”で指定する。これにより、クライアントコンピュータ１０３に対して、１件の先読みを指示する。
【０１０３】
また、ＲＴＴが１００ミリ秒の場合、サーバコンピュータ１０２は、サーバコンピュータ１０２とクライアントコンピュータ１０３との間の通信環境が高速通信環境であると判断する。そして、サーバコンピュータ１０２が、未読メールの本文の先読みを行う件数を１０件にする。具体的には、サーバコンピュータ１０２は、１０件分をＨＴＭＬのｌｉｎｋ  ｒｅｌ＝”ｎｅｘｔ”で未読メールの本文の先読みを指定する。これにより、クライアントコンピュータ１０３に対して、１０件の先読みを指示する。
【０１０４】
クライアントコンピュータ１０３は、本文（＜Ｂｏｄｙ＞）であるメールリストについては、対応するストリームの優先度として４を指定する。クライアントコンピュータ１０３は、ｌｉｎｋ  ｒｅｌ＝”ｎｅｘｔ”で指定された未読メールの本文については、対応するストリームの優先度として、より低い５を指定する。これにより、クライアントコンピュータ１０３が、フォアグラウンド処理で、本文であるメールリストの取得後に、バックグラウンド処理で未読メール本文を取得してキャッシュすることができる。
【０１０５】
本実施例では、ＲＴＴに基づく優先順位の設定処理を説明したが、他のクライアント情報に基づいて、同様の優先順位の設定処理を行うことができる。例えば、アップロード／ダウンロード帯域幅、輻輳ウインドウサイズ、再送バイト数／送信済みバイト数）、初期ウインドウサイズなどに基づいて、優先順位の設定をすることができる。また、最大同時接続ストリーム数に基づいて、同時に用いることができるストリーム数を制限することができる。例えば、クライアントコンピュータ１０３が同時に用いることができるストリーム数が５本の場合、フォアグラウンド処理用のストリームとして３本、バックグラウンド処理用のストリームとして２本を決定することができる。
【０１０６】
実施例２によれば、サーバコンピュータ１０２が、サーバコンピュータ１０２とクライアントコンピュータ１０３との間のネットワーク環境の状態に基づいて、データ毎の最適なストリームの優先度を設定できるようになる。したがって、データの適切な転送が行われ、フォアグラウンド処理が適切に行われ、データ表示速度が向上する。
【０１０７】
（実施例３）
実施例３では、サーバコンピュータ１０２が、オブジェクトの属性と、サーバコンピュータ１０２とクライアントコンピュータ１０３との間の通信状態とに基づいて、優先順位制御を行う。
【０１０８】
図１２は、実施例３におけるサーバコンピュータの動作処理の例を説明するフローチャートである。
ステップＳ１０００，Ｓ１００１、Ｓ１００２，Ｓ１００３，１００６，Ｓ１００７は、図１０のステップＳ１０００，Ｓ１００１、Ｓ１００２，Ｓ１００３，１００６，Ｓ１００７と同様である。
【０１０９】
ステップＳ１２０１において、Ｗｅｂサーバ部５０２が、優先順位の設定が必要であるかを判断する（ステップＳ１２０１）。具体的には、Ｗｅｂサーバ部５０２は、返信データに、デフォルトの優先順位情報として、＜ｌｉｎｋ  ｒｅｌ＝”ｐｒｅｆｅｔｃｈ”＞タグや＜ｌｉｎｋ  ｒｅｌ＝”ｎｅｘｔ”＞タグで示される、優先順位の異なるオブジェクトが含まれるかを判断する。返信データに、優先順位の異なるオブジェクトが含まれる場合、Ｗｅｂサーバ部５０２が、優先順位の設定が必要であると判断して、ステップＳ１００２に進む。返信データに、優先順位の異なるオブジェクトが含まれない場合、Ｗｅｂサーバ部５０２が、優先順位の設定が必要でないと判断して、ステップＳ１２０２に進む。
【０１１０】
ステップＳ１２０２において、Ｗｅｂサーバ部５０２が、デフォルトの優先順位が設定された返信データを生成して、ステップＳ１００７に進む。
【０１１１】
ステップＳ１２０３において、Ｗｅｂサーバ部５０２が、コンテンツ情報管理部５０７が管理するコンテンツ情報と、ステップＳ１００２において取得したクライアント情報とに基づいて、以下の処理を実行する。Ｗｅｂサーバ部５０２は、返信データに設定されているオブジェクトの優先順位をデフォルト値から変更する必要かあるかを判断する（ステップＳ１２０３）。返信データに設定されているオブジェクトの優先順位をデフォルト値から変更する必要がない場合は、ステップＳ１００６に進む。返信データに設定されているオブジェクトの優先順位をデフォルト値から変更する必要がある場合は、ステップＳ１２０４に進む。
【０１１２】
そして、Ｗｅｂサーバ部５０２が、コンテンツ情報とクライアント情報とに基づいて、返信データに設定するオブジェクトの優先順位を決定して（ステップＳ１２０４）、ステップＳ１００６に進む。
【０１１３】
本実施例は、例えば、Ｗｅｂを使ったメールシステムにおいて好適である。クライアントコンピュータ１０３のウェブブラウザから、サーバコンピュータ１０２上のメールリストを表示する場合を想定する。サーバコンピュータ１０２は、サーバコンピュータ１０２からクライアントコンピュータ１０３へのＲＴＴの取得を行う。
【０１１４】
さらに、サーバコンピュータ１０２は、コンテンツ情報に基づいて、コンテンツに含まれるオブジェクトを解析して、未読メールかつ添付ファイルなどのサイズの大きなオブジェクトを、優先度の低いストリームに対応するオブジェクトとして決定する。
【０１１５】
サーバコンピュータ１０２は、取得したＲＴＴに基づいて、サーバコンピュータ１０２とクライアントコンピュータ１０３との間の通信環境が、ある閾値以下の低速環境であると判断した場合、以下の処理を実行する。サーバコンピュータ１０２は、ＲＴＴの値に応じて、未読メールかつ大きなサイズのファイルについて、先読みを行う件数を制限するための指定を行う。
【０１１６】
例えば、ＲＴＴが３秒つまり低速通信環境の場合、未読メールの本文の先読みを行う件数を３件に指定する。ここで、優先順位の高い３件の未読メールの１件目が閾値を超えるサイズの大きなメールであった場合は、サーバコンピュータ１０２は、この未読メールを、１件目のＨＴＭＬのｌｉｎｋ  ｒｅｌ＝”ｐｒｅｆｅｔｃｈ”で指定する。２，３件目の未読メールについては、ＨＴＭＬのｌｉｎｋ  ｒｅｌ＝”ｎｅｘｔ”で先読み指定する。これにより、サーバコンピュータ１０２は、クライアントコンピュータ１０３に対して、２，３件目の先読みを行った後に、１件目を先読みするように指示できる。
【０１１７】
また、例えば、ＲＴＴが１００ミリ秒つまり高速通信環境の場合、サーバコンピュータ１０２は、未読メールの本文の先読みを行う件数を１０件に指定する。さらに、サーバコンピュータ１０２は、１０件分をＨＴＭＬのｌｉｎｋ  ｒｅｌ＝”ｎｅｘｔ”で先読み指定する。これにより、クライアントコンピュータ１０３に対して、サイズが大きなオブジェクトも含めて１０件の先読みを指示する。
【０１１８】
クライアントコンピュータ１０３は、本文（＜Ｂｏｄｙ＞）であるメールリストについては、対応するストリームの優先度として４を指定する。クライアントコンピュータ１０３は、ｌｉｎｋ  ｒｅｌ＝”ｎｅｘｔ”で指定された未読メールの本文については、対応するストリームの優先度として、より低い５を指定する。また、クライアントコンピュータ１０３は、ｒｅｌ＝”ｐｒｅｆｅｔｃｈ”で指定された未読メールの本文については、対応するストリームの優先度として、５を指定する。これにより、クライアントコンピュータ１０３が、フォアグラウンド処理で、本文であるメールリストの取得後に、バックグラウンド処理で未読メール本文を取得してキャッシュすることができる。
【０１１９】
実施例３によれば、サーバコンピュータ１０２が、オブジェクトの属性と、サーバコンピュータ１０２とクライアントコンピュータ１０３との間のネットワーク環境の状態とに基づいて、データ毎の最適なストリームの優先度を設定できるようになる。したがって、データの適切な転送が行われ、フォアグラウンド処理が適切に行われ、データ表示速度が向上する。
【０１２０】
以上、本発明の好適な実施例について詳述したが、本発明は、複数の機器から構成されるシステムに適用してもよい。また、本発明は、仮想化ＯＳなどで構成される場合も含めて一つの機器からなる装置に適用してもよい。さらに、情報処理装置がインターネットを経由したクラウドコンピューティングで構成されるシステムに適用しても良い。
【０１２１】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【図１】
2014021728.tif 000003
【図２】
2014021728.tif 000004
【図３】
2014021728.tif 000005
【図４】
2014021728.tif 000006
【図５】
2014021728.tif 000007
【図６】
2014021728.tif 000008
【図７】
2014021728.tif 000009
【図８】
2014021728.tif 000010
【図９】
2014021728.tif 000011
【図１０】
2014021728.tif 000012
【図１１】
2014021728.tif 000013
【図１２】
2014021728.tif 000014