JP4256218B2 - 通信システム、通信装置、プログラム並びに通信方法 - Google Patents

通信システム、通信装置、プログラム並びに通信方法 Download PDF

Info

Publication number
JP4256218B2
JP4256218B2 JP2003203791A JP2003203791A JP4256218B2 JP 4256218 B2 JP4256218 B2 JP 4256218B2 JP 2003203791 A JP2003203791 A JP 2003203791A JP 2003203791 A JP2003203791 A JP 2003203791A JP 4256218 B2 JP4256218 B2 JP 4256218B2
Authority
JP
Japan
Prior art keywords
content
version
client
communication
information
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.)
Expired - Fee Related
Application number
JP2003203791A
Other languages
English (en)
Other versions
JP2005051351A (ja
Inventor
歩 清水
竜也 山田
光秋 岡
大吾 吉井
岳久 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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/ja
Publication of JP2005051351A publication Critical patent/JP2005051351A/ja
Application granted granted Critical
Publication of JP4256218B2 publication Critical patent/JP4256218B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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の発明は、サーバから複数のクライアントに配信対象のコンテンツを送信する通信システムである。サーバは、配信対象のコンテンツを示すコンテンツ識別情報を指定する配信要求を受け付ける受付手段と、マルチキャスト配信におけるマルチキャストグループを指定するマルチキャストアドレス情報とコンテンツ識別情報とを対応付けた情報に基づいて、配信要求で指定されたコンテンツ識別情報に対応するマルチキャストアドレス情報を取得する手段と、配信要求で指定されたコンテンツ識別情報に対応するマルチキャストアドレス情報を用いて、配信要求で指定されたコンテンツ識別情報の示すコンテンツのマルチキャスト配信を実行する配信手段とを具備する。マルチキャストグループに属するクライアントは、マルチキャスト配信を用いて配信されたコンテンツを受信する受信手段と、受信したコンテンツを記録する記録手段と、マルチキャストグループに属する他のクライアントに保持されているコンテンツのバージョン情報と、クライアントに保持されているコンテンツのバージョン情報とを比較するバージョン比較手段と、バージョン比較手段による比較の結果に基づき、クライアントに保持されているコンテンツのバージョンが他のクライアントに保持されているコンテンツのバージョンよりも新しい場合に、他のクライアントに対してコンテンツの新バージョンをP2P通信で送信し、クライアントに保持されているコンテンツのバージョンが他のクライアントに保持されているコンテンツのバージョンよりも古い場合に、他のクライアントからコンテンツの新バージョンをP2P通信で受信するP2P通信手段とを具備する。
【0013】
第2の発明は、サーバから複数のクライアントに配信対象のコンテンツを送信する通信システムである、サーバは、配信対象のコンテンツを示すコンテンツ識別情報を指定する配信要求を受け付ける受付手段と、エニーキャスト配信におけるエニーキャストグループを指定するエニーキャストアドレス情報とコンテンツ識別情報とを対応付けた情報に基づいて、配信要求で指定されたコンテンツ識別情報に対応するエニーキャストアドレス情報を取得する手段と、配信要求で指定されたコンテンツ識別情報に対応するエニーキャストアドレス情報を用いて、エニーキャストリクエストを送信する手段と、エニーキャストリプライを受信する手段と、エニーキャストリプライの受信順序に基づいて、配信要求で指定されたコンテンツ識別情報の示すコンテンツの送信先を決定する送信先決定手段と、送信先決定手段によって決定された送信先に、配信要求で指定されたコンテンツ識別情報の示すコンテンツを送信する手段とを具備する。エニーキャストグループに属するクライアントは、エニーキャスト配信におけるエニーキャストリクエストを受信する手段と、エニーキャストリクエストの送信元にエニーキャストリプライを返す手段と、エニーキャストリクエストの送信元からコンテンツを受信する受信手段と、受信したコンテンツを記録する記録手段と、エニーキャストグループに属する他のクライアントに保持されているコンテンツのバージョン情報と、クライアントに保持されているコンテンツのバージョン情報とを比較するバージョン比較手段と、バージョン比較手段による比較の結果に基づき、クライアントに保持されているコンテンツのバージョンが他のクライアントに保持されているコンテンツのバージョンよりも新しい場合に、他のクライアントに対してコンテンツの新バージョンをP2P通信で送信し、クライアントに保持されているコンテンツのバージョンが他のクライアントに保持されているコンテンツのバージョンよりも古い場合に、他のクライアントからコンテンツの新バージョンをP2P通信で受信するP2P通信手段とを具備する
【0014】
第3の発明は、マルチキャスト配信を用いて配信されたコンテンツを受信する受信手段と、受信したコンテンツを記録する記録手段と、同一のマルチキャストグループに属する他のクライアントに保持されているコンテンツのバージョン情報と、記録手段に記録されているコンテンツのバージョン情報とを比較するバージョン比較手段と、バージョン比較手段による比較の結果に基づき、記録手段に記録されているコンテンツのバージョンが他のクライアントに保持されているコンテンツのバージョンよりも新しい場合に、他のクライアントに対してコンテンツの新バージョンをP2P通信で送信し、記録手段に記録されているコンテンツのバージョンが他のクライアントに保持されているコンテンツのバージョンよりも古い場合に、他のクライアントからコンテンツの新バージョンをP2P通信で受信するP2P通信手段とを具備する通信装置である。
【0015】
第4の発明は、エニーキャスト配信におけるエニーキャストリクエストを受信する手段と、エニーキャストリクエストの送信元にエニーキャストリプライを返す手段と、エニーキャストリクエストの送信元からコンテンツを受信する受信手段と、受信した前記コンテンツを記録する記録手段と、同一のエニーキャストグループに属する他のクライアントに保持されているコンテンツのバージョン情報と、記録手段に記録されているコンテンツのバージョン情報とを比較するバージョン比較手段と、バージョン比較手段による比較の結果に基づき、記録手段に記録されているコンテンツのバージョンが他のクライアントに保持されているコンテンツのバージョンよりも新しい場合に、他のクライアントに対してコンテンツの新バージョンをP2P通信で送信し、記録手段に記憶されているコンテンツのバージョンが他のクライアントに保持されているコンテンツのバージョンよりも古い場合に、他のクライアントからコンテンツの新バージョンをP2P通信で受信するP2P通信手段とを具備する通信装置である。
【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…バージョン管理情報

Claims (13)

  1. サーバから複数のクライアントに配信対象のコンテンツを送信する通信システムにおいて、
    前記サーバは、
    前記配信対象のコンテンツを示すコンテンツ識別情報を指定する配信要求を受け付ける受付手段と、
    マルチキャスト配信におけるマルチキャストグループを指定するマルチキャストアドレス情報とコンテンツ識別情報とを対応付けた情報に基づいて、前記配信要求で指定されたコンテンツ識別情報に対応するマルチキャストアドレス情報を取得する手段と、
    前記配信要求で指定されたコンテンツ識別情報に対応するマルチキャストアドレス情報を用いて、前記配信要求で指定されたコンテンツ識別情報の示すコンテンツのマルチキャスト配信を実行する配信手段と
    を具備し、
    前記マルチキャストグループに属するクライアントは、
    前記マルチキャスト配信を用いて配信された前記コンテンツを受信する受信手段と、
    受信した前記コンテンツを記録する記録手段と、
    前記マルチキャストグループに属する他のクライアントに保持されている前記コンテンツのバージョン情報と、前記クライアントに保持されている前記コンテンツのバージョン情報とを比較するバージョン比較手段と、
    前記バージョン比較手段による比較の結果に基づき、前記クライアントに保持されている前記コンテンツのバージョンが前記他のクライアントに保持されている前記コンテンツのバージョンよりも新しい場合に、前記他のクライアントに対して前記コンテンツの新バージョンをP2P通信で送信し、前記クライアントに保持されている前記コンテンツのバージョンが前記他のクライアントに保持されている前記コンテンツのバージョンよりも古い場合に、前記他のクライアントから前記コンテンツの新バージョンをP2P通信で受信するP2P通信手段と
    を具備する
    ことを特徴とする通信システム
  2. 請求項1記載の通信システムにおいて、
    前記配信要求で指定されたコンテンツ識別情報は、前記配信対象のコンテンツのバージョン情報を含み、
    前記サーバは、前記配信要求で指定されたコンテンツ識別情報のバージョン情報と前記配信手段によって配信済みの前記コンテンツを示すコンテンツ識別情報のバージョン情報を比較する手段をさらに具備し、
    前記配信手段は、前記配信要求で指定されたコンテンツ識別情報に含まれているバージョン情報が、前記配信手段によって配信済みの前記コンテンツを示すコンテンツ識別情報のバージョン情報よりも新しい場合、マルチキャスト配信を実行する
    ことを特徴とする通信システム
  3. 請求項1又は請求項2記載の通信システムにおいて、
    前記複数のクライアントの保持するコンテンツを示すコンテンツ識別情報を前記複数のクライアントから取得し、前記複数のクライアントの中の共通のコンテンツを保持するクライアントの中から、前記P2P通信を行う前記クライアントと前記他のクライアントとを決定し、前記クライアントと前記他のクライアントに通信先を通知する通信先決定サーバをさらに具備することを特徴とする通信システム
  4. 請求項1乃至請求項3のいずれか1項に記載の通信システムにおいて、
    前記受信手段によって受信された前記コンテンツの完全性を確認し、完全性が確保されていなければ前記受信手段によって受信された前記コンテンツを破棄する手段をさらに具備する通信システム
  5. サーバから複数のクライアントに配信対象のコンテンツを送信する通信システムにおいて、
    前記サーバは、
    前記配信対象のコンテンツを示すコンテンツ識別情報を指定する配信要求を受け付ける受付手段と、
    エニーキャスト配信におけるエニーキャストグループを指定するエニーキャストアドレス情報とコンテンツ識別情報とを対応付けた情報に基づいて、前記配信要求で指定されたコンテンツ識別情報に対応するエニーキャストアドレス情報を取得する手段と、
    前記配信要求で指定されたコンテンツ識別情報に対応するエニーキャストアドレス情報を用いて、エニーキャストリクエストを送信する手段と、
    エニーキャストリプライを受信する手段と、
    前記エニーキャストリプライの受信順序に基づいて、前記配信要求で指定されたコンテンツ識別情報の示すコンテンツの送信先を決定する送信先決定手段と、
    前記送信先決定手段によって決定された送信先に、前記配信要求で指定されたコンテンツ識別情報の示すコンテンツを送信する手段と
    を具備し、
    前記エニーキャストグループに属するクライアントは、
    前記エニーキャスト配信における前記エニーキャストリクエストを受信する手段と、
    前記エニーキャストリクエストの送信元に前記エニーキャストリプライを返す手段と、
    前記エニーキャストリクエストの送信元から前記コンテンツを受信する受信手段と、
    受信した前記コンテンツを記録する記録手段と、
    前記エニーキャストグループに属する他のクライアントに保持されている前記コンテンツのバージョン情報と、前記クライアントに保持されている前記コンテンツのバージョン情報とを比較するバージョン比較手段と、
    前記バージョン比較手段による比較の結果に基づき、前記クライアントに保持されている前記コンテンツのバージョンが前記他のクライアントに保持されている前記コンテンツのバージョンよりも新しい場合に、前記他のクライアントに対して前記コンテンツの新バージョンをP2P通信で送信し、前記クライアントに保持されている前記コンテンツのバージョンが前記他のクライアントに保持されている前記コンテンツのバージョンよりも古い場合に、前記他のクライアントから前記コンテンツの新バージョンをP2P通信で受信するP2P通信手段と
    を具備する
    ことを特徴とする通信システム
  6. 請求項5記載の通信システムにおいて、
    前記送信先決定手段は、前記配信要求で指定されたコンテンツ識別情報の示すコンテンツを未だ送信してなく先に受信したエニーキャストリプライの送信元を、前記配信要求で指定されたコンテンツ識別情報の示すコンテンツの送信先として決定することを特徴とする通信システム
  7. 請求項5又は請求項6記載の通信システムにおいて、
    前記クライアントは、前記エニーキャストリクエストの送信元から前記コンテンツのバージョン情報を受信して新バージョンか否か判断し、新バージョンと判断された場合に前記エニーキャストリクエストの送信元にコンテンツ送信要求を返す手段をさらに具備し、
    前記受信手段は、新バージョンと判断された前記コンテンツを受信する
    ことを特徴とする通信システム
  8. マルチキャスト配信を用いて配信されたコンテンツを受信する受信手段と、
    受信した前記コンテンツを記録する記録手段と、
    同一のマルチキャストグループに属する他のクライアントに保持されている前記コンテンツのバージョン情報と、前記記録手段に記録されている前記コンテンツのバージョン情報とを比較するバージョン比較手段と、
    前記バージョン比較手段による比較の結果に基づき、前記記録手段に記録されている前記コンテンツのバージョンが前記他のクライアントに保持されている前記コンテンツのバージョンよりも新しい場合に、前記他のクライアントに対して前記コンテンツの新バージョンをP2P通信で送信し、前記記録手段に記録されている前記コンテンツのバージョンが前記他のクライアントに保持されている前記コンテンツのバージョンよりも古い場合に、前記他のクライアントから前記コンテンツの新バージョンをP2P通信で受信するP2P通信手段と
    を具備する通信装置。
  9. エニーキャスト配信におけるエニーキャストリクエストを受信する手段と、
    前記エニーキャストリクエストの送信元にエニーキャストリプライを返す手段と、
    前記エニーキャストリクエストの送信元からコンテンツを受信する受信手段と、
    受信した前記コンテンツを記録する記録手段と、
    同一のエニーキャストグループに属する他のクライアントに保持されている前記コンテンツのバージョン情報と、前記記録手段に記録されている前記コンテンツのバージョン情報とを比較するバージョン比較手段と、
    前記バージョン比較手段による比較の結果に基づき、前記記録手段に記録されている前記コンテンツのバージョンが前記他のクライアントに保持されている前記コンテンツのバージョンよりも新しい場合に、前記他のクライアントに対して前記コンテンツの新バージョンをP2P通信で送信し、前記記録手段に記憶されている前記コンテンツのバージョンが前記他のクライアントに保持されている前記コンテンツのバージョンよりも古い場合に、前記他のクライアントから前記コンテンツの新バージョンをP2P通信で受信するP2P通信手段と
    を具備する通信装置
  10. コンピュータを、
    マルチキャスト配信を用いて配信されたコンテンツを受信する受信手段、
    受信した前記コンテンツを記録手段に記録する手段、
    同一のマルチキャストグループに属する他のクライアントに保持されている前記コンテンツのバージョン情報と、前記記録手段に記録されている前記コンテンツのバージョン情報とを比較するバージョン比較手段、
    前記バージョン比較手段による比較の結果に基づき、前記記録手段に記録されている前記コンテンツのバージョンが前記他のクライアントに保持されている前記コンテンツのバージョンよりも新しい場合に、前記他のクライアントに対して前記コンテンツの新バージョンをP2P通信で送信し、前記記録手段に記録されている前記コンテンツのバージョンが前記他のクライアントに保持されている前記コンテンツのバージョンよりも古い場合に、前記他のクライアントから前記コンテンツの新バージョンをP2P通信で受信するP2P通信手段
    として機能させるためのプログラム。
  11. コンピュータを、
    エニーキャスト配信におけるエニーキャストリクエストを受信する手段、
    前記エニーキャストリクエストの送信元にエニーキャストリプライを返す手段、
    前記エニーキャストリクエストの送信元からコンテンツを受信する受信手段、
    受信した前記コンテンツを記録手段に記録する手段、
    同一のエニーキャストグループに属する他のクライアントに保持されている前記コンテンツのバージョン情報と、前記記録手段に記録されている前記コンテンツのバージョン情報とを比較するバージョン比較手段、
    前記バージョン比較手段による比較の結果に基づき、前記記録手段に記録されている前記コンテンツのバージョンが前記他のクライアントに保持されている前記コンテンツのバージョンよりも新しい場合に、前記他のクライアントに対して前記コンテンツの新バージョンをP2P通信で送信し、前記記録手段に記録されている前記コンテンツのバージョンが前記他のクライアントに保持されている前記コンテンツのバージョンよりも古い場合に、前記他のクライアントから前記コンテンツの新バージョンをP2P通信で受信するP2P通信手段
    として機能させるためのプログラム。
  12. 通信装置が、マルチキャスト配信を用いて配信されたコンテンツを受信し、
    前記通信装置が、受信した前記コンテンツを記録手段に記録し、
    前記通信装置が、同一のマルチキャストグループに属する他のクライアントに保持されている前記コンテンツのバージョン情報と、前記記録手段に記録されている前記コンテンツのバージョン情報とを比較し、
    前記比較の結果に基づき、前記記録手段に記録されている前記コンテンツのバージョンが前記他のクライアントに保持されている前記コンテンツのバージョンよりも新しい場合に、前記他のクライアントに対して前記コンテンツの新バージョンをP2P通信で送信し、前記記録手段に記録されている前記コンテンツのバージョンが前記他のクライアントに保持されている前記コンテンツのバージョンよりも古い場合に、前記他のクライアントから前記コンテンツの新バージョンをP2P通信で受信する
    ことを特徴とする通信方法
  13. 通信装置が、エニーキャスト配信におけるエニーキャストリクエストを受信し、
    前記通信装置が、前記エニーキャストリクエストの送信元にエニーキャストリプライを返し、
    前記通信装置が、前記エニーキャストリクエストの送信元からコンテンツを受信し、
    前記通信装置が、受信した前記コンテンツを記録手段に記録し、
    前記通信装置が、同一のエニーキャストグループに属する他のクライアントに保持されている前記コンテンツのバージョン情報と、前記記録手段に記録されている前記コンテンツのバージョン情報とを比較し、
    前記通信装置が、前記比較の結果に基づき、前記記録手段に記録されている前記コンテンツのバージョンが前記他のクライアントに保持されている前記コンテンツのバージョンよりも新しい場合に、前記他のクライアントに対して前記コンテンツの新バージョンをP2P通信で送信し、前記記録手段に記録されている前記コンテンツのバージョンが前記他のクライアントに保持されている前記コンテンツのバージョンよりも古い場合に、前記他のクライアントから前記コンテンツの新バージョンをP2P通信で受信する
    ことを特徴とする通信方法。
JP2003203791A 2003-07-30 2003-07-30 通信システム、通信装置、プログラム並びに通信方法 Expired - Fee Related JP4256218B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003203791A JP4256218B2 (ja) 2003-07-30 2003-07-30 通信システム、通信装置、プログラム並びに通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003203791A JP4256218B2 (ja) 2003-07-30 2003-07-30 通信システム、通信装置、プログラム並びに通信方法

Publications (2)

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

Family

ID=34263017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003203791A Expired - Fee Related JP4256218B2 (ja) 2003-07-30 2003-07-30 通信システム、通信装置、プログラム並びに通信方法

Country Status (1)

Country Link
JP (1) JP4256218B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4774814B2 (ja) * 2005-06-06 2011-09-14 日本電気株式会社 サーバアクセス制御システム、サーバアクセス制御方法およびサーバアクセス制御プログラム
JP4747733B2 (ja) 2005-08-22 2011-08-17 ブラザー工業株式会社 ノード装置、共用情報更新処理プログラム、共用情報更新方法、及び情報共有システム
US8291093B2 (en) * 2005-12-08 2012-10-16 Microsoft Corporation Peer-to-peer remediation
RU2454011C2 (ru) 2006-07-24 2012-06-20 Эл Джи Электроникс Инк. Двухточечные радиоканалы для службы радиовещания
CN102037678B (zh) * 2008-05-20 2013-09-25 汤姆森许可贸易公司 分发在多个接收机处可用的内容的映射图的系统和方法
EP2294795B1 (en) * 2008-07-02 2013-12-11 Thomson Licensing Device and method for disseminating content data between peers in a p2p mode, by using a bipartite peer overlay
JP2010054100A (ja) * 2008-08-27 2010-03-11 Sharp Corp 蒸気供給装置及び加熱調理器
JP2010206736A (ja) * 2009-03-05 2010-09-16 Nec Corp ネットワークシステム、その通信方法、ルータ、およびプログラム

Also Published As

Publication number Publication date
JP2005051351A (ja) 2005-02-24

Similar Documents

Publication Publication Date Title
US6363081B1 (en) System and method for sharing a network port among multiple applications
JP4965574B2 (ja) 複数のプロセスにおけるポートの共有
JP2020162146A (ja) 仮想ネットワークにおける分散型フロー状態p2p設定のためのシステムおよび方法
JP4664143B2 (ja) パケット転送装置、通信網及びパケット転送方法
US20030018914A1 (en) Stateful packet forwarding in a firewall cluster
CN101272627B (zh) 实现漫游的网络接入控制方法及设备
US20120215747A1 (en) Data uploading method, data downloading method, and data system
US20060143699A1 (en) Firewall device
CN106878483A (zh) 一种ip地址分配方法及装置
US11856065B2 (en) Data transmission for service integration between a virtual private cloud and an intranet
EP2922246B1 (en) Method and data center network for cross-service zone communication
RU2344473C2 (ru) Сетевая система, прокси-сервер, способ управления сеансом
US20190089648A1 (en) Resource subscription method, resource subscription apparatus, and resource subscription system
CN112367666B (zh) 一种5G核心网中pNF通过NRF认证cNF的方法、装置及系统
CN113824685B (zh) 一种基于Android VpnService实现的移动端定向流量代理系统与方法
JP4256218B2 (ja) 通信システム、通信装置、プログラム並びに通信方法
CN113852483B (zh) 网络切片连接管理方法、终端及计算机可读存储介质
JP4494279B2 (ja) マルチキャスト制御方法、マルチキャスト制御装置、及びコンテンツ属性情報管理装置、並びにプログラム
Stapp DHCPv6 Bulk Leasequery
US7689648B2 (en) Dynamic peer network extension bridge
JP2003179647A (ja) パケット転送装置およびパケット転送方法
US10849179B1 (en) Mobile network tool
US8996656B2 (en) File transfer method in converged IP messaging system
JP4554420B2 (ja) ゲートウェイ装置及びそのプログラム
CN112073403A (zh) 一种ap隔离状态配网方法、终端及可读存储介质

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