(57)【要約】  更新のあるデータを効率的に出力する。  判定手段（１ｂ）は、情報処理装置（２）から過去に取得されたファイル（Ｄ１０）に含まれる何れかの情報に対する出力指示を受け付けると、情報処理装置（２）から取得された版を示す情報（Ｖ１ａ）に基づいて、出力指示を受けた情報の更新があるか否かを判定する。出力手段（１ｃ）は、出力指示を受けた情報の更新がないと判定されると、ファイル（Ｄ１０）から出力指示を受けた情報を取得して出力する。一方、出力手段（１ｃ）は、出力指示を受けた情報の更新があると判定されると、出力指示を受けた情報に対応する更新後の情報を情報処理装置（２）から取得して出力する。
2013140486.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報を含むファイルおよび前記複数の情報それぞれの版を示す情報を配信する他の情報処理装置から過去に取得されたファイルに含まれる何れかの情報の出力指示を受け付けると、前記他の情報処理装置から取得された版を示す情報に基づいて、前記出力指示を受けた情報の更新があるか否かを判定する判定手段と、
前記出力指示を受けた情報の更新がないと判定されると前記過去に取得されたファイルから出力指示を受けた情報を取得して出力し、前記出力指示を受けた情報の更新があると判定されると前記出力指示を受けた情報に対応する更新後の情報を前記他の情報処理装置から取得して出力する出力手段と、
を有する情報処理装置。
【請求項２】
前記判定手段は、前記過去に取得されたファイルが指定されると、当該ファイルに含まれる何れかの情報の出力指示を受け付ける前に、当該ファイルに対応する版を示す情報を前記他の情報処理装置から新たに取得する、請求の範囲第１項記載の情報処理装置。
【請求項３】
前記判定手段は、新たに取得された版を示す情報に基づいて、前記過去に取得されたファイルに含まれる複数の情報それぞれに改版があるか否かを判定し、当該複数の情報それぞれに対応付けて改版の有無を当該ファイルに事前に記録し、その後、当該ファイルの何れかの情報の出力指示を受け付けると、事前に記録した当該情報の改版の有無に基づいて、当該情報の更新があるか否かを判定する、請求の範囲第２項記載の情報処理装置。
【請求項４】
前記判定手段は、新たに取得された第１の版を示す情報と過去に取得された第２の版を示す情報との比較結果に基づいて、前記出力指示を受けた情報の更新があるか否かを判定する、請求の範囲第１項乃至第３項の何れか一項に記載の情報処理装置。
【請求項５】
前記判定手段は、ファイルの出力を終了する旨の指示を受けた後に、前記第１の版を示す情報の内容を、前記第２の版を示す情報に反映させる、請求の範囲第４項記載の情報処理装置。
【請求項６】
前記出力手段は、更新後の情報を前記他の情報処理装置から取得するたびに、前記過去に取得されたファイルに含まれる前記出力指示を受けた情報を、更新後の情報に置き換える、請求の範囲第１項乃至第５項の何れか一項に記載の情報処理装置。
【請求項７】
前記他の情報処理装置が配信するファイルは、ページ単位に出力可能なデータ、または、所定の時間範囲を単位に出力可能な音声および動画の少なくとも何れかを含むデータである、請求の範囲第１項乃至第６項の何れか一項に記載の情報処理装置。
【請求項８】
コンピュータが、
複数の情報を含むファイルおよび前記複数の情報それぞれの版を示す情報を配信する他の情報処理装置から過去に取得されたファイルに含まれる何れかの情報の出力指示を受け付けると、前記他の情報処理装置から取得された版を示す情報に基づいて、前記出力指示を受けた情報の更新があるか否かを判定し、
前記出力指示を受けた情報の更新がないと判定されると前記過去に取得されたファイルから出力指示を受けた情報を取得して出力し、前記出力指示を受けた情報の更新があると判定されると前記出力指示を受けた情報に対応する更新後の情報を前記他の情報処理装置から取得して出力する、
データ出力方法。
【請求項９】
複数の情報を含むファイルおよび前記複数の情報それぞれの版を示す情報を配信する他の情報処理装置から過去に取得されたファイルに含まれる何れかの情報の出力指示を受け付けると、前記他の情報処理装置から取得された版を示す情報に基づいて、前記出力指示を受けた情報の更新があるか否かを判定し、
前記出力指示を受けた情報の更新がないと判定されると前記過去に取得されたファイルから出力指示を受けた情報を取得して出力し、前記出力指示を受けた情報の更新があると判定されると前記出力指示を受けた情報に対応する更新後の情報を前記他の情報処理装置から取得して出力する、
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、データ出力方法およびプログラムに関する。
【背景技術】
【０００２】
コンピュータや携帯端末装置などの情報処理装置には、ネットワークを介して他の情報処理装置と通信可能なものがある。当該情報処理装置では、他の情報処理装置が提供する種々の情報を格納したファイルやプログラムを取得することがある。例えば、ユーザは、情報処理装置を操作して、情報処理装置に接続されたディスプレイなどの表示手段に当該ファイルの内容を出力させ、閲覧できる。また、ユーザは、情報処理装置に当該プログラムを実行させて、当該プログラムによる機能を発揮させることもできる。【０００３】
他の情報処理装置上のファイルやプログラムが更新されることがある。そこで、情報処理装置が実行するプログラムを最新に保つことが考えられている。
例えば、アプリケーションソフトを使用する際、サーバに対してバージョン情報の確認を行い、最新バージョンのプログラムでなければ直ちに最新バージョンのプログラムのダウンロードを行って、プログラムを最新バージョンに更新する方法が提案されている。【０００４】
また、プログラムを更新する際に、稼働状況が非稼働であるプログラムモジュールを更新し、稼働中であるプログラムモジュールは更新しないようにすることで、サービスを中断させずにプログラムの内容を更新する方法が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−１８９５９４号公報
【特許文献２】特開平１１−２５９２８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
新しい内容を閲覧するために、ファイルの全内容をサーバからダウンロードしていると、ダウンロードに要する時間が問題となる。例えば、ファイルサイズが大きい場合やネットワークの通信速度が遅い場合にダウンロードの時間が長引く可能性がある。その場合、情報処理装置がファイルの内容を出力するまでに時間がかかり、閲覧までの待ち時間が長くなるおそれがある。【０００７】
一側面によれば、本発明は、更新のあるデータを効率的に出力することができる情報処理装置、データ出力方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
一実施態様によれば、情報処理装置が提供される。情報処理装置は判定手段と出力手段とを有する。判定手段は、複数の情報を含むファイルおよび複数の情報それぞれの版を示す情報を配信する他の情報処理装置から過去に取得されたファイルに含まれる何れかの情報の出力指示を受け付けると、他の情報処理装置から取得された版を示す情報に基づいて、出力指示を受けた情報の更新があるか否かを判定する。出力手段は、出力指示を受けた情報の更新がないと判定されると過去に取得されたファイルから出力指示を受けた情報を取得して出力し、出力指示を受けた情報の更新があると判定されると出力指示を受けた情報に対応する更新後の情報を他の情報処理装置から取得して出力する。【０００９】
また、一実施態様によれば、データ出力方法が提供される。データ出力方法では、コンピュータが、複数の情報を含むファイルおよび複数の情報それぞれの版を示す情報を配信する他の情報処理装置から過去に取得されたファイルに含まれる何れかの情報の出力指示を受け付けると、他の情報処理装置から取得された版を示す情報に基づいて、出力指示を受けた情報の更新があるか否かを判定する。出力指示を受けた情報の更新がないと判定されると過去に取得されたファイルから出力指示を受けた情報を取得して出力し、出力指示を受けた情報の更新があると判定されると出力指示を受けた情報に対応する更新後の情報を他の情報処理装置から取得して出力する。【００１０】
また、一実施態様によれば、コンピュータが実行するプログラムであって、データ出力方法をコンピュータに実行させるプログラムが提供される。
【発明の効果】
【００１１】
一実施態様によれば、更新のあるデータを効率的に出力することができる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態の情報処理装置を示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】第２の実施の形態のクライアントのハードウェア例を示す図である。
【図４】第２の実施の形態のソフトウェア例を示す図である。
【図５】第２の実施の形態のコンテンツの例を示す図である。
【図６】第２の実施の形態のデータの例を示す図である。
【図７】第２の実施の形態の管理テーブルの例を示す図である。
【図８】第２の実施の形態の版数テーブルの例を示す図である。
【図９】第２の実施の形態の表示画面の例を示す図である。
【図１０】第２の実施の形態の処理を示すフローチャートである。
【図１１】第２の実施の形態の表示処理を示すフローチャートである。
【図１２】第２の実施の形態の表示処理を示すシーケンス図である。
【図１３】第２の実施の形態の表示処理を示すシーケンス図（続き）である。
【図１４】第３の実施の形態のソフトウェア例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理装置を示す図である。第１の実施の形態の情報処理装置１は、有線または無線のネットワークを介して情報処理装置２と接続されている。情報処理装置２は、情報処理装置１で参照可能なファイルを配信する。情報処理装置２が配信するファイルは、例えば、文字や図表などを含むデータである。情報処理装置２が配信するファイルは複数の情報（例えば、文書でいうページを単位とした情報）を含む。当該ファイルは各情報単位に更新され得る。情報処理装置２は、当該ファイルに含まれる複数の情報それぞれの版を示す情報を配信する。
【００１４】
情報処理装置１は、例えば、ＣＰＵ（Central Processing Unit）などのプロセッサとＲＡＭ（Random Access Memory）などのメモリとを備えてもよく、メモリに記憶されたプログラムをプロセッサが実行するコンピュータであってもよい。情報処理装置１は、プロセッサとメモリとを備え、メモリに記憶されたプログラムをプロセッサが実行する携帯端末装置（例えば、携帯電話機や小型の電子機器など）でもよい。
【００１５】
情報処理装置１は、記憶手段１ａ、判定手段１ｂおよび出力手段１ｃを有する。
記憶手段１ａは、情報処理装置２から過去に取得されたファイルＤ１０を記憶する。記憶手段１ａは、情報処理装置２から取得された版を示す情報Ｖ１を記憶する。ここで、ファイルＤ１０は、第１の情報Ｄ１１、第２の情報Ｄ１２、第３の情報Ｄ１３、第４の情報Ｄ１４を含む。版を示す情報Ｖ１は、ファイルＤ１０に含まれる各情報の版を登録した情報である。版は、例えば数値で表せる。例えば、第１の情報Ｄ１１、第２の情報Ｄ１２、第３の情報Ｄ１３、第４の情報Ｄ１４の版は全て“２”である。ここでは、一例として更新があるごとに版の数値は１加算されるものとする。
【００１６】
例えば、情報処理装置２はファイルＤ１０ａおよび版を示す情報Ｖ１ａを記憶する。ファイルＤ１０ａはファイルＤ１０を更新したデータである。例えば、ファイルＤ１０ａは第１の情報Ｄ１１、第２の情報Ｄ１２ａ、第３の情報Ｄ１３、第４の情報Ｄ１４ａを含む。第２の情報Ｄ１２ａは第２の情報Ｄ１２を更新したものである。第４の情報Ｄ１４ａは第４の情報Ｄ１４を更新したものである。版を示す情報Ｖ１ａは、ファイルＤ１０ａに含まれる各情報の版を登録した情報である。例えば、第１の情報Ｄ１１、第３の情報Ｄ１３の版は“２”である。第２の情報Ｄ１２ａの版は“３”である。第４の情報Ｄ１４ａの版は“４”である。
【００１７】
判定手段１ｂは、記憶手段１ａに記憶されたファイルＤ１０に含まれる何れかの情報に対する出力指示を受け付ける。出力指示は、例えば、ユーザが当該情報の内容を閲覧する際に、当該ユーザによって情報処理装置１に入力されるものでもよい。判定手段１ｂは、情報処理装置２から取得された版を示す情報Ｖ１ａに基づいて、出力指示を受けた情報（出力対象の情報）の更新があるか否かを判定する。ここで、出力指示を受けた情報の更新がある、とは、当該情報に対応する更新後の情報を情報処理装置２などから取得可能であることを示す。すなわち、当該情報に対応する更新後の情報が存在している。
【００１８】
例えば、判定手段１ｂは、過去に情報処理装置２から取得し、記憶手段１ａに記憶されている版を示す情報Ｖ１と情報処理装置２から新たに取得した版を示す情報Ｖ１ａとを比較した結果に基づいて、ファイルＤ１０に含まれる各情報の更新有無を判定できる。
【００１９】
より具体的には、判定手段１ｂは、第１の情報Ｄ１１の出力指示を受け付けたとする。判定手段１ｂは、版を示す情報Ｖ１から第１の情報Ｄ１１の版“２”を取得し、版を示す情報Ｖ１ａから第１の情報Ｄ１１の版“２”を取得し、これらを比較する。この場合、両方の版が“２”であり等しい。よって、判定手段１ｂは、第１の情報Ｄ１１の更新がないと判定する。
【００２０】
一方、判定手段１ｂは、第２の情報Ｄ１２の出力指示を受け付けたとする。判定手段１ｂは、版を示す情報Ｖ１から第２の情報Ｄ１２の版“２”を取得し、版を示す情報Ｖ１ａから第２の情報Ｄ１２ａの版“３”を取得し、これらを比較する。この場合、第２の情報Ｄ１２ａの版“３”は、第２の情報Ｄ１２の版“２”よりも大きい。よって、判定手段１ｂは、第２の情報Ｄ１２の更新があると判定する。
【００２１】
判定手段１ｂは、次のようなタイミングで、版を示す情報Ｖ１ａを情報処理装置２から取得することが考えられる。例えば、判定手段１ｂは、参照の対象とするファイルＤ１０の指定（例えば、ユーザによるファイルＤ１０の選択）を受け付けた後に、当該ファイルＤ１０に含まれる何れかの情報に対する出力指示を受け付けることがある。その場合、ファイルＤ１０の指定を受け付けたタイミングで、当該ファイルＤ１０に対応する現在の版を示す情報Ｖ１ａを情報処理装置２から事前に取得しておくことが考えられる。事前に現在の版を示す情報Ｖ１ａを取得しておけば、何れかの情報の出力指示を受け付けた際に、情報処理装置２との通信を行わなくても、当該情報の版を比較して更新があったかを即座に判断できる。更に、現在の版を示す情報Ｖ１ａを取得した際に、ファイルＤ１０に含まれる全ての情報の更新有無のみを事前に判断しておいてもよい。
【００２２】
また、判定手段１ｂは、何れかの情報に対する出力指示を受け付けたタイミングで情報処理装置２から版を示す情報Ｖ１ａを取得して、更新有無を判断してもよい。例えば、ファイルＤ１０の指定を受け付けてから、何れかの情報に対する出力指示を最初に受け付けたタイミングで、情報処理装置２から版を示す情報Ｖ１ａを取得することも考えられる。
【００２３】
出力手段１ｃは、出力指示を受けた情報の更新がないと判定手段１ｂにより判定されると、記憶手段１ａに記憶されたファイルＤ１０から出力指示を受けた情報を取得して出力する。例えば、判定手段１ｂにより第１の情報Ｄ１１の更新がないと判定された場合、出力手段１ｃは第１の情報Ｄ１１を記憶手段１ａから取得して出力する。
【００２４】
一方、出力手段１ｃは、出力指示を受けた情報の更新があると判定手段１ｂにより判定されると、出力指示を受けた情報に対応する更新後の情報を情報処理装置２から取得して出力する。例えば、判定手段１ｂにより第２の情報Ｄ１２の更新があると判定された場合、出力手段１ｃは更新後の第２の情報Ｄ１２ａを情報処理装置２から取得して出力する。
【００２５】
出力手段１ｃの情報の出力先は、ディスプレイなどの表示手段でもよい。例えば、表示手段は、第２の情報Ｄ１２ａを情報処理装置１から取得し、第２の情報Ｄ１２ａの内容を表示する。ユーザは、表示手段により表示された内容を閲覧できる。
【００２６】
情報処理装置１によれば、判定手段１ｂにより、過去に取得されたファイルＤ１０に含まれる何れかの情報に対する出力指示が受け付けられると、情報処理装置２から取得された版を示す情報Ｖ１ａに基づいて、出力指示を受けた情報の更新があるか否かが判定される。出力指示を受けた情報の更新がないと判定されると、出力手段１ｃにより、ファイルＤ１０から出力指示を受けた情報が取得されて出力される。一方、出力指示を受けた情報の更新があると判定されると、出力手段１ｃにより、出力指示を受けた情報に対応する更新後の情報が情報処理装置２から取得されて出力される。
【００２７】
これにより、更新のあるデータを効率的に出力することができる。
情報処理装置２上でファイルが更新されると、情報処理装置１が保持するファイルＤ１０は参照時に古い可能性がある。この場合、新しい内容を閲覧しようとするたびに、更新後のファイルＤ１０ａの全内容を情報処理装置２からダウンロードすることも考えられる。しかし、ダウンロードに要する時間が問題となる。例えば、ファイルサイズが大きい場合やネットワークの通信速度が遅い場合にダウンロードの時間が長引く可能性がある。その場合、情報処理装置１が当該ファイルＤ１０ａの内容を出力するまでに時間がかかることがある。その結果、ユーザがファイルＤ１０ａの内容を閲覧可能になるまでの待ち時間が長くなるおそれがある。特に、更新のない情報については、情報処理装置１は既に取得済である。このため、更新のない情報までをもダウンロード対象とすると無駄なダウンロードが生じて非効率的であった。
【００２８】
そこで、情報処理装置１では、ファイルＤ１０のうち、出力指示を受けた情報について更新の有無を確認し、更新がある場合には、当該情報のみを情報処理装置２から取得して出力する。このようにすれば、更新のない情報をダウンロードしなくてよいので、全内容をダウンロードする場合に比べ、ダウンロードするデータ量が少量で済む。また、出力指示を受けた情報単位に、記憶手段１ａから取得するか情報処理装置２から取得するかを選択し、選択元から取得した当該情報を出力するので、全内容のダウンロードを待ってから出力するよりも、迅速なデータ出力が可能となる。その結果、全内容をダウンロードする場合に比べて、情報の閲覧が可能となるまでの待ち時間を短縮できる。このように、情報処理装置１は、ファイルＤ１０の更新があったとしても、更新後の情報を含め効率的なデータ出力を行える。
【００２９】
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムを示す図である。第２の実施の形態の情報処理システムは、クライアント１００およびサーバ２００を含む。クライアント１００とサーバ２００とは、ネットワーク１０を介して接続されている。ネットワーク１０は、有線または無線のネットワークである。例えば、ネットワーク１０はＬＡＮ（Local Area Network）である。ネットワーク１０は、ＷＡＮ（Wide Area Network）やインターネットなどの広域ネットワークでもよい。
【００３０】
クライアント１００は、サーバ２００が配信するコンテンツ（content）を参照可能なクライアントコンピュータである。クライアント１００は、携帯電話機や小型の電子機器などの携帯端末装置でもよい。
【００３１】
ここで、コンテンツは種々のデータを含む１つのファイルとして扱うことができる。ファイルとは、クライアント１００やサーバ２００上の所定のファイルシステムがデータを管理する１つの単位である。例えば、クライアント１００やサーバ２００上のＯＳ（Operating System）がファイルシステムの機能を提供することがある。コンテンツは、文書や図表などを記録したデータを含み得る。当該データは文書でいう複数のページを含み、ページ単位の更新、出力、表示などが可能である。この場合、コンテンツはページを単位とした複数の情報（すなわち、１ページが１つの情報に対応する）を含むということができる。
【００３２】
サーバ２００は、コンテンツを配信するサーバコンピュータである。サーバ２００は、クライアント１００からコンテンツの配信要求を受信する。サーバ２００は、配信要求のあったコンテンツをクライアント１００に送信する。サーバ２００は、ファイルサーバやコンテンツサーバなどと呼ばれるものでもよい。
【００３３】
例えば、ユーザは、クライアント１００を操作して、サーバ２００から所望のコンテンツをクライアント１００にダウンロードすることができる。ユーザは、クライアント１００を用いて、ダウンロードしたコンテンツの内容を閲覧することができる。また、ユーザは、次に閲覧するときのために、当該コンテンツをクライアント１００に記憶させることができる。
【００３４】
図３は、第２の実施の形態のクライアントのハードウェア例を示す図である。クライアント１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ（Hard Disk Drive）１０３、画像信号処理部１０４、入力信号処理部１０５、ディスクドライブ１０６および通信部１０７を有する。各ユニットがクライアント１００のバスに接続されている。サーバ２００もクライアント１００と同様のハードウェアを用いて実装できる。
【００３５】
ＣＰＵ１０１は、クライアント１００の情報処理を制御するプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０３に記憶されているプログラムやデータの少なくとも一部を読み出し、ＲＡＭ１０２に展開してプログラムを実行する。なお、クライアント１００は、複数のプロセッサを設けて、プログラムを分散して実行してもよい。
【００３６】
ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムや処理に用いるデータを一時的に記憶する揮発性メモリである。なお、クライアント１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数個のメモリを備えていてもよい。
【００３７】
ＨＤＤ１０３は、ＯＳプログラムやアプリケーションプログラムなどのプログラムおよびデータを記憶する不揮発性の記憶装置である。ＨＤＤ１０３は、ＣＰＵ１０１の命令に従って、内蔵の磁気ディスクに対してデータの読み書きを行う。なお、クライアント１００は、ＨＤＤ以外の種類の不揮発性の記憶装置（例えば、ＳＳＤ（Solid State Drive）など）を備えてもよく、複数の記憶装置を備えていてもよい。
【００３８】
画像信号処理部１０４は、ＣＰＵ１０１の命令に従って、クライアント１００に接続されたディスプレイ１１に画像を出力する。ディスプレイ１１としては、例えば、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイを用いることができる。
【００３９】
入力信号処理部１０５は、クライアント１００に接続された入力デバイス１２から入力信号を取得し、ＣＰＵ１０１に出力する。入力デバイス１２としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
【００４０】
ディスクドライブ１０６は、記録媒体１３に記録されたプログラムやデータを読み取る駆動装置である。記録媒体１３としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリを使用できる。磁気記録装置には、ＨＤＤ、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＣＤ（Compact Disc）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−Ｒ／ＲＷ／ＲＡＭなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。半導体メモリには、ＵＳＢ（Universal Serial Bus）メモリなどのフラッシュメモリがある。ディスクドライブ１０６は、例えば、ＣＰＵ１０１の命令に従って、記録媒体１３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００４１】
ここで、後述するクライアント１００の機能は、コンピュータに所定のプログラムを実行させることで実現することもできる。例えば、当該プログラムをコンピュータ読み取り可能な可搬型の記録媒体１３に記録しておく。当該プログラムを流通させるには、例えば、そのプログラムが記録された記録媒体１３を配布する。または、そのプログラムをサーバコンピュータに格納しておき、ネットワーク経由でコンピュータに転送してもよい。コンピュータは、例えば、記録媒体１３に記録されたプログラムまたはネットワークから取得したプログラムを、自装置の不揮発性の記憶媒体（例えば、ＨＤＤ１０３）に格納する。そして、当該不揮発性の記憶媒体からプログラムをＲＡＭ１０２にロードして実行する。ただし、コンピュータは、取得したプログラムを、不揮発性の記憶媒体に格納せずに逐次、ＲＡＭ１０２に展開して実行することも可能である。
【００４２】
通信部１０７は、ネットワーク１０を介してサーバ２００と通信を行う通信インタフェースである。通信部１０７は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
【００４３】
図４は、第２の実施の形態のソフトウェア例を示す図である。図４に示すユニットの一部または全部は、クライアント１００およびサーバ２００が実行するプログラムのモジュールであってもよい。また、図４に示すユニットの一部または全部は、ＦＰＧＡ（Field Programmable Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）などの電子回路であってもよい。
【００４４】
クライアント１００は、記憶部１１０、入力処理部１２０、判定部１３０および表示処理部１４０を有する。
記憶部１１０は、サーバ２００からダウンロードされたコンテンツを記憶する。コンテンツは、複数のページを含むデータ本体に加えて、コンテンツを管理するための情報を含む。コンテンツを管理するための情報は、コンテンツの識別情報や配信元のサーバなどを管理するための管理テーブルを含む。また、コンテンツを管理するための情報は、コンテンツに含まれるファイル本体の各ページの版数を示す版数テーブルを含む。ここで、以下の説明では、複数のページを含むデータ本体を、単にデータと呼ぶことがある。
【００４５】
入力処理部１２０は、入力デバイス１２からの入力を受け付けて、入力の内容を判定部１３０や表示処理部１４０に出力する。例えば、ユーザは、入力デバイス１２を操作して、入力処理部１２０へ所定の指示を入力できる。具体的には、ユーザは、入力デバイス１２を操作して、閲覧対象のコンテンツを選択することができる。ユーザは、当該コンテンツの何れのページをディスプレイ１１に表示させるかを指定することもできる。ユーザは、ディスプレイ１１が表示中の内容の表示方法の変更（拡大、縮小、回転など）を指示することもできる。
【００４６】
入力処理部１２０は、閲覧対象として選択されたコンテンツを示す情報を判定部１３０に出力する。入力処理部１２０は、コンテンツのページが選択されると、選択されたページの出力指示を判定部１３０に出力する。
【００４７】
入力処理部１２０は、表示中の内容の表示方法の変更指示（例えば、拡大、縮小、回転など）を入力処理部１２０から取得すると、表示処理部１４０に当該指示を出力する。
判定部１３０は、選択されたコンテンツを示す情報を入力処理部１２０から取得すると、版数テーブルのみをサーバ２００から新たに取得して記憶部１１０に格納する。判定部１３０は、新たに取得した版数テーブルと自身が保持していた版数テーブル（過去にサーバ２００から取得した版数テーブル）とに基づいて、コンテンツの各ページの更新があるか否かを事前に判定しておく。そして、判定部１３０は、ページごとの更新有無を示すフラグをコンテンツに登録する。
【００４８】
判定部１３０は、選択されたページの出力指示を受け付けると、当該ページの更新があるか否かを判定する。判定部１３０は、コンテンツ内の当該ページの更新有無を示すフラグに基づいて、更新があるか否かを判定できる。判定部１３０は、判定結果を表示処理部１４０に出力する。
【００４９】
表示処理部１４０は、表示させるページをディスプレイ１１に出力する。ディスプレイ１１は、表示処理部１４０から取得したページを表示する。ユーザは、ディスプレイ１１の画面を目視して、当該ページの内容を閲覧できる。
【００５０】
このとき、表示処理部１４０は、表示させるページの更新有無を判定部１３０から取得する。表示処理部１４０は、更新がある場合は、更新後の当該ページのみをサーバ２００から取得する。表示処理部１４０は、記憶部１１０に記憶されたコンテンツに含まれる当該ページを更新後のページに置き換える。表示処理部１４０は、更新後の当該ページをディスプレイ１１に出力する。一方、表示処理部１４０は、更新がない場合は、記憶部１１０に記憶されたコンテンツから当該ページを取得して、ディスプレイ１１に出力する。
【００５１】
また、表示処理部１４０は、表示中のコンテンツの内容の表示方法の変更指示を入力処理部１２０から取得すると、指示された方法に従って、表示方法を変更する。例えば、表示中の画面に対して、拡大、縮小、回転などの処理を施す。
【００５２】
サーバ２００は、記憶部２１０および配信処理部２２０を有する。
記憶部２１０は、配信するコンテンツを記憶する。記憶部２１０は、コンテンツは、データ部分に加えて、コンテンツを管理するための情報を含む。コンテンツを管理するための情報は、コンテンツの識別情報や配信元のサーバ（すなわち、サーバ２００）などを管理するための管理テーブルを含む。また、コンテンツを管理するための情報は、コンテンツに含まれるデータの各ページの版数を示す版数テーブルを含む。例えば、記憶部２１０上のコンテンツに含まれるデータの各ページが更新されるとともに、版数テーブルも更新される。ただし、管理テーブルに含まれるコンテンツの識別情報は、更新の前後で同一である。
【００５３】
配信処理部２２０は、クライアント１００からのコンテンツの配信要求を受信する。配信処理部２２０は、当該要求に応じて、記憶部２１０に記憶されたコンテンツをクライアント１００に送信する。このとき、配信処理部２２０は、コンテンツの全部を提供することもできるし、コンテンツの一部（例えば、一部のページや何れかのテーブル）を提供することもできる。
【００５４】
図５は、第２の実施の形態のコンテンツの例を示す図である。コンテンツ３００は、データ３１０、管理テーブル３２０および版数テーブル３３０を含む。
データ３１０は、コンテンツに含まれるデータ本体である。データ３１０は、例えば、文書や図表などを記録したものである。データ３１０は、複数のページを含み、ページ単位での更新、出力、表示などが可能である。
【００５５】
管理テーブル３２０は、コンテンツの識別情報や配信元のサーバを識別するための情報を登録したテーブルである。
版数テーブル３３０は、データ３１０の各ページの版数を示す情報を登録したテーブルである。
【００５６】
コンテンツ３００は、データ３１０、管理テーブル３２０および版数テーブル３３０を含む１つのファイルとして扱うこともできる。コンテンツ３００を１つのファイルとみれば、当該コンテンツ３００という１つのファイルが、データ３１０内の複数のページ（複数の情報）を含むものであると考えることもできる。
【００５７】
また、データ３１０、管理テーブル３２０および版数テーブル３３０のそれぞれを１つのファイルとして扱うこともできる。例えば、記憶部１１０内でデータ３１０、管理テーブル３２０および版数テーブル３３０を３つのファイルとして管理することもできる。データ３１０を１つのファイルとみれば、データ３１０という１つのファイルが、データ３１０内の複数のページ（複数の情報）を含むものであると考えることもできる。
【００５８】
クライアント１００は、コンテンツ３００をサーバ２００からダウンロードして、記憶部１１０に格納することができる。例えば、コンテンツ３００を最初にダウンロードするとき、クライアント１００は、サーバ２００からコンテンツ３００の全内容をダウンロードして記憶部１１０に格納する。ここで、コンテンツ３００を最初にダウンロードするときとは、例えば、コンテンツ３００と同一の識別情報をもつコンテンツが記憶部１１０に存在しない状態で、コンテンツ３００の内容を閲覧しようとする場合である。
【００５９】
記憶部２１０に格納されたコンテンツ３００は、コンテンツの提供者によって更新されることがある。コンテンツ３００ａは、コンテンツ３００を更新したものである。更新されたのは、データ３１０ａおよび版数テーブル３３０ａである。以下では、クライアント１００がコンテンツ３００をダウンロードした後に、当該更新が行われたものとする。その場合、クライアント１００が保持するコンテンツ３００は、サーバ２００上の更新後のコンテンツ３００ａに比べて古い（古い情報を含む）。
【００６０】
なお、サーバ２００は、コンテンツ３００に代えてコンテンツ３００ａを保持してもよいし、コンテンツ３００，３００ａの両方を保持してもよい。両方を保持する場合は、サーバ２００は、新しい方の情報をクライアント１００に提供する。
【００６１】
また、クライアント１００は、コンテンツ３００，３００ａのそれぞれを異なるサーバコンピュータからダウンロードしてもよい。
更に、記憶部１１０，２１０には、コンテンツ３００を含む複数のコンテンツが格納され得る。例えば、ユーザは、クライアント１００を操作して、記憶部２１０に記憶された複数のコンテンツのパスのうち、コンテンツ３００のパスを指定することで、コンテンツ３００を記憶部１１０にダウンロードできる。例えば、コンテンツ３００を最初にダウンロードする際には、コンテンツ３００の全部をダウンロードしておく。また、ユーザは、クライアント１００を操作して、記憶部１１０に記憶された複数のコンテンツのパスのうち、コンテンツ３００のパスを指定することで、コンテンツ３００を閲覧対象として選択できる。指定するパスとしては、例えば、クライアント１００やサーバ２００におけるファイルシステム内でのコンテンツ３００のファイル名などに対応付けられた所定の文字列などを利用できる。
【００６２】
図６は、第２の実施の形態のデータの例を示す図である。図６（Ａ）はデータ３１０を例示している。図６（Ｂ）はデータ３１０ａを例示している。以下では、データ３１０について説明するがデータ３１０ａも同様である。
【００６３】
データ３１０は、コンテンツ３００に含まれ、記憶部１１０，２１０に格納される。データ３１０は、ページ、Ｕｐｄａｔｅ要否、表示およびページデータの項目を含む。
ページの項目には、データ３１０内のページを識別するための情報が登録される。ここでは、ページを識別するための情報としてページ番号を用いる。Ｕｐｄａｔｅ要否の項目には、当該ページの更新があるか否かを示すフラグが登録される。フラグ“ｆａｌｓｅ”は更新がないことを示す。フラグ“ｔｒｕｅ”は更新があることを示す。表示の項目には、当該ページをディスプレイ１１上に表示済であるか否かを示すフラグが登録される。フラグ“ｆａｌｓｅ”は未表示を示す。フラグ“ｔｒｕｅ”は表示済を示す。ページデータの項目には、ページに係るデータの実体が登録される。
【００６４】
例えば、データ３１０には、ページが“１”、Ｕｐｄａｔｅ要否が“ｆａｌｓｅ”、表示が“ｔｒｕｅ”、データが“ｘｘｘｘｘｘｘｘｘｘ”という情報が登録される。これは、１ページ目は更新が不要であり、表示済であること、また、表示させるデータの実体が“ｘｘｘｘｘｘｘｘｘｘ”であることを示す。
【００６５】
なお、データ３１０の登録内容から次のようなことも分かる。例えば、ページ“３”は、Ｕｐｄａｔｅ要否“ｔｒｕｅ”かつ表示“ｔｒｕｅ”である。すなわち、３ページ目は更新があり、かつ、表示済である。ここで、クライアント１００では表示の指示を受け付けたページについてのみ、サーバ２００から更新後のページを取得する。よって、３ページ目は更新後のページを取得済である。
【００６６】
また、例えば、ページ“５”は、Ｕｐｄａｔｅ要否“ｔｒｕｅ”かつ表示“ｆａｌｓｅ”である。すなわち、５ページ目は更新があり、かつ、未表示である。よって、５ページ目は更新後のページを未取得である。
【００６７】
同様に、例えばデータ３１０ａには、ページが“２”、Ｕｐｄａｔｅ要否が“ｆａｌｓｅ”、表示が“ｆａｌｓｅ”、データが“ｙｙｙｙｙｙｙｙｙｙ”という情報が登録される。これは、データ３１０ａの２ページ目のデータが“ｙｙｙｙｙｙｙｙｙｙ”であることを示している。当該データは、データ３１０の２ページ目のデータ“ｘｘｘｘｘｘｘｘｘｘ”と異なっている。また、データ３１０ａの５ページ目のデータも同様である。更に、データ３１０ａの３ページ目のデータも“ｚｚｚｚｚｚｚｚｚｚ”であり、データ３１０の３ページ目のデータとは異なっている。クライアント１００は、後述する各ページの版数に基づいて、当該データの相違が当該ページの更新によるものであることを把握できる。
【００６８】
なお、コンテンツ３００ａは、サーバ２００に格納されることを想定している。この場合、データ３１０ａの各ページのＵｐｄａｔｅ要否および表示の項目は、何れも“ｆａｌｓｅ”（初期値）である。これらの項目はクライアント１００の処理に用いられる項目だからである。
【００６９】
図７は、第２の実施の形態の管理テーブルの例を示す図である。管理テーブル３２０は、コンテンツ３００に含まれ、記憶部１１０，２１０に格納される。管理テーブル３２０は、コンテンツＩＤおよびＵＲＬ（Uniform Resource Locator）の項目を含む。
【００７０】
コンテンツＩＤの項目には、コンテンツの識別情報が登録される。ＵＲＬには、コンテンツのパスを示す情報が登録される。
例えば、管理テーブル３２０には、コンテンツＩＤが“０００１”、ＵＲＬが“ｘｘｘｘ．ａｂｃ．ｃｏｍ／ｃｏｎｔｅｎｔ／０００１”という情報が登録される。
【００７１】
ここで、コンテンツＩＤ“０００１”は、コンテンツ３００のコンテンツＩＤである。
また、管理テーブル３２０ではＵＲＬのうちホスト名とパス名とを示し、スキーム名を省略している。スキーム名には、例えば、“ｈｔｔｐ”や“ｆｔｐ”などを所定の表記で補う。
【００７２】
例えば、ＵＲＬ中のホスト名“ｘｘｘｘ．ａｂｃ．ｃｏｍ”は、サーバ２００のＦＱＤＮ（Fully Qualified Domain Name）である。例えば、クライアント１００は“ｈｔｔｐ：／／ｘｘｘｘ．ａｂｃ．ｃｏｍ／ｃｏｎｔｅｎｔ／０００１”というアドレス（サーバ２００内のパスを指定する情報を含む）を指定することで、ＨＴＴＰ（HyperText Transfer Protocol）を用いてサーバ２００からコンテンツ３００を取得する。
【００７３】
なお、クライアント１００は、コンテンツ３００，３００ａそれぞれを異なるサーバからダウンロードしてもよい。例えば、クライアント１００は、コンテンツ３００をサーバ２００からダウンロードし、コンテンツ３００ａを異なるサーバからダウンロードする。例えば、ネットワーク１０に負荷分散装置を接続し、負荷分散装置の配下に複数のコンテンツを配信する複数のサーバを接続することが考えられる。この場合、例えば、上記のＵＲＬ中のホスト名を負荷分散装置上の仮想サーバのＦＱＤＮとして、負荷分散装置が配下の複数のサーバに処理を振り分けることが考えられる。この場合、クライアント１００は、複数のサーバの何れかからコンテンツ３００，３００ａを取得できる。
【００７４】
図８は、第２の実施の形態の版数テーブルの例を示す図である。図８（Ａ）は版数テーブル３３０を例示している。図８（Ｂ）は版数テーブル３３０ａを例示している。以下では、版数テーブル３３０について説明するが版数テーブル３３０ａも同様である。
【００７５】
版数テーブル３３０は、コンテンツ３００に含まれ、記憶部１１０，２１０に格納される。版数テーブル３３０は、ページおよび版数の項目を含む。
ページの項目には、ページ番号が登録される。版数の項目には、当該ページの版数が登録される。ここで、版数はページの更新のたびに１加算されるものとする。すなわち、版数が大きいほど新しい。ただし、改版を管理できれば、１以外の他の値を加算または減算してもよい。
【００７６】
例えば、版数テーブル３３０には、ページが“１”、版数が“２”という情報が登録される。これは、データ３１０の１ページ目の版数が“２”であることを示す。
同様に、例えば版数テーブル３３０ａには、ページが“１”、版数が“２”という情報が登録される。これは、データ３１０ａの１ページ目の版数が“２”であることを示す。
【００７７】
また、例えば版数テーブル３３０ａには、ページが“２”、版数が“３”という情報が登録される。これは、データ３１０ａの２ページ目の版数が“３”であることを示す。
なお、数値に代えて、タイムスタンプを版数として用いてもよい。例えば、サーバ２００上で各ページが更新された年月日時分秒などを示すタイムスタンプを版数テーブル３３０ａに登録する。そうすれば、タイムスタンプの新しいものほど新しい情報として識別できる。
【００７８】
図９は、第２の実施の形態の表示画面の例を示す図である。表示画面４００は、表示処理部１４０により生成され、ディスプレイ１１に出力される。ディスプレイ１１は、表示画面４００を表示する。ユーザは、表示画面４００に従って入力デバイス１２を操作し、表示対象ページの指定や拡大・縮小などの操作指示を入力できる。入力デバイス１２としては、例えば、上述したようにマウス、タッチパネルおよびキーボードなどを用いることができる。より具体的には、ユーザは、マウスによりポインタＰ１を移動させて表示画面４００上の所望のボタンを押下したり、ポインタＰ１を用いて選択したテキストボックスなどにキーボードを用いて文字を入力したりできる。
【００７９】
表示画面４００は、印刷ボタン４１０、拡大ボタン４２０、縮小ボタン４３０、ページ戻りボタン４４０、ページ送りボタン４５０、ページ指定ボックス４６０、サムネイル表示領域４７０、ページ表示領域４８０および終了ボタン４９０を含む。
【００８０】
印刷ボタン４１０は、表示中のページ（または、選択した範囲のページ）をクライアント１００に接続されたプリンタなどに印刷させるためのボタンである。
拡大ボタン４２０は、表示中のページを拡大表示させるためのボタンである。
【００８１】
縮小ボタン４３０は、表示中のページを縮小表示させるためのボタンである。
ページ戻りボタン４４０は、１つ前のページを表示させるためのボタンである。例えば、２ページ目を表示中にページ戻りボタン４４０が押下されると、１ページ目が表示対象に選択されたことになる。この場合、入力処理部１２０は１ページ目の出力指示を判定部１３０に入力する。
【００８２】
ページ送りボタン４５０は、１つ後のページを表示させるためのボタンである。例えば、２ページ目を表示中にページ送りボタン４５０が押下されると、３ページ目が表示対象に選択されたことになる。この場合、入力処理部１２０は３ページ目の出力指示を判定部１３０に入力する。
【００８３】
ページ指定ボックス４６０は、ページを指定するためのテキストボックスである。例えば、５ページ目が入力されると、５ページ目が表示対象に選択されたことになる。この場合、入力処理部１２０は５ページ目の出力指示を判定部１３０に入力する。
【００８４】
サムネイル表示領域４７０は、各ページの内容を低解像度で表示する領域である。表示処理部１４０は、記憶部１１０に記憶されたデータ３１０に基づいて、各ページの内容を低解像度で出力することができる。ユーザは、入力デバイス１２を用いて、サムネイル表示領域４７０に表示された何れかのページを選択することもできる。例えば、マウスを用いてポインタＰ１を移動させ、３ページ目の画像を選択する。すると、３ページ目が表示対象に選択されたことになる。この場合、入力処理部１２０は３ページ目の出力指示を判定部１３０に入力する。
【００８５】
ページ表示領域４８０は、データ３１０の内容をページ単位に表示させるための領域である。ユーザにより上記の各フォームを用いて選択されたページの内容が、ページ表示領域４８０に表示される。
【００８６】
終了ボタン４９０は、表示画面４００を閉じて閲覧を終了するためのボタンである。
図１０は、第２の実施の形態の処理を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。ここで、ステップＳ１１の直前では、記憶部１１０にコンテンツ３００が格納されているものとする。
【００８７】
（ステップＳ１１）入力処理部１２０は、記憶部１１０に記憶されたコンテンツ３００を閲覧対象として指定する入力を受け付ける。例えば、ユーザは、入力デバイス１２を用いて、コンテンツ３００の記憶部１１０上のパスを指定することで、コンテンツ３００を閲覧対象に指定できる。
【００８８】
（ステップＳ１２）判定部１３０は、記憶部１１０に記憶された管理テーブル３２０に基づいて、コンテンツ３００のコンテンツＩＤおよび提供元のＵＲＬを取得する。判定部１３０は、当該コンテンツＩＤに対応するコンテンツ３００ａの版数テーブル３３０ａを、当該ＵＲＬに対応するサーバ２００から取得する。
【００８９】
（ステップＳ１３）判定部１３０は、記憶部１１０に記憶された版数テーブル３３０とサーバ２００から取得した版数テーブル３３０ａとを比較して、改版されたページが存在するか否かを判定する。改版されたページが存在する場合、処理をステップＳ１４に進める。改版されたページが存在しない場合、処理をステップＳ１５に進める。具体的には、判定部１３０は、版数テーブル３３０ａの全ページの各版数のうちの少なくとも１つが、版数テーブル３３０の対応するページの版数よりも大きい場合に、改版されたページが存在すると判定する。例えば、版数テーブル３３０ａでは２，３，５ページ目の各版数が、版数テーブル３３０の２，３，５ページ目の各版数よりも大きい。したがって、判定部１３０は改版されたページが存在すると判定する。一方、例えば、版数テーブル３３０ａに登録された全ページの各版数が、版数テーブル３３０の対応するページの版数と同じである場合、判定部１３０は改版されたページが存在しないと判定する。
【００９０】
（ステップＳ１４）判定部１３０は、改版されたと判定されたページについて、記憶部１１０に記憶されたデータ３１０のＵｐｄａｔｅ要否の項目を“ｆａｌｓｅ”から“ｔｒｕｅ”に変更する。例えば、２，３，５ページ目が改版されていれば、データ３１０の２，３，５ページ目に対応するＵｐｄａｔｅ要否の項目を“ｆａｌｓｅ”から“ｔｒｕｅ”に変更する。
【００９１】
（ステップＳ１５）表示処理部１４０は、データ３１０に基づいて、各ページの内容をディスプレイ１１に出力し、ディスプレイ１１に各ページの内容を表示させる。表示処理部１４０は、当該表示処理の過程で、データ３１０の各ページのデータを更新する。当該表示処理の詳細は後述する。
【００９２】
（ステップＳ１６）判定部１３０は、ステップＳ１５の表示処理が終了すると、版数テーブル３３０に、版数テーブル３３０ａの内容を反映させる。その結果、版数テーブル３３０の登録内容は版数テーブル３３０ａと同じになる。
【００９３】
（ステップＳ１７）判定部１３０は、データ３１０のＵｐｄａｔｅ要否および表示の項目の登録内容を全て“ｆａｌｓｅ”（初期値）にリセットする。
このようにして、判定部１３０は、表示処理部１４０による表示処理が開始される前に、サーバ２００から版数テーブル３３０ａをダウンロードして、改版されたページの有無を判定する。そして、判定部１３０は、判定結果により、各ページの改版有無を示すフラグをデータ３１０に登録しておく。
【００９４】
なお、ステップＳ１６，Ｓ１７の処理は表示処理部１４０が実行してもよい。
次に、ステップＳ１５の表示処理の手順を説明する。
図１１は、第２の実施の形態の表示処理を示すフローチャートである。以下、図１１に示す処理をステップ番号に沿って説明する。
【００９５】
（ステップＳ２１）表示処理部１４０は、表示画面４００を起動する。
（ステップＳ２２）入力処理部１２０は、表示対象のページの選択を受け付ける。例えば、ユーザは、表示画面４００に従って入力デバイス１２を操作しディスプレイ１１に表示させたいページを選択できる。入力処理部１２０は、選択されたページの出力指示を判定部１３０に出力する。例えば、５ページ目が選択された場合、入力処理部１２０は、５ページ目の出力指示を判定部１３０に出力する。なお、表示画面４００を起動した直後では、入力処理部１２０は、所定のページ（例えば、１ページ目や前回終了時点のページなど）の出力指示を判定部１３０に出力する。
【００９６】
（ステップＳ２３）判定部１３０は、当該ページの出力指示を受け付けると、記憶部１１０に記憶されたデータ３１０に基づいて、選択された当該ページが未表示であるか否かを判定する。未表示である場合、処理をステップＳ２４に進める。未表示でない、すなわち、表示済である場合、処理をステップＳ２６に進める。判定部１３０は、データ３１０の表示の項目に基づいて、当該ページが未表示であるか否かを判定できる。具体的には、表示の項目が“ｆａｌｓｅ”であれば未表示である。表示の項目が“ｔｒｕｅ”であれば表示済である。
【００９７】
（ステップＳ２４）判定部１３０は、当該ページの出力指示を受け付けると、記憶部１１０に記憶されたデータ３１０に基づいて、選択された当該ページの更新があるか否かを判定する。更新がある場合、その旨を表示処理部１４０に通知して、処理をステップＳ２５に進める。更新がない場合、その旨を表示処理部１４０に通知して、処理をステップＳ２６に進める。判定部１３０は、データ３１０のＵｐｄａｔｅ要否の項目に登録されたフラグに基づいて、更新有無を判定できる。Ｕｐｄａｔｅ要否の項目が“ｔｒｕｅ”であれば更新がある。Ｕｐｄａｔｅ要否の項目が“ｆａｌｓｅ”であれば更新がない。例えば、５ページ目であれば、Ｕｐｄａｔｅ要否の項目が“ｔｒｕｅ”なので、判定部１３０は５ページ目の更新があると判定する。
【００９８】
（ステップＳ２５）表示処理部１４０は、更新後の当該ページをサーバ２００から取得する。例えば、表示処理部１４０は、５ページ目をサーバ２００に要求する。すると、サーバ２００は、記憶部２１０に記憶されたデータ３１０ａから５ページ目を抽出してクライアント１００に送信する。そして、処理をステップＳ２７に進める。
【００９９】
（ステップＳ２６）表示処理部１４０は、記憶部１１０に記憶されたデータ３１０から当該ページ（サーバ２００から取得済のページ）を取得する。
（ステップＳ２７）表示処理部１４０は、ステップＳ２５またはステップＳ２６で取得したページをディスプレイ１１に出力する。ディスプレイ１１は、当該ページを表示する。例えば、ステップＳ２５でサーバ２００から新たに５ページ目を取得した場合には、表示処理部１４０は、新たに取得した５ページ目をディスプレイ１１に出力する。また、例えば、ステップＳ２６でデータ３１０からページを取得した場合には、表示処理部１４０は、データ３１０から取得したページをディスプレイ１１に出力する。
【０１００】
（ステップＳ２８）表示処理部１４０は、ステップＳ２７で表示したページについて表示済である旨を登録する。具体的には、表示処理部１４０は、当該ページについて、データ３１０の表示の項目を“ｆａｌｓｅ”から“ｔｒｕｅ”に変更する。
【０１０１】
（ステップＳ２９）表示処理部１４０は、ステップＳ２７で出力したページがサーバ２００から取得したものであるか否かを判定する。サーバ２００から取得したページである場合、処理をステップＳ３０に進める。サーバ２００から取得したページでない場合、処理をステップＳ３１に進める。例えば、表示処理部１４０は、当該ページについてデータ３１０のＵｐｄａｔｅ要否および表示の項目の両方が“ｔｒｕｅ”である場合に、当該ページはサーバ２００から取得したものであると判定する。一方、Ｕｐｄａｔｅ要否の項目が“ｆａｌｓｅ”であり表示の項目が“ｔｒｕｅ”である場合に、当該ページはサーバ２００から取得したものでないと判定する。
【０１０２】
（ステップＳ３０）表示処理部１４０は、データ３１０内の当該ページをサーバ２００から新たに取得したページで置き換える。これにより、データ３１０の当該ページのみが更新される。
【０１０３】
（ステップＳ３１）表示処理部１４０は、表示画面４００で終了ボタン４９０が押下されたか否かを判定する。終了ボタン４９０が押下された場合、表示画面４００を閉じて処理を終了する。終了ボタン４９０が押下されていない、すなわち、データの閲覧が継続される場合には、処理をステップＳ２２に進める。
【０１０４】
このようにして、表示処理部１４０は、ページの出力指示を受け付けると、更新後の当該ページのみをサーバ２００からダウンロードする。表示処理部１４０は、データ３１０内の対応するページの代わりに、ダウンロードした更新後のページをディスプレイ１１に出力する。ディスプレイ１１は、当該更新後のページを表示する。
【０１０５】
なお、ステップＳ２３，Ｓ２４の処理は、表示処理部１４０が実行してもよい。その場合、ステップＳ２２において、入力処理部１２０は選択されたページを表示処理部１４０に出力する。
【０１０６】
また、ステップＳ２９，Ｓ３０は、ステップＳ２７の前に実行されてもよい。
また、図１０のステップＳ１６では、表示処理が完了した後に、判定部１３０が版数テーブル３３０を更新するものとしたが、他のタイミングで版数テーブル３３０を更新してもよい。例えば、表示処理部１４０がデータ３１０に含まれる全てのページを表示済としたタイミングで、判定部１３０（または表示処理部１４０）が、版数テーブル３３０を更新するようにしてもよい。あるいは、表示処理部１４０がデータ３１０のＵｐｄａｔｅ要否の項目に“ｔｒｕｅ”が設定されたページを全て表示済としたタイミングで、判定部１３０（または表示処理部１４０）が、版数テーブル３３０を更新するようにしてもよい。
【０１０７】
更に、図１０のステップＳ１１の直前ではコンテンツ３００が記憶部１１０に格納済であるとした。これに対し、コンテンツ３００が記憶部１１０に記憶済でない場合にも、図１０，１１と同様にして、コンテンツ３００ａの各ページを、出力指示があるたびに順次ダウンロードして表示させてもよい。例えば、サーバ２００上のコンテンツ３００ａのパスが指定された際（コンテンツ３００ａが選択された際）に、コンテンツ３００ａのうち、データ３１０ａのページデータの項目の登録がない（ＮＵＬＬである）ものを記憶部１１０にダウンロードしておく。この部分は図１０のステップＳ１１〜Ｓ１４の代わりに実行する。そして、図１１の表示処理において、ステップＳ２３の直前で出力指示のあったページが記憶部１１０に存在するか否か判定し、存在しない場合に、ステップＳ２５に進めて該当ページデータの実体をサーバ２００からダウンロードする。当該判定で、出力指示のあったページが既に存在する場合には、ステップＳ２６に進める。このようすれば、コンテンツ３００ａを最初にダウンロードする際にも、コンテンツ３００ａの全内容のダウンロード完了を待たずに、出力指示を受けたページを出力できる。
【０１０８】
次に、表示処理の流れの具体例を説明する。
図１２は、第２の実施の形態の表示処理を示すシーケンス図である。以下、図１２に示す処理をステップ番号に沿って説明する。
【０１０９】
（ステップＳ４１）クライアント１００は、記憶部１１０に記憶されたコンテンツ３００を閲覧対象に指定した閲覧開始の入力を受け付ける。
（ステップＳ４２）クライアント１００は、記憶部１１０に記憶された管理テーブル３２０に基づいて、コンテンツ３００のコンテンツＩＤおよび提供元のＵＲＬを取得する。クライアント１００は、コンテンツＩＤを指定した版数テーブルの提供依頼をサーバ２００に送信する。サーバ２００は、当該依頼を受信する。
【０１１０】
（ステップＳ４３）サーバ２００は、クライアント１００から受信したコンテンツＩＤに対応する版数テーブル３３０ａを記憶部２１０から抽出する。サーバ２００は、版数テーブル３３０ａをクライアント１００に送信する。クライアント１００は、版数テーブル３３０ａを受信する。
【０１１１】
（ステップＳ４４）クライアント１００は、サーバ２００から受信した版数テーブル３３０ａと、記憶部１１０に記憶された版数テーブル３３０とを比較して、各ページの改版の有無を判定する。クライアント１００は、各ページの改版の有無をデータ３１０のＵｐｄａｔｅ要否の項目に設定する。
【０１１２】
（ステップＳ４５）クライアント１００は、表示画面４００をディスプレイ１１に表示させる。クライアント１００は、データ３１０のうち、最初に表示する１ページ目のＵｐｄａｔｅ要否の項目を確認する。クライアント１００は、１ページ目の更新がないと判定する。
【０１１３】
（ステップＳ４６）クライアント１００は、データ３１０から１ページ目を抽出して、ディスプレイ１１に出力し表示させる。クライアント１００は、データ３１０のうち１ページ目を表示済に設定する。
【０１１４】
（ステップＳ４７）クライアント１００は、２ページ目の選択を受け付ける。
（ステップＳ４８）クライアント１００は、データ３１０のうち、２ページ目のＵｐｄａｔｅ要否の項目を確認する。クライアント１００は、２ページ目の更新があると判定する。
【０１１５】
（ステップＳ４９）クライアント１００は、コンテンツ３００のコンテンツＩＤを指定して、２ページ目の提供依頼をサーバ２００に送信する。サーバ２００は、当該依頼を受信する。
【０１１６】
（ステップＳ５０）サーバ２００は、クライアント１００から受信したコンテンツＩＤに対応するデータ３１０ａのうち、依頼された２ページ目を抽出する。サーバ２００は、抽出した２ページ目をクライアント１００に送信する。クライアント１００は、２ページ目を受信する。
【０１１７】
（ステップＳ５１）クライアント１００は、サーバ２００から受信した２ページ目をディスプレイ１１に出力し表示させる。クライアント１００は、データ３１０のうち２ページ目を表示済に設定する。
【０１１８】
（ステップＳ５２）クライアント１００は、データ３１０に含まれる２ページ目を、サーバ２００から受信した更新後の２ページ目に置き換える。
図１３は、第２の実施の形態の表示処理を示すシーケンス図（続き）である。以下、図１３に示す処理をステップ番号に沿って説明する。
【０１１９】
（ステップＳ６１）クライアント１００は、３ページ目の選択を受け付ける。
（ステップＳ６２）クライアント１００は、データ３１０のうち、３ページ目のＵｐｄａｔｅ要否の項目を確認する。クライアント１００は、３ページ目の更新があると判定する。
【０１２０】
（ステップＳ６３）クライアント１００は、コンテンツ３００のコンテンツＩＤを指定して、３ページ目の提供依頼をサーバ２００に送信する。サーバ２００は、当該依頼を受信する。
【０１２１】
（ステップＳ６４）サーバ２００は、クライアント１００から受信したコンテンツＩＤに対応するデータ３１０ａのうち、依頼された３ページ目を抽出する。サーバ２００は、抽出した３ページ目をクライアント１００に送信する。クライアント１００は、３ページ目を受信する。
【０１２２】
（ステップＳ６５）クライアント１００は、サーバ２００から受信した３ページ目をディスプレイ１１に出力し表示させる。クライアント１００は、データ３１０のうち３ページ目を表示済に設定する。
【０１２３】
（ステップＳ６６）クライアント１００は、データ３１０に含まれる３ページ目を、サーバ２００から受信した更新後の３ページ目に置き換える。
以降、クライアント１００は、選択された各ページをディスプレイ１１に表示させる。ここでは、最終ページを除く全てのページが表示済になったとする。その後、クライアント１００は、最終ページの選択を受け付ける。
【０１２４】
（ステップＳ６７）クライアント１００は、他のページと同様の手順を経て、最終ページをディスプレイ１１に出力し表示させる。ここでは、最終ページは更新がないものとする。クライアント１００は、データ３１０のうち最終ページを表示済に設定する。
【０１２５】
（ステップＳ６８）クライアント１００は、全てのページが表示済になったことを検出する。クライアント１００は、版数テーブル３３０に版数テーブル３３０ａの内容を反映させる。
【０１２６】
このようにして、クライアント１００は、更新があるページのみを提供するようにサーバ２００に依頼する。サーバ２００は、当該依頼に応じた更新後のページをクライアント１００に提供する。
【０１２７】
なお、ステップＳ６８の処理は、上述したようにクライアント１００が表示画面４００の終了指示を受け付けたときに実行されてもよい。
以上で説明したように、第２の実施の形態のクライアント１００は、ユーザにより選択されたページのうち、更新後のページのみをサーバ２００からダウンロードする。クライアント１００は、ダウンロードしたページをディスプレイ１１に出力し表示させる。更新のないページは、過去にサーバ２００から取得したページをディスプレイ１１に出力し表示させる。
【０１２８】
これにより、コンテンツ３００ａに含まれる全てのページをダウンロードしてから各ページを表示させる場合に比べ、各ページを表示させるまでの時間を短縮できる。特に、クライアント１００は、選択されたページの更新がある場合に更新後のページのみをサーバ２００からダウンロードする。したがって、更新のある全てのページを事前にダウンロードするような場合と比べても、各ページの表示を開始するまでの時間を短縮できる。
【０１２９】
また、クライアント１００は、閲覧対象とするコンテンツ３００が指定された際に、サーバ２００から版数テーブル３３０ａのみをダウンロードして、改版の有無を確認する。このため、改版の有無を確認するためにダウンロードするデータ量を、版数テーブル３３０ａを他の情報と併せてダウンロードする場合よりも、少量に抑えることができる。したがって、各ページの表示を開始するまでの待ち時間を軽減できる。
【０１３０】
また、クライアント１００は、コンテンツ３００が選択された際に、版数テーブル３３０ａをサーバ２００から事前にダウンロードする。これにより、ページが選択された際などに、ダウンロード済の版数テーブル３３０ａに基づいて更新有無を迅速に判定できる。例えば、ページが選択されるたびに、当該ページの更新の有無をサーバ２００に問い合わせることも考えられる。しかし、この場合、ページの表示のためにサーバ２００へ版数を確認するためのステップが入ることになる。よって、ネットワークの通信状況によっては、当該ステップで遅延が生じ得る。そこで、クライアント１００のように事前に版数テーブル３３０ａをダウンロードしておけば、出力指示を受けた後にページごとの現版数をサーバ２００に問い合わせるステップを省ける。ページの選択を受け付けてから各ページの表示を開始するまでの待ち時間を軽減できる。
【０１３１】
また、クライアント１００は、版数テーブル３３０ａと記憶部１１０に記憶された版数テーブル３３０とに基づいて、各ページの改版の有無を事前に判定し、Ｕｐｄａｔｅ要否を示すフラグをデータ３１０に事前に記録する。このため、その後、何れかのページが選択された際に、当該フラグのチェックのみで当該更新の有無を判定できる。したがって、ページが選択されてから版数の大小を比較して改版の有無を判定し更新有無を判定する場合と比べて、更新有無の判定を迅速に行える。具体的には、ページが選択されてから版数の大小を比較しようとすると、例えば、次のステップを行うことになる。（１）版数テーブル３３０の該当ページの版を抽出するステップ。（２）版数テーブル３３０ａから該当ページの版を抽出するステップ。（３）両方のテーブルから抽出した版を比較するステップ。一方、クライアント１００のように事前にＵｐｄａｔｅ要否を設定しておく場合は、例えば、次のステップを行うことになる。（１）データ３１０における該当ページのＵｐｄａｔｅ要否のフラグを抽出するステップ。（２）フラグの“ｔｒｕｅ”、“ｆａｌｓｅ”を確認するステップ。したがって、ページの表示までのステップ数を削減できる。よって、データ出力を効率化でき、ページの選択を受け付けてから各ページの表示を開始するまでの待ち時間を軽減できる。
【０１３２】
また、クライアント１００は、コンテンツ３００の閲覧を終了する旨の指示を受けた後に、版数テーブル３３０ａの内容を版数テーブル３３０に反映させる。これにより、コンテンツ３００の閲覧中に余計な処理負荷が発生するのを抑えることができる。
【０１３３】
更に、クライアント１００は、サーバ２００から更新後のページを取得するたびに、記憶部１１０に記憶されたデータ３１０内の当該ページを更新後のページに置き換える。これにより、データ３１０内のページを効率的に更新することができる。例えば、当該ページを再度表示させたい場合には、記憶部１１０に記憶されたデータ３１０から当該ページを抽出すればよく、サーバ２００から再度ダウンロードしなくてもよい。したがって、更新のあるページを再度表示させる場合に改めてダウンロードする手間も省ける。
【０１３４】
このようにして、クライアント１００は、サーバ２００において更新され得るコンテンツ３００内のデータを効率的に出力することができる。併せて、コンテンツ３００内のデータを効率的に更新することができる。
【０１３５】
なお、第２の実施の形態の例では、表示対象のページが選択されたときに、入力処理部１２０が当該ページの出力指示を判定部１３０に出力するものとしたが、判定部１３０が当該ページの出力指示を受け付ける場合はこれに限られない。例えば、表示画面４００において印刷ボタン４１０が押下された場合に、印刷対象とするページを選択できることがある。この場合、印刷対象とする１またはそれ以上のページが選択されたときに、入力処理部１２０が選択された１またはそれ以上のページの出力指示を判定部１３０に出力してもよい。このような場合にも、判定部１３０および表示処理部１４０を利用できる。
【０１３６】
更に、第２の実施の形態の例では、コンテンツに含まれるファイルとして、ページ単位に表示や印刷が可能なデータを想定したが、これに限られない。例えば、音声や動画などを含むファイルでもよい。音声や動画のデータは、所定の時間範囲を単位として編集／更新され得るものであり、時間範囲ごとにクライアント１００に提供して視聴可能だからである。例えば、音声や動画のデータは、所定の区切り（チャプター）に対応する複数の時間範囲を単位として更新され得る。
【０１３７】
［第３の実施の形態］
以下、第３の実施の形態を説明する。前述の第２の実施の形態との相違点を主に説明し、共通の事項の説明を省略する。
【０１３８】
第２の実施の形態では、ＣＰＵ１０１が所定のプログラムを実行することで、入力処理部１２０、判定部１３０および表示処理部１４０の機能を発揮してもよいことを説明した。当該プログラムは記録媒体１３に格納して配布する他、コンテンツ３００に含めて配布してもよい。
【０１３９】
図１４は、第３の実施の形態のソフトウェア例を示す図である。コンテンツ３００ｂは、データ３１０、管理テーブル３２０、版数テーブル３３０およびプログラム３４０を有する。コンテンツ３００ｂは、プログラム３４０を有する点でコンテンツ３００と異なる。
【０１４０】
プログラム３４０は、入力処理部１２０、判定部１３０および表示処理部１４０の機能を記述したプログラムである。
例えば、クライアント１００は、コンテンツ３００ｂをダウンロードして記憶部１１０に格納する。クライアント１００は、プログラム３４０をＲＡＭ１０２上にロードして実行し、入力処理部１２０、判定部１３０および表示処理部１４０の機能を発揮する。なお、プログラム３４０は、入力処理部１２０、判定部１３０および表示処理部１４０のうちの一部の機能を記述したプログラムを含んでもよい。プログラム３４０に含まれない機能に対応するプログラムは、例えばクライアント１００に事前にインストールされる。
【０１４１】
このようにプログラム３４０に、判定部１３０や表示処理部１４０などのプログラムを含めて配布すれば、コンテンツ３００ｂとともに、当該プログラムを効率的に配布することができる。
【０１４２】
上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０１４３】
１，２  情報処理装置
１ａ  記憶手段
１ｂ  判定手段
１ｃ  出力手段
Ｄ１０，Ｄ１０ａ  ファイル
Ｄ１１  第１の情報
Ｄ１２，Ｄ１２ａ  第２の情報
Ｄ１３  第３の情報
Ｄ１４，Ｄ１４ａ  第４の情報
Ｖ１，Ｖ１ａ  版を示す情報
【図１】
2013140486.tif 000003
【図２】
2013140486.tif 000004
【図３】
2013140486.tif 000005
【図４】
2013140486.tif 000006
【図５】
2013140486.tif 000007
【図６】
2013140486.tif 000008
【図７】
2013140486.tif 000009
【図８】
2013140486.tif 000010
【図９】
2013140486.tif 000011
【図１０】
2013140486.tif 000012
【図１１】
2013140486.tif 000013
【図１２】
2013140486.tif 000014
【図１３】
2013140486.tif 000015
【図１４】
2013140486.tif 000016
【手続補正書】
【提出日】平成26年6月10日(2014.6.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の情報を含むファイルおよび前記複数の情報それぞれの版を示す情報を配信する他の情報処理装置から過去に取得されたファイルに含まれる何れかの情報の出力指示を受け付けると、前記他の情報処理装置から取得された版を示す情報に基づいて、前記出力指示を受けた情報の更新があるか否かを判定する判定手段と、
前記出力指示を受けた情報の更新がないと判定されると前記過去に取得されたファイルから出力指示を受けた情報を取得して出力し、前記出力指示を受けた情報の更新があると判定されると前記出力指示を受けた情報に対応する更新後の情報を前記他の情報処理装置から取得して出力する出力手段と、
を有する情報処理装置。
【請求項２】
前記判定手段は、前記過去に取得されたファイルが指定されると、当該ファイルに含まれる何れかの情報の出力指示を受け付ける前に、当該ファイルに対応する版を示す情報を前記他の情報処理装置から新たに取得する、請求項１記載の情報処理装置。
【請求項３】
前記判定手段は、新たに取得された版を示す情報に基づいて、前記過去に取得されたファイルに含まれる複数の情報それぞれに改版があるか否かを判定し、当該複数の情報それぞれに対応付けて改版の有無を当該ファイルに事前に記録し、その後、当該ファイルの何れかの情報の出力指示を受け付けると、事前に記録した当該情報の改版の有無に基づいて、当該情報の更新があるか否かを判定する、請求項２記載の情報処理装置。
【請求項４】
前記判定手段は、新たに取得された第１の版を示す情報と過去に取得された第２の版を示す情報との比較結果に基づいて、前記出力指示を受けた情報の更新があるか否かを判定する、請求項１乃至３の何れか一項に記載の情報処理装置。
【請求項５】
前記判定手段は、ファイルの出力を終了する旨の指示を受けた後に、前記第１の版を示す情報の内容を、前記第２の版を示す情報に反映させる、請求項４記載の情報処理装置。
【請求項６】
前記出力手段は、更新後の情報を前記他の情報処理装置から取得するたびに、前記過去に取得されたファイルに含まれる前記出力指示を受けた情報を、更新後の情報に置き換える、請求項１乃至５の何れか一項に記載の情報処理装置。
【請求項７】
前記他の情報処理装置が配信するファイルは、ページ単位に出力可能なデータ、または、所定の時間範囲を単位に出力可能な音声および動画の少なくとも何れかを含むデータである、請求項１乃至６の何れか一項に記載の情報処理装置。
【請求項８】
コンピュータが、
複数の情報を含むファイルおよび前記複数の情報それぞれの版を示す情報を配信する他の情報処理装置から過去に取得されたファイルに含まれる何れかの情報の出力指示を受け付けると、前記他の情報処理装置から取得された版を示す情報に基づいて、前記出力指示を受けた情報の更新があるか否かを判定し、
前記出力指示を受けた情報の更新がないと判定されると前記過去に取得されたファイルから出力指示を受けた情報を取得して出力し、前記出力指示を受けた情報の更新があると判定されると前記出力指示を受けた情報に対応する更新後の情報を前記他の情報処理装置から取得して出力する、
データ出力方法。
【請求項９】
複数の情報を含むファイルおよび前記複数の情報それぞれの版を示す情報を配信する他の情報処理装置から過去に取得されたファイルに含まれる何れかの情報の出力指示を受け付けると、前記他の情報処理装置から取得された版を示す情報に基づいて、前記出力指示を受けた情報の更新があるか否かを判定し、
前記出力指示を受けた情報の更新がないと判定されると前記過去に取得されたファイルから出力指示を受けた情報を取得して出力し、前記出力指示を受けた情報の更新があると判定されると前記出力指示を受けた情報に対応する更新後の情報を前記他の情報処理装置から取得して出力する、
処理をコンピュータに実行させるプログラム。
【国際調査報告】
2013140486.tif 000017
2013140486.tif 000018