JP6289092B2 - 情報処理装置、その制御方法およびコンピュータプログラム - Google Patents

情報処理装置、その制御方法およびコンピュータプログラム Download PDF

Info

Publication number
JP6289092B2
JP6289092B2 JP2013270559A JP2013270559A JP6289092B2 JP 6289092 B2 JP6289092 B2 JP 6289092B2 JP 2013270559 A JP2013270559 A JP 2013270559A JP 2013270559 A JP2013270559 A JP 2013270559A JP 6289092 B2 JP6289092 B2 JP 6289092B2
Authority
JP
Japan
Prior art keywords
communication
file
communication connection
server device
acquired
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
JP2013270559A
Other languages
English (en)
Other versions
JP2015125657A (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
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2013270559A priority Critical patent/JP6289092B2/ja
Priority to US14/559,232 priority patent/US9906581B2/en
Publication of JP2015125657A publication Critical patent/JP2015125657A/ja
Application granted granted Critical
Publication of JP6289092B2 publication Critical patent/JP6289092B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、動的に生成されるコンテンツの取得を高速化する技術に関する。
ユーザからのコンテンツ取得要求に応じて動的にコンテンツを生成するWebサービスが提案されている。例えば、電子メールを利用した印刷サービス、クラウドシステムを利用したデータフォーマット変換サービス等が挙げられる。Webサービスはインターネットを利用して提供されるため、既存の仕組みに比べると、通信品質が一定ではない。そのため、通信中に通信が切断されてしまう場合もある。このような場合に備え、途中で通信が切断された場合でも効率的に処理を再開する方法が提案されている(特許文献1)。
特開2013−49204号公報
しかし、動的にコンテンツを生成するWebサービスの場合、クライアントコンピュータがコンテンツを取得するためにサーバコンピュータとの通信を確立した時点で、コンテンツが用意されていない場合がある。
コンテンツが用意されていないにも関わらず取得を試みた場合、サーバコンピュータから通信を切断される可能性がある。特にWebサーバがクライアントコンピュータに対してエラーを返信する場合、一般的に接続はWebサーバ側から切断される。この場合、クライアントコンピュータはWebサーバに対して再接続が必要となるが、TCPにおいては、再接続すると輻輳回避アルゴリズムの影響で通信速度が低下する。特にモバイル通信や大陸間通信などの長距離環境では、その影響が顕著に発生する。
本発明は、複数の通信コネクションを利用し、コンテンツ取得用の通信コネクションを維持することによりサーバ装置とのデータ通信の高速化を実現する情報処理装置を提供することを目的とする。
本発明の一実施形態の情報処理装置は、サーバ装置との第1の通信コネクションを確立して、コンテンツを動的に生成する前記サーバ装置から前記コンテンツが生成されたか否かを示す情報を取得する第1の通信手段と、前記サーバ装置との第2の通信コネクションを確立して、前記第1の通信手段により取得された情報を基に生成された前記コンテンツを取得する第2の通信手段とを備える。前記第2の通信手段は、前記コンテンツの取得が完了するまで前記第2の通信コネクションを維持する。
本発明の情報処理装置によれば、複数の通信コネクションを利用し、コンテンツ取得用の通信コネクションを維持することによりWebサーバとのデータ通信の高速化を実現することが可能となる。
本発明の一実施形態のネットワーク構成例を示す図である。 本発明のサーバまたは情報処理装置のハードウェア構成例を示す図である。 本発明のサーバまたは情報処理装置のソフトウェア構成例を示す図である。 データ取得処理部によるダウンロード処理のフローチャートである。 データ取得処理部によるファイル取得処理のフローチャートである。 本発明の効果を示す、時間に対する輻輳ウィンドウサイズのグラフである。 実施例2における情報処理装置のソフトウェア構成例を示す図である。 マルチTCPコネクションによるデータ取得処理のフローチャートである。 ダウンロード負担量算出処理のフローチャートである。
まず、本明細書で用いる用語について定義する。TCP(Transmission Control Protocol)とは、ファイルの送受信などの信頼性を要求する通信に一般的に利用されるプロトコルである。TCPの詳細はhttp://tools.ietf.org/html/rfc793を参照されたい。
HTTP(Hypertext Transfer Protocol)とは、WebクライアントとWebサーバの間で各種コンテンツの送受信に用いられるプロトコルである。HTTPの詳細はhttp://tools.ietf.org/html/rfc2616を参照されたい。Webサービスでは、このHTTPを使用して通信を行う。
ソケットとは、TCPレイヤ上の通信路を識別、分類するための表記である。多くの場合、IPプロトコルを下位レイヤとして用いるのが一般的であり、この場合、IPアドレスとTCPポート番号の組のことを指す。
TCPコネクションとは、TCPレイヤにおけるひとつの通信路を意味する。具体的には受信側ソケットと送信側ソケットの組のことである。
受信ウィンドウサイズとは、TCPプロトコルにおける、受信用のバッファ領域のサイズである。
送信ウィンドウサイズとは、TCPプロトコルにおける、送信用のバッファ領域のサイズである。
TCPは、残り受信ウィンドウサイズを送信側に通知することにより、バッファ溢れを防ぐことが出来る。また、TCPは送信ウィンドウサイズを徐々に大きくすることにより、通信速度の向上を試みる。一方で、送信ウィンドウサイズを単に大きくすると、通信路の輻輳に繋がるため、これらウィンドウサイズの制御を行う輻輳回避アルゴリズムが必要である。広く知られている輻輳回避アルゴリズムには、Tahoe、Reno等がある。
本明細書において、セッションとは1本以上のTCPコネクションを束ねたものを意味する。前記セッションは、ファイルを分割して送受信する際に使われる複数のTCPコネクションを束ねたものである。
(実施例1)
図1は、本発明の一実施形態のシステム構成例を示す。図1に示すシステムは、クライアントコンピュータ103、画像処理装置104、サーバコンピュータ101から構成される。また、クライアントコンピュータ103と画像処理装置104は、無線ルータ102とインターネット100を介してサーバコンピュータ101と接続可能である。インターネット100は、ファイアウォールを越えて上述の各装置間で情報をやり取りするための通信回線である。インターネット100は、例えば、TCP/IPプロトコルなどをサポートする通信回線網である。図1では、サーバコンピュータ101は、1台のサーバコンピュータ101として示されているが複数台のサーバコンピュータ群で構成されていても構わない。また、仮想PCとして構成されていても構わない。
無線ルータ102は、インターネット100と接続されている。無線ルータ102は、クライアントコンピュータ103と無線通信が可能であり、画像処理装置104とも有線、または無線で通信可能である。また、クライアントコンピュータ103と画像処理装置104は、無線ルータ102を経由して互いに通信可能である。
図2は、図1に示す情報処理装置として機能するクライアントコンピュータ103またはサーバ装置として機能するサーバコンピュータ101のハードウェア構成例を説明するブロック図である。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器から成るシステムであっても、本発明を適用できることは言うまでもない。また、特に断らない限り、本発明の機能が実行されるのであれば、LAN、WAN、WWAN、インターネット等のネットワークを介して接続が為され処理が行われるシステムであっても本発明を適用できることは言うまでもない。なお、LA、WAN、WWANはそれぞれ、Local Area Network、Wide Area Network、Wireless Wide Area Networkの略称である。
クライアントコンピュータ103またはサーバコンピュータ101のコンピュータ200は、CPU201、ROM202、RAM203、外部記憶装置205、ネットワークI/F制御部206を備える。各処理部は、システムバス204を介して相互にデータを送受信する。CPU201は、システムバス204に接続される各デバイスを統括的に制御する。また、CPU201は、ROM202のプログラム用ROMまたは外部記憶装置205に記憶された文書処理プログラム等に基づいて、図形、イメージ、文字、表(表計算等を含む)等、様々な処理を実行する。コンピュータ200の構成は上述の処理部に限定されず、他の入出力装置を備えていても良い。また、クライアントコンピュータ103またはサーバコンピュータ101は、無線通信によって接続が確立されていても良い。なお、CPU、ROM、RAMはそれぞれ、Central Processing Unit、Read Only Memory、Random Access Memoryの略称である。
本発明を実現するためのプログラムは、ROM202、RAM203または外部記憶装置205に格納されており、CPU201が実行することにより各処理が実現される。また、このROM202のプログラム用ROMまたは外部記憶装置205は、CPU201の制御プログラムであるオペレーションシステム等を記憶する。また、ROM202のデータ用ROMまたは外部記憶装置205は、本発明を実現するためのプログラムを含む各種データを記憶する。RAM203は、CPU201の主メモリ、ワークエリア等として機能し、ネットワークI/F制御部206は、LAN207とのデータの送受信を制御する。
図3は、コンピュータ200のソフトウェア構成例を示す。図3に示すコンピュータは、上位レイヤアプリケーション301乃至ネットワークI/F308を備える。TCPレイヤまでの管理機構はRFC793によって定義される伝送制御プロトコルを満たし、利用可能なAPIが提供されていればどのような実施方法でも構わない。すなわち、TCP管理処理部306および下位レイヤ管理処理部307が適切なAPIを提供していれば、その実装は問わない。このTCP管理処理部306および下位レイヤ管理処理部307は、多くの場合、オペレーティングシステムが提供することが一般的であるが、本発明が必要とする管理機構が直接実装していても構わない。その実施方法は一般的に広く知られているため、詳細に記述しない。
ダウンロード管理処理部303は、複数のTCPコネクションを用いた受信処理を管理し、上位レイヤアプリケーション301へのインタフェースを提供する。また下位レイヤに対してデータの送受信も管理する。ダウンロード管理処理部303は全ての処理を行わず、データ取得処理部304にTCPコネクションの処理を委譲する。
本実施例では、このダウンロード管理処理部303およびデータ取得処理部304を1つのソフトウェアライブラリの形で記述する。しかし、オペレーティングシステムそのものに本機能を実施したり、外部ネットワークとのインタフェースであるネットワークI/F308のハードウェアに実装しても構わない。すなわち、同等の機能及びインタフェースが上位レイヤアプリケーション301に提供できれば、実施箇所は問わない。
データ取得処理部304は、TCPコネクションを管理する。具体的には、TCPコネクションの接続、データの送受信等を管理し、その結果を上位レイヤアプリケーション301に通知する。また、データ取得処理部304は、サーバコンピュータ101から受信したデータを転送データ記憶部302に記憶させる。
ここで、クライアントコンピュータ103をモバイル端末とし、モバイル端末から画像処理装置104へ印刷をする際、サーバコンピュータ101がモバイル端末から受け取った画像を画像処理装置が理解できる画像へと変換するサービスを考える。このモバイル端末が、本発明を実現する情報処理装置として機能する。なお、本実施例では、使用する通信プロトコルとしてHTTPを用いる。もちろん、他のプロトコルや独自のものを用いても良い。
本発明の特徴を示すため、クライアントコンピュータ103の実施について詳細に説明する。なお、サーバコンピュータ101は一般的なHTTPサーバの機能を満たし、HTTP1.1におけるKeep−Alive機能および、GETコマンドとHEADコマンドが使用可能とする。
次に、本発明を用いたデータの送受信について説明する。図4は、通信開始時の処理のフローを示す。まず、ダウンロード管理処理部303は、上位レイヤアプリケーション301から通信開始の要求を受け取る。次に、ダウンロード管理処理部303は、データ取得処理部304に上位レイヤアプリケーション301から得た情報を渡し、コンテンツのダウンロードを依頼する。データ取得処理部304は、ダウンロードしたいURIを元にTCPマルチコネクション処理(400)を行う。
S401にて、データ取得処理部304は、サーバコンピュータ101に対してファイルサイズ取得用のTCPコネクションの接続を確立する。ここでサイズとは、HTTPにおける、Content−Lengthヘッダを指す。すなわち、ダウンロードしたいファイルのサイズを取得するためだけの専用のTCPコネクションの接続を行う。このサイズ取得コネクションは、ダウンロードしたいファイルのサイズを取得する以外に、サーバコンピュータ101が該当ファイルの生成が完了したかどうかの確認をするために使用される。
S402では、データ取得処理部304は、URLリストをサーバコンピュータ101から取得する。ここでURLリストとは、サーバコンピュータ101が生成する予定のファイルのURLのリストを指す。URLリストには、クライアントコンピュータ103が取得すべきファイルのURLが記述されているが、この時点でファイルが完成している保証は無い。もし完成していないファイルを取得しようとした場合、サーバコンピュータ101からエラーのHTTPレスポンスが返される。
S403にて、データ取得処理部304は、ファイル取得スレッドの初期化、およびスレッドの開始を行う。ファイル取得スレッドは、HTTPレスポンスにおけるヘッダ以外の部分、すなわちボディ部を指し、画像処理装置が印刷できるデータの一部分を含む。また、この時点で、HTTPのボディ部取得のための専用スレッドが開始される。なお、ファイル取得スレッドの開始(S403)で使用するスレッドはOSのネイティブスレッドで無くとも良いし、複数のTCPコネクションを扱えれば、ひとつのスレッドで実施してもよい。
S404において、ダウンロードが未完了のファイルが存在した場合、データ取得処理部304は残りのダウンロード処理を行うため、S405に遷移する。一方で全てのダウンロードが完了した場合、処理はS410に遷移する。
S405にて、データ取得処理部304は、URLリストからファイルサイズが取得できていない次のファイルを選択し、サーバコンピュータ101から該当ファイルのファイルサイズを取得する。データ取得処理部304は、HTTPのHEADコマンドを用いることでファイルサイズ部を含むヘッダのみのレスポンスを得ることが出来る。本実施例ではHTTPが用いられるが、ファイルサイズを取得できるプロトコルや、コンテンツ生成を確認出来る方法があれば、どのようなプロトコルであっても良い。
S406にて、データ取得処理部304は、正常にファイルサイズがサーバコンピュータ101から取得出来た場合、S407にてファイル取得スレッドに該当ファイルのダウンロードを指示する。一方で正常にファイルサイズが取得できなかった場合、S408に遷移する。なお、S405で得たHTTPレスポンスの内容から、致命的なエラーであると判断した場合、即座に異常系の処理を行う。つまり、S408への処理の遷移は、ファイルが未完成の場合など、ファイル取得が期待出来る場合に限られる。
S408において、データ取得処理部304は一定時間待機する。S408における待機はサーバコンピュータ101のファイル生成を待つものであり、待機時間は一定時間やサーバコンピュータ101から何らかのヒントを得て、動的に変える手法であっても良い。
データ取得処理部304は、S408にて待機後、S409にてファイルサイズ取得用TCPコネクションの再接続を行う。その後、処理はS405に遷移し、データ取得処理部304はサーバコンピュータ101からファイルサイズの取得を試みる。
S410にて、データ取得処理部304はファイルサイズ取得用コネクションを切断する。その後、S411においてファイル取得スレッドに終了を通知し、S412にてファイル取得スレッドの処理が終了するまで待機する。全ての処理が終了後、S413にて、データ取得処理部304は上位レイヤアプリケーション301にダウンロードの完了を通知する。
次に、ファイル取得スレッドの処理を表すファイル取得処理(500)について、図5を用いて説明する。S501にて、データ取得処理部304はメインスレッドから指示があるかどうかを確認する。ここでメインスレッドとは、ダウンロード処理(400)の処理を指す。ここでの指示とはS407、S411で行われる通知のことを指す。
メインスレッドから指示が無いと判断した場合、S502にて、データ取得処理部304は指示が来るまで待機する。
S501でメインスレッドからのダウンロード指示があると判断した場合、処理はS503に遷移する。S503にて、データ取得処理部304は、メインスレッドから指示されたダウンロードサイズ分の領域を転送データ記憶部302に確保する。
S504において、データ取得処理部304は、ファイル取得用TCPコネクションがサーバコンピュータ101と接続済みであるかどうかを確認する。もし、接続されていなかった場合、S505にてサーバコンピュータ101に対してTCPコネクションを確立する。
S506にて、データ取得処理部304は、メインスレッドから指示されたファイルのダウンロードを開始する。正常にダウンロードが完了後、S507にて取得ファイルを上位レイヤアプリケーション301に譲渡する。なお、本実施例ではダウンロード完了後に上位レイヤアプリケーション301に取得データを譲渡しているが、サーバコンピュータ101からの取得途中に逐一譲渡しても良い。また、本実施例では上位レイヤアプリケーション301は画像処理装置への印刷を行うため、S507にて譲渡される度に上位レイヤアプリケーション301は画像処理装置へ印刷データを送信する。この、ファイルのダウンロード処理と画像処理装置への印刷処理は並列に行っても良い。
S501にてデータ取得処理部304がメインスレッドから終了指示を受け取った場合、処理はS508に遷移する。S508では、データ取得処理部304は、ファイル取得用コネクションを切断し、S509にてメインスレッドに終了を通知する。ここでS509の通知は、メインスレッドの処理であるS412に該当する。
なお、ファイル取得スレッドが使用するファイル取得用TCPコネクションは無通信時間が存在する可能性があるため、キープアライブと呼ばれる接続確認のための通信を定期的に行っても良い。
図6を用いて、本実施例によるTCP通信の挙動の変化について説明する。図6のグラフの横軸は時間であり、縦軸は輻輳ウィンドウサイズを表す。輻輳ウィンドウサイズは、TCP通信において通信路に大量のパケットが流れることによる輻輳が発生しないように、一度に送信するデータ量を制限するために用いられる。TCPにおける輻輳回避アルゴリズムは様々なものがあるが、小さな輻輳ウィンドウサイズから徐々に増加させ、パケット損失や応答の遅延などの検出により、輻輳ウィンドウサイズを再び小さくする手法が一般的である。輻輳ウィンドウサイズは、応答無しに一度に送信できるパケットの量であるから、図6における縦軸は転送速度であると捉えても良い。
図6(A)は既存の手法で転送した場合、図6(B)は本実施例を適用した場合を示している。図6に示す例では、クライアントコンピュータ103がサーバコンピュータ101から2つのページをダウンロードする際の輻輳ウィンドウサイズの変化が示されている。図6(A)では、1ページ目のダウンロード後にサーバコンピュータ101からコネクションが切断されている。コネクションが切断される理由としては、サーバコンピュータ101による2ページ目の生成が完成しないうちに、クライアントコンピュータ103が2ページ目の要求を行うことが挙げられる。この場合、1ページ目のダウンロード後にTCPコネクションの再接続が必要となり、TCPコネクションの再接続は輻輳ウィンドウサイズの調整が再び必要となるため、帯域幅を十分に生かせない結果となる。
図6(B)では、2ページ目の生成前に取得を要求したとしても、切断されるのはファイルサイズ取得用コネクションであり、実際にダウンロードを行うファイル取得用コネクションは切断されない。その結果、一時的にダウンロードが中断したとしてもファイル取得用コネクションの接続は維持されるため、輻輳ウィンドウサイズは維持される。よって、再接続による、速度低下を回避出来るため、2ページ以降に対して帯域幅を有効に活用できる。
以上、本発明の情報処理装置によれば、複数の通信コネクションを利用し、Webサーバからコンテンツを取得するまで通信コネクションを維持することによりデータ通信の高速化を実現することが可能となる。取得用TCPコネクションの切断、再接続を回避することができるため、TCP輻輳回避アルゴリズムのスロースタートの弊害を回避出来る。そのため、サーバコンピュータとクライアントコンピュータはより高速に通信を行うことが出来る。特に長距離広帯域環境で高速に通信できるようになる。
(実施例2)
実施例1におけるダウンロード管理処理部303では、サイズ取得用コネクションとファイル取得用コネクションを使い分けることにより、サーバコンピュータ101からの切断に足して、輻輳ウィンドウサイズを維持する方法を示した。本実施例では、実施例1に加えサーバコンピュータ101からのファイルのダウンロードをマルチTCPコネクション化する手法を示す。
なお、サーバコンピュータ101は実施例1の要件に加え、分割ダウンロードに必要なRangeヘッダを使用可能とする。また、ダウンロード管理処理部303およびデータ取得処理部304が行う、マルチTCPコネクションを用いた分割受信という手法は、一般的に広く知られているため、その基本的な動作は記述しない。
ここで、マルチTCPコネクションを用いた分割受信とは、何らかのファイルをサーバコンピュータ101からダウンロードしたい場合、そのファイルを分割し、複数のTCPコネクションを用いて並列にダウンロードする手法である。この手法を用いることで、TCPの持つ、遅延の大きい環境における速度の低下を軽減することが出来る。
例えば、固定TCPコネクション数でファイルサイズを基に等分で分割する手法であっても良いし、通信状況に応じてTCPコネクション数を動的に増減させる手法、または、ユーザにTCPコネクション数を問い合わせる手法などであっても良い。本実施例では、上位レイヤアプリケーション301からダウンロード管理処理部303に対して、TCPコネクション数が渡されるものとする。
図7を用いて、本実施例のソフトウェア構成の説明を行う。転送速度記憶部701を除き、実施例1と同じ構成であり、共通部分の説明は省く。転送速度記憶部701は、各TCPコネクションの転送速度を記憶しておく領域であり、次に取得すべきファイルの分担量の割り当ての際に用いる。転送速度記憶部701はRAM203や、外部記憶装置205などに確保される。また、必要であればコンピュータ外部に確保されていても良い。
次に、図8を用いて、マルチTCPコネクション通信を行うデータ取得処理部304の動作を説明する。図8は、実施例1で説明したファイル取得処理(500)と重複部分がある。重複部分は実施例1で説明済みのため、ここでは説明しない。
S801にて、データ取得処理部304は、上位レイヤアプリケーション301から分割数を取得する。この分割数は上位レイヤアプリケーション301の都合に応じて指定される。例えば、サーバコンピュータ101に負荷をかけたくない場合は少なく、より高速化を望む場合は多く指定される。
S802にて、データ取得処理部304は、サーバコンピュータ101に対しS801で取得した分割数分、TCPコネクションの接続を確立する。次にデータ取得処理部304は、ダウンロード負担量算出処理(900)を行う。このダウンロード負担量算出処理(900)は、各TCPコネクションに最適な負担量を算出処理である。データ取得処理部304は、S900にて算出した負担量を基にダウンロードを開始すると共に、それまでの各TCPコネクションの転送速度をS803にて転送速度記憶部701に格納する。メインスレッドから終了通知が来た場合、データ取得処理部304はS804にて接続していた各TCPコネクションを全て切断する。
続いて、図9を用いてダウンロード負担量算出処理(900)について詳細に説明する。S901にて、データ取得処理部304は、初期ファイル、つまり最初のファイルのダウンロード要求であるかどうかを確認する。もし最初のファイルであればS902に遷移し、各TCPコネクションに均等となるよう取得負担量を算出する。一方で最初のファイルのダウンロード要求で無かった場合、S903に遷移する。
S903にて、データ取得処理部304は、転送完了済みTCPコネクションがあるどうかを確認する。1つも転送完了済みTCPコネクションが無かった場合、S904に遷移し、1つ以上のTCPコネクションが転送完了するまで待機する。転送が完了しているTCPコネクションがあった場合、S905に遷移する。
S905にて、データ取得処理部304は、転送速度記憶部701から各TCPコネクションの転送速度を取得する。次にS906にて、データ取得処理部304は、転送が未完了のTCPコネクションのダウンロード残量も取得する。ダウンロード残量は次のファイルのダウンロード負担量算出のため必要となる。
S907にて、データ取得処理部304は、各TCPコネクションの分担量を算出する。このダウンロード分担量は、ダウンロード要求のあった次のファイルのダウンロード時間が最短となるよう算出する。ダウンロード時間を短縮できるような手法であれば、どのような算出方法であってもよい。本実施例ではダウンロード要求のあった次に取得すべきファイルのサイズと、S905で取得した転送速度、およびS906で取得したダウンロード残量から算出する。換言すれば、データ取得処理部304は、ファイルが初期ファイルでなければ、各TCPコネクションの通信速度に応じて、取得すべきファイル毎に各TCPコネクションに振り分ける負担量を変更する。
具体的な算出法は、まず転送速度とダウンロード残量から残りのダウンロードが完了するまでの時間を算出する。データ取得処理部304は、ダウンロード未完了のTCPコネクションの中で、最も残りのダウンロードが完了するまでの時間がかかるものを選択する。選択したTCPコネクションのダウンロード時間分をダウンロードが完了しているTCPコネクションの転送速度から推定ダウンロード量として加算する。データ取得処理部304は、推定ダウンロード量がダウンロード要求のあったファイルのサイズを上回るか、ダウンロード未完了のTCPコネクションが全て計算済みになるまで、この処理を繰り返す。最終的に推定ダウンロード量がダウンロード要求のあったファイルのサイズを下回った場合、データ取得処理部304は、各TCPコネクションの転送速度に比例して残りのサイズの分担を決定する。
最後に、データ取得処理部304はS908にて算出した分担量を返却し処理から戻る。以上、説明した本実施例によれば、個々のTCPコネクションの転送速度が異なる環境化においても、各ファイルのダウンロード完了時間をより短縮することが出来る。
(他の実施形態)
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良い。また仮想化OSなどで構成される場合も含めて一つの機器からなる装置に適用しても良い。さらに、情報処理装置がインターネットを経由したクラウドコンピューティングで構成されるシステムに適用しても良い。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムを読み出して実行することによっても達成され得る。その場合、プログラムの機能を有していれば、形態は、プログラムである必要はない。
また、プログラムの実行環境は、パーソナルコンピュータやパーソナルコンピュータでのオペレーションシステムを仮想化した仮想PCやリモートPCを含む。さらには、画像処理装置、プリンタやMFP(マルチファンクションペリフェラル)等の組み込みコンピュータで実行される場合も含まれる。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明のクレームでは、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記録媒体としては、様々なものが使用できる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリ、不揮発性のメモリカード、ROM、DVDなどである。
その他、プログラムの供給方法としては、クライアントコンピュータ103のブラウザを用いてインターネットのホームページに接続し、該ホームページからハードディスク等の記録媒体にダウンロードすることによっても供給できる。その場合、ダウンロードされるのは、本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明のクレームに含まれるものである。
また、本発明のプログラムを暗号化してDVD−ROM等の記憶媒体に格納してユーザに配布する形態としても良い。その場合、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムが実行可能な形式でコンピュータにインストールされるようにする。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される形態以外の形態でも実現可能である。例えば、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
更に、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれるようにしてもよい。この場合、その後で、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。

Claims (11)

  1. サーバ装置との第1の通信コネクションを確立して、コンテンツを動的に生成する前記サーバ装置から前記コンテンツが生成されたか否かを示す情報を取得する第1の通信手段と、
    前記サーバ装置との第2の通信コネクションを確立して、前記第1の通信手段により取得された情報を基に生成された前記コンテンツを取得する第2の通信手段とを備え、
    前記第2の通信手段は、前記コンテンツの取得が完了するまで前記第2の通信コネクションを維持する
    ことを特徴とする情報処理装置。
  2. 前記第1の通信手段は、前記コンテンツの各ファイルサイズを取得し、
    前記第2の通信手段は、前記ファイルサイズが取得されたファイルをダウンロードする
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記第2の通信手段は、複数の前記第2の通信コネクションを確立し、前記ファイルサイズが取得されたファイルを分割して並列にダウンロードする
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記第2の通信手段は、前記ファイルが初期ファイルであれば、前記ファイルの取得負担量を前記各第2の通信コネクションに均等に振り分ける
    ことを特徴とする請求項3に記載の情報処理装置。
  5. 前記第2の通信手段は、前記ファイルが前記初期ファイルでなければ、前記各第2の通信コネクションの転送速度に応じて、取得すべきファイル毎に前記各第2の通信コネクションに振り分ける負担量を変更する
    ことを特徴とする請求項4に記載の情報処理装置。
  6. 前記第2の通信手段は、前記ファイルのダウンロードが完了した前記第2の通信コネクションが存在する場合、次に取得すべきファイルのサイズ、前記各第2の通信コネクションの転送速度、および前記ダウンロードが未完了の第2の通信コネクションのダウンロード残量に基づいて前記次に取得すべきファイルの分担量を算出し、前記各第2の通信コネクションに振り分ける
    ことを特徴とする請求項3または4に記載の情報処理装置。
  7. サーバ装置との第1の通信コネクションを確立して、コンテンツを動的に生成する前記サーバ装置から該コンテンツが生成されたか否かを示す情報を取得する第1の通信工程と、
    前記サーバ装置との第2の通信コネクションを確立して、前記第1の通信手段により取得された情報を基に生成された前記コンテンツを取得する第2の通信工程とを備え、
    前記第2の通信工程では、前記コンテンツの取得が完了するまで前記第2の通信コネクションが維持される
    ことを特徴とする情報処理装置の制御方法。
  8. 請求項7に記載の制御方法をコンピュータにより実行させることを特徴とするコンピュータプログラム。
  9. サーバ装置との第1の通信コネクションを確立して、印刷用のデータを動的に生成する前記サーバ装置から前記データが生成されたか否かを示す情報を取得する第1の通信手段と、
    前記サーバ装置との第2の通信コネクションを確立して、前記第1の通信手段により取得された情報を基に生成された前記データを取得する第2の通信手段と、
    前記第2の通信手段により取得されたデータを印刷装置へ送信する送信手段とを備え、
    前記第2の通信手段は、前記データの取得が完了するまで前記第2の通信コネクションを維持する
    ことを特徴とする情報処理装置。
  10. サーバ装置との第1の通信コネクションを確立して、印刷用のデータを動的に生成する前記サーバ装置から前記データが生成されたか否かを示す情報を取得する第1の通信工程と、
    前記サーバ装置との第2の通信コネクションを確立して、前記第1の通信手段により取得された情報を基に生成された前記データを取得する第2の通信工程と、
    前記第2の通信手段により取得されたデータを印刷装置へ送信する送信工程とを備え、
    前記第2の通信工程では、前記データの取得が完了するまで前記第2の通信コネクションが維持される
    ことを特徴とする情報処理装置の制御方法。
  11. 請求項10に記載の制御方法をコンピュータにより実行させることを特徴とするコンピュータプログラム。
JP2013270559A 2013-12-26 2013-12-26 情報処理装置、その制御方法およびコンピュータプログラム Active JP6289092B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013270559A JP6289092B2 (ja) 2013-12-26 2013-12-26 情報処理装置、その制御方法およびコンピュータプログラム
US14/559,232 US9906581B2 (en) 2013-12-26 2014-12-03 Information processing apparatus, control method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013270559A JP6289092B2 (ja) 2013-12-26 2013-12-26 情報処理装置、その制御方法およびコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2015125657A JP2015125657A (ja) 2015-07-06
JP6289092B2 true JP6289092B2 (ja) 2018-03-07

Family

ID=53483273

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013270559A Active JP6289092B2 (ja) 2013-12-26 2013-12-26 情報処理装置、その制御方法およびコンピュータプログラム

Country Status (2)

Country Link
US (1) US9906581B2 (ja)
JP (1) JP6289092B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016019156A (ja) 2014-07-08 2016-02-01 キヤノン株式会社 通信装置およびその制御方法
JP2017038297A (ja) * 2015-08-12 2017-02-16 キヤノン株式会社 通信装置、通信方法、及び通信システム
US9996479B2 (en) * 2015-08-17 2018-06-12 Micron Technology, Inc. Encryption of executables in computational memory
JP5976265B1 (ja) * 2016-01-22 2016-08-23 株式会社エーピーコミュニケーションズ ダウンロードシステム、通信装置、ダウンロード方法、及びコンピュータプログラム
JP6825303B2 (ja) 2016-10-27 2021-02-03 富士ゼロックス株式会社 情報処理装置およびプログラム
JP6861692B2 (ja) 2018-12-03 2021-04-21 キヤノン株式会社 撮像装置、システム、撮像装置の制御方法、及び、プログラム
CN109862065B (zh) * 2018-12-06 2021-09-14 北京字节跳动网络技术有限公司 文件下载方法、装置和电子设备
JP2020129204A (ja) * 2019-02-07 2020-08-27 キヤノン株式会社 通信装置およびその制御方法ならびにプログラム
US11061656B1 (en) * 2019-05-07 2021-07-13 PODTRAC, Inc. System and method for providing analysis of download completeness for downloadable media
CN114640660B (zh) * 2022-03-04 2024-04-23 蓝想大数据科技(上海)有限公司 一种基于双重身份的多方通信方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005167891A (ja) * 2003-12-05 2005-06-23 Matsushita Electric Ind Co Ltd コンテンツサーバ、コンテンツ受信装置、プログラム及び記憶媒体
JP4918904B2 (ja) * 2007-10-01 2012-04-18 ブラザー工業株式会社 印刷データ生成装置とコンピュータプログラム
US8205006B2 (en) * 2009-09-30 2012-06-19 Lenovo (Singapore) Pte. Ltd. Systems and methods for discontinuous multi-media content transfer and handling
US8386621B2 (en) * 2010-03-12 2013-02-26 Netflix, Inc. Parallel streaming
US20120215890A1 (en) * 2011-02-22 2012-08-23 International Business Machines Corporation Network-aware structured content downloads
JP5899713B2 (ja) 2011-08-31 2016-04-06 セイコーエプソン株式会社 印刷装置、印刷方法
US9712580B2 (en) * 2012-04-03 2017-07-18 Netflix, Inc. Pipelining for parallel network connections to transmit a digital content stream
US9363132B2 (en) * 2013-04-24 2016-06-07 International Business Machines Corporation Maximizing throughput of streaming media by simultaneously connecting to streaming media server over multiple independent network connections

Also Published As

Publication number Publication date
JP2015125657A (ja) 2015-07-06
US20150188986A1 (en) 2015-07-02
US9906581B2 (en) 2018-02-27

Similar Documents

Publication Publication Date Title
JP6289092B2 (ja) 情報処理装置、その制御方法およびコンピュータプログラム
JP6623797B2 (ja) 通信システム、通信中継装置およびプログラム
Grigorik Making the web faster with HTTP 2.0
JP5995525B2 (ja) システム、画像形成装置、サーバー及びその制御方法
US20180091631A1 (en) Systems and methods for writing prioritized http/2 data to a socket buffer
WO2014013701A1 (en) Information processing system, control method, server, information processing device, and storage medium
JP2005184165A (ja) トラフィック制御装置およびそれを用いたサービスシステム
JP2018112895A (ja) 情報処理装置、その制御方法、プログラム、及び情報処理システム
JP6381426B2 (ja) 情報処理装置、制御方法、及びプログラム
JP6576099B2 (ja) 通信装置、通信装置の制御方法、プログラム、および、通信システム
JP2007013449A (ja) シェーパー制御方法、データ通信システム、ネットワークインタフェース装置及びネットワーク中継装置
JP2014195158A (ja) 通信装置と、当該通信装置を含む通信システム、及びその制御方法とプログラム
JP6129526B2 (ja) 通信装置、通信方法およびプログラム
US10104001B2 (en) Systems and methods to early detect link status of multiple paths through an explicit congestion notification based proxy
JP5924883B2 (ja) 情報処理システム、情報処理方法、情報処理装置
JP2015114765A (ja) 情報処理装置、プログラム及び制御方法
US10237323B2 (en) Communication apparatus, communication method, communication system, and storage medium
JP4627290B2 (ja) Tcpを用いたレート制御方法、サーバ及びプログラム
JP5224964B2 (ja) 受信装置の受信方法及び受信装置並びにプログラム
JP2016021157A (ja) Usb接続の一台の機器で複数の機能を持つことを可能にするプログラム
Grigorik Making the Web Faster with HTTP 2.0: HTTP continues to evolve
JP2015165632A (ja) 情報転送装置、情報転送方法およびプログラム
JP6444125B2 (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP5825940B2 (ja) 分散処理制御システム及びその制御方法
JP2015154227A (ja) データ転送方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171220

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: 20180109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180206

R151 Written notification of patent or utility model registration

Ref document number: 6289092

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151