JP2019020994A - Network system, node device, cache method, and program - Google Patents

Network system, node device, cache method, and program Download PDF

Info

Publication number
JP2019020994A
JP2019020994A JP2017138406A JP2017138406A JP2019020994A JP 2019020994 A JP2019020994 A JP 2019020994A JP 2017138406 A JP2017138406 A JP 2017138406A JP 2017138406 A JP2017138406 A JP 2017138406A JP 2019020994 A JP2019020994 A JP 2019020994A
Authority
JP
Japan
Prior art keywords
chunk
cache
node device
node
chunks
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.)
Granted
Application number
JP2017138406A
Other languages
Japanese (ja)
Other versions
JP6638145B2 (en
Inventor
努 吉永
Tsutomu Yoshinaga
努 吉永
拓真 中島
Takuma Nakajima
拓真 中島
靖嗣 石橋
Yasushi Ishibashi
靖嗣 石橋
敏雄 森元
Toshio Morimoto
敏雄 森元
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.)
University of Electro Communications NUC
TIS Inc
Original Assignee
University of Electro Communications NUC
TIS 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 University of Electro Communications NUC, TIS Inc filed Critical University of Electro Communications NUC
Priority to JP2017138406A priority Critical patent/JP6638145B2/en
Publication of JP2019020994A publication Critical patent/JP2019020994A/en
Application granted granted Critical
Publication of JP6638145B2 publication Critical patent/JP6638145B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

To provide a technique capable of avoiding concentration of accesses to a node, suppressing an increase in total communication traffic volume, and efficiently utilizing a cache area, with a simple configuration.SOLUTION: A network system includes a plurality of node devices each transmitting and receiving chunks that are divided files and temporarily holding the chunks. The node device is associated with a group for specifying a chunk to be held by the node device in such a way as to prioritize a group different from other node devices neighboring on the network topology. Chunks are associated with zero or more groups. Further, when receiving a chunk associated with a group assigned to itself, the node device temporarily holds the chunk as a cache in a storage unit.SELECTED DRAWING: Figure 1

Description

本発明は、ネットワークシステム、キャッシュ方法及びキャッシュプログラムに関する。   The present invention relates to a network system, a cache method, and a cache program.

従来、ネットワークに接続されたコンピュータ間で伝送されるファイルを中間的にキャッシュするための様々な技術が提案されている。オリジナルファイルの代わりにキャッシュファイルをダウンロードすることで、オリジナルファイルへのアクセスの集中を避けると共に、受信側においてダウンロードを完了するまでの時間を短縮し得る。例えば容量が比較的大きい動画等のコンテンツファイルを送受信する場合には、大きな効果が期待できる。   Conventionally, various techniques for intermediately caching files transmitted between computers connected to a network have been proposed. By downloading the cache file instead of the original file, concentration of access to the original file can be avoided and the time until the download is completed on the receiving side can be shortened. For example, when a content file such as a moving image having a relatively large capacity is transmitted / received, a great effect can be expected.

なお、コンテンツを、予め定めた分割数のコンテンツブロックに分割する自律ストレージ装置も提案されている(例えば、特許文献1)。当該技術では、コンテンツブロックに対する誤り訂正符号からなる誤り訂正符号ブロックを生成し、コンテンツブロック及び誤り訂正符号ブロックの各ブロックを、複数の自律ストレージ装置に分散して記憶する。   An autonomous storage device that divides content into a predetermined number of content blocks has also been proposed (for example, Patent Document 1). In this technique, an error correction code block including an error correction code for a content block is generated, and each block of the content block and the error correction code block is distributed and stored in a plurality of autonomous storage devices.

特開2006−330779号公報JP 2006-330779 A

従来、ネットワークシステムを構成する複数のノードにファイルを分散させてキャッシュする場合、アクセスの集中を避け、全体の通信量を低減できるファイル配置を決定するためには、一般的に処理に時間がかかるという問題があった。また、動画等のコンテンツは、例えば1つのコンテンツにおいても時間的な区間ごとにアクセス頻度が異なる場合もあり、このような場合には1つのコンテンツ全体をキャッシュさせるのは非効率であった。   Conventionally, when files are distributed and cached in a plurality of nodes constituting a network system, it generally takes time to determine a file arrangement that can avoid concentration of access and reduce the overall traffic. There was a problem. In addition, for content such as moving images, for example, even in one content, the access frequency may differ for each time interval. In such a case, it is inefficient to cache the entire content.

本発明は、コンテンツファイルが送受信されるネットワークにおいて、簡易な構成により、ノードへのアクセスの集中を避け、全体の通信量の増大を抑制すると共に、キャッシュ領域を効率的に活用するための技術を提供することを目的とする。   The present invention provides a technology for avoiding concentration of access to nodes, suppressing an increase in the total communication volume, and efficiently using a cache area in a network in which content files are transmitted and received, with a simple configuration. The purpose is to provide.

本発明に係るネットワークシステムは、分割されたファイルであるチャンクを送受信すると共に当該チャンクを一時的に保持するノード装置を複数含む。ノード装置には、当該ノード装置が保持すべきチャンクを特定するためのグループが、ネットワークトポロジ上隣接する他のノード装置とは異なるグループが優先されるように割り当てられ、チャンクは、ゼロ以上のグループと関連付けられる。そして、ノード装置は、自身に割り当てられたグループと関連付けられたチャンクを受信した場合は、当該チャンクをキャッシュとして記憶部に一時的に保持させるキャッシュ保持部と、要求元のノード装置が送信を要求するチャンクに対応するキャッシュを保持している場合は、当該キャッシュを要求元のノード装置に対して送信するキャッシュ送信部と、要求元のノード装置が要求するチャンクに対応するキャッシュを保持していない場合は、他のノードにチャンクを要求する中継部とを備える。   The network system according to the present invention includes a plurality of node devices that transmit and receive chunks, which are divided files, and temporarily hold the chunks. A group for specifying a chunk to be held by the node device is assigned to the node device so that a group different from other adjacent node devices in the network topology is given priority, and the chunk is a group of zero or more. Associated with. When a node device receives a chunk associated with a group assigned to the node device, the node holding device temporarily stores the chunk as a cache in the storage unit, and the requesting node device requests transmission. If the cache corresponding to the chunk to be held is held, the cache transmission unit that transmits the cache to the requesting node device and the cache corresponding to the chunk requested by the requesting node device are not held A relay unit that requests a chunk from another node.

このようにすれば、いずれかのグループに属するノード装置をネットワーク上に分散させることにより、分散協調システムを実現することができる。すなわち、チャンクに関連付けられたグループに基づいて、キャッシュ保持部は、自身が保持すべきファイルを容易に特定することができる。すなわち、ノード装置は、ネットワークトポロジ上隣接する他のノード装置とは異なるグループが優先されるように割り当てられるという簡易な構成により、オリジナルファイルへのアクセスの集中を避け、且つ全体の通信量を抑制すると共に、キャッシュ領域を効率的に活用できるようになる。   In this way, a distributed cooperative system can be realized by distributing node devices belonging to any group on the network. That is, based on the group associated with the chunk, the cache holding unit can easily specify the file that it should hold. In other words, the node device is assigned so that a group different from other adjacent node devices in the network topology is prioritized, thereby avoiding concentration of access to the original file and reducing the overall traffic. In addition, the cache area can be used efficiently.

また、チャンクに対する要求の頻度を算出する管理装置をさらに備え、管理装置は、算出した頻度が高いチャンクは頻度が低いチャンクよりも多くの(又は同数以上の)ノード装置において保持されるように、チャンクに関連付けるグループを変更するキャッシュ管理部を備えるようにしてもよい。このようにすれば、チャンクに対する要求の頻度の傾向が変化した場合にも、傾向の変化に追従してネットワークにおけるキャッシュのヒット率を維持及び向上させられるよう設定を変更できる。   Further, the management apparatus further calculates a frequency of requests for the chunks, and the management apparatus holds the calculated high-frequency chunks in more (or more than the same number of) node apparatuses than the low-frequency chunks. You may make it provide the cache management part which changes the group linked | related with a chunk. In this way, even when the trend of the request frequency for the chunk changes, the setting can be changed so that the cache hit rate in the network can be maintained and improved following the change in the trend.

また、ノード装置のキャッシュ送信部は、当該ノード装置の記憶部が保持するキャッシュを要求元のノード装置に対して送信した場合、当該キャッシュに対応するチャンクへのアクセス数を計数し、当該アクセス数を管理装置へ送信するようにしてもよい。このようにすれば、ネットワークシステムに含まれるノード装置のいずれかにおいてキャッシュがヒットした場合にも、チャンクに対する要求の頻度を管理装置が集計できるようになる。   Further, when the cache transmission unit of the node device transmits the cache held by the storage unit of the node device to the requesting node device, the cache transmission unit counts the number of accesses to the chunk corresponding to the cache, and the number of accesses May be transmitted to the management apparatus. In this way, even when the cache hits in any of the node devices included in the network system, the management device can count the frequency of requests for chunks.

また、ファイルはコンテンツデータであり、チャンクは、コンテンツデータが再生時間又はデータサイズに基づいて分割されたファイルであり、複数のチャンクを結合することによりファイルを形成するようにしてもよい。特にストリーミングされる動画や音声のようなコンテンツデータであれば、要求の頻度が高い部分ほどネットワーク上に多くキャッシュさせることができる。また、例えばコンテンツデータのデータ構造や処理単位に基づいてチャンクのサイズを決定すれば、通信効率やデータの処理効率を向上させることができる。   The file is content data, and the chunk is a file obtained by dividing the content data based on the reproduction time or the data size, and the file may be formed by combining a plurality of chunks. In particular, in the case of content data such as a moving image or audio that is streamed, the more frequently requested data can be cached on the network. For example, if the chunk size is determined based on the data structure or processing unit of content data, the communication efficiency and the data processing efficiency can be improved.

また、当該ネットワークシステムは、ノード装置に対しコンテンツデータをチャンク単位で要求する端末をさらに含み、端末は、要求するチャンクによって形成されるファイルを構成する他のチャンクのうち、要求の頻度が所定の閾値以上であるチャンクを優先的に受信する再生処理部を備えるようにしてもよい。このようにすれば、要求の頻度が高いチャンクを先読みして受信しておくことができ、速やかに読み出すことができるようになる。   The network system further includes a terminal that requests content data from the node device in units of chunks, and the terminal has a predetermined frequency of requests among other chunks that constitute a file formed by the requested chunk. You may make it provide the reproduction | regeneration processing part which receives preferentially the chunk more than a threshold value. In this way, it is possible to pre-read and receive a chunk having a high request frequency, and to read it quickly.

また、端末の再生処理部は、管理装置が算出した要求の頻度が所定の閾値以上であるチャンクの再生前に、他のコンテンツを再生するようにしてもよい。要求の頻度が高いチャンクの前に他のコンテンツを挿入することにより、ユーザに他のコンテンツも視聴してもらえる可能性が高まる。   Further, the playback processing unit of the terminal may play back other content before playing back a chunk whose request frequency calculated by the management device is equal to or higher than a predetermined threshold. By inserting other content before a chunk having a high request frequency, the possibility that the user can view other content is increased.

また、端末の再生処理部は、1つのファイルを分割して生成したチャンクのうち、管理装置が算出した要求の頻度が所定の閾値以上であるチャンクを結合して再生するようにしてもよい。このようにすれば、要求の頻度が高い部分を用いて1つのファイルを要約する内容を再生することができる。   Further, the playback processing unit of the terminal may combine and play chunks whose request frequency calculated by the management device is equal to or higher than a predetermined threshold among chunks generated by dividing one file. In this way, it is possible to reproduce the content that summarizes one file by using a portion having a high request frequency.

また、端末の再生処理部は、ユーザの操作に応じて、1つのファイルを分割して生成したチャンクのうち、管理装置が算出した要求の頻度が所定の閾値以上であるチャンクのいずれかから再生を開始するようにしてもよい。このようにすれば、人気があって要求の頻度が高く、予めキャッシュされている可能性の高いチャンクから再生を開始することがで
きるようになる。
Also, the playback processing unit of the terminal plays back from one of the chunks generated by dividing one file according to the user's operation, the request frequency calculated by the management device being equal to or higher than a predetermined threshold. May be started. In this way, playback can be started from a chunk that is popular, frequently requested, and likely cached in advance.

また、本発明に係るノード装置は、分割されたファイルであるチャンクを送受信すると共に当該チャンクを一時的に保持する。ノード装置には、当該ノード装置が保持すべきチャンクを特定するためのグループが割り当てられ、ファイルは、ゼロ以上のグループと関連付けられる。また、ノード装置は、自身に割り当てられたグループと関連付けられたチャンクを受信した場合は、当該チャンクをキャッシュとして記憶部に一時的に保持させるキャッシュ保持部と、要求元のノード装置が送信を要求するチャンクに対応するキャッシュを保持している場合は、当該キャッシュを要求元のノード装置に対して送信するキャッシュ送信部と、要求元のノード装置が要求するチャンクに対応するキャッシュを保持していない場合は、他のノードにチャンクを要求する中継部とを備える。   The node device according to the present invention transmits and receives chunks that are divided files and temporarily holds the chunks. A group for specifying a chunk to be held by the node device is assigned to the node device, and the file is associated with zero or more groups. In addition, when a node device receives a chunk associated with a group assigned to the node device, a cache holding unit that temporarily holds the chunk as a cache in a storage unit, and the requesting node device requests transmission If the cache corresponding to the chunk to be held is held, the cache transmission unit that transmits the cache to the requesting node device and the cache corresponding to the chunk requested by the requesting node device are not held A relay unit that requests a chunk from another node.

このようなノード装置によれば、ネットワークトポロジ上隣接する他のノード装置とは異なるグループが優先されるように割り当てられるという簡易な構成により、オリジナルファイルへのアクセスの集中を避け、且つ全体の通信量を抑制すると共に、キャッシュ領域を効率的に活用できるようになる。   According to such a node device, a simple configuration in which a group different from other adjacent node devices in the network topology is assigned with priority is avoided, and concentration of access to the original file is avoided, and overall communication is performed. It is possible to reduce the amount and use the cache area efficiently.

なお、課題を解決するための手段に記載の内容は、本発明の課題や技術的思想を逸脱しない範囲で可能な限り組み合わせることができる。また、課題を解決するための手段の内容は、コンピュータ等の装置若しくは複数の装置を含むシステム、コンピュータが実行する方法、又はコンピュータに実行させるプログラムとして提供することができる。なお、プログラムを保持する記録媒体を提供するようにしてもよい。   The contents described in the means for solving the problems can be combined as much as possible without departing from the problems and technical ideas of the present invention. The contents of the means for solving the problems can be provided as a device such as a computer or a system including a plurality of devices, a method executed by the computer, or a program executed by the computer. A recording medium that holds the program may be provided.

コンテンツファイルが送受信されるネットワークにおいて、簡易な構成により、ノードへのアクセスの集中を避け、全体の通信量を抑制すると共に、キャッシュ領域を効率的に活用するための技術を提供できる。   In a network in which content files are transmitted and received, it is possible to provide a technique for efficiently using a cache area while avoiding concentration of access to nodes, reducing the total communication amount, and a simple configuration.

システムの構成の一例を示す図である。It is a figure which shows an example of a structure of a system. ファイルに付される、グループを示す情報を説明するための図である。It is a figure for demonstrating the information which shows a group attached | subjected to a file. チャンクに対応付けてタグを記憶するテーブルの一例を示す図である。It is a figure which shows an example of the table which matches a chunk and memorize | stores a tag. 端末4、ノード3及びコンテンツサーバ5の構成の一例を示すブロック図である。3 is a block diagram illustrating an example of a configuration of a terminal 4, a node 3, and a content server 5. FIG. ネットワークシステムが行うコンテンツ配信処理の一例を示す処理フロー図である。It is a processing flowchart which shows an example of the content delivery process which a network system performs. MPDファイルの内容の一例を示す図である。It is a figure which shows an example of the content of a MPD file. キャッシュ対象のファイルを変更するキャッシュ対象更新処理の一例を示す処理フロー図である。It is a processing flowchart which shows an example of the cache object update process which changes the file of cache object. 所定期間におけるチャンクへのアクセス数に基づく順位と、当該チャンクに関連付けて割り当てられるグループを示すタグの一例を示す図である。It is a figure which shows an example of the tag which shows the order | rank based on the access count to the chunk in a predetermined period, and the group allocated in relation to the said chunk. 1つの平面グラフで表されるメッシュ型ネットワーク上にキャッシュされるファイル及びその数を示すグラフである。It is a graph which shows the file cached on the mesh type | network network represented by one plane graph, and the number thereof. 端末に表示される画面の一例を示す図である。It is a figure which shows an example of the screen displayed on a terminal. 人気のあるチャンクを示す情報の一例を示す図である。It is a figure which shows an example of the information which shows a popular chunk.

以下、図面を参照して本発明を実施するための形態について説明する。なお、実施形態の構成は例示であり、本発明は実施形態に示す構成に限定されない。   Hereinafter, embodiments for carrying out the present invention will be described with reference to the drawings. In addition, the structure of embodiment is an illustration and this invention is not limited to the structure shown in embodiment.

<システム構成>
図1は、実施形態に係るシステムの構成の一例を示す図である。図1のシステム1は、ネットワーク2と、ネットワーク2を形成するノード3(3a〜3e)と、ネットワーク2に接続される端末4(4a〜4d)と、ネットワーク2に接続されるコンテンツサーバ5とを含む。ネットワーク2は、ISP(Internet Service Provider)によって管理さ
れる自律システム(AS:Autonomous System)等の通信回線網である。ノード3、端末
4及びコンテンツサーバ5は、コンピュータであり、通信可能に接続された他のコンピュータとの間で電子ファイルを送受信することができるものとする。
<System configuration>
FIG. 1 is a diagram illustrating an example of a configuration of a system according to the embodiment. 1 includes a network 2, nodes 3 (3 a to 3 e) forming the network 2, terminals 4 (4 a to 4 d) connected to the network 2, and a content server 5 connected to the network 2. including. The network 2 is a communication network such as an autonomous system (AS) managed by an ISP (Internet Service Provider). The node 3, the terminal 4, and the content server 5 are computers, and can transmit and receive electronic files to and from other computers connected so as to be communicable.

また、図1において大きな吹出し内に示すように、コンテンツサーバ5には、動画等のコンテンツファイル6が格納されている。そして、コンテンツサーバ5は、端末4からの要求に応じて、ネットワーク2を介してファイル6を端末4へ例えばストリーミング方式で送信する。また、ファイル6は、時間的な区間又はデータサイズに基づく部分に分割された複数の部分的なファイル(「チャンク」とも呼ぶ)61〜63に分割されている。本実施形態では、図1において小さな吹出し内に示すように、チャンク単位でファイル6がノード3にキャッシュされる。そして、端末4からの要求をコンテンツサーバ5へ中継する過程において、要求を受信したノード3は、要求されたチャンクを自身がキャッシュしている場合は、キャッシュしているチャンクを要求元に送信する。なお、要求を受信したノード3は、要求されたチャンクを自身がキャッシュしていない場合は、コンテンツサーバ5又は他のノード3に当該チャンクの要求を転送する。   In addition, as shown in a large balloon in FIG. 1, the content server 5 stores a content file 6 such as a moving image. Then, in response to a request from the terminal 4, the content server 5 transmits the file 6 to the terminal 4 via the network 2 by, for example, a streaming method. In addition, the file 6 is divided into a plurality of partial files (also referred to as “chunks”) 61 to 63 divided into portions based on time intervals or data sizes. In the present embodiment, as shown in a small balloon in FIG. 1, the file 6 is cached in the node 3 in units of chunks. In the process of relaying the request from the terminal 4 to the content server 5, the node 3 that has received the request transmits the cached chunk to the request source if the node 3 has cached the requested chunk. . If the node 3 that received the request does not cache the requested chunk, the node 3 forwards the request for the chunk to the content server 5 or another node 3.

また、各ノード3には、当該ノード3にキャッシュすべきチャンクを特定するためのグループが予め割り当てられているものとする。換言すれば、各ノード3は、予め定められた複数のグループのいずれかに属する。図1の例では、各ノード3の近傍に表示された円内に施されたハッチングが、各ノード3が属するグループを表している。ノード3aは、横縞のグループ(「グループA」と呼ぶ)に属する。ノード3bは、縦縞のグループ(「グループB」と呼ぶ)に属する。ノード3c及び3eは、右上から左下にかけた斜線のグループ(「グループC」と呼ぶ)に属する。ノード3dは、左上から右下にかけた斜線のグループ(「グループD」と呼ぶ)に属する。   In addition, it is assumed that a group for specifying a chunk to be cached in the node 3 is assigned to each node 3 in advance. In other words, each node 3 belongs to one of a plurality of predetermined groups. In the example of FIG. 1, hatching performed in a circle displayed in the vicinity of each node 3 represents a group to which each node 3 belongs. The node 3a belongs to a group of horizontal stripes (referred to as “group A”). The node 3b belongs to a group of vertical stripes (referred to as “group B”). The nodes 3c and 3e belong to a hatched group (referred to as “group C”) from the upper right to the lower left. The node 3d belongs to a hatched group (referred to as “group D”) extending from the upper left to the lower right.

あるノード3には、ネットワークトポロジ上隣接する他のノード3とは異なるグループが優先して割り当てられるようにしてもよい。すなわち、複数のノード3には、グループが、ネットワークトポロジ上偏らないように割り当てられる。例えば、新たなノード3をネットワーク2に接続する場合は、例えば複数のグループについて、すでにネットワーク2上に存在する他のノード3のうち、ホップ数が小さいノード3又は回線の経路長が短いノード3に付されたグループから順に除外し、残ったグループを新たなノードに割り当てるようにしてもよい。また、平面グラフで表されるメッシュ型のネットワークや、リング型のネットワークにおいては、いわゆる四色定理を応用し、隣接するノードが同じグループに属さないように、グループを割り当てるようにしてもよい。このようにすれば、あるノード3から他のグループが割り当てられたノード3までは、いずれのグループの場合も同程度のホップ数で到達するようになる。   A certain group may be preferentially assigned a group different from that of the other nodes 3 adjacent in the network topology. That is, groups are assigned to the plurality of nodes 3 so as not to be biased in the network topology. For example, when connecting a new node 3 to the network 2, for example, among a plurality of groups, among other nodes 3 already existing on the network 2, a node 3 with a small number of hops or a node 3 with a short circuit path length. Alternatively, the groups attached to may be excluded in order, and the remaining groups may be assigned to new nodes. In a mesh network or a ring network represented by a plane graph, a so-called four-color theorem may be applied to assign groups so that adjacent nodes do not belong to the same group. In this way, from a certain node 3 to a node 3 to which another group is assigned, the same number of hops can be reached in any group.

また、各チャンクは、当該チャンクをキャッシュすべきゼロ以上のグループと関連付けられている。図1の例では、チャンク61〜63の各々の下に表示された矩形内に施されたハッチングが各チャンクを保持すべきグループを表している。チャンク61には、グループA〜Dの4つが割り当てられている。チャンク62には、グループA、B及びDの3つが割り当てられている。チャンク63には、グループA及びCの2つが割り当てられている。なお、グループが1つも割り当てられていないチャンクがあってもよい。このようなネットワークシステム1によれば、チャンクに割り当てるグループの数によって、当該チャンクがネットワーク2においてキャッシュされる量を調整することができる。例えば
、アクセス頻度の高いチャンクに対し、より多くのグループを割り当てるようにすれば、要求元のノード3に近い場所にチャンクがキャッシュされている確率を高めることができる。
Each chunk is associated with zero or more groups that should be cached. In the example of FIG. 1, hatching performed in a rectangle displayed under each of the chunks 61 to 63 represents a group that should hold each chunk. The chunk 61 is assigned four groups A to D. The chunk 62 is assigned with three groups A, B, and D. Two groups A and C are allocated to the chunk 63. There may be a chunk to which no group is assigned. According to such a network system 1, the amount of chunks cached in the network 2 can be adjusted according to the number of groups assigned to the chunks. For example, if more groups are assigned to a frequently accessed chunk, it is possible to increase the probability that the chunk is cached near the requesting node 3.

このようなシステム1において、ノード3は、自身に割り当てられたグループと関連付けられたチャンクを受信した場合は、当該チャンクをキャッシュする。また、要求元のノード3が送信を要求するチャンクに対応するキャッシュを保持している場合は、当該キャッシュを要求元のノード3に対して送信する。一方、要求元のノード装置が要求するチャンクに対応するキャッシュを保持していない場合は、他のノード3に当該チャンクの要求を中継する。   In such a system 1, when a node 3 receives a chunk associated with a group assigned to itself, the node 3 caches the chunk. Further, when the requesting node 3 holds a cache corresponding to the chunk that requests transmission, the cache is transmitted to the requesting node 3. On the other hand, if the requesting node device does not hold the cache corresponding to the requested chunk, the request for the chunk is relayed to the other node 3.

図2は、チャンクに付される、グループを示す情報を説明するための図である。ファイル6は、コンピュータによって再生される動画や音声等のコンテンツデータである。特に、高解像度の動画コンテンツや、全方向の情報を含むVR(Virtual Reality)コンテン
ツ等は、1ファイル当たりの容量が大きく内容が更新されることが少ない。したがって、CDN(Contents Delivery Network)において、アクセス頻度の高いコンテンツをキャ
ッシュ対象とすれば、キャッシュによるトラフィックの削減が期待できる。
FIG. 2 is a diagram for describing information indicating a group attached to a chunk. The file 6 is content data such as a moving image and sound reproduced by the computer. In particular, high-resolution video content, VR (Virtual Reality) content including omnidirectional information, and the like have a large capacity per file and are rarely updated. Therefore, in a CDN (Contents Delivery Network), if a frequently accessed content is targeted for caching, a reduction in traffic due to the cache can be expected.

ファイル6には、例えばチャンクごとに、ゼロ以上の上述したグループの組合せを示す情報が関連付けられる。図2には、ハッチングのパターンで表した4種類のグループの組合せのバリエーションが示されている。すなわちグループの組合せの各々は、グループを0〜4個有する。また、グループの組合せは、図2の右辺に示すように、例えばグループの数だけ桁数を有するビット列によって形成されるタグによって表すことができる。そして、チャンクに対するグループの関連付けは、各ノード3において、チャンクの識別情報に関連付けてタグを保持することにより記憶させることができる。   For example, information indicating a combination of zero or more of the above-described groups is associated with the file 6 for each chunk. FIG. 2 shows variations of combinations of four types of groups represented by hatching patterns. That is, each group combination has 0 to 4 groups. Further, as shown in the right side of FIG. 2, the combination of groups can be represented by a tag formed by a bit string having the number of digits by the number of groups, for example. The association of the group with the chunk can be stored by holding the tag in association with the identification information of the chunk at each node 3.

図3は、チャンクに対応付けてタグを記憶するテーブルの一例を示す図である。図3のテーブルは、「チャンクID」及び「タグ」の属性を有する。「チャンクID」のフィールドには、チャンクの識別情報が登録される。識別情報は、チャンクを一意に特定するための名称を用いるようにしてもよいし、ファイルの名称及び当該ファイル中のチャンクの範囲を示す情報を用いるようにしてもよい。チャンクの範囲は、例えばファイルの先頭からのオフセットで表すことができる。「タグ」のフィールドには、対応付けられたファイルをキャッシュするゼロ以上のグループが登録される。図3に示すようなチャンクとグループとの対応付けを表す情報(換言すれば、キャッシュすべきチャンクのリスト)は、データベースやその他の形式のファイルとして各ノード3に記憶させることができる。また、図3に示すような情報は、例えばネットワーク2に接続されたコンテンツサーバ5等の管理装置が一元的に管理し、例えばキャッシュすべきチャンクのリストをネットワーク2上のノード3にブロードキャストしてノード3の各々に保持させるようにしてもよいし、ノード3の各々がネットワーク2上の管理装置から任意のタイミングで読み出すようにしてもよい。   FIG. 3 is a diagram illustrating an example of a table that stores tags in association with chunks. The table in FIG. 3 has attributes of “chunk ID” and “tag”. Chunk identification information is registered in the “chunk ID” field. As the identification information, a name for uniquely identifying the chunk may be used, or information indicating the name of the file and the range of the chunk in the file may be used. The chunk range can be expressed by an offset from the beginning of the file, for example. In the “tag” field, zero or more groups that cache the associated file are registered. Information representing the correspondence between chunks and groups as shown in FIG. 3 (in other words, a list of chunks to be cached) can be stored in each node 3 as a database or other type of file. Also, the information shown in FIG. 3 is centrally managed by a management apparatus such as the content server 5 connected to the network 2, for example, and a list of chunks to be cached is broadcast to the node 3 on the network 2. Each of the nodes 3 may be held, or each of the nodes 3 may be read from a management device on the network 2 at an arbitrary timing.

<装置の構成>
図4は、端末4、ノード3及びコンテンツサーバ5の構成の一例を示すブロック図である。端末4、ノード3及びコンテンツサーバ5は、一般的なコンピュータである。
<Device configuration>
FIG. 4 is a block diagram illustrating an exemplary configuration of the terminal 4, the node 3, and the content server 5. The terminal 4, the node 3, and the content server 5 are general computers.

<端末>
端末4は、PC(Personal Computer)、スマートフォン、タブレット等のコンピュー
タであり、通信I/F41と、記憶装置42と、入出力装置43と、プロセッサ44と、バス45とを備えている。
<Terminal>
The terminal 4 is a computer such as a PC (Personal Computer), a smartphone, or a tablet, and includes a communication I / F 41, a storage device 42, an input / output device 43, a processor 44, and a bus 45.

通信I/F41は、例えばネットワークカードであり、所定のプロトコルに基づき、他のコンピュータと通信を行う。例えば、ネットワーク2を介してファイル6を受信する。   The communication I / F 41 is, for example, a network card, and communicates with other computers based on a predetermined protocol. For example, the file 6 is received via the network 2.

記憶装置42は、RAM(Random Access Memory)やROM(Read Only Memory)等の主記憶装置及びHDD(Hard-disk Drive)やSSD(Solid State Drive)、フラッシュメモリ等の補助記憶装置(二次記憶装置)である。主記憶装置は、プロセッサが読み出したプログラムやファイル6を一時的に記憶したり、プロセッサの作業領域を確保したりする。補助記憶装置は、プロセッサが実行するプログラム等を記憶する。   The storage device 42 includes a main storage device such as a RAM (Random Access Memory) and a ROM (Read Only Memory), and an auxiliary storage device (secondary storage) such as an HDD (Hard-disk Drive), an SSD (Solid State Drive), and a flash memory. Device). The main storage device temporarily stores the program and file 6 read by the processor and secures a work area for the processor. The auxiliary storage device stores a program executed by the processor.

入出力装置43は、例えばキーボード、マウス等の入力装置や、モニタ等の出力装置、タッチパネル等のユーザインターフェースである。例えば、ユーザは、入出力装置43を介してコンテンツサーバ5に対しファイル6の送信を要求したり、受信したファイル6を読み出して表示させたりする。   The input / output device 43 is, for example, an input device such as a keyboard and a mouse, an output device such as a monitor, and a user interface such as a touch panel. For example, the user requests the content server 5 to transmit the file 6 via the input / output device 43 or reads the received file 6 to display it.

プロセッサ44は、CPU(Central Processing Unit)等の演算処理装置であり、ア
プリケーション(プログラム、ソフトウェア等とも呼ぶ)を実行することにより本実施の形態に係る各処理を行う。図4の例では、プロセッサ44内に機能ブロックを示している。プロセッサ44は、例えば、再生処理部441として機能する。再生処理部441は、例えばユーザの操作に基づいて、ネットワーク2を介してファイル6の送信を要求したり、受信したチャンクを結合してコンテンツを再生したりする。
The processor 44 is an arithmetic processing unit such as a CPU (Central Processing Unit), and performs each process according to the present embodiment by executing an application (also referred to as a program or software). In the example of FIG. 4, functional blocks are shown in the processor 44. For example, the processor 44 functions as the reproduction processing unit 441. For example, based on a user operation, the reproduction processing unit 441 requests transmission of the file 6 via the network 2 or combines the received chunks to reproduce the content.

以上のような構成要素が、バス45を介して接続されている。   The components as described above are connected via the bus 45.

<ノード>
ノード3も、通信I/F31と、記憶装置32と、入出力装置33と、プロセッサ34と、バス35とを備えている。
<Node>
The node 3 also includes a communication I / F 31, a storage device 32, an input / output device 33, a processor 34, and a bus 35.

通信I/F31は、例えばネットワークカードであり、所定のプロトコルに基づき、他のコンピュータと通信を行う。例えば、ノード3間においてファイル6を送受信する。   The communication I / F 31 is, for example, a network card, and communicates with other computers based on a predetermined protocol. For example, the file 6 is transmitted / received between the nodes 3.

記憶装置32は、RAMやROM等の主記憶装置及びHDDやSSD、フラッシュメモリ等の補助記憶装置である。主記憶装置は、プロセッサが読み出したプログラムやデータを一時的に記憶したり、プロセッサの作業領域を確保したりする。補助記憶装置は、プロセッサが実行するプログラムや、送受信されるファイルのチャンク単位でのキャッシュ、当該ノード3に割り当てられたグループを示す情報等を記憶する。   The storage device 32 is a main storage device such as a RAM or a ROM, and an auxiliary storage device such as an HDD, an SSD, or a flash memory. The main storage device temporarily stores programs and data read by the processor and secures a work area for the processor. The auxiliary storage device stores a program executed by the processor, a cache in units of chunks of files to be transmitted and received, information indicating a group assigned to the node 3, and the like.

入出力装置33は、例えばキーボード、マウス等の入力装置や、モニタ等の出力装置、タッチパネル等のユーザインターフェースである。   The input / output device 33 is, for example, an input device such as a keyboard and a mouse, an output device such as a monitor, and a user interface such as a touch panel.

プロセッサ34は、CPU等の演算処理装置であり、アプリケーションを実行することにより本実施の形態に係る各処理を行う。ノード3においても、プロセッサ34内に機能ブロックを示している。プロセッサ34は、例えば、キャッシュ保持部341、キャッシュ送信部342及び中継部343の各処理部として機能する。キャッシュ保持部341は、チャンクに関連付けられたグループを示す情報に基づいて、受信したチャンクを保持するか否か判断し、記憶装置42に一時的に保持させる。キャッシュ送信部342は、他のノードからコンテンツサーバへのファイルのチャンク単位での要求に対し、当該ノード3の記憶装置42にキャッシュされている場合、キャッシュされているチャンクを他のノード3又は端末4に送信する。中継部343は、端末4からコンテンツサーバ5への経路上に当該ノード3が位置する場合において、他のノード3又は端末4からコンテンツサーバ5へのチャンク送信要求や、他のノードへ送信するチャンクを中継する。   The processor 34 is an arithmetic processing unit such as a CPU, and performs each process according to the present embodiment by executing an application. Also in the node 3, functional blocks are shown in the processor 34. For example, the processor 34 functions as each processing unit of the cache holding unit 341, the cache transmission unit 342, and the relay unit 343. The cache holding unit 341 determines whether to hold the received chunk based on the information indicating the group associated with the chunk, and temporarily holds it in the storage device 42. When the cache transmission unit 342 is cached in the storage device 42 of the node 3 in response to a request in units of chunks of a file from another node to the content server, the cached chunk is transferred to the other node 3 or terminal. 4 to send. When the node 3 is located on the route from the terminal 4 to the content server 5, the relay unit 343 transmits a chunk transmission request from another node 3 or the terminal 4 to the content server 5, or a chunk to be transmitted to another node. Relay.

以上のような構成要素が、バス35を介して接続されている。   The components as described above are connected via the bus 35.

<コンテンツサーバ>
コンテンツプロバイダ等のコンテンツサーバ5も、通信I/F51と、記憶装置52と、入出力装置53と、プロセッサ54と、バス55とを備えている。
<Content server>
The content server 5 such as a content provider also includes a communication I / F 51, a storage device 52, an input / output device 53, a processor 54, and a bus 55.

通信I/F51は、例えばネットワークカードであり、所定のプロトコルに基づき、ノード3等のコンピュータと通信を行う。例えば、リンクする他のノード3からの要求に応じてファイル6を送信する。   The communication I / F 51 is a network card, for example, and communicates with a computer such as the node 3 based on a predetermined protocol. For example, the file 6 is transmitted in response to a request from another node 3 to be linked.

記憶装置52は、RAMやROM等の主記憶装置及びHDDやSSD、フラッシュメモリ等の補助記憶装置である。主記憶装置は、プロセッサが読み出したプログラムやデータを一時的に記憶したり、プロセッサの作業領域を確保したりする。補助記憶装置は、プロセッサが実行するプログラムや、配信するオリジナルのファイル等を記憶しているものとする。   The storage device 52 is a main storage device such as a RAM or a ROM, and an auxiliary storage device such as an HDD, an SSD, or a flash memory. The main storage device temporarily stores programs and data read by the processor and secures a work area for the processor. It is assumed that the auxiliary storage device stores a program executed by the processor, an original file to be distributed, and the like.

入出力装置53は、例えばキーボード、マウス等の入力装置や、モニタ等の出力装置、タッチパネル等のユーザインターフェースである。   The input / output device 53 is, for example, an input device such as a keyboard and a mouse, an output device such as a monitor, and a user interface such as a touch panel.

プロセッサ54は、CPU等の演算処理装置であり、アプリケーションを実行することにより本実施の形態に係る各処理を行う。コンテンツサーバについても、プロセッサ54内に機能ブロックを示している。プロセッサ54は、コンテンツ配信部541、キャッシュ管理部542の各機能部として機能する。コンテンツ配信部541は、送信を要求されたファイル6を記憶装置52から読み出し、要求元のノードに対して送信する。キャッシュ管理部542は、ネットワーク2上のノード3にキャッシュさせる対象のチャンクを決定したり、チャンクをキャッシュするグループを割り当てたりする。キャッシュ管理部542は、例えばチャンクごとにアクセス数を計数し、所定期間内のアクセス頻度を算出し、アクセス頻度に応じて、各ファイルをキャッシュするグループを決定するようにしてもよい。   The processor 54 is an arithmetic processing unit such as a CPU, and performs each process according to the present embodiment by executing an application. Also for the content server, functional blocks are shown in the processor 54. The processor 54 functions as each function unit of the content distribution unit 541 and the cache management unit 542. The content distribution unit 541 reads the file 6 requested to be transmitted from the storage device 52 and transmits the file 6 to the requesting node. The cache management unit 542 determines a chunk to be cached in the node 3 on the network 2 and assigns a group for caching the chunk. For example, the cache management unit 542 may count the number of accesses for each chunk, calculate an access frequency within a predetermined period, and determine a group for caching each file according to the access frequency.

以上のような構成要素が、バス55を介して接続されている。   The components as described above are connected via the bus 55.

<コンテンツ配信処理>
図5は、ネットワークシステムが行うコンテンツ配信処理の一例を示す処理フロー図である。図5の「ノード」は、図1、図4における要求元の端末4からコンテンツサーバ5までの経路上に存在するノード3に相当する。すなわち、複数のノード3を経由する場合もある。図5においては、便宜上、1つのノードを示す。
<Content distribution processing>
FIG. 5 is a process flow diagram illustrating an example of content distribution processing performed by the network system. The “node” in FIG. 5 corresponds to the node 3 existing on the route from the request source terminal 4 to the content server 5 in FIGS. In other words, there are cases where a plurality of nodes 3 are routed. In FIG. 5, one node is shown for convenience.

まず、端末4の再生処理部441は、コンテンツサーバ5が保持するコンテンツの送信を要求する(図5:S1)。本実施形態では、MPEG−DASH規格のMPD(Media Presentation Description)ファイルによって、複数のチャンクに分割されたコンテンツファイルを記述する例を説明する。   First, the playback processing unit 441 of the terminal 4 requests transmission of content held by the content server 5 (FIG. 5: S1). In the present embodiment, an example will be described in which a content file divided into a plurality of chunks is described by an MPEG-DASH standard MPD (Media Presentation Description) file.

図6に、MPDファイルの内容の一例を示す。MPDファイルはXML(Extensible Markup Language)で記述され、ファイルの所在を示す位置情報(URL:Uniform Resource Locator)611、621、631、・・・と、ファイルにおける各チャンクの範囲を示す範囲情報612、622、632、・・・とを含む。すなわち、MPDファイル(コンテンツファイル)6は、位置情報611及び範囲情報612を含む第1のチャンク61に関する情報と、位置情報621及び範囲情報622を含む第2のチャンク62に関する
情報と、位置情報631及び範囲情報632を含む第3のチャンク63に関する情報とを含んでいる。端末4の再生処理部441は、このようなファイル6に基づいて、基本的には前方の範囲を構成するチャンクから順に、コンテンツサーバ5に対しチャンクの送信を要求する。なお、1つのファイル6には、コンテンツの画質や音質等が異なる複数のファイルについてそれぞれ上述のチャンクが記述されていてもよい。この場合は、端末4の性能や通信経路の状態等に応じて複数のファイルのいずれかが送受信される。また、MPDファイルに限らず、M3UやHLS(HTTP Live Streaming)のようなフォーマットに適
用することもできる。
FIG. 6 shows an example of the contents of the MPD file. The MPD file is described in XML (Extensible Markup Language), position information (URL: Uniform Resource Locator) 611, 621, 631,... Indicating the location of the file, and range information 612 indicating the range of each chunk in the file. 622, 632,... That is, the MPD file (content file) 6 includes information on the first chunk 61 including the position information 611 and range information 612, information on the second chunk 62 including the position information 621 and range information 622, and position information 631. And information related to the third chunk 63 including the range information 632. Based on such a file 6, the playback processing unit 441 of the terminal 4 basically requests the content server 5 to transmit a chunk in order starting from the chunk that forms the front range. In one file 6, the above-described chunks may be described for a plurality of files having different image quality and sound quality. In this case, one of a plurality of files is transmitted / received according to the performance of the terminal 4, the state of the communication path, and the like. Further, the present invention can be applied not only to the MPD file but also to a format such as M3U or HLS (HTTP Live Streaming).

一方、ノード3の中継部343は、要求を受信し(S2)、要求されたチャンクに対応するキャッシュファイルが自ノードの記憶装置32に保持されているか判断する(S3)。キャッシュを保持している場合(S3:YES)、ノード3のキャッシュ送信部342は、キャッシュファイルを要求元に送信する(S4)。一方、要求元の端末4の再生処理部441は、キャッシュファイルを受信し、コンテンツの内容をモニタ等の入出力装置43上に表示させる(S5)。   On the other hand, the relay unit 343 of the node 3 receives the request (S2), and determines whether the cache file corresponding to the requested chunk is held in the storage device 32 of the own node (S3). When the cache is held (S3: YES), the cache transmission unit 342 of the node 3 transmits the cache file to the request source (S4). On the other hand, the reproduction processing unit 441 of the requesting terminal 4 receives the cache file and displays the contents on the input / output device 43 such as a monitor (S5).

また、ノード3がキャッシュを保持していない場合(S3:NO)、中継ノードの中継部343は、隣接するノード3又はコンテンツサーバ5に要求を中継する(S6)。なお、複数のノード3を介して要求が転送される場合は、同様の処理が繰り返される。また、本実施形態においては、ノード3は、グループを示すタグのビット位置からいずれのグループに属するノード3において各チャンクがキャッシュされているかわかる。よって、ノード3は、近傍に接続された他のノード3が属するグループを予め記憶しておくことにより、要求されたチャンクのタグのビット位置に基づいて当該チャンクをキャッシュするグループに属するノード3を、要求の転送先に決定するようにしてもよい。   When the node 3 does not hold the cache (S3: NO), the relay unit 343 of the relay node relays the request to the adjacent node 3 or the content server 5 (S6). When a request is transferred via a plurality of nodes 3, the same process is repeated. In the present embodiment, the node 3 knows which chunk is cached in the node 3 belonging to which group from the bit position of the tag indicating the group. Therefore, the node 3 stores in advance the group to which the other node 3 connected in the vicinity belongs, so that the node 3 belonging to the group that caches the chunk based on the bit position of the tag of the requested chunk. The request transfer destination may be determined.

一方、コンテンツサーバ5のコンテンツ配信部541は、チャンクに対する送信の要求を受信し(S7)、該当するチャンクを記憶装置52から読み出して送信する(S8)。一方、ノード3の中継部343は、受信したチャンクを要求元に対して中継する(S9)。そして、要求元の端末4の再生処理部441は、チャンクを受信し、コンテンツの内容をモニタ等の入出力装置43上に表示させる(S10)。   On the other hand, the content distribution unit 541 of the content server 5 receives the transmission request for the chunk (S7), reads the corresponding chunk from the storage device 52, and transmits it (S8). On the other hand, the relay unit 343 of the node 3 relays the received chunk to the request source (S9). Then, the reproduction processing unit 441 of the requesting terminal 4 receives the chunk and displays the content on the input / output device 43 such as a monitor (S10).

また、S9においてチャンクを要求元へ中継する場合、ノード3のキャッシュ保持部341は、当該チャンクは自ノードが属するグループにおいてキャッシュすべき対象であるか判断する(S11)。本ステップでは、チャンクに対し、自ノードが属するグループを示す情報が関連付けられているか判断する。例えば、図3に示したような情報をノード3の記憶装置32が保持する。   When the chunk is relayed to the request source in S9, the cache holding unit 341 of the node 3 determines whether the chunk is to be cached in the group to which the own node belongs (S11). In this step, it is determined whether information indicating a group to which the own node belongs is associated with the chunk. For example, the storage device 32 of the node 3 holds information as shown in FIG.

そして、中継したチャンクがキャッシュ対象であると判断された場合(S11:YES)、ノード3のキャッシュ保持部341は、当該チャンクを記憶装置32に一時的に保持させる。一方、中継したチャンクがキャッシュすべき対象でないと判断された場合は、ノード3はチャンクを保持しない。ネットワークシステム1は、要求元ノードからのファイルの送信要求に対して、図5に示したようなファイル配信処理を繰り返す。   When it is determined that the relayed chunk is a cache target (S11: YES), the cache holding unit 341 of the node 3 temporarily holds the chunk in the storage device 32. On the other hand, when it is determined that the relayed chunk is not a target to be cached, the node 3 does not hold the chunk. The network system 1 repeats the file distribution process as shown in FIG. 5 in response to the file transmission request from the request source node.

<効果>
本実施形態では、ネットワーク2において同一のグループが偏らないようにノードをグループ分けする。すなわち、ネットワークトポロジ上隣接する他のノード装置とは異なるグループが優先して割り当てられるという簡便な方法により、同一のチャンクをキャッシュするノードをネットワーク上に分散させ、いずれのノードからもある程度近接した位置に各グループに属するキャッシュサーバが存在するという準最適なキャッシュ配置を実現することができる。また、図1に示したように、1つのチャンクには複数のグループを示
す情報を関連付けておくようにしてもよい。アクセス頻度の高いチャンクほど、多くのグループに属するノードでキャッシュすれば、ネットワーク上におけるキャッシュのヒット率を向上させることができる。特に、動画等のコンテンツファイルの場合、冒頭部分のアクセス頻度が高く、ユーザはその後視聴を中止したり一部をスキップしたりすることがある。また、再生を開始する位置を指定した動画へのリンクがSNS(Social Networking Service)に投稿された場合など、動画の一部のアクセス頻度が高まることもある。本実
施形態によれば、アクセス頻度の高いチャンクほど多くキャッシュさせておくことができ、ネットワークシステム全体におけるトラフィックの増大を抑えることができる。また、チャンク単位で要求される頻度が異なるような場合であっても、要求の頻度が高いチャンクをキャッシュさせれば、キャッシュ領域を効率的に活用することができる。
<Effect>
In the present embodiment, the nodes are grouped so that the same group is not biased in the network 2. In other words, nodes that cache the same chunk are distributed on the network by a simple method in which a group different from other adjacent node devices in the network topology is preferentially allocated, and the nodes are located close to any node to some extent. A sub-optimal cache arrangement in which there are cache servers belonging to each group. Further, as shown in FIG. 1, information indicating a plurality of groups may be associated with one chunk. If the more frequently accessed chunks are cached by nodes belonging to many groups, the cache hit rate on the network can be improved. In particular, in the case of a content file such as a moving image, the access frequency of the beginning portion is high, and the user may stop viewing or skip a portion thereafter. In addition, the access frequency of a part of the moving image may be increased, for example, when a link to the moving image specifying the position to start reproduction is posted to SNS (Social Networking Service). According to the present embodiment, the more frequently accessed chunks can be cached, the increase in traffic in the entire network system can be suppressed. Even when the requested frequency differs in units of chunks, the cache area can be efficiently utilized by caching the chunks having a high request frequency.

<キャッシュ対象決定処理>
また、上述したネットワークシステムにおいて、チャンクに対するキャッシュの優先度を決定し、チャンクに関連付けられるグループを示す情報(換言すればキャッシュすべきチャンクのリスト)を動的に変更するようにしてもよい。キャッシュの優先度は、例えばコンテンツサーバ5のキャッシュ管理部542が算出する各チャンクへのアクセス頻度に基づき決定する。コンテンツサーバ5は、チャンクに対するアクセスの頻度を算出し、キャッシュ対象のチャンクを決定する、本発明に係る「アクセス管理装置」の一例である。なお、コンテンツサーバ5とは別に、いずれかのネットワーク2にアクセス管理装置を設けてもよい。
<Cache target decision processing>
In the network system described above, the priority of the cache for the chunk may be determined, and the information indicating the group associated with the chunk (in other words, the list of chunks to be cached) may be dynamically changed. The priority of the cache is determined based on, for example, the access frequency to each chunk calculated by the cache management unit 542 of the content server 5. The content server 5 is an example of an “access management device” according to the present invention that calculates the frequency of access to a chunk and determines a chunk to be cached. Note that an access management device may be provided in any one of the networks 2 separately from the content server 5.

図7は、キャッシュ対象のチャンクを変更するキャッシュ対象更新処理の一例を示す処理フロー図である。例えば、ネットワークシステムは、図5に示したコンテンツ配信処理に加え、図7に示すような処理を行うようにしてもよい。図7においては、図5に対応する処理には同一の符号を付し、説明を省略する。   FIG. 7 is a process flow diagram illustrating an example of a cache target update process for changing a cache target chunk. For example, the network system may perform processing as shown in FIG. 7 in addition to the content distribution processing shown in FIG. In FIG. 7, the processes corresponding to those in FIG.

まず、ノード3は、要求に応じてキャッシュを送信した回数をチャンクごとに計数しておき、計数した回数を所定のタイミングでコンテンツサーバ5へ送信する(図7:S21)。一方、コンテンツサーバ5は、ノード3からキャッシュの送信回数を受信し、チャンクごとのアクセス数を算出する(S22)。本ステップでは、ノード3が記憶しているアクセスログを受信し、チャンクごとのアクセス数を算出してもよい。   First, the node 3 counts the number of times the cache is transmitted in response to the request, and transmits the counted number to the content server 5 at a predetermined timing (FIG. 7: S21). On the other hand, the content server 5 receives the number of cache transmissions from the node 3 and calculates the number of accesses for each chunk (S22). In this step, the access log stored in the node 3 may be received and the number of accesses for each chunk may be calculated.

また、例えばコンテンツサーバ5は、図5のS8においてチャンクを送信するステップにおいて、さらに当該チャンクへのアクセスログを記憶装置32に書き出す(図7:S23)。本ステップで記憶させるアクセスログと、S22において受信したアクセス数をチャンクごとに計数することにより、チャンクごとのアクセス頻度を算出することができるようになる。また、本ステップでは、コンテンツサーバ5のキャッシュ管理部542は、所定のタイミングで所定期間におけるチャンクごとのアクセス回数(すなわち、アクセス頻度)を集計する。   Further, for example, in the step of transmitting a chunk in S8 of FIG. 5, the content server 5 further writes an access log to the chunk in the storage device 32 (FIG. 7: S23). The access frequency for each chunk can be calculated by counting the access log stored in this step and the number of accesses received in S22 for each chunk. In this step, the cache management unit 542 of the content server 5 totals the number of accesses for each chunk (that is, access frequency) in a predetermined period at a predetermined timing.

その後、コンテンツサーバ5のキャッシュ管理部542は、所定のタイミングで、頻度の高いチャンクほどキャッシュの優先度が高いものとしてより多くのグループにキャッシュさせる。すなわち、チャンクに対しより多くのグループを示す情報を関連付けるようにする。また、例えば、予め定められた動作時刻が到来した場合や、前回の処理から所定期間が経過した場合等の条件を満たした場合に、キャッシュ対象を更新するものとする。そして、キャッシュ管理部542は、チャンクごとのアクセス頻度を算出し、キャッシュ対象を決定する(S24)。   Thereafter, the cache management unit 542 of the content server 5 causes a larger number of groups to be cached at a predetermined timing, assuming that the more frequently used chunks have higher cache priority. That is, information indicating more groups is associated with the chunk. Further, for example, the cache target is updated when a condition such as a predetermined operation time has arrived or a predetermined period has elapsed since the previous process is satisfied. Then, the cache management unit 542 calculates an access frequency for each chunk and determines a cache target (S24).

図8は、所定期間におけるチャンクへのアクセス数に基づく順位と、当該チャンクに関連付けて割り当てられるグループを示すタグの一例を示す図である。コンテンツサーバ5
は、当該コンテンツサーバ5が要求に応じて送信したチャンクについてのログと、ノード3がキャッシュを送信した旨のログを所定期間分集計し、図8に示すようなチャンクごとの統計データを生成する。図9に示す表は、「順位」、「グループ数」、及び「タグ」の項目を有する。「順位」のフィールドには、所定期間におけるチャンクへのアクセス頻度に基づいて定まる順位の範囲が記録されている。図7のS24においては、所定期間における順位が決定される。「グループ数」のフィールドには、各順位のチャンクをキャッシュするグループの数が示されている。「タグ」のフィールドには、各順位のチャンクをキャッシュするグループを示す情報が上述したタグの形式で記録されている。
FIG. 8 is a diagram illustrating an example of a tag indicating a rank based on the number of accesses to a chunk during a predetermined period and a group assigned in association with the chunk. Content server 5
8 summarizes a log of chunks transmitted by the content server 5 in response to a request and a log indicating that the node 3 has transmitted a cache for a predetermined period, and generates statistical data for each chunk as shown in FIG. . The table shown in FIG. 9 includes items of “rank”, “number of groups”, and “tag”. In the “rank” field, a rank range determined based on the access frequency to the chunk in a predetermined period is recorded. In S24 of FIG. 7, the order in a predetermined period is determined. The “number of groups” field indicates the number of groups that cache the chunks of each rank. In the “tag” field, information indicating a group for caching each rank chunk is recorded in the tag format described above.

また、キャッシュ管理部542は、アクセス頻度に応じて、各チャンクをキャッシュするグループを決定する(図7:S25)。本ステップでは、各チャンクに対しキャッシュするグループを割り当てる。まず、所定期間のアクセス数に基づいて、図8に示す人気の程度を決定する。例えばノード3を4つのグループに分ける場合、人気の程度を5段階に分類する。また、最も人気の高い程度に属するチャンクを4つのグループすべてにおいてキャッシュさせ、2番目に人気の高い程度に属するチャンクを3つのグループにおいてキャッシュさせ、3番目に人気の高い程度に属するチャンクを2つのグループにおいてキャッシュさせ、4番目に人気の高い程度に属するチャンクを1つのグループにおいてキャッシュさせる。なお、最も人気の低い程度に属するチャンクはいずれのグループにおいてもキャッシュさせないものとする。   Further, the cache management unit 542 determines a group for caching each chunk according to the access frequency (FIG. 7: S25). In this step, a cache group is assigned to each chunk. First, the degree of popularity shown in FIG. 8 is determined based on the number of accesses during a predetermined period. For example, when the node 3 is divided into four groups, the degree of popularity is classified into five levels. Also, the most popular chunk is cached in all four groups, the second most popular chunk is cached in three groups, and the third most popular chunk is Cache in the group and chunks belonging to the fourth most popular are cached in one group. Note that chunks belonging to the least popular level are not cached in any group.

このように、人気の程度に応じて当該チャンクをキャッシュするノードのグループ数が決定され、その後、同数のグループが割り当てられたチャンクに対し循環的にグループの組合せを割り当てる。例えば、図8の順位が21〜100のレコードの「タグ」のフィールドには、3つのグループの組み合わせを循環的に割り当てることにより決定されたタグが記録されている。S25においては、直近の所定期間における各チャンクへのアクセス頻度に基づいて、チャンクに関連付けられるタグが更新される。   In this way, the number of groups of nodes that cache the chunk is determined according to the degree of popularity, and thereafter, a combination of groups is cyclically assigned to chunks to which the same number of groups are assigned. For example, tags determined by cyclically assigning combinations of three groups are recorded in the “tag” field of the records with ranks 21 to 100 in FIG. In S25, the tag associated with the chunk is updated based on the access frequency to each chunk in the most recent predetermined period.

そして、キャッシュ管理部542は、各チャンクをキャッシュの対象とするグループを示すリストを、各ノードへ配信する(図8:S26)。本ステップでは、例えば図8の「チャンク名」及び「タグ」の列に示す情報が、各ノード3へブロードキャストされる。ノード3は、リストを受信すると、当該リストを記憶装置32に保持させると共に以降は当該リストに基づいて自ノードがキャッシュする対象のチャンクを決定する(S27)。このようなリストのグループを示す情報に基づいて、各ノードは、チャンクを要求する先を判断することができる。また、リストが更新された場合、ノード3においてが不要なキャッシュを削除するようにしてもよい。   Then, the cache management unit 542 distributes a list indicating the groups for which each chunk is cached to each node (FIG. 8: S26). In this step, for example, the information shown in the “chunk name” and “tag” columns in FIG. 8 is broadcast to each node 3. When the node 3 receives the list, the node 3 holds the list in the storage device 32, and thereafter determines a target chunk to be cached by the own node based on the list (S27). Based on the information indicating the group of such a list, each node can determine the destination to request the chunk. Further, when the list is updated, an unnecessary cache in the node 3 may be deleted.

<効果>
キャッシュ対象更新処理によれば、コンテンツサーバ5から配信されるファイルをアクセス数に応じてチャンク単位でキャッシュさせることができる。また、アクセス頻度の傾向が変化した場合にも、傾向の変化に追従してネットワークにおけるキャッシュのヒット率を維持及び向上させられるよう設定を変更できる。なお、アクセス頻度の算出やキャッシュすべきチャンクのリストの更新を行う管理装置は、コンテンツサーバ5が行うようにしてもよいし、ネットワーク2に接続された他の装置が行うようにしてもよい。また、各ノード3が記憶するチャンクごとのアクセスログは、ネットワーク上の所定の装置に保持させ、コンテンツサーバ5又は上記管理装置が各中継ノードにおけるアクセスログを読み出せるようにしてもよい。
<Effect>
According to the cache target update process, the file distributed from the content server 5 can be cached in units of chunks according to the number of accesses. Even when the access frequency trend changes, the setting can be changed so that the cache hit rate in the network can be maintained and improved following the change in the trend. Note that the management apparatus that calculates the access frequency and updates the list of chunks to be cached may be performed by the content server 5 or may be performed by another apparatus connected to the network 2. Further, the access log for each chunk stored in each node 3 may be held in a predetermined device on the network so that the content server 5 or the management device can read the access log in each relay node.

<キャッシュ対象のファイル及びファイルをキャッシュするノードの数>
本実施形態では、アクセス頻度が高いチャンクをキャッシュ対象とし、アクセス頻度が高いほどネットワーク内における多くのノードでキャッシュする。チャンクをキャッシュ
するノードの数は、ユーザが任意に設定することができる。なお、チャンクをキャッシュするノードの数は、ネットワークに接続された、各グループに属するノードの数と、チャンクに対応づけて設定される、当該チャンクを保持するグループの数とによって決まる。チャンクをキャッシュするノードの数は、例えば遺伝的アルゴリズム等を利用して求めた準最適なキャッシュ配置に従って定めるようにしてもよい。
<Files to be cached and the number of nodes that cache the files>
In the present embodiment, chunks with high access frequency are targeted for caching, and the higher the access frequency, the more nodes are cached in the network. The number of nodes that cache chunks can be arbitrarily set by the user. Note that the number of nodes that cache chunks is determined by the number of nodes that belong to each group connected to the network and the number of groups that hold the chunks that are set in association with the chunks. The number of nodes that cache the chunks may be determined according to a sub-optimal cache arrangement obtained using, for example, a genetic algorithm.

図9は、1つの平面グラフで表されるメッシュ型ネットワーク上にキャッシュされるファイル(チャンク)及びその数を示すグラフである。図9の横軸は、アクセス頻度の降順にソートしたファイルの通し番号を表し、縦軸は、各ファイルをキャッシュするノード数を表している。ファイルに付すタグの設定は、遺伝的アルゴリズムを利用して求められるキャッシュ配置においてノード上にキャッシュされるファイルの種類及び同一のファイルをキャッシュするノードの数に従って決定してもよい。図9の破線は、メッシュ型のネットワークにおいて、遺伝的アルゴリズム(GA:Genetic Algorithm)によって求められ
た準最適なキャッシュ配置におけるファイルと当該ファイルがネットワーク上にキャッシュされる数との関係を表している。実線は、遺伝的アルゴリズムで求めたネットワーク中のキャッシュファイル数を、本実施形態に係るネットワークシステムで近似する例である。本実施形態では、上述したタグによって表される、各ファイルに割り当てるグループを変更することにより、当該ファイルをキャッシュするネットワーク上のノード数を調整することができる。また、グループの種類の数を4よりも大きくすることで、準最適な配置に対する近似の精度を向上させることができる。本実施形態に係る階層的に接続されたネットワークにおいても、所定の頻度でアクセスされる複数のファイルを定義し、何らかのアルゴリズムで求めた準最適なキャッシュ配置を近似した値となるように、上記ファイルに割り当てるグループ及びネットワーク上のノードに割り当てるグループの少なくともいずれかを決定するようにしてもよい。
FIG. 9 is a graph showing files (chunks) cached on the mesh network represented by one plane graph and the number thereof. The horizontal axis in FIG. 9 represents the serial numbers of files sorted in descending order of access frequency, and the vertical axis represents the number of nodes that cache each file. The setting of a tag attached to a file may be determined according to the type of file cached on a node and the number of nodes that cache the same file in a cache arrangement obtained using a genetic algorithm. The broken line in FIG. 9 represents the relationship between a file in a sub-optimal cache arrangement obtained by a genetic algorithm (GA) and the number of files to be cached on the network in a mesh type network. . A solid line is an example in which the network system according to the present embodiment approximates the number of cache files in the network obtained by the genetic algorithm. In the present embodiment, the number of nodes on the network that caches the file can be adjusted by changing the group assigned to each file, which is represented by the tag described above. Further, by making the number of types of groups larger than 4, it is possible to improve the accuracy of approximation for the sub-optimal arrangement. Even in a hierarchically connected network according to the present embodiment, a plurality of files that are accessed at a predetermined frequency are defined, and the above files are set to approximate values of a sub-optimal cache arrangement obtained by some algorithm. It is also possible to determine at least one of a group to be assigned to and a group to be assigned to a node on the network.

例えば、図9に示したように、アクセス頻度を基準として20位以内、21〜100位、101〜250位、・・・といった人気の程度毎にチャンクをキャッシュするグループの数が定める。そして、人気の程度に対して対応付けられたタグを、上位から順に循環的に割り当てる。タグは、当該チャンクを保持すべきグループを示す4ビットのビットベクトルによって記述されている。また、ビットベクトルは、各階層におけるグループを表す桁を、所定の順序で連結して形成されている。図8では、4ビットがそれぞれ4つのグループに対応し、各グループにおいてチャンクがキャッシュされるか否かを表す。   For example, as shown in FIG. 9, the number of groups that cache chunks is determined for each degree of popularity, such as within 20th place, 21-100th place, 101st-250th place, etc., based on the access frequency. Then, tags associated with the degree of popularity are cyclically assigned in order from the top. The tag is described by a 4-bit bit vector indicating a group that should hold the chunk. The bit vector is formed by connecting digits representing groups in each layer in a predetermined order. In FIG. 8, each of the 4 bits corresponds to 4 groups, and indicates whether or not a chunk is cached in each group.

<変形例1>
図10は、端末4の入出力装置43に表示される画面の一例を示す図である。本変形例では、アクセス頻度が所定の閾値以上である(すなわち、人気のある)チャンクを頭出しできるようにする。例えば図6に示したMPDファイルにチャンクごとのアクセス頻度や人気のあるチャンクである旨の情報を追加することにより、アクセス頻度が所定の閾値以上であったり人気のあるチャンクである旨の情報が付加されている所定のチャンクへ再生位置をスキップさせるようにしてもよいし、MPDファイルとは別にチャンクごとのアクセス頻度や人気の程度を示す情報を含むファイルを用意し、MPDファイルを組み合わせて所定のチャンクへ再生位置をスキップさせるようにしてもよい。なお、再生位置は必ずしもチャンクの先頭でなく、コンテンツ中の任意の位置が指定されていてもよい。
<Modification 1>
FIG. 10 is a diagram illustrating an example of a screen displayed on the input / output device 43 of the terminal 4. In this modification, it is possible to find a chunk whose access frequency is equal to or higher than a predetermined threshold (that is, popular). For example, by adding information indicating that the access frequency for each chunk or a popular chunk is added to the MPD file shown in FIG. 6, the information indicating that the access frequency is equal to or higher than a predetermined threshold or is a popular chunk is obtained. A playback position may be skipped to a predetermined chunk that is added, or a file containing information indicating the access frequency and popularity of each chunk is prepared separately from the MPD file, and the MPD file is combined with the predetermined chunk. The playback position may be skipped to the chunk. Note that the playback position is not necessarily the beginning of the chunk, and an arbitrary position in the content may be specified.

図11は、MPDファイルとは別に生成される、人気のあるチャンクを示す情報の一例を示す図である。図11の表は、「チャンクID」、「再生位置」の各属性を含む。「チャンクID」のフィールドには、チャンクを特定するための識別情報が登録される。この識別情報により、図3に示したチャンクごとのタグや、図6に示したMPDファイルのチャンクと、図11の再生位置とが紐づけられる。「再生位置」のフィールドには、アクセス頻度に基づいて決定された再生を開始すべき位置が、コンテンツの先頭からの時間を表
す情報によって登録されている。図11に示すような情報が端末4に配信され、端末4の再生処理部441は配信された情報を用いて図10に示したような画面を生成するようにしてもよい。
FIG. 11 is a diagram illustrating an example of information indicating popular chunks generated separately from the MPD file. The table of FIG. 11 includes attributes of “chunk ID” and “reproduction position”. In the “chunk ID” field, identification information for specifying a chunk is registered. With this identification information, the tag for each chunk shown in FIG. 3, the chunk of the MPD file shown in FIG. 6, and the reproduction position in FIG. 11 are linked. In the “playback position” field, the position where playback determined based on the access frequency is to be started is registered as information representing the time from the beginning of the content. Information as illustrated in FIG. 11 may be distributed to the terminal 4, and the reproduction processing unit 441 of the terminal 4 may generate a screen as illustrated in FIG. 10 using the distributed information.

図10の画面は、例えば端末4において実行される、コンテンツを再生するアプリケーションが生成する。図10の画面は、動画を表示する領域411と、シークバー412と、前方へのスキップボタン413と、後方へのスキップボタン414と、シーンのリスト415とを含む。領域411には、動画の映像が表示される。図10のシークバー412は、全体における現在の再生位置を三角形で示すとともに、アクセス頻度の高い部分を星印で示している。この星印は、図11に示した再生位置と対応している。そして、前方へのスキップボタン413及び後方へのスキップボタン414は、図11に記載された時間に基づき、アクセス頻度の高い部分へ再生位置をスキップさせる。また、シーンのリスト415には、アクセス頻度の高い部分の一覧が表示されている。リスト415に表示されるシーンも、図11に示した再生位置と対応している。ユーザの操作によってリスト415のシーンが選択された場合、図11に記載された時間に基づいて、動画を各シーンから再生させることができる。   The screen shown in FIG. 10 is generated by an application that reproduces content executed on the terminal 4, for example. The screen of FIG. 10 includes a moving image display area 411, a seek bar 412, a forward skip button 413, a backward skip button 414, and a scene list 415. In the area 411, a moving image is displayed. The seek bar 412 in FIG. 10 indicates the current playback position in the whole as a triangle, and indicates a part with high access frequency as a star. This star mark corresponds to the reproduction position shown in FIG. Then, the forward skip button 413 and the backward skip button 414 cause the playback position to be skipped to a frequently accessed part based on the time described in FIG. In the scene list 415, a list of frequently accessed parts is displayed. The scenes displayed in the list 415 also correspond to the playback positions shown in FIG. When a scene in the list 415 is selected by a user operation, a moving image can be reproduced from each scene based on the time described in FIG.

このように、スキップボタン413、414、又はリスト415を設けることにより、ユーザの操作に応じてアクセス頻度が閾値以上のチャンクから再生を開始することができる。すなわち、多くのユーザが視聴しているチャンクへ再生位置を移動させることができる。したがって、例えばスポーツの得点シーン等、アクセス頻度の高い場面から再生することができるようになる。また、アクセス頻度の高いシーンに相当するチャンクをより多くのノード3でキャッシュしておくことにより、ネットワーク上のトラフィックの増大を抑えることができる。換言すれば、予めキャッシュされたチャンクからの再生をユーザに提案することにより、トラフィックを低減させることができる。   As described above, by providing the skip buttons 413 and 414 or the list 415, it is possible to start reproduction from a chunk whose access frequency is equal to or higher than a threshold according to a user operation. That is, the playback position can be moved to a chunk that many users are viewing. Therefore, it is possible to reproduce from scenes with high access frequency such as a score scene of sports. Further, by caching chunks corresponding to scenes with high access frequency in more nodes 3, it is possible to suppress an increase in traffic on the network. In other words, traffic can be reduced by suggesting the user to replay from a previously cached chunk.

<変形例2>
また、アクセス頻度が所定の閾値以上であるチャンクを抽出及び結合して、コンテンツのダイジェストを生成するようにしてもよい。すなわち、1つのファイルを分割して生成したチャンクのうち、管理装置が算出したアクセス頻度が所定の閾値以上であるチャンクを結合して再生する。このような処理は、例えばコンテンツサーバ5等が、アクセス頻度が所定の閾値以上であるチャンクのみを含むMPDファイルを、コンテンツのダイジェストとして生成することにより実現してもよいし、端末4が備えるコンテンツ再生プログラムがMPDファイルに記述されたチャンクのうちアクセス頻度が所定の閾値以上であえるチャンクのみを要求することにより実現してもよい。すなわち、複数のチャンクを結合することによりもとのファイルを形成する処理は、ノード3が行うようにしてもよいし、端末4が行うようにしてもよい。
<Modification 2>
Alternatively, a digest of content may be generated by extracting and combining chunks having an access frequency equal to or higher than a predetermined threshold. That is, among the chunks generated by dividing one file, the chunks whose access frequency calculated by the management device is equal to or higher than a predetermined threshold are combined and played back. Such processing may be realized, for example, by the content server 5 or the like generating an MPD file including only chunks whose access frequency is equal to or higher than a predetermined threshold as a content digest, or content provided in the terminal 4 The reproduction program may be realized by requesting only chunks whose access frequency is equal to or higher than a predetermined threshold among chunks described in the MPD file. That is, the process of forming the original file by combining a plurality of chunks may be performed by the node 3 or the terminal 4.

アクセス頻度の高いシーンに相当するチャンクをより多くのノード3でキャッシュしておくことにより、本変形例によっても、ネットワーク上のトラフィックの増大を抑えることができる。   By caching chunks corresponding to scenes with high access frequency in more nodes 3, an increase in traffic on the network can also be suppressed according to this modification.

<変形例3>
また、端末4の再生処理部441は、アクセス頻度が所定の閾値以上であるチャンクを優先的に受信(プリフェッチ)するようにしてもよい。このようにすれば、端末4は、ユーザが視聴したい部分を先読みしてダウンロードしておき、ユーザが当該シーンへスキップする操作をした場合は、すぐに再生を開始することができる。また、ノード3のキャッシュ送信部342が主体となって、端末4へアクセス頻度が所定の閾値以上であるチャンクをプッシュ配信するようにしてもよい。いずれの場合であっても、端末4の再生処理部441は、ファイルを構成するチャンクのうち、アクセス頻度が所定の閾値以上であるチ
ャンクを優先的に受信することができる。そして、チャンクの再生時には当該チャンクが端末4の記憶装置42に保持された状態にしておくことができる。
<Modification 3>
Further, the playback processing unit 441 of the terminal 4 may receive (prefetch) preferentially a chunk whose access frequency is equal to or higher than a predetermined threshold. In this way, the terminal 4 can pre-read and download the part that the user wants to view, and if the user performs an operation to skip to the scene, playback can be started immediately. Further, the cache transmission unit 342 of the node 3 may be the main body, and the chunks whose access frequency is equal to or higher than a predetermined threshold may be push delivered to the terminal 4. In any case, the playback processing unit 441 of the terminal 4 can preferentially receive a chunk whose access frequency is equal to or higher than a predetermined threshold among the chunks constituting the file. Then, when the chunk is played back, the chunk can be held in the storage device 42 of the terminal 4.

<変形例4>
また、1つのコンテンツのうち、アクセス頻度が所定の閾値以上であるチャンクの前に広告等のような他のコンテンツを挿入して再生するようにしてもよい。このような処理は、例えば端末4の再生処理部441が、コンテンツサーバ5やノード3と協調して、アクセス頻度が所定の閾値以上であるチャンクの前に他のコンテンツを割り込ませて再生する。また、他のコンテンツについても、予めノード3にキャッシュさせておくようにしてもよい。このように人気のあるチャンクの前に他のコンテンツを挿入することにより、ユーザに他のコンテンツも視聴してもらえる可能性が高まる。本変形例に係る他のコンテンツの挿入も、ノード3のキャッシュ送信部342が主体となって、端末4へプッシュ配信するようにしてもよい。
<Modification 4>
Moreover, you may make it reproduce | regenerate by inserting other content like an advertisement before the chunk whose access frequency is more than a predetermined threshold among one content. In such a process, for example, the reproduction processing unit 441 of the terminal 4 cooperates with the content server 5 or the node 3 to reproduce another content by interrupting a chunk whose access frequency is a predetermined threshold or more. Also, other contents may be cached in advance in the node 3. By inserting other content before the popular chunk in this way, the possibility that the user can view other content is increased. The insertion of other contents according to this modification may be push-distributed to the terminal 4 mainly by the cache transmission unit 342 of the node 3.

<変形例5>
また、コンテンツデータは、動画や音声に限られず、例えば三次元オブジェクトを含むVR(Virtual Reality)動画であってもよい。このとき、VR動画内のオブジェクト単
位で送受信を制御できるファイル形式を採用し、時間的に分割されたチャンクごとにキャッシュするだけでなく、三次元オブジェクトごとにキャッシュできるようにしてもよい。すなわち、多くのユーザに視線を向けられ、表示の対象となることが多い三次元オブジェクトは、より多くのグループに属するノード3においてキャッシュし、ユーザに注目されず、表示されることが少ない三次元オブジェクトは、ネットワーク2上にほとんどキャッシュしない。また、段階的に品質の異なる三次元オブジェクトを予め用意しておき、表示の対象となることが多い三次元オブジェクトは高品質なものをキャッシュさせ、表示の対象となることが少ない三次元オブジェクトは低品質なものをキャッシュさせるようにしてもよい。このような変形例によっても、ネットワーク上のトラフィックの増大を抑えることができると共に、キャッシュを保持するための記憶領域を有効的に活用できる。
<Modification 5>
Further, the content data is not limited to moving images and audio, and may be VR (Virtual Reality) moving images including a three-dimensional object, for example. At this time, a file format in which transmission / reception can be controlled in units of objects in the VR moving image may be adopted so that not only the time-divided chunks are cached but also the three-dimensional objects can be cached. That is, a three-dimensional object that is directed to many users and is often a display target is cached in a node 3 belonging to a larger number of groups, is not noticed by the user, and is less likely to be displayed. The object hardly caches on the network 2. In addition, 3D objects with different quality in stages are prepared in advance, high quality 3D objects that are often displayed are cached, and 3D objects that are rarely displayed are You may make it cache a low quality thing. Also according to such a modification, an increase in traffic on the network can be suppressed, and a storage area for holding a cache can be effectively used.

すなわち、データの処理単位である三次元オブジェクトがまとまって記憶されるデータ構造のファイルのように、データ構造や処理単位が特殊なコンテンツデータを扱う場合には、データ構造や処理単位に基づいてチャンクのデータサイズを決定するようにしてもよい。このようにすれば、チャンク単位でファイルを送受信及びキャッシュする場合の通信効率やデータの処理効率を向上させることができる。   That is, when handling content data with a special data structure or processing unit, such as a data structure file in which three-dimensional objects, which are data processing units, are stored together, chunks are created based on the data structure or processing unit. The data size may be determined. In this way, it is possible to improve communication efficiency and data processing efficiency when files are transmitted / received and cached in units of chunks.

また、コンテンツデータとして、画質の異なるレイヤを組み合わせて再生品質やコンテンツのデータ量を調整できるファイル形式の動画に、実施形態又は変形例に係るキャッシュ方法を適用してもよい。例えば、H.264 SVC(Scalable Video Coding)のよ
うに段階的に画質の異なるレイヤを含む動画ファイルを用意しておき、時間的な区間ごとの動画に対するアクセス頻度に応じて、アクセス頻度の高い区間ほど画質の高いレイヤを多くキャッシュするようにしてもよい。また、アクセス頻度に関係なく、低画質のレイヤを多くキャッシュするようにしてもよい。このようにすれば、回線の混雑状況によらず、少なくとも低画質のレイヤは早期に端末4へ配信できるようになる。
In addition, the cache method according to the embodiment or the modification may be applied to a moving image in a file format in which playback quality and content data amount can be adjusted by combining layers having different image quality as content data. For example, H.M. H.264 SVC (Scalable Video Coding) prepares a video file that includes layers with different image quality in stages, and the higher the access frequency, the higher the image quality according to the access frequency to the video for each time interval. You may make it cache many layers. Also, a large number of low image quality layers may be cached regardless of the access frequency. In this way, at least a low image quality layer can be delivered to the terminal 4 at an early stage regardless of the congestion status of the line.

上記の実施形態及び変形例に記載した事項は、適宜組み合わせて実施することができる。   The matters described in the above embodiments and modifications can be implemented in appropriate combination.

<その他>
本発明は上述の処理を実行するコンピュータプログラムを含む。さらに、当該プログラムを記録した、コンピュータ読み取り可能な記録媒体も、本発明の範疇に属する。当該プログラムが記録された記録媒体については、コンピュータに、この記録媒体のプログラム
を読み込ませて実行させることにより、上述の処理が可能となる。
<Others>
The present invention includes a computer program that executes the above-described processing. Furthermore, a computer-readable recording medium on which the program is recorded also belongs to the category of the present invention. With respect to the recording medium on which the program is recorded, the above-described processing can be performed by causing the computer to read and execute the program on the recording medium.

ここで、コンピュータ読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータから読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータから取り外し可能なものとしては、フレキシブルディスク、光磁気ディスク、光ディスク、磁気テープ、メモリカード等がある。また、コンピュータに固定された記録媒体としては、ハードディスクドライブやROM等がある。   Here, the computer-readable recording medium refers to a recording medium in which information such as data and programs is accumulated by electrical, magnetic, optical, mechanical, or chemical action and can be read from a computer. Examples of such a recording medium that can be removed from the computer include a flexible disk, a magneto-optical disk, an optical disk, a magnetic tape, and a memory card. Further, examples of the recording medium fixed to the computer include a hard disk drive and a ROM.

1 :ネットワークシステム
2 :ネットワーク
3 :ノード
31 :通信I/F
32 :記憶装置
33 :入出力装置
34 :プロセッサ
341 :キャッシュ保持部
342 :キャッシュ送信部
343 :中継部
35 :バス
4 :端末
41 :通信I/F
42 :記憶装置
43 :入出力装置
44 :プロセッサ
441 :再生処理部
45 :バス
5 :コンテンツサーバ
51 :通信I/F
52 :記憶装置
53 :入出力装置
54 :プロセッサ
541 :コンテンツ配信部
542 :キャッシュ管理部
55 :バス
1: Network system 2: Network 3: Node 31: Communication I / F
32: Storage device 33: Input / output device 34: Processor 341: Cache holding unit 342: Cache transmission unit 343: Relay unit 35: Bus 4: Terminal 41: Communication I / F
42: storage device 43: input / output device 44: processor 441: reproduction processing unit 45: bus 5: content server 51: communication I / F
52: storage device 53: input / output device 54: processor 541: content distribution unit 542: cache management unit 55: bus

Claims (11)

分割されたファイルであるチャンクを送受信すると共に当該チャンクを一時的に保持するノード装置を複数含むネットワークシステムであって、
前記ノード装置には、当該ノード装置が保持すべきチャンクを特定するためのグループが、ネットワークトポロジ上隣接する他のノード装置とは異なるグループが優先されるように割り当てられ、
前記チャンクは、ゼロ以上の前記グループと関連付けられ、
前記ノード装置は、
自身に割り当てられた前記グループと関連付けられた前記チャンクを受信した場合は、当該チャンクをキャッシュとして記憶部に一時的に保持させるキャッシュ保持部と、
要求元のノード装置が送信を要求する前記チャンクに対応する前記キャッシュを保持している場合は、当該キャッシュを前記要求元のノード装置に対して送信するキャッシュ送信部と、
前記要求元のノード装置が要求する前記チャンクに対応する前記キャッシュを保持していない場合は、他のノードに前記チャンクを要求する中継部と、
を備えるネットワークシステム。
A network system including a plurality of node devices that transmit and receive chunks that are divided files and temporarily hold the chunks,
A group for specifying a chunk to be held by the node device is assigned to the node device so that a group different from other adjacent node devices in the network topology is given priority.
The chunk is associated with zero or more of the groups;
The node device is
When the chunk associated with the group assigned to itself is received, a cache holding unit that temporarily holds the chunk as a cache in a storage unit;
When the requesting node device holds the cache corresponding to the chunk that requests transmission, a cache transmission unit that transmits the cache to the requesting node device;
When the cache corresponding to the chunk requested by the requesting node device is not held, a relay unit that requests the chunk from another node;
A network system comprising:
前記チャンクに対する要求の頻度を算出する管理装置をさらに備え、
前記管理装置は、算出した前記頻度が高いチャンクは前記頻度が低いチャンクよりも多くのノード装置において保持されるように、前記チャンクに関連付ける前記グループを変更するキャッシュ管理部を備える
請求項1に記載のネットワークシステム。
A management device for calculating the frequency of requests for the chunk;
The said management apparatus is provided with the cache management part which changes the said group linked | related with the said chunk so that the calculated chunk with high frequency may be hold | maintained in more node apparatuses than the chunk with low frequency. Network system.
前記ノード装置の前記キャッシュ送信部は、当該ノード装置の前記記憶部が保持するキャッシュを前記要求元のノード装置に対して送信した場合、当該キャッシュに対応する前記チャンクへのアクセス数を計数し、当該アクセス数を前記管理装置へ送信する
請求項2に記載のネットワークシステム。
When the cache transmission unit of the node device transmits the cache held by the storage unit of the node device to the requesting node device, the cache transmission unit counts the number of accesses to the chunk corresponding to the cache, The network system according to claim 2, wherein the number of accesses is transmitted to the management device.
前記ファイルはコンテンツデータであり、
前記チャンクは、前記コンテンツデータが再生時間又はデータサイズに基づいて分割されたファイルであり、複数のチャンクを結合することにより前記ファイルを形成する
請求項2又は3に記載のネットワークシステム。
The file is content data;
The network system according to claim 2 or 3, wherein the chunk is a file in which the content data is divided based on a reproduction time or a data size, and the file is formed by combining a plurality of chunks.
当該ネットワークシステムは、前記ノード装置に対し前記コンテンツデータをチャンク単位で要求する端末をさらに含み、
前記端末は、要求するチャンクによって形成されるファイルを構成する他のチャンクのうち、要求の頻度が所定の閾値以上であるチャンクを優先的に受信する再生処理部を備える
請求項4に記載のネットワークシステム。
The network system further includes a terminal that requests the content data in chunk units from the node device,
The network according to claim 4, wherein the terminal includes a reproduction processing unit that preferentially receives a chunk whose request frequency is equal to or higher than a predetermined threshold among other chunks that form a file formed by the requested chunk. system.
前記端末の前記再生処理部は、前記管理装置が算出した前記要求の頻度が所定の閾値以上であるチャンクの再生前に、他のコンテンツを再生する
請求項5に記載のネットワークシステム。
The network system according to claim 5, wherein the reproduction processing unit of the terminal reproduces other content before reproducing a chunk whose request frequency calculated by the management device is equal to or greater than a predetermined threshold.
前記端末の前記再生処理部は、1つのファイルを分割して生成したチャンクのうち、前記管理装置が算出した前記要求の頻度が所定の閾値以上であるチャンクを結合して再生する
請求項5又は6に記載のネットワークシステム。
The reproduction processing unit of the terminal combines and reproduces chunks that are generated by dividing one file and whose request frequency calculated by the management device is equal to or higher than a predetermined threshold. 6. The network system according to 6.
前記端末の前記再生処理部は、ユーザの操作に応じて、1つのファイルを分割して生成したチャンクのうち、前記管理装置が算出した前記要求の頻度が所定の閾値以上であるチャンクのいずれかから再生を開始する
請求項5から7のいずれか一項に記載のネットワークシステム。
The playback processing unit of the terminal is any one of chunks generated by dividing one file according to a user's operation, and the frequency of the request calculated by the management device is equal to or higher than a predetermined threshold. The network system according to any one of Claims 5 to 7, wherein reproduction is started from.
分割されたファイルであるチャンクを送受信すると共に当該チャンクを一時的に保持するノード装置であって、
前記ノード装置には、当該ノード装置が保持すべきチャンクを特定するためのグループが割り当てられ、
前記ファイルは、ゼロ以上の前記グループと関連付けられ、
前記ノード装置は、
自身に割り当てられた前記グループと関連付けられた前記チャンクを受信した場合は、当該チャンクをキャッシュとして記憶部に一時的に保持させるキャッシュ保持部と、
要求元のノード装置が送信を要求する前記チャンクに対応する前記キャッシュを保持している場合は、当該キャッシュを前記要求元のノード装置に対して送信するキャッシュ送信部と、
前記要求元のノード装置が要求する前記チャンクに対応する前記キャッシュを保持していない場合は、他のノードに前記チャンクを要求する中継部と、
を備えるノード装置。
A node device that transmits and receives chunks that are divided files and temporarily holds the chunks,
The node device is assigned a group for specifying a chunk to be held by the node device,
The file is associated with zero or more of the groups;
The node device is
When the chunk associated with the group assigned to itself is received, a cache holding unit that temporarily holds the chunk as a cache in a storage unit;
When the requesting node device holds the cache corresponding to the chunk that requests transmission, a cache transmission unit that transmits the cache to the requesting node device;
When the cache corresponding to the chunk requested by the requesting node device is not held, a relay unit that requests the chunk from another node;
A node device comprising:
分割されたファイルであるチャンクを送受信すると共に当該チャンクを一時的に保持するノード装置が実行するキャッシュ方法であって、
前記ノード装置には、当該ノード装置が保持すべきチャンクを特定するためのグループが割り当てられ、
前記ファイルは、ゼロ以上の前記グループと関連付けられ、
前記ノード装置が、
自身に割り当てられた前記グループと関連付けられた前記チャンクを受信した場合は、当該チャンクをキャッシュとして記憶部に一時的に保持させ、
要求元のノード装置が送信を要求する前記チャンクに対応する前記キャッシュを保持している場合は、当該キャッシュを前記要求元のノード装置に対して送信し、
前記要求元のノード装置が要求する前記チャンクに対応する前記キャッシュを保持していない場合は、他のノードに前記チャンクを要求する
キャッシュ方法。
A cache method executed by a node device that transmits and receives chunks that are divided files and temporarily holds the chunks,
The node device is assigned a group for specifying a chunk to be held by the node device,
The file is associated with zero or more of the groups;
The node device is
When the chunk associated with the group assigned to itself is received, the chunk is temporarily held in the storage unit as a cache,
When the requesting node device holds the cache corresponding to the chunk that requests transmission, the cache is transmitted to the requesting node device,
A cache method for requesting the chunk from another node when the cache corresponding to the chunk requested by the requesting node device is not held.
分割されたファイルであるチャンクを送受信すると共に当該チャンクを一時的に保持するノード装置に実行されるプログラムであって、
前記ノード装置には、当該ノード装置が保持すべきチャンクを特定するためのグループが割り当てられ、
前記ファイルは、ゼロ以上の前記グループと関連付けられ、
前記ノード装置に、
自身に割り当てられた前記グループと関連付けられた前記チャンクを受信した場合は、当該チャンクをキャッシュとして記憶部に一時的に保持させ、
要求元のノード装置が送信を要求する前記チャンクに対応する前記キャッシュを保持している場合は、当該キャッシュを前記要求元のノード装置に対して送信させ、
前記要求元のノード装置が要求する前記チャンクに対応する前記キャッシュを保持していない場合は、他のノードに前記チャンクを要求させる
プログラム。
A program that is executed by a node device that transmits and receives chunks that are divided files and temporarily holds the chunks,
The node device is assigned a group for specifying a chunk to be held by the node device,
The file is associated with zero or more of the groups;
In the node device,
When the chunk associated with the group assigned to itself is received, the chunk is temporarily held in the storage unit as a cache,
When the requesting node device holds the cache corresponding to the chunk that requests transmission, the cache device is transmitted to the requesting node device,
A program for causing another node to request the chunk when the cache corresponding to the chunk requested by the requesting node device is not held.
JP2017138406A 2017-07-14 2017-07-14 Network system, node device, cache method and program Active JP6638145B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017138406A JP6638145B2 (en) 2017-07-14 2017-07-14 Network system, node device, cache method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017138406A JP6638145B2 (en) 2017-07-14 2017-07-14 Network system, node device, cache method and program

Publications (2)

Publication Number Publication Date
JP2019020994A true JP2019020994A (en) 2019-02-07
JP6638145B2 JP6638145B2 (en) 2020-01-29

Family

ID=65355586

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017138406A Active JP6638145B2 (en) 2017-07-14 2017-07-14 Network system, node device, cache method and program

Country Status (1)

Country Link
JP (1) JP6638145B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2018173874A1 (en) * 2017-03-24 2020-01-30 ソニー株式会社 Content providing system, content providing method, and program
JP2022040954A (en) * 2020-08-31 2022-03-11 株式会社Tbsテレビ Streaming distribution system, streaming distribution method, and program
CN115103023A (en) * 2022-06-14 2022-09-23 北京字节跳动网络技术有限公司 Video caching method, device, equipment and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004038627A (en) * 2002-07-04 2004-02-05 Sony Corp Cache device, cache data management method, and computer program
JP2010519613A (en) * 2007-02-20 2010-06-03 レイセオン カンパニー System and method for improving data cache processing
WO2012144584A1 (en) * 2011-04-22 2012-10-26 日本電気株式会社 Content distribution system, control device, and content distribution method
JP2015072682A (en) * 2013-09-12 2015-04-16 株式会社Nttドコモ Method and device for load balancing and dynamic scaling of low delay two-layer distributed cache storage system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004038627A (en) * 2002-07-04 2004-02-05 Sony Corp Cache device, cache data management method, and computer program
JP2010519613A (en) * 2007-02-20 2010-06-03 レイセオン カンパニー System and method for improving data cache processing
WO2012144584A1 (en) * 2011-04-22 2012-10-26 日本電気株式会社 Content distribution system, control device, and content distribution method
JP2015072682A (en) * 2013-09-12 2015-04-16 株式会社Nttドコモ Method and device for load balancing and dynamic scaling of low delay two-layer distributed cache storage system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2018173874A1 (en) * 2017-03-24 2020-01-30 ソニー株式会社 Content providing system, content providing method, and program
JP2022040954A (en) * 2020-08-31 2022-03-11 株式会社Tbsテレビ Streaming distribution system, streaming distribution method, and program
CN115103023A (en) * 2022-06-14 2022-09-23 北京字节跳动网络技术有限公司 Video caching method, device, equipment and storage medium
CN115103023B (en) * 2022-06-14 2024-04-05 北京字节跳动网络技术有限公司 Video caching method, device, equipment and storage medium

Also Published As

Publication number Publication date
JP6638145B2 (en) 2020-01-29

Similar Documents

Publication Publication Date Title
CN104995924B (en) The caching based on program in live media distribution
KR101978177B1 (en) Method of caching contents by node and method of transmitting contents by contents provider in a content centric network
EP2852125B1 (en) Server selection for content distribution
JP5408257B2 (en) Content distribution system, content distribution method, and content distribution program
KR101885408B1 (en) Predictive, multi-layer caching architectures
US7882168B2 (en) Contents distribution system, node apparatus and information processing method thereof, as well as recording medium on which program thereof is recorded
JP4830889B2 (en) Information distribution system, information distribution method, node device, etc.
JP6219800B2 (en) Multi-track video content service method and system for providing multi-track video content
JP6638145B2 (en) Network system, node device, cache method and program
US20160134900A1 (en) Streaming media processing method, apparatus, and system
CN102594879A (en) Media content location awareness and decision making
CN113767639B (en) Method, apparatus and non-volatile computer readable medium for receiving media data
CN110636339A (en) Scheduling method and device based on code rate and electronic equipment
CN109076108A (en) Receive network node, endpoint node and the method for interest message
CN112565907A (en) Video acquisition method, electronic device and storage medium
JP2017126983A (en) Method and system for sharing live broadcast data
CN108777802B (en) Method and device for caching VR (virtual reality) video
JP6305738B2 (en) Media playback control device, media playback control method, and program
CN107645475B (en) File resource distribution system and method in heterogeneous network
JPWO2018173874A1 (en) Content providing system, content providing method, and program
JP2013045273A (en) Cache server, method for determining cache object, content distribution system, and cache object determination program
JP6592809B2 (en) Network system, node device, cache method, and program
JP2019133453A (en) Network system, node device, caching method and caching program
JPWO2011142334A1 (en) Content distribution system, script generation device, terminal, content distribution method, and content distribution program
JP6500132B1 (en) Information processing apparatus, information processing method, and information processing program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190619

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190619

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190717

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191007

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191129

R150 Certificate of patent or registration of utility model

Ref document number: 6638145

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250