(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022155818
(43)【公開日】2022-10-14
(54)【発明の名称】情報処理システム、プログラム、方法および管理装置
(51)【国際特許分類】
G06F 13/00 20060101AFI20221006BHJP
G06F 8/65 20180101ALI20221006BHJP
【FI】
G06F13/00 530A
G06F8/65
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2021059229
(22)【出願日】2021-03-31
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】特許業務法人扶桑国際特許事務所
(72)【発明者】
【氏名】中村 勝明
【テーマコード(参考)】
5B084
5B376
【Fターム(参考)】
5B084AA01
5B084AA12
5B084AB16
5B084AB37
5B084BA09
5B084BB11
5B084DB04
5B084DC02
5B084DC03
5B084EA02
5B376AB01
5B376AB37
5B376AB40
5B376CA36
(57)【要約】
【課題】更新データのダウンロード負荷を軽減する。
【解決手段】情報処理装置10a,10b,10c,・・・のそれぞれは、自装置で動作するプログラムに対応する更新データを伝送経路1,2のどちらを介してダウンロードしたかを示す履歴情報11に基づいて、更新データを伝送経路1を介してダウンロードする可能性を推定し、推定結果に応じた指標情報12を管理装置20に送信する。管理装置20は、情報処理装置10a,10b,10c,・・・のそれぞれから受信した指標情報12に基づいて、情報処理装置10a,10b,10c,・・・のそれぞれを複数のグループのいずれかに分類し、分類結果を示す分類情報21を情報処理装置10a,10b,10c,・・・に送信する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の情報処理装置と、前記複数の情報処理装置に対して第1の伝送経路を介して接続された管理装置とを有する情報処理システムであって、
前記複数の情報処理装置のそれぞれは、
自装置で動作するプログラムに対応する更新データを前記第1の伝送経路と第2の伝送経路のどちらを介してダウンロードしたかを示す履歴情報に基づいて、前記更新データを前記第1の伝送経路を介してダウンロードする可能性を推定し、前記可能性の推定結果に応じた指標情報を前記管理装置に送信し、
自装置を複数のグループのいずれに分類するかを示す分類情報を前記管理装置から受信し、前記分類情報に基づいて前記複数のグループのうち自装置が属するグループを判別し、判別されたグループに応じたタイミングで前記更新データをダウンロードし、
前記管理装置は、前記複数の情報処理装置のそれぞれから受信した前記指標情報に基づいて、前記複数の情報処理装置のそれぞれを複数のグループのいずれかに分類し、分類結果を示す前記分類情報を前記複数の情報処理装置に送信する、
情報処理システム。
【請求項2】
前記複数の情報処理装置のそれぞれは、複数種類のプログラムの中から自装置で動作するプログラムの種類を判別し、前記種類の判別結果に応じた判別情報を前記指標情報とともに前記管理装置に送信し、
前記管理装置は、前記複数の情報処理装置のそれぞれから受信した前記指標情報および前記判別情報と、前記複数種類のプログラムのそれぞれに対応する前記更新データのデータサイズとに基づいて、前記複数の情報処理装置のそれぞれを前記複数のグループのいずれかに分類する、
請求項1記載の情報処理システム。
【請求項3】
前記更新データのデータサイズが大きいほど多数生成されるように前記複数種類のプログラムのそれぞれに対して1以上の識別情報が生成され、
前記複数の情報処理装置のそれぞれは、自装置で動作するプログラムに対応する前記識別情報の中から、同一種類のプログラムが動作する前記情報処理装置間で同一の前記識別情報の割り当て数が均一になるように、自装置に対して前記識別情報を割り当て、割り当てられた前記識別情報を前記判別情報として前記管理装置に送信し、
前記管理装置は、前記複数の情報処理装置のそれぞれから受信した前記指標情報および前記判別情報に基づいて、前記複数種類のプログラムのすべてに対応する前記識別情報を前記複数のグループのいずれかに分類し、前記分類情報として前記識別情報に対するグループの割り当て結果を示す情報を前記複数の情報処理装置に送信し、
前記複数の情報処理装置のそれぞれは、受信した前記分類情報に基づいて、自装置に割り当てられた前記識別情報に対応付けられたグループを、自装置が属するグループと認識する、
請求項2記載の情報処理システム。
【請求項4】
前記管理装置は、前記複数の情報処理装置のそれぞれから受信した前記指標情報および前記判別情報に基づき、前記複数種類のプログラムのすべてに対応する前記識別情報のそれぞれについて、受信した前記指標情報の合計値を算出し、前記合計値のすべてを合計した全体合計値に対する前記合計値の比率を前記識別情報ごとに算出し、前記複数のグループのそれぞれにおける前記比率の合算値が均等になるように前記識別情報を前記複数のグループのいずれかに分類する、
請求項3記載の情報処理システム。
【請求項5】
前記管理装置は、前記複数種類のプログラムごとに、対応する前記識別情報のうち前記複数の情報処理装置のいずれかによって直近に割り当てられた前記識別情報を管理情報に記録し、
前記複数の情報処理装置のそれぞれは、自装置に対する前記識別情報の割り当ての際、前記管理情報に記録された、直近に割り当てられた前記識別情報を取得し、当該識別情報とは異なる前記識別情報を自装置に割り当てることで、同一種類のプログラムが動作する前記情報処理装置間で同一の前記識別情報の割り当て数が均一になるように自装置に前記識別情報を割り当てる、
請求項3または4記載の情報処理システム。
【請求項6】
複数の情報処理装置に対して第1の伝送経路を介して接続されたコンピュータに、
前記複数の情報処理装置のそれぞれから、前記複数の情報処理装置のそれぞれにおいて動作するプログラムに対応する更新データを前記第1の伝送経路と第2の伝送経路のうち前記第1の伝送経路を介してダウンロードする可能性の推定結果に応じた指標情報を受信し、
受信した前記各指標情報に基づいて、前記複数の情報処理装置のそれぞれを、前記更新データのダウンロードタイミングが異なる複数のグループのいずれかに分類し、分類結果を示す分類情報を前記複数の情報処理装置に送信する、
処理を実行させる情報処理プログラム。
【請求項7】
前記受信では、前記複数の情報処理装置のそれぞれにおいて複数種類のプログラムのうち自装置で動作するプログラムの種類を判別した判別結果に応じた判別情報を、前記指標情報とともに受信し、
前記分類では、前記複数の情報処理装置のそれぞれから受信した前記指標情報および前記判別情報と、前記複数種類のプログラムのそれぞれに対応する前記更新データのデータサイズとに基づいて、前記複数の情報処理装置のそれぞれを前記複数のグループのいずれかに分類する、
請求項6記載の情報処理プログラム。
【請求項8】
前記更新データのデータサイズが大きいほど多数生成されるように前記複数種類のプログラムのそれぞれに対して1以上の識別情報が生成され、
前記判別情報の受信では、前記複数の情報処理装置のそれぞれに対して割り当てられた前記識別情報を前記判別情報として前記複数の情報処理装置から受信し、前記複数の情報処理装置のそれぞれに対応する前記識別情報は、自装置で動作するプログラムに対応する前記識別情報の中から、同一種類のプログラムが動作する前記情報処理装置間で同一の前記識別情報の割り当て数が均一になるように、前記複数の情報処理装置のそれぞれによって割り当てられ、
前記分類情報の送信では、前記複数の情報処理装置のそれぞれから受信した前記指標情報および前記判別情報に基づいて、前記複数種類のプログラムのすべてに対応する前記識別情報を前記複数のグループのいずれかに分類し、前記分類情報として前記識別情報に対するグループの割り当て結果を示す情報を前記複数の情報処理装置に送信する、
請求項7記載の情報処理プログラム。
【請求項9】
前記分類では、前記複数の情報処理装置のそれぞれから受信した前記指標情報および前記判別情報に基づき、前記複数種類のプログラムのすべてに対応する前記識別情報のそれぞれについて、受信した前記指標情報の合計値を算出し、前記合計値のすべてを合計した全体合計値に対する前記合計値の比率を前記識別情報ごとに算出し、前記複数のグループのそれぞれにおける前記比率の合算値が均等になるように前記識別情報を前記複数のグループのいずれかに分類する、
請求項8記載の情報処理プログラム。
【請求項10】
前記コンピュータに、前記複数種類のプログラムごとに、対応する前記識別情報のうち前記複数の情報処理装置のいずれかによって直近に割り当てられた前記識別情報を管理情報に記録する処理をさらに実行させ、
前記複数の情報処理装置のそれぞれに対する前記識別情報の割り当てでは、前記複数の情報処理装置のそれぞれは、前記管理情報に記録された、直近に割り当てられた前記識別情報を取得し、当該識別情報とは異なる前記識別情報を自装置に割り当てることで、同一種類のプログラムが動作する前記情報処理装置間で同一の前記識別情報の割り当て数が均一になるように自装置に前記識別情報を割り当てる、
請求項8または9記載の情報処理プログラム。
【請求項11】
複数の情報処理装置に対して第1の伝送経路を介して接続されたコンピュータが、
前記複数の情報処理装置のそれぞれから、前記複数の情報処理装置のそれぞれにおいて動作するプログラムに対応する更新データを前記第1の伝送経路と第2の伝送経路のうち前記第1の伝送経路を介してダウンロードする可能性の推定結果に応じた指標情報を受信し、
受信した前記各指標情報に基づいて、前記複数の情報処理装置のそれぞれを、前記更新データのダウンロードタイミングが異なる複数のグループのいずれかに分類し、分類結果を示す分類情報を前記複数の情報処理装置に送信する、
情報処理方法。
【請求項12】
複数の情報処理装置に対して第1の伝送経路を介して接続された管理装置であって、
前記複数の情報処理装置のそれぞれから、前記複数の情報処理装置のそれぞれにおいて動作するプログラムに対応する更新データを前記第1の伝送経路と第2の伝送経路のうち前記第1の伝送経路を介してダウンロードする可能性の推定結果に応じた指標情報を受信し、
受信した前記各指標情報に基づいて、前記複数の情報処理装置のそれぞれを、前記更新データのダウンロードタイミングが異なる複数のグループのいずれかに分類し、分類結果を示す分類情報を前記複数の情報処理装置に送信する、処理部、
を有する管理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、プログラム、方法および管理装置に関する。
【背景技術】
【0002】
企業などの情報処理システムでは、システム内の各機器のセキュリティ状態を適切に管理することが求められる。例えば、各機器におけるセキュリティパッチの適用状況を適切に管理することで、情報処理システムのセキュリティを向上させることができる。
【0003】
セキュリティ管理に関しては、次のような技術が提案されている。例えば、利用者の属性情報や端末装置のプロパティ情報に基づいてセキュリティに関するポリシー情報を決定し、ポリシー情報に基づいて情報システム内の各機器の設定情報を作成する情報システム設定装置が提案されている。また、サーバがパッチをVPN(Virtual Private Network)を介してリモートオフィス内の各コンピュータに送る代わりに、パッチがサーバからリレイに送られ、リレイから他のコンピュータに配布されることで、ネットワーク上のリモートグループに対するVPNボトルネックを取り除くようにしたシステムが提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006-184936号公報
【特許文献2】国際公開第2004/009428号
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、企業などの組織内の内部ネットワーク上の装置と、インターネットなどの外部ネットワーク上の装置との間では、VPNを用いてセキュアな通信が行われることが多い。例えば、外部ネットワークに接続された情報処理装置(社員の端末装置など)が、プログラムの更新データを内部ネットワーク上の管理装置からダウンロードする場合には、VPNを介してダウンロードが行われる。
【0006】
近年、テレワークの普及に伴い、外部ネットワークに接続されて利用される情報処理装置の台数が増加している。このため、これらの情報処理装置がプログラムの更新データをダウンロードする際に、VPNを用いた通信負荷が増大している。更新データのダウンロード時の通信負荷を軽減する方法としては、例えば、情報処理装置を複数のグループに分類し、グループごとにダウンロードのタイミングをずらす方法が考えられる。しかし、単に情報処理装置を同数ずつグループ化するだけでは、VPNの通信負荷を均等に分散できず、ダウンロードのタイミングによっては通信負荷の軽減量が不十分になるという問題がある。
【0007】
1つの側面では、本発明は、更新データのダウンロード負荷を軽減することが可能な情報処理システム、プログラム、方法および管理装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
1つの案では、複数の情報処理装置と、複数の情報処理装置に対して第1の伝送経路を介して接続された管理装置とを有する情報処理システムが提供される。この情報処理システムにおいて、複数の情報処理装置のそれぞれは、自装置で動作するプログラムに対応する更新データを第1の伝送経路と第2の伝送経路のどちらを介してダウンロードしたかを示す履歴情報に基づいて、更新データを第1の伝送経路を介してダウンロードする可能性を推定し、可能性の推定結果に応じた指標情報を管理装置に送信し、自装置を複数のグループのいずれに分類するかを示す分類情報を管理装置から受信し、分類情報に基づいて複数のグループのうち自装置が属するグループを判別し、判別されたグループに応じたタイミングで更新データをダウンロードする。管理装置は、複数の情報処理装置のそれぞれから受信した指標情報に基づいて、複数の情報処理装置のそれぞれを複数のグループのいずれかに分類し、分類結果を示す分類情報を複数の情報処理装置に送信する。
【0009】
また、1つの案では、上記の管理装置と同様の処理をコンピュータに実行させる情報処理プログラムが提供される。
さらに、1つの案では、上記の管理装置と同様の処理をコンピュータが実行する情報処理方法が提供される。
【0010】
また、1つの案では、上記の管理装置と同様の処理を実行する管理装置が提供される。
【発明の効果】
【0011】
1つの側面では、更新データのダウンロード負荷を軽減できる。
【図面の簡単な説明】
【0012】
【
図1】第1の実施の形態に係る情報処理システムの構成例および処理例を示す図である。
【
図2】第2の実施の形態に係る情報処理システムの構成例を示す図である。
【
図4】管理サーバおよびPCが備える処理機能の構成例を示す図である。
【
図5】管理サーバに記憶される管理テーブルのデータ構成例を示す図である。
【
図6】グループ化のために使用されるレジストリの設定処理の概要を示す図である。
【
図8】ラベルのグループ化処理について示す図である。
【
図9】グループごとのパッチ適用タイミングについて示す図である。
【
図10】管理サーバによるOSチェックコマンド送信処理の手順を示すフローチャートの例である。
【
図11】グループ通知処理の手順を示すフローチャートの例である。
【
図12】PCによるOSチェック処理の手順を示すフローチャートの例である。
【
図13】PCによる環境チェック処理の手順を示すフローチャートの例である。
【
図14】PCによるパッチ適用処理の手順を示すフローチャートの例である。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理システムの構成例および処理例を示す図である。
図1に示す情報処理システムは、情報処理装置10a,10b,10c,・・・と管理装置20を含む。情報処理装置10a,10b,10c,・・・と管理装置20とは、伝送経路1を介して接続されている。また、情報処理装置10a,10b,10c,・・・は、伝送経路1とは別の伝送経路2にも接続されている。
【0014】
情報処理装置10a,10b,10c,・・・は、それぞれ自装置で動作するプログラムに対応する更新データを、伝送経路1,2のどちらを介してもダウンロードすることが可能となっている。伝送経路1を経由する場合、例えば、管理装置20から更新データがダウンロードされる。一方、伝送経路2を経由する場合、伝送経路1を経由する場合のダウンロード元機器とは異なるダウンロード元機器(例えば、プログラムのベンダのWebサーバ)から、更新データがダウンロードされる。
【0015】
管理装置20は、伝送経路1を介した更新データのダウンロード負荷ができるだけ均等になるように、情報処理装置10a,10b,10c,・・・を複数のグループに分類して、グループごとに更新データのダウンロードが行われるようにする。更新データのダウンロード負荷(ダウンロードデータ量)がグループ間で均等になった場合に、伝送経路1を介したダウンロード負荷を最も軽減できる。これは、ダウンロード時における伝送経路1の最大負荷を最小化できるからである。
【0016】
ここで、更新データのダウンロード負荷をグループ間で均等にする方法としては、情報処理装置を同数ずつグループ化する方法が考えられる。しかし、
図1のように、情報処理装置10a,10b,10c,・・・のそれぞれが伝送経路1だけでなく伝送経路2からも更新データをダウンロードできる場合には、この方法ではグループ間でダウンロード負荷が均等になるとは限らない。それは、一部の情報処理装置が伝送経路1を介さずに伝送経路2を介して更新データをダウンロードする可能性があるからである。そこで、本実施の形態では、情報処理装置10a,10b,10c,・・・のそれぞれが伝送経路1を介して更新データをダウンロードする可能性が推定され、その推定結果を考慮してグループ化が実行される。
【0017】
本実施の形態に係る情報処理システムでは、次のような手順でグループ化処理が実行される。
情報処理装置10a,10b,10c,・・・のそれぞれは、履歴情報11を記憶している。履歴情報11には、自装置(対応する情報処理装置)が、更新データを伝送経路1,2のどちらを介してダウンロードしたかを示す履歴が保持されている。情報処理装置10a,10b,10c,・・・のそれぞれは、履歴情報11を参照して以下のステップS1,S2の処理を実行する。
【0018】
例えば、情報処理装置10aは、自装置内の履歴情報11に基づいて、更新データを伝送経路1を介してダウンロードする可能性を推定する(ステップS1)。情報処理装置10aは、このような可能性の推定結果に応じた指標情報12を管理装置20に送信する(ステップS2)。
【0019】
このようにして、管理装置20は、情報処理装置10a,10b,10c,・・・のそれぞれから指標情報12を受信する。管理装置20は、受信した指標情報12に基づいて、情報処理装置10a,10b,10c,・・・のそれぞれを複数のグループのいずれかに分類する(ステップS3)。この分類処理では、例えば、指標情報12に基づき、更新データを伝送経路1を介してダウンロードする可能性の合計値がグループごとに略均等になるように、情報処理装置10a,10b,10c,・・・がグループ化される。これにより、所属する情報処理装置の台数が多いグループほど、その中で更新データを伝送経路1を介さずに伝送経路2を介してダウンロードする情報処理装置が多くなる可能性が高くなる。その結果として、グループごとに実際に伝送経路1を介して更新データをダウンロードする情報処理装置の台数が均等になる。
【0020】
管理装置20は、グループの分類結果を示す分類情報21を情報処理装置10a,10b,10c,・・・のそれぞれに送信する(ステップS4)。情報処理装置10a,10b,10c,・・・のそれぞれは、分類情報21を受信して、以下のステップS5,S6の処理を実行する。
【0021】
例えば、情報処理装置10aは、受信した分類情報21に基づいて、自装置が属するグループを判別する(ステップS5)。情報処理装置10aは、判別されたグループに応じたタイミングで、更新データを伝送経路1を介してダウンロードし、プログラムに適用する(ステップS6)。これにより、更新データのダウンロードのタイミングがグループごとに分散される。ただし、ステップS5では、すでに同じ更新データを伝送経路2を介してダウンロード済みである場合には、伝送経路1を介したダウンロードは行われない。
【0022】
以上の処理により、伝送経路1を介した更新データのダウンロード負荷を軽減することが可能となる。
〔第2の実施の形態〕
図2は、第2の実施の形態に係る情報処理システムの構成例を示す図である。
図2に示す情報処理システムは、管理サーバ100とPC(Personal Computer)200a,200b,200c,・・・を含む。なお、管理サーバ100は、
図1に示した管理装置20の一例である。また、PC200a,200b,200c,・・・は、
図1に示した情報処理装置10a,10b,10c,・・・の一例である。
【0023】
管理サーバ100は、企業などの組織が保有する資産(情報処理機器)を管理するサーバ装置である。本実施の形態では特に、管理サーバ100は、PC200a,200b,200c,・・・についてのセキュリティ対策の実行状況を管理する機能を備える。管理サーバ100は、内部ネットワーク301に接続されている。内部ネットワーク301は、上記の組織内で利用されるローカルなネットワーク(イントラネット)である。内部ネットワーク301は、例えば図示しないゲートウェイなどを介して、インターネット302に接続されている。
【0024】
PC200a,200b,200c,・・・は、管理サーバ100による管理対象のクライアントコンピュータであって、上記の組織に属するユーザが使用するユーザ端末である。PC200a,200b,200c,・・・は、有線または無線により、内部ネットワーク301とインターネット302のどちらにも接続可能になっている。一例として、PC200a,200b,200c,・・・が組織の施設内に存在する場合には内部ネットワーク301に接続し、施設外に存在する場合にはインターネット302に接続する。
【0025】
ただし、PC200a,200b,200c,・・・がインターネット302を介して管理サーバ100などの内部ネットワーク301上の機器と通信する場合、それらの機器とPC200a,200b,200c,・・・とはVPNを介して接続される。具体的には、内部ネットワーク301上にVPNアクセスポイント(図示せず)が設置され、PC200a,200b,200c,・・・は、VPNアクセスポイントとの間で暗号化された通信を行うことで、内部ネットワーク301上の機器と通信可能になる。VPNアクセスポイントは、例えば、VPNサーバ機能を備えるルータである。
【0026】
なお、以下の説明では、PC200a,200b,200c,・・・を特に限定せずに示す場合には、「PC200」と記載する場合がある。
図3は、PCのハードウェア構成例を示す図である。PC200は、例えば、
図3に示すようなハードウェア構成を有する。
図3に示すPC200は、プロセッサ201、RAM(Random Access Memory)202、HDD(Hard Disk Drive)203、表示装置204、入力装置205、読み取り装置206および通信インタフェース(I/F)207を備える。
【0027】
プロセッサ201は、PC200全体を統括的に制御する。プロセッサ201は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)またはPLD(Programmable Logic Device)である。また、プロセッサ201は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
【0028】
RAM202は、PC200の主記憶装置として使用される。RAM202には、プロセッサ201に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM202には、プロセッサ201による処理に必要な各種データが格納される。
【0029】
HDD203は、PC200の補助記憶装置として使用される。HDD203には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
【0030】
表示装置204は、プロセッサ201からの命令にしたがって画像を表示する。表示装置204としては、液晶ディスプレイや有機EL(ElectroLuminescence)ディスプレイなどがある。
【0031】
入力装置205は、ユーザによる入力操作に応じた信号をプロセッサ201に送信する。入力装置205としては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0032】
読み取り装置206には、可搬型記録媒体206aが脱着される。読み取り装置206は、可搬型記録媒体206aに記録されたデータを読み取ってプロセッサ201に送信する。可搬型記録媒体206aとしては、光ディスク、半導体メモリなどがある。
【0033】
通信インタフェース207は、ネットワーク300を介して他の装置との間でデータの送受信を行う。本実施の形態では、ネットワーク300には内部ネットワーク301およびインターネット302が含まれる。
【0034】
以上のようなハードウェア構成によって、PC200の処理機能を実現することができる。なお、管理サーバ100も、PC200と同様に、プロセッサや記憶装置を備えるコンピュータとして実現可能である。
【0035】
ところで、管理サーバ100は、PC200に実装されているプログラムの更新を指示し、プログラムの更新データをPC200に送信する機能を備える。本実施の形態では、更新対象のプログラムとしてOSを例示し、管理サーバ100は、更新データとしてOSのパッチ(セキュリティパッチなど)をPC200に送信するものとする。
【0036】
PC200は、内部ネットワーク301およびインターネット302のどちらに接続されている状態でも、管理サーバ100からパッチをダウンロードすることができる。インターネット302に接続されている状態では、PC200は、管理サーバ100からVPNを介してパッチをダウンロードすることになる。
【0037】
近年、いわゆるテレワークを社員に奨励する企業が急増していることから、インターネット302に接続されて使用されるPC200の台数が増加している。このような状態では、VPNを介してダウンロードされるパッチのデータ量が増大し、その結果、企業側のVPNアクセスポイントが過負荷になり、業務に支障をきたす可能性が生じる。例えば、インターネット302に接続されたPC200が仮想デスクトップにより内部ネットワーク301上のコンピュータを操作している場合、VPNのデータ量が増大すると、仮想デスクトップの動作が不安定になる可能性がある。
【0038】
このような問題を解決するために、インターネット302に接続されたPC200のすべてに対して一度にパッチを適用させずに、PC200を複数のグループに分類し、グループごとに分散してパッチを適用させることが考えられる。この方法では、グループごとのダウンロードデータ量をできるだけ均一にすることが求められる。グループごとのダウンロードデータ量を均一にできれば、VPNの伝送路を効率的に利用でき、また、VPNアクセスポイントに必要となる能力を最小化できるので設備コストを節約できる。
【0039】
ここで、パッチ適用時におけるPC200ごとのダウンロードデータ量が同じであれば、単にPC200を同じ台数ずつグループ分けするだけで、上記目的を容易に達成することができる。しかしながら、実際のパッチ適用では、以下のような理由から、パッチ適用時におけるPC200ごとのダウンロードデータ量は均一にならない場合が多い。
【0040】
第1の理由としては、PC200ごとにOSの種別(製品名やバージョン)が異なる場合があることが挙げられる。OSの種別が異なると適用すべきパッチも異なるので、OSの種別ごとにパッチのデータ量が異なる場合がある。このような場合、単にPC200を同じ台数ずつグループ分けするだけでは、グループごとのダウンロードデータ量は均一にならない。
【0041】
第2の理由としては、PC200がインターネット302に接続されている場合には、必ずしも管理サーバ100からVPN経由でパッチをダウンロードしない可能性があることが挙げられる。OSのパッチは通常、OSのベンダのWebサイト(OSベンダサイト)からも提供されているので、PC200は、インターネット302に接続されている場合、パッチをOSベンダサイトからダウンロードすることもできる。したがって、PC200の一部がOSベンダサイトからパッチをダウンロードすることが多い場合、単にPC200を同じ台数ずつグループ分けするだけでは、グループごとのダウンロードデータ量は均一にならない。また、OSの種別の違いに応じたパッチのデータ量を考慮してグループ化しても、やはりグループごとのダウンロードデータ量は均一にならない。
【0042】
そこで、本実施の形態に係る情報処理システムでは、管理サーバ100と各PC200とが協働することで、PC200ごとのOSのバージョンの違いと、PC200がOSベンダサイトからパッチをダウンロードする可能性とを考慮しながら、ダウンロードデータ量ができるだけ均一になるようにPC200がグループ分けされる。
【0043】
図4は、管理サーバおよびPCが備える処理機能の構成例を示す図である。
まず、管理サーバ100は、記憶部110とパッチ適用制御部120を備える。
記憶部110は、管理サーバ100が備える記憶装置の記憶領域によって実現される。記憶部110には、ソフトウェア辞書111と管理テーブル112が記憶される。ソフトウェア辞書111は、PC200での各種の情報収集やパッチ適用のためのプログラムやコマンドの内容、実行条件などが定義された定義体である。管理テーブル112には、PC200を適切にグループ化するために参照される各種のデータが記憶される。
【0044】
パッチ適用制御部120の処理は、例えば、管理サーバ100が備えるプロセッサが所定のアプリケーションプログラムを実行することで実現される。パッチ適用制御部120は、PC200をグループ化してパッチ適用タイミングを分散させる処理全体を、統合的に制御する。
【0045】
例えば、パッチ適用制御部120は、OS種別をチェックさせるコマンドやPC200の環境をチェックさせるコマンドを各PC200に定期的に一斉送信して、OS種別やPC200の環境を各PC200にチェックさせる。パッチ適用制御部120は、チェックされた結果に基づく情報を収集して管理テーブル112に格納し、収集された情報に基づき、OS種別やパッチのデータサイズに応じて付与されるパッチのラベルを単位として、PC200をグループ化する。また、各PC200に対し、管理テーブル112の情報を参照させながら、自装置に割り当てられたラベルやグループを自律的に判断させる。そして、パッチ適用制御部120は、新たなパッチがリリースされると、パッチ適用を指示するコマンドを一定時間間隔でグループ数分の回数だけ各PC200に送信する。PC200が、自装置が属するグループに対応する期間に受信したコマンドに応じてパッチをダウンロードすることで、パッチのダウンロードタイミングがグループごとに分散される。
【0046】
一方、PC200は、記憶部210、OSチェック処理部220、環境チェック処理部230およびパッチ適用処理部240を備える。
記憶部210は、RAM202やHDD203など、PC200が備える記憶装置の記憶領域によって実現される。記憶部210には、レジストリREG_GrpNum,REG_InstOS,REG_InstPt,REG_LocPc,REG_Timeおよびログ情報211が記憶される。
【0047】
レジストリREG_GrpNumには、PC200が分類されるグループ数(総数)が設定される。レジストリREG_InstOSには、インストールされているOSの種別に応じたパッチのラベルが設定される。レジストリREG_InstPtには、過去のパッチのダウンロード状況から推定される、VPN経由でパッチをダウンロードする可能性に応じた値が設定される。レジストリREG_LocPcには、パッチの適用可否を示す値(フラグ)が設定される。レジストリREG_Timeには、パッチの適用タイミングを示す値が設定される。レジストリREG_Timeに設定される値が、実質的にPC200が属するグループを示す。
【0048】
ログ情報211には、PC200における過去の動作ログが記憶される。このログ情報211は、過去のパッチのダウンロード状況を判定するために用いられる。
OSチェック処理部220、環境チェック処理部230およびパッチ適用処理部240の処理は、例えば、PC200が備えるプロセッサ201が所定のアプリケーションプログラムを実行することで実現される。
【0049】
OSチェック処理部220は、OS種別をチェックさせるOSチェックコマンドを管理サーバ100から受信したことに応じて動作する。OSチェック処理部220は、自装置にインストールされているOSの種別を判別し、判別されたOS種別に対応するパッチのラベルの中から管理テーブル112の情報に基づいて1つを選択し、選択されたラベルの値をレジストリREG_InstOSに設定する。
【0050】
また、OSチェック処理部220は、レジストリREG_InstPtに設定された値を管理サーバ100に送信して、PC200が属するグループをラベル単位で決定させる。OSチェック処理部220は、決定されたグループを示す値を管理サーバ100から受信して、レジストリREG_Timeに設定する。
【0051】
環境チェック処理部230は、PC200の環境をチェックさせる環境チェックコマンドを管理サーバ100から受信したことに応じて動作する。環境チェック処理部230は、PC200が内部ネットワーク301とインターネット302のどちらに接続されているかを判定する。インターネット302に接続されている場合、環境チェック処理部230は、ログ情報211からパッチのダウンロード履歴を収集し、その収集結果からVPN経由でパッチをダウンロードする可能性を推定して、推定結果に応じた値をレジストリREG_InstPtに設定する。
【0052】
また、環境チェック処理部230は、レジストリREG_Timeに設定された値を読み出し、周期的なパッチ適用期間のうち、読み出した設定値に対応する期間において、レジストリREG_LocPcに1を設定する。これにより、PC200が属するグループに応じた、パッチを適用すべき期間が指定される。
【0053】
パッチ適用処理部240は、パッチ適用コマンドを管理サーバ100から受信すると、レジストリREG_LocPcをチェックし、1が登録されている場合に、パッチのデータを管理サーバ100からダウンロードしてPC200に適用する。
【0054】
図5は、管理サーバに記憶される管理テーブルのデータ構成例を示す図である。管理テーブル112には、PC200のうち、インターネット302に接続されているPC200(グループ化対象PC)に関する各種の情報が登録される。
図5に示すように、管理テーブル112には、OS種別、LEG_InstOS値、直近設定フラグ、REG_InstPt合計値、REG_InstPt比率、REG_Time値の各項目が設けられる。
【0055】
OS種別は、OSの種別を示す。本実施の形態では例として、OS-A,OS-B,OS-Cの3つのOS種別が存在するものとする。
LEG_InstOS値は、パッチに関するラベルを示す。ラベルは、OS種別やパッチのデータサイズに応じて、管理サーバ100によってあらかじめ生成される。具体的には、ラベルは、同一のOS種別に対して1つ以上生成される。なおかつ、OS種別ごとのラベル数の比率が、対応するパッチのデータサイズの比率と一致するように、各OS種別に対して生成されるラベルの数が決定される。例えば、OS-A,OS-B,OS-Cのそれぞれに対応するパッチのデータサイズの比率が1:2:3の場合、OS-A,OS-B,OS-Cのそれぞれに対して設定されるラベルの数は、1n個、2n個、3n個(nは自然数)となる。
【0056】
本実施の形態では、OS-A,OS-B,OS-Cのそれぞれに対応するパッチのデータサイズの比率が1:2:3であり、上記のnが2であるものとする。そして、
図5に示すように、OS-Aに対応するラベルとしてOS_0011,OS_0012が生成され、OS-Bに対応するラベルとしてOS_0021~OS_0024が生成され、OS-Cに対応するラベルとしてOS_0031~OS_0036が生成されるものとする。
【0057】
直近設定フラグは、直近にPC200に対して設定されたラベルであるか否かを示すフラグ情報である。直近設定フラグとしては、同一のOS種別に対応するラベルのうちの1つに1が設定され、残りの全ラベルに0が設定される。そして、同一のOS種別に対応するラベルのうち、直近にPC200に対して設定されたラベルについての直近設定フラグが、1に設定される。
【0058】
グループ化対象PCのそれぞれには、自装置で動作するOSの種別(自装置のOS種別)に対応するラベルのうち、いずれか1つが割り当てられる。後述するように、グループ化対象PCには、同一のOS種別について、ラベルごとのPC200の数が同数になるようにラベルが割り当てられる。直近設定フラグは、このようなラベル割り当てをPC200が自律的に実行するために利用される。
【0059】
REG_InstPt値は、グループ化対象PCのそれぞれのレジストリREG_InstPtに設定された値を、ラベルごとに合計した値を示す。REG_InstPt比率は、全ラベルについてのREG_InstPt値を合計した合計値に対する、該当ラベルについてのREG_InstPt値の比率を示す。後述するように、REG_InstPt比率は、ラベル別に分類されたPC群のそれぞれがVPN経由でダウンロードするパッチの推定データ量を、比率によって示すものである。REG_Time値は、REG_InstPt比率に基づいてラベル単位で分類されたグループを示す。
【0060】
図6は、グループ化のために使用されるレジストリの設定処理の概要を示す図である。まず、レジストリREG_InstOSの設定について説明する。
管理サーバ100のパッチ適用制御部120は、ソフトウェア辞書111に基づき、すべてのPC200に対してOSチェックコマンドを一定時間ごとに送信する(ステップS11)。OSチェックコマンドには、設定可能なラベルの一覧を示すラベル一覧情報121が付加されている。
【0061】
PC200のOSチェック処理部220は、OSチェックコマンドを受信すると、自装置のOS種別を判定する(ステップS12)。なお、OSチェックコマンドには、例えば、OS種別を判定するための参照先ファイルを示す情報が付加されており、OSチェック処理部220は、その参照先ファイルを参照することによってOS種別を判定することができる。
【0062】
ここでは例として、自装置のOS種別がOS-Cと判定されたとする。すると、OSチェック処理部220は、ラベル一覧情報121からOS-Cに対応するラベルとしてOS_0031~OS_0036を特定する。OSチェック処理部220は、それらのラベルごとのPC割り当て数が同数になるように、OS_0031~OS_0036のうちのいずれか1つをレジストリREG_InstOSに設定する(ステップS13)。ただし、この処理は、PC200のうちグループ化対象PCでのみ実行される。
【0063】
ステップS13の処理により、グループ化対象PCに対して、自装置のOS種別の対応するラベルの中から1つが割り当てられる。このラベル割り当ては、次の
図7に示すように、管理テーブル112を用いて管理サーバ100とPC200とが協働することで実行される。
【0064】
図7は、ラベルの割り当て処理を示す図である。上記のように、管理サーバ100からPC200a,200b,200c,・・・に対して、OSチェックコマンドが送信される(ステップS21)。ここで、PC200a~200cが、OSチェックコマンドを受信すると、それぞれ自装置のOS種別をOS-Cと判定したとする(ステップS22a~S22c)。
【0065】
PC200a~200cは、OS種別を判定すると、判定されたOS種別を指定して、管理サーバ100に対して、直近設定フラグが1のラベルの通知を要求するラベル通知要求を送信する。
図7の例では、PC200a,200b,200cの順に管理サーバ100に対してラベル通知要求が送信されたとする。
【0066】
PC200aは、OS種別としてOS-Cを指定して、管理サーバ100に対してラベル通知要求を送信する(ステップS23a)。このとき、OS-Cに対応するラベルのうちOS_0031についての直近設定フラグが1であったとすると、管理サーバ100は、ラベルとしてOS_0031をPC200aに通知する。これととともに管理サーバ100は、OS_0031の直近設定フラグを0に更新し、OS-Cについての次のラベルであるOS_0032の直近設定フラグを1に更新する(ステップS24a)。PC200aは、OS-Cに対応するラベルのうち、通知されたOS_0031の次のラベルであるOS_0032を、PC200a内のレジストリREG_InstOSに設定する(ステップS25a)。
【0067】
また、PC200bは、OS種別としてOS-Cを指定して、管理サーバ100に対してラベル通知要求を送信する(ステップS23b)。このとき、OS-Cに対応するラベルのうちOS_0032についての直近設定フラグが1に設定されているので、管理サーバ100は、ラベルとしてOS_0032をPC200bに通知する。これととともに管理サーバ100は、OS_0032の直近設定フラグを0に更新し、OS-Cについての次のラベルであるOS_0033の直近設定フラグを1に更新する(ステップS24b)。PC200bは、OS-Cに対応するラベルのうち、通知されたOS_0032の次のラベルであるOS_0033を、PC200b内のレジストリREG_InstOSに設定する(ステップS25b)。
【0068】
また、PC200cは、OS種別としてOS-Cを指定して、管理サーバ100に対してラベル通知要求を送信する(ステップS23c)。このとき、OS-Cに対応するラベルのうちOS_0033についての直近設定フラグが1に設定されているので、管理サーバ100は、ラベルとしてOS_0033をPC200cに通知する。これとともにサーバ100は、OS_0033の直近設定フラグを0に更新し、OS-Cについての次のラベルであるOS_0034の直近設定フラグを1に更新する(ステップS24c)。PC200cは、OS-Cに対応するラベルのうち、通知されたOS_0033の次のラベルであるOS_0034を、PC200c内のレジストリREG_InstOSに設定する(ステップS25c)。
【0069】
このように、管理サーバ100側で管理される直近設定フラグを用いて、同一のOS種別の各PC200に対してラベルが順番に割り当てられる。最後のラベル(
図7の例ではOS_0036)まで割り当てられると、先頭のラベル(OS_0031)に戻ってさらに順次割り当てが継続される。これにより、同一のOS種別に対応するラベルごとのPC割り当て数が同数になるようにラベルが割り当てられ、割り当てられたラベルがレジストリREG_InstOSに設定される。
【0070】
なお、
図7の説明では、管理サーバ100は、直近設定フラグが現在1に設定されているラベルを通知したが、他の例として、管理サーバ100は、直近設定フラグを1にするラベルを次のラベルに変更し、変更後のラベルをPCに通知するようにしてもよい。この場合、PC200は、通知されたラベルをそのままレジストリREG_InstOSに設定すればよい。
【0071】
以下、
図6を用いて、レジストリREG_InstPtの設定について説明する。
管理サーバ100のパッチ適用制御部120は、ソフトウェア辞書111に基づき、すべてのPC200に対して環境チェックコマンドを一定時間ごとに送信する(ステップS14)。環境チェックコマンドの送信間隔は、例えば、OSチェックコマンドの送信間隔と同じであってよい。
【0072】
PC200の環境チェック処理部230は、まず、自装置が内部ネットワーク301とインターネット302のどちらに接続しているかを判定する。例えば、自装置が内部ネットワーク301上のプロキシサーバと通信可能である場合に、自装置が内部ネットワーク301に接続していると判定される。
【0073】
ここで、自装置がインターネット302に接続していると判定された場合、環境チェック処理部230はさらに、過去のパッチ適用状況を判定する(ステップS15)。具体的には、環境チェック処理部230は、ログ情報211を参照して過去のパッチのダウンロード履歴を収集し、その収集結果から過去におけるVPN経由のダウンロード状況およびOSベンダサイトからのダウンロード状況を判定する。そして、環境チェック処理部230は、この判定結果から、自装置がVPN経由でパッチをダウンロードする可能性に応じた重み係数を、レジストリREG_InstPtに設定する。
【0074】
ここでは例として、環境チェック処理部230は、ログ情報211から、直近3か月間において、OSベンダによるパッチ公開日から1週間以内にOSベンダサイトからパッチをダウンロードして適用した回数を判定する。この回数が多いほど、次回のパッチ適用時においてVPN経由でパッチをダウンロードする可能性が低いと推定される。そこで、環境チェック処理部230は、判定された回数が多いほど重み係数を小さく設定する。一例として、判定された回数が3回以上、2回、1回、0回の場合に、重み係数としてそれぞれ0.0,0.5,0.7,1.0が設定されるものとする。環境チェック処理部230は、このような重み係数をレジストリREG_InstPtに設定する。
【0075】
以上の手順により、レジストリREG_InstOSとレジストリREG_InstPtとが定期的に更新される。そして、OSチェック処理部220は、レジストリREG_InstPtに設定された値を、レジストリREG_InstOSに設定されたラベルとともに管理サーバ100に送信する(ステップS16)。
【0076】
管理サーバ100のパッチ適用制御部120には、上記の処理により、グループ化対象PCのそれぞれからレジストリREG_InstPtの設定値(REG_InstPt値)とラベルとが通知される。パッチ適用制御部120は、通知された情報に基づき、管理テーブル112を用いてラベル単位のグループ化を行う。
【0077】
具体的には、パッチ適用制御部120は、REG_InstPt値とラベルとが通知されると、管理テーブル112のレコードの中から、通知されたラベルに対応するレコードを特定する。パッチ適用制御部120は、特定されたレコードのREG_InstPt合計値に対して、通知されたREG_InstPt値を加算する。このようにして、管理テーブル112のREG_InstPt合計値には、同じラベルが割り当てられたすべてのPC200におけるREG_InstPt値の合計値が登録される。
【0078】
パッチ適用制御部120は、OSチェックコマンドの送信から一定時間が経過すると、管理テーブル112の全レコードに登録されたREG_InstPt合計値を合計する。パッチ適用制御部120は、算出された合計値に基づき、管理テーブル112の各レコードのREG_InstPt比率を計算する。REG_InstPt比率は、算出された合計値を、同じレコードのREG_InstPt合計値で除算することで算出される。
【0079】
そして、パッチ適用制御部120は、算出されたREG_InstPt比率に基づいて、各レコードの(すなわち、各ラベルに対応する)REG_Time値を算出する。この計算では、同一のREG_Time値に割り当てられるREG_InstPt比率の和が「1/グループ数」となるようにREG_Time値が算出される。ラベルに対応するREG_Time値は、そのラベルが割り当てられたPC200が所属するグループを示すことになる。
【0080】
図8は、ラベルのグループ化処理について示す図である。各ラベルに対応するREG_Time値(すなわち、各ラベルが属するグループ)は、同一のREG_Time値に割り当てられるREG_InstPt比率の和が「1/グループ数」となるように決定される。
【0081】
ここで、前述のように、各OS種別に対して生成されるラベルの数は、OS種別ごとのラベル数の比率がパッチのデータサイズの比率と一致するように決定される。また、REG_InstPt比率は、対応するラベルが割り当てられたPC200の台数に、それらのPC200がVPN経由でパッチをダウンロードする確率を乗算した値を示すことになる。
【0082】
このため、各OS種別のOSが動作するPC200の台数の比率も上記の比率と同じ(すなわち、全ラベルに割り当てられるPC200の台数が同じ)であり、かつ、各PC200がVPN経由でパッチをダウンロードする確率も同じである場合、例えば
図8のパターンP1のように、簡単にラベルをグループ化することができる。このパターンP1では、同一のREG_Time値に同数のラベルを割り当てる(すなわち、グループごとのラベル数を均等にする)だけで、グループごとのパッチのダウンロード量を均一化することができている。これは、パッチのデータサイズが大きいOS種別ほどラベル数を多くすることで、そのようなOS種別のPC200ほど多くの異なるグループに分散して割り当てられる可能性が高くなるからである。
【0083】
実際には、各OS種別のOSが動作するPC200の台数の比率は、上記のようにパッチのデータサイズの比率とは一致しない可能性が高い。そして、VPN経由でパッチをダウンロードする可能性もPC200ごとに同じとは限らない。後者に関しては、PC200がOSベンダサイトからパッチをダウンロードする可能性があることに加え、内部ネットワーク301でなくインターネット302に接続されているPC200の台数が常に一定でないことにも起因している。
【0084】
したがって、実際には、例えば
図8のパターンP2のように、同一のREG_Time値(すなわち、同一のグループ)に割り当てられるラベルの数は、同一でなくなる可能性が高い。REG_Time比率という、ラベルごとのPC200の台数とPC200がVPN経由でパッチをダウンロードする確率とを考慮した指標によってラベルがグループ化されることで、グループごとのVPN経由でのパッチのダウンロード量を略均等にすることが可能となる。
【0085】
図9は、グループごとのパッチ適用タイミングについて示す図である。グループ化対象PCのOSチェック処理部220は、
図6のステップS16でREG_InstOS値とREG_InstPt値を送信すると、REG_InstOS値(ラベル)に対応するREG_Time値を管理サーバ100から取得する。OSチェック処理部220は、取得したREG_Time値をレジストリREG_Timeに設定する(ステップS31)。
図9の例では、REG_Time値として3がレジストリREG_Timeに設定されたとする。
【0086】
一方、グループ化対象PCの環境チェック処理部230は、
図6に示したようにレジストリREG_InstPtを設定した後、レジストリREG_Timeの設定値を読み出す。そして、環境チェック処理部230は、REG_Time値のそれぞれに対応する周期的なパッチ適用期間を自律的に特定し、レジストリREG_Timeの設定値に対応するパッチ適用期間において、レジストリREG_LocPcに1を設定する。
【0087】
また、管理サーバ100のパッチ適用制御部120は、REG_Time値ごとのパッチ適用期間の出現周期と同じ周期で、パッチ適用を指示するパッチ適用コマンドを、少なくともグループ数だけ繰り返し送信する。PC200のパッチ適用処理部240は、パッチ適用コマンドを受信すると、レジストリREG_Timeの設定値を読み出し、設定値が1の場合にのみ、パッチ適用処理を実行する。
【0088】
図9の例では、PC200の環境チェック処理部230は、REG_Time値=1に対応するパッチ適用期間の開始タイミングにおいて、レジストリREG_LocPcを0のままにする(ステップS32)。また、この期間においてパッチ適用コマンドが送信されると(ステップS33)、このパッチ適用コマンドをPC200のパッチ適用処理部240が受信する。パッチ適用処理部240は、レジストリREG_LocPcが0であることから、パッチを適用しない。
【0089】
また、PC200の環境チェック処理部230は、REG_Time値=2に対応するパッチ適用期間の開始タイミングにおいて、レジストリREG_LocPcを0のままにする(ステップS34)。また、この期間においてパッチ適用コマンドが送信されると(ステップS35)、このパッチ適用コマンドをPC200のパッチ適用処理部240が受信する。パッチ適用処理部240は、レジストリREG_LocPcが0であることから、パッチを適用しない。
【0090】
また、PC200の環境チェック処理部230は、REG_Time値=3に対応するパッチ適用期間の開始タイミングにおいて、レジストリREG_LocPcを1に更新する(ステップS36)。また、この期間においてパッチ適用コマンドが送信されると(ステップS37)、このパッチ適用コマンドをPC200のパッチ適用処理部240が受信する。パッチ適用処理部240は、レジストリREG_LocPcが1であることから、パッチを管理サーバ100からVPN経由でダウンロードし、PC200に適用する(ステップS37a)。このとき、レジストリREG_LocPcは0に更新される。
【0091】
また、PC200の環境チェック処理部230は、REG_Time値=4に対応するパッチ適用期間の開始タイミングにおいて、レジストリREG_LocPcを0のままにする(ステップS38)。また、この期間においてパッチ適用コマンドが送信されると(ステップS39)、このパッチ適用コマンドをPC200のパッチ適用処理部240が受信する。パッチ適用処理部240は、レジストリREG_LocPcが0であることから、パッチを適用しない。
【0092】
以上のように、PC200は、レジストリREG_Timeの設定値に対応するパッチ適用期間において、レジストリREG_LocPcに1を設定する。そして、PC200は、パッチ適用コマンドを受信したとき、レジストリREG_LocPcが1であればパッチ適用を行う。これにより、VPN経由でのパッチのダウンロードタイミングがグループごとに分散され、VPN経由でのパッチのダウンロードデータ量をグループ間で略均等に分散させることができる。
【0093】
なお、
図9に示したパッチ適用コマンドの送信間隔(ステップS33,S35,S37,S39の実行間隔)は、OSチェックコマンドおよび環境チェックコマンドの送信間隔より短く設定される。より具体的には、パッチ適用コマンドの送信間隔は、OSチェックコマンドおよび環境チェックコマンドの送信間隔に対して「1/グループ数」以下の長さとされる。
【0094】
また、PC200間では、REG_Time値ごとのパッチ適用期間が同期される。例えば、各PC200は、所定の基準時刻を基準としてパッチ適用期間の開始タイミングを判定する。あるいは、パッチ適用期間の判定は常に繰り返し実行されているのに対し、パッチ適用コマンドは新たなパッチが生成された場合にのみ送信される。このため、例えば、新たなパッチが生成された後にパッチ適用コマンドが最初に送信されたタイミングを基準として、パッチ適用期間の開始タイミングが判定されてもよい。
【0095】
次に、管理サーバ100およびPC200の処理について、フローチャートを用いて説明する。
図10は、管理サーバによるOSチェックコマンド送信処理の手順を示すフローチャートの例である。管理サーバ100のパッチ適用制御部120は、
図10の処理を一定時間間隔で繰り返し実行する。
【0096】
[ステップS51]パッチ適用制御部120は、管理テーブル112における全レコードのREG_InstPt合計値を0にリセットする。
[ステップS52]パッチ適用制御部120は、ソフトウェア辞書111に基づいて、OSチェックコマンドをすべてのPC200に対して一斉送信する。このとき、OSチェックコマンドには、各OS種別に対応するラベルの一覧が記載されたラベル一覧情報121と、PC200を分類するグループ数とが付加されて送信される。
【0097】
[ステップS53]パッチ適用制御部120は、PC200(実際にはグループ化対象PC)から、直近設定フラグが1のラベルの通知を要求するラベル通知要求を受信したかを判定する。ラベル通知要求を受信した場合、処理がステップS54に進められ、ラベル通知要求を受信していない場合、処理がステップS56に進められる。
【0098】
[ステップS54]受信したラベル通知要求は、OS種別が付加されている。パッチ適用制御部120は、管理テーブル112を参照し、ラベル通知要求に付加されていたOS種別に対応するラベル(REG_InstOS値)の中から、直近設定フラグが1のラベルを判別する。パッチ適用制御部120は、判別されたラベルの値をラベル通知要求の送信元PCに送信する。なお、初期状態では、OS種別ごとに直近設定フラグが1に設定されるラベルがあらかじめ決められているものとする。
【0099】
[ステップS55]パッチ適用制御部120は、ラベル通知要求に付加されていたOS種別に対応するラベルについて、直近設定フラグを1にするラベルを次のラベルに変更する。すなわち、ステップS54で判別されたラベルに対応する直近設定フラグを0に更新し、同じOS種別に対応する次のラベルの直近設定フラグを0から1に更新する。
【0100】
[ステップS56]パッチ適用制御部120は、PC200(実際にはグループ化対象PC)から、REG_InstOS値とREG_InstPt値のデータペアを受信したかを判定する。データペアを受信した場合、処理がステップS57に進められ、データペアを受信していない場合、処理がステップS58に進められる。
【0101】
[ステップS57]パッチ適用制御部120は、管理テーブル112において、受信したREG_InstOS値に対応付けられたREG_InstPt合計値に対して、受信したREG_InstPt値を加算して更新する。
【0102】
[ステップS58]パッチ適用制御部120は、ステップS52でのOSチェックコマンドの送信から一定時間が経過したかを判定する。なお、この一定時間は、OSチェックコマンドの送信周期(
図10の処理の実行周期)以下の値とされればよい。一定時間が経過していない場合、処理がステップS53に進められ、一定時間が経過した場合、処理がステップS59に進められる。
【0103】
[ステップS59]パッチ適用制御部120は、管理テーブル112における各レコードのREG_Time値を計算して更新する。この処理では、パッチ適用制御部120はまず、管理テーブル112の全レコードに登録されたREG_InstPt合計値を合計する。パッチ適用制御部120は、管理テーブル112の各レコードについて、算出された合計値をREG_InstPt合計値で除算し、得られた除算値によってREG_InstPt比率の値を更新する。そして、パッチ適用制御部120は、REG_InstPt比率に基づいて、各ラベルに割り当てるREG_Time値を決定し、決定されたREG_Time値によって管理テーブル112のREG_Time値を更新する。
【0104】
REG_Time値は、例えば次のようにして決定される。パッチ適用制御部120は、ラベルを管理テーブル112の先頭側から順に選択して組み合わせ、組み合わされた各ラベルのREG_InstPt比率の和が、「1/グループ数」の値以下となる最大数のラベルの組み合わせを、同一のREG_Time値に割り当てる。このような処理が管理テーブル112の先頭側から順に実行されることで、各ラベルに対していずれかのREG_Time値(すなわち、いずれかのグループ)が割り当てられる。なお、最終グループに対しては、残りのすべてのラベルが割り当てられればよい。
【0105】
また、パッチ適用制御部120は、
図10の処理とは別に、次の
図11に示すグループ通知処理を実行する。
図11は、グループ通知処理の手順を示すフローチャートの例である。
【0106】
[ステップS61]パッチ適用制御部120は、PC200(実際にはグループ化対象PC)から、ラベルの値を指定したグループ通知要求を受信すると、次のステップS62の処理を実行する。
【0107】
[ステップS62]パッチ適用制御部120は、管理テーブル112から、指定されたラベルに対応するREG_Time値を読み出し、グループ通知要求の送信元PCに送信する。
【0108】
図12は、PCによるOSチェック処理の手順を示すフローチャートの例である。
[ステップS71]PC200のOSチェック処理部220は、管理サーバ100からOSチェックコマンドを受信すると、ステップS72以降の処理を実行する。
【0109】
[ステップS72]OSチェック処理部220は、OSチェックコマンドに付加されたグループ数をレジストリREG_GrpNumに設定する。
[ステップS73]OSチェック処理部220は、OSチェックコマンドに付加された情報に基づいて、自装置で動作しているOSの種別を判定する。例えば、OSチェックコマンドの付加情報で指定されたファイルを参照することで、OS種別が判定される。
【0110】
[ステップS74]OSチェック処理部220は、管理サーバ100に対し、判定されたOS種別を指定して、直近設定フラグが1のラベルの通知を要求するラベル通知要求を送信する。OSチェック処理部220は、このラベル通知要求に対する応答として、管理サーバ100から該当するラベルを取得する。
【0111】
[ステップS75]OSチェック処理部220は、OSチェックコマンドに付加されたラベル一覧情報121から、ステップS73で判定されたOS種別に対応するラベルを抽出する。OSチェック処理部220は、抽出されたラベルのうち、ステップS74で取得したラベルの次のラベルを、レジストリREG_InstOSに設定する。これにより、同一のOS種別に対応するラベルごとのPC割り当て数が同数になるように、自装置に対してラベルが割り当てられる。
【0112】
[ステップS76]OSチェック処理部220は、レジストリREG_InstOS,REG_InstPtに現在設定されている値を、管理サーバ100に通知する。
[ステップS77]OSチェック処理部220は、ステップS75でレジストリREG_InstOSに設定したラベルを指定して、グループ通知要求を管理サーバ100に送信する。OSチェック処理部220は、このグループ通知要求に対する応答として、管理サーバ100からラベルに対応付けられたREG_Time値を取得し、レジストリREG_Timeに設定する。なお、このステップS77の処理は、ステップS71~S76の処理とは非同期に、定期的に実行されてもよい。
【0113】
なお、上記のステップS74~S77の処理は、自装置がインターネット302に接続されている場合にのみ実行される。自装置がインターネット302に接続されていることは、例えば、レジストリREG_InstPtの設定値がNULLの場合に判定される。自装置が内部ネットワーク301に接続されている場合、OSチェック処理部220は、ステップS73で判定されたOS種別に対応するラベルのうち、あらかじめ決められたラベル(例えば1番目のラベル)をレジストリREG_InstOSに設定する。
【0114】
図13は、PCによる環境チェック処理の手順を示すフローチャートの例である。
[ステップS81]PC200の環境チェック処理部230は、管理サーバ100から環境チェックコマンドを受信すると、ステップS82以降の処理を実行する。
【0115】
[ステップS82]環境チェック処理部230は、自装置の位置、すなわち自装置が内部ネットワーク301に接続されているか、インターネット302に接続されているかを判定する。例えば、自装置が内部ネットワーク301上のプロキシサーバと通信可能である場合に、自装置が内部ネットワーク301に接続していると判定される。
【0116】
[ステップS83]自装置が内部ネットワーク301に接続されている場合、処理がステップS84に進められ、インターネット302に接続されている場合、処理がステップS85に進められる。
【0117】
[ステップS84]環境チェック処理部230は、レジストリREG_LocPcに1を設定する。また、環境チェック処理部230は、レジストリREG_InstPtの設定値をNULLに更新する。
【0118】
[ステップS85]環境チェック処理部230は、ログ情報211を参照して過去のパッチ適用状況を判定する。具体的には、環境チェック処理部230は、ログ情報211から過去のパッチのダウンロード履歴を収集し、その収集結果から過去におけるVPN経由のダウンロード状況およびOSベンダサイトからのダウンロード状況を判定する。そして、環境チェック処理部230は、この判定結果から、自装置がVPN経由でパッチをダウンロードする可能性に応じた重み係数を、レジストリREG_InstPtに設定する。
【0119】
[ステップS86]環境チェック処理部230は、レジストリREG_Timeに設定された値を読み出す。
[ステップS87]REG_Time値としてとり得る値のうちの1つに対応するパッチ適用期間が開始される。環境チェック処理部230は、現在のパッチ適用期間がステップS86で読み出したREG_Time値に対応する期間である場合、レジストリREG_LocPcに1を設定する。一方、対応する期間でない場合、環境チェック処理部230は、レジストリREG_LocPcの設定値が1であれば0に更新し、設定値が0であればそのままにする。
【0120】
[ステップS88]環境チェック処理部230は、所定時間待ち状態になる。この所定時間は、管理サーバ100からのグループごとのパッチ更新コマンドの送信周期と同じである。所定時間が経過すると、次のREG_Time値に対応するパッチ適用期間が開始され、処理がステップS87に進められる。
【0121】
ステップS87,S88のループ処理が繰り返されるたびに、ステップS87では次のREG_Time値に対応するパッチ適用期間が開始されたと判定される。ここで、REG_Time値がとる最大値、すなわちグループ数は、レジストリREG_GrpNumの設定値から判別される。例えばグループ数が4の場合、REG_Time値が4のパッチ適用期間が終了すると、次のパッチ適用期間はREG_Time値が1に対応する期間と判定される。
【0122】
なお、ステップS87,S88のループ処理は、管理サーバ100から環境チェックコマンドが受信されると終了する。
図14は、PCによるパッチ適用処理の手順を示すフローチャートの例である。なお、
図14では、管理サーバ100からのパッチ適用コマンドに応じて更新データがVPN経由でダウンロードされる処理を示している。ただし、インターネット302に接続されているPC200(グループ化対象PC)は、パッチ適用コマンドに関係なく、インターネット302上のOSベンダサイトからパッチをダウンロードする場合もある。例えば、OSの自動更新が設定されているグループ化対象PCは、OSベンダサイトから新規パッチのダウンロードが指示されると、その指示に応じてOSベンダサイトからパッチをダウンロードする。
【0123】
管理サーバ100のパッチ適用制御部120は、新たなパッチがリリースされると、REG_Time値ごと(すなわち、グループごと)のパッチ適用期間の長さと同じ周期で、パッチ適用コマンドを少なくともグループ数以上の回数だけ、全PC200に対して繰り返し送信する。
【0124】
[ステップS91]PC200のパッチ適用処理部240は、管理サーバ100からのパッチ適用コマンドを受信すると、ステップS92以降の処理を実行する。
[ステップS92]パッチ適用処理部240は、レジストリREG_LocPcに設定された値を読み出す。設定値が1の場合、処理がステップS93に進められ、設定値が0の場合、ステップS93,S94がスキップされてパッチ適用処理が終了する。
【0125】
[ステップS93]パッチ適用処理部240は、レジストリREG_LocPcの設定値を0に更新する。
[ステップS94]パッチ適用処理部240は、例えばレジストリREG_InstPtの設定値または
図12のステップS73での判定結果から、自装置のOS種別を認識し、OS種別に対応するパッチを管理サーバ100からダウンロードする。自装置がインターネット302に接続されている場合、パッチはVPN経由でダウンロードされる。なお、ダウンロード元の位置は、例えば、受信したパッチ適用コマンドに付加されている。パッチ適用処理部240は、ダウンロードされたパッチを自装置にインストールする。
【0126】
以上の処理により、グループ化対象PCは、自装置に割り当てられたREG_Time値(すなわち、自装置が属するグループ)に対応するパッチ適用期間において、パッチを管理サーバ100からVPN経由でダウンロードする。ただし、ステップS94では、パッチ適用処理部240は、すでに同じパッチをOSベンダサーバからダウンロード済みの場合には、パッチを管理サーバ100からダウンロードしない。このように、VPNを経由せずにパッチをダウンロードする可能性も考慮してグループ化対象PCがグループ化されることで、VPNを経由したグループごとのパッチのダウンロード量を均等に近づけることが可能となる。
【0127】
なお、
図14の処理において、内部ネットワーク301に接続されているPC200は、最初のパッチ適用期間(パッチのリリース後における最初のパッチ適用コマンドの受信時)にパッチを管理サーバ100からダウンロードすることになる。
【0128】
なお、上記の各実施の形態に示した装置(例えば、情報処理装置10a,10b,10c,・・・、管理装置20、管理サーバ100、PC200)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(Blu-ray Disc:BD、登録商標)などがある。
【0129】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CDなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0130】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【符号の説明】
【0131】
1,2 伝送経路
10a~10c 情報処理装置
11 履歴情報
12 指標情報
20 管理装置
21 分類情報
S1~S6 ステップ