JP6021487B2 - 情報処理システム、制御方法、サーバ、情報処理装置およびコンピュータプログラム - Google Patents

情報処理システム、制御方法、サーバ、情報処理装置およびコンピュータプログラム Download PDF

Info

Publication number
JP6021487B2
JP6021487B2 JP2012159904A JP2012159904A JP6021487B2 JP 6021487 B2 JP6021487 B2 JP 6021487B2 JP 2012159904 A JP2012159904 A JP 2012159904A JP 2012159904 A JP2012159904 A JP 2012159904A JP 6021487 B2 JP6021487 B2 JP 6021487B2
Authority
JP
Japan
Prior art keywords
information
information processing
server
priority
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012159904A
Other languages
English (en)
Other versions
JP2014021728A (ja
JP2014021728A5 (ja
Inventor
雄弘 和田
雄弘 和田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to JP2012159904A priority Critical patent/JP6021487B2/ja
Application filed by Canon Inc filed Critical Canon Inc
Priority to KR1020157000878A priority patent/KR101644356B1/ko
Priority to PCT/JP2013/004282 priority patent/WO2014013701A1/en
Priority to RU2014152794A priority patent/RU2620720C2/ru
Priority to EP13820650.3A priority patent/EP2875435B1/en
Priority to US14/115,551 priority patent/US10601958B2/en
Publication of JP2014021728A publication Critical patent/JP2014021728A/ja
Publication of JP2014021728A5 publication Critical patent/JP2014021728A5/ja
Application granted granted Critical
Publication of JP6021487B2 publication Critical patent/JP6021487B2/ja
Priority to US16/788,464 priority patent/US11258882B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • G06F3/0418Control or interface arrangements specially adapted for digitisers for error correction or compensation, e.g. based on parallax, calibration or alignment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/043Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means using propagating acoustic waves
    • G06F3/0436Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means using propagating acoustic waves in which generating transducers and detecting transducers are attached to a single acoustic waves transmission substrate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2408Traffic characterised by specific attributes, e.g. priority or QoS for supporting different services, e.g. a differentiated services [DiffServ] type of service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R1/00Details of transducers, loudspeakers or microphones
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R17/00Piezoelectric transducers; Electrostrictive transducers

Description

本発明は、フォアグラウンド処理に支障をきたさないで、高速にデータ表示を行うデータ通信の制御技術に関する。
フォアグラウンド処理のバックグラウンドで、以降の表示に必要な表示用データを先読みしてバックグラウンド処理を行う装置が提案されている。フォアグラウンド処理とは、画像の表示や音声の出力など、ユーザへの出力を伴う処理である。また、バックグラウンド処理とは、ユーザへの出力を伴わない処理であり、例えば、外部から取得したデータを、ユーザには出力せずに、記憶部にキャッシュしておく処理が該当する。
特許文献1は、画像表示部に電力が供給されていない場合や、フォアグラウンドのジョブが実行されない状態の場合に、将来表示する可能性の高いウェブページ等の表示用データを先読みして取得し、データ記憶部に書き込むデータ表示装置を開示する。
特開2011−141867号公報
しかし、特許文献1は、データ表示装置が、複数の表示用データを複数のストリームで取得する場合を想定していない。また、特許文献1は、複数段階の優先度が設定された複数のストリームがあり、かつ、複数のストリームが同時に通信を行うことが可能である環境を想定していない。したがって、特許文献1が開示する技術では、複数のストリームが含む各々のストリームに対する優先度を適切に決定することができないので、例えば以下の問題が生じる。
サーバが、クライアントが優先的にフォアグラウンド処理に利用するデータAと、データAよりも優先順位の低いバッググラウンド処理に利用するデータBと保持しているものとする。そして、サーバが、データA,Bを、クライアントに対して、互いに異なるストリームで送信する場合を想定する。
データAを送信するためのストリームをストリームAとする。また、データBを送信するためのストリームをストリームBとする。そして、ストリームBのほうがストリームAより優先度が低いものとする。
ここで、サーバが、データAの送信時に、データBの送信を行っていると、データBに対応する優先度の低いストリームBの送信処理や送信停止処理などにより、データAの送信が遅延する場合がある。つまり、データBの送信により、本来届けられるべきデータAのクライアントへの送信が遅延する問題が生じる可能性がある。
さらに、サーバからクライアントに送信すべきデータが複数存在する場合、サーバは、送信するデータや、クライアントとサーバ間のネットワーク環境の違いなどにより、データ毎の最適なストリームの優先度を設定できない可能性がある。そのため、データの適切な転送が行われず、バッググラウンド処理に利用するデータBにより、本来なされるべきフォアグラウンド処理(データAの表示)が遅延する.
本発明は、上記の課題の少なくとも一つを解決するためになされたものである。本発明は、サーバから複数の表示用データをデータ毎の最適な優先度が設定されたストリームで情報処理装置に対して提供することで、情報処理装置でのフォアグラウンド処理が適切に行われ、データ表示速度が向上する仕組みの提供を目的とする。
本発明の一実施形態の情報処理システムは、サーバと、前記サーバとネットワークを介して接続された情報処理装置とを含むシステムである。前記サーバは、前記情報処理装置に対して、構造化言語で記述されたデータを、該データで指定されるコンテンツの属性に基づ優先決定するための情報とともに、提供する提供手段を有する。前記情報処理装置は、前記サーバから提供された前記データで指定される各コンテンツを、前記サーバから提供された前記優先度を決定するための情報に従う優先度の異なる複数のストリームを用いて取得する取得手段と、前記取得されたコンテンツのうち、一部のコンテンツを用いた表示の制御を行う表示手段と、前記取得されたコンテンツのうち、他のコンテンツをキャッシュする管理手段とを有する。
サーバからクライアントに送信するべきデータが複数存在する場合、サーバは、送信するデータや、クライアントとサーバ間のネットワーク環境の違いなどにより、データ毎の最適なストリームの優先度を設定できるようになる。そのためデータの適切な転送が行われ、フォアグラウンド処理が適切に行われ、データ表示速度が向上する。
本実施形態のシステム構成例を示す図である。 クライアントコンピュータとサーバコンピュータのハードウェア構成例を示す図である。 TCPコネクション上で送信されるフレームを説明する図である。 対象プロトコルのデータ構造図の例である。 サーバコンピュータのソフトウェア構成の一例を示す図である。 クライアントコンピュータのソフトウェア構成の一例を示す図である。 サーバコンピュータの動作処理の例を説明する図である。 クライアントコンピュータの動作処理の例を説明する図である。 優先順位情報を含む返信データの例を示す図である。 サーバコンピュータの動作処理の例を説明する図である。 サーバコンピュータとクライアントコンピュータとの間の通信処理の例を説明する図である。 サーバコンピュータの動作処理の例を説明する図である。
本実施形態の説明の前提として、説明に用いる用語および、本実施形態が対象とする通信プロトコルについて定義する。本実施形態が対象とする通信プロトコルの例としては、SPDY(登録商標)プロトコルが挙げられる。
ソケットとは、TCPレイヤにおいて、通信を識別、分類するための表記である。多くの場合、TCPレイヤは、IPプロトコルを下位レイヤとして用いるのが一般的である。ソケットは、例えばIPアドレスとポート番号の組を含む。
TCPコネクションとは、TCPレイヤにおける一つの通信路を意味する。TCPコネクションは、具体的には受信側ソケットと送信側ソケットの組のことである。ストリームとは、対象とする上位通信プロトコルにおける論理チャネルのことである。フレームとは、実際にデータを送信する際に、データを細切れにした最少単位のブロックのことである。
ここで、本実施形態が対象とする通信プロトコル(以下、「対象プロトコル」と記述)について説明する。ただし、対象プロトコルとの透過性を維持する中間プロトコル(TLS、SSL等)が存在してもよい。対象プロトコルは、TCPコネクション上をフレームと呼ばれるデータを送受信することで通信を行う。
図3は、TCPコネクション上で送信されるフレームを説明する図である。
フレーム301は、TCPコネクション300上で送信先に送信される。フレーム301は、ヘッダにフレームサイズを持つ。
図4は、対象プロトコルのデータ構造図の例である。
対象プロトコルは、該当する一つのTCPコネクション300上における通信をセッション400として管理する。一つのセッション400上には一つのコントロールフレーム401がある。セッション400に関する通信は、コントロールフレーム401を用いて行われる。
対象プロトコルは、コントロールフレーム401以外に、任意の数のデータストリーム402を保持してもよい。なお、本発明は、対象プロトコルを特定のプロトコルに限定するものではない。図4中に示す構造のプロトコルであれば、OSI参照モデルの第7層(アプリケーション層)、第6層(プレゼンテーション層)、第5層(セッション層)などにおいても本発明を適用できる。なお、本明細書において、データストリームとストリームとは同義である。
実際の上位アプリケーションおよび上位プロトコルのデータ通信は、図4中に示すデータストリーム402を用いて行われる。データストリーム402には、それぞれ優先度を設定することができる。説明の便宜上、優先度の段階数は、最も高い0から最も低い7の8段階とするが、実際には8段階に限定されない。優先度の段階を任意の数としてもよい。
本実施形態において、クライアントコンピュータ103は、サーバコンピュータ102に対してオブジェクトの取得を要求する。クライアントコンピュータ103は、サーバコンピュータ102がオブジェクトに対して設定している優先順位に応じて、当該オブジェクトを取得するためのデータストリーム402に優先度を設定する。データストリームは、それぞれを特定できるストリームIDを持つ。例えば、クライアントコンピュータ103が、優先順位が高いオブジェクトを取得しにいくときは、図4中のストリーム1を用い、クライアントコンピュータ103が優先順位が低いオブジェクトを取得しにいくときはストリーム2を用いる。
また、本実施形態において、データストリーム402間に依存関係を持たせることができる。データストリーム402に親ストリームがあれば、その親ストリームのストリームID(図4中のAssociated Stream ID)をデータストリーム402に設定することによって依存関係を表現できる。データストリーム402に親ストリームがなければ、親ストリームのストリームIDに0番を設定するか、または親ストリームのストリームIDを設定しない。データストリームに依存関係を持たせることで、サーバは、クライアントが要求したデータを返信する以外に、クライアントが要求したデータに関連するデータをプッシュ送信すること等ができる。図4を参照して説明した対象プロトコルは、サーバ、クライアントの主従関係は無く、対等に通信を行う。
次に、対象プロトコルの簡単な通信手順について説明する。具体的には、通信開始から、何らかのデータ通信を行い、通信終了を行うまでの手順を説明する。
まず、TCPコネクションが確立された場合を想定する。この時点で、サーバとクライアントとは、双方向の通信チャネルを保持している。次に、コントロールフレーム401を用いてデータストリーム402の作成を行う。サーバ側からでもクライアント側からでもデータストリーム402を作成することができる。
クライアントがサーバからWebのコンテンツを取得する処理を例にとって説明する。クライアントは、Webのコンテンツを取得するために、サーバに対してHTTPプロトコルのGETコマンドを送る必要がある。そのためクライアントはコンテンツストリームを用いてデータストリーム402の作成要求を行う。サーバが作成要求を受け入れる場合はコントロールフレーム401を通して受け入れ許可を応答する。サーバは、その応答中にコンテンツに対応するオブジェクトの優先順位を設定する。クライアントがその優先順位に基づいて、優先順位と依存関係が設定されたデータストリームを作成する。データストリーム402が作成された後、サーバとクライアントとは、作成されたデータストリーム402を利用してHTTPプロトコルのGET要求/返信を行うことができる。
クライアント側が必要なデータをサーバから受信後、ストリームを閉じる必要がある。この時、クライアント側、サーバ側のどちらの側からでもストリームを閉じることができる。その後、ストリームの終了要求を受けた側は送信するデータがなくなり次第、ストリームの終了要求を出し、ストリームを終了する。また、例えばクライアント側が意図的が終了要求を出さないことで片方向通信を行うこともできる。
また、サーバ側からデータストリーム402を作成する例として、クライアント側からGET要求を受けたサーバが、動的にコンテンツをクライアントにプッシュするために新たなデータストリーム402を作成することが考えられる。この例から分かるように、対象プロトコルの通信において、ストリームの数は時間に応じて動的に変動する。
図1は、本実施形態のシステム構成例を示す図である。
図1に示す情報処理システムは、LAN207およびインターネット101を介して接続されたクライアントコンピュータ103とサーバコンピュータ102とを備える。本実施形態の制御方法は、上記情報処理システムが備える各装置の機能によって実現される。また本実施形態のコンピュータプログラムは、上記制御方法をコンピュータに実行させる。本発明を実現するにあたって、クライアントコンピュータ103およびサーバコンピュータ102は、図4を参照して説明した対象プロトコルを管理する機構を備える。以下では、サーバコンピュータ102とクライアントコンピュータ103とで本発明を実現する例を示す。しかし、本発明は、サーバコンピュータ102またはクライアントコンピュータ103のいずれか一方だけでも実現できる。
サーバコンピュータ102は、クライアントコンピュータ103からコンテンツの取得リクエストを受け、このリクエストに対応するコンテンツが含むオブジェクトをクライアントコンピュータ103に送信するサーバである。サーバコンピュータ102は、コンテンツの取得リクエストを受けると、まず、対応するコンテンツが含むオブジェクトに優先順位を設定し、オブジェクトに対する優先順位に関する優先順位情報を含む返信データをクライアントコンピュータ103に提供する。
返信データは、コンテンツの取得リクエストに対応するオブジェクトをクライアントコンピュータ103に取得させるための情報を含むデータである。この例では、サーバコンピュータ102は、構造化言語(例えば、HTML)で記述されたデータを返信データとしてクライアントコンピュータ103に提供する。
クライアントコンピュータ103は、サーバコンピュータ102から提供されたデータに従う表示制御を行う情報処理装置である。具体的には、クライアントコンピュータ103は、サーバコンピュータ102から提供された返信データに含まれる優先順位情報に基づいて、オブジェクトをサーバコンピュータ102から取得するために用いるデータストリームの優先度を設定する。クライアントコンピュータ103は、優先度が設定されたデータストリームで、オブジェクトをサーバコンピュータ102から取得することを通じて、所望のコンテンツを取得する。クライアントコンピュータ103は、取得されたコンテンツのうち、一部のコンテンツを用いた表示の制御を行い、他のコンテンツをキャッシュする。具体的には、クライアントコンピュータ103は、現在の表示に必要なコンテンツを表示し、現在の表示以降の表示に必要なコンテンツを記憶手段にキャッシュする。クライアントコンピュータ103としての情報処理装置は、ウェブブラウザといったプログラムを備える装置であって、例えば、ノートPC、タブレット、携帯電話、プリンターや複合機などの画像形成装置といった装置が挙げられる。
LAN207は、クライアントコンピュータ103とサーバコンピュータ102との間で情報をやり取りするための通信回線である。インターネット101は、ファイアウォールを越えて上述の各装置間で情報をやり取りするための通信回線である。インターネット101により、サーバコンピュータ102とクライアントコンピュータ103が属するLAN207とは、ファイアウォールを越えて通信が可能である。LAN207、インターネット101は、例えば、TCP/IPプロトコルなどをサポートする通信回線網であり有線・無線は問わない。図1において、サーバコンピュータ102は、1台のサーバとして示されているが複数台のサーバコンピュータで構成されていても構わない。また、サーバコンピュータ102は、仮想PCとして構成されていても構わない。
なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器から成るシステムであっても、本発明を適用できることは言うまでもない。また、特に断らない限り、本発明の機能が実行されるのであれば、インターネット以外のネットワーク(例えばWAN)を介して接続が為され処理が行われるシステムであっても本発明を適用できることは言うまでもない。
図2は、クライアントコンピュータとサーバコンピュータのハードウェア構成例を示す図である。
図2中に示すコンピュータ200は、クライアントコンピュータ103またはサーバコンピュータ102に対応する。
コンピュータ200は、ROM202が有するプログラム用ROM、あるいは外部記憶装置205に記憶された文書処理プログラム等に基づいて、図形、イメージ、文字、表(表計算等を含む)等が混在した処理を実行するCPU201を備える。CPU201は、システムバス204に接続される各デバイスを統括的に制御する。コンピュータ200が、入出力装置を備えていてもよい。
また、ROM202のプログラム用ROMあるいは外部記憶装置205には、CPU201の制御プログラムであるオペレーションシステム等が記憶されている。また、ROM202のデータ用ROMあるいは外部記憶装置205には各種データが記憶されている。RAM203は、CPU201の主メモリ、ワークエリア等として機能する。ネットワークI/F制御部206は、LAN207とのデータの送受信を制御する。
CPU201が、外部記憶装置205に記憶されているプログラムに基づき処理を実行することによって、図5に示すサーバコンピュータ102のソフトウェア構成及び図7、図8、図10、図12に示すフローチャートの各ステップの処理が実現される。
図5は、サーバコンピュータのソフトウェア構成の一例を示す図である。
サーバコンピュータ102は、通信I/F部500、通信制御部501、Webサーバ部502、コンテンツ情報保持部503、セッション/ストリーム管理部504を備える。また、サーバコンピュータ102は、クライアント情報管理部505、優先順位情報生成部506、コンテンツ情報管理部507を備える。
通信I/F部500は、TCPレイヤまでの管理機構であるRFC793(TRANSMISSION CONTROL PROTOCOL)を満たし、利用可能なAPIが提供されていればよい。通信I/F部500は、オペレーティングシステムがTCPレイヤを操作するためのAPIを提供する。
通信制御部501は、対象プロトコルや、SSL、TLSレイヤを管理する。対象プロトコルとしては、TCPが利用される。対象プロトコルは、SSL、TLSを利用する必要はないが、セキュリティやファイアウォールの問題からSSL、TLSを利用する場合が多い。SSL、TLSは、規格(RFC2246、RFC4346)に準拠した実施になっていれば、どのような実施方法でも構わない。
通信制御部501が、SSL、TLS以外の中間プロトコルであっても構わない。具体的には、通信制御部501は、上位レイヤアプリケーションであるWebサーバ部502へのインターフェースを提供する。また、通信制御部501は、下位レイヤの通信I/F部500を介したデータの送受信を管理する。通信制御部501は、全ての対象プロトコルの処理を行わず、セッション/ストリーム管理部504に実際の処理を委譲する。
Webサーバ部502は、HTTPプロトコルによって、クライアントコンピュータ103が備えるWebブラウザに、オブジェクト(HTMLやスクリプト、画像、スタイルシートなど)の表示情報を配信する。本実施例では、サーバコンピュータ102が、Webサーバ部502を備えるが、対象プロトコルが適用できる通信システムにおいては、Webサービスやその他のWebサーバ以外の通信サービスを適用することができる。
また、Webサーバ部502は、コンテンツ取得リクエストの送信元であるクライアントコンピュータ103に対する返信データに、優先順位情報生成部506によって生成された優先順位情報を設定して、クライアントコンピュータ103に対して提供する。
コンテンツ情報保持部503は、オブジェクト(HTML、スクリプト、画像、スタイルシートなど)の表示情報を保持する。Webサーバ部502は、コンテンツ情報保持部503が保持するオブジェクトをクライアントコンピュータ103のWebブラウザに送信する。クライアントコンピュータ103がサーバコンピュータ102に対してリクエストを行うコンテンツは、複数のオブジェクトを含む。Webサーバ部502がクライアントコンピュータ103のWebブラウザに送信するデータには、Webサーバ部502において動的に生成されるデータもある。また、Webサーバ部502が、データの一部を外部記憶装置(不図示)であるデータベースなどに保存する場合もある。
セッション/ストリーム管理部504は、対象プロトコルのセッションが保持するストリームの情報を管理情報として管理する。管理情報には、セッションに関連する情報として、ストリームの管理ID、ストリームの優先度、ストリームに関連する関連ストリームID情報、状態情報、送受信バッファ情報などが含まれる。
クライアント情報管理部505は、クライアントコンピュータ103の環境情報であるクライアント情報を管理する。クライアント情報は、セッション/ストリーム管理部504が保持するセッションとストリームの通信状態に関する情報を含む。クライアント情報は、後述する優先順位情報の生成に用いられる。具体的には、クライアント情報は、対象プロトコルにおけるサーバコンピュータ102とクライアントコンピュータ103間の以下の取得値を含む。
・Upload Bandwidth(アップロード帯域幅)
・Download Bandwidth(ダウンロード帯域幅)
・Round Trip Time(ラウンドトリップタイム)
・Max Concurrent Streams(最大同時接続ストリーム数)
・TCP CWND size(輻輳ウインドウサイズ)
・Download retrans rate(再送バイト数/送信済みバイト数)
・Initial window size(初期ウインドウサイズ)
優先順位情報生成部506は、クライアント情報管理部505が管理するクライアント情報、またはコンテンツ情報管理部507が管理するコンテンツ情報に基づいて、優先順位情報を生成する。例えば、優先順位情報生成部506は、返信データで指定されるコンテンツ(オブジェクト)の属性に基づいて、コンテンツ(オブジェクト)の優先順位を決定し、決定した優先順位に関する優先順位情報を生成する。優先順位情報は、コンテンツ取得リクエストを行ったクライアントコンピュータ103に送信するコンテンツに対応するオブジェクトの、サーバコンピュータ102からの取得に関する優先順位の情報である。
コンテンツ情報管理部507は、コンテンツ情報を管理する。コンテンツ情報は、クライアントコンピュータ103への送信対象となるコンテンツに関する情報である。コンテンツは、複数のオブジェクトを含んでいる。また、オブジェクトとしては、スクリプト、画像、スタイルシートなどがある。
具体的には、コンテンツ情報は、コンテンツ属性として、少なくとも以下の項目を含む。
・オブジェクトのサイズ
・オブジェクト種別(スクリプト、スタイルシート、HTML、画像、背景画像など)
・階層、ドメイン等のオブジェクトの内容(同一ページ、ネクストページ、リンク先、同一ドメイン、別ドメイン)
図6は、クライアントコンピュータのソフトウェア構成の一例を示す図である。
通信I/F部600は、TCPレイヤまでの管理機構であるRFC793(TRANSMISSION CONTROL PROTOCOL)を満たし、利用可能なAPIが提供されていればよい。また、通信I/F部600は、他のプロトコルを含む通信制御を行うことが可能である。通信I/F部600は、オペレーティングシステムがTCPレイヤを操作するためのAPIを提供する。
クライアント通信制御部601は、対象プロトコルや、SSL、TLSレイヤを管理する。SSL、TLSは、規格(RFC2246、RFC4346)に準拠した実施になっていればよい。また、クライアント通信制御部601が、SSL、TLS以外の中間プロトコルを管理するようにしてもよい。具体的には、クライアント通信制御部601は、上位レイヤアプリケーションであるWebクライアント部602へのインターフェースを提供する。また、クライアント通信制御部601は、下位レイヤの通信I/F部600を介したデータの送受信を管理する。クライアント通信制御部601は、全ての対象プロトコルの処理を行わず、セッション/ストリーム管理部603に実際の処理を委譲する。
Webクライアント部602は、オブジェクト(HTMLやスクリプト、画像、スタイルシートなど)の表示情報を、HTTPプロトコルによってサーバコンピュータ102のWebサーバ部502から取得する。Webクライアント部602は、Webブラウザの機能を備える。なお、クライアントコンピュータ103は、対象プロトコルが適用できる通信システムにおいては、Webサービスクライアントやその他のWeb以外の通信サービスのクライアントアプリケーションをWebクライアント部602として適用することもできる。
セッション/ストリーム管理部603は、対象プロトコルのセッションおよびストリームを作成する。また、セッション/ストリーム管理部603は、作成したストリームに関する情報を管理情報として管理する。この管理情報には、セッションに関連する情報として、ストリームの管理ID、ストリームの優先度、ストリームに関連する関連ストリームID情報、状態情報、送受信バッファ情報などが含まれる。
優先順位管理部604は、Webクライアント部602がサーバコンピュータ102から受信した返信データに含まれる優先順位情報に基づいて、サーバコンピュータ102からオブジェクトを取得するためのストリームに設定する優先度を決定する。Webクライアント部602は、クライアント通信制御部601に、決定された優先度を有するセッションおよびストリームを作成させ、作成されたセッションおよびストリームを用いて、サーバコンピュータ102からオブジェクトを取得する。
具体的には、Webクライアント部602が、サーバコンピュータ102のWebサーバ部502から受信した返信データのHTMLに設定されている、オブジェクト毎の優先順位情報を取得する。そして、優先順位管理部604が、上記取得された優先順位情報に基づいて、適切なストリームの優先度を決定する。そして、クライアント通信制御部601が、送信データのHTMLに関連するオブジェクトを取得するための、上記決定された優先度が設定されたストリームを作成する。クライアント通信制御部601は、ストリームの作成時に、サーバコンピュータ102が設定したオブジェクト毎の優先順位と、オブジェクトを取得するためのストリームの優先度とを関連付ける。つまり、オブジェクトの優先順位が高いほど、そのオブジェクトを取得するためのストリームの優先度として高い優先度を設定する。
図7は、サーバコンピュータの動作処理の例を説明するフローチャートである。
図7では、サーバコンピュータ102とクライアントコンピュータ103との間での、対象プロトコルを用いたデータの送受信の流れを例にとって説明する。サーバコンピュータ102のWebサーバ部502が、クライアントコンピュータ103からコンテンツの取得リクエストを受信すると、Webサーバ部502が、受信したコンテンツの取得リクエストに応じた返信データを作成する(ステップS700)。この例では、返信データは、構造化言語(例えばHTML)で記述されており、返信データに含まれるタグの中に、当初は、リクエストされたコンテンツを構成するオブジェクト毎のデフォルトの優先順位を含む優先順位情報が設定されている。
次に、Webサーバ部502が、コンテンツ情報管理部507が管理するコンテンツ情報に基づいて、返信データに含まれる優先順位情報が示す優先順位の変更が必要であるかを判断する(ステップS701)。Webサーバ部502は、例えば、以下の(1)乃至(4)のいずれかの基準に基づいて、優先順位の変更が必要であるかを判断する。
(1)オブジェクトのサイズが規定値(閾値)を越えていないか
(2)オブジェクト種別(スクリプト、スタイルシート、HTML、画像、背景画像など)
(3)リンクの階層(同一ページ、ネクストページ、リンク先)が規定値を越えていないか
(4)ドメイン(同一ドメイン、別ドメイン)が規定値に含まれるか
例えば、オブジェクトのサイズが大きいものがあれば、そのオブジェクトの優先順位を低くしなければならない。Webサーバ部502は、サイズが閾値以上であるオブジェクトに第1の優先順位を設定し、サイズが閾値未満であるコンテンツに第1の優先順位より高い第2の優先順位を設定する。したがって、例えば閾値を越えるサイズのオブジェクトがある場合、Webサーバ部502は、優先順位の変更が必要であると判断する。
また、オブジェクトが、例えばHTMLである場合、Webサーバ部502は、クライアントコンピュータ103に早く取得させるために、HTMLのオブジェクトに対する優先順位を高い優先順位に変更する。また、オブジェクトが画像である場合、Webサーバ部502は、優先順位を低く設定してもよい。また、Webサーバ部502は、画像の中でも例えばロゴなど重要度の高いオブジェクトに対しては優先順位を高くし、サムネイルに対しては低い優先順位を設定してもよい。また、例えば、先読み対象のオブジェクトについて、リンクの階層が1階層である場合は、優先順位を高く、2階層目からは優先順位を低く設定するようにしてもよい。
Webサーバ部502が、優先順位の変更が必要でないと判断した場合、Webサーバ部502は、デフォルトの優先順位情報のままにする。この場合には、ステップS707、S708の処理が省略される。Webサーバ部502が、優先順位の変更が必要であると判断した場合は、ステップS702に進む。そして、Webサーバ部502が、オブジェクト毎の優先順位の設定が必要であるかを判断する(ステップS702)。
具体的には、Webサーバ部502は、リクエストされたコンテンツに含まれるオブジェクトの優先順位が、全て同一であるかを判断する。オブジェクトの優先順位が全て同一である場合、Webサーバ部502が、オブジェクト毎の優先順位の設定が必要でないと判断して、ステップS703に進む。そして、優先順位情報生成部506が、コンテンツ情報管理部507が管理するコンテンツ情報に基づいて、返信データに含まれるオブジェクト全体に共通する優先順位を算出して(ステップS703)、ステップS707に進む。
優先順位が異なるオブジェクトがある場合、Webサーバ部502が、オブジェクト毎の優先順位の設定が必要であると判断して、ステップS704に進む。続いて、返信データにPushデータが含まれるかを判断する(ステップS704)。Pushデータは、サーバコンピュータ102から自律的にクライアントコンピュータ103に送信するデータである。ステップS704の判断処理を行うのは、継続的にサーバコンピュータ102からクライアントコンピュータ103にPushするデータがある場合は、ストリームをつないだままにするために、専用のストリームの作成が必要になるからである。
返信データにPushデータが含まれる場合、優先順位情報生成部506は、コンテンツ情報管理部507が管理するコンテンツ情報に基づいて、Pushデータ毎の優先順位を決定して(ステップS706)、ステップS707に進む。返信データにPushデータが含まれない場合、優先順位情報生成部506は、コンテンツ情報管理部507が管理するコンテンツ情報に基づいて、オブジェクト毎の優先順位を決定して(ステップS705)、ステップS707に進む。
ステップS707において、Webサーバ部502が、優先順位情報生成部506によって決定された優先順位に基づいて、返信データに設定する優先順位情報を作成する。そして、Webサーバ部502が、返信データの優先順位情報を、デフォルト値からステップS707で作成した優先順位情報に更新する(ステップS708)。
図9は、優先順位情報を含む返信データの例を示す図である。
<body>内には、フォアグラウンドで処理されるオブジェクトの情報が設定される。また、<link rel>タグには、バックグラウンドで処理して取得されるべきオブジェクトの情報が設定される。つまり、<body>内に設定されるオブジェクトの優先順位は高く、<link rel>タグに設定されるオブジェクトの優先順位は低いことを意味する。
図7に戻って、Webサーバ部502が、未処理リクエストがあるかを判断する(ステップS709)。未処理リクエストがない場合は処理を終了する。例えば、Webサーバ部502は、セッションやストリームの終了処理を行う。未処理リクエストがある場合は、ステップS700に戻る。
図7を参照して説明した動作処理により、サーバコンピュータ102は、クライアントコンピュータ103が最適なストリームを作成できるための優先順位情報をHTMLの返信データに含めてクライアントコンピュータ103に提供することができる。
図8は、クライアントコンピュータの動作処理の例を説明するフローチャートである。 まず、Webクライアント部602が、返信データを受信する(ステップS801)。この例では、返信データは、HTMLデータであるものとする。次に、Webクライアント部602が、受信した返信データが、送信データすなわちサーバコンピュータ102へのコンテンツ取得リクエストに対応する返信データかを判断する(ステップS802)。返信データが送信データに対応する返信データでない場合は、受信処理を継続する。返信データが送信データに対応する返信データである場合、Webクライアント部602が、返信データを解析する(ステップS803)。
次に、Webクライアント部602が、上記ステップS803での解析結果に基づいて、データ取得にストリームの作成が必要であるかを判断する(ステップS804)。具体的には、Webクライアント部602が、返信データに含まれる、取得対象のオブジェクトに関する情報に基づいて、当該オブジェクトがページの作成に必要であるかを判断する。オブジェクトがページの作成に必要でない場合は、そのオブジェクトを取得する必要がない。したがって、この場合は、Webクライアント部602が、データ取得にストリームの作成が必要でないと判断して、ステップS809に進む。オブジェクトがページの作成に必要である場合、Webクライアント部602が、データ取得にストリームの作成が必要であると判断して、ステップS805に進む。
ステップS805において、Webクライアント部602が、返信データにサーバコンピュータ102が決定した優先順位が設定されているかを判断する(ステップS805)。返信データにサーバコンピュータ102が決定した優先順位が設定されていない場合は、ステップS807に進む。そして、Webクライアント部602は、セッション/ストリーム管理部603を通じて、デフォルトの優先度が設定されたストリームを作成し(ステップS807)、ステップS808に進む。
返信データにサーバコンピュータ102が決定した優先順位が設定されている場合は、Webクライアント部602が、セッション/ストリーム管理部603を通じて、返信データに設定された優先順位に対応する優先度が設定されたストリームを作成する。
以下に、返信データに設定された優先順位に基づくストリームの生成について説明する。Webクライアント部602は、Webサーバ部502から,図9で示されるHTMLデータを返信データとして受信したものとする。
Webクライアント部602は、<link rel>タグで設定したオブジェクト毎の優先順位情報を取得する。link rel=”prefetch”およびlink
rel=”next”で指定された、photo.jpgおよび2ndpage.htmlは、優先順位が低い。link rel=”prefetch”およびlink rel=”next”で指定されたオブジェクトは、バックグラウンドで処理して取得するオブジェクトを示す。つまり、このオブジェクトは、<body>内で示されたフォアグラウンドで処理されるべき通常優先順位のオブジェクトを取得した後に取得されるべきオブジェクトである。本実施例のHTMLの<link rel>タグは一例であり、これに限定するものではない。
HTMLデータ内の優先順位情報に基づいて、適切なストリームの優先度を優先順位管理部604が決定する。Webクライアント部602が、クライアント通信制御部601に指示して、HTMLデータに対応するオブジェクトを取得するためのストリームを作成させる。ストリーム作成時には、HTMLデータ内の優先情報と適切なストリームの優先情報とを関連付ける。
図9に示す例では、photo.jpgおよび2ndpage.htmlは、logo.jpgよりも優先順位が低い。したがって、Webクライアント部602は、photo.jpgおよび2ndpage.htmlをサーバから取得する時に、データストリーム402の作成時の優先度として、最も低い7を指定する。
また、logo.jpgについては、デフォルト値である4や、最も優先度が高い0を指定してデータストリーム402を作成する。データストリームの優先度の数は、説明の便宜上、最も高い0から最も低い7の8段階とするが、実際にはこの8段階でなく、任意の優先度の数であってもよい。このように、サーバコンピュータ102が指定したオブジェクトの優先順位に応じた優先度が設定されたデータストリームを用いて、オブジェクトの取得が行われる。
本実施例は、例えば、Webを使ったメールシステムにおいて好適である。クライアントコンピュータ103のWebブラウザにおいて、サーバ上のメールリストを表示した場合、サーバコンピュータ102は、未読メールのリンク先をHTMLのlink rel=”next”で指定する。
クライアントコンピュータ103のWebクライアント部602は、本文(<Body>)であるメールリストの取得をするためのデータストリーム402を、デフォルト値の優先度である4を指定して作成する。これに対して、Webクライアント部602は、サーバコンピュータ102からlink rel=”next”で指定された未読メールの本文を取得するためのデータストリーム402については、優先度の低い5を指定して作成する。また、添付ファイルなどが含まれる既定サイズ以上の未読メールについては、サーバコンピュータ102からlink rel=”prefetch”で指定される。したがって、Webクライアント部602は、当該未読メールを取得するためのデータストリーム402については、優先度を6に指定して取得する。
図8に戻って、Webクライアント部602が、ステップS806またはS807で作成したストリームを用いて、ステップS803で解析したHTMLのオブジェクトをサーバコンピュータ102から受信する(ステップS808)。
次に、Webクライアント部602は、受信したデータ(オブジェクト)の表示を行う(ステップS809)。ステップS809においては、Webクライアント部602は、さらに、優先度の低いストリームで取得した先読み返信データをキャッシュに保存する。キャッシュに保存したデータについては、ユーザの表示指示に対して高速に表示することが可能となる。
次に、Webクライアント部602が、ステップS803で解析したHTMLのオブジェクトの未受信データがあるかを判断する(ステップS810)。未受信データがある場合は、ステップS801に戻って、Webクライアント部602が、サーバコンピュータ102から未受信データを受信する。未受信データがない場合は、処理を終了する。
以上により、クライアントコンピュータ103は、サーバコンピュータ102が設定した優先順位に基づいて、コンテンツに含まれるオブジェクトを取得するための最適なストリームを作成することができる。
上記の説明により、サーバコンピュータ102からクライアントコンピュータ103に対して送信するべきデータが複数存在する場合、サーバコンピュータ102が、以下の処理を実行できる。サーバコンピュータ102は、送信するオブジェクトの属性に基づいて、オブジェクトの取得に用いられる最適なストリームの優先度を設定できるようになる。その結果、データの適切な転送が行われ、フォアグラウンド処理が適切に行われて、データ表示速度が向上する。
(実施例2)
実施例2では、サーバコンピュータ102が、サーバコンピュータ102とクライアントコンピュータ103との間の通信状態に基づいて、優先順位制御を行う。
図10は、実施例2におけるサーバコンピュータの動作処理の例を説明するフローチャートである。
まず、Webサーバ部502が、クライアントコンピュータ103からの受信データ待ち処理を行う(ステップS1000)。続いて、Webサーバ部502が、受信データに対応する返信データの生成処理が必要かを判断する(ステップS1001)。返信データの生成処理が必要でない場合は、ステップS1000に戻る。返信データの生成処理が必要である場合は、ステップS1002に進む。
次に、Webサーバ部502が、クライアント情報管理部505から、サーバコンピュータ102とクライアントコンピュータ103との間の通信状態をクライアント情報として取得する(ステップS1002)。
クライアント情報管理部505は、クライアント情報として、クライアントコンピュータ103との通信におけるセッションとストリーム情報を管理している。通信時に取得できるセッションとストリームの情報は、対象プロトコルにおけるサーバコンピュータ102とクライアントコンピュータ103間の以下の取得値を含む。
・Upload Bandwidth(アップロード帯域幅)
・Download Bandwidth(ダウンロード帯域幅)
・Round Trip Time(ラウンドトリップタイム)
・Max Concurrent Streams(最大同時接続ストリーム数)
・TCP CWND size(輻輳ウインドウサイズ)
・Download retrans rate(再送バイト数/送信済みバイト数)
・Initial window size(初期ウインドウサイズ)
次に、Webサーバ部502が、返信データの生成処理を行う(ステップS1003)。具体的には、Webサーバ部502が、コンテンツ情報保持部503が保持するコンテンツ情報に基づいて、クライアントコンピュータ103へ返信する返信データを生成する。
次に、Webサーバ部502が、オブジェクトの優先順位変更が必要であるかを判断する(ステップS1004)。オブジェクトの優先順位変更が必要でない場合は、ステップS1006に進み、Webサーバ部502が、例えばデフォルトの優先順位を設定した返信データを生成する。Webサーバ部502が、優先順位を設定せずに返信データを生成するようにしてもよい。
オブジェクトの優先順位変更が必要である場合は、ステップS1006に進む。そして、Webサーバ部502が、上記ステップS1002において取得したクライアント情報に基づいて、優先順位情報を生成し(ステップS1005)、ステップS1006に進む。Webサーバ部502が、生成した優先順位情報を含む返信データを生成する(ステップS1006)。そして、Webサーバ部502が、生成した返信データをクライアントコンピュータ103に返信する(ステップS1007)。
図11は、実施例2におけるサーバコンピュータ102とクライアントコンピュータ103との間の通信処理の例を説明するシーケンス図である。
クライアントコンピュータ103が、サーバコンピュータ102に対して、ページ情報取得を行う(ステップS1101)。例えば、クライアントコンピュータ103は、サーバコンピュータ102のURLを指定して、対象プロトコルのGetコマンドを実行する。
次に、サーバコンピュータ102が、指定されたURLのGetコマンド返信情報として、ページ情報をHTMLで作成する(ステップS1102)。続いて、サーバコンピュータ102が、クライアント情報の取得要求、すなわち、サーバコンピュータ102とクライアントコンピュータ103との間の通信状態の取得要求を行う(ステップS1103)。
クライアントコンピュータ103のセッション/ストリーム管理部603が、クライアント情報の取得要求に応じて、サーバコンピュータ102とクライアントコンピュータ103との間の通信状態を示すクライアント情報を作成する(ステップS1104)。そして、クライアントコンピュータ103が、クライアント情報をサーバコンピュータ102に返信する(ステップS1105)。
なお、サーバコンピュータ102とクライアントコンピュータ103との間の通信状態を示す情報のうち、クライアントコンピュータ103が取得できない情報は、サーバコンピュータ102が自ら取得する。例えば、サーバコンピュータ102からクライアントコンピュータ103へのラウンドトリップタイムは、以下のようにして取得できる。サーバコンピュータ102がラウンドトリップタイム計測用のパケットをクライアントコンピュータ103に送信し、クライアントコンピュータ103から返信を受けることでラウンドトリップタイムを取得する。取得されたクライアント情報は、クライアント情報管理部505によって管理される。
次に、サーバコンピュータ102の優先順位情報生成部506が、クライアント情報に基づいて、クライアントコンピュータ103に対する返信データに設定する優先順位情報を生成する(ステップS1106)。サーバコンピュータ102のWebサーバ部502は、優先順位の変更が不要と判断した場合は、デフォルト優先順位または優先順位情報を付けないで返信データの生成を行う。Webサーバ部502は、優先順位の変更が必要と判断した場合は、優先順位情報を付けて返信データの生成を行う。
次に、Webサーバ部502が、クライアントコンピュータ103に対して返信データを返信する(ステップS1107)。この例では、Webサーバ部502は、ページ情報のHTMLを返信する。
クライアントコンピュータ103のWebクライアント部602が、以下の処理を、ページ情報に含まれるオブジェクトを取得し終わるまで繰り返す。Webクライアント部602が、サーバコンピュータ102から受信したページ情報のHTMLに設定されている優先順位情報に従って、対象プロトコルでのストリームを作成する。そして、Webクライアント部602が、作成したストリームを用いたオブジェクト取得要求を行う(ステップS1108,S1109)。
サーバコンピュータ102のWebサーバ部502が、クライアントコンピュータ103からのオブジェクト取得要求に対応するオブジェクトデータの作成を行う(ステップS1110)。そして、Webサーバ部502が、クライアントコンピュータ103に対して、オブジェクトデータの返信を行う(ステップS1111)。これにより、クライアントコンピュータ103のWebクライアント部602が、返信されたオブジェクトデータからなるコンテンツを取得する。そして、Webクライアント部602が、取得されたコンテンツのうち、現在の表示に必要なコンテンツを表示する(ステップS1112)。ステップS1112においては、Webクライアント部602は、さらに、現在の表示以降の表示に必要なコンテンツをキャッシュする管理手段として機能する。
本実施例は、例えば、Webを使ったメールシステムにおいて好適である。クライアントコンピュータ103のウェブブラウザから、サーバコンピュータ102上のメールリストを表示する場合を想定する。サーバコンピュータ102は、サーバコンピュータ102からクライアントコンピュータ103へのラウンドトリップタイム(RTT)の取得を行う。
サーバコンピュータ102は、取得したRTTに基づいて、サーバコンピュータ102とクライアントコンピュータ103との間の通信環境が高速通信環境であるか低速通信環境であるかを判断する。サーバコンピュータ102は、通信環境が低速通信環境である場合に優先順位を低く設定するコンテンツの数を、通信環境が高速通信環境である場合に優先順位を低く設定するコンテンツの数より少なくする。この例では、サーバコンピュータ102は、RTTの値に応じて、未読メールの本文の先読みを行う件数を制限するための優先順位制御を行う。
例えば、RTTが3秒の場合、サーバコンピュータ102は、サーバコンピュータ102とクライアントコンピュータ103との間の通信環境が低速通信環境であると判断する。そして、サーバコンピュータ102が、未読メールの本文の先読みを行う件数を1件に限定して、1件分だけHTMLのlink rel=”next”で指定する。これにより、クライアントコンピュータ103に対して、1件の先読みを指示する。
また、RTTが100ミリ秒の場合、サーバコンピュータ102は、サーバコンピュータ102とクライアントコンピュータ103との間の通信環境が高速通信環境であると判断する。そして、サーバコンピュータ102が、未読メールの本文の先読みを行う件数を10件にする。具体的には、サーバコンピュータ102は、10件分をHTMLのlink rel=”next”で未読メールの本文の先読みを指定する。これにより、クライアントコンピュータ103に対して、10件の先読みを指示する。
クライアントコンピュータ103は、本文(<Body>)であるメールリストについては、対応するストリームの優先度として4を指定する。クライアントコンピュータ103は、link rel=”next”で指定された未読メールの本文については、対応するストリームの優先度として、より低い5を指定する。これにより、クライアントコンピュータ103が、フォアグラウンド処理で、本文であるメールリストの取得後に、バックグラウンド処理で未読メール本文を取得してキャッシュすることができる。
本実施例では、RTTに基づく優先順位の設定処理を説明したが、他のクライアント情報に基づいて、同様の優先順位の設定処理を行うことができる。例えば、アップロード/ダウンロード帯域幅、輻輳ウインドウサイズ、再送バイト数/送信済みバイト数)、初期ウインドウサイズなどに基づいて、優先順位の設定をすることができる。また、最大同時接続ストリーム数に基づいて、同時に用いることができるストリーム数を制限することができる。例えば、クライアントコンピュータ103が同時に用いることができるストリーム数が5本の場合、フォアグラウンド処理用のストリームとして3本、バックグラウンド処理用のストリームとして2本を決定することができる。
実施例2によれば、サーバコンピュータ102が、サーバコンピュータ102とクライアントコンピュータ103との間のネットワーク環境の状態に基づいて、データ毎の最適なストリームの優先度を設定できるようになる。したがって、データの適切な転送が行われ、フォアグラウンド処理が適切に行われ、データ表示速度が向上する。
(実施例3)
実施例3では、サーバコンピュータ102が、オブジェクトの属性と、サーバコンピュータ102とクライアントコンピュータ103との間の通信状態とに基づいて、優先順位制御を行う。
図12は、実施例3におけるサーバコンピュータの動作処理の例を説明するフローチャートである。
ステップS1000,S1001、S1002,S1003,1006,S1007は、図10のステップS1000,S1001、S1002,S1003,1006,S1007と同様である。
ステップS1201において、Webサーバ部502が、優先順位の設定が必要であるかを判断する(ステップS1201)。具体的には、Webサーバ部502は、返信データに、デフォルトの優先順位情報として、<link rel=”prefetch”>タグや<link rel=”next”>タグで示される、優先順位の異なるオブジェクトが含まれるかを判断する。返信データに、優先順位の異なるオブジェクトが含まれる場合、Webサーバ部502が、優先順位の設定が必要であると判断して、ステップS1002に進む。返信データに、優先順位の異なるオブジェクトが含まれない場合、Webサーバ部502が、優先順位の設定が必要でないと判断して、ステップS1202に進む。
ステップS1202において、Webサーバ部502が、デフォルトの優先順位が設定された返信データを生成して、ステップS1007に進む。
ステップS1203において、Webサーバ部502が、コンテンツ情報管理部507が管理するコンテンツ情報と、ステップS1002において取得したクライアント情報とに基づいて、以下の処理を実行する。Webサーバ部502は、返信データに設定されているオブジェクトの優先順位をデフォルト値から変更する必要かあるかを判断する(ステップS1203)。返信データに設定されているオブジェクトの優先順位をデフォルト値から変更する必要がない場合は、ステップS1006に進む。返信データに設定されているオブジェクトの優先順位をデフォルト値から変更する必要がある場合は、ステップS1204に進む。
そして、Webサーバ部502が、コンテンツ情報とクライアント情報とに基づいて、返信データに設定するオブジェクトの優先順位を決定して(ステップS1204)、ステップS1006に進む。
本実施例は、例えば、Webを使ったメールシステムにおいて好適である。クライアントコンピュータ103のウェブブラウザから、サーバコンピュータ102上のメールリストを表示する場合を想定する。サーバコンピュータ102は、サーバコンピュータ102からクライアントコンピュータ103へのRTTの取得を行う。
さらに、サーバコンピュータ102は、コンテンツ情報に基づいて、コンテンツに含まれるオブジェクトを解析して、未読メールかつ添付ファイルなどのサイズの大きなオブジェクトを、優先度の低いストリームに対応するオブジェクトとして決定する。
サーバコンピュータ102は、取得したRTTに基づいて、サーバコンピュータ102とクライアントコンピュータ103との間の通信環境が、ある閾値以下の低速環境であると判断した場合、以下の処理を実行する。サーバコンピュータ102は、RTTの値に応じて、未読メールかつ大きなサイズのファイルについて、先読みを行う件数を制限するための指定を行う。
例えば、RTTが3秒つまり低速通信環境の場合、未読メールの本文の先読みを行う件数を3件に指定する。ここで、優先順位の高い3件の未読メールの1件目が閾値を超えるサイズの大きなメールであった場合は、サーバコンピュータ102は、この未読メールを、1件目のHTMLのlink rel=”prefetch”で指定する。2,3件目の未読メールについては、HTMLのlink rel=”next”で先読み指定する。これにより、サーバコンピュータ102は、クライアントコンピュータ103に対して、2,3件目の先読みを行った後に、1件目を先読みするように指示できる。
また、例えば、RTTが100ミリ秒つまり高速通信環境の場合、サーバコンピュータ102は、未読メールの本文の先読みを行う件数を10件に指定する。さらに、サーバコンピュータ102は、10件分をHTMLのlink rel=”next”で先読み指定する。これにより、クライアントコンピュータ103に対して、サイズが大きなオブジェクトも含めて10件の先読みを指示する。
クライアントコンピュータ103は、本文(<Body>)であるメールリストについては、対応するストリームの優先度として4を指定する。クライアントコンピュータ103は、link rel=”next”で指定された未読メールの本文については、対応するストリームの優先度として、より低い5を指定する。また、クライアントコンピュータ103は、rel=”prefetch”で指定された未読メールの本文については、対応するストリームの優先度として、5を指定する。これにより、クライアントコンピュータ103が、フォアグラウンド処理で、本文であるメールリストの取得後に、バックグラウンド処理で未読メール本文を取得してキャッシュすることができる。
実施例3によれば、サーバコンピュータ102が、オブジェクトの属性と、サーバコンピュータ102とクライアントコンピュータ103との間のネットワーク環境の状態とに基づいて、データ毎の最適なストリームの優先度を設定できるようになる。したがって、データの適切な転送が行われ、フォアグラウンド処理が適切に行われ、データ表示速度が向上する。
以上、本発明の好適な実施例について詳述したが、本発明は、複数の機器から構成されるシステムに適用してもよい。また、本発明は、仮想化OSなどで構成される場合も含めて一つの機器からなる装置に適用してもよい。さらに、情報処理装置がインターネットを経由したクラウドコンピューティングで構成されるシステムに適用しても良い。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。

Claims (24)

  1. サーバと、前記サーバとネットワークを介して接続された情報処理装置とを含むシステムであって、
    前記サーバは、
    前記情報処理装置に対して、構造化言語で記述されたデータを、該データで指定される各コンテンツの属性に基づく優先度を決定するための情報とともに、提供する提供手段を有し、
    前記情報処理装置は、
    前記サーバから提供された前記データで指定される各コンテンツを、前記サーバから提供された前記優先度を決定するための情報に従う優先度の異なる複数のストリームを用いて取得する取得手段と、
    前記取得されたコンテンツのうち、一部のコンテンツを用いた表示の制御を行う表示手段と、
    前記取得されたコンテンツのうち、他のコンテンツをキャッシュする管理手段とを有することを特徴とする情報処理システム。
  2. 前記コンテンツの属性は、少なくとも、前記コンテンツのサイズ、種別、及び内容の何れかであることを特徴とする請求項1に記載の情報処理システム。
  3. 前記サーバが備える前記提供手段は、優先度を決定するための情報として、各コンテンツの優先順位を提供し、前記データで指定されるコンテンツのうち、サイズが閾値以上であるコンテンツに対しては第1の優先順位が設定され、サイズが閾値未満であるコンテンツに対しては前記第1の優先順位より高い第2の優先順位が設定されることを特徴とする請求項2に記載の情報処理システム。
  4. 前記サーバが備える前記提供手段は、前記データで指定されるコンテンツの属性及び前記情報処理装置の環境情報に基づく優先度を決定するための情報を提供することを特徴とする請求項1乃至3の何れか1項に記載の情報処理システム。
  5. 前記情報処理装置の環境情報は、少なくとも、前記情報処理装置と前記サーバとの間のアップロード/ダウンロード帯域幅、ラウンドトリップタイムの何れかを含むことを特徴とする請求項4に記載の情報処理システム。
  6. 前記サーバでは、前記情報処理装置と前記サーバとの間のラウンドトリップタイムに基づいて、前記情報処理装置と前記サーバとの間の通信環境が高速通信環境であるか低速通信環境であるかが判断され、
    前記サーバが備える前記提供手段により提供される前記データで指定される各コンテンツに対応する優先度を決定するための情報は、前記通信環境が低速通信環境である場合と高速通信環境である場合とで、それぞれ異なることを特徴とする請求項5に記載の情報処理システム。
  7. 前記情報処理装置が備える前記取得手段が同時に用いることができる前記ストリームの数は、前記情報処理装置の環境情報により制限されることを特徴とする請求項1乃至6のいずれか1項に記載の情報処理システム。
  8. サーバと、前記サーバとネットワークを介して接続された情報処理装置とを含むシステムにおける制御方法であって、
    前記サーバが、前記情報処理装置に対して、構造化言語で記述されたデータを、該データで指定される各コンテンツの属性に基づく優先度を決定するための情報とともに、提供する工程と、
    前記情報処理装置が、前記サーバから提供された前記データで指定される各コンテンツを、前記データで指定された前記優先度を決定するための情報に従う優先度の異なる複数のストリームを用いて取得する工程と、
    前記情報処理装置が、前記取得されたコンテンツのうち、一部のコンテンツを用いた表示の制御を行う工程と、
    前記情報処理装置が、前記取得されたコンテンツのうち、他のコンテンツをキャッシュする工程とを有することを特徴とする制御方法。
  9. ネットワークを介して接続された情報処理装置に対して、構造化言語で記述されたデータを、該データで指定される各コンテンツの属性に基づく優先度を決定するための情報とともに、提供する提供手段と、
    前記優先度を決定するための情報に従う優先度の異なる複数のストリームを用いた前記情報処理装置からのコンテンツの取得要求に応じて、当該複数のストリームを介して前記情報処理装置に対して各コンテンツを配信する配信手段と、を備える
    ことを特徴とするサーバ。
  10. 前記コンテンツの属性は、少なくとも、前記コンテンツのサイズ、種別、及び内容の何れかであることを特徴とする請求項9に記載のサーバ。
  11. 前記提供手段は、優先度を決定するための情報として、各コンテンツの優先順位を提供し、前記データで指定されるコンテンツのうち、サイズが閾値以上であるコンテンツに対しては第1の優先順位が設定され、サイズが閾値未満であるコンテンツに対しては前記第1の優先順位より高い第2の優先順位が設定されることを特徴とする請求項9に記載のサーバ。
  12. 前記提供手段は、前記データで指定されるコンテンツの属性及び前記情報処理装置の環境情報に基づく優先度を決定するための情報を提供することを特徴とする請求項9乃至11の何れか1項に記載のサーバ。
  13. 前記情報処理装置が同時に用いることができる前記ストリームの数は、前記情報処理装置の環境情報により制限されることを特徴とする請求項9乃至12のいずれか1項に記載のサーバ。
  14. 前記情報処理装置の環境情報は、少なくとも、前記情報処理装置と前記サーバとの間のアップロード/ダウンロード帯域幅、ラウンドトリップタイムの何れかを含むことを特徴とする請求項12または13に記載のサーバ。
  15. サーバの制御方法であって、
    ネットワークを介して接続された情報処理装置に対して、構造化言語で記述されたデータを、該データで指定される各コンテンツの属性に基づく優先度を決定するための情報とともに、提供する工程と、
    前記優先度を決定するための情報に従う優先度の異なる複数のストリームを用いた前記情報処理装置からのコンテンツの取得要求に応じて、当該複数のストリームを介して前記情報処理装置に対して各コンテンツを配信する工程とを有する
    ことを特徴とする制御方法。
  16. 請求項9乃至14の何れか1項に記載のサーバの各手段としてコンピュータを機能させることを特徴とするコンピュータプログラム。
  17. ネットワークを介して接続されたサーバから、構造化言語で記述されたデータを、該データで指定される各コンテンツの属性に基づく優先度を決定するための情報とともに受け付ける受信手段と、
    前記データで指定される各コンテンツを、前記サーバから提供された前記優先度を決定するための情報に従う優先度の異なる複数のストリームを用いて取得する取得手段と、
    前記取得されたコンテンツのうち、一部のコンテンツを用いた表示の制御を行う表示手段と、
    前記取得されたコンテンツのうち、他のコンテンツをキャッシュする管理手段と、を有することを特徴とする情報処理装置。
  18. 前記コンテンツの属性は、少なくとも、前記コンテンツのサイズ、種別、及び内容の何れかであることを特徴とする請求項17に記載の情報処理装置。
  19. 前記サーバから、優先度を決定するための情報として、各コンテンツの優先順位が提供され、前記データで指定されるコンテンツのうち、サイズが閾値以上であるコンテンツに対しては第1の優先順位が設定され、サイズが閾値未満であるコンテンツに対しては前記第1の優先順位より高い第2の優先順位が設定されることを特徴とする請求項18に記載の情報処理装置。
  20. 前記優先度を決定するための情報は、前記データで指定されるコンテンツの属性及び前記情報処理装置の環境情報とに基づいて、設定されることを特徴とする請求項17乃至19の何れか1項に記載の情報処理装置。
  21. 前記取得手段が同時に用いることができる前記ストリームの数は、前記情報処理装置の環境情報により制限されることを特徴とする請求項17乃至20の何れか1項に記載の情報処理装置。
  22. 前記情報処理装置の環境情報は、少なくとも、前記情報処理装置と前記サーバとの間のアップロード/ダウンロード帯域幅、ラウンドトリップタイムの何れかを含むことを特徴とする請求項20または21に記載の情報処理装置。
  23. 報処理装置が、ネットワークを介して接続されたサーバから、構造化言語で記述されたデータを、該データで指定される各コンテンツの属性に基づく優先度を決定するための情報とともに受け付ける工程と、
    前記情報処理装置が、前記データで指定される各コンテンツを、前記サーバから提供された前記優先度を決定するための情報に従う優先度の異なる複数のストリームを用いて取得する工程と、
    前記情報処理装置が、前記取得されたコンテンツのうち、一部のコンテンツを用いた表示の制御を行う工程と、
    前記情報処理装置が、前記取得されたコンテンツのうち、他のコンテンツをキャッシュする工程とを有することを特徴とする制御方法。
  24. 請求項17乃至22の何れか1項に記載の情報処理装置の各手段としてコンピュータを機能させることを特徴とするコンピュータプログラム。
JP2012159904A 2012-07-18 2012-07-18 情報処理システム、制御方法、サーバ、情報処理装置およびコンピュータプログラム Active JP6021487B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2012159904A JP6021487B2 (ja) 2012-07-18 2012-07-18 情報処理システム、制御方法、サーバ、情報処理装置およびコンピュータプログラム
PCT/JP2013/004282 WO2014013701A1 (en) 2012-07-18 2013-07-11 Information processing system, control method, server, information processing device, and storage medium
RU2014152794A RU2620720C2 (ru) 2012-07-18 2013-07-11 Система обработки информации, способ управления, сервер, устройство обработки информации и носитель данных
EP13820650.3A EP2875435B1 (en) 2012-07-18 2013-07-11 Information processing system, control method, server, information processing device, and storage medium
KR1020157000878A KR101644356B1 (ko) 2012-07-18 2013-07-11 정보처리 시스템, 제어 방법, 서버 및 기억매체
US14/115,551 US10601958B2 (en) 2012-07-18 2013-07-11 Information processing system and method for prioritized information transfer
US16/788,464 US11258882B2 (en) 2012-07-18 2020-02-12 Information processing device, method, and storage medium for prioritized content acquisition

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012159904A JP6021487B2 (ja) 2012-07-18 2012-07-18 情報処理システム、制御方法、サーバ、情報処理装置およびコンピュータプログラム

Publications (3)

Publication Number Publication Date
JP2014021728A JP2014021728A (ja) 2014-02-03
JP2014021728A5 JP2014021728A5 (ja) 2015-08-13
JP6021487B2 true JP6021487B2 (ja) 2016-11-09

Family

ID=49948544

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012159904A Active JP6021487B2 (ja) 2012-07-18 2012-07-18 情報処理システム、制御方法、サーバ、情報処理装置およびコンピュータプログラム

Country Status (6)

Country Link
US (2) US10601958B2 (ja)
EP (1) EP2875435B1 (ja)
JP (1) JP6021487B2 (ja)
KR (1) KR101644356B1 (ja)
RU (1) RU2620720C2 (ja)
WO (1) WO2014013701A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5963540B2 (ja) * 2012-05-30 2016-08-03 キヤノン株式会社 情報処理装置、プログラム及び制御方法
KR102300911B1 (ko) * 2014-05-15 2021-09-10 삼성전자주식회사 웹 페이지 로딩 방법 및 장치
JP6482330B2 (ja) 2015-03-09 2019-03-13 キヤノン株式会社 通信装置、通信方法、及びプログラム
WO2017010065A1 (ja) * 2015-07-10 2017-01-19 日本電気株式会社 情報処理装置および配信方法、並びにコンピュータ・プログラムを記録する記録媒体
JP6582860B2 (ja) * 2015-10-19 2019-10-02 セイコーエプソン株式会社 デバイス制御システム、デバイス、サーバー、及び、デバイス制御方法
JP6483636B2 (ja) * 2016-03-28 2019-03-13 Kddi株式会社 Webコンテンツ配信方法
US10873635B2 (en) * 2018-09-24 2020-12-22 Salesforce.Com, Inc. Multi-channel session connection management mechanism

Family Cites Families (130)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6747692B2 (en) * 1997-03-28 2004-06-08 Symbol Technologies, Inc. Portable multipurpose recording terminal and portable network server
US6415319B1 (en) * 1997-02-07 2002-07-02 Sun Microsystems, Inc. Intelligent network browser using incremental conceptual indexer
US5991302A (en) * 1997-04-10 1999-11-23 Cisco Technology, Inc. Technique for maintaining prioritization of data transferred among heterogeneous nodes of a computer network
US6341309B1 (en) * 1997-05-27 2002-01-22 Novell, Inc. Firewall system for quality of service management
US6119235A (en) * 1997-05-27 2000-09-12 Ukiah Software, Inc. Method and apparatus for quality of service management
US6085193A (en) * 1997-09-29 2000-07-04 International Business Machines Corporation Method and system for dynamically prefetching information via a server hierarchy
US6085226A (en) * 1998-01-15 2000-07-04 Microsoft Corporation Method and apparatus for utility-directed prefetching of web pages into local cache using continual computation and user models
US6330561B1 (en) * 1998-06-26 2001-12-11 At&T Corp. Method and apparatus for improving end to end performance of a data network
JP2000222296A (ja) * 1999-01-29 2000-08-11 Sharp Corp ファイルダウンロード方法、情報機器、及びコンピュータ読み取り可能な記録媒体
US6553393B1 (en) * 1999-04-26 2003-04-22 International Business Machines Coporation Method for prefetching external resources to embedded objects in a markup language data stream
US8762179B2 (en) * 1999-06-21 2014-06-24 Pets Best Insurance Services Automated insurance enrollment, underwriting, and claims adjusting
US6738803B1 (en) * 1999-09-03 2004-05-18 Cisco Technology, Inc. Proxy browser providing voice enabled web application audio control for telephony devices
US8448059B1 (en) * 1999-09-03 2013-05-21 Cisco Technology, Inc. Apparatus and method for providing browser audio control for voice enabled web applications
US6868444B1 (en) * 2000-05-05 2005-03-15 Interland, Inc. Server configuration management and tracking
DE10029792A1 (de) * 2000-06-16 2001-12-20 Siemens Ag Verfahren für eine Umwandlung einer Netzwerkadresse
US7308484B1 (en) * 2000-06-30 2007-12-11 Cisco Technology, Inc. Apparatus and methods for providing an audibly controlled user interface for audio-based communication devices
US7240358B2 (en) * 2000-12-08 2007-07-03 Digital Fountain, Inc. Methods and apparatus for scheduling, serving, receiving media-on demand for clients, servers arranged according to constraints on resources
US7219309B2 (en) * 2001-05-02 2007-05-15 Bitstream Inc. Innovations for the display of web pages
JP2003087693A (ja) * 2001-09-11 2003-03-20 Sony Corp 情報処理装置および方法、並びにプログラム
US7136635B1 (en) * 2002-03-11 2006-11-14 Nortel Networks Limited Proxy SIP server interface for session initiation communications
ES2317348T3 (es) * 2002-04-05 2009-04-16 Telefonaktiebolaget Lm Ericsson (Publ) Prioridades de transferencia de objeto en una red de comunicaciones.
US20040105445A1 (en) * 2002-06-19 2004-06-03 Jeremy Wyn-Harris Internet protocol for resource-constrained devices
US7245711B2 (en) * 2002-06-24 2007-07-17 Avaya Technology Corp. Virtual interaction queuing using internet protocols
US20040015777A1 (en) * 2002-07-22 2004-01-22 International Business Machines Corporation System and method for sorting embedded content in Web pages
US7130890B1 (en) * 2002-09-04 2006-10-31 Hewlett-Packard Development Company, L.P. Method and system for adaptively prefetching objects from a network
US7706785B2 (en) * 2003-01-22 2010-04-27 International Business Machines Corporation System and method for context-aware unified communications
US20040255003A1 (en) * 2003-06-16 2004-12-16 Tecu Kirk S. System and method for reordering the download priority of markup language objects
CA2701502C (en) * 2003-06-18 2014-08-05 Nippon Telegraph And Telephone Corporation Wireless packet communication method
US8432800B2 (en) * 2003-07-29 2013-04-30 Citrix Systems, Inc. Systems and methods for stochastic-based quality of service
US8437284B2 (en) * 2003-07-29 2013-05-07 Citrix Systems, Inc. Systems and methods for additional retransmissions of dropped packets
CN1604551B (zh) * 2003-09-10 2012-04-25 达创科技股份有限公司 无线区域网路的负载平衡决策方法
US20050138143A1 (en) * 2003-12-23 2005-06-23 Thompson Blake A. Pre-fetching linked content
US7483941B2 (en) * 2004-01-13 2009-01-27 International Business Machines Corporation System and method for dynamically inserting prefetch tags by the web server
RU2263951C2 (ru) * 2004-02-02 2005-11-10 Огородник Дмитрий Викторович Способ обработки цифровых данных в запоминающем устройстве и запоминающее устройство для осуществления способа
US7558884B2 (en) 2004-05-03 2009-07-07 Microsoft Corporation Processing information received at an auxiliary computing device
JP4270033B2 (ja) * 2004-06-11 2009-05-27 ソニー株式会社 通信システムおよび通信方法
US7437364B1 (en) * 2004-06-30 2008-10-14 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US8224964B1 (en) * 2004-06-30 2012-07-17 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US7417637B1 (en) * 2004-09-01 2008-08-26 Nvidia Corporation Fairly arbitrating between clients
US7179281B2 (en) * 2004-09-16 2007-02-20 Lester Ferdinand Health industry medical neoprene/latex cooling gel wrap around
US20060069617A1 (en) * 2004-09-27 2006-03-30 Scott Milener Method and apparatus for prefetching electronic data for enhanced browsing
US20060069618A1 (en) * 2004-09-27 2006-03-30 Scott Milener Method and apparatus for enhanced browsing
US7840911B2 (en) * 2004-09-27 2010-11-23 Scott Milener Method and apparatus for enhanced browsing
US20060074984A1 (en) * 2004-09-27 2006-04-06 Scott Milener Graphical tree depicting search or browsing history
US8732610B2 (en) * 2004-11-10 2014-05-20 Bt Web Solutions, Llc Method and apparatus for enhanced browsing, using icons to indicate status of content and/or content retrieval
US8037527B2 (en) * 2004-11-08 2011-10-11 Bt Web Solutions, Llc Method and apparatus for look-ahead security scanning
US20070011155A1 (en) * 2004-09-29 2007-01-11 Sarkar Pte. Ltd. System for communication and collaboration
JP2008521100A (ja) * 2004-11-17 2008-06-19 ザ リージェンツ オブ ザ ユニバーシティ オブ カリフォルニア ウェブページを生成するシステム及び方法
US7460558B2 (en) * 2004-12-16 2008-12-02 International Business Machines Corporation System and method for connection capacity reassignment in a multi-tier data processing system network
FR2882164A1 (fr) * 2005-02-11 2006-08-18 Canon Kk Procede et dispositif de transfert de donnees numeriques a format progressif
US7664870B2 (en) * 2005-02-25 2010-02-16 Microsoft Corporation Method and system for providing users a lower fidelity alternative until a higher fidelity experience is available
US20060282536A1 (en) * 2005-06-11 2006-12-14 Pando Networks, Inc System and method for multi-channel email communication
KR100781511B1 (ko) * 2005-06-29 2007-12-03 삼성전자주식회사 홈 네트워크를 기반으로 하는 스트리밍 서비스 방법 및시스템
US7788352B2 (en) * 2005-07-14 2010-08-31 Yahoo! Inc. System and method for servicing a user device
KR100739721B1 (ko) * 2005-08-17 2007-07-13 삼성전자주식회사 정보 제공 방법 및 푸시 모드 서비스 제공 방법
US8688673B2 (en) * 2005-09-27 2014-04-01 Sarkar Pte Ltd System for communication and collaboration
US8811954B1 (en) * 2005-10-31 2014-08-19 Genband Us Llc Network domain selection
US7996554B1 (en) * 2005-11-18 2011-08-09 Marvell International Ltd. System for improving quality of service for wireless LANs
JP4518058B2 (ja) * 2006-01-11 2010-08-04 ソニー株式会社 コンテンツ伝送システム、コンテンツ伝送装置及びコンテンツ伝送方法、並びにコンピュータ・プログラム
US8806012B2 (en) * 2006-03-31 2014-08-12 Intel Corporation Managing traffic flow on a network path
JP5077231B2 (ja) * 2006-06-30 2012-11-21 株式会社ニコン デジタルカメラ
CN101090372B (zh) * 2006-08-28 2010-05-12 华为技术有限公司 一种短信路由控制系统及方法
US20080144601A1 (en) * 2006-12-18 2008-06-19 Nokia Corporation Systems, methods, devices, and computer program products providing data replication for mobile terminals
US8201202B2 (en) * 2006-12-21 2012-06-12 Sony Corporation High quality video delivery via the internet
US20080228864A1 (en) * 2007-03-12 2008-09-18 Robert Plamondon Systems and methods for prefetching non-cacheable content for compression history
US7720936B2 (en) * 2007-03-12 2010-05-18 Citrix Systems, Inc. Systems and methods of freshening and prefreshening a DNS cache
US7706266B2 (en) * 2007-03-12 2010-04-27 Citrix Systems, Inc. Systems and methods of providing proxy-based quality of service
US8103783B2 (en) * 2007-03-12 2012-01-24 Citrix Systems, Inc. Systems and methods of providing security and reliability to proxy caches
US7809818B2 (en) * 2007-03-12 2010-10-05 Citrix Systems, Inc. Systems and method of using HTTP head command for prefetching
US8504775B2 (en) * 2007-03-12 2013-08-06 Citrix Systems, Inc Systems and methods of prefreshening cached objects based on user's current web page
US7453379B2 (en) * 2007-03-12 2008-11-18 Citrix Systems, Inc. Systems and methods for identifying long matches of data in a compression history
US7584294B2 (en) * 2007-03-12 2009-09-01 Citrix Systems, Inc. Systems and methods for prefetching objects for caching using QOS
US7460038B2 (en) * 2007-03-12 2008-12-02 Citrix Systems, Inc. Systems and methods of clustered sharing of compression histories
US7796510B2 (en) * 2007-03-12 2010-09-14 Citrix Systems, Inc. Systems and methods for providing virtual fair queueing of network traffic
US7783757B2 (en) * 2007-03-12 2010-08-24 Citrix Systems, Inc. Systems and methods of revalidating cached objects in parallel with request for object
US8037126B2 (en) * 2007-03-12 2011-10-11 Citrix Systems, Inc. Systems and methods of dynamically checking freshness of cached objects based on link status
US8074028B2 (en) * 2007-03-12 2011-12-06 Citrix Systems, Inc. Systems and methods of providing a multi-tier cache
US7760642B2 (en) * 2007-03-12 2010-07-20 Citrix Systems, Inc. Systems and methods for providing quality of service precedence in TCP congestion control
US8701010B2 (en) * 2007-03-12 2014-04-15 Citrix Systems, Inc. Systems and methods of using the refresh button to determine freshness policy
EP2210188A1 (en) * 2007-11-05 2010-07-28 Limelight Networks, Inc. End to end data transfer
US8792916B2 (en) * 2008-01-14 2014-07-29 Blackberry Limited Dynamic prioritization of label downloads
JP2009205440A (ja) * 2008-02-28 2009-09-10 Hitachi Ltd 情報処理装置
US8028081B2 (en) * 2008-05-23 2011-09-27 Porto Technology, Llc System and method for adaptive segment prefetching of streaming media
US7941538B2 (en) * 2008-06-12 2011-05-10 International Business Machines Corporation Dynamic management of resource utilization
US7975025B1 (en) * 2008-07-08 2011-07-05 F5 Networks, Inc. Smart prefetching of data over a network
JP5224964B2 (ja) * 2008-07-31 2013-07-03 キヤノン株式会社 受信装置の受信方法及び受信装置並びにプログラム
WO2010042580A1 (en) * 2008-10-08 2010-04-15 Citrix Systems, Inc. Systems and methods for allocating bandwidth by an intermediary for flow control
WO2010042578A1 (en) * 2008-10-08 2010-04-15 Citrix Systems, Inc. Systems and methods for real-time endpoint application flow control with network structure component
WO2010060438A1 (en) * 2008-11-03 2010-06-03 Telefonaktiebolaget Lm Ericsson (Publ) Pre-fetching of data in a mobile communications environment
US20100172343A1 (en) * 2009-01-02 2010-07-08 Microsoft Corporation Dynamic Network Classification
WO2010096683A1 (en) * 2009-02-20 2010-08-26 Citrix Systems, Inc. Systems and methods for intermediaries to compress data communicated via a remote display protocol
US9667918B2 (en) * 2009-02-20 2017-05-30 At&T Intellectual Property I, L.P. Network recording system
US9935792B2 (en) * 2009-02-24 2018-04-03 Blackberry Limited System and method for switching between conversations in instant messaging applications
US9171097B2 (en) * 2009-03-31 2015-10-27 Qualcomm Incorporated Memoizing web-browsing computation with DOM-based isomorphism
CN102460393B (zh) * 2009-05-01 2014-05-07 思杰系统有限公司 用于在虚拟存储资源之间建立云桥的系统和方法
JP2010278800A (ja) * 2009-05-29 2010-12-09 Hitachi Ltd コンテンツ処理装置及びコンテンツ処理方法
US20130254314A1 (en) * 2009-06-09 2013-09-26 Edmond K. Chow Digital content delivery
US9135363B2 (en) * 2009-06-09 2015-09-15 Gvoto (Hong Kong) Ltd. Methods and systems for automatic content retrieval and organization
US20100325245A1 (en) * 2009-06-17 2010-12-23 Agostino Sibillo Aggregated proxy browser with aggregated links, systems and methods
US8032624B2 (en) * 2009-06-19 2011-10-04 Avaya Inc. Pluggable contact resolution
WO2011008515A2 (en) * 2009-06-29 2011-01-20 Bigfoot Networks, Inc. Technique for setting network communication parameters
JP2011141867A (ja) 2009-12-10 2011-07-21 Sharp Corp データ表示装置およびサーバ装置
US8626621B2 (en) * 2010-03-02 2014-01-07 Microsoft Corporation Content stream management
US9307003B1 (en) * 2010-04-18 2016-04-05 Viasat, Inc. Web hierarchy modeling
CN102986189B (zh) * 2010-05-09 2016-04-27 思杰系统有限公司 用于为对应于虚通道的网络连接分配服务等级的系统和方法
US8478836B1 (en) * 2010-06-07 2013-07-02 Purplecomm Inc. Proxy cache technology
US8990380B2 (en) * 2010-08-12 2015-03-24 Citrix Systems, Inc. Systems and methods for quality of service of ICA published applications
US8792491B2 (en) * 2010-08-12 2014-07-29 Citrix Systems, Inc. Systems and methods for multi-level quality of service classification in an intermediary device
US8638795B2 (en) * 2010-08-12 2014-01-28 Citrix Systems, Inc. Systems and methods for quality of service of encrypted network traffic
US8868644B2 (en) * 2010-11-15 2014-10-21 Google Inc. Mechanism for message prefetching in an intermittently connected offline-capable mobile web application
US20120124142A1 (en) * 2010-11-15 2012-05-17 Robert Kroeger Light-Weight Method for Delivering the Smallest Set of New Messages to a Conversation Cache on an Intermittently Connected Mobile Email Client
CN102185887B (zh) * 2011-01-04 2015-07-08 华为终端有限公司 终端的文件下载方法及系统
US8620999B1 (en) * 2011-01-12 2013-12-31 Israel L'Heureux Network resource modification for higher network connection concurrence
EP2684346B1 (en) * 2011-03-10 2014-12-03 Telefonaktiebolaget L M Ericsson (PUBL) Method and apparatus for prioritizing media within an electronic conference according to utilization settings at respective conference participants
US9237106B2 (en) * 2011-03-11 2016-01-12 Citrix Systems, Inc. Systems and methods of QoS for single stream ICA
US20130103791A1 (en) * 2011-05-19 2013-04-25 Cotendo, Inc. Optimizing content delivery over a protocol that enables request multiplexing and flow control
US8812658B1 (en) * 2011-05-20 2014-08-19 Amazon Technologies, Inc. Pre-fetching of network page content
US8831041B2 (en) * 2011-06-27 2014-09-09 Citrix Systems, Inc. Prioritizing highly compressed traffic to provide a predetermined quality of service
US20130100819A1 (en) * 2011-10-19 2013-04-25 Qualcomm Incorporated Selectively acquiring and advertising a connection between a user equipment and a wireless local area network
US9002973B2 (en) * 2011-10-21 2015-04-07 Fisher Controls International Llc Delayed publishing in process control systems
US9389088B2 (en) * 2011-12-12 2016-07-12 Google Inc. Method of pre-fetching map data for rendering and offline routing
EP2795916A4 (en) * 2011-12-21 2015-08-05 Intel Corp ON A USER BEHAVIOR BASED DATA TRANSFER IN DEVICES
US9241170B1 (en) * 2012-01-18 2016-01-19 Google Inc. Adaptive streaming using chunked time-to-offset mapping
US9401968B2 (en) * 2012-01-20 2016-07-26 Nokia Techologies Oy Method and apparatus for enabling pre-fetching of media
JP6059037B2 (ja) 2012-03-02 2017-01-11 キヤノン株式会社 通信システム、クライアント装置、サーバ装置、通信方法、及びプログラム
US9307004B1 (en) * 2012-03-28 2016-04-05 Amazon Technologies, Inc. Prioritized content transmission
JP5924096B2 (ja) * 2012-04-18 2016-05-25 富士通株式会社 通信システムの制御方法、通信装置、通信システム及びプログラム
US9438701B2 (en) * 2012-05-05 2016-09-06 Citrix Systems, Inc. Systems and methods for a SPDY to HTTP gateway
US9060207B2 (en) * 2012-08-20 2015-06-16 Google Inc. Adaptive video streaming over a content delivery network
US20170019506A1 (en) * 2014-03-27 2017-01-19 Lg Electronics Inc. Spdy-based web acceleration method and spdy proxy therefor

Also Published As

Publication number Publication date
EP2875435A1 (en) 2015-05-27
US11258882B2 (en) 2022-02-22
RU2014152794A (ru) 2016-09-10
US20140297723A1 (en) 2014-10-02
WO2014013701A1 (en) 2014-01-23
US20200252483A1 (en) 2020-08-06
KR101644356B1 (ko) 2016-08-01
RU2620720C2 (ru) 2017-05-29
EP2875435B1 (en) 2019-05-22
JP2014021728A (ja) 2014-02-03
EP2875435A4 (en) 2016-03-16
US10601958B2 (en) 2020-03-24
KR20150023742A (ko) 2015-03-05

Similar Documents

Publication Publication Date Title
JP6021487B2 (ja) 情報処理システム、制御方法、サーバ、情報処理装置およびコンピュータプログラム
US6795848B1 (en) System and method of reading ahead of objects for delivery to an HTTP proxy server
KR101978180B1 (ko) 클라이언트 장치에서 어플리케이션의 사용자 경험을 제어하는 방법 및 시스템
JP6289092B2 (ja) 情報処理装置、その制御方法およびコンピュータプログラム
JP7018498B2 (ja) プロキシベースのネットワーク通信における制御データのトランスポート
US20120194519A1 (en) Image Optimization
TWI234717B (en) Method and system for dynamically determining web resource to be loaded and saving space
TWI475490B (zh) 虛擬檔案傳輸系統及其虛擬檔案傳輸之方法
JP4554723B2 (ja) ネットワーク応答バッファリング動作の管理
JP5251701B2 (ja) サーバ装置、サーバベース・コンピューティング・システム、およびサーバ制御プログラム
CN112954013A (zh) 一种网络文件信息获取方法、装置、设备及存储介质
US20140195596A1 (en) Communication equipment and communication control method
CA3060005A1 (en) Systems and methods for retrieving web data
GB2543279A (en) Methods, devices and computer programs for optimizing use of bandwidth when pushing data in a network environment comprising cache servers
US10296580B1 (en) Delivering parsed content items
JP5982436B2 (ja) 画面転送サーバ装置、および画面転送方法
JP5637406B2 (ja) データ送信装置、およびプログラム
US9218351B2 (en) Information processing apparatus, storage medium, and control method
JP2008217532A (ja) Wwwコンテンツ取得システム及びwwwコンテンツ取得方法
JP2013251598A (ja) 情報処理装置、プログラム及び制御方法
US20130135664A1 (en) Storage of processed content for printing
JP5980428B2 (ja) 通信装置、応答データ生成方法、および、プログラム
JP2007094830A (ja) Webサーバ装置
KR20090040707A (ko) 오브젝트 전송 시스템 및 그 제어방법
JP2007196566A (ja) 画像形成装置及び制御プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150624

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160722

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160906

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161004

R151 Written notification of patent or utility model registration

Ref document number: 6021487

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151