JP2005051351A - Device and system for communication, program, and communication method - Google Patents

Device and system for communication, program, and communication method Download PDF

Info

Publication number
JP2005051351A
JP2005051351A JP2003203791A JP2003203791A JP2005051351A JP 2005051351 A JP2005051351 A JP 2005051351A JP 2003203791 A JP2003203791 A JP 2003203791A JP 2003203791 A JP2003203791 A JP 2003203791A JP 2005051351 A JP2005051351 A JP 2005051351A
Authority
JP
Japan
Prior art keywords
content
identification information
anycast
information
distribution
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
JP2003203791A
Other languages
Japanese (ja)
Other versions
JP4256218B2 (en
Inventor
Ayumi Shimizu
歩 清水
Tatsuya Yamada
竜也 山田
Mitsuaki Oka
光秋 岡
Daigo Yoshii
大吾 吉井
Takehisa Kato
岳久 加藤
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2003203791A priority Critical patent/JP4256218B2/en
Publication of JP2005051351A publication Critical patent/JP2005051351A/en
Application granted granted Critical
Publication of JP4256218B2 publication Critical patent/JP4256218B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To speedily and accurately distribute contents from a transmission-side communication device to a plurality of reception-side communication devices and to lighten the load on the transmission-side communication device. <P>SOLUTION: A communication system 1 transmits the contents 5 from the transmission-side communication device 2 to the reception-side communication devices 31 to 3n. The transmission-side communication device 2 performs multicast distribution of the contents by using group address information specifying a multicast group. The reception-side communication devices 31 to 3n receive the contents 5 and compares version information of the received contents 5 with version information of contents 5 that other reception-side communication devices belonging to the same multicast group to provide the received contents 5 for the other reception-side communication devices when the received contents 5 have a newer version and receive contents 5 that the other reception-side communication devices from the other reception-side communication devices when the received contents 5 have an older version. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、データ又はプログラムなどの各種コンテンツをネットワーク経由で通信する通信装置、通信システム、プログラム並びに通信方法に関する。
【0002】
【従来の技術】
ソフトウェアの一部の修正(書き換え、変換、変更なども含む)に用いられるプログラム又はデータをパッチという。パッチは、例えばセキュリティソフトウェアなど、様々なソフトウェアの修正に用いられる。
【0003】
一般的に、パッチの配信は、サーバ/クライアント方式(以下、「S/C方式」という)によって行われる。サーバは、パッチを保持し、ソフトウェアの修正を行うクライアントに対してパッチを配信する。
【0004】
一般的なS/C方式によるパッチの配信では、利用者は、クライアントを操作してサーバに接続し、自己の保持するソフトウェアをバージョンアップさせることが可能か確認し、バージョンアップを行う場合に、サーバに対してパッチを要求する。
【0005】
S/C方式による他のパッチの配信方法として、クライアントがサーバのアップデート情報を自動確認し、クライアントがこの確認結果に応じてパッチを自動的にサーバからダウンロードする方法がある。
【0006】
【特許文献1】
特開2003−018213号公報
【0007】
【発明が解決しようとする課題】
従来のS/C方式による配信では、クライアントの数が増加するとサーバの負荷が過大となる。したがって、サーバを運営するサービス提供者(サーバ管理者を含む)は、サーバの処理能力を増加させる必要があり、管理労力及びコストが高くなる。
【0008】
また、利用者は、サーバに負荷が集中した場合、迅速にサーバに接続してサービスを受けることが困難となる。
【0009】
宅配便などでサービス提供者から利用者にパッチを記録したCD−ROM(Compact Disk − Read Only Memory)を送付する場合、送付料金がかかる。また、パッチのCD−ROMへの記録、利用者によるクライアントへのパッチの読み込みなどの作業が必要であり、サービス提供者及び利用者の双方の作業労力が大きくなる。
【0010】
本発明は、以上のような実情に鑑みてなされたもので、コンテンツを提供する側に過負荷がかかることを防止しつつ、コンテンツを確実かつ迅速に提供するための通信装置、通信システム、プログラム並びにプログラムを提供することを目的とする。
【0011】
【課題を解決するための手段】
本発明を実現するにあたって講じた具体的手段について以下に説明する。
【0012】
第1の発明は、配信対象のコンテンツを示すコンテンツ識別情報を指定する配信要求を受け付ける手段と、マルチキャスト配信におけるマルチキャストグループを指定するマルチキャストアドレス情報とコンテンツ識別情報とを対応付けた情報に基づいて、配信要求で指定されたコンテンツ識別情報に対応するマルチキャストアドレス情報を取得する手段と、配信要求で指定されたコンテンツ識別情報に対応するマルチキャストアドレス情報を用いて、配信要求で指定されたコンテンツ識別情報の示すコンテンツのマルチキャスト配信を実行する配信手段とを具備する通信装置である。
【0013】
第2の発明は、マルチキャスト配信を用いて配信されたコンテンツを受信する受信手段と、同一のマルチキャストグループに属する他の装置の保持するコンテンツのバージョン情報と受信手段によって受信されたコンテンツのバージョン情報とを比較する手段と、受信手段によって受信されたコンテンツが新バージョンの場合に、他の装置に対して受信手段によって受信されたコンテンツを提供し、受信手段によって受信されたコンテンツが旧バージョンの場合に、他の装置から他の装置の保持するコンテンツを受け付ける手段とを具備する通信装置である。
【0014】
第3の発明は、配信対象のコンテンツを示すコンテンツ識別情報を指定する配信要求を受け付ける手段と、エニーキャスト配信におけるエニーキャストグループを指定するエニーキャストアドレス情報とコンテンツ識別情報とを対応付けた情報に基づいて、配信要求で指定されたコンテンツ識別情報に対応するエニーキャストアドレス情報を取得する手段と、配信要求で指定されたコンテンツ識別情報に対応するエニーキャストアドレス情報を用いて、エニーキャストリクエストを送信する手段と、エニーキャストリプライを受信する手段と、エニーキャストリプライの受信順序に基づいて、配信要求で指定されたコンテンツ識別情報の示すコンテンツの送信先を決定する送信先決定手段と、送信先決定手段によって決定された送信先に、配信要求で指定されたコンテンツ識別情報の示すコンテンツを送信する手段とを具備する通信装置である。
【0015】
第4の発明は、エニーキャスト配信におけるエニーキャストリクエストを受信する手段と、エニーキャストリクエストの送信元にエニーキャストリプライを返す手段と、エニーキャストリクエストの送信元からコンテンツを受信する受信手段と、同一のエニーキャストグループに属する他の装置の保持するコンテンツのバージョン情報と受信手段によって受信されたコンテンツのバージョン情報とを比較する手段と、受信手段によって受信されたコンテンツが新バージョンの場合に、他の装置に対して受信手段によって受信されたコンテンツを提供し、受信手段によって受信されたコンテンツが旧バージョンの場合に、他の装置から他の装置の保持するコンテンツを受け付ける手段とを具備する通信装置である。
【0016】
第5の発明は、送信側通信装置から複数の受信側通信装置にコンテンツを送信する通信システムに関する。この通信システムでは、送信側通信装置は、マルチキャストグループを指定するグループアドレス情報を用いて、コンテンツのマルチキャスト配信を実行し、複数の受信側通信装置は、コンテンツを受信する受信手段と、マルチキャストグループに属する他の受信側通信装置の保持するコンテンツのバージョン情報と受信手段によって受信されたコンテンツのバージョン情報とを比較する手段と、受信手段によって受信されたコンテンツが新バージョンの場合に、他の受信側通信装置に対して受信手段によって受信されたコンテンツを提供し、受信手段によって受信されたコンテンツが旧バージョンの場合に、他の受信側通信装置から他の受信側通信装置の保持するコンテンツを受け付ける手段とを具備する。
【0017】
第6の発明は、送信側通信装置から複数の受信側通信装置にコンテンツを送信する通信システムに関する。この通信システムでは、送信側通信装置は、配信対象のコンテンツを示すコンテンツ識別情報を指定する配信要求を受け付ける手段と、エニーキャスト配信におけるエニーキャストグループを指定するエニーキャストアドレス情報とコンテンツ識別情報とを対応付けた情報に基づいて、配信要求で指定されたコンテンツ識別情報に対応するエニーキャストアドレス情報を取得する手段と、配信要求で指定されたコンテンツ識別情報に対応するエニーキャストアドレス情報を用いて、エニーキャストリクエストを送信する手段と、エニーキャストリプライを受信する手段と、エニーキャストリプライの受信順序に基づいて、配信要求で指定されたコンテンツ識別情報の示すコンテンツの送信先を決定する送信先決定手段と、送信先決定手段によって決定された送信先に、配信要求で指定されたコンテンツ識別情報の示すコンテンツを送信する手段とを具備する。また、複数の受信側通信装置は、エニーキャストリクエストを受信する手段と、エニーキャストリプライを返す手段と、送信側通信装置からコンテンツを受信する受信手段と、エニーキャストグループに属する他の受信側通信装置の保持するコンテンツのバージョン情報と受信手段によって受信されたコンテンツのバージョン情報とを比較する手段と、受信手段によって受信されたコンテンツが新バージョンの場合に、他の受信側通信装置に対して受信手段によって受信されたコンテンツを提供し、受信手段によって受信されたコンテンツが旧バージョンの場合に、他の受信側通信装置から他の受信側通信装置の保持するコンテンツを受け付ける手段とを具備する。
【0018】
上記各発明の各手段は、コンピュータにプログラムを読み込んで実現可能である。このプログラムは、記録媒体に記録してコンピュータに適用してもよい。
【0019】
また、上記各発明によってコンテンツの通信方法が実行される。
【0020】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態について説明する。なお、以下においては、コンテンツをサーバからクライアントに提供する場合を例に説明する。
【0021】
ここで、コンテンツには、マルチメディアコンテンツ、プログラム、ドキュメントデータ、ポリシーデータ、パッチ、設定データ、ログ情報などが含まれる。
【0022】
本実施の形態では、コンテンツがパッチの場合を例に説明する。しかしながら、サーバからクライアントに配信されるコンテンツは、パッチのみに限定されず、例えばクライアントの設定データ、ポリシーデータなど、様々なプログラム又はデータであってもよい。
【0023】
以下の各図において同一の要素については同一の符号を付してその説明を省略し、異なる部分についてのみ詳しく説明する。
【0024】
(第1の実施の形態)
本実施の形態においては、ネットワーク上において、サーバからクライアントにマルチキャスト配信を用いてパッチが送信され、その後パッチを受信したクライアントから受信していないクライアントにピア・ツー・ピア(以下、「P2P」という)通信を用いてパッチが送信され、クライアント間でパッチの共有化が図られる。
【0025】
マルチキャスト配信では、サーバからネットワークに送信されたコンテンツはネットワーク内のルータによって必要に応じてコピーされ、複数のクライアントに受信される。
【0026】
図1は、本実施の形態に係る通信システムの構成例を示す図である。
【0027】
通信システム1では、サーバ(送信側通信装置)2とクライアント(受信側通信装置)31〜3nとがネットワーク4経由で接続される。
【0028】
ネットワーク4は、サーバ2とクライアント31〜3nとを接続する通信網である。ネットワーク4としては、例えばインターネット、電話回線網、無線LAN(Local Area Network)等など、コンテンツが送受信され各種機器が接続される各種の通信媒体が用いられる。
【0029】
通信システム1では、まず、パッチ5がサーバ2からクライアント31〜3nにマルチキャスト配信を用いて送信される。次に、通信システム1では、パッチ5を受信したクライアントからパッチ5を未受信のクライアントに対して、パッチ5がP2P通信を用いて送信される。
【0030】
この図1では、クライアント31〜3nのうち、クライアント31,33〜35は、パッチ5をサーバ2から受信している。そして、それぞれパッチ5を受信したクライアント31,34,35からパッチ5を未受信のクライアント32,3n,36に、パッチ5が送信されている。
【0031】
クライアント31〜3n間でパッチ5が送受信される場合、パッチ5を受信したクライアントは、通信先を決定する通信先決定サーバ44にアクセスし、通信先決定サーバ44から通知された同一のマルチキャストグループに属する他のクライアントとの間でP2P通信を行う。
【0032】
図2は、本実施の形態に係る通信システム1のサーバ2の具体的構成例を示すブロック図である。
【0033】
サーバ2は、マルチキャスト配信を用いて、クライアント31〜3nにネットワーク4経由でパッチ5を送信する。
【0034】
サーバ2は、記録媒体6に記録されているプログラム6aを読み込み、実行することにより、要求処理部7、配信済み確認部8、グループ管理部9、配信部10としての機能を実現する。サーバ2は、記録部11を具備する。なお、本実施の形態では、記録部11はサーバ2に内蔵されているが、例えばサーバ2に外付けの記録装置であってもよい。また、サーバ2はネットワーク4経由で記録部11をアクセスするとしてもよい。
【0035】
記録部11は、ソフトウェア情報11a、配信情報11b、グループ情報11c、パッチ情報11dを記録する。
【0036】
ソフトウェア情報11aは、図3に示すように、サーバ2が配信を行うパッチのパッチ識別情報とこのパッチに基づいて修正されるソフトウェアのソフトウェア識別情報とを対応付けた情報である。
【0037】
本実施の形態では、パッチ識別情報には、パッチの名称とバージョン情報とが含まれているとする。図3の例では、パッチ識別情報14とソフトウェア識別情報15とが対応付けされている。
【0038】
配信情報11bは、図4に示すように、サーバ2から配信されたパッチのパッチ識別情報を含む。すなわち、この配信情報11bに登録されているパッチ識別情報の示すパッチは、送信済みを意味する。図4の例では、パッチ識別情報16,17で示されるパッチが配信済みであることが表されている。
【0039】
グループ情報11cは、図5に示すように、サーバ2が配信を行うパッチによって修正されるソフトウェアのソフトウェア識別情報と、このソフトウェアを具備するクライアントの属するマルチキャストグループを示すマルチキャストアドレス情報とを対応付けた情報である。
【0040】
例えば、図5のグループ情報11cは、ウイルス駆除ソフトウェアは、クライアント31〜3nのうちマルチキャストアドレス情報「3ffe:2001::2」で表されるマルチキャストグループに属するクライアントに具備されていることを表している。
【0041】
なお、本実施の形態において、コンテンツに対して固有のマルチキャストアドレス情報を対応付けなくてもよい場合がある。
【0042】
例えば、複数のコンテンツに共通のアドレス情報を対応付けておき、この共通のアドレス情報から各コンテンツを識別可能な仕組みを上位層に実装する、そして、この仕組みを用いて共通のアドレス情報から各コンテンツの識別を行うとしてもよい。
【0043】
より具体的には、複数のコンテンツに同一のマルチキャストアドレス情報を対応付け、トランスポート層において、複数のコンテンツをポート番号によって識別するとしてもよい。
【0044】
コンピュータネットワークでは、TCP(Transmission Control Protocol)又はUDP(User Datagram Protocol)のポート番号でアプリケーションを判別することが可能である。また、コンピュータネットワークでは、TCP又はUDPのポート番号で続けて送られてくるデータをグルーピングすることが可能である。
【0045】
固有のアドレス情報を用いて各コンテンツの識別を行うと、コンテンツの増加に応じてアドレス情報も増加し、アドレス情報が不足する場合がある。しかしながら、上記のように、上位層において共通のアドレス情報から各コンテンツを識別可能とすることにより、複数のコンテンツ間でアドレス情報を共有させることが可能になり、アドレス情報の不足を防止できる。
【0046】
パッチ情報11dは、図6に示すように、サーバ2が配信を行うパッチとこのパッチを識別するためのパッチ識別情報とを対応付けた情報である。
【0047】
例えば、図6の例では、サーバ2はパッチ12を配信し、このパッチ12のパッチ識別情報14は「ウイルス駆除.0102513」である旨が表されている。また、サーバ2はパッチ69を配信し、このパッチ69のパッチ識別情報は「地図データ.0301234」である旨が表されている。
【0048】
本実施の形態においては、パッチ識別情報とマルチキャストアドレス情報とが、ソフトウェア識別情報を経由して間接的に対応付けされている。
【0049】
要求処理部7は、要求発行元から配信要求13を受け付け、この配信要求13で指定されたパッチ識別情報14を認識する。要求発行元としては、例えばサービス提供者、他のシステム、サーバ2内の他の要素などがある。
【0050】
要求処理部7は、記録部11に記録されているソフトウェア情報11aを参照し、配信要求13で指定されたパッチ識別情報14がソフトウェア情報11aに登録されているか判断する。
【0051】
パッチ識別情報14がソフトウェア情報11aに登録されていない場合、要求処理部7は、配信要求13で指定されたパッチ識別情報14の示すパッチはこのサーバ2が配信を行うパッチではないと判断し、エラーを配信要求13の発行元に返す。
【0052】
一方、パッチ識別情報14がソフトウェア情報11aに登録されている場合、要求処理部7は、ソフトウェア情報11aでパッチ識別情報14と対応付けられているソフトウェア識別情報15を取得する。そして、要求処理部7は、パッチ識別情報14とソフトウェア識別情報15とを配信済み確認部8に提供する。
【0053】
配信済み確認部8は、要求処理部7からパッチ識別情報14とソフトウェア識別情報15とを受け付けた場合、記録部11に記録されている配信情報11bを参照し、パッチ識別情報14より新しい又は同じバージョン情報のパッチ識別情報が配信情報11bに登録されているか否か判断する。
【0054】
例えば、配信済み確認部8は、パッチ識別情報14に含まれているパッチ名と同じパッチ名を含み、パッチ識別情報14に含まれているバージョン情報より新しい又は同じバージョン情報を含むパッチ識別情報が配信情報11bに登録されているか判断する。例えば、バージョン情報の新旧は、バージョン情報の大小関係によって判断する。
【0055】
パッチ識別情報14より新しいバージョン情報又は同じバージョン情報のパッチ識別情報が配信情報11bに登録されている場合、配信済み確認部8は、配信要求で指定されたパッチ識別情報の示すパッチが配信済みである判断し、エラーを配信要求13の発行元に返す。
【0056】
一方、配信要求で指定されたパッチ識別情報14に含まれているバージョン情報が配信情報11bに登録されているパッチ識別情報の示すバージョン情報よりも新しい場合、配信済み確認部8は、パッチ識別情報14の示すパッチは未送信であると判断し、パッチ識別情報14とソフトウェア識別情報15とをグループ管理部9に提供するとともに、パッチ識別情報14を配信情報11bに登録する。
【0057】
グループ管理部9は、配信済み確認部8からパッチ識別情報14とソフトウェア識別情報15とを受け付けた場合、記録部11に登録されているグループ情報11cを参照し、ソフトウェア識別情報15と対応するマルチキャストアドレス情報18を取得する。この取得したマルチキャストアドレス情報18はマルチキャスト配信先を表す。
【0058】
そして、グループ管理部9は、パッチ識別情報14とソフトウェア識別情報15とマルチキャストアドレス情報18を配信部10に提供する。
【0059】
配信部10は、ネットワーク4に各種コンテンツを配信するための命令を発行するとともに、ネットワーク4から各種コンテンツを受信するための命令を発行する。
【0060】
また、配信部10は、グループ管理部9からパッチ識別情報14とソフトウェア識別情報15とマルチキャストアドレス情報18とを受け付けた場合、記録部11に登録されているパッチ情報11dを参照し、パッチ識別情報14に対応するパッチ12を取得する。
【0061】
そして、配信部10は、マルチキャストアドレス情報18を付して、パッチ識別情報14、ソフトウェア識別情報15、パッチ12等のコンテンツをネットワーク4に対してマルチキャスト配信を用いて送信する。
【0062】
図7及び図8は、本実施の形態に係るサーバ2の動作(マルチキャスト配信段階)の一例を示すフローチャートである。
【0063】
ステップS1において、要求処理部7は、配信要求13を受け付ける。配信要求13の発行は、サービス提供者によるコマンドラインからの入力によって行われてもよい。また、配信要求13の発行は、サービス提供者がグラフィカルユーザーインターフェースを用いて行うとしてもよい。また、サーバ2によって配信要求を発行するコマンドが所定時間経過毎に実行され、要求処理部7は、この発行された配信要求13を受け付けるとしてもよい。
【0064】
例えば、配信要求13として「% multicast −t 3000 ウイルス駆除.0102513」が発行される。この配信要求13において「multicast」は命令名であり、「−t 3000」は3000秒後に配信を行う指示を表し、「ウイルス駆除」は配信されるパッチの名前を表す。「.」以下の「0102513」はパッチのバージョン情報を表す。すなわち、この「ウイルス駆除.0102513」は、配信要求13で指定されたパッチ識別情報14である。
【0065】
ステップS2において、要求処理部7は、配信要求13に基づいて、オプション解析と送信対象のパッチを示すパッチ識別情報14の認識とを実行する。
【0066】
ステップS3において、要求処理部7は、ソフトウェア情報11aを参照し、配信要求13で指定されたパッチ識別情報14に対応するソフトウェア識別情報が登録されているか判断する。登録の有無に基づいて、配信要求13で指定されたパッチ識別情報14の示すパッチがこのサーバ2による配信対象のパッチか否か判断される。
【0067】
パッチ識別情報14に対応するソフトウェア識別情報がソフトウェア情報11aに登録されていない場合、ステップS4において、要求処理部7は、配信要求元にエラーを返し、処理を終了する。
【0068】
パッチ識別情報14に対応するソフトウェア識別情報がソフトウェア情報11aに登録されている場合、ステップS5において、パッチ識別情報14に対応するソフトウェア識別情報15を取得し、パッチ識別情報14とソフトウェア識別情報15とを配信済み確認部8に提供する。
【0069】
ステップS6において、配信済み確認部8は、要求処理部7からパッチ識別情報14とソフトウェア識別情報15とを受け付けると、配信情報11bを参照し、配信要求13で指定されたパッチ識別情報14の示すバージョン情報が配信情報11bに登録されているパッチ識別情報の示すバージョン情報より新しいか判断する。パッチ識別情報14の示すバージョン情報が配信情報11bに登録されているパッチ識別情報の示すバージョン情報よりも新しい場合、未配信と判断される。一方、パッチ識別情報14の示すバージョン情報が配信情報11bに登録されているパッチ識別情報の示すバージョン情報と同一又は古い場合、配信済みと判断される。
【0070】
パッチ識別情報14の示すバージョン情報が配信情報11bに登録されているパッチ識別情報の示すバージョン情報と同一又は古い場合、ステップS7において、配信済み確認部8は、配信要求元にエラーを返し、処理を終了する。
【0071】
一方、パッチ識別情報14の示すバージョン情報が配信情報11bに登録されているパッチ識別情報の示すバージョン情報より新しい場合、ステップS8において、配信済み確認部8は、パッチ識別情報14とソフトウェア識別情報15とをグループ管理部9に提供する。
【0072】
また、ステップS9において、配信済み確認部8は、パッチ識別情報14を配信情報11bに登録する。
【0073】
ステップS10において、グループ管理部9は、配信済み確認部8からパッチ識別情報14とソフトウェア識別情報15とを受け付けると、グループ情報11cを参照し、ソフトウェア識別情報15に対応するマルチキャストアドレス情報18を取得する。ソフトウェア識別情報15に対応するマルチキャストアドレス情報18は、マルチキャスト配信先となる。マルチキャストグループとしてローカルサイト内のみを対象とする場合には、224.0.0.1から224.0.0.255までのアドレスがマルチキャストアドレス情報で指定される必要があり、インターネット全体をマルチキャストグループとする場合には224.0.1.0から238.255.255.255までのアドレスがマルチキャストアドレス情報で指定される必要がある。
【0074】
ステップS11において、グループ管理部9は、パッチ識別情報14とソフトウェア識別情報15とマルチキャストアドレス情報18を配信部10に提供する。
【0075】
ステップS12において、配信部10は、グループ管理部9からパッチ識別情報14とソフトウェア識別情報15とマルチキャストアドレス情報18を受け付けると、パッチ情報11dを参照し、パッチ識別情報14に対応するパッチ12を取得する。
【0076】
ステップS13において、配信部10は、パッチ12とパッチ識別情報14及びソフトウェア識別情報15について、マルチキャストアドレス情報18の示すマルチキャストグループに対するマルチキャスト配信を実行する。なお、配信部10は、パッチ12、パッチ識別情報14、ソフトウェア識別情報15以外のコンテンツについて、マルチキャストアドレス情報18の示すマルチキャストグループに対するマルチキャスト配信を実行してもよい。
【0077】
なお、上記ステップS9は、上記ステップS6の後であればいずれの時点で実行してもよい。
【0078】
図9は、本実施の形態に係るクライアント31の具体的構成例を示すブロック図である。なお、他のクライアント32〜3nの構成例についても同様である。
【0079】
クライアント31は、サーバ2からネットワーク4経由でパッチ5、パッチ識別情報14、ソフトウェア識別情報15等のコンテンツを受信し、他のクライアント32〜3nのいずれかとの間でコンテンツの送信又は受信を行う。なお、本実施の形態では、クライアント31とクライアント32とが同一のマルチキャストグループに属する場合について説明する。
【0080】
クライアント31は、記録媒体19に記録されているプログラム19aを読み込み、実行することにより、マルチキャスト受信部20、受信確認部21、バージョン管理部22、パッチ処理部23、通信先取得部24、通信許可部25、認証部26、バージョン比較部27、コンテンツ通信部28、P2P通信部41としての機能を実現する。クライアント31は、記録部29を具備する。なお、本実施の形態では、記録部29はクライアント31に内蔵されているが、例えばクライアント31に外付けの記録装置であってもよい。また、クライアント31はネットワーク4経由で記録部29をアクセスするとしてもよい。
【0081】
記録部29は、バージョン管理情報29a、パッチ情報29b、ソフトウェア管理情報29c、通信許可情報29d、グループ管理情報29eを記録する。
【0082】
バージョン管理情報29aは、図10に示すように、クライアント31に保持されているソフトウェアのソフトウェア識別情報と、クライアント31に受信されそのソフトウェアの修正処理に用いられたパッチのパッチ識別情報とを対応付けた情報である。図10の例では、ソフトウェア識別情報15とパッチ識別情報16とが対応付けされている。
【0083】
パッチ情報29bは、クライアント31に保持されているパッチとパッチ識別情報とを関係付けた情報であり、例えば上記図6と同様の形式で情報が記録される。
【0084】
ソフトウェア管理情報29cは、図11に示すように、クライアント31に保持されているソフトウェアとソフトウェア識別情報とを関係付けた情報である。この図11の例では、ソフトウェア識別情報15とソフトウェア40とが対応付けされている。
【0085】
通信許可情報29dは、クライアント31が他のクライアントとの間でP2P通信を行った場合に、当該クライアント31がどのクライアントと通信を行い、どのようなコンテンツを送受信したかを表すログなどを含む情報である。
【0086】
本実施の形態では、通信許可情報29dは、クライアント間通信の通信先として決定された通信先クライアントの識別情報と通信開始時間と通信終了時間を含むとする。この通信許可情報29dを参照することにより、クライアント31が他のクライアント32〜3nとの間で通信中か否かを判断可能である。
【0087】
グループ管理情報29eは、図12に示すように、クライアント31に保持されているソフトウェア識別情報と、このソフトウェア識別情報の示すソフトウェアに関するパッチを送信するサーバのアドレス情報と、このソフトウェア識別情報の示すソフトウェアから定まるクライアント31の属するマルチキャストグループのグループ識別情報とを関係付けた情報である。
【0088】
この図12では、ソフトウェア識別情報15とサーバアドレス情報42とグループ識別情報43とが対応付けされている。
【0089】
マルチキャスト受信部20は、記録部29に記録されているグループ管理情報29eを参照し、マルチキャスト配信においてクライアント31の属するマルチキャストグループを示すグループ識別情報43とこのマルチキャスト配信を行うサーバ2のアドレス情報42とを取得する。
【0090】
マルチキャスト受信部20は、記録部29に記録されているグループ管理情報29eを参照し、グループ識別情報43の示すマルチキャストグループに属するために、サーバアドレス情報42の示すサーバ2にIGMP Joinメッセージを送信する。
【0091】
クライアント31からサーバ2までの途中経路にあるネットワーク4上のルータ(図示せず)は、IGMP Joinメッセージを理解する。そして、ルータは、IGMP Joinメッセージを受信したポートに接続されているネットワークが、このルータ内に保持されておりマルチキャストグループを登録するテーブルに登録されていなければ、そのIGMP Joinメッセージを受信したポートに接続されているネットワークの情報をテーブル内に登録する。
【0092】
これにより,サーバ2とクライアント31との間でマルチキャスト配信を実行するための通信経路が確保される。
【0093】
サーバ2からマルチキャストグループに対して送信されたコンテンツは、この処理によって確保された経路を通る。ルータは、受信したコンテンツをコピーして各登録ポートから送信する。これにより、同一のマルチキャストグループに属するクライアントに向けて、コンテンツのマルチキャスト配信が実行される。なお、マルチキャスト配信ではUDP(User Datagram Protocol)により通信が行われる。
【0094】
マルチキャスト受信部20は、サーバ2からマルチキャスト配信を用いて送信されたパッチ12、パッチ識別情報14、ソフトウェア識別情報15等のコンテンツを受信し、受信確認部21に提供する。
【0095】
受信確認部21は、マルチキャスト受信部20から受け付けたパッチ12、パッチ識別情報14、ソフトウェア識別情報15の完全性を判断する。
【0096】
パッチ12、パッチ識別情報14、ソフトウェア識別情報15が不完全の場合、受信確認部21は、受け付けたパッチ12、パッチ識別情報14、ソフトウェア識別情報15を破棄する。
【0097】
一方、パッチ12、パッチ識別情報14、ソフトウェア識別情報15が完全な場合、受信確認部21は、受け付けたパッチ12、パッチ識別情報14、ソフトウェア識別情報15をバージョン管理部22に提供する。
【0098】
バージョン管理部22は、受信確認部21からパッチ12、パッチ識別情報14、ソフトウェア識別情報15を受け付けた場合、記録部29に記録されているバージョン管理情報29aを参照する。
【0099】
バージョン管理部22は、サーバ2から受信したパッチ識別情報14に含まれているパッチ名と同じパッチ名を含み、パッチ識別情報14に含まれているバージョン情報より新しい又は同じバージョン情報を含むパッチ識別情報がバージョン管理情報29aに登録されているか判断する。すなわち、バージョン管理部22は、サーバ2から受信したパッチ12より新しい又は同じバージョンのパッチを受信済みか否か判断する。
【0100】
パッチ識別情報14より新しいバージョン情報又は同じバージョン情報のパッチ識別情報がバージョン管理情報29aに登録されている場合、バージョン管理部22は、パッチ12、パッチ識別情報14、ソフトウェア識別情報15を破棄する。
【0101】
一方、パッチ識別情報14に含まれているバージョン情報がバージョン管理情報29aに登録されているパッチ識別情報のバージョン情報よりも新しい場合、バージョン管理部22は、パッチ識別情報14の示すパッチ12は未受信であると判断し、パッチ識別情報14とソフトウェア識別情報15とを対応付けてバージョン管理情報29aに登録し、パッチ12とパッチ識別情報14とを対応付けてパッチ情報29bに登録し、パッチ識別情報14とソフトウェア識別情報15とをパッチ処理部23に提供する。
【0102】
パッチ処理部23は、バージョン管理部22又はコンテンツ通信部28からパッチ識別情報14とソフトウェア識別情報15とを受け付けた場合、パッチ情報29bからパッチ識別情報14に対応する最新バージョンのパッチ12を取得し、ソフトウェア管理情報29cからソフトウェア識別情報15に対応するソフトウェア40を取得し、パッチ12を用いてソフトウェア40を修正し、修正前のソフトウェア40に代えて修正後のソフトウェア40をソフトウェア管理部29cに登録する。
【0103】
通信先決定サーバ44は、各クライアント31〜3nの起動時に、各クライアント31〜3nの登録を行う。
【0104】
通信先決定サーバ44は、各クライアント31〜3nの保持するソフトウェアを示すソフトウェア識別情報を各クライアント31〜3nから取得する。
【0105】
通信先決定サーバ44は、各クライアント31〜3nの中から共通のソフトウェアを保持するクライアントの中からP2P通信を行うクライアントを決定し、P2P通信を行うと決定された各クライアントに対して通信先を提供する。なお、本実施の形態では、通信を行うクライアントとしてとしてクライアント31が決定され、このクライアント31の通信先としてクライアント32が決定された場合について説明する。
【0106】
また、通信先決定サーバ44は、登録したクライアントから一定期間経過してもアクセスがない場合、このクライアントは停止しているものと判断し、登録を解除する。
【0107】
クライアント31のP2P通信部41は、他のクライアント32〜3nとの間においてP2P通信を行い、各種コンテンツを送受信する。
【0108】
通信先取得部24は、クライアント31が起動した場合に、通信先決定サーバ44への登録を行う。
【0109】
また、通信先取得部24は、記録部29に記録されているソフトウェア管理情報29cを参照し、一定期間経過する度に、クライアント31に保持されているソフトウェアのソフトウェア識別情報を通信先決定サーバ44に提供する。
【0110】
通信先取得部24は、通信先決定サーバ44から通信先のクライアント32の指定を受け付けた場合、通信先のクライアント32の指定を通信許可部25に提供する。
【0111】
通信許可部25は、通信先取得部24から通信先のクライアント32の指定を受け付けた場合、P2P通信部41経由で通信先のクライアント32にアクセスし、通信先のクライアント32が他のクライアント33〜3nと通信中か否か判断する。
【0112】
通信先のクライアント32が他のクライアントと通信中でない場合、通信許可部25は、通信先のクライアント32の指定を認証部26に提供する。通信先のクライアント32が通信中の場合には、処理を終了する。なお、通信先のクライアント32が通信中の場合には、処理を待ち状態としてもよい。
【0113】
認証部26は、通信許可部25から通信先のクライアント32の指定を受け付けた場合、P2P通信部41経由で通信先のクライアント32にアクセスし、相互認証を行う。
【0114】
認証が正当に行われた場合、認証部26は、通信開始時間を記録部29の通信許可情報29dに登録するとともに、通信先のクライアント32の指定をバージョン比較部27に提供する。認証が正当に行われなかった場合、処理を中止する。
【0115】
バージョン比較部27は、認証部26から通信先のクライアント32の指定を受け付けた場合、記録部29に記録されているバージョン管理情報29aを参照するとともに、P2P通信部41経由で通信先のクライアント32にアクセスしてクライアント32のバージョン管理情報29aを取得する。これにより、比較対象の2つのバージョン管理情報29aが取得される。
【0116】
そして、バージョン比較部27は、クライアント31のバージョン管理情報29aと通信先のクライアント32のバージョン管理情報29aとを比較し、比較結果と通信先のクライアント32の指定とをコンテンツ通信部28に提供する。
【0117】
クライアント31の保持するパッチ12の方が通信先のクライアント32の保持するパッチよりも新しい場合、コンテンツ通信部28は、保持するパッチ12とパッチ識別情報14とソフトウェア識別情報15とをP2P通信部41経由で通信先のクライアント32に提供する。
【0118】
クライアント31の保持するパッチ12の方が通信先のクライアント32の保持するパッチよりも古い場合、コンテンツ通信部28は、P2P通信部41経由で通信先のクライアント32から通信先のクライアント32の保持するパッチとパッチ識別情報とソフトウェア識別情報とを受け付ける。そして、コンテンツ通信部28は、通信先のクライアント32から受け付けたパッチとパッチ識別情報とソフトウェア識別情報とに基づいてバージョン管理情報29a、パッチ情報29bへの登録を行い、通信先のクライアント32から受け付けたパッチ識別情報14とソフトウェア識別情報15とをパッチ処理部23に提供する。
【0119】
また、コンテンツ通信部28は、記録部29に記録されている通信許可情報29dに通信終了時間を登録する。
【0120】
図13は、本実施の形態に係るクライアント31がサーバ2からマルチキャスト配信されたコンテンツを受信した場合の処理の一例を示すフローチャートである。
【0121】
ステップT1において、マルチキャスト受信部20は、記録部29に記録されているグループ管理情報29eを参照し、マルチキャスト配信においてクライアント31の属するマルチキャストグループを示すグループ識別情報43とこのマルチキャストグループに対してマルチキャスト配信を実行するサーバ2のアドレス情報42とを認識する。
【0122】
ステップT2において、マルチキャスト受信部20は、グループ識別情報43の示すマルチキャストグループに属するために、アドレス情報42の示すサーバ2にIGMP Joinメッセージを送信する。
【0123】
ステップT3において、マルチキャスト受信部20は、サーバ2からマルチキャスト配信を用いて送信されたパッチ12、パッチ識別情報14、ソフトウェア識別情報15等のコンテンツを受信する。
【0124】
ステップT4において、受信確認部21は、マルチキャスト受信部20から受け付けたパッチ12、パッチ識別情報14、ソフトウェア識別情報15の完全性を判断する。
【0125】
受信確認部21による判断結果が不完全を示す場合、ステップT5において、受信確認部21は、受け付けたパッチ12、パッチ識別情報14、ソフトウェア識別情報15を破棄し、処理を終了する。
【0126】
一方、受信確認部21による判断結果が完全を示す場合、ステップT6において、バージョン管理部22は、記録部29に記録されているバージョン管理情報29aを参照する。
【0127】
ステップT7において、バージョン管理部22は、サーバ2から受信したパッチ12のバージョンが新しいか判断する。
【0128】
サーバ2から受信したパッチ12のバージョンが新しくない場合、ステップT8において、バージョン管理部22は、パッチ12、パッチ識別情報14、ソフトウェア識別情報15を破棄し、処理を終了する。
【0129】
一方、サーバ2から受信したパッチ12のバージョンが新しい場合、ステップT9において、バージョン管理部22は、パッチ識別情報14とソフトウェア識別情報15とを対応付けてバージョン管理情報29aに登録するとともに、パッチ12とパッチ識別情報14とを対応付けてパッチ情報29bに登録する。
【0130】
ステップT10において、パッチ処理部23は、最新バージョンのパッチ12を用いてソフトウェア40を修正し、修正前のソフトウェア40に代えて修正後のソフトウェア40をソフトウェア管理情報29cに登録する。
【0131】
図14及び図15は、本実施の形態に係るクライアント31と他のクライアント32によってP2P通信によりコンテンツを送受信する処理の一例を示すフローチャートである。
【0132】
ステップU1において、通信先取得部24は、クライアント31が起動した場合に、通信先決定サーバ44への登録を行う。
【0133】
ステップU2において、通信先取得部24は、一定時間経過したか判断する。
【0134】
ステップU3において、通信先取得部24は、一定時間経過した場合、通信先決定サーバ44にアクセスし、例えばソフトウェア管理情報29cなどの記録部29の情報を提供する。一定時間経過前の場合、待ち状態となる。
【0135】
ステップU4において、通信先取得部24は、通信先決定サーバ44から通信先のクライアント32の指定を受け付ける。
【0136】
ステップU5において、通信許可部25は、P2P通信部41経由で通信先のクライアント32にアクセスし、通信先のクライアント32が他のクライアント33〜3nと通信中か否か判断する。
【0137】
通信先のクライアント32が通信中の場合、通信許可部25は、処理を終了するか待ち状態とする。
【0138】
通信先のクライアント32が通信中でない場合、ステップU6において、認証部26は、P2P通信部41経由で通信先のクライアント32にアクセスし、相互認証を行う。
【0139】
認証が正当に行われなかった場合、認証部26は、処理を中止する。
【0140】
認証が正当に行われた場合、ステップU7において、認証部26は、通信開始時間を記録部29の通信許可情報29dに登録する。
【0141】
ステップU8において、バージョン比較部27は、記録部29に記録されているバージョン管理情報29aを参照するとともに、P2P通信部41経由で通信先のクライアント32にアクセスし、比較対象となるクライアント31のバージョン管理情報29aと通信先のクライアント32のバージョン管理情報29aとを取得する。
【0142】
ステップU9において、バージョン比較部27は、クライアント31のバージョン管理情報29aと通信先のクライアント32のバージョン管理情報29aとを比較する。
【0143】
クライアント31の保持するパッチ12の方が通信先のクライアント32の保持するパッチよりも新しい場合、ステップU10において、コンテンツ通信部28は、パッチ12とパッチ識別情報14とソフトウェア識別情報15とをP2P通信部41経由で通信先のクライアント32に提供する。
【0144】
ステップU11において、コンテンツ通信部28は、記録部29に記録されている通信許可情報29dに通信終了時間を登録する。
【0145】
クライアント31の保持するパッチ12の方が通信先のクライアント32の保持するパッチよりも古い場合、ステップU12において、コンテンツ通信部28は、通信先のクライアント32の保持するパッチとパッチ識別情報とソフトウェア識別情報とをP2P通信部41経由で通信先のクライアント32から受け付け、記録部29に記録する。
【0146】
ステップU13において、パッチ処理部23は、最新バージョンのパッチを用いてソフトウェアを修正し、修正前のソフトウェアに代えて修正後のソフトウェアをソフトウェア管理情報29cに登録する。
【0147】
ステップU14において、コンテンツ通信部28は、記録部29に記録されている通信許可情報29dに通信終了時間を登録する。
【0148】
なお、ステップU13,14は、逆の順序で実行してもよく、並列に実行してもよい。
【0149】
図16は、通信システム1の連携動作の一例を示すシーケンス図である。この図16では、クライアント間のP2P通信の通信先を決定する場合に、通信先決定サーバ44が利用される。
【0150】
また、この図16では、サーバ2からクライアント31,32に対してパッチ等のコンテンツが送信され、その後クライアント31からクライアント32に対してパッチ等のコンテンツが送信される場合を例として示している。
【0151】
通信システム1によるコンテンツの送信は、マルチキャスト配信を用いた送信が行われるマルチキャスト配信段階と、クライアント間でP2P通信を用いた送信が行われるクライアント間通信段階とからなる。
【0152】
まず、上記図16におけるマルチキャスト配信段階について説明する。
【0153】
サーバ2の要求処理部7は、配信要求13に対するオプション解析と配信対象のパッチを示すパッチ識別情報14の認識とを実行する。
【0154】
また、要求処理部7は、ソフトウェア情報11aを参照し、配信要求13で指定されたパッチ識別情報14の示すパッチ12が自サーバ2の配信対象かを確認する。
【0155】
配信要求13で指定されたパッチ識別情報14がソフトウェア情報11aに登録されておらず、自サーバ2による配信対象でない場合、要求処理部7は、配信要求13に対してエラーを返し、処理を終了する。
【0156】
配信済み確認部8は、配信情報11bを参照し、配信要求13で指定されたパッチ識別情報14が登録されているか判断する。
【0157】
配信情報11bにパッチ識別情報14が登録されている場合、配信済み確認部8は、配信要求13で指定されたパッチ識別情報14の示すパッチ12は配信済みであると判断し、配信要求元にエラーを返し、処理を終了する。
【0158】
一方、配信情報11bにパッチ識別情報14が登録されていない場合、配信済み確認部8は、配信要求13で指定されたパッチ識別情報14の示すパッチ12は未配信であると判断し、グループ管理部9に処理を移す。
【0159】
グループ管理部9は、グループ情報11cを参照し、配信対象のパッチ12によって修正されるソフトウェアを保持するクライアント31,32の属するマルチキャストグループを示すマルチキャストアドレス情報18を取得する。
【0160】
配信部10は、パッチ情報11dを参照し、配信要求13で指定されたパッチ識別情報14に対応するパッチ12を取得する。
【0161】
そして、配信部10は、パッチ12、パッチ識別情報14、ソフトウェア識別情報15等のコンテンツを、マルチキャストアドレス情報18の示すマルチキャストグループに属するクライアント31,32に対して、マルチキャスト配信を用いて送信する。
【0162】
上記のようなマルチキャスト配信の実行前において、クライアント31、32のマルチキャスト受信部20は、マルチキャスト配信に対応するための前処理を実行する。
【0163】
マルチキャスト配信の実行後、クライアント31,32のマルチキャスト受信部20は、サーバ2から送信されたコンテンツを受信する。
【0164】
クライアント31,32の受信確認部21は、受信したコンテンツの完全性を確認する。
【0165】
この図16の例では、サーバ2からクライアント31に受信されたコンテンツは完全であったが、サーバ2からクライアント32に受信されたコンテンツは不完全であったとする。
【0166】
クライアント31のバージョン管理部22は、バージョン管理情報29aを参照し、受信したコンテンツのバージョンとバージョン管理情報29aに登録されているバージョンとを比較し、受信したコンテンツが新バージョンか判断する。
【0167】
クライアント31のバージョン管理部22は、受信したコンテンツが新バージョンでない場合、処理をマルチキャスト配信の待ち受け状態に戻す。
【0168】
バージョン管理部22は、受信したコンテンツが新バージョンの場合、受信したコンテンツを記録部29に登録する。
【0169】
パッチ処理部23は、受信したコンテンツに基づいて、ソフトウェアの修正を行う。
【0170】
一方、クライアント32の受信確認部21は、受信したコンテンツが不完全の場合には、受信したコンテンツを破棄する。
【0171】
次に、上記図16におけるクライアント間通信段階について説明する。
【0172】
クライアント通信段階において、各クライアント31,32は、同一のマルチキャストグループに属する他のクライアントとの間でコンテンツを共有し、更新する。
【0173】
クライアント31,32間で共有されるコンテンツはサーバ2から各クライアント31,32にマルチキャスト配信を用いて送信されたコンテンツである。
【0174】
上記図16において、クライアント32では、サーバ2から受信したコンテンツが完全でないため、破棄されている。したがって、同じマルチキャストグループに属するクライアント31,32の中に、新バージョンのコンテンツを保持しているクライアント31と保持していないクライアント32とが混在している。
【0175】
クライアント間通信段階では、マルチキャスト配信により受信したコンテンツを保持するクライアント31と保持しないクライアント32との間でコンテンツが送受信される。
【0176】
クライアント31,32の通信先取得部24は、起動した段階で通信先決定サーバ44にアクセスする。
【0177】
通信先決定サーバ44は、クライアント31,32からのアクセスに応じてクライアント31,32の登録を行う。
【0178】
その後、クライアント31,32の通信先取得部24は、一定時間経過する毎に、通信先決定サーバ44にアクセスして通信先のクライアントの指定(通信先情報)を要求し、通信先のクライアントの指定を取得する。
【0179】
通信先決定サーバ44は、一定時間経過後においても通信先のクライアントの指定を要求しないクライアントについては停止していると判断し、登録されている情報を消去する。
【0180】
ここで、この図16では、通信先決定サーバ44は、クライアント31からクライアント32にコンテンツを提供することを決定したとする。クライアント31の通信先取得部24は、通信先決定サーバ44に接続し、通信先のクライアント32の指定を取得する。
【0181】
クライアント31は、取得した通信先のクライアント32の指定に基づいて、通信先のクライアント32への接続を要求する。
【0182】
クライアント31からクライアント32への接続は、例えば次の処理にしたがって行われる。
【0183】
まず、クライアント31の通信許可部25は、P2P通信部41を用いて、通信先のクライアント32に接続要求を送信する。
【0184】
接続要求を受信した通信先のクライアント32の通信許可部25は、接続要求を受け付け、クライアント32の記録部29に記録されている通信許可情報29dを参照し、通信先のクライアント32が他のクライアント間で通信を行っていないか確認する。
【0185】
通信先のクライアント32が通信を行っている場合、通信先のクライアント32の通信許可部25は、P2P通信部41を用いて、接続拒否メッセージをクライアント31に返す。
【0186】
通信先のクライアント32が通信を行っていない場合、クライアント31の認証部26は、P2P通信部41を用いて、通信先のクライアント32の認証部26と連携して相互に認証を行い、正当な通信相手であるか確認する。
【0187】
各クライアント31,32の認証部26は、例えばグループ署名を用いて各クライアント31,32の属するグループを確認する。クライアント31の認証部26は、通信先のクライアント32の所属するグループについても確認を行う。
【0188】
認証が正しく行われた場合、通信先のクライアント32の認証部26は、P2P通信部41を用いて、通信先のクライアント32の通信許可情報29dに、クライアント31の情報と通信開始時間を登録し、クライアント31に接続確立の応答メッセージを送信する。
【0189】
クライアント31の認証部26は、応答メッセージを受け付けた場合に、通信先のクライアント32の情報と通信開始時間をクライアント31の通信許可情報29dに登録する。
【0190】
接続が確立した場合、クライアント31のバージョン比較部27は、P2P通信部41を用いて、通信先のクライアント32のバージョン比較部27と連携し、クライアント31,32に保持されているパッチのバージョン情報を確認する。
【0191】
例えば、クライアント31のバージョン比較部27は、クライアント31のバージョン管理情報29aを通信先のクライアント32のバージョン比較部27に提供する。
【0192】
通信先のクライアント32のバージョン比較部27は、受け付けたクライアント31のバージョン管理情報29aを、通信先のクライアント32のバージョン管理情報29aと比較する。
【0193】
クライアント31のバージョンの方が通信先のクライアント32のバージョンより新しい場合、通信先のクライアント32のバージョン比較部27は、受信希望メッセージをクライアント31に送信する。
【0194】
クライアント31のバージョンの方が通信先のクライアント32のバージョンより古い場合、通信先のクライアント32のバージョン比較部27は、送信希望メッセージをクライアント31に送信する。
【0195】
バージョンが同じ場合には、通信先のクライアント32のバージョン比較部27は、同じバージョンである旨のメッセージをクライアント31に送信する。
【0196】
通信先のクライアント32からクライアント31が受信希望メッセージを受信した場合、クライアント31のコンテンツ通信部28は、記録部29に記録されているパッチ、パッチ識別情報、ソフトウェア識別情報等のコンテンツを取得し、P2P通信部41を用いて通信先のクライアント32に送信し、P2P通信を終了し、通信許可情報29dに通信終了時間を登録する。
【0197】
通信先のクライアント32からクライアント31が送信希望メッセージを受信した場合、クライアント31のコンテンツ通信部28は、通信先のクライアント32のコンテンツ通信部28から提供されたコンテンツをクライアント31の記録部29に記録し、P2P通信を終了し、通信許可情報29dに通信終了時間を登録する。
【0198】
通信先のクライアント32からクライアント31が同じバージョンである旨のメッセージを受信した場合、クライアント31のコンテンツ通信部28は、P2P通信を終了し、通信許可情報29dに通信終了時間を登録する。
【0199】
上記クライアント31,32間で実行されるP2P通信では、TCP通信が利用されるため、データの完全性は保証される。
【0200】
以上説明した本実施の形態に係る通信システム1では、まずマルチキャスト配信を用いてサーバ2からクライアント31〜3nにコンテンツが送信される。
【0201】
これにより、サーバ2から送信される総データ量を削減でき,サービス提供者のサーバ能力増強に関する労力とコストを抑制できる。
【0202】
また、本実施の形態では、マルチキャスト配信を用いたサーバからクライアントへのコンテンツの送信において、全てのクライアントにコンテンツが正常に受信されなかった場合に、コンテンツを正常に受信したクライアントからコンテンツを正常に受信しなかったクライアントへコンテンツが送信され、コンテンツの配信が補完される。
【0203】
これにより、各クライアントは、確実にかつ迅速にコンテンツを取得できる。
【0204】
(第2の実施の形態)
本実施の形態では、上記第1の実施の形態の変形例について説明する。上記第1の実施の形態では、マルチキャスト配信を用いてサーバからクライアントにコンテンツが送信され、その後マルチキャスト配信を補完するためにクライアント間でP2P通信が行われる。
【0205】
しかしながら、本実施の形態では、マルチキャスト配信の代わりにエニーキャスト配信が用いられる。
【0206】
本実施の形態では、エニーキャスト配信を用いてサーバからコンテンツが提供されるクライアントが決定され、サーバからこの決定されたクライアントにコンテンツが提供される。そして、決定されたクライアントから他のクライアントにコンテンツが分配される。
【0207】
なお、本実施の形態では、クライアント間でのコンテンツの送受信には、上記第1の実施の形態と同様の手法にP2P通信が用いられるとする。
【0208】
エニーキャスト配信は、IPv6(Internet Protocol Version 6)で実装された機能である。エニーキャスト配信は、指定されたDNS(Domain Name System)サーバの中から最も負荷の軽いものを選び出すなどの用途に使用される。
【0209】
エニーキャスト配信では、サーバは、エニーキャストグループに属する複数のクライアントに対してエニーキャストリクエストを送信し、このエニーキャストリクエストの応答であるエニーキャストリプライを各クライアントから受信する。
【0210】
そして、サーバは、エニーキャストリプライに基づいて各クライアントの負荷レベルを認識する。
【0211】
図17は、本実施の形態に係る通信システムによるエニーキャスト配信の状態の一例を示す図である。
【0212】
通信システム45では、サーバ46とクライアント471〜47nと通信先決定サーバ44がサブネットワーク48経由で接続される。サブネットワーク48に接続されるクライアント471〜47nは、共通のネットワークアドレスによって表される。
【0213】
通信システム45では、まず、サーバ46からクライアント471〜47nにエニーキャスト配信によってエニーキャストリクエストが送信される。次に、エニーキャストリクエストを受信したクライアント471〜47nからサーバ46にエニーキャストリプライが返信される。
【0214】
次に、サーバ46において各クライアント471〜47nから受信したエニーキャストリプライに基づいて負荷の軽いクライアントが決定される。この図17の例では、クライアント471〜47nのうちクライアント471の負荷が最も軽い場合を示している。
【0215】
そして、サーバ46からこの決定されたクライアント471にパッチ5等を含むコンテンツが送信される。サーバ46からクライアント471にコンテンツが送信される場合、このコンテンツに署名が付されるとしてもよい。
【0216】
なお、本実施の形態においては、クライアント471〜47nの全てがエニーキャスト配信の対象であるエニーキャストグループに属するとして説明を行う。
【0217】
サブネットワーク48は、同一のネットワークアドレス又はブロードキャストアドレスで表され、ルータ又はスイッチによって分断されていない通信網であり、無線・有線を問わない。このサブネットワーク48を経由して、エニーキャストリクエスト、エニーキャストリプライ、コンテンツが送受信される。
【0218】
図18は、本実施の形態に係る通信システム45によるクライアント間通信の状態の一例を示す図である。
【0219】
サーバ46からコンテンツを受信したクライアント471から他のクライアント472〜47nにP2P通信を用いてコンテンツが送信される。このクライアント471〜47n間でのコンテンツの送受信は、上記第1の実施の形態の場合と同様の手法が適用でき、本実施の形態においては説明を省略する。
【0220】
図19は、本実施の形態に係る通信システム45のサーバ46の具体的構成例を示すブロック図である。
【0221】
サーバ46は、記録媒体49に記録されているプログラム49aを読み込み、実行することにより、要求処理部50、アドレス取得部51、リクエスト送信部52、リプライ受信部53、配信先決定部54、配信部55としての機能を実現する。サーバ46は、記録部56を具備する。なお、本実施の形態では、記録部56はサーバ46に内蔵されているが、例えばサーバ46に外付けの記録装置であってもよい。また、サーバ46はサブネットワーク48経由で記録部56をアクセスするとしてもよい。
【0222】
記録部56は、ソフトウェア情報11a、アドレス管理情報56a、リプライ管理情報56b、配信情報56c、パッチ情報11dを記録する。
【0223】
記録部56に記録されているソフトウェア情報11aとパッチ情報11dは、上記第1の実施の形態の場合と同様であるため、説明を省略する。
【0224】
アドレス管理情報56aは、図20に示すように、サーバ46から配信されるパッチによって修正が行われるソフトウェアのソフトウェア識別情報と、このソフトウェアを保持するクライアントの属するエニーキャストグループを示すエニーキャストアドレス情報とを対応付けた情報である。例えば、このアドレス管理情報56aでは、「ウイルス駆除ソフトウェア」という内容のソフトウェア識別情報15に、「3ffe: 2001::2」という内容のエニーキャストアドレス情報57が対応付けされている。図20のアドレス管理情報56aは、ソフトウェア識別情報15で表されるウイルス駆除ソフトウェアは、エニーキャストアドレス情報57で表されるエニーキャストグループに属するクライアントに具備されていることを表している。
【0225】
なお、本実施の形態においても、上記第1の実施の形態と同様の理由により、コンテンツに対して固有のエニーキャストアドレス情報を対応付けなくてもよい場合がある。
【0226】
リプライ管理情報56bは、図21に示すように、リプライ受信部53によってクライアント471〜47nから受信されたエニーキャストリプライ581〜58nを、受信順序を認識可能な状態で保持する情報である。
【0227】
この図21のリプライ管理情報56bでは、クライアント471〜47nの順序で、エニーキャストリプライ581〜58nが受信された場合を示している。
【0228】
エニーキャストリプライ581〜58nには、送信元のクライアント471〜47nのアドレス情報591〜59nが含まれる。
【0229】
配信情報56cは、図22に示すように、パッチ識別情報と、このパッチ識別情報の示すパッチを送信した送信先クライアントのアドレス情報とを対応付けた情報である。この図22の例では、「ウイルス駆除.0102513」という内容のパッチ識別情報14に、「3ffe: 2001::30」という内容のアドレス情報60が対応付けされている。
【0230】
本実施の形態においては、パッチ識別情報とエニーキャストアドレス情報とが、ソフトウェア識別情報を経由して間接的に対応付けされている。
【0231】
要求処理部50は、要求発行元から配信要求61を受け付け、この配信要求61によって指定されたパッチ識別情報14を認識する。
【0232】
また、要求処理部50は、記録部56に記録されているソフトウェア情報11aを参照し、配信要求61によって指定されたパッチ識別情報14がソフトウェア情報11aに登録されているか判断する。
【0233】
パッチ識別情報14がソフトウェア情報11aに登録されていない場合、要求処理部50は、配信要求61で指定されたパッチ識別情報14の示すパッチはこのサーバ46によって配信されるパッチではないと判断し、エラーを配信要求61の発行元に返す。
【0234】
一方、パッチ識別情報14がソフトウェア情報11aに登録されている場合、要求処理部50は、ソフトウェア情報11aからパッチ識別情報14に対応するソフトウェア識別情報15を取得する。そして、要求処理部50は、パッチ識別情報14とソフトウェア識別情報15とをアドレス取得部51に提供する。
【0235】
アドレス取得部51は、要求処理部50からパッチ識別情報14とソフトウェア識別情報15とを受け付けた場合、記録部56に記録されているアドレス管理情報56aを参照する。
【0236】
また、アドレス取得部51は、要求処理部50から受け付けたソフトウェア識別情報15に対応するエニーキャストアドレス情報がアドレス管理情報56aに登録されているか判断する。
【0237】
ソフトウェア識別情報15に対応するエニーキャストアドレス情報がアドレス管理情報56aに登録されていない場合、アドレス取得部51は、配信要求61で指定されたパッチ識別情報14の示すパッチはこのサーバ46によって配信されるパッチではないと判断し、エラーを配信要求61の発行元に返す。
【0238】
ソフトウェア識別情報15に対応するエニーキャストアドレス情報がアドレス管理情報56aに登録されている場合、アドレス取得部51は、配信要求61で指定されたパッチ識別情報14の示すパッチはこのサーバ46によって配信されるパッチであると判断し、ソフトウェア識別情報15に対応するエニーキャストアドレス情報57を取得する。
【0239】
そして、アドレス取得部51は、パッチ識別情報14とソフトウェア識別情報15とエニーキャストアドレス情報57をリクエスト送信部52に提供する。
【0240】
リクエスト送信部52は、パッチ識別情報14とソフトウェア識別情報15とエニーキャストアドレス情報57とをアドレス取得部51から受け付けると、エニーキャストアドレス情報57に基づいてエニーキャストアドレス配信におけるエニーキャストリクエストを送信する。このサーバ46のリクエスト送信部52から送信されるエニーキャストリクエストには、サーバ46を示すアドレス情報が含まれている。
【0241】
リプライ受信部53は、エニーキャストリクエストを受信した各クライアント471〜47nからエニーキャストリプライ581〜58nを受信する。
【0242】
そして、リプライ受信部53は、エニーキャストリプライ581〜58nを受信順序に応じてリプライ管理情報56bに登録し、パッチ識別情報14とソフトウェア識別情報15とを配信先決定部54に提供する。
【0243】
配信先決定部54は、パッチ識別情報14とソフトウェア識別情報15とを受け付けると、リプライ管理情報56bを参照する。
【0244】
配信先決定部54は、リプライ管理情報56bに登録されているエニーキャストリプライ581〜58nのうち最先に受信したエニーキャストリプライ581を取得し、この再選に受信したエニーキャストリプライ581に含まれているアドレス情報591を取得する。
【0245】
そして、配信先決定部54は、記録部56に記録されている配信情報56cを参照し、パッチ識別情報14とアドレス情報591とを対応付けた情報が配信情報56cに登録されているか判断する。
【0246】
パッチ識別情報14とアドレス情報591とを関係付けた情報が配信情報56cに登録されていない場合、配信先決定部54は、取得したアドレス情報591の示すクライアントを配信先と決定し、アドレス情報591とパッチ識別情報14とソフトウェア識別情報15とを配信部55に提供する。すなわち、パッチ識別情報14とアドレス情報591とを関係付けた情報が配信情報56cに登録されていない場合には、このパッチ識別情報14の示すパッチはアドレス情報591の示すクライアント471に未送信であると判断される。
【0247】
一方、パッチ識別情報14とアドレス情報591とを関係付けた情報が配信情報56cに登録されている場合、配信先決定部54は、このパッチ識別情報14の示すパッチはアドレス情報591の示すクライアント471に送信済みであると判断する。すると、配信先決定部54は、リプライ管理情報56bを参照し、先に取得したエニーキャストリプライ581の次に受信したエニーキャストリプライ582を取得し、この新たに取得したエニーキャストリプライ582について上記のエニーキャストリプライ581に対する処理と同様の処理を実行する。これにより、パッチ識別情報14の示すパッチを未送信のクライアントの中から、最先にエニーキャストリプライを返したクライアントが配信先として決定される。
【0248】
なお、本実施の形態では、配信先決定部54は、アドレス情報591の示すクライアント471を配信先として決定したとする。
【0249】
配信部55は、配信先決定部54からパッチ識別情報14とソフトウェア識別情報15とアドレス情報591とを受け付けた場合、まず、アドレス情報591の示すクライアント471とのバージョンの比較を行うために、クライアント471に対して、パッチ識別情報14を送信する。
【0250】
クライアント471は、サーバ46から受信したパッチ識別情報14に含まれているパッチ名と同一のパッチ名を含み、このクライアント471に登録されているパッチ識別情報を検索する。
【0251】
そして、クライアント471は、受信したパッチ識別情報14に含まれているバージョン情報と検索されたパッチ識別情報に含まれているバージョン情報とを比較する。
【0252】
受信したパッチ識別情報14に含まれているバージョン情報の方が新しい場合、クライアント471は、コンテンツ送信要求をサーバ47に返す。
【0253】
受信したパッチ識別情報14に含まれているバージョン情報の方が新しくない場合、クライアント471は、中止要求をサーバ47に返す。
【0254】
配信部55は、配信先決定部54によって決定されたアドレス情報591の示すクライアント471から中止要求を受信した場合、処理を終了する。
【0255】
一方、配信部55は、クライアント471からコンテンツ送信要求を受信した場合、記録部56に登録されているパッチ情報11dを参照し、パッチ識別情報14に対応するパッチ12を取得する。
【0256】
配信部10は、決定されたアドレス情報591の示すクライアント471に対して、パッチ識別情報14、ソフトウェア識別情報15、パッチ12等のコンテンツを送信する。
【0257】
そして、配信部10は、送信されたパッチ12を示すパッチ識別情報14と決定されたアドレス情報591とを対応付けて配信情報56cに登録する。
【0258】
図23及び図24は、本実施の形態に係るサーバ46の動作の一例を示すフローチャートである。
【0259】
ステップV1において、要求処理部50は、配信要求61を受け付ける。
【0260】
例えば、配信要求61として「% anycastsend −t now ウイルス駆除.0102513」が発行される。この配信要求61において「anycastsend」は命令名であり、「−t now」は要求発行時に配信を行う指示を表し、「ウイルス駆除」は配信されるパッチの名前を表す。「.」以下の「0102513」はパッチのバージョン情報を表す。すなわち、この「ウイルス駆除.0102513」は、配信要求61によって指定されたパッチ識別情報14である。
【0261】
ステップV2において、要求処理部50は、配信要求61に基づいて、オプション解析と配信対象のパッチ識別情報14の認識とを実行する。
【0262】
ステップV3において、要求処理部50は、ソフトウェア情報11aを参照し、パッチ識別情報14に対応するソフトウェア識別情報が登録されているか判断する。
【0263】
パッチ識別情報14に対応するソフトウェア識別情報がソフトウェア情報11aに登録されていない場合、ステップV4において、要求処理部50は、配信要求元にエラーを返し、処理を終了する。
【0264】
パッチ識別情報14に対応するソフトウェア識別情報がソフトウェア情報11aに登録されている場合、ステップV5において、要求処理部50は、パッチ識別情報14に対応するソフトウェア識別情報15を取得し、パッチ識別情報14とソフトウェア識別情報15とをアドレス取得部51に提供する。
【0265】
ステップV6において、アドレス取得部51は、アドレス管理情報56aを参照する。
【0266】
ステップV7において、アドレス取得部51は、要求処理部50から受け付けたソフトウェア識別情報15に対応するエニーキャストアドレス情報がアドレス管理情報56aに登録されているか判断する。
【0267】
ソフトウェア識別情報15に対応するエニーキャストアドレス情報がアドレス管理情報56aに登録されていない場合、ステップV8において、アドレス取得部51は、エラーを配信要求61の発行元に返す。
【0268】
ソフトウェア識別情報15に対応するエニーキャストアドレス情報がアドレス管理情報56aに登録されている場合、ステップV9において、アドレス取得部51は、ソフトウェア識別情報15に対応するエニーキャストアドレス情報57を取得する。
【0269】
ステップV10において、リクエスト送信部52は、エニーキャストアドレス情報57に基づいてエニーキャストアドレス配信におけるエニーキャストリクエストを送信する。
【0270】
ステップV11において、リプライ受信部53は、エニーキャストリクエストを受信した各クライアント471〜47nからエニーキャストリプライ581〜58nを受信する。
【0271】
ステップV12において、リプライ受信部53は、エニーキャストリプライ581〜58nを受信順序に応じてリプライ管理情報56bに登録する。
【0272】
ステップV13において、配信先決定部54は、リプライ管理情報56bに登録されているエニーキャストリプライ581〜58nのうち最先に受信したエニーキャストリプライ581を取得し、最先に受信したエニーキャストリプライ581に含まれているアドレス情報591を取得する。
【0273】
ステップV14において、配信先決定部54は、記録部56に記録されている配信情報56cを参照し、配信要求61で指定されたパッチ識別情報14と取得したアドレス情報591とを対応付けた情報が配信情報56cに登録されているか、すなわちアドレス情報591の示すクライアント471にパッチ識別情報14の示すパッチを配信済みか判断する。
【0274】
パッチ識別情報14とアドレス情報591とを対応付けた情報が配信情報56cに登録されていない、すなわち未配信の場合、ステップV15において、配信先決定部54は、取得したアドレス情報591の示すクライアントを配信先と決定する。
【0275】
パッチ識別情報14とアドレス情報591とを対応付けた情報が配信情報56cに登録されている場合、ステップV16において、配信先決定部54は、リプライ管理情報56bを参照し、現在扱っているエニーキャストリプライの次に受信したエニーキャストリプライを取得し、この次のエニーキャストリプライに含まれているアドレス情報を取得する。そして、上記ステップV14の処理を繰り返す。
【0276】
なお、本実施の形態では、アドレス情報591の示すクライアント471が配信先として決定されたとする。
【0277】
ステップV17において、配信部55は、クライアント471側でバージョンの比較を行うために、決定されたアドレス情報591の示すクライアント471に対して、パッチ識別情報14を送信する。
【0278】
ステップV18において、配信部55は、決定されたアドレス情報591の示すクライアント471からコンテンツ送信要求又は中止要求を受信する。
【0279】
クライアント471から中止要求を受信した場合、配信部55は、処理を終了する。
【0280】
一方、クライアント471からコンテンツ送信要求を受信した場合、ステップV19において、配信部55は、記録部56に登録されているパッチ情報11dを参照し、パッチ識別情報14に対応するパッチ12を取得する。
【0281】
ステップV20において、配信部55は、決定されたアドレス情報591の示すクライアントに対して、パッチ識別情報14、ソフトウェア識別情報15、パッチ12等のコンテンツを送信する。
【0282】
ステップV21において、配信部55は、送信されたパッチ12を示すパッチ識別情報14と決定されたアドレス情報591とを対応付けて配信情報56cに登録する。
【0283】
なお、ステップV21は、ステップV18においてコンテンツ送信要求を受信した後であれば、いずれの時点で実行されてもよい。
【0284】
図25は、本実施の形態に係るクライアント471の具体的構成例を示すブロック図である。なお、他のクライアント472〜47nの構成例についても同様である。
【0285】
クライアント471は、記録媒体62に記録されているプログラム62aを読み込み、実行することにより、リクエスト受信部63、リプライ送信部64、バージョン管理部65、コンテンツ受信部66、パッチ処理部67、通信先取得部24、通信許可部25、認証部26、バージョン比較部27、コンテンツ通信部28、P2P通信部41としての機能を実現する。クライアント471は、記録部68を具備する。なお、本実施の形態では、記録部68はクライアント471に内蔵されているが、例えばクライアント471に外付けの記録装置であってもよい。また、クライアント471はサブネットワーク48経由で記録部68をアクセスするとしてもよい。
【0286】
記録部68は、バージョン管理情報68a、パッチ情報29b、ソフトウェア管理情報29c、通信許可情報29dを記録する。
【0287】
バージョン管理情報29aには、図26に示すように、クライアント471に受信されこのクライアント471に保持されているソフトウェアの修正処理に用いられたパッチのパッチ識別情報が登録されている。
【0288】
図26の例では、「ウイルス駆除.0100001」という内容のパッチ識別情報16が登録されている。
【0289】
リクエスト受信部63は、サーバ46からエニーキャストリクエストを受信すると、この受信したエニーキャストリクエストをリプライ送信部64に提供する。
【0290】
リプライ送信部64は、リクエスト受信部63からエニーキャストリクエストを受け付けると、エニーキャストリクエストに含まれているサーバ46のアドレス情報を取得する。
【0291】
そして、リプライ送信部64は、取得したサーバ46のアドレス情報に基づいて、このクライアント471のアドレス情報を含むエニーキャストリプライをサーバ46に送信する。
【0292】
バージョン管理部65は、サーバ46からパッチ識別情報14を受信すると、バージョン管理情報68aを参照する。
【0293】
バージョン管理部65は、バージョン管理情報68aの中から、受信したパッチ識別情報14に含まれているパッチ名と同一のパッチ名を含むパッチ識別情報16を検索する。
【0294】
そして、バージョン管理部65は、受信したパッチ識別情報14に含まれているバージョン情報と検索されたパッチ識別情報16に含まれているバージョン情報とを比較する。
【0295】
バージョン管理部65は、受信したバージョン情報の方が検索したバージョン情報よりも新しい場合、コンテンツ送信要求をサーバ46に返す。
【0296】
一方、バージョン管理部65は、受信したバージョン情報が検索したバージョン情報よりも新しくない場合、中止要求をサーバ46に返す。
【0297】
コンテンツ受信部66は、サーバ46に対してコンテンツ送信要求を返した場合に、サーバ46からパッチ識別情報14、ソフトウェア識別情報15、パッチ12等のコンテンツを受信する。
【0298】
そして、コンテンツ受信部66は、パッチ識別情報14をバージョン管理情報68aに登録し、パッチ12とパッチ識別情報14とを対応付けてパッチ情報29bに登録し、パッチ識別情報14とソフトウェア識別情報15とをパッチ処理部67に提供する。
【0299】
パッチ処理部67は、コンテンツ受信部66又はコンテンツ通信部28からパッチ識別情報14とソフトウェア識別情報15とを受け付けた場合、パッチ情報29bからパッチ識別情報14に対応する最新バージョンのパッチ12を取得し、ソフトウェア管理情報29cからソフトウェア識別情報15に対応するソフトウェア40を取得し、パッチ12を用いてソフトウェア40を修正し、修正前のソフトウェア40に代えて修正後のソフトウェア40をソフトウェア管理情報29cに登録する。
【0300】
図27及び図28は、本実施の形態に係るクライアント471がサーバ46からコンテンツを受信する処理の一例を示すフローチャートである。
【0301】
ステップW1において、リクエスト受信部63は、サーバ46から送信されたエニーキャストリクエストを受信する。
【0302】
ステップW2において、リプライ送信部64は、エニーキャストリクエストに含まれているサーバ46のアドレス情報を取得する。
【0303】
ステップW3において、リプライ送信部64は、取得したサーバ46のアドレス情報に基づいて、このクライアント471のアドレス情報591を含むエニーキャストリプライ581をサーバ46に送信する。
【0304】
ステップW4において、バージョン管理部65は、サーバ46からパッチ識別情報14を受信する。
【0305】
ステップW5において、バージョン管理部65は、バージョン管理情報68aを参照する。
【0306】
ステップW6において、バージョン管理部65は、バージョン管理情報68aの中から、パッチ識別情報14に含まれているパッチ名と同一のパッチ名を含むパッチ識別情報16を検索する。
【0307】
ステップW7において、バージョン管理部65は、受信したパッチ識別情報14に含まれているバージョン情報と検索されたパッチ識別情報16に含まれているバージョン情報とを比較する。
【0308】
受信したバージョン情報の方が検索したバージョン情報よりも新しい場合、ステップW8において、バージョン管理部65は、コンテンツ送信要求をサーバ46に返す。
【0309】
一方、受信したバージョン情報が検索したバージョン情報よりも新しくない場合、ステップW9において、バージョン管理部65は、中止要求をサーバ46に返す。この場合、処理は終了となる。
【0310】
サーバ46に対してコンテンツ送信要求を返した場合、ステップW10において、コンテンツ受信部66は、サーバ46からパッチ識別情報14、ソフトウェア識別情報15、パッチ12等のコンテンツを受信する。
【0311】
ステップW11において、コンテンツ受信部66は、パッチ識別情報14をバージョン管理情報68aに登録するとともに、パッチ12とパッチ識別情報14とを対応付けてパッチ情報29bに登録する。
【0312】
ステップW12において、パッチ処理部67は、最新バージョンのパッチ12を用いてソフトウェア40を修正し、修正前のソフトウェア40に代えて修正後のソフトウェア40をソフトウェア管理情報29cに登録する。
【0313】
以下に、本実施の形態に係る通信システム45の連携動作について説明する。
【0314】
図29は、通信システム45の連携動作の一例を示すシーケンス図である。
【0315】
サーバ46は、クライアント471〜47nに対してエニーキャストリクエストを送信する。
【0316】
各クライアント471〜47nは、サーバ47からのエニーキャストリクエストを受信すると、エニーキャストリプライ581〜58nをサーバ47に返す。
【0317】
サーバ47は、先に受信したエニーキャストリプライの優先度を高くしてコンテンツを送信するクライアントを決定する。この図29では、クライアント471が決定されたとする。
【0318】
サーバ47は、決定されたクライアント471に、配信要求61で指定されたパッチ識別情報14(バージョン情報が送信されればよい)を送信する。
【0319】
クライアント471は、受信したバージョン情報と自己の保持するバージョン情報とを比較する。
【0320】
クライアント471は、比較の結果が新バージョンを表す場合、コンテンツ送信要求をサーバ46に送信する。
【0321】
サーバ36は、クライアント471からコンテンツ送信要求を受信した場合、配信要求61で指定されたコンテンツをクライアント471に送信する。
【0322】
クライアント471は、同一のエニーキャストグループに属する他のクライアント472〜47nにコンテンツを送信する。
【0323】
以上説明した本実施の形態に係る通信システム45では、エニーキャストを用いてサーバ46から特定のクライアント471にコンテンツが配信され、配信されたコンテンツが特定のクライアント471から他のクライアント472〜47nに拡散される。
【0324】
これにより、サーバ46の負荷を軽減するとともにクライアント471〜47nにコンテンツを確実にかつ迅速に受信できる。
【0325】
(第3の実施の形態)
本実施の形態では、上記各実施の形態の変形例について説明する。
【0326】
例えば、上記第2の実施の形態のエニーキャスト配信に代えて、Xcastを用いて多数のネットワークに対して配信を実行するとしてもよい。
【0327】
Xcastとは、小グループ用のマルチキャスト配信である。このXcastでは、ネットワーク内に流されるパケットのヘッダに宛先を示すアドレス情報が複数記述され、ルータを通過する段階において各アドレス情報に対する経路が分岐する場合に、パケットがコピーされ配信される。
【0328】
Xcastで記載されるアドレス情報に多数のネットワークのエニーキャストアドレスを記載すれば、複数のサブネットワークにエニーキャストリクエストを送信することができ、上述したエニーキャスト通信と同様の手法により、各種コンテンツの配信を行うことができる。
【0329】
なお、上記各実施の形態において、通信システム1,45の各構成要素は、プログラムにより実現される部分がハードウェアによって実現されるとしてもよい。
【0330】
上記各実施の形態におけるクライアントは、例えば家庭で使用される電化製品などであってもよい。これにより、ネットワーク経由で通信可能な電化製品の制御プログラムを迅速かつ正確かつ容易に修正できる。
【0331】
上記各実施の形態において、記録部11,29,46,68には、例えばストレージデバイス,メモリデバイス等が利用できる。
【0332】
また、上記各実施の形態に係る通信システム1,45において、各構成要素は同様の動作を実現可能であれば配置を変更させてもよく、また各構成要素を自由に組み合わせてもよく、各構成要素を自由に分割してもよく、いくつかの構成要素を削除してもよい。
【0333】
例えば、記録部11,29,46,68は、複数の記録部に分割してもよい。すなわち、上記各実施の形態については、上記の構成そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
【0334】
【発明の効果】
以上詳記したように本発明においては、送信側の通信装置から複数の受信側の通信装置へのコンテンツの配信を迅速かつ正確に行うことができ、送信側の通信装置の負荷が軽減される。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係る通信システムの構成例を示す図。
【図2】同実施の形態に係る通信システムのサーバの具体的構成例を示すブロック図。
【図3】同実施の形態に係るソフトウェア情報の一例を示す図。
【図4】同実施の形態に係る配信情報の一例を示す図。
【図5】同実施の形態に係るグループ情報の一例を示す図。
【図6】同実施の形態に係るパッチ情報の一例を示す図。
【図7】同実施の形態に係るサーバの動作の前半の一例を示すフローチャート。
【図8】同実施の形態に係るサーバの動作の後半の一例を示すフローチャート。
【図9】同実施の形態に係るクライアントの具体的構成例を示すブロック図。
【図10】同実施の形態に係るバージョン管理情報の一例を示す図。
【図11】同実施の形態に係るソフトウェア管理情報の一例を示す図。
【図12】同実施の形態に係るグループ管理情報の一例を示す図。
【図13】同実施の形態に係るクライアントがサーバからマルチキャスト配信されたコンテンツを受信した後の処理の一例を示すフローチャート。
【図14】同実施の形態に係るクライアント間でP2P通信によりコンテンツを送受信する処理の前半の一例を示すフローチャート。
【図15】同実施の形態に係るクライアント間でP2P通信によりコンテンツを送受信する処理の後半の一例を示すフローチャート。
【図16】同実施の形態に係る通信システムの連携動作の一例を示すシーケンス図。
【図17】本発明の第2の実施の形態に係る通信システムによるエニーキャスト配信の状態の一例を示す図。
【図18】同実施の形態に係る通信システムによるクライアント間通信の状態の一例を示す図。
【図19】同実施の形態に係る通信システムのサーバの具体的構成例を示すブロック図。
【図20】同実施の形態に係るアドレス管理情報の一例を示す図。
【図21】同実施の形態に係るリプライ管理情報の一例を示す図。
【図22】同実施の形態に係る配信情報の一例を示す図。
【図23】同実施の形態に係るサーバの動作の前半の一例を示すフローチャート。
【図24】同実施の形態に係るサーバの動作の後半の一例を示すフローチャート
【図25】同実施の形態に係るクライアントの具体的構成例を示すブロック図。
【図26】同実施の形態に係るバージョン管理情報の一例を示す図。
【図27】同実施の形態に係るクライアントがサーバからコンテンツを受信する処理の前半の一例を示すフローチャート。
【図28】同実施の形態に係るクライアントがサーバからコンテンツを受信する処理の後半の一例を示すフローチャート。
【図29】同実施の形態に係る通信システムの連携動作の一例を示すシーケンス図。
【符号の説明】
1,45…通信システム、2,46…サーバ、31〜3n,471〜47n…クライアント、4…ネットワーク、5,12a,12b…パッチ、6,19,49,62…記録媒体、6a,19a,49a,62a…プログラム、13,61…配信要求、14…パッチ識別情報、15…ソフトウェア識別情報、7,50…要求処理部、8…配信済み確認部、9…グループ管理部、10,55…配信部、11,29,56,68…記録部、11a…ソフトウェア情報、11b,56c…配信情報、11c…グループ情報、11d,29b…パッチ情報、20…マルチキャスト受信部、21…受信確認部、22,65…バージョン管理部、23,67…パッチ処理部、24…通信先取得部、25…通信先許可部、26…認証部、27…バージョン比較部、28…コンテンツ通信部、29a…バージョン管理部、29c…ソフトウェア管理情報、29d…通信許可情報、29e…グループ管理情報、41…P2P通信部、48…サブネットワーク、51…アドレス取得部、52…リクエスト送信部、53…リプライ受信部、54…配信先決定部、56a…アドレス管理情報、56b…リプライ管理情報、63…リクエスト受信部、64…リプライ送信部、66…コンテンツ受信部、68a…バージョン管理情報
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a communication device, a communication system, a program, and a communication method for communicating various contents such as data or programs via a network.
[0002]
[Prior art]
A program or data used for correcting a part of software (including rewriting, conversion, change, etc.) is called a patch. The patch is used for correcting various software such as security software.
[0003]
In general, distribution of patches is performed by a server / client method (hereinafter referred to as “S / C method”). The server holds the patch and distributes the patch to the client that corrects the software.
[0004]
In general patch distribution using the S / C method, the user operates the client to connect to the server, confirms whether the software held by the user can be upgraded, Request a patch from the server.
[0005]
As another patch delivery method using the S / C method, there is a method in which the client automatically confirms the update information of the server, and the client automatically downloads the patch from the server in accordance with the confirmation result.
[0006]
[Patent Document 1]
JP 2003-018213 A
[0007]
[Problems to be solved by the invention]
In the distribution by the conventional S / C method, when the number of clients increases, the load on the server becomes excessive. Therefore, a service provider (including a server administrator) who operates the server needs to increase the processing capacity of the server, which increases management labor and cost.
[0008]
In addition, when the load is concentrated on the server, it becomes difficult for the user to quickly connect to the server and receive a service.
[0009]
When a CD-ROM (Compact Disk-Read Only Memory) in which a patch is recorded is sent from a service provider to a user by a courier service or the like, a delivery fee is required. Further, it is necessary to perform operations such as recording patches on a CD-ROM and reading patches to the client by the user, which increases the work effort of both the service provider and the user.
[0010]
The present invention has been made in view of the above circumstances, and a communication device, a communication system, and a program for reliably and promptly providing content while preventing an overload on the content providing side The purpose is to provide a program.
[0011]
[Means for Solving the Problems]
Specific means taken for realizing the present invention will be described below.
[0012]
1st invention is based on the information which matched the distribution request which designates the content identification information which shows the content of delivery object, the multicast address information which designates the multicast group in multicast delivery, and content identification information, Using the means for acquiring multicast address information corresponding to the content identification information specified in the distribution request and the multicast address information corresponding to the content identification information specified in the distribution request, the content identification information specified in the distribution request It is a communication apparatus provided with the delivery means which performs the multicast delivery of the content to show.
[0013]
According to a second aspect of the present invention, there is provided receiving means for receiving content distributed using multicast distribution, content version information held by another device belonging to the same multicast group, and version information of content received by the receiving means, When the content received by the receiving means is the new version, the content received by the receiving means is provided to another device, and the content received by the receiving means is the old version A communication device including means for receiving content held by another device from another device.
[0014]
According to a third aspect of the present invention, information that associates a means for accepting a distribution request that specifies content identification information indicating content to be distributed, anycast address information that specifies an anycast group in anycast distribution, and content identification information. Based on the above, the anycast address information corresponding to the content identification information specified in the distribution request and the anycast address information corresponding to the content identification information specified in the distribution request are transmitted. Means for receiving anycast replies, destination determining means for determining the destination of the content indicated by the content identification information specified in the distribution request based on the receiving order of the anycast replies, and destination determination To the destination determined by the means. A communication device and means for transmitting the content indicated by the specified content identification information in the request.
[0015]
The fourth invention is the same as means for receiving an anycast request in anycast delivery, means for returning an anycast reply to the sender of the anycast request, and means for receiving content from the sender of the anycast request Means for comparing the version information of the content held by other devices belonging to the anycast group and the version information of the content received by the receiving means, and when the content received by the receiving means is a new version, A communication device that provides content received by the receiving unit to the device, and receives content held by the other device from another device when the content received by the receiving unit is an old version is there.
[0016]
A fifth invention relates to a communication system for transmitting content from a transmission side communication device to a plurality of reception side communication devices. In this communication system, a transmission side communication device performs multicast distribution of content using group address information that designates a multicast group, and a plurality of reception side communication devices include a receiving means for receiving content, and a multicast group. The means for comparing the version information of the content held by the other receiving side communication apparatus to which it belongs and the version information of the content received by the receiving means, and the other receiving side when the content received by the receiving means is a new version Means for providing the content received by the receiving means to the communication device and receiving the content held by the other receiving communication device from the other receiving communication device when the content received by the receiving means is an old version It comprises.
[0017]
A sixth invention relates to a communication system for transmitting content from a transmission side communication device to a plurality of reception side communication devices. In this communication system, the transmission side communication device includes means for receiving a distribution request for specifying content identification information indicating content to be distributed, anycast address information for specifying an anycast group in anycast distribution, and content identification information. Based on the associated information, using means for obtaining anycast address information corresponding to the content identification information specified in the distribution request, and anycast address information corresponding to the content identification information specified in the distribution request, A means for transmitting an anycast request, a means for receiving an anycast reply, and a transmission destination determination means for determining the transmission destination of the content indicated by the content identification information specified in the distribution request based on the reception order of the anycast reply And the destination determination means The transmission destination determined Te, and means for transmitting the content indicated by the specified content identification information in the distribution request. The plurality of receiving side communication devices include means for receiving an anycast request, means for returning an anycast reply, receiving means for receiving content from the transmitting side communication device, and other receiving side communication belonging to the anycast group. The means for comparing the version information of the content held by the device with the version information of the content received by the receiving means, and when the content received by the receiving means is a new version, it is received by another receiving side communication device Means for providing the content received by the means, and accepting the content held by the other receiving side communication device from the other receiving side communication device when the content received by the receiving means is an old version.
[0018]
Each means of the above inventions can be realized by reading a program into a computer. This program may be recorded on a recording medium and applied to a computer.
[0019]
Further, the content communication method is executed by the above inventions.
[0020]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the following, a case where content is provided from a server to a client will be described as an example.
[0021]
Here, the contents include multimedia contents, programs, document data, policy data, patches, setting data, log information, and the like.
[0022]
In the present embodiment, a case where content is a patch will be described as an example. However, the content distributed from the server to the client is not limited to the patch, and may be various programs or data such as client setting data and policy data.
[0023]
In the following drawings, the same elements are denoted by the same reference numerals, description thereof is omitted, and only different portions will be described in detail.
[0024]
(First embodiment)
In the present embodiment, on the network, a patch is transmitted from the server to the client using multicast distribution, and then the client that has not received the patch receives a peer-to-peer (hereinafter referred to as “P2P”). ) The patch is transmitted using communication, and the patch is shared between clients.
[0025]
In multicast distribution, content transmitted from a server to a network is copied as necessary by a router in the network and received by a plurality of clients.
[0026]
FIG. 1 is a diagram illustrating a configuration example of a communication system according to the present embodiment.
[0027]
In the communication system 1, a server (transmission side communication device) 2 and clients (reception side communication devices) 31 to 3 n are connected via a network 4.
[0028]
The network 4 is a communication network that connects the server 2 and the clients 31 to 3n. As the network 4, for example, various communication media such as the Internet, a telephone line network, a wireless LAN (Local Area Network), etc., to which various contents are transmitted and received and various devices are connected are used.
[0029]
In the communication system 1, first, the patch 5 is transmitted from the server 2 to the clients 31 to 3n using multicast distribution. Next, in the communication system 1, the patch 5 is transmitted from the client that has received the patch 5 to the client that has not received the patch 5 using P2P communication.
[0030]
In FIG. 1, among the clients 31 to 3 n, the clients 31 and 33 to 35 receive the patch 5 from the server 2. Then, the patch 5 is transmitted from the clients 31, 34, 35 that have received the patch 5 to the clients 32, 3n, 36 that have not received the patch 5, respectively.
[0031]
When the patch 5 is transmitted and received between the clients 31 to 3n, the client that has received the patch 5 accesses the communication destination determination server 44 that determines the communication destination, and enters the same multicast group notified from the communication destination determination server 44. P2P communication is performed with other clients to which it belongs.
[0032]
FIG. 2 is a block diagram showing a specific configuration example of the server 2 of the communication system 1 according to the present embodiment.
[0033]
The server 2 transmits the patch 5 via the network 4 to the clients 31 to 3n using multicast distribution.
[0034]
The server 2 reads and executes the program 6a recorded on the recording medium 6, thereby realizing functions as the request processing unit 7, the distribution confirmation unit 8, the group management unit 9, and the distribution unit 10. The server 2 includes a recording unit 11. In the present embodiment, the recording unit 11 is built in the server 2, but may be a recording device external to the server 2, for example. The server 2 may access the recording unit 11 via the network 4.
[0035]
The recording unit 11 records software information 11a, distribution information 11b, group information 11c, and patch information 11d.
[0036]
As shown in FIG. 3, the software information 11a is information in which patch identification information of a patch distributed by the server 2 is associated with software identification information of software modified based on this patch.
[0037]
In the present embodiment, it is assumed that the patch identification information includes a patch name and version information. In the example of FIG. 3, the patch identification information 14 and the software identification information 15 are associated with each other.
[0038]
The distribution information 11b includes patch identification information of patches distributed from the server 2, as shown in FIG. That is, the patch indicated by the patch identification information registered in the distribution information 11b means that transmission has been completed. In the example of FIG. 4, it is shown that the patches indicated by the patch identification information 16 and 17 have been distributed.
[0039]
As shown in FIG. 5, the group information 11c associates software identification information of software that is corrected by a patch distributed by the server 2 with multicast address information indicating a multicast group to which a client having the software belongs. Information.
[0040]
For example, the group information 11c in FIG. 5 indicates that the virus removal software is included in the clients belonging to the multicast group represented by the multicast address information “3ffe: 2001 :: 2” among the clients 31 to 3n. Yes.
[0041]
In the present embodiment, there is a case where unique multicast address information need not be associated with content.
[0042]
For example, a common address information is associated with a plurality of contents, a mechanism capable of identifying each content from the common address information is implemented in an upper layer, and each content is identified from the common address information using this mechanism. May be identified.
[0043]
More specifically, the same multicast address information may be associated with a plurality of contents, and the plurality of contents may be identified by a port number in the transport layer.
[0044]
In a computer network, an application can be identified by a port number of TCP (Transmission Control Protocol) or UDP (User Datagram Protocol). Further, in a computer network, it is possible to group data transmitted continuously with a TCP or UDP port number.
[0045]
When each content is identified using unique address information, the address information increases as the content increases, and the address information may be insufficient. However, as described above, by enabling each content to be identified from common address information in the upper layer, it becomes possible to share the address information among a plurality of contents, and it is possible to prevent a shortage of address information.
[0046]
As shown in FIG. 6, the patch information 11d is information in which a patch distributed by the server 2 is associated with patch identification information for identifying the patch.
[0047]
For example, in the example of FIG. 6, the server 2 distributes the patch 12, and the patch identification information 14 of the patch 12 indicates “virus removal.0102513”. Further, the server 2 distributes the patch 69, and it is indicated that the patch identification information of the patch 69 is “map data. 0301234”.
[0048]
In the present embodiment, patch identification information and multicast address information are indirectly associated with each other via software identification information.
[0049]
The request processing unit 7 receives the distribution request 13 from the request issuer, and recognizes the patch identification information 14 specified by the distribution request 13. Examples of the request issuer include a service provider, another system, and other elements in the server 2.
[0050]
The request processing unit 7 refers to the software information 11a recorded in the recording unit 11 and determines whether the patch identification information 14 specified by the distribution request 13 is registered in the software information 11a.
[0051]
If the patch identification information 14 is not registered in the software information 11a, the request processing unit 7 determines that the patch indicated by the patch identification information 14 specified by the distribution request 13 is not a patch distributed by the server 2, An error is returned to the issuer of the distribution request 13.
[0052]
On the other hand, when the patch identification information 14 is registered in the software information 11a, the request processing unit 7 acquires the software identification information 15 associated with the patch identification information 14 in the software information 11a. Then, the request processing unit 7 provides the patch identification information 14 and the software identification information 15 to the distribution confirmation unit 8.
[0053]
When the distribution confirmation unit 8 receives the patch identification information 14 and the software identification information 15 from the request processing unit 7, the distribution confirmation unit 8 refers to the distribution information 11 b recorded in the recording unit 11 and is newer or the same as the patch identification information 14. It is determined whether the patch identification information of the version information is registered in the distribution information 11b.
[0054]
For example, the distribution confirmation unit 8 includes patch identification information that includes the same patch name as the patch name included in the patch identification information 14 and includes version information that is newer or the same as the version information included in the patch identification information 14. It is determined whether it is registered in the distribution information 11b. For example, whether the version information is new or old is determined based on the magnitude relationship of the version information.
[0055]
When newer version information than the patch identification information 14 or patch identification information of the same version information is registered in the distribution information 11b, the distribution confirmation unit 8 has already distributed the patch indicated by the patch identification information specified in the distribution request. A certain judgment is made and an error is returned to the issuer of the distribution request 13.
[0056]
On the other hand, if the version information included in the patch identification information 14 specified in the distribution request is newer than the version information indicated by the patch identification information registered in the distribution information 11b, the distribution confirmation unit 8 determines the patch identification information. It is determined that the patch indicated by 14 has not been transmitted, and the patch identification information 14 and the software identification information 15 are provided to the group management unit 9 and the patch identification information 14 is registered in the distribution information 11b.
[0057]
When the group management unit 9 receives the patch identification information 14 and the software identification information 15 from the distribution confirmation unit 8, the group management unit 9 refers to the group information 11 c registered in the recording unit 11 and corresponds to the multicast corresponding to the software identification information 15. Address information 18 is acquired. The acquired multicast address information 18 represents a multicast distribution destination.
[0058]
Then, the group management unit 9 provides the patch identification information 14, the software identification information 15, and the multicast address information 18 to the distribution unit 10.
[0059]
The distribution unit 10 issues a command for distributing various contents to the network 4 and issues a command for receiving various contents from the network 4.
[0060]
When the distribution unit 10 receives the patch identification information 14, the software identification information 15, and the multicast address information 18 from the group management unit 9, the distribution unit 10 refers to the patch information 11 d registered in the recording unit 11 and refers to the patch identification information. 14 is obtained.
[0061]
Then, the distribution unit 10 adds the multicast address information 18 and transmits contents such as the patch identification information 14, the software identification information 15, and the patch 12 to the network 4 using multicast distribution.
[0062]
7 and 8 are flowcharts showing an example of the operation (multicast distribution stage) of the server 2 according to the present embodiment.
[0063]
In step S <b> 1, the request processing unit 7 receives the distribution request 13. The distribution request 13 may be issued by an input from the command line by the service provider. The distribution request 13 may be issued by the service provider using a graphical user interface. Further, a command for issuing a distribution request may be executed by the server 2 every elapse of a predetermined time, and the request processing unit 7 may accept the issued distribution request 13.
[0064]
For example, “% multicast-t 3000 virus removal. 0102513” is issued as the distribution request 13. In this distribution request 13, “multicast” is an instruction name, “−t 3000” indicates an instruction to distribute after 3000 seconds, and “virus removal” indicates the name of a patch to be distributed. “0102513” below “.” Represents patch version information. That is, “virus removal.0102513” is the patch identification information 14 specified in the distribution request 13.
[0065]
In step S <b> 2, the request processing unit 7 performs option analysis and recognition of the patch identification information 14 indicating the patch to be transmitted based on the distribution request 13.
[0066]
In step S <b> 3, the request processing unit 7 refers to the software information 11 a and determines whether software identification information corresponding to the patch identification information 14 designated by the distribution request 13 is registered. Based on the presence or absence of registration, it is determined whether or not the patch indicated by the patch identification information 14 specified in the distribution request 13 is a patch to be distributed by the server 2.
[0067]
If the software identification information corresponding to the patch identification information 14 is not registered in the software information 11a, in step S4, the request processing unit 7 returns an error to the distribution request source and ends the process.
[0068]
When the software identification information corresponding to the patch identification information 14 is registered in the software information 11a, the software identification information 15 corresponding to the patch identification information 14 is acquired in step S5, and the patch identification information 14, the software identification information 15, Is provided to the delivery confirmation unit 8.
[0069]
In step S <b> 6, when the distribution confirmation unit 8 receives the patch identification information 14 and the software identification information 15 from the request processing unit 7, the distribution confirmation unit 8 refers to the distribution information 11 b and indicates the patch identification information 14 specified by the distribution request 13. It is determined whether the version information is newer than the version information indicated by the patch identification information registered in the distribution information 11b. When the version information indicated by the patch identification information 14 is newer than the version information indicated by the patch identification information registered in the distribution information 11b, it is determined that the distribution has not been performed. On the other hand, if the version information indicated by the patch identification information 14 is the same as or older than the version information indicated by the patch identification information registered in the distribution information 11b, it is determined that the distribution has been completed.
[0070]
If the version information indicated by the patch identification information 14 is the same as or older than the version information indicated by the patch identification information registered in the distribution information 11b, the distribution confirmation unit 8 returns an error to the distribution request source in step S7, Exit.
[0071]
On the other hand, if the version information indicated by the patch identification information 14 is newer than the version information indicated by the patch identification information registered in the distribution information 11b, in step S8, the distribution confirmation unit 8 determines that the patch identification information 14 and the software identification information 15 Is provided to the group management unit 9.
[0072]
In step S9, the distribution confirmation unit 8 registers the patch identification information 14 in the distribution information 11b.
[0073]
In step S10, when the group management unit 9 receives the patch identification information 14 and the software identification information 15 from the distribution confirmation unit 8, the group management unit 9 refers to the group information 11c and acquires the multicast address information 18 corresponding to the software identification information 15. To do. The multicast address information 18 corresponding to the software identification information 15 is a multicast distribution destination. When a multicast group is targeted only within the local site, addresses from 224.0.0.1 to 224.0.0.255 need to be specified by multicast address information, and the entire Internet is a multicast group. In this case, addresses from 224.0.1.0 to 238.255.255.255 need to be specified by the multicast address information.
[0074]
In step S <b> 11, the group management unit 9 provides the patch identification information 14, software identification information 15, and multicast address information 18 to the distribution unit 10.
[0075]
In step S12, when receiving the patch identification information 14, the software identification information 15, and the multicast address information 18 from the group management unit 9, the distribution unit 10 refers to the patch information 11d and acquires the patch 12 corresponding to the patch identification information 14. To do.
[0076]
In step S <b> 13, the distribution unit 10 performs multicast distribution for the multicast group indicated by the multicast address information 18 for the patch 12, the patch identification information 14, and the software identification information 15. The distribution unit 10 may execute multicast distribution to the multicast group indicated by the multicast address information 18 for content other than the patch 12, the patch identification information 14, and the software identification information 15.
[0077]
Note that step S9 may be executed at any time after step S6.
[0078]
FIG. 9 is a block diagram showing a specific configuration example of the client 31 according to the present embodiment. The same applies to the configuration examples of the other clients 32 to 3n.
[0079]
The client 31 receives content such as the patch 5, patch identification information 14, and software identification information 15 from the server 2 via the network 4, and transmits or receives content with any of the other clients 32 to 3n. In the present embodiment, a case where the client 31 and the client 32 belong to the same multicast group will be described.
[0080]
The client 31 reads and executes the program 19a recorded in the recording medium 19 to thereby execute the multicast reception unit 20, reception confirmation unit 21, version management unit 22, patch processing unit 23, communication destination acquisition unit 24, communication permission Functions as the unit 25, the authentication unit 26, the version comparison unit 27, the content communication unit 28, and the P2P communication unit 41 are realized. The client 31 includes a recording unit 29. In the present embodiment, the recording unit 29 is built in the client 31, but may be a recording device external to the client 31, for example. The client 31 may access the recording unit 29 via the network 4.
[0081]
The recording unit 29 records version management information 29a, patch information 29b, software management information 29c, communication permission information 29d, and group management information 29e.
[0082]
As shown in FIG. 10, the version management information 29a associates the software identification information of the software held in the client 31 with the patch identification information of the patch received by the client 31 and used for the correction process of the software. Information. In the example of FIG. 10, software identification information 15 and patch identification information 16 are associated with each other.
[0083]
The patch information 29b is information that associates the patch held in the client 31 with the patch identification information. For example, the information is recorded in the same format as in FIG.
[0084]
As shown in FIG. 11, the software management information 29c is information that associates software held in the client 31 with software identification information. In the example of FIG. 11, software identification information 15 and software 40 are associated with each other.
[0085]
The communication permission information 29d is information including a log or the like indicating which client 31 has communicated with and what content has been transmitted / received when the client 31 performs P2P communication with another client. It is.
[0086]
In the present embodiment, it is assumed that the communication permission information 29d includes identification information, a communication start time, and a communication end time of a communication destination client determined as a communication destination for communication between clients. By referring to the communication permission information 29d, it can be determined whether or not the client 31 is communicating with the other clients 32 to 3n.
[0087]
As shown in FIG. 12, the group management information 29e includes software identification information held in the client 31, address information of a server that transmits a patch related to software indicated by the software identification information, and software indicated by the software identification information. Information relating to the group identification information of the multicast group to which the client 31 belongs.
[0088]
In FIG. 12, software identification information 15, server address information 42, and group identification information 43 are associated with each other.
[0089]
The multicast receiving unit 20 refers to the group management information 29e recorded in the recording unit 29, and in the multicast distribution, group identification information 43 indicating the multicast group to which the client 31 belongs, and address information 42 of the server 2 that performs this multicast distribution, To get.
[0090]
The multicast receiving unit 20 refers to the group management information 29e recorded in the recording unit 29, and transmits an IGMP Join message to the server 2 indicated by the server address information 42 in order to belong to the multicast group indicated by the group identification information 43. .
[0091]
A router (not shown) on the network 4 on the way from the client 31 to the server 2 understands the IGMP Join message. Then, if the network connected to the port that received the IGMP Join message is not stored in this router and registered in the table for registering the multicast group, the router sets the port that received the IGMP Join message to the port that received the IGMP Join message. Register connected network information in the table.
[0092]
Thereby, a communication path for executing multicast distribution between the server 2 and the client 31 is secured.
[0093]
The content transmitted from the server 2 to the multicast group passes through the route secured by this process. The router copies the received content and transmits it from each registered port. As a result, multicast distribution of content is executed toward clients belonging to the same multicast group. In multicast distribution, communication is performed by UDP (User Datagram Protocol).
[0094]
The multicast receiving unit 20 receives contents such as the patch 12, patch identification information 14, and software identification information 15 transmitted from the server 2 using multicast distribution, and provides them to the reception confirmation unit 21.
[0095]
The reception confirmation unit 21 determines the integrity of the patch 12, patch identification information 14, and software identification information 15 received from the multicast reception unit 20.
[0096]
If the patch 12, the patch identification information 14, and the software identification information 15 are incomplete, the reception confirmation unit 21 discards the received patch 12, patch identification information 14, and software identification information 15.
[0097]
On the other hand, when the patch 12, the patch identification information 14, and the software identification information 15 are complete, the reception confirmation unit 21 provides the received patch 12, patch identification information 14, and software identification information 15 to the version management unit 22.
[0098]
When receiving the patch 12, patch identification information 14, and software identification information 15 from the reception confirmation unit 21, the version management unit 22 refers to the version management information 29 a recorded in the recording unit 29.
[0099]
The version management unit 22 includes the same patch name as the patch name included in the patch identification information 14 received from the server 2, and includes patch identification including version information that is newer than or the same as the version information included in the patch identification information 14. It is determined whether the information is registered in the version management information 29a. In other words, the version management unit 22 determines whether a patch having a version newer than or the same as the patch 12 received from the server 2 has been received.
[0100]
When version information newer than the patch identification information 14 or patch identification information of the same version information is registered in the version management information 29a, the version management unit 22 discards the patch 12, the patch identification information 14, and the software identification information 15.
[0101]
On the other hand, when the version information included in the patch identification information 14 is newer than the version information of the patch identification information registered in the version management information 29a, the version management unit 22 determines that the patch 12 indicated by the patch identification information 14 is not yet present. It is determined that it is received, the patch identification information 14 and the software identification information 15 are associated with each other and registered in the version management information 29a, and the patch 12 and the patch identification information 14 are associated with each other and registered in the patch information 29b. Information 14 and software identification information 15 are provided to the patch processing unit 23.
[0102]
When the patch processing unit 23 receives the patch identification information 14 and the software identification information 15 from the version management unit 22 or the content communication unit 28, the patch processing unit 23 acquires the latest version of the patch 12 corresponding to the patch identification information 14 from the patch information 29b. The software 40 corresponding to the software identification information 15 is acquired from the software management information 29c, the software 40 is corrected using the patch 12, and the corrected software 40 is registered in the software management unit 29c instead of the software 40 before the correction. To do.
[0103]
The communication destination determination server 44 registers each of the clients 31 to 3n when the clients 31 to 3n are activated.
[0104]
The communication destination determination server 44 acquires software identification information indicating software held by each client 31 to 3n from each client 31 to 3n.
[0105]
The communication destination determination server 44 determines a client that performs P2P communication from among clients that hold common software among the clients 31 to 3n, and sets a communication destination for each client that is determined to perform P2P communication. provide. In the present embodiment, a case will be described in which the client 31 is determined as a client that performs communication, and the client 32 is determined as a communication destination of the client 31.
[0106]
Further, if there is no access after a certain period of time has elapsed from the registered client, the communication destination determination server 44 determines that this client has stopped and cancels the registration.
[0107]
The P2P communication unit 41 of the client 31 performs P2P communication with other clients 32 to 3n, and transmits and receives various contents.
[0108]
The communication destination acquisition unit 24 registers in the communication destination determination server 44 when the client 31 is activated.
[0109]
Further, the communication destination acquisition unit 24 refers to the software management information 29c recorded in the recording unit 29, and obtains software identification information of software held in the client 31 every time a predetermined period elapses. To provide.
[0110]
When receiving the designation of the communication destination client 32 from the communication destination determination server 44, the communication destination acquisition unit 24 provides the designation of the communication destination client 32 to the communication permission unit 25.
[0111]
When the communication permission unit 25 receives the designation of the communication destination client 32 from the communication destination acquisition unit 24, the communication permission unit 25 accesses the communication destination client 32 via the P2P communication unit 41, and the communication destination client 32 receives the other clients 33 to 33. It is determined whether communication with 3n is in progress.
[0112]
When the communication destination client 32 is not communicating with another client, the communication permission unit 25 provides the authentication unit 26 with the designation of the communication destination client 32. If the communication destination client 32 is communicating, the process ends. When the communication destination client 32 is communicating, the process may be in a waiting state.
[0113]
When the authentication unit 26 receives designation of the communication destination client 32 from the communication permission unit 25, the authentication unit 26 accesses the communication destination client 32 via the P2P communication unit 41 and performs mutual authentication.
[0114]
When the authentication is properly performed, the authentication unit 26 registers the communication start time in the communication permission information 29d of the recording unit 29, and provides the version comparison unit 27 with the designation of the communication destination client 32. If authentication is not properly performed, the process is stopped.
[0115]
When the designation of the communication destination client 32 is received from the authentication unit 26, the version comparison unit 27 refers to the version management information 29 a recorded in the recording unit 29 and also communicates with the communication destination client 32 via the P2P communication unit 41. To obtain the version management information 29a of the client 32. Thereby, the two version management information 29a to be compared is acquired.
[0116]
The version comparison unit 27 compares the version management information 29a of the client 31 with the version management information 29a of the communication destination client 32, and provides the comparison result and the designation of the communication destination client 32 to the content communication unit 28. .
[0117]
When the patch 12 held by the client 31 is newer than the patch held by the client 32 of the communication destination, the content communication unit 28 transmits the held patch 12, patch identification information 14, and software identification information 15 to the P2P communication unit 41. To the client 32 of the communication destination.
[0118]
When the patch 12 held by the client 31 is older than the patch held by the communication destination client 32, the content communication unit 28 holds the communication destination client 32 from the communication destination client 32 via the P2P communication unit 41. A patch, patch identification information, and software identification information are received. Then, the content communication unit 28 performs registration in the version management information 29a and the patch information 29b based on the patch received from the communication destination client 32, the patch identification information, and the software identification information. The patch identification information 14 and the software identification information 15 are provided to the patch processing unit 23.
[0119]
In addition, the content communication unit 28 registers the communication end time in the communication permission information 29 d recorded in the recording unit 29.
[0120]
FIG. 13 is a flowchart showing an example of processing when the client 31 according to the present embodiment receives content distributed by multicast from the server 2.
[0121]
In step T1, the multicast receiving unit 20 refers to the group management information 29e recorded in the recording unit 29, and in multicast distribution, the group identification information 43 indicating the multicast group to which the client 31 belongs and multicast distribution to this multicast group. It recognizes the address information 42 of the server 2 that executes.
[0122]
In step T2, since the multicast receiver 20 belongs to the multicast group indicated by the group identification information 43, the multicast receiver 20 transmits an IGMP Join message to the server 2 indicated by the address information.
[0123]
In step T <b> 3, the multicast receiver 20 receives content such as the patch 12, patch identification information 14, and software identification information 15 transmitted from the server 2 using multicast distribution.
[0124]
In step T <b> 4, the reception confirmation unit 21 determines the integrity of the patch 12, patch identification information 14, and software identification information 15 received from the multicast reception unit 20.
[0125]
If the determination result by the reception confirmation unit 21 indicates incomplete, in step T5, the reception confirmation unit 21 discards the received patch 12, patch identification information 14, and software identification information 15, and ends the process.
[0126]
On the other hand, if the determination result by the reception confirmation unit 21 indicates complete, the version management unit 22 refers to the version management information 29a recorded in the recording unit 29 in step T6.
[0127]
In step T7, the version management unit 22 determines whether the version of the patch 12 received from the server 2 is new.
[0128]
If the version of the patch 12 received from the server 2 is not new, in step T8, the version management unit 22 discards the patch 12, the patch identification information 14, and the software identification information 15, and ends the process.
[0129]
On the other hand, when the version of the patch 12 received from the server 2 is new, in step T9, the version management unit 22 registers the patch identification information 14 and the software identification information 15 in association with each other in the version management information 29a, and also updates the patch 12 And the patch identification information 14 are registered in the patch information 29b in association with each other.
[0130]
In step T10, the patch processing unit 23 modifies the software 40 using the latest version of the patch 12, and registers the modified software 40 in the software management information 29c instead of the unmodified software 40.
[0131]
14 and 15 are flowcharts showing an example of processing for transmitting and receiving content by P2P communication between the client 31 and another client 32 according to the present embodiment.
[0132]
In step U <b> 1, the communication destination acquisition unit 24 registers in the communication destination determination server 44 when the client 31 is activated.
[0133]
In step U2, the communication destination acquisition unit 24 determines whether a certain time has elapsed.
[0134]
In step U3, the communication destination acquisition unit 24 accesses the communication destination determination server 44 when a predetermined time has elapsed, and provides information of the recording unit 29 such as software management information 29c, for example. If it is before a certain period of time, it will be in a waiting state.
[0135]
In step U <b> 4, the communication destination acquisition unit 24 accepts designation of the communication destination client 32 from the communication destination determination server 44.
[0136]
In step U5, the communication permission unit 25 accesses the communication destination client 32 via the P2P communication unit 41, and determines whether or not the communication destination client 32 is communicating with the other clients 33 to 3n.
[0137]
When the communication destination client 32 is communicating, the communication permission unit 25 ends the process or waits.
[0138]
When the communication destination client 32 is not communicating, in step U6, the authentication unit 26 accesses the communication destination client 32 via the P2P communication unit 41 and performs mutual authentication.
[0139]
If the authentication is not properly performed, the authentication unit 26 stops the process.
[0140]
If the authentication is properly performed, the authentication unit 26 registers the communication start time in the communication permission information 29d of the recording unit 29 in step U7.
[0141]
In step U8, the version comparison unit 27 refers to the version management information 29a recorded in the recording unit 29, accesses the communication destination client 32 via the P2P communication unit 41, and compares the version of the client 31 to be compared. The management information 29a and the version management information 29a of the communication destination client 32 are acquired.
[0142]
In step U9, the version comparison unit 27 compares the version management information 29a of the client 31 with the version management information 29a of the client 32 that is the communication destination.
[0143]
When the patch 12 held by the client 31 is newer than the patch held by the communication destination client 32, in step U10, the content communication unit 28 performs P2P communication between the patch 12, the patch identification information 14, and the software identification information 15. The data is provided to the communication destination client 32 via the unit 41.
[0144]
In step U11, the content communication unit 28 registers the communication end time in the communication permission information 29d recorded in the recording unit 29.
[0145]
When the patch 12 held by the client 31 is older than the patch held by the communication destination client 32, in step U12, the content communication unit 28 determines the patch, patch identification information, and software identification held by the communication destination client 32. Information is received from the communication destination client 32 via the P2P communication unit 41 and recorded in the recording unit 29.
[0146]
In step U13, the patch processing unit 23 corrects the software using the latest version of the patch, and registers the corrected software in the software management information 29c instead of the software before the correction.
[0147]
In step U14, the content communication unit 28 registers the communication end time in the communication permission information 29d recorded in the recording unit 29.
[0148]
Steps U13 and U14 may be executed in reverse order or in parallel.
[0149]
FIG. 16 is a sequence diagram illustrating an example of the cooperative operation of the communication system 1. In FIG. 16, the communication destination determination server 44 is used when determining the communication destination of P2P communication between clients.
[0150]
FIG. 16 shows an example in which content such as a patch is transmitted from the server 2 to the clients 31 and 32 and then content such as a patch is transmitted from the client 31 to the client 32.
[0151]
The transmission of content by the communication system 1 includes a multicast distribution stage in which transmission using multicast distribution is performed and an inter-client communication stage in which transmission using P2P communication is performed between clients.
[0152]
First, the multicast distribution stage in FIG. 16 will be described.
[0153]
The request processing unit 7 of the server 2 executes option analysis for the distribution request 13 and recognition of patch identification information 14 indicating a distribution target patch.
[0154]
Further, the request processing unit 7 refers to the software information 11 a and confirms whether the patch 12 indicated by the patch identification information 14 designated by the distribution request 13 is a distribution target of the own server 2.
[0155]
If the patch identification information 14 specified in the distribution request 13 is not registered in the software information 11a and is not a distribution target by the own server 2, the request processing unit 7 returns an error to the distribution request 13 and ends the process. To do.
[0156]
The distribution confirmation unit 8 refers to the distribution information 11b and determines whether the patch identification information 14 designated by the distribution request 13 is registered.
[0157]
When the patch identification information 14 is registered in the distribution information 11b, the distribution completion confirmation unit 8 determines that the patch 12 indicated by the patch identification information 14 specified by the distribution request 13 has been distributed, and determines the distribution request source. An error is returned and the process ends.
[0158]
On the other hand, when the patch identification information 14 is not registered in the distribution information 11b, the distribution confirmation unit 8 determines that the patch 12 indicated by the patch identification information 14 specified in the distribution request 13 has not been distributed, and performs group management. The processing is moved to part 9.
[0159]
The group management unit 9 refers to the group information 11c, and acquires multicast address information 18 indicating the multicast group to which the clients 31 and 32 holding the software corrected by the distribution target patch 12 belong.
[0160]
The distribution unit 10 refers to the patch information 11 d and acquires the patch 12 corresponding to the patch identification information 14 specified by the distribution request 13.
[0161]
Then, the distribution unit 10 transmits contents such as the patch 12, patch identification information 14, and software identification information 15 to the clients 31 and 32 belonging to the multicast group indicated by the multicast address information 18 by using multicast distribution.
[0162]
Prior to the execution of multicast distribution as described above, the multicast receivers 20 of the clients 31 and 32 execute pre-processing for handling multicast distribution.
[0163]
After the multicast distribution is executed, the multicast receiver 20 of the clients 31 and 32 receives the content transmitted from the server 2.
[0164]
The reception confirmation unit 21 of the clients 31 and 32 confirms the integrity of the received content.
[0165]
In the example of FIG. 16, it is assumed that the content received from the server 2 to the client 31 is complete, but the content received from the server 2 to the client 32 is incomplete.
[0166]
The version management unit 22 of the client 31 refers to the version management information 29a, compares the received content version with the version registered in the version management information 29a, and determines whether the received content is a new version.
[0167]
If the received content is not a new version, the version management unit 22 of the client 31 returns the process to a standby state for multicast distribution.
[0168]
When the received content is a new version, the version management unit 22 registers the received content in the recording unit 29.
[0169]
The patch processing unit 23 corrects the software based on the received content.
[0170]
On the other hand, the reception confirmation unit 21 of the client 32 discards the received content when the received content is incomplete.
[0171]
Next, the inter-client communication stage in FIG. 16 will be described.
[0172]
In the client communication stage, each client 31 and 32 shares and updates content with other clients belonging to the same multicast group.
[0173]
The content shared between the clients 31 and 32 is content transmitted from the server 2 to each of the clients 31 and 32 using multicast distribution.
[0174]
In FIG. 16, the client 32 has been discarded because the content received from the server 2 is not complete. Therefore, among the clients 31 and 32 belonging to the same multicast group, the client 31 that holds the new version of the content and the client 32 that does not hold the content are mixed.
[0175]
In the inter-client communication stage, content is transmitted and received between the client 31 that holds the content received by multicast distribution and the client 32 that does not hold it.
[0176]
The communication destination acquisition unit 24 of the clients 31 and 32 accesses the communication destination determination server 44 when activated.
[0177]
The communication destination determination server 44 registers the clients 31 and 32 in response to access from the clients 31 and 32.
[0178]
Thereafter, the communication destination acquisition unit 24 of each of the clients 31 and 32 accesses the communication destination determination server 44 every time a fixed time elapses to request designation of the communication destination client (communication destination information). Get the specification.
[0179]
The communication destination determination server 44 determines that a client that does not require designation of a communication destination client even after a predetermined time has elapsed, and deletes the registered information.
[0180]
Here, in FIG. 16, it is assumed that the communication destination determination server 44 determines to provide content from the client 31 to the client 32. The communication destination acquisition unit 24 of the client 31 connects to the communication destination determination server 44 and acquires the designation of the communication destination client 32.
[0181]
The client 31 requests connection to the communication destination client 32 based on the acquired designation of the communication destination client 32.
[0182]
Connection from the client 31 to the client 32 is performed, for example, according to the following processing.
[0183]
First, the communication permission unit 25 of the client 31 transmits a connection request to the communication destination client 32 using the P2P communication unit 41.
[0184]
The communication permission unit 25 of the communication destination client 32 that has received the connection request accepts the connection request, refers to the communication permission information 29d recorded in the recording unit 29 of the client 32, and the communication destination client 32 receives another client. Make sure that there is no communication between them.
[0185]
When the communication destination client 32 is communicating, the communication permission unit 25 of the communication destination client 32 returns a connection rejection message to the client 31 using the P2P communication unit 41.
[0186]
When the communication destination client 32 is not communicating, the authentication unit 26 of the client 31 uses the P2P communication unit 41 to perform mutual authentication in cooperation with the authentication unit 26 of the communication destination client 32, and authenticate. Check if you are a communication partner.
[0187]
The authentication unit 26 of each client 31, 32 confirms the group to which each client 31, 32 belongs, for example, using a group signature. The authentication unit 26 of the client 31 also checks the group to which the communication destination client 32 belongs.
[0188]
When the authentication is correctly performed, the authentication unit 26 of the communication destination client 32 registers the information of the client 31 and the communication start time in the communication permission information 29d of the communication destination client 32 using the P2P communication unit 41. The connection establishment response message is transmitted to the client 31.
[0189]
When receiving the response message, the authentication unit 26 of the client 31 registers the information of the communication destination client 32 and the communication start time in the communication permission information 29 d of the client 31.
[0190]
When the connection is established, the version comparison unit 27 of the client 31 uses the P2P communication unit 41 in cooperation with the version comparison unit 27 of the client 32 of the communication destination, and the version information of the patches held in the clients 31 and 32 Confirm.
[0191]
For example, the version comparison unit 27 of the client 31 provides the version management information 29a of the client 31 to the version comparison unit 27 of the client 32 that is the communication destination.
[0192]
The version comparison unit 27 of the communication destination client 32 compares the received version management information 29 a of the client 31 with the version management information 29 a of the communication destination client 32.
[0193]
When the version of the client 31 is newer than the version of the communication destination client 32, the version comparison unit 27 of the communication destination client 32 transmits a reception request message to the client 31.
[0194]
When the version of the client 31 is older than the version of the communication destination client 32, the version comparison unit 27 of the communication destination client 32 transmits a transmission request message to the client 31.
[0195]
When the versions are the same, the version comparison unit 27 of the communication destination client 32 transmits a message to the client 31 indicating that the versions are the same.
[0196]
When the client 31 receives a reception request message from the client 32 of the communication destination, the content communication unit 28 of the client 31 acquires content such as a patch, patch identification information, and software identification information recorded in the recording unit 29. It transmits to the client 32 of a communication destination using the P2P communication part 41, P2P communication is complete | finished, and communication end time is registered into the communication permission information 29d.
[0197]
When the client 31 receives a transmission request message from the communication destination client 32, the content communication unit 28 of the client 31 records the content provided from the content communication unit 28 of the communication destination client 32 in the recording unit 29 of the client 31. Then, the P2P communication is terminated, and the communication end time is registered in the communication permission information 29d.
[0198]
When the message indicating that the client 31 is the same version is received from the client 32 of the communication destination, the content communication unit 28 of the client 31 ends the P2P communication and registers the communication end time in the communication permission information 29d.
[0199]
In the P2P communication executed between the clients 31 and 32, since TCP communication is used, data integrity is guaranteed.
[0200]
In the communication system 1 according to the present embodiment described above, first, content is transmitted from the server 2 to the clients 31 to 3n using multicast distribution.
[0201]
Thereby, the total amount of data transmitted from the server 2 can be reduced, and the labor and cost relating to the server capability enhancement of the service provider can be suppressed.
[0202]
In this embodiment, when content is not normally received by all clients in transmission of content from the server to the client using multicast distribution, the content is normally received from the client that has received the content normally. The content is transmitted to the client that has not been received, and the content distribution is supplemented.
[0203]
Thereby, each client can acquire content reliably and rapidly.
[0204]
(Second Embodiment)
In the present embodiment, a modification of the first embodiment will be described. In the first embodiment, content is transmitted from the server to the client using multicast distribution, and then P2P communication is performed between the clients to complement the multicast distribution.
[0205]
However, in this embodiment, anycast distribution is used instead of multicast distribution.
[0206]
In the present embodiment, a client to which content is provided from the server is determined using anycast distribution, and the content is provided from the server to the determined client. Then, the content is distributed from the determined client to other clients.
[0207]
In the present embodiment, it is assumed that P2P communication is used in the same manner as in the first embodiment for transmitting / receiving content between clients.
[0208]
Anycast distribution is a function implemented in IPv6 (Internet Protocol Version 6). Anycast distribution is used for applications such as selecting the one with the lightest load from a designated DNS (Domain Name System) server.
[0209]
In the anycast distribution, the server transmits an anycast request to a plurality of clients belonging to the anycast group, and receives an anycast reply that is a response to the anycast request from each client.
[0210]
Then, the server recognizes the load level of each client based on the anycast reply.
[0211]
FIG. 17 is a diagram illustrating an example of a state of anycast distribution by the communication system according to the present embodiment.
[0212]
In the communication system 45, a server 46, clients 471 to 47 n and a communication destination determination server 44 are connected via a subnetwork 48. The clients 471 to 47n connected to the subnetwork 48 are represented by a common network address.
[0213]
In the communication system 45, first, an anycast request is transmitted from the server 46 to the clients 471 to 47n by anycast distribution. Next, the anycast reply is returned to the server 46 from the clients 471 to 47n that have received the anycast request.
[0214]
Next, the server 46 determines a client with a light load based on the anycast reply received from each of the clients 471 to 47n. In the example of FIG. 17, the case where the load of the client 471 is the lightest among the clients 471 to 47n is shown.
[0215]
Then, the content including the patch 5 and the like is transmitted from the server 46 to the determined client 471. When content is transmitted from the server 46 to the client 471, the content may be signed.
[0216]
In the present embodiment, description will be made assuming that all of the clients 471 to 47n belong to the anycast group that is the target of anycast distribution.
[0217]
The subnetwork 48 is a communication network that is represented by the same network address or broadcast address and is not divided by a router or a switch, and may be wireless or wired. Anycast requests, anycast replies, and contents are transmitted and received via the subnetwork 48.
[0218]
FIG. 18 is a diagram illustrating an example of a state of communication between clients by the communication system 45 according to the present embodiment.
[0219]
The content is transmitted from the client 471 that has received the content from the server 46 to the other clients 472 to 47n using P2P communication. The same method as in the first embodiment can be applied to the transmission / reception of content between the clients 471 to 47n, and the description thereof will be omitted in this embodiment.
[0220]
FIG. 19 is a block diagram illustrating a specific configuration example of the server 46 of the communication system 45 according to the present embodiment.
[0221]
The server 46 reads and executes the program 49a recorded in the recording medium 49, whereby a request processing unit 50, an address acquisition unit 51, a request transmission unit 52, a reply reception unit 53, a distribution destination determination unit 54, a distribution unit. The function as 55 is realized. The server 46 includes a recording unit 56. In the present embodiment, the recording unit 56 is built in the server 46. However, for example, a recording device external to the server 46 may be used. The server 46 may access the recording unit 56 via the subnetwork 48.
[0222]
The recording unit 56 records software information 11a, address management information 56a, reply management information 56b, distribution information 56c, and patch information 11d.
[0223]
Since the software information 11a and the patch information 11d recorded in the recording unit 56 are the same as those in the first embodiment, description thereof is omitted.
[0224]
As shown in FIG. 20, the address management information 56a includes software identification information of software to be corrected by a patch distributed from the server 46, anycast address information indicating an anycast group to which a client holding the software belongs. Is information associated with each other. For example, in this address management information 56a, anycast address information 57 having the content “3ffe: 2001 :: 2” is associated with the software identification information 15 having the content “virus removal software”. The address management information 56 a in FIG. 20 indicates that the virus removal software represented by the software identification information 15 is provided in a client belonging to the anycast group represented by the anycast address information 57.
[0225]
In the present embodiment also, there is a case where unique anycast address information does not have to be associated with content for the same reason as in the first embodiment.
[0226]
As shown in FIG. 21, the reply management information 56b is information that holds the anycast replies 581 to 58n received from the clients 471 to 47n by the reply receiving unit 53 in a state where the reception order can be recognized.
[0227]
The reply management information 56b in FIG. 21 shows a case where anycast replies 581 to 58n are received in the order of the clients 471 to 47n.
[0228]
The anycast reply 581 to 58n includes address information 591 to 59n of the transmission source clients 471 to 47n.
[0229]
As shown in FIG. 22, the distribution information 56c is information in which patch identification information is associated with address information of a destination client that has transmitted the patch indicated by the patch identification information. In the example of FIG. 22, the patch identification information 14 having the content “virus removal.0102513” is associated with the address information 60 having the content “3ffe: 2001: 30”.
[0230]
In the present embodiment, patch identification information and anycast address information are indirectly associated with each other via software identification information.
[0231]
The request processing unit 50 receives the distribution request 61 from the request issuer, and recognizes the patch identification information 14 specified by the distribution request 61.
[0232]
Further, the request processing unit 50 refers to the software information 11a recorded in the recording unit 56, and determines whether the patch identification information 14 designated by the distribution request 61 is registered in the software information 11a.
[0233]
When the patch identification information 14 is not registered in the software information 11a, the request processing unit 50 determines that the patch indicated by the patch identification information 14 specified by the distribution request 61 is not a patch distributed by the server 46, An error is returned to the issuer of the distribution request 61.
[0234]
On the other hand, when the patch identification information 14 is registered in the software information 11a, the request processing unit 50 acquires the software identification information 15 corresponding to the patch identification information 14 from the software information 11a. Then, the request processing unit 50 provides the patch acquisition information 14 and the software identification information 15 to the address acquisition unit 51.
[0235]
When receiving the patch identification information 14 and the software identification information 15 from the request processing unit 50, the address acquisition unit 51 refers to the address management information 56a recorded in the recording unit 56.
[0236]
The address acquisition unit 51 determines whether anycast address information corresponding to the software identification information 15 received from the request processing unit 50 is registered in the address management information 56a.
[0237]
When anycast address information corresponding to the software identification information 15 is not registered in the address management information 56a, the address acquisition unit 51 distributes the patch indicated by the patch identification information 14 specified in the distribution request 61 by the server 46. It is determined that the patch is not a patch, and an error is returned to the issuer of the distribution request 61.
[0238]
When anycast address information corresponding to the software identification information 15 is registered in the address management information 56a, the address acquisition unit 51 distributes the patch indicated by the patch identification information 14 specified in the distribution request 61 by the server 46. The anycast address information 57 corresponding to the software identification information 15 is acquired.
[0239]
Then, the address acquisition unit 51 provides the patch transmission information 52 with the patch identification information 14, the software identification information 15, and the anycast address information 57.
[0240]
Upon receiving the patch identification information 14, the software identification information 15, and the anycast address information 57 from the address acquisition unit 51, the request transmission unit 52 transmits an anycast request in anycast address distribution based on the anycast address information 57. . The anycast request transmitted from the request transmission unit 52 of the server 46 includes address information indicating the server 46.
[0241]
The reply receiving unit 53 receives anycast replies 581 to 58n from the clients 471 to 47n that have received the anycast requests.
[0242]
Then, the reply receiving unit 53 registers the anycast replies 581 to 58n in the reply management information 56b according to the reception order, and provides the patch identification information 14 and the software identification information 15 to the distribution destination determining unit 54.
[0243]
When receiving the patch identification information 14 and the software identification information 15, the distribution destination determination unit 54 refers to the reply management information 56b.
[0244]
The delivery destination determination unit 54 acquires the anycast reply 581 received first among the anycast replies 581 to 58n registered in the reply management information 56b, and is included in the anycast reply 581 received in this re-election. Address information 591 is obtained.
[0245]
Then, the delivery destination determination unit 54 refers to the delivery information 56c recorded in the recording unit 56, and determines whether information in which the patch identification information 14 and the address information 591 are associated is registered in the delivery information 56c.
[0246]
When the information relating the patch identification information 14 and the address information 591 is not registered in the distribution information 56c, the distribution destination determination unit 54 determines the client indicated by the acquired address information 591 as the distribution destination, and the address information 591. And the patch identification information 14 and the software identification information 15 are provided to the distribution unit 55. That is, when the information relating the patch identification information 14 and the address information 591 is not registered in the distribution information 56c, the patch indicated by the patch identification information 14 is not transmitted to the client 471 indicated by the address information 591. It is judged.
[0247]
On the other hand, when information relating the patch identification information 14 and the address information 591 is registered in the distribution information 56c, the distribution destination determination unit 54 determines that the patch indicated by the patch identification information 14 is the client 471 indicated by the address information 591. It is determined that it has already been sent. Then, the delivery destination determination unit 54 refers to the reply management information 56b, acquires the anycast reply 582 received next to the previously acquired anycast reply 581, and performs the above-described processing for the newly acquired anycast reply 582. A process similar to the process for the anycast reply 581 is executed. As a result, the client that has returned the anycast reply first among the clients that have not transmitted the patch indicated by the patch identification information 14 is determined as the delivery destination.
[0248]
In the present embodiment, it is assumed that the delivery destination determination unit 54 determines the client 471 indicated by the address information 591 as the delivery destination.
[0249]
When the distribution unit 55 receives the patch identification information 14, the software identification information 15, and the address information 591 from the distribution destination determination unit 54, first, in order to compare the version with the client 471 indicated by the address information 591, the distribution unit 55 The patch identification information 14 is transmitted to 471.
[0250]
The client 471 includes the same patch name as the patch name included in the patch identification information 14 received from the server 46, and searches for the patch identification information registered in the client 471.
[0251]
Then, the client 471 compares the version information included in the received patch identification information 14 with the version information included in the searched patch identification information.
[0252]
If the version information included in the received patch identification information 14 is newer, the client 471 returns a content transmission request to the server 47.
[0253]
If the version information included in the received patch identification information 14 is not newer, the client 471 returns a cancel request to the server 47.
[0254]
When the distribution unit 55 receives a cancellation request from the client 471 indicated by the address information 591 determined by the distribution destination determination unit 54, the distribution unit 55 ends the process.
[0255]
On the other hand, when receiving a content transmission request from the client 471, the distribution unit 55 refers to the patch information 11 d registered in the recording unit 56 and acquires the patch 12 corresponding to the patch identification information 14.
[0256]
The distribution unit 10 transmits contents such as the patch identification information 14, the software identification information 15, and the patch 12 to the client 471 indicated by the determined address information 591.
[0257]
Then, the distribution unit 10 registers the patch identification information 14 indicating the transmitted patch 12 and the determined address information 591 in association with the distribution information 56c.
[0258]
23 and 24 are flowcharts showing an example of the operation of the server 46 according to the present embodiment.
[0259]
In step V <b> 1, the request processing unit 50 receives a distribution request 61.
[0260]
For example, “% anycastsend -t now virus removal.0102513” is issued as the distribution request 61. In this distribution request 61, “anycastsend” is an instruction name, “−t now” represents an instruction to perform distribution when the request is issued, and “virus removal” represents a name of a patch to be distributed. “0102513” below “.” Represents patch version information. That is, this “virus removal. 0102513” is the patch identification information 14 specified by the distribution request 61.
[0261]
In step V <b> 2, the request processing unit 50 performs option analysis and recognition of the patch identification information 14 to be distributed based on the distribution request 61.
[0262]
In step V3, the request processing unit 50 refers to the software information 11a and determines whether software identification information corresponding to the patch identification information 14 is registered.
[0263]
If the software identification information corresponding to the patch identification information 14 is not registered in the software information 11a, in step V4, the request processing unit 50 returns an error to the distribution request source and ends the process.
[0264]
When the software identification information corresponding to the patch identification information 14 is registered in the software information 11a, the request processing unit 50 acquires the software identification information 15 corresponding to the patch identification information 14 in step V5, and the patch identification information 14 And the software identification information 15 are provided to the address acquisition unit 51.
[0265]
In step V6, the address acquisition unit 51 refers to the address management information 56a.
[0266]
In step V7, the address acquisition unit 51 determines whether anycast address information corresponding to the software identification information 15 received from the request processing unit 50 is registered in the address management information 56a.
[0267]
If anycast address information corresponding to the software identification information 15 is not registered in the address management information 56a, the address acquisition unit 51 returns an error to the issuer of the distribution request 61 in step V8.
[0268]
If anycast address information corresponding to the software identification information 15 is registered in the address management information 56a, the address acquisition unit 51 acquires anycast address information 57 corresponding to the software identification information 15 in step V9.
[0269]
In step V <b> 10, the request transmission unit 52 transmits an anycast request in anycast address distribution based on the anycast address information 57.
[0270]
In step V11, the reply receiving unit 53 receives anycast replies 581 to 58n from the clients 471 to 47n that have received the anycast request.
[0271]
In step V12, the reply receiving unit 53 registers the anycast replies 581 to 58n in the reply management information 56b according to the reception order.
[0272]
In step V13, the delivery destination determination unit 54 acquires the anycast reply 581 received first among the anycast replies 581 to 58n registered in the reply management information 56b, and receives the anycast reply 581 received first. The address information 591 included in is acquired.
[0273]
In step V <b> 14, the distribution destination determination unit 54 refers to the distribution information 56 c recorded in the recording unit 56, and information that associates the patch identification information 14 specified by the distribution request 61 with the acquired address information 591. It is determined whether it is registered in the distribution information 56c, that is, whether the patch indicated by the patch identification information 14 has been distributed to the client 471 indicated by the address information 591.
[0274]
When the information that associates the patch identification information 14 with the address information 591 is not registered in the distribution information 56c, that is, when the information is not yet distributed, in step V15, the distribution destination determination unit 54 selects the client indicated by the acquired address information 591. Determine delivery destination.
[0275]
When information in which the patch identification information 14 and the address information 591 are associated is registered in the distribution information 56c, the distribution destination determination unit 54 refers to the reply management information 56b in step V16, and anycast currently handled The anycast reply received next to the reply is acquired, and the address information included in the next anycast reply is acquired. Then, the process of step V14 is repeated.
[0276]
In this embodiment, it is assumed that the client 471 indicated by the address information 591 is determined as the distribution destination.
[0277]
In step V <b> 17, the distribution unit 55 transmits the patch identification information 14 to the client 471 indicated by the determined address information 591 in order to perform version comparison on the client 471 side.
[0278]
In step V18, the distribution unit 55 receives a content transmission request or a cancel request from the client 471 indicated by the determined address information 591.
[0279]
When receiving a cancel request from the client 471, the distribution unit 55 ends the process.
[0280]
On the other hand, when a content transmission request is received from the client 471, in step V19, the distribution unit 55 refers to the patch information 11d registered in the recording unit 56 and acquires the patch 12 corresponding to the patch identification information 14.
[0281]
In step V20, the distribution unit 55 transmits contents such as the patch identification information 14, the software identification information 15, and the patch 12 to the client indicated by the determined address information 591.
[0282]
In Step V21, the distribution unit 55 registers the transmitted patch identification information 14 indicating the patch 12 and the determined address information 591 in association with the distribution information 56c.
[0283]
Note that step V21 may be executed at any time as long as the content transmission request is received in step V18.
[0284]
FIG. 25 is a block diagram illustrating a specific configuration example of the client 471 according to the present embodiment. The same applies to the configuration examples of the other clients 472 to 47n.
[0285]
The client 471 reads and executes the program 62a recorded in the recording medium 62, thereby executing a request reception unit 63, a reply transmission unit 64, a version management unit 65, a content reception unit 66, a patch processing unit 67, and a communication destination acquisition. Functions as the unit 24, the communication permission unit 25, the authentication unit 26, the version comparison unit 27, the content communication unit 28, and the P2P communication unit 41 are realized. The client 471 includes a recording unit 68. In the present embodiment, the recording unit 68 is built in the client 471. However, for example, a recording device external to the client 471 may be used. The client 471 may access the recording unit 68 via the subnetwork 48.
[0286]
The recording unit 68 records version management information 68a, patch information 29b, software management information 29c, and communication permission information 29d.
[0287]
In the version management information 29a, as shown in FIG. 26, patch identification information of patches received by the client 471 and used for the software correction processing held in the client 471 is registered.
[0288]
In the example of FIG. 26, the patch identification information 16 having the content “virus removal.0100001” is registered.
[0289]
When receiving the anycast request from the server 46, the request reception unit 63 provides the received anycast request to the reply transmission unit 64.
[0290]
When the reply transmission unit 64 receives the anycast request from the request reception unit 63, the reply transmission unit 64 acquires the address information of the server 46 included in the anycast request.
[0291]
Then, the reply transmission unit 64 transmits an anycast reply including the address information of the client 471 to the server 46 based on the acquired address information of the server 46.
[0292]
When receiving the patch identification information 14 from the server 46, the version management unit 65 refers to the version management information 68a.
[0293]
The version management unit 65 searches the patch management information 68a for patch identification information 16 that includes the same patch name as the patch name contained in the received patch identification information 14.
[0294]
Then, the version management unit 65 compares the version information included in the received patch identification information 14 with the version information included in the searched patch identification information 16.
[0295]
The version management unit 65 returns a content transmission request to the server 46 when the received version information is newer than the retrieved version information.
[0296]
On the other hand, if the received version information is not newer than the retrieved version information, the version management unit 65 returns a cancel request to the server 46.
[0297]
When the content receiving unit 66 returns a content transmission request to the server 46, the content receiving unit 66 receives content such as the patch identification information 14, the software identification information 15, and the patch 12 from the server 46.
[0298]
Then, the content receiving unit 66 registers the patch identification information 14 in the version management information 68a, registers the patch 12 and the patch identification information 14 in association with each other, and registers the patch identification information 14 in the patch information 29b. Is provided to the patch processing unit 67.
[0299]
When the patch processing unit 67 receives the patch identification information 14 and the software identification information 15 from the content receiving unit 66 or the content communication unit 28, the patch processing unit 67 acquires the latest version of the patch 12 corresponding to the patch identification information 14 from the patch information 29b. The software 40 corresponding to the software identification information 15 is acquired from the software management information 29c, the software 40 is corrected using the patch 12, and the corrected software 40 is registered in the software management information 29c instead of the software 40 before the correction. To do.
[0300]
27 and 28 are flowcharts showing an example of processing in which the client 471 according to the present embodiment receives content from the server 46. FIG.
[0301]
In step W <b> 1, the request reception unit 63 receives the anycast request transmitted from the server 46.
[0302]
In step W2, the reply transmission unit 64 acquires address information of the server 46 included in the anycast request.
[0303]
In step W <b> 3, the reply transmission unit 64 transmits the anycast reply 581 including the address information 591 of the client 471 to the server 46 based on the acquired address information of the server 46.
[0304]
In step W <b> 4, the version management unit 65 receives the patch identification information 14 from the server 46.
[0305]
In step W5, the version management unit 65 refers to the version management information 68a.
[0306]
In step W6, the version management unit 65 searches the version management information 68a for the patch identification information 16 including the same patch name as the patch name included in the patch identification information 14.
[0307]
In step W7, the version management unit 65 compares the version information included in the received patch identification information 14 with the version information included in the searched patch identification information 16.
[0308]
If the received version information is newer than the retrieved version information, the version management unit 65 returns a content transmission request to the server 46 in step W8.
[0309]
On the other hand, if the received version information is not newer than the retrieved version information, the version management unit 65 returns a cancel request to the server 46 in step W9. In this case, the process ends.
[0310]
When a content transmission request is returned to the server 46, in step W10, the content receiving unit 66 receives content such as the patch identification information 14, the software identification information 15, and the patch 12 from the server 46.
[0311]
In step W11, the content receiving unit 66 registers the patch identification information 14 in the version management information 68a, and registers the patch 12 and the patch identification information 14 in association with each other in the patch information 29b.
[0312]
In Step W12, the patch processing unit 67 modifies the software 40 using the latest version of the patch 12, and registers the modified software 40 in the software management information 29c instead of the unmodified software 40.
[0313]
Below, the cooperation operation | movement of the communication system 45 which concerns on this Embodiment is demonstrated.
[0314]
FIG. 29 is a sequence diagram illustrating an example of the cooperative operation of the communication system 45.
[0315]
The server 46 transmits an anycast request to the clients 471 to 47n.
[0316]
When the clients 471 to 47n receive the anycast request from the server 47, they return anycast replies 581 to 58n to the server 47.
[0317]
The server 47 determines a client that transmits the content by increasing the priority of the previously received anycast reply. In FIG. 29, it is assumed that the client 471 is determined.
[0318]
The server 47 transmits the patch identification information 14 (version information only needs to be transmitted) specified by the distribution request 61 to the determined client 471.
[0319]
The client 471 compares the received version information with the version information held by itself.
[0320]
When the comparison result indicates the new version, the client 471 transmits a content transmission request to the server 46.
[0321]
When the server 36 receives a content transmission request from the client 471, the server 36 transmits the content specified by the distribution request 61 to the client 471.
[0322]
The client 471 transmits content to other clients 472 to 47n belonging to the same anycast group.
[0323]
In the communication system 45 according to the present embodiment described above, content is distributed from the server 46 to the specific client 471 using anycast, and the distributed content is spread from the specific client 471 to the other clients 472 to 47n. Is done.
[0324]
As a result, the load on the server 46 is reduced, and the content can be reliably and promptly received by the clients 471 to 47n.
[0325]
(Third embodiment)
In this embodiment, a modification of each of the above embodiments will be described.
[0326]
For example, instead of the anycast delivery of the second embodiment, delivery may be executed to a large number of networks using Xcast.
[0327]
Xcast is a multicast distribution for a small group. In this Xcast, a plurality of address information indicating the destination is described in the header of a packet that flows in the network, and the packet is copied and distributed when the route for each address information branches in the stage of passing through the router.
[0328]
If anycast addresses of a large number of networks are described in the address information described in Xcast, an anycast request can be transmitted to a plurality of sub-networks, and various contents can be distributed by the same method as the above-described anycast communication. It can be performed.
[0329]
In each of the above embodiments, each component of the communication systems 1 and 45 may be realized by hardware as a part realized by a program.
[0330]
The client in each of the above embodiments may be an appliance used at home, for example. Thereby, the control program of the electric appliance which can communicate via a network can be corrected quickly, correctly and easily.
[0331]
In the above embodiments, for example, a storage device, a memory device, or the like can be used for the recording units 11, 29, 46, and 68.
[0332]
Further, in the communication systems 1 and 45 according to each of the above embodiments, each component may be rearranged as long as the same operation can be realized, or each component may be freely combined. The components may be freely divided, and some components may be deleted.
[0333]
For example, the recording units 11, 29, 46, and 68 may be divided into a plurality of recording units. In other words, each of the above embodiments is not limited to the above-described configuration as it is, and can be embodied by modifying the components without departing from the scope of the invention in the implementation stage.
[0334]
【The invention's effect】
As described in detail above, according to the present invention, content can be quickly and accurately distributed from a transmission-side communication device to a plurality of reception-side communication devices, and the load on the transmission-side communication device is reduced. .
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration example of a communication system according to a first embodiment of the present invention.
FIG. 2 is a block diagram showing a specific configuration example of a server of the communication system according to the embodiment.
FIG. 3 is a view showing an example of software information according to the embodiment.
FIG. 4 is a view showing an example of distribution information according to the embodiment.
FIG. 5 is a view showing an example of group information according to the embodiment.
FIG. 6 is a view showing an example of patch information according to the embodiment.
FIG. 7 is a flowchart showing an example of the first half of the operation of the server according to the embodiment;
FIG. 8 is a flowchart showing an example of the second half of the operation of the server according to the embodiment;
FIG. 9 is an exemplary block diagram showing a specific configuration example of a client according to the embodiment;
FIG. 10 is a diagram showing an example of version management information according to the embodiment.
FIG. 11 is a diagram showing an example of software management information according to the embodiment.
FIG. 12 is a diagram showing an example of group management information according to the embodiment.
FIG. 13 is a flowchart showing an example of processing after the client according to the embodiment receives the content distributed by multicast from the server.
FIG. 14 is a flowchart showing an example of the first half of processing for transmitting and receiving content by P2P communication between clients according to the embodiment;
FIG. 15 is an exemplary flowchart illustrating an example of the second half of processing for transmitting and receiving content through P2P communication between clients according to the embodiment;
FIG. 16 is a sequence diagram showing an example of cooperative operation of the communication system according to the embodiment.
FIG. 17 is a diagram showing an example of a state of anycast distribution by the communication system according to the second embodiment of the present invention.
18 is a diagram showing an example of a state of communication between clients by the communication system according to the embodiment. FIG.
FIG. 19 is a block diagram showing a specific configuration example of a server of the communication system according to the embodiment;
FIG. 20 is a diagram showing an example of address management information according to the embodiment.
FIG. 21 is a diagram showing an example of reply management information according to the embodiment.
FIG. 22 is a diagram showing an example of distribution information according to the embodiment.
FIG. 23 is a flowchart showing an example of the first half of the operation of the server according to the embodiment;
FIG. 24 is a flowchart showing an example of the second half of the operation of the server according to the embodiment;
FIG. 25 is a block diagram showing a specific configuration example of a client according to the embodiment;
FIG. 26 is a diagram showing an example of version management information according to the embodiment.
FIG. 27 is a flowchart showing an example of the first half of processing in which a client according to the embodiment receives content from a server;
FIG. 28 is a flowchart showing an example of the latter half of the process in which the client according to the embodiment receives content from the server;
FIG. 29 is a sequence diagram showing an example of cooperative operation of the communication system according to the embodiment.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1,45 ... Communication system 2, 46 ... Server, 31-3n, 471-47n ... Client, 4 ... Network, 5, 12a, 12b ... Patch, 6, 19, 49, 62 ... Recording medium, 6a, 19a, 49a, 62a ... program, 13, 61 ... distribution request, 14 ... patch identification information, 15 ... software identification information, 7, 50 ... request processing unit, 8 ... distributed confirmation unit, 9 ... group management unit, 10, 55 ... Distribution unit, 11, 29, 56, 68 ... Recording unit, 11a ... Software information, 11b, 56c ... Distribution information, 11c ... Group information, 11d, 29b ... Patch information, 20 ... Multicast reception unit, 21 ... Reception confirmation unit, 22, 65 ... version management unit, 23, 67 ... patch processing unit, 24 ... communication destination acquisition unit, 25 ... communication destination permission unit, 26 ... authentication unit, 27 ... version ratio , 28 ... content communication part, 29 a ... version management part, 29 c ... software management information, 29 d ... communication permission information, 29 e ... group management information, 41 ... P2P communication part, 48 ... sub-network, 51 ... address acquisition part, 52 ... request sending unit, 53 ... reply receiving unit, 54 ... delivery destination determining unit, 56a ... address management information, 56b ... reply management information, 63 ... request receiving unit, 64 ... reply sending unit, 66 ... content receiving unit, 68a ... Version control information

Claims (18)

配信対象のコンテンツを示すコンテンツ識別情報を指定する配信要求を受け付ける手段と、
マルチキャスト配信におけるマルチキャストグループを指定するマルチキャストアドレス情報とコンテンツ識別情報とを対応付けた情報に基づいて、前記配信要求で指定されたコンテンツ識別情報に対応するマルチキャストアドレス情報を取得する手段と、
前記配信要求で指定されたコンテンツ識別情報に対応するマルチキャストアドレス情報を用いて、前記配信要求で指定されたコンテンツ識別情報の示すコンテンツのマルチキャスト配信を実行する配信手段とを具備する通信装置。
Means for accepting a distribution request for specifying content identification information indicating content to be distributed;
Means for acquiring multicast address information corresponding to the content identification information specified in the distribution request based on information associating the multicast address information specifying the multicast group in the multicast distribution with the content identification information;
A communication device comprising: distribution means for executing multicast distribution of content indicated by the content identification information specified by the distribution request using multicast address information corresponding to the content identification information specified by the distribution request.
請求項1記載の通信装置において、
前記配信要求で指定されたコンテンツ識別情報は、前記配信対象のコンテンツのバージョン情報を含み、
前記配信要求で指定されたコンテンツ識別情報のバージョン情報と前記配信手段によって配信されたコンテンツを示すコンテンツ識別情報のバージョン情報を比較する手段を具備し、
前記配信手段は、前記配信対象のコンテンツが新バージョンの場合に、マルチキャスト配信を実行することを特徴とする通信装置。
The communication device according to claim 1.
The content identification information specified in the distribution request includes version information of the content to be distributed,
Means for comparing the version information of the content identification information specified in the distribution request with the version information of the content identification information indicating the content distributed by the distribution means;
The communication device according to claim 1, wherein the distribution unit executes multicast distribution when the content to be distributed is a new version.
マルチキャスト配信を用いて配信されたコンテンツを受信する受信手段と、
同一のマルチキャストグループに属する他の装置の保持するコンテンツのバージョン情報と前記受信手段によって受信されたコンテンツのバージョン情報とを比較する手段と、
前記受信手段によって受信されたコンテンツが新バージョンの場合に、前記他の装置に対して前記受信手段によって受信されたコンテンツを提供し、前記受信手段によって受信されたコンテンツが旧バージョンの場合に、前記他の装置から前記他の装置の保持するコンテンツを受け付ける手段とを具備する通信装置。
Receiving means for receiving content distributed using multicast distribution;
Means for comparing version information of content held by other devices belonging to the same multicast group and version information of content received by the receiving means;
When the content received by the receiving means is a new version, the content received by the receiving means is provided to the other device, and when the content received by the receiving means is an old version, A communication device comprising: means for receiving content held by the other device from another device.
請求項3記載の通信装置において、
前記受信手段によって受信されたコンテンツの完全性を確認し、完全性が確保されていなければ前記受信手段によって受信されたコンテンツを破棄する手段をさらに具備する通信装置。
The communication device according to claim 3.
A communication apparatus further comprising means for confirming the integrity of the content received by the receiving means and discarding the content received by the receiving means if integrity is not ensured.
配信対象のコンテンツを示すコンテンツ識別情報を指定する配信要求を受け付ける手段と、
エニーキャスト配信におけるエニーキャストグループを指定するエニーキャストアドレス情報とコンテンツ識別情報とを対応付けた情報に基づいて、前記配信要求で指定されたコンテンツ識別情報に対応するエニーキャストアドレス情報を取得する手段と、
前記配信要求で指定されたコンテンツ識別情報に対応するエニーキャストアドレス情報を用いて、エニーキャストリクエストを送信する手段と、
エニーキャストリプライを受信する手段と、
前記エニーキャストリプライの受信順序に基づいて、前記配信要求で指定されたコンテンツ識別情報の示すコンテンツの送信先を決定する送信先決定手段と、前記送信先決定手段によって決定された送信先に、前記配信要求で指定されたコンテンツ識別情報の示すコンテンツを送信する手段とを具備する通信装置。
Means for accepting a distribution request for specifying content identification information indicating content to be distributed;
Means for acquiring anycast address information corresponding to the content identification information specified in the distribution request based on information associating anycast address information specifying an anycast group in the anycast distribution with content identification information; ,
Means for transmitting an anycast request using anycast address information corresponding to the content identification information specified in the distribution request;
Means for receiving an anycast reply;
Based on the reception order of the anycast reply, a transmission destination determination unit that determines a transmission destination of content indicated by the content identification information specified in the distribution request, and a transmission destination determined by the transmission destination determination unit, Means for transmitting content indicated by the content identification information specified in the distribution request.
請求項5記載の通信装置において、
前記送信先決定手段は、前記配信要求で指定されたコンテンツ識別情報の示すコンテンツを未だ送信してなく先に受信したエニーキャストリプライの送信元を、前記配信要求で指定されたコンテンツ識別情報の示すコンテンツの送信先として決定することを特徴とする通信装置。
The communication device according to claim 5.
The transmission destination determination means indicates the transmission source of the anycast reply that has not been transmitted yet but the content indicated by the content identification information specified in the distribution request is indicated in the content identification information specified in the distribution request. A communication apparatus that is determined as a content transmission destination.
エニーキャスト配信におけるエニーキャストリクエストを受信する手段と、
前記エニーキャストリクエストの送信元にエニーキャストリプライを返す手段と、
前記エニーキャストリクエストの送信元からコンテンツを受信する受信手段と、
同一のエニーキャストグループに属する他の装置の保持するコンテンツのバージョン情報と前記受信手段によって受信されたコンテンツのバージョン情報とを比較する手段と、
前記受信手段によって受信されたコンテンツが新バージョンの場合に、前記他の装置に対して前記受信手段によって受信されたコンテンツを提供し、前記受信手段によって受信されたコンテンツが旧バージョンの場合に、前記他の装置から前記他の装置の保持するコンテンツを受け付ける手段とを具備する通信装置。
Means for receiving an anycast request in anycast delivery;
Means for returning an anycast reply to the sender of the anycast request;
Receiving means for receiving content from the sender of the anycast request;
Means for comparing the version information of the content held by another device belonging to the same anycast group with the version information of the content received by the receiving means;
When the content received by the receiving means is a new version, the content received by the receiving means is provided to the other device, and when the content received by the receiving means is an old version, A communication device comprising: means for receiving content held by the other device from another device.
請求項7記載の通信装置において、
前記エニーキャストリクエストの送信元からコンテンツのバージョン情報を受信して新バージョンか判断し、新バージョンの場合に前記エニーキャストリクエストの送信元にコンテンツ送信要求を返す手段を具備し、
前記受信手段は、新バージョンと判断されたコンテンツを受信することを特徴とする通信装置。
The communication device according to claim 7.
Receiving the version information of the content from the sender of the anycast request to determine whether it is a new version;
The communication device is characterized in that the receiving means receives content determined to be a new version.
送信側通信装置から複数の受信側通信装置にコンテンツを送信する通信システムにおいて、
前記送信側通信装置は、マルチキャストグループを指定するグループアドレス情報を用いて、前記コンテンツのマルチキャスト配信を実行し、
前記複数の受信側通信装置は、
前記コンテンツを受信する受信手段と、
前記マルチキャストグループに属する他の受信側通信装置の保持するコンテンツのバージョン情報と前記受信手段によって受信されたコンテンツのバージョン情報とを比較する手段と、
前記受信手段によって受信されたコンテンツが新バージョンの場合に、前記他の受信側通信装置に対して前記受信手段によって受信されたコンテンツを提供し、前記受信手段によって受信されたコンテンツが旧バージョンの場合に、前記他の受信側通信装置から前記他の受信側通信装置の保持するコンテンツを受け付ける手段とを具備することを特徴とする通信システム。
In a communication system for transmitting content from a transmitting communication device to a plurality of receiving communication devices,
The transmission side communication device performs multicast distribution of the content using group address information designating a multicast group,
The plurality of receiving side communication devices are:
Receiving means for receiving the content;
Means for comparing the version information of the content held by another receiving communication device belonging to the multicast group with the version information of the content received by the receiving means;
When the content received by the receiving means is a new version, the content received by the receiving means is provided to the other receiving side communication device, and the content received by the receiving means is an old version And a means for accepting content held by the other receiving communication device from the other receiving communication device.
送信側通信装置から複数の受信側通信装置にコンテンツを送信する通信システムにおいて、
前記送信側通信装置は、
配信対象のコンテンツを示すコンテンツ識別情報を指定する配信要求を受け付ける手段と、
エニーキャスト配信におけるエニーキャストグループを指定するエニーキャストアドレス情報とコンテンツ識別情報とを対応付けた情報に基づいて、前記配信要求で指定されたコンテンツ識別情報に対応するエニーキャストアドレス情報を取得する手段と、
前記配信要求で指定されたコンテンツ識別情報に対応するエニーキャストアドレス情報を用いて、エニーキャストリクエストを送信する手段と、
エニーキャストリプライを受信する手段と、
前記エニーキャストリプライの受信順序に基づいて、前記配信要求で指定されたコンテンツ識別情報の示すコンテンツの送信先を決定する送信先決定手段と、前記送信先決定手段によって決定された送信先に、前記配信要求で指定されたコンテンツ識別情報の示すコンテンツを送信する手段とを具備し、
前記複数の受信側通信装置は、
前記エニーキャストリクエストを受信する手段と、
前記エニーキャストリプライを返す手段と、
前記送信側通信装置からコンテンツを受信する受信手段と、
前記エニーキャストグループに属する他の受信側通信装置の保持するコンテンツのバージョン情報と前記受信手段によって受信されたコンテンツのバージョン情報とを比較する手段と、
前記受信手段によって受信されたコンテンツが新バージョンの場合に、前記他の受信側通信装置に対して前記受信手段によって受信されたコンテンツを提供し、前記受信手段によって受信されたコンテンツが旧バージョンの場合に、前記他の受信側通信装置から前記他の受信側通信装置の保持するコンテンツを受け付ける手段とを具備することを特徴とする通信システム。
In a communication system for transmitting content from a transmitting communication device to a plurality of receiving communication devices,
The transmission side communication device is:
Means for accepting a distribution request for specifying content identification information indicating content to be distributed;
Means for acquiring anycast address information corresponding to the content identification information specified in the distribution request based on information associating anycast address information specifying an anycast group in the anycast distribution with content identification information; ,
Means for transmitting an anycast request using anycast address information corresponding to the content identification information specified in the distribution request;
Means for receiving an anycast reply;
Based on the reception order of the anycast reply, a transmission destination determination unit that determines a transmission destination of the content indicated by the content identification information specified in the distribution request, and a transmission destination determined by the transmission destination determination unit, Means for transmitting the content indicated by the content identification information specified in the distribution request,
The plurality of receiving side communication devices are:
Means for receiving the anycast request;
Means for returning the anycast reply;
Receiving means for receiving content from the transmitting communication device;
Means for comparing the version information of the content held by another receiving communication device belonging to the anycast group with the version information of the content received by the receiving means;
When the content received by the receiving means is a new version, the content received by the receiving means is provided to the other receiving side communication device, and the content received by the receiving means is an old version And a means for accepting content held by the other receiving communication device from the other receiving communication device.
コンピュータを、
配信対象のコンテンツを示すコンテンツ識別情報を指定する配信要求を受け付ける手段、
マルチキャスト配信におけるマルチキャストグループを指定するマルチキャストアドレス情報とコンテンツ識別情報とを対応付けた情報を記録する記録手段をアクセスし、前記配信要求で指定されたコンテンツ識別情報に対応するマルチキャストアドレス情報を取得する手段、
前記配信要求で指定されたコンテンツ識別情報に対応するマルチキャストアドレス情報を用いて、前記配信要求で指定されたコンテンツ識別情報の示すコンテンツのマルチキャスト配信を実行する配信手段として機能させるためのプログラム。
Computer
Means for accepting a distribution request specifying content identification information indicating content to be distributed;
Means for accessing recording means for recording information in which multicast address information specifying a multicast group in multicast distribution is associated with content identification information, and acquiring multicast address information corresponding to the content identification information specified in the distribution request ,
A program for functioning as distribution means for executing multicast distribution of content indicated by content identification information specified by the distribution request using multicast address information corresponding to the content identification information specified by the distribution request.
コンピュータを、
マルチキャスト配信を用いて配信されたコンテンツを受信する受信手段、
前記受信したコンテンツを記録手段に記録する手段、
同一のマルチキャストグループに属する他の装置の保持するコンテンツのバージョン情報と前記記録手段に記録されているコンテンツのバージョン情報とを比較する手段、
前記記録手段に記録されているコンテンツが新バージョンの場合に、前記他の装置に対して前記記録手段に記録されているコンテンツを提供し、前記記録手段に記録されているコンテンツが旧バージョンの場合に、前記他の装置から前記他の装置の保持するコンテンツを受け付ける手段として機能させるためのプログラム。
Computer
Receiving means for receiving content distributed using multicast distribution;
Means for recording the received content in a recording means;
Means for comparing version information of content held by other devices belonging to the same multicast group with version information of content recorded in the recording means;
When the content recorded in the recording means is a new version, the content recorded in the recording means is provided to the other device, and the content recorded in the recording means is an old version And a program for causing the other device to receive content held by the other device.
コンピュータを、
配信対象のコンテンツを示すコンテンツ識別情報を指定する配信要求を受け付ける手段、
エニーキャスト配信におけるエニーキャストグループを指定するエニーキャストアドレス情報とコンテンツ識別情報とを対応付けた情報を記録する記録手段をアクセスし、前記配信要求で指定されたコンテンツ識別情報に対応するエニーキャストアドレス情報を取得する手段、
前記配信要求で指定されたコンテンツ識別情報に対応するエニーキャストアドレス情報を用いて、エニーキャストリクエストを送信する手段、
エニーキャストリプライを受信する手段、
前記エニーキャストリプライの受信順序に基づいて、前記配信要求で指定されたコンテンツ識別情報の示すコンテンツの送信先を決定する送信先決定手段、
前記送信先決定手段によって決定された送信先に、前記配信要求で指定されたコンテンツ識別情報の示すコンテンツを送信する手段として機能させるためのプログラム。
Computer
Means for accepting a distribution request specifying content identification information indicating content to be distributed;
Anycast address information corresponding to the content identification information specified in the distribution request is accessed by accessing a recording unit that records information in which anycast address information specifying the anycast group in the anycast distribution is associated with the content identification information. Means to obtain the
Means for transmitting an anycast request using anycast address information corresponding to the content identification information specified in the distribution request;
Means for receiving anycast replies,
A transmission destination determination means for determining a transmission destination of the content indicated by the content identification information specified in the distribution request based on the reception order of the anycast reply;
The program for functioning as a means to transmit the content which the content identification information designated by the said delivery request | requirement transmits to the transmission destination determined by the said transmission destination determination means.
コンピュータを、
エニーキャスト配信におけるエニーキャストリクエストを受信する手段、
前記エニーキャストリクエストの送信元にエニーキャストリプライを返す手段、
前記エニーキャストリクエストの送信元からコンテンツを受信する受信手段、
前記受信したコンテンツを記録手段に記録する手段、
同一のエニーキャストグループに属する他の装置の保持するコンテンツのバージョン情報と前記記録手段に記録されているコンテンツのバージョン情報とを比較する手段、
前記記録手段に記録されているコンテンツが新バージョンの場合に、前記他の装置に対して前記記録手段に記録されているコンテンツを提供し、前記記録手段に記録されているコンテンツが旧バージョンの場合に、前記他の装置から前記他の装置の保持するコンテンツを受け付ける手段として機能させるためのプログラム。
Computer
Means for receiving an anycast request in anycast delivery,
Means for returning an anycast reply to the sender of the anycast request;
Receiving means for receiving content from the sender of the anycast request;
Means for recording the received content in a recording means;
Means for comparing version information of content held by other devices belonging to the same anycast group with version information of content recorded in the recording means;
When the content recorded in the recording means is a new version, the content recorded in the recording means is provided to the other device, and the content recorded in the recording means is an old version And a program for causing the other device to receive content held by the other device.
配信対象のコンテンツを示すコンテンツ識別情報を指定する配信要求を受け付け、
マルチキャスト配信におけるマルチキャストグループを指定するマルチキャストアドレス情報とコンテンツ識別情報とを対応付けた情報に基づいて、前記配信要求で指定されたコンテンツ識別情報に対応するマルチキャストアドレス情報を取得し、
前記配信要求で指定されたコンテンツ識別情報に対応するマルチキャストアドレス情報を用いて、前記配信要求で指定されたコンテンツ識別情報の示すコンテンツのマルチキャスト配信を実行することを特徴とする通信方法。
Accept a distribution request that specifies content identification information indicating the content to be distributed,
Based on information in which multicast address information specifying a multicast group in multicast distribution and content identification information are associated with each other, acquire multicast address information corresponding to the content identification information specified in the distribution request,
A communication method, wherein multicast distribution of content indicated by content identification information specified in the distribution request is executed using multicast address information corresponding to the content identification information specified in the distribution request.
マルチキャスト配信を用いて配信されたコンテンツを受信し、
同一のマルチキャストグループに属する他の装置の保持するコンテンツのバージョン情報と前記受信されたコンテンツのバージョン情報とを比較し、
前記受信されたコンテンツが新バージョンの場合に、前記他の装置に対して前記受信されたコンテンツを提供し、前記受信されたコンテンツが旧バージョンの場合に、前記他の装置から前記他の装置の保持するコンテンツを受け付けることを特徴とする通信方法。
Receive content distributed using multicast distribution,
Comparing the version information of the content held by other devices belonging to the same multicast group with the version information of the received content;
When the received content is a new version, the received content is provided to the other device, and when the received content is an old version, from the other device to the other device. A communication method characterized by receiving content to be held.
配信対象のコンテンツを示すコンテンツ識別情報を指定する配信要求を受け付け、
エニーキャスト配信におけるエニーキャストグループを指定するエニーキャストアドレス情報とコンテンツ識別情報とを対応付けた情報に基づいて、前記配信要求で指定されたコンテンツ識別情報に対応するエニーキャストアドレス情報を取得し、
前記配信要求で指定されたコンテンツ識別情報に対応するエニーキャストアドレス情報を用いて、エニーキャストリクエストを送信し、
エニーキャストリプライを受信し、
前記エニーキャストリプライの受信順序に基づいて、前記配信要求で指定されたコンテンツ識別情報の示すコンテンツの送信先を決定し、
前記決定された送信先に、前記配信要求で指定されたコンテンツ識別情報の示すコンテンツを送信することを特徴とする通信方法。
Accept a distribution request that specifies content identification information indicating the content to be distributed,
Obtaining anycast address information corresponding to the content identification information specified in the distribution request, based on information associating anycast address information specifying the anycast group in the anycast distribution with content identification information;
Using the anycast address information corresponding to the content identification information specified in the delivery request, send an anycast request,
Receive anycast reply,
Based on the reception order of the anycast reply, determine a destination of content indicated by the content identification information specified in the distribution request,
A communication method, comprising: transmitting content indicated by content identification information specified in the distribution request to the determined transmission destination.
エニーキャスト配信におけるエニーキャストリクエストを受信し、
前記エニーキャストリクエストの送信元にエニーキャストリプライを返し、
前記エニーキャストリクエストの送信元からコンテンツを受信し、
同一のエニーキャストグループに属する他の装置の保持するコンテンツのバージョン情報と前記受信されたコンテンツのバージョン情報とを比較し、
前記受信されたコンテンツが新バージョンの場合に、前記他の装置に対して前記受信されたコンテンツを提供し、前記受信されたコンテンツが旧バージョンの場合に、前記他の装置から前記他の装置の保持するコンテンツを受け付けることを特徴とする通信方法。
Receive anycast request in anycast delivery,
Return an anycast reply to the sender of the anycast request,
Receiving content from the sender of the anycast request,
Comparing the version information of the content held by other devices belonging to the same anycast group with the version information of the received content,
When the received content is a new version, the received content is provided to the other device, and when the received content is an old version, from the other device to the other device. A communication method characterized by receiving content to be held.
JP2003203791A 2003-07-30 2003-07-30 COMMUNICATION SYSTEM, COMMUNICATION DEVICE, PROGRAM, AND COMMUNICATION METHOD Expired - Fee Related JP4256218B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003203791A JP4256218B2 (en) 2003-07-30 2003-07-30 COMMUNICATION SYSTEM, COMMUNICATION DEVICE, PROGRAM, AND COMMUNICATION METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003203791A JP4256218B2 (en) 2003-07-30 2003-07-30 COMMUNICATION SYSTEM, COMMUNICATION DEVICE, PROGRAM, AND COMMUNICATION METHOD

Publications (2)

Publication Number Publication Date
JP2005051351A true JP2005051351A (en) 2005-02-24
JP4256218B2 JP4256218B2 (en) 2009-04-22

Family

ID=34263017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003203791A Expired - Fee Related JP4256218B2 (en) 2003-07-30 2003-07-30 COMMUNICATION SYSTEM, COMMUNICATION DEVICE, PROGRAM, AND COMMUNICATION METHOD

Country Status (1)

Country Link
JP (1) JP4256218B2 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006338624A (en) * 2005-06-06 2006-12-14 Nec Corp Server access control system, server access control method and server access control program
WO2007023600A1 (en) * 2005-08-22 2007-03-01 Brother Kogyo Kabushiki Kaisha Node, shared information update processing program, shared information updating method and information sharing system
JP2009520252A (en) * 2005-12-08 2009-05-21 マイクロソフト コーポレーション Peer-to-peer remediation
JP2010054100A (en) * 2008-08-27 2010-03-11 Sharp Corp Steam supply device and heating cooker
JP2010206736A (en) * 2009-03-05 2010-09-16 Nec Corp Network system, communication method thereof, router, and program
JP2011521369A (en) * 2008-05-20 2011-07-21 トムソン ライセンシング Content map distribution system and method usable in a plurality of receivers
JP2011526712A (en) * 2008-07-02 2011-10-13 トムソン ライセンシング Apparatus and method for transmitting content data between peers in P2P mode using two-part peer overlay
US8472387B2 (en) 2006-07-24 2013-06-25 Lg Electronics Inc. Point to point radio bearers for a broadcasting service

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006338624A (en) * 2005-06-06 2006-12-14 Nec Corp Server access control system, server access control method and server access control program
US8015269B2 (en) 2005-08-22 2011-09-06 Brother Kogyo Kabushiki Kaisha Node device, shared information update processing program, shared information update method, and information sharing system
WO2007023600A1 (en) * 2005-08-22 2007-03-01 Brother Kogyo Kabushiki Kaisha Node, shared information update processing program, shared information updating method and information sharing system
JP2007058275A (en) * 2005-08-22 2007-03-08 Brother Ind Ltd Node device, shared information updating processing program, shared information updating method, and information-sharing system
US8291093B2 (en) 2005-12-08 2012-10-16 Microsoft Corporation Peer-to-peer remediation
JP2009520252A (en) * 2005-12-08 2009-05-21 マイクロソフト コーポレーション Peer-to-peer remediation
US8924577B2 (en) 2005-12-08 2014-12-30 Microsoft Corporation Peer-to-peer remediation
US8472387B2 (en) 2006-07-24 2013-06-25 Lg Electronics Inc. Point to point radio bearers for a broadcasting service
US8477707B2 (en) 2006-07-24 2013-07-02 Lg Electronics Inc. Point to point radio bearers for a broadcasting service
JP2011521369A (en) * 2008-05-20 2011-07-21 トムソン ライセンシング Content map distribution system and method usable in a plurality of receivers
JP2011526712A (en) * 2008-07-02 2011-10-13 トムソン ライセンシング Apparatus and method for transmitting content data between peers in P2P mode using two-part peer overlay
JP2010054100A (en) * 2008-08-27 2010-03-11 Sharp Corp Steam supply device and heating cooker
JP2010206736A (en) * 2009-03-05 2010-09-16 Nec Corp Network system, communication method thereof, router, and program

Also Published As

Publication number Publication date
JP4256218B2 (en) 2009-04-22

Similar Documents

Publication Publication Date Title
JP4965574B2 (en) Port sharing among multiple processes
US6363081B1 (en) System and method for sharing a network port among multiple applications
US20030018914A1 (en) Stateful packet forwarding in a firewall cluster
US20120215747A1 (en) Data uploading method, data downloading method, and data system
CN101272627B (en) Network access control method and apparatus for implementing roaming
RU2344473C2 (en) Network system, proxy-server, method of session control
US11856065B2 (en) Data transmission for service integration between a virtual private cloud and an intranet
RU2483455C2 (en) Methods and apparatus for detecting peer-to-peer overlay networks
EP2922246B1 (en) Method and data center network for cross-service zone communication
US20190089648A1 (en) Resource subscription method, resource subscription apparatus, and resource subscription system
US20120166663A1 (en) Method And Apparatus For Registering A Mobile Object On A Foreign Network
CN113824685B (en) Mobile terminal directional flow agent system and method based on Android VpnService
US7289471B2 (en) Mobile router, position management server, mobile network management system, and mobile network management method
CN112367666B (en) Method, device and system for allowing pNF in 5G core network to pass NRF authentication cNF
JP4256218B2 (en) COMMUNICATION SYSTEM, COMMUNICATION DEVICE, PROGRAM, AND COMMUNICATION METHOD
CN113852483B (en) Network slice connection management method, terminal and computer readable storage medium
US20060047821A1 (en) System, method, and medium for relaying data using socket application program
US20200128083A1 (en) Method of activating processes applied to a data session
JP4494279B2 (en) Multicast control method, multicast control device, content attribute information management device, and program
Stapp DHCPv6 Bulk Leasequery
US7689648B2 (en) Dynamic peer network extension bridge
JP2003179647A (en) Packet transfer device and packet transfer method
WO2008067740A1 (en) The method, system, terminal and apparatus for transferring message between terminals
US10849179B1 (en) Mobile network tool
CN112073403A (en) AP isolation state network distribution method, terminal and readable storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060721

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080703

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080805

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081006

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090129

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120206

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120206

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130206

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees