(57)【要約】【課題】クライアント装置の先読み量を適切にすることにより、サーバー装置の負荷を低減する技術を提供する。【解決手段】  サーバー装置が提供するサービスを先読みするクライアント装置であって、  サーバー装置からサービスを先読みする場合に生ずるコストの期待値と、サービスを先読みしなかった場合に後にサービスを取得するために生ずるコストの期待値と、サービスを先読みする際にサービスとは異なる他のサービスを記憶部から消去した場合に後に他のサービスを再取得するために生ずるコストの期待値と、に基づいてサービスを先読みする範囲を算出する。【選択図】  図１
2011128740.tif 000002
【特許請求の範囲】
【請求項１】
サーバー装置が提供するサービスを先読みするクライアント装置であって、
中央演算部と、記憶部と、を備え、
前記中央演算部は、
前記サーバー装置からサービスを先読みする場合に生ずるコストの期待値と、前記サービスを先読みしなかった場合に後に前記サービスを取得するために生ずるコストの期待値と、前記サービスを先読みする際に前記サービスとは異なる他のサービスを前記記憶部から消去した場合に後に前記他のサービスを再取得するために生ずるコストの期待値と、に基づいて前記サービスを先読みする範囲を算出することを特徴とするクライアント装置。
【請求項２】
前記コストがサーバー装置の負荷を示す情報であることを特徴とする請求項１記載のクライアント装置。
【請求項３】
前記中央演算部は、各サービスを取得するために必要なコストを示すコスト分布と、各サービスを取得する確率を示す取得確率分布とを前記サーバー装置から取得して前記サービスを先読みする範囲を算出することを特徴とする請求項１または２記載のクライアント装置。
【請求項４】
前記中央演算部は、前記サーバー装置からサービスを先読みする場合に生ずるコストの期待値と、前記サービスを先読みしなかった場合に後に前記サービスを取得するために生ずるコストの期待値と、前記サービスを先読みする際に前記サービスとは異なる他のサービスを前記記憶部から消去した場合に後に前記他のサービスを再取得するために生ずるコストの期待値と、の総和が最小となるように前記サービスを先読みする範囲を算出することを特徴とする請求項１から３の何れか記載のクライアント装置。
【請求項５】
クライアント装置にサービスを提供するサーバー装置と、前記サーバー装置からネットワークを介してサービス提供を受けるクライアント装置と、を備えるシステムであって、
前記クライアント装置は、中央演算部と、記憶部と、を備え、
前記中央演算部は、
前記サーバー装置からサービスを先読みする場合に生ずるコストの期待値と、前記サービスを先読みしなかった場合に後に前記サービスを取得するために生ずるコストの期待値と、前記サービスを先読みする際に前記サービスとは異なる他のサービスを前記記憶部から消去した場合に後に前記他のサービスを再取得するために生ずるコストの期待値と、に基づいて前記サービスを先読みする範囲を算出することを特徴とするシステム。  
【請求項６】
前記サーバー装置は前記クライアント装置へ各サービスを取得するために必要なコストを示すコスト分布を提供し、前記クライアント装置は前記サーバー装置から前記コスト分布を取得することを特徴とする請求項５記載のシステム。
【請求項７】
前記サーバー装置は、前記クライアント装置へ各サービスを取得する確率を示す前記取得確率分布を提供し、
前記クライアント装置は、前記サーバー装置から前記取得確率分布を取得することを特徴とする請求項５記載のシステム。
【請求項８】
前記中央演算部は、前記サーバー装置からサービスを先読みする場合に生ずるコストの期待値と、前記サービスを先読みしなかった場合に後に前記サービスを取得するために生ずるコストの期待値と、前記サービスを先読みする際に前記サービスとは異なる他のサービスを前記記憶部から消去した場合に後に前記他のサービスを再取得するために生ずるコストの期待値と、の総和が最小となるように前記サービスを先読みする範囲を算出することを特徴とする請求項５から７の何れか記載のシステム。
【請求項９】
前記中央演算部は、前記サービスを先読みしなかった場合に後に前記サービスを取得するために生ずるコストの期待値が小さいサービスから取得することを特徴とする請求項１から３の何れか記載のクライアント装置。
【請求項１０】
前記中央演算部は、前記サービスを先読みしなかった場合に後に前記サービスを取得するために生ずるコストの期待値が小さい前記サービスを優先的に取得することを特徴とする請求項１から３の何れか記載のクライアント装置。
【請求項１１】
前記中央演算部は、前記記憶部に記憶されたサービスの結果を消す場合に、前記他のサービスを再取得するために生ずるコストの期待値が小さいサービスの結果を優先的に消すことを特徴とする請求項１から３の何れか記載のクライアント装置。
【請求項１２】
前記クライアント装置はテレビであることを特徴とする請求項１から４および９から１１の何れか記載のクライアント装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント装置およびシステムに関し、特に、クライアント装置がサーバー装置からサービスを先読みする技術に関する。
【背景技術】
【０００２】
ネットワークを介して、異なるプラットフォーム上で動作するサービスを統合する技術としてウェブサービスがある。
【０００３】
ウェブサービスではクライアント装置が遠隔にあるサーバー装置に対しネットワークを介して処理の要求を送信し結果を受信するため、手元の機器上で動作するアプリケーションと比較して、通信に伴う遅延が発生する。この問題は、キャッシュの先読み技術により解決できる。キャッシュの先読み技術は、処理が必要とされる前に予め処理を要求し、その結果を手元の機器のキャッシュに保存することにより、処理の結果が必要とされたときに素早く利用できるようにする技術である。
【０００４】
例えば、特許文献１には、ユーザーの操作履歴から確率的に次に読み込まれそうなウェブページを先読みする技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２８０４０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、先読みは、サービスの結果が必要とされた場合には、それを素早く提供できることがメリットであるが、必要とされなかった場合には、サーバー装置での処理やその結果の送受信に費やした時間が無駄になるというデメリットがある。
【０００７】
また、先読みの量が少ないほど、クライアント装置にとってはキャッシュミスでサーバー装置へのアクセスに伴う遅延が増加し、サーバー装置にとってはクライアント装置からのアクセス回数が増えてそれに伴う負荷が増加する。逆に、先読みの量が多いほど、サーバー装置にとっては実際には必要とされないサービスの処理に伴う負荷が増加する。
【０００８】
このため、サーバー装置の負荷を小さくするためにはクライアント装置の先読み量を適切にする必要がある。
【０００９】
しかしながら、上記の従来技術では、アクセスされる確率が予め定めた閾値を超えるか否かにより先読み対象を決めているが、この閾値の決め方や先読み量については考慮されておらず、サーバー装置の負荷を必要以上に増加させるという課題があった。
【００１０】
そこで、本発明は上記の課題を鑑みてなされたものであり、通信システムにおいて、サーバー装置の負荷を低減する技術を提供することを主たる目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明は以下の構成を備える。即ち、サーバー装置が提供するサービスを先読みするクライアント装置であって、中央演算部と、記憶部と、を備える。中央演算部は、サーバー装置からサービスを先読みする場合に生ずるコストの期待値と、サービスを先読みしなかった場合に後にサービスを取得するために生ずるコストの期待値と、サービスを先読みする際にサービスとは異なる他のサービスを記憶部から消去した場合に後に他のサービスを再取得するために生ずるコストの期待値と、に基づいてサービスを先読みする範囲を算出する。
【００１２】
また、本発明は以下の構成を備える。即ち、クライアント装置にサービスを提供するサーバー装置と、サーバー装置からネットワークを介してサービス提供を受けるクライアント装置と、を備えるシステムであって、クライアント装置は、中央演算部と、記憶部と、を備える。中央演算部は、サーバー装置からサービスを先読みする場合に生ずるコストの期待値と、サービスを先読みしなかった場合に後にサービスを取得するために生ずるコストの期待値と、サービスを先読みする際にサービスとは異なる他のサービスを記憶部から消去した場合に後に他のサービスを再取得するために生ずるコストの期待値と、に基づいてサービスを先読みする範囲を算出する。
【発明の効果】
【００１３】
本発明によれば、通信システムにおいて、サーバー装置の負荷を低減することができる。
【図面の簡単な説明】
【００１４】
【図１】本実施の形態における通信システムのシステム構成図である。
【図２】本実施の形態におけるクライアント装置１２０からサーバー装置１１０へのサービス要求の処理フローを説明するための図である。
【図３】本実施の形態におけるクライアント装置１２０が行うサービス要求処理のフローチャートである。
【図４】本実施の形態における先読みデータ量と先読みに伴うコストの関係を示す図である。
【図５】本実施の形態における先読み範囲計算のフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の実施例について説明する。
【実施例１】
【００１６】
−−−システム構成−−−
以下に本発明の実施の形態について図面を用いて詳細に説明する。
【００１７】
図１は、本実施形態における通信システム１００のシステム構成図である。
【００１８】
図１に示す通信システム１００は、ＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）１２５により指定されたサービスを、クライアント装置１２０がサーバー装置１１０へ要求し、サーバー装置１１０から取得した結果をＵＩ１２５へ表示するシステムであり、サービスが選択されたときに、クライアント装置１２０が素早くサービスの結果をＵＩ１２５へ表示できるように、サービスが選択される前に、選択される可能性の高いサービスの結果をクライアント装置１２０が先読みするシステムである。クライアント装置１２０が、先読みに伴うサーバー装置１１０の負荷を考慮して先読みする範囲を決定することにより、従来の先読みを行うシステムよりもサーバー装置の負荷を少なくすることを可能にするシステムである。
【００１９】
＝＝＝通信システム＝＝＝
通信システム１００は、クライアント装置１２０へサービスを提供するサーバー装置１１０と、ＵＩ１２５によって指定されたサービスをサーバー装置１１０へ要求しサーバー装置１１０から取得した結果をＵＩ１２５へ表示するクライアント装置１２０と、サーバー装置１１０とクライアント装置１２０を接続するネットワーク１３０と、を備える。
【００２０】
＝＝＝サーバー装置＝＝＝
サーバー装置１１０は、ネットワーク１３０に接続しクライアント装置１２０と通信する通信部１１１と、クライアント装置１２０からのサービス要求を受けサービスを提供するサービス提供部１１３と、を備える。
【００２１】
通信部１１１は、ＴＣＰ／ＩＰプロトコルスタックを備え、クライアント装置１２０と通信する。
【００２２】
サービス提供部１１３は、ＳＯＡＰサーバー装置を備え、通信部１１１を介してクライアント装置１２０からの要求をＳＯＡＰリクエストとして受信し、要求に対する処理を実行し、その結果を通信部１１１を介してＳＯＡＰレスポンスとしてクライアント装置１２０へ送信する。
【００２３】
サービス提供部１１３が受けるクライアント装置１２０からのサービス要求は、要求するサービスの範囲の情報を含む。要求するサービスの範囲は、サービスのアドレスで指定する。この指定は、単独のアドレス、「始点−終点」による範囲指定、および「,」によるリスト化を組み合わせて行うことができる。例えば、単独のアドレスの例は「２」であり、これによりアドレス２のサービスを指定する。範囲指定の例は「６−７」であり、これによりアドレス６からアドレス７のサービスを指定する。リスト化の例は「２,４−６」であり、これによりアドレス２とアドレス４からアドレス６のサービスを指定する。  コスト分布提供部１１６と取得確率提供部１１７については後述する。
【００２４】
なお、サーバー１１０は中央演算部（図示せず）を備えており、機能ブロックとして表されたサービス提供部１１３、コスト分布提供部１１６、取得確率分布提供部１１７に関わるプログラムを記憶部（図示せず）から読み出して実行する。後述するサーバー装置１１０の各処理、各フローチャート等はこのように中央演算部によって実行される。
【００２５】
＝＝＝クライアント装置＝＝＝
クライアント装置１２０は、ネットワーク１３０に接続しサーバー装置１１０と通信する通信部１１１と、サーバー装置１１０から取得したサービスの結果を記録するキャッシュ１２２と、先読み範囲計算を実行しＵＩ１２５で選択したサービスと先読みするサービスをサーバー装置１１０へ要求し、その結果を取得し、キャッシュ１２２へ記録し、ＵＩ１２５へ表示するサービス要求部１２３と、サーバー装置１１０へ要求するサービスを選択し、その結果を表示するＵＩ１２５と、を備える。
【００２６】
通信部１１１は、ＴＣＰ／ＩＰプロトコルスタックを備え、サーバー装置１１０と通信する。
【００２７】
サービス要求部１２３は、ＳＯＡＰクライアント装置を備え、通信部１１１を介してサーバー装置１１０への要求をＳＯＡＰリクエストとして送信し、通信部１１１を介してＳＯＡＰレスポンスとして結果を受信する。また、サービス要求部１２３は、先読み範囲計算Ｓ３０２により先読み範囲と不要キャッシュを求め、キャッシュ１２２から不要キャッシュを削除し、キャッシュ１２２に先読み範囲の結果を記録する。サービス要求部１２３は、先読み範囲計算手段１２４を備える。
【００２８】
先読み範囲計算手段１２４は、先読み範囲計算Ｓ３０２を実行する。
【００２９】
なお、クライアント装置１２０は中央演算部（図示せず）を備えており、機能ブロックとして表されたＵＩ１２５、サービス要求部１２３、先読み範囲計算手段１２４に関わるプログラムを記憶部（図示せず）から読み出して実行する。後述するクライアント装置１２０の各処理、各フローチャート等はこのように中央演算部によって実行される。
【００３０】
＝＝＝キャッシュ＝＝＝
キャッシュ１２２は、サービスのアドレスとその結果と記録時刻を対にして記録する。キャッシュ１２２は、記録しているサービスに関して、指定したアドレスに対応する結果と記録時刻を出力する。
【００３１】
＝＝＝サービス要求処理フローの例＝＝＝
図２は、本実施の形態におけるクライアント装置１２０からサーバー装置１１０へのサービス要求の処理フローを説明するための図である。
【００３２】
ＵＩ１２５が先ずアドレス６−７のサービスを要求し、続いてアドレス５のサービスを要求した場合を例に説明する。この例では、キャッシュは空の状態から開始する。
【００３３】
ＵＩ１２５は、ユーザー操作によりアドレス６−７のサービスが必要になったとき、サービス要求部１２３へサービス要求（６−７）を指示する（Ｓ２０１）。
【００３４】
サービス要求部１２３は、ＵＩ１２５からサービス要求（６−７）を受け、先読み範囲計算を行う。その結果、先読み範囲（４−９）を得る（Ｓ２０２）。
【００３５】
サービス要求部１２３は、キャッシュ１２２に先読み範囲（４−９）があるか問い合わせ、キャッシュ１２２にはその範囲の結果がないため、結果（該当なし）を得る（Ｓ２０３）（Ｓ２０４）。
【００３６】
サービス要求部１２３は、キャッシュ１２２から先読み範囲（４−９）を得られなかったため、先読み範囲（４−９）を得るために、サーバー装置１１０へサービス要求（４−９）を送信する。（Ｓ２０５）。
【００３７】
サーバー装置１１０は、クライアント装置１２０からサービス要求（４−９）を受け、要求されたサービスの結果（４−９）を生成し、クライアント装置１２０へ送信する（Ｓ２０６）。
【００３８】
サービス要求部１２３は、サーバー装置１１０から結果（４−９）を受信し、そこからＵＩ１２５から要求されたサービスの結果（６−７）を抽出し、ＵＩ１２５へ渡す（Ｓ２０７）。
【００３９】
サービス要求部１２３は、サーバー装置１１０から受信した結果（４−９）をキャッシュ１２２へ記録する（Ｓ２０８）。
【００４０】
続いて、ＵＩ１２５は、ユーザー操作によりアドレス５のサービスが必要になったとき、サービス要求部１２３へサービス要求（５）を指示する（Ｓ２０９）。
【００４１】
サービス要求部１２３は、ＵＩ１２５からサービス要求（５）を受け、先読み範囲計算を行う。その結果、先読み範囲（３−６）を得る（Ｓ２１０）。
【００４２】
サービス要求部１２３は、キャッシュ１２２に先読み範囲（３−６）があるか問い合わせ、キャッシュ１２２には４−６の結果があるため、結果（４−６）を得る（Ｓ２１１）（Ｓ２１２）。
【００４３】
サービス要求部１２３は、ＵＩ１２５からの要求（５）の結果を得られたのでアプリに渡す（Ｓ２１３）。
【００４４】
サービス要求部１２３は、先読み範囲（３−６）に対して、結果（４−６）の結果が得られたが、アドレス３の結果が足りないので、サーバー装置１１０へサービス要求（３）を送信する（Ｓ２１４）。
【００４５】
サーバー装置１１０は、クライアント装置１２０からサービス要求（３）を受け、要求されたサービスの結果（３）を生成し、クライアント装置１２０へ送信する（Ｓ２１５）。
【００４６】
サービス要求部１２３は、サーバー装置１１０から受信した結果（３）をキャッシュ１２２へ記録する（Ｓ２１６）。
【００４７】
＝＝＝サービス要求処理のフローチャート＝＝＝
図３は、本実施の形態におけるクライアント装置１２０が行うサービス要求処理のフローチャートである。
【００４８】
サービス要求処理Ｓ３００は、ＵＩ１２５から要求範囲を取得し（Ｓ３０１）、この要求範囲から先読み範囲計算を行い先読み範囲と不要キャッシュを求め（Ｓ３０２）、Ｓ３０１で取得した要求範囲の結果がキャッシュに記録されているかを判断し（Ｓ３０３）、要求範囲の結果がキャッシュ１２２に記録されていれば要求範囲の結果をＵＩ１２５に出力し（Ｓ３０４）、Ｓ３０２で求めた先読み範囲の結果がキャッシュ１２２に記録されているか判断し（Ｓ３０５）、先読み範囲の結果がキャッシュ１２２に記録されていれば終了する。Ｓ３０５で先読み範囲の結果がキャッシュ１２２に記録されていなければ先読み範囲の結果をサーバー装置１１０に要求し（Ｓ３０６）、先読み範囲の結果をサーバー装置１１０から取得できたかを判断し（Ｓ３１３）、先読み範囲の結果をサーバー装置１１０から取得できた場合はＳ３０２で求めた不要キャッシュを削除して先読み範囲を記録できるだけのキャッシュ１２２に空きを作り、先読み範囲の結果をキャッシュ１２２に記録し（Ｓ３１４）終了する。Ｓ３１３で先読み範囲の結果をサーバー装置１１０から取得できなかった場合は終了する。Ｓ３０３で要求範囲の結果がキャッシュ１２２に記録されていなければ、先読み範囲の結果がキャッシュ１２２に記録されているか判断し（Ｓ３０７）、先読み範囲の結果がキャッシュ１２２に記録されていればＳ３０1で取得した要求範囲の結果をサーバー装置１１０に要求し（Ｓ３０８）、要求範囲の結果をサーバー装置１１０から取得できたかを判断し（Ｓ３１０）、要求範囲の結果をサーバー装置１１０から取得できた場合は要求範囲の結果をＵＩ１２５に出力し（Ｓ３１１）、Ｓ３１３以降の処理を行う。Ｓ３１０で要求範囲の結果をサーバー装置１１０から取得できなかった場合は要求範囲の結果を取得できなかったことを示す取得不可通知をＵＩ１２５に出力し（Ｓ３１２）、Ｓ３１３以降の処理を行う。Ｓ３０７で先読み範囲の結果がキャッシュ１２２に記録されていなければＳ３０1で取得した要求範囲の結果とＳ３０２で求めた先読み範囲の結果をサーバー装置１１０に要求し（Ｓ３０９）、Ｓ３１０以降の処理を行う。
【００４９】
−−−先読み範囲計算−−−
図４は、本実施の形態における先読みデータ量と先読みに伴うコストの関係を示す図である。本実施例では、コストとはサーバー装置１１０での処理時間である。本実施例のサービスは、アドレスを指定するとそのアドレスのデータを取得できるサービスである。
【００５０】
＝＝＝Ｃ（ｎ）＝＝＝
先読みは、要求される可能性の高いデータを優先的に取得する。ただし、取得したデータを格納するためにキャッシュに空きを作らなければならない場合は、既にキャッシュに記録されているデータのうち再取得の可能性の小さいデータから消して空きを作る。
【００５１】
量ｎのデータの先読みに伴って生じるコストＣ（ｎ）は、
Ｃ（ｎ）＝Ｃ１（ｎ）＋Ｃ２（ｎ）＋Ｃ３（ｎ）  （式１）
と表わすことができる。但し、Ｃ１（ｎ）は、量ｎのデータを先読みするのにかかるコスト、Ｃ２（ｎ）は、量ｎのデータを先読みした場合に、先読みしなかったデータの取得にかかるコストの期待値、Ｃ３（ｎ）は、量ｎのデータを先読みした場合に、キャッシュから消されたデータの再取得にかかるコストの期待値、である。また、キャッシュの最大量をＭとするとｎ≦Ｍである。全データ量をＮとする。先読みに伴って生じるコストを最小化すれば、システムの効率を向上することができる。即ち、Ｃ（ｎ）を最小とする量ｎのデータを先読みすればよい。量ｎは先読み範囲計算（Ｓ３０２）により求めることができる。
【００５２】
データを取得するときかかるコストは、通信確立に伴うコストのようにデータ量によらないコストと、データ送受信やデータ生成に伴うコストのようにデータ量に比例するコストの和である。
【００５３】
Ｃ１（ｎ）は、量ｎのデータを先読みするのにかかるコストであるから、即ちｎが多いほど先読みするデータ量が増えるので、ｎの単調増加関数である。詳しく述べると、Ｃ１（ｎ）は、量ｎによらないコストα１と、量ｎのデータに含まれる各データｉを取得するときにかかるコストｃ１（ｉ）の総和Σ＜ｉ＝１,ｎ＞ｃ１（ｉ）との和である。但し、後ろに述べるｃ２（ｉ）ｐ２（ｉ）が降順になるようにデータｉはソート済みである。
【００５４】
Ｃ１（ｎ）＝α１＋Σ＜ｉ＝１,ｎ＞ｃ１（ｉ）  （式２）
このときＣ１（ｎ）はｎの単調増加関数である。さらに、ｃ１（ｉ）を定数であると仮定すると、Ｃ１（ｎ）はｎの一次関数である。即ち、Ｃ１（ｎ）のグラフは右上がりの直線となる。本実施の形態では、α１は先読みに伴う通信確立のコスト、つまり１回の通信確立に伴うコストとみなす。
【００５５】
Ｃ２（ｎ）は、量ｎのデータを先読みした場合に、先読みしなかったデータの取得にかかるコストの期待値であるから、即ちｎが多いほど新たに取得しなければならないデータが減るので、ｎの単調減少関数である。詳しく述べると、Ｃ２（ｎ）は、量ｎによらないコストα２と、量ｎのデータに含まれない各データｉを取得するときにかかるコストｃ２（ｉ）と取得する可能性ｐ２（ｉ）の積の総和Σ＜ｉ＝ｎ＋１,Ｎ＞ｃ２（ｉ）ｐ２（ｉ）との和である。但し、ｃ２（ｉ）ｐ２（ｉ）が降順になるようにデータｉはソート済みである。
【００５６】
Ｃ２（ｎ）＝α２＋Σ＜ｉ＝ｎ＋１,Ｎ＞ｃ２（ｉ）ｐ２（ｉ）＝α２＋ＣＮ−Σ＜ｉ＝１,ｎ＞ｃ２（ｉ）ｐ２（ｉ）  （式３）
但し、ＣＮは全データの取得するときにかかるコストと取得する可能性の積の総和であり、ｎによらない値である。このときＣ２（ｎ）はｎの単調減少関数である。
【００５７】
さらに、ｃ２（ｉ）を定数であると仮定すると、先読みは、要求される可能性の高いデータを優先的に取得することからｐ２（ｉ）はｉの単調減少関数でありｉが増加すると０に近づくから、変化量Ｄ２（ｎ）＝Ｃ２（ｎ＋１）−Ｃ２（ｎ）＝−ｃ２（ｎ＋１）ｐ２（ｎ＋１）は単調増加関数でありｎが増加すると０に近づく。即ち、Ｃ２（ｎ）のグラフは徐々に傾きが緩やかになる右下がりの曲線である。
【００５８】
本実施の形態では、α２は先読みしなかったデータの取得に伴う通信確立のコスト、つまり１回以上の通信確立に伴うコストの総和とみなし、さらに、通信確立の回数が複数回になる可能性は１回に比べて少ないと仮定し、α２を１回の通信確立に伴うコストで近似する。
【００５９】
Ｃ３（ｎ）は、量ｎのデータを先読みした場合に、キャッシュから消されたデータの再取得にかかるコストの期待値であるから、即ちｎがキャッシュの空きの量まではキャッシュからデータを消さないので０、ｎがキャッシュの空きの量を超えるとｎが多いほどキャッシュから消すデータが増えるので、ｎの単調増加関数である。詳しく述べると、Ｃ３（ｎ）は、キャッシュの空きの量をｍとすると、ｎがｍ以下のときは０、ｎがｍより大きいときは、量ｎによらないコストα３と、キャッシュから消すデータｉを再取得するときにかかるコストｃ３（ｉ）と再取得する可能性ｐ３（ｉ）の積の総和Σ＜ｉ＝ｍ＋１,ｎ＞ｃ３（ｉ）ｐ３（ｉ）との和である。但し、データｉは、１≦ｉ≦ｍのとき空き領域であり、ｍ＋１≦ｉ≦ｎのときデータが記録されている。さらに１≦ｉ≦ｍのときｐ３（ｉ）＝０であり、ｃ３（ｉ）ｐ３（ｉ）が昇順になるようにデータｉはソート済みである。
【００６０】
Ｃ３（ｎ）＝０（ｎ≦ｍ）＝α３＋Σ＜ｉ＝ｍ＋１,ｎ＞ｃ３（ｉ）ｐ３（ｉ）（ｎ＞ｍ）  （式４）
このときＣ３（ｎ）は単調増加関数である。
【００６１】
さらに、ｃ３（ｉ）を定数であると仮定すると、取得したデータを格納するためにキャッシュに空きを作らなければならない場合は、既にキャッシュに記録されているデータのうち再取得の可能性の小さいデータから消して空きを作ることからｐ３（ｉ）はｉの単調増加関数であり、変化量Ｄ３（ｎ）＝Ｃ３（ｎ＋１）−Ｃ３（ｎ）＝ｃ３（ｎ＋１）ｐ３（ｎ＋１）はｎの単調増加関数である。即ち、Ｃ３（ｎ）のグラフはｎ≦ｍでは０、ｎ＜ｍでは徐々に傾きが急になる右上がりの曲線である。
【００６２】
本実施の形態では、α３はキャッシュから消されたデータの再取得に伴う通信確立のコスト、つまり１回以上の通信確立に伴うコストの総和とみなし、さらに、通信確立の回数が複数回になる可能性は１回に比べて少ないと仮定し、α３を１回の通信確立に伴うコストで近似する。
【００６３】
キャッシュに空きを作るために消すキャッシュデータを不要キャッシュと呼ぶ。
【００６４】
上記では、α１、α２、α３を量ｎによらないコストとしたが、ｎの大きさによっては通信を複数に分けて行うために、通信確立が複数回生じるような場合も考えられる。このような場合、ｎによってα１、α２、α３が変化することになるが、ｎによるα１、α２、α３の変化が他の項の変化に比べて小さければ、上記は同様に成り立つ。
【００６５】
＝＝＝アドレスとデータの大きさ＝＝＝
本実施例では、アドレスａのデータの大きさは１ｋバイトである。但し、１≦ａ≦Ｎである。量ｎのデータとは、ｎ個のデータであり、その大きさはｎｋバイトである。
【００６６】
＝＝＝コスト分布ｃ（ａ）＝＝＝
アドレスａのデータを取得するコストｃ（ａ）はａによらず一定である。
【００６７】
＝＝＝取得確率分布ｐ（ｒ，ａ）＝＝＝
本実施例では、アドレスｒのデータが要求されたときに、今後アドレスａのデータを取得する確率ｐ（ｒ,ａ）が、平均ｒ、分散１００の正規分布Ｎ（ｒ,１００）に従うと仮定し、この確率密度関数をｆ（ｘ）として、ｐ（ｒ,ａ）＝ｆ（ａ）と定義する。
【００６８】
＝＝＝ｃ１（ｉ）＝＝＝
ｃ１（ｉ）は次のように決定する。ｐ（ｒ,ａ）を、ｒ−Ｍ／２≦ａ≦ｒ＋Ｍ／２の範囲でＭ個求める。Ｍ個求められない場合は、求められるだけ求める。
【００６９】
求めたｐ（ｒ,ａ）を降順にソートし、順に１からＭまでインデックスを付ける。インデックスｉに対応するアドレスをａ［ｉ］とし、
ｃ１（ｉ）＝ｃ（ａ［ｉ］）  （式５）
として、ｃ１（ｉ）を決定する。
【００７０】
＝＝＝ｐ２（ｉ）、ｃ２（ｉ）、ＣＮ＝＝＝
ｐ２（ｉ）、ｃ２（ｉ）、ＣＮは次のように決定する。ｐ（ｒ,ａ）を、ｒ−Ｍ／２≦ａ≦ｒ＋Ｍ／２の範囲でＭ個求める。Ｍ個求められない場合は、求められるだけ求める。求めたｐ（ｒ,ａ）を降順にソートし、順に１からＭまでインデックスを付ける。インデックスｉに対応するアドレスをａ２［ｉ］とし、
ｐ２（ｉ）＝ｐ（ｒ,ａ２［ｉ］）  （式６）
として、ｐ２（ｉ）を決定する。同様に、
ｃ２（ｉ）＝ｃ（ａ２［ｉ］）  （式７）
として、ｃ２（ｉ）を決定する。さらに、
ＣＮ＝Σ＜ｉ＝１，Ｎ＞ｃ２（ｉ）≒Σ＜ｉ＝１，Ｍ＞ｃ２（ｉ）  （式８）
として、ＣＮを近似により決定できる。但し、Ｃ（ｎ）を最小にするｎを求めるためにＣＮの値を決定する必要はない。
【００７１】
＝＝＝ｐ３（ｉ）、ｃ３（ｉ）＝＝＝
ｐ３（ｉ）、ｃ３（ｉ）は次のように決定する。キャッシュの最大量をＭ、キャッシュの空き量をｍとする。キャッシュに記録されているＭ−ｍ個の各データについてｐ（ｒ,ａ）を求める。求めたｐ（ｒ,ａ）を昇順にソートし、順にｍ＋１からＭまでインデックスを付ける。インデックスｉに対応するアドレスをａ３［ｉ］とし、
ｐ３（ｉ）＝０（１≦ｉ≦ｍ）＝ｐ（ｒ,ａ３［ｉ］）（ｍ＋１≦ｉ≦Ｍ）  （式９）
として、ｐ３（ｉ）を決定する。同様に、
ｃ３（ｉ）＝ｃ（ａ３［ｉ］）  （式１０）
として、ｃ３（ｉ）を決定する。
【００７２】
＝＝＝先読み範囲計算のフローチャート＝＝＝
図５は、本実施の形態における先読み範囲計算のフローチャートである。
【００７３】
先読み範囲計算（Ｓ３０２）は、コスト分布ｃ（ａ）を導出し（Ｓ５０１）、取得確率分布ｐ（ｒ，ａ）を導出し（Ｓ５０２）、ｃ１（ｉ）、ｃ２（ｉ）、ｐ２（ｉ）、ａ２［ｉ］、ｃ３（ｉ）、ｐ３（ｉ）、ａ３［ｉ］を導出し（Ｓ５０３）、Ｃ（ｎ）を最小とするｎを導出し（Ｓ５０４）、先読み範囲ａ２［１］からａ２［ｎ］を出力し（Ｓ５０５）、終了する。
【００７４】
但し、本実施の形態ではコスト分布ｃ（ａ）はａによらず一定とする。取得確率分布ｐ（ｒ，ａ）の導出については上に述べた。ｃ１（ｉ）、ｃ２（ｉ）、ｐ２（ｉ）、ａ２［ｉ］、ｃ３（ｉ）、ｐ３（ｉ）、ａ３［ｉ］の導出については上に述べた。α１、α２、α３はサービスに関連する情報としてサービス要求が記録している。
【００７５】
Ｃ（ｎ）を最小とするｎの導出は次のように行う。数１，２，３，４より、
Ｃ（ｎ）＝Ｃ１（ｎ）＋Ｃ２（ｎ）＋Ｃ３（ｎ）
Ｃ１（ｎ）＝α１＋Σ＜ｉ＝１,ｎ＞ｃ１（ｉ）
Ｃ２（ｎ）＝α２＋ＣＮ−Σ＜ｉ＝１,ｎ＞ｃ２（ｉ）ｐ２（ｉ）
Ｃ３（ｎ）＝０  （ｎ≦ｍ）
Ｃ３（ｎ）＝α３＋Σ＜ｉ＝ｍ＋１,ｎ＞ｃ３（ｉ）ｐ３（ｉ）  （ｎ＞ｍ）
であるから
Ｃ（ｎ）＝α＋Σ＜ｉ＝１,ｎ＞ｃ１（ｉ）−Σ＜ｉ＝１,ｎ＞ｃ２（ｉ）ｐ２（ｉ）（ｎ≦ｍ）＝α＋α３＋Σ＜ｉ＝１,ｎ＞ｃ１（ｉ）−Σ＜ｉ＝１,ｎ＞ｃ２（ｉ）ｐ２（ｉ）＋Σ＜ｉ＝ｍ＋１,ｎ＞ｃ３（ｉ）ｐ３（ｉ）（ｎ＞ｍ）  （式１１）
但し、α＝α１＋α２＋ＣＮ（定数）とする。
【００７６】
よって、Ｃ’（ｎ）＝Ｃ（ｎ）−αを最小とするｎを求めることにより、Ｃ（ｎ）を最小とするｎを求めることができる。
【００７７】
Ｃ’（ｎ）＝Σ＜ｉ＝１,ｎ＞ｃ１（ｉ）−Σ＜ｉ＝１,ｎ＞ｃ２（ｉ）ｐ２（ｉ）（ｎ≦ｍ）＝α３＋Σ＜ｉ＝１,ｎ＞ｃ１（ｉ）−Σ＜ｉ＝１,ｎ＞ｃ２（ｉ）ｐ２（ｉ）＋Σ＜ｉ＝ｍ＋１,ｎ＞ｃ３（ｉ）ｐ３（ｉ）（ｎ＞ｍ）  （式１２）
ｎ＝１からｍについてＣ’（ｎ）を求め、求めたすべてのＣ’（ｎ）を比較し最小値を求め、その最小値を与えるｎを求める。
【００７８】
以上により、クライアント装置１２０が先読みに伴うコストを最小にする範囲を先読みすることにより、従来の先読みを行うシステムよりもシステム全体の負荷を少なくすることを可能になる。
【００７９】
−−−派生−−−
本実施例では、コストはサーバー装置での処理時間とするが、他の実施例として処理負荷、消費電力、料金、環境負荷とすることが可能である。
【００８０】
本実施例では、取得確率分布ｐ（ｒ,ａ）を正規分布により定義したが、他の実施例としてサービスの特定によって正規分布以外の分布を利用することが可能である。また、他の実施例としてユーザーによるクライアント装置１２０の操作履歴を元に取得確率分布ｐ（ｒ,ａ）を定義することも可能である。
【００８１】
本実施例では、サーバー装置１１０が提供するサービスを、アドレスを指定するとそのアドレスのデータを取得できるサービスとしたが、他のサービスであっても上記先読み範囲計算により目的を達成することが可能である。
【実施例２】
【００８２】
実施例１では、アドレスａのデータを取得するコストｃ（ａ）をａによらず一定と仮定したが、実施例２ではｃ（ａ）をａの関数として扱う。その他の構成は実施例１で説明したものと同様である。
【００８３】
サーバー装置１１０は、コスト分布提供部１１６を備え、クライアント装置１２０からのコスト分布要求に応じてコスト分布ｃ（ａ）を提供する。コスト分布ｃ（ａ）は、アドレスとコストが対になった表データである。
【００８４】
クライアント装置１２０はサーバー装置１１０から取得したコスト分布ｃ（ａ）を使用して、実施例１と同様に図５のフローチャートに沿ってＣ（ｎ）を最小にするｎを求め、先読み範囲ａ２［１］からａ２［ｎ］を決定し、先読みする。
【００８５】
以上により、新規のサーバー装置１１０に対しても、クライアント装置１２０が先読みに伴うコストを最小にする範囲を先読みすることにより、従来の先読みを行うシステムよりもシステム全体の負荷を少なくすることを可能になる。
【実施例３】
【００８６】
実施例１では、アドレスａのデータを取得する取得確率分布ｐ（ｒ，ａ）を正規分布により定義したが、実施例２ではサーバー装置１１０の特性によって変更する。その他の構成は実施例１で説明したものと同様である。
【００８７】
サーバー装置１１０は、取得確率分布提供部１１７を備え、クライアント装置１２０からの取得確率分布要求に応じて取得確率分布ｐ（ｒ，ａ）を提供する。取得確率分布要求は要求アドレスｒの情報を含む。取得確率分布ｐ（ｒ，ａ）は、アドレスと取得確率が対になった表データである。
【００８８】
クライアント装置１２０はサーバー装置１１０から取得した取得確率分布ｐ（ｒ，ａ）を使用して、実施例１と同様に図５のフローチャートに沿ってＣ（ｎ）を最小にするｎを求め、先読み範囲ａ２［１］からａ２［ｎ］を決定し、先読みする。
【００８９】
以上により、新規のサーバー装置１１０に対しても、クライアント装置１２０が先読みに伴うコストを最小にする範囲を先読みすることにより、従来の先読みを行うシステムよりもシステム全体の負荷を少なくすることを可能になる。
【実施例４】
【００９０】
実施例１では、再取得する可能性ｐ３（ｉ）を式９で定義したが、実施例４では、古いキャッシュデータほど再取得される可能性が低いと仮定して、キャッシュにデータｉを記録してからの時間ｔ（ｉ）として、
ｐ３（ｉ）＝０  （１≦ｉ≦ｍ）＝ｐ（ｒ,ａ３［ｉ］）／ｔ（ｉ）（ｍ＋１≦ｉ≦Ｍ）  （式１３）
とする。その他の構成は実施例１で説明したものと同様である。クライアント装置１２０は数１３のｐ３（ｉ）を使用して、実施例１と同様に図５のフローチャートに沿ってＣ（ｎ）を最小にするｎを求め、先読み範囲ａ２［１］からａ２［ｎ］を決定し、先読みする。ｔ（ｉ）はクライアント装置１２０に記録する。
【００９１】
以上により、クライアント装置１２０が先読みしたデータを記録するのに十分なキャッシュの空きがない場合は、古いキャッシュデータから消し、クライアント装置１２０が先読みに伴うコストを最小にする範囲を先読みすることにより、従来の先読みを行うシステムよりもシステム全体の負荷を少なくすることを可能になる。
【実施例５】
【００９２】
本実施例に係るのテレビは、前記クライアント装置１２０の機能を備える。本実施例に係るのテレビは、テレビ向けのサービスを提供するサーバー装置１１０からサービスを取得する。その他の構成は実施例１で説明したものと同様である。
【００９３】
以上により、本実施例に係るテレビは、テレビ向けのサービスを提供するサーバー装置１１０の負荷を低減する。
【００９４】
但し、上記のΣの記法について、Σ＜ｉ＝１,ｎ＞ｆ（ｉ）は、ｆ（１）、ｆ（２）、…、ｆ（ｎ）の総和を示す。
【００９５】
以上、本発明の実施の形態について、その実施の形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【符号の説明】
【００９６】
１００    通信システム
１１０    サーバー装置
１１１    通信部
１１３    サービス提供部
１１６    コスト分布提供部
１１７    取得確率分布提供部
１２０    クライアント装置
１２２    キャッシュ
１２３    サービス要求部
１２４    サービス範囲計算手段
１２５    ＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）
１３０    ネットワーク
【図１】
2011128740.tif 000003
【図２】
2011128740.tif 000004
【図３】
2011128740.tif 000005
【図４】
2011128740.tif 000006
【図５】
2011128740.tif 000007