(57)【要約】【課題】新たなソフトウェアを効率的にダウンロードすることが可能なプログラム等を提供する。【解決手段】サーバコンピュータ１は、配信するソフトウェアのバージョンをパーソナルコンピュータ２へ送信する。サーバコンピュータ１は通信中のパーソナルコンピュータ２数をパーソナルコンピュータ２へ送信する。パーソナルコンピュータ２は、複数のサーバコンピュータ１の中から通信することが可能なサーバコンピュータ１を抽出する。パーソナルコンピュータ２は抽出したサーバコンピュータ１から送信されたバージョン及びパーソナルコンピュータ２数を取得する。パーソナルコンピュータ２は取得したバージョン及びパーソナルコンピュータ２数に基づき、一つのサーバコンピュータ１を選択する。【選択図】図１
2014013444.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置に、
複数のサーバコンピュータの中から通信することが可能なサーバコンピュータを抽出し、
抽出した前記サーバコンピュータが配信するソフトウェアのバージョンを取得し、
抽出した前記サーバコンピュータが通信中の情報処理装置数を取得し、
取得した前記バージョン及び前記情報処理装置数に基づき、一つのサーバコンピュータを選択する
処理を実行させるプログラム。
【請求項２】
取得したバージョンが最も新しいサーバコンピュータを選択する
請求項１に記載のプログラム。
【請求項３】
インストール済みのソフトウェアのバージョンを取得し、
抽出したサーバコンピュータが配信するソフトウェアのバージョン数と、取得したインストール済みのソフトウェアのバージョン数との差を算出し、
算出した差が最も大きいサーバコンピュータを選択する
請求項１または２に記載のプログラム。
【請求項４】
複数のサーバコンピュータの中から通信することが可能なサーバコンピュータを抽出する抽出部と、
抽出したサーバコンピュータが配信するソフトウェアのバージョンを取得する第１取得部と、
抽出したサーバコンピュータが通信中の情報処理装置数を取得する第２取得部と、
前記第１取得部及び前記第２取得部により取得したバージョン及び情報処理装置数に基づき、一つのサーバコンピュータを選択する選択部と
を備える情報処理装置。
【請求項５】
情報処理装置を用いた情報処理方法において、
複数のサーバコンピュータの中から通信することが可能なサーバコンピュータを抽出し、
抽出した前記サーバコンピュータが配信するソフトウェアのバージョンを取得し、
抽出した前記サーバコンピュータが通信中の情報処理装置数を取得し、
取得した前記バージョン及び前記情報処理装置数に基づき、一つのサーバコンピュータを選択する
情報処理方法。
【請求項６】
複数の情報処理装置及び複数のサーバコンピュータが通信網を介して相互に接続された情報処理システムにおいて、
サーバコンピュータは、
配信するソフトウェアのバージョンを情報処理装置へ送信する第１送信部と、
通信中の情報処理装置数を情報処理装置へ送信する第２送信部とを備え、
情報処理装置は、
複数のサーバコンピュータの中から通信することが可能なサーバコンピュータを抽出する抽出部と、
抽出した前記サーバコンピュータの前記第１送信部により送信されたバージョンを取得する第１取得部と、
抽出した前記サーバコンピュータの前記第２送信部により送信された情報処理装置数を取得する第２取得部と、
前記第１取得部及び前記第２取得部により取得した前記バージョン及び前記情報処理装置数に基づき、一つのサーバコンピュータを選択する選択部と
を備える情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理を行うプログラム、情報処理装置、情報処理方法及び情報処理システムに関する。
【背景技術】
【０００２】
サーバコンピュータからソフトウェアを効率よくダウンロードする方式が数々提案されている（例えば、特許文献１〜３参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１７８２９０号公報
【特許文献２】特開平５−２１０５０７号公報
【特許文献３】特開２００８−２６９３９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した方法はサーバのＣＰＵ(Central Processing Unit)使用率を利用するものであり、選択されたサーバコンピュータから各情報処理装置が効率よくソフトウェアをダウンロードできないという問題があった。
【０００５】
１つの側面では、新たなソフトウェアを効率的にダウンロードすることが可能なプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
一態様のプログラムは、情報処理装置に、複数のサーバコンピュータの中から通信することが可能なサーバコンピュータを抽出し、抽出した前記サーバコンピュータが配信するソフトウェアのバージョンを取得し、抽出した前記サーバコンピュータが通信中の情報処理装置数を取得し、取得した前記バージョン及び前記情報処理装置数に基づき、一つのサーバコンピュータを選択する処理を実行させる。
【発明の効果】
【０００７】
一態様によれば、新たなソフトウェアを効率的にダウンロードすることが可能となる。
【図面の簡単な説明】
【０００８】
【図１】情報処理システムの概要を示す説明図である。
【図２】サーバコンピュータのハードウェア群を示すブロック図である。
【図３】状態ファイルのレコードレイアウトを示す説明図である。
【図４】パーソナルコンピュータのハードウェア群を示すブロック図である。
【図５】候補ファイルのレコードレイアウトを示す説明図である。
【図６】状態ファイルのレコードレイアウトを示す説明図である。
【図７】状態変更処理の手順を示すフローチャートである。
【図８】状態変更処理の手順を示すフローチャートである。
【図９】サーバコンピュータの選択処理手順を示すフローチャートである。
【図１０】サーバコンピュータの選択処理手順を示すフローチャートである。
【図１１】実施の形態２に係る候補ファイルのレコードレイアウトを示す説明図である。
【図１２】候補抽出処理の手順を示すフローチャートである。
【図１３】上述した形態のサーバコンピュータ及びパーソナルコンピュータの動作を示す機能ブロック図である。
【図１４】実施の形態３に係るパーソナルコンピュータのハードウェア群を示すブロック図である。
【発明を実施するための形態】
【０００９】
実施の形態１
以下実施の形態を、図面を参照して説明する。図１は情報処理システムの概要を示す説明図である。情報処理システムはインターネット、ＬＡＮ(Local Area Network)及び公衆電話網等の通信網Ｎを介して相互に接続されるサーバコンピュータ１及び情報処理装置２等を含む。情報処理装置２は、パーソナルコンピュータ、携帯電話機、ＰＤＡ（Personal Digital Assistance）、ブックリーダ、またはゲーム機等である。以下では情報処理装置２をパーソナルコンピュータ２であるものとして説明する。
【００１０】
パーソナルコンピュータ２は複数のサーバコンピュータ１から後述するアルゴリズムにより、一つのサーバコンピュータ１を選択し、ソフトウェアをダウンロードする。ダウンロードされたソフトウェアはパーソナルコンピュータ２にインストールされる。以下詳細を説明する。
【００１１】
図２はサーバコンピュータ１のハードウェア群を示すブロック図である。サーバコンピュータ１は制御部としてのＣＰＵ１１、ＲＡＭ(Random Access Memory)１２、入力部１３、記憶部１５、及び通信部１６等を含む。ＣＰＵ１１は、バス１７を介してハードウェア各部と接続されている。ＣＰＵ１１は記憶部１５に記憶された制御プログラム１５Ｐに従いハードウェア各部を制御する。ＲＡＭ１２は例えばＳＲＡＭ（Static RAM）、ＤＲＡＭ(Dynamic RAM)、フラッシュメモリ等である。ＲＡＭ１２は、記憶部としても機能し、ＣＰＵ１１による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
【００１２】
入力部１３はマウスまたはキーボード等の入力デバイスであり、受け付けた操作情報をＣＰＵ１１へ出力する。通信部１６は有線または無線ＬＡＮ（Local Area Network）カード等であり、通信網Ｎを介してパーソナルコンピュータ２等との間で情報の送受信を行う。
【００１３】
記憶部１５は例えば、ハードディスクまたは大容量フラッシュメモリ等であり、制御プログラム１５Ｐを格納する。記憶部１５にはこの他、ソフトウェアＤＢ１５１及び状態ファイル１５２等を記憶している。ソフトウェアＤＢ１５１はパーソナルコンピュータ２に配信するソフトウェア及びソフトウェアのバージョンが記憶されている。
【００１４】
図３は状態ファイル１５２のレコードレイアウトを示す説明図である。状態ファイル１５２はＩＰ（InternetProtocol）アドレスフィールド及び状態フィールドを含む。ＩＰアドレスフィールドには、通信部１６を介して、ソフトウェアの配信のために通信を確立しているパーソナルコンピュータ２のＩＰアドレスが記憶されている。状態フィールドには、ＩＰアドレスに対応付けて、状態が記憶されている。状態「ダウンロード中」は、サーバコンピュータ１のＣＰＵ１１がソフトウェアを配信してから、配信を完了するまでの状態である。換言すれば、パーソナルコンピュータ２がソフトウェアのダウンロードを開始してから、当該ソフトウェアの全てのデータをダウンロードし終えるまでの状態である。
【００１５】
状態「適用状態の変更」は、ソフトウェアの配信を終えてから、パーソナルコンピュータ２にてソフトウェアのインストールが開始され、当該インストールが終了されたことがサーバコンピュータ１に通知されるまでの状態である。ＣＰＵ１１は、ダウンロード要求を受け付けた場合、ソフトウェアＤＢ１５１からソフトウェアを読み出し、パーソナルコンピュータ２へ配信する。その際ＣＰＵ１１は、配信先パーソナルコンピュータ２のＩＰアドレスをＩＰアドレスフィールドに記憶する。またＣＰＵ１１は、状態フィールドにダウンロード中であることを示す情報を、ＩＰアドレスに対応付けて記憶する。
【００１６】
ＣＰＵ１１は、ソフトウェアのダウンロードが完了した旨の情報をパーソナルコンピュータ２から受信した場合、適用状態の変更に移行したことを示す情報を、状態ファイル１５２に、ＩＰアドレスに対応付けて記憶する。図３の例では、状態「ダウンロード中」が消去され状態「適用状態の変更」が記憶される。パーソナルコンピュータ２はインストールを終えた場合、適用状態の変更処理を終えた旨の情報をサーバコンピュータ１へ送信する。ＣＰＵ１１は、パーソナルコンピュータ２からソフトウェアの適用状態の変更処理を終えた旨の情報を受信した場合、当該パーソナルコンピュータ２のＩＰアドレス及びＩＰアドレスに対応する状態のレコードを状態ファイル１５２から削除する。以下では、ソフトウェアの適用状態の変更処理を終えた旨の情報をインストール終了情報という。
【００１７】
ＣＰＵ１１は、サーバコンピュータ１と通信を確立しているパーソナルコンピュータ２の数から、ダウンロードが既に完了しソフトウェアの適用状態の変更のために通信しているパーソナルコンピュータ２の数を減じる。具体的には、状態ファイル１５２の状態フィールドに記憶されたレコード数から、状態「適用状態の変更」のレコード数を減じる。ＣＰＵ１１は、当該減算した値（以下、減算値という）をパーソナルコンピュータ２へ送信する。図３の例では全状態数「５」から適用状態の変更の総数「２」を減じ、減算値「３」を求める。
【００１８】
図４はパーソナルコンピュータ２のハードウェア群を示すブロック図である。パーソナルコンピュータ２は制御部としてのＣＰＵ２１、ＲＡＭ２２、入力部２３、記憶部２５、表示部２４及び通信部２６等を含む。ＣＰＵ２１は、バス２７を介してハードウェア各部と接続されている。ＣＰＵ２１は記憶部２５に記憶された制御プログラム２５Ｐに従いハードウェア各部を制御する。ＲＡＭ２２は例えばＳＲＡＭ、ＤＲＡＭ、フラッシュメモリ等である。ＲＡＭ２２は、記憶部としても機能し、ＣＰＵ２１による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
【００１９】
入力部２３はマウスまたはキーボード等の入力デバイスであり、受け付けた操作情報をＣＰＵ２１へ出力する。表示部２４は液晶ディスプレイまたは有機ＥＬ（ElectroLuminescence）ディスプレイ等であり、ＣＰＵ２１の指示に従い各種情報を表示する。通信部２６は有線または無線ＬＡＮカード等であり、通信網Ｎを介してサーバコンピュータ１等との間で情報の送受信を行う。
【００２０】
記憶部２５は例えば、ハードディスクまたは大容量フラッシュメモリ等であり、制御プログラム２５Ｐを格納する。記憶部２５はこの他、ソフトウェアＤＢ２５１及び状態ファイル２５２及び候補ファイル２５３等を記憶している。ソフトウェアＤＢ２５１にはサーバコンピュータ１からダウンロードしたソフトウェア及びソフトウェアのバージョンが記憶されている。
【００２１】
図５は候補ファイル２５３のレコードレイアウトを示す説明図である。候補ファイル２５３はサーバ名フィールド、ＩＰアドレスフィールド及び対象フラグフィールド等を含む。サーバ名フィールドには、各サーバコンピュータ１を特定するためのサーバ名が記憶されている。ＩＰアドレスフィールドには、サーバ名に対応づけて、サーバコンピュータ１の通信網Ｎ上のアドレスであるＩＰアドレスが記憶されている。対象フラグフィールドには、サーバ名に対応づけて、サーバコンピュータ１に対しソフトウェアのダウンロードを行うことが可能か否かの情報が記憶されている。
【００２２】
図５の例では、対象フラグ「１」と記憶されている場合、サーバコンピュータ１（サーバ名Ａ、Ｂ、Ｃ）からソフトウェアのダウンロードを行うことが可能である。一方、対象フラグ「０」と記憶されている場合、サーバコンピュータ１（サーバ名Ｄ）からソフトウェアのダウンロードを行うことができない。
【００２３】
図６は状態ファイル２５２のレコードレイアウトを示す説明図である。状態ファイル２５２はサーバ名フィールド、ＩＰアドレスフィールド、通信可否フィールド、バージョンフィールド及び接続数フィールド等を含む。サーバ名フィールドには、ダウンロードを行うことが可能なサーバコンピュータ１のサーバ名が記憶されている。ＣＰＵ２１は、候補ファイル２５３を参照し、対象フラグ「１」が記憶されているサーバ名を状態ファイル２５２に記憶する。図５及び図６の例ではサーバ名Ａ、Ｂ及びＣが記憶される。ＩＰアドレスフィールドには、サーバ名に対応するサーバコンピュータ１のＩＰアドレスが記憶されている。
【００２４】
通信可否フィールドには、パーソナルコンピュータ２の通信部２６を介してサーバコンピュータ１と通信し、ソフトウェアをダウンロードすることが可能か否かの情報が記憶されている。図６の例では通信することが可能なサーバコンピュータ１には「１」が記憶され、通信することができないサーバコンピュータ１には「０」が記憶されている。通信を行うことが可能か否かは以下の処理により判断すればよい。
【００２５】
パーソナルコンピュータ２のＣＰＵ２１は、connect関数を用いてサーバコンピュータ１側のリモートメンテナンスシステムのサービスが起動状態にあるか否かにより、通信が可能か否かを判断すればよい。connect関数は、TCP/IP(Transmission ControlProtocol/Internet Protocol)コネクションを接続するOS（Operating System）のソケットAPI（Application Programming Interface）関数である。サーバコンピュータ１のリモートメンテナンスシステムのサービスが起動された場合、パーソナルコンピュータ２からのTCP/IPコネクションを待ち受けるため、ＣＰＵ１１は、accept関数を実行する。ここで、accpet関数は、TCP/IPコネクションを待ち受けるOSのソケットAPI関数である。
【００２６】
サーバコンピュータ１にてaccept関数が実行されている場合、パーソナルコンピュータ２からのconnect関数は成功するため、ＣＰＵ２１は、サーバコンピュータ１側のサービスは起動されていると判断できる。一方、サーバコンピュータ１側のリモートメンテナンスシステムのサービスが起動されていない場合、accept関数が実行されない。この状態では、パーソナルコンピュータ２からのconnect関数は失敗するため、ＣＰＵ２１は、サーバコンピュータ１側のサービスは起動されていないと判断できる。
【００２７】
パーソナルコンピュータ２のＣＰＵ２１は、通信可能か否かを判断し、通信することが可能な場合、「１」を通信可否フィールドに記憶し、通信することができない場合「０」を記憶する。バージョンフィールドには、サーバコンピュータ１が配信する予定のソフトウェアのバージョンからパーソナルコンピュータ２のソフトウェアＤＢ２５１に記憶したソフトフェアのバージョンを減じた値が記憶されている。サーバコンピュータ１のＣＰＵ１１は、ソフトウェアＤＢ１５１から配信予定のソフトウェアのバージョンを読み出す。ＣＰＵ１１は、パーソナルコンピュータ２にバージョンを送信する。
【００２８】
パーソナルコンピュータ２のＣＰＵ２１は、サーバコンピュータ１からバージョンを受信する。ＣＰＵ２１は、ソフトウェアＤＢ２５１から既にダウンロードした同一ソフトウェアのバージョンを読み出す。なお、一度も当該ソフトウェアをダウンロードしていない場合、０とすれば良い。ＣＰＵ２１は、受信したバージョンから読み出したバージョンを減じる。ＣＰＵ２１は、算出した差をバージョンフィールドにサーバ名に対応づけて記憶する。なお、本実施形態では算出したバージョンの差を記憶する例を挙げたがこれに限るものではない。サーバコンピュータ１から受信したバージョンをサーバ名に対応づけて記憶しても良い。
【００２９】
接続数フィールドには、サーバ名に対応づけて接続数が記憶されている。ＣＰＵ２１は、各サーバコンピュータ１から減算値を受信する。なお、本実施形態では減算値を用いる例を挙げたがこれに限るものではない。例えば、減算する前の総接続数を記憶するようにしても良い。図６では減算値の例として５を記憶している。ＣＰＵ２１は、受信した減算値をサーバ名に対応づけて記憶する。図６の例では、サーバ名Ａは通信が可能であり、バージョンの差は３、接続数（減算値）は５となる。なお、本実施形態で述べたファイル及びＤＢのレイアウトは一例であり、これに限るものではない。また本実施形態ではファイル及びＤＢを記憶部１５または記憶部２５に記憶する例を挙げたが、ＲＡＭ１２またはＲＡＭ２２に記憶するほか、他の図示しないＤＢにこれらの情報を記憶しても良い。
【００３０】
ＣＰＵ２１は、状態ファイル２５２を参照し、通信することが可能か否か、バージョンの差及び接続数に基づき１のサーバコンピュータ１を選択する。ＣＰＵ２１は、接続可能なサーバコンピュータ１を選択する。次いで、ＣＰＵ２１は、選択したサーバコンピュータ１の内、バージョンの差が最も大きいサーバコンピュータ１を選択する。なお、最もバージョンの新しいサーバコンピュータ１を選択しても良い。ここで、差が最も大きいサーバコンピュータ１が複数存在する場合、ＣＰＵ２１は、接続数を読み出す。ＣＰＵ２１は、接続数の最も少ないサーバコンピュータ１を選択する。図６の例ではサーバ名Ｃのサーバコンピュータ１が選択される。なお、接続数も同数の場合、任意またはサーバ名の名前順（アルファベット順または５０音順）で選択すればよい。
【００３１】
以上のハードウェア群において選択処理等を、フローチャートを用いて説明する。図７及び図８は状態変更処理の手順を示すフローチャートである。パーソナルコンピュータ２のＣＰＵ２１は、通信部２６を介して、ダウンロード要求及びＩＰアドレスをサーバコンピュータ１へ送信する（ステップＳ７１）。ＣＰＵ１１は、通信部１６を介して、ダウンロード要求及びＩＰアドレスを受信する（ステップＳ７２）。ＣＰＵ１１は、状態ファイル１５２にＩＰアドレスに対応づけて状態「ダウンロード中」を記憶する（ステップＳ７３）。
【００３２】
サーバコンピュータ１のＣＰＵ１１は、ソフトウェアＤＢ１５１から配信対象のソフトウェアを読み出し、パーソナルコンピュータ２へ送信する（ステップＳ７４）。ＣＰＵ２１は、ソフトウェアを受信する（ステップＳ７５）。ＣＰＵ２１は、ソフトウェアを全てダウンロードした場合、ダウンロード完了情報及びＩＰアドレスをサーバコンピュータ１へ送信する（ステップＳ７６）。サーバコンピュータ１のＣＰＵ１１は、ダウンロード完了情報及びＩＰアドレスを受信する（ステップＳ７７）。ＣＰＵ１１は、ＩＰアドレスに対応する状態「ダウンロード中」を削除し、状態「適用状態の変更」へ変更する（ステップＳ７８）。
【００３３】
パーソナルコンピュータ２のＣＰＵ２１は、引き続きインストール処理を行う（ステップＳ７９）。ＣＰＵ２１は、インストールを終えた場合、インストール終了情報及びＩＰアドレスをサーバコンピュータ１へ送信する（ステップＳ８１）。サーバコンピュータ１のＣＰＵ１１は、インストール終了情報及びＩＰアドレスを受信する（ステップＳ８２）。ＣＰＵ１１は、状態ファイル１５２の受信したＩＰアドレスに対応するレコードを消去する（ステップＳ８３）。
【００３４】
図９及び図１０はサーバコンピュータ１の選択処理手順を示すフローチャートである。パーソナルコンピュータ２のＣＰＵ２１は、候補ファイル２５３の対象フラグを参照し、候補となるサーバ名及びＩＰアドレスを読み出す（ステップＳ９１）。ＣＰＵ２１は、状態ファイル２５２に読み出したサーバ名及びＩＰアドレスを記憶する（ステップＳ９２）。ＣＰＵ２１は、記憶したサーバコンピュータ１の中から通信することが可能なサーバコンピュータ１を抽出する（ステップＳ９３）。具体的には、上述したconnect関数を実行することにより、通信することが可能なサーバコンピュータ１を抽出すればよい。
【００３５】
ＣＰＵ２１は、サーバコンピュータ１のサーバ名及びＩＰアドレスに対応づけて、通信することが可能か否かの情報を、状態ファイル２５２に記憶する（ステップＳ９４）。ＣＰＵ２１は、ソフトウェアＤＢ２５１を参照し、ソフトウェアのバージョンを読み出す（ステップＳ９５）。ＣＰＵ２１は、サーバコンピュータ１にソフトウェアのバージョンの取得要求を送信する（ステップＳ９６）。サーバコンピュータ１のＣＰＵ１１は、ソフトウェアのバージョン取得要求を受信する（ステップＳ９７）。
【００３６】
ＣＰＵ１１は、ソフトウェアＤＢ２５１から配信予定のソフトウェアのバージョンを読み出す（ステップＳ９８）。ＣＰＵ１１は、読み出したソフトウェアのバージョンをパーソナルコンピュータ２へ送信する（ステップＳ９９）。ＣＰＵ２１は、受信したソフトウェアのバージョンから、ステップＳ９５で読み出したバージョンとの差を算出する（ステップＳ１０１）。ＣＰＵ２１は、バージョンの差をサーバ名に対応づけて状態ファイル２５２に記憶する（ステップＳ１０２）。ＣＰＵ２１は、接続数の取得要求をサーバコンピュータ１へ送信する（ステップＳ１０３）。
【００３７】
サーバコンピュータ１のＣＰＵ１１は、接続数の取得要求を受信する（ステップＳ１０４）。ＣＰＵ１１は、状態ファイル１５２を参照しＩＰアドレス数を読み出す（ステップＳ１０５）。ＣＰＵ１１は、状態「適用状態の変更」が記憶されたＩＰアドレス数を読み出す（ステップＳ１０６）。ＣＰＵ１１は、ＩＰアドレス数の総数からステップＳ１０６で読み出したＩＰアドレス数を減じ、減算値を算出する（ステップＳ１０７）。ＣＰＵ１１は、算出した減算値をパーソナルコンピュータ２へ送信する（ステップＳ１０８）。ＣＰＵ２１は、減算値を受信する（ステップＳ１０９）。ＣＰＵ２１は、減算値を状態ファイル２５２にサーバ名及びＩＰアドレスに対応づけて記憶する（ステップＳ１１１０）。ＣＰＵ２１は以上の処理を、ステップＳ９２で記憶した他のサーバコンピュータ１についても同様に行う。
【００３８】
ＣＰＵ２１は、状態ファイル２５２の通信可否フィールドを参照し、通信することが可能なサーバ名を抽出する（ステップＳ１１１１）。ＣＰＵ２１は、抽出したサーバ名の内、バージョンの差が最大のサーバ名を選択する（ステップＳ１１１２）。ＣＰＵ２１は、選択したサーバ名は複数か否かを判断する（ステップＳ１１１３）。ＣＰＵ２１は、サーバ名は複数と判断した場合（ステップＳ１１１３でＹＥＳ）、ステップＳ１１１４へ移行する。ＣＰＵ２１は、サーバ名は複数でないと判断した場合（ステップＳ１１１３でＮＯ）、ステップＳ１１１７へ移行する。ＣＰＵ２１は、サーバ名が複数の場合、接続数が最小のサーバ名を選択する（ステップＳ１１１４）。
【００３９】
ＣＰＵ２１は、ステップＳ１１１４で選択したサーバ名が複数か否かを判断する（ステップＳ１１１５）。ＣＰＵ２１は、複数であると判断した場合（ステップＳ１１１５でＹＥＳ）、ステップＳ１１１６へ移行する。ＣＰＵ２１は、バージョンの差が最大、かつ、接続数が最小の複数のサーバ名の内、任意のサーバ名をＲＡＭ２２に記憶する（ステップＳ１１１６）。サーバ名が複数でない場合（ステップＳ１１１５でＮＯ）、ＣＰＵ２１は、処理をステップＳ１１１７へ移行させる。ＣＰＵ２１は、バージョンの差が最大のサーバ数が一つの場合、または、バージョンの差が最大のサーバ数が複数でありかつ接続数が最小のサーバが一つの場合、サーバ名をＲＡＭ２２に記憶する（ステップＳ１１１７）。ＣＰＵ２１は、ＲＡＭ２２に記憶したサーバ名に対応するＩＰアドレスを参照し、ソフトウェアのダウンロード要求を行う。これにより、より効率よく最新のソフトウェアをダウンロードすることが可能となる。
【００４０】
実施の形態２
実施の形態２は指定された通信範囲内に属するサーバコンピュータ１を選択する形態に関する。図１１は実施の形態２に係る候補ファイル２５３のレコードレイアウトを示す説明図である。候補ファイル２５３はさらに範囲フラグフィールドがサーバ名及びＩＰアドレスに対応づけて記憶されている。ＣＰＵ２１は、候補ファイル２５３に記憶されたサーバコンピュータ１の内、予め指定された通信範囲内に属するサーバコンピュータ１を抽出する。具体的には、ＣＰＵ２１は、pingコマンドの-iオプションを利用する。pingコマンドの-iオプションは指定した範囲のルータ数を超えた場合、通信できなくなるものである。ＣＰＵ２１は、通信範囲として記憶部２５に予め記憶したルータ数を読み出す。本実施形態では３とする。
【００４１】
ＣＰＵ２１は、各サーバコンピュータ１のＩＰアドレスを参照し、３を指定したpingコマンドを出力する。ＣＰＵ２１は、パーソナルコンピュータ２とサーバコンピュータ１との間のルータ数が３以内である場合、サーバコンピュータ１から応答信号を受信する。その場合、ＣＰＵ２１は、指定した通信範囲内に属するとして、ＩＰアドレスに対応づけて範囲フラグ１を、候補ファイル２５３に記憶する。一方、ＣＰＵ２１は、パーソナルコンピュータ２とサーバコンピュータ１との間のルータ数が３を超える場合、サーバコンピュータ１から応答信号を受信できない。その場合、ＣＰＵ２１は、指定した通信範囲内に属さないとして、ＩＰアドレスに対応づけて範囲フラグ０を、候補ファイル２５３に記憶する。
【００４２】
ＣＰＵ２１は、当該処理を定期的、または、ステップＳ９１の処理前に毎回実行しても良い。またＣＰＵ２１は、パーソナルコンピュータ２の自身のＩＰアドレスが変更された場合に当該処理を実行しても良い。ＣＰＵ２１は、対象フラグ及び範囲フラグの双方についてフラグ１が設定されているサーバ名を、候補として抽出する。ＣＰＵ２１は抽出したサーバ名及び対応するＩＰアドレスを、状態ファイル２５２に記憶する。
【００４３】
図１２は候補抽出処理の手順を示すフローチャートである。ＣＰＵ２１は、記憶部２５を参照し、パーソナルコンピュータ２または通信部２６に割り当てられたＩＰアドレスが変更されたか否かを判断する（ステップＳ１２１）。ＣＰＵ２１は、変更されていないと判断した場合（ステップＳ１２１でＮＯ）、変更されるまで待機する。ＣＰＵ２１は、ＩＰアドレスが変更されたと判断した場合（ステップＳ１２１でＹＥＳ）、処理をステップＳ１２２へ移行させる。なお、ステップＳ１２１の処理は省略しても良い。
【００４４】
ＣＰＵ２１は、候補ファイル２５３から対象フラグが１のサーバ名及びＩＰアドレスを読み出す（ステップＳ１２２）。ＣＰＵ２１は、記憶部２５に記憶したルータ数を読み出す（ステップＳ１２３）。なおルータ数は入力部２３から適宜変更することが可能である。ＣＰＵ２１は、ルータ数をpingコマンドの-iオプションに設定し、サーバコンピュータ１のＩＰアドレス宛へpingコマンドを出力する（ステップＳ１２４）。ＣＰＵ２１は、応答信号を受信したか否かを判断する（ステップＳ１２５）。ＣＰＵ２１は、応答信号を受信していないと判断した場合（ステップＳ１２５でＮＯ）、処理をステップＳ１２７へ移行させる。
【００４５】
ＣＰＵ２１は、サーバコンピュータ１のＩＰアドレスに対応づけて、候補ファイル２５３に範囲フラグ０を記憶する（ステップＳ１２７）。ＣＰＵ２１は、応答信号を受信したと判断した場合（ステップＳ１２５でＹＥＳ）、処理をステップＳ１２６へ移行させる。ＣＰＵ２１は、サーバコンピュータ１のＩＰアドレスに対応づけて、候補ファイル２５３に範囲フラグ１を記憶する（ステップＳ１２６）。ＣＰＵ２１は、ステップＳ１２２で読み出した全てのＩＰアドレスに係るサーバコンピュータ１についてのフラグ記憶処理を終了したか否かを判断する（ステップＳ１２８）。
【００４６】
ＣＰＵ２１は、処理を終了していないと判断した場合（ステップＳ１２８でＮＯ）、処理をステップＳ１２４へ戻す。これにより、各サーバコンピュータ１の範囲フラグが記憶される。ＣＰＵ２１は、処理を終了したと判断した場合（ステップＳ１２８でＹＥＳ）、処理をステップＳ１２９へ移行させる。ＣＰＵ２１は、対象フラグ及び範囲フラグ共に１のサーバ名及びＩＰアドレスを候補として読み出す（ステップＳ１２９）。その後、ステップＳ９２の処理を行う。これにより、より効率よくソフトウェアをダウンロードすることが可能となる。
【００４７】
本実施の形態２は以上の如きであり、その他は実施の形態１と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００４８】
実施の形態３
図１３は上述した形態のサーバコンピュータ１及びパーソナルコンピュータ２の動作を示す機能ブロック図である。ＣＰＵ１１が制御プログラム１５Ｐを実行することにより、サーバコンピュータ１は以下のように動作する。第１送信部１１１は配信するソフトウェアのバージョンをパーソナルコンピュータ２へ送信する。第２送信部１１２は通信中のパーソナルコンピュータ２の数をパーソナルコンピュータ２へ送信する。
【００４９】
また、ＣＰＵ２１が制御プログラム２５Ｐを実行することにより、パーソナルコンピュータ２は以下のように動作する。抽出部２１１は複数のサーバコンピュータ１の中から通信することが可能なサーバコンピュータ１を抽出する。第１取得部２１２は抽出したサーバコンピュータ１の第１送信部１１１により送信されたバージョンを取得する。第２取得部２１３は抽出したサーバコンピュータ１の第２送信部１１２により送信されたパーソナルコンピュータ２の数を取得する。選択部２１４は第１取得部２１２及び第２取得部２１３により取得したバージョン及びパーソナルコンピュータ２数に基づき、一つのサーバコンピュータ１を選択する。
【００５０】
図１４は実施の形態３に係るパーソナルコンピュータ２のハードウェア群を示すブロック図である。パーソナルコンピュータ２を動作させるためのプログラムは、ディスクドライブ等の読み取り部２０ＡにCD-ROM、DVD（Digital VersatileDisc）ディスク、メモリーカード、またはUSB(Universal Serial Bus)メモリ等の可搬型記録媒体２Ａを読み取らせて記憶部２５に記憶しても良い。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ２Ｂをパーソナルコンピュータ２内に実装しても良い。さらに、当該プログラムは、インターネット等の通信網Ｎを介して接続される他のサーバコンピュータ（図示せず）からダウンロードすることも可能である。以下に、その内容を説明する。
【００５１】
図１４に示すパーソナルコンピュータ２は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体２Ａまたは半導体メモリ２Ｂから読み取り、或いは、通信網Ｎを介して他のサーバコンピュータ（図示せず）からダウンロードする。当該プログラムは、制御プログラム２５Ｐとしてインストールされ、ＲＡＭ２２にロードして実行される。これにより、上述したパーソナルコンピュータ２として機能する。
【００５２】
本実施の形態３は以上の如きであり、その他は実施の形態１及び２と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００５３】
以上の実施の形態１乃至３を含む実施形態に関し、さらに以下の付記を開示する。
【００５４】
（付記１）
情報処理装置に、
複数のサーバコンピュータの中から通信することが可能なサーバコンピュータを抽出し、
抽出した前記サーバコンピュータが配信するソフトウェアのバージョンを取得し、
抽出した前記サーバコンピュータが通信中の情報処理装置数を取得し、
取得した前記バージョン及び前記情報処理装置数に基づき、一つのサーバコンピュータを選択する
処理を実行させるプログラム。
【００５５】
（付記２）
取得したバージョンが最も新しいサーバコンピュータを選択する
付記１に記載のプログラム。
【００５６】
（付記３）
インストール済みのソフトウェアのバージョンを取得し、
抽出したサーバコンピュータが配信するソフトウェアのバージョン数と、取得したインストール済みのソフトウェアのバージョン数との差を算出し、
算出した差が最も大きいサーバコンピュータを選択する
付記１または２に記載のプログラム。
【００５７】
（付記４）
差が最も大きいサーバコンピュータが複数存在する場合、取得した通信中の情報処理装置数が最も少ないサーバコンピュータを選択する
付記３に記載のプログラム。
【００５８】
（付記５）
サーバコンピュータが通信中の情報処理装置数は、サーバコンピュータと通信を確立している情報処理装置数から、ダウンロードが既に完了しソフトウェアの適用状態の変更のために通信している情報処理装置数を減じた値である
付記１から４のいずれか一つに記載のプログラム。
【００５９】
（付記６）
アドレスが変更されたか否かを判断し、
アドレスが変更されたと判断した場合に、指定された通信範囲内に属するサーバコンピュータを抽出する
付記１から５のいずれか一つに記載のプログラム。
【００６０】
（付記７）
選択したサーバコンピュータからソフトウェアをダウンロードする
付記１から６のいずれか一つに記載のプログラム。
【００６１】
（付記８）
複数のサーバコンピュータの中から通信することが可能なサーバコンピュータを抽出する抽出部と、
抽出したサーバコンピュータが配信するソフトウェアのバージョンを取得する第１取得部と、
抽出したサーバコンピュータが通信中の情報処理装置数を取得する第２取得部と、
前記第１取得部及び前記第２取得部により取得したバージョン及び情報処理装置数に基づき、一つのサーバコンピュータを選択する選択部と
を備える情報処理装置。
【００６２】
（付記９）
情報処理装置を用いた情報処理方法において、
複数のサーバコンピュータの中から通信することが可能なサーバコンピュータを抽出し、
抽出した前記サーバコンピュータが配信するソフトウェアのバージョンを取得し、
抽出した前記サーバコンピュータが通信中の情報処理装置数を取得し、
取得した前記バージョン及び前記情報処理装置数に基づき、一つのサーバコンピュータを選択する
情報処理方法。
【００６３】
（付記１０）
複数の情報処理装置及び複数のサーバコンピュータが通信網を介して相互に接続された情報処理システムにおいて、
サーバコンピュータは、
配信するソフトウェアのバージョンを情報処理装置へ送信する第１送信部と、
通信中の情報処理装置数を情報処理装置へ送信する第２送信部とを備え、
情報処理装置は、
複数のサーバコンピュータの中から通信することが可能なサーバコンピュータを抽出する抽出部と、
抽出した前記サーバコンピュータの前記第１送信部により送信されたバージョンを取得する第１取得部と、
抽出した前記サーバコンピュータの前記第２送信部により送信された情報処理装置数を取得する第２取得部と、
前記第１取得部及び前記第２取得部により取得した前記バージョン及び前記情報処理装置数に基づき、一つのサーバコンピュータを選択する選択部と
を備える情報処理システム。
【００６４】
（付記１１）
前記第２送信部は、
通信を確立している情報処理装置数から、ダウンロードが既に完了しソフトウェアの適用状態の変更のために通信している情報処理装置数を減じた値を算出し、算出した情報処理装置数をコンピュータへ送信する
付記１０に記載の情報処理システム。
【符号の説明】
【００６５】
１      サーバコンピュータ
２      パーソナルコンピュータ
２Ａ    可搬型記録媒体
２Ｂ    半導体メモリ
２０Ａ  読み取り部
１１    ＣＰＵ
１２    ＲＡＭ
１３    入力部
１５    記憶部
１５Ｐ  制御プログラム
１６    通信部
２１    ＣＰＵ
２２    ＲＡＭ
２３    入力部
２４    表示部
２５    記憶部
２５Ｐ  制御プログラム
２６    通信部
１１１  第１送信部
１１２  第２送信部
２１１  抽出部
２１２  第１取得部
２１３  第２取得部
２１４  選択部
１５１  ソフトウェアＤＢ
１５２  状態ファイル
２５１  ソフトウェアＤＢ
２５２  状態ファイル
２５３  候補ファイル
Ｎ    通信網
【図１】
2014013444.tif 000003
【図２】
2014013444.tif 000004
【図３】
2014013444.tif 000005
【図４】
2014013444.tif 000006
【図５】
2014013444.tif 000007
【図６】
2014013444.tif 000008
【図７】
2014013444.tif 000009
【図８】
2014013444.tif 000010
【図９】
2014013444.tif 000011
【図１０】
2014013444.tif 000012
【図１１】
2014013444.tif 000013
【図１２】
2014013444.tif 000014
【図１３】
2014013444.tif 000015
【図１４】
2014013444.tif 000016