(57)【要約】【課題】  ホストコンピュータに対するドライバソフトウェアのインストールおよびアップデート（更新）作業の効率化と無人化を図ることのできる、サーバとクライアントが異なるネットワークに存在しても可能な、パーソナルコンピュータ等のリモートインストールおよびリモートアップデート（更新）方法を提供することである。【解決手段】  サーバの、インストール日時・対象クライアント設定画面および、設定した日時にクライアントにＷａｋｅｕｐ信号を送出するプログラム、クライアントで実行されているエージェントからなる。【選択図】  図１
2006243915.tif 000002
【特許請求の範囲】
【請求項１】
あらかじめクライアントにインストールしたエージェントにより、クライアントにドライバソフトウェアをインストールおよびアップデート（更新）を行うことを特徴とするリモートインストールおよびリモートアップデート（更新）実行方法。
【請求項２】
エージェントによりクライアントにおけるドライバソフトウェアのインストールおよびアップデート（更新）作業終了後に、クライアントをシャットダウンできるように設定されることを特徴とするリモートインストールおよびリモートアップデート（更新）実行方法。
【請求項３】
クライアントに既にバージョンを問わずいずれかのバージョンのドライバソフトウェアがインストール済みであったときは、該ドライバソフトウェアをアンインストール後に、ドライバソフトウェアをインストールすることを特徴とするリモートアップデート（更新）実行方法。
【請求項４】
サーバにより、クライアントにおけるドライバソフトウェアのインストールおよびアップデート日時を指定できることを特徴とするリモートインストールおよびリモートアップデート（更新）実行方法。
【請求項５】
サーバとクライアントが、ルータを跨いだ異なるネットワークに存在した場合でも、クライアントにドライバソフトウェアをインストールおよびアップデートを行うことが可能なことを特徴とするリモートインストールおよびリモートアップデート（更新）実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はクライアント／サーバ構成において、容易にクライアントであるホストコンピュータ等にドライバソフトウェアをインストールおよびアップデート（更新）するためのリモートインストールおよびリモートアップデート（更新）実行システムに関する。
【背景技術】
【０００２】
クライアント側のホストコンピュータ等の環境構築は、スタンドアローンで１つずつドライバソフトウェアをインストールするか、またはサーバからインストールすべきドライバソフトウェアを、１つずつ選択してインストールすることで行われてきた。
【０００３】
また、最近では、サーバからの指示でクライアントであるホストコンピュータ等の電源を入れる構成、すなわちＷａｋｅ  Ｏｎ  ＬＡＮの構成が、実用化されている。
【０００４】
このような、Ｗａｋｅ  Ｏｎ  ＬＡＮの構成を利用すれば、クライアントであるホストコンピュータ等で直接操作を行うことをしないで、ドライバソフトウェアをインストールおよびアップデートを行うこともできる。
【０００５】
又、従来例としては、例えば特許文献１と特許文献２をあげることが出来る。
【特許文献１】特開2004-318329号公報
【特許文献２】特開2003-167696号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来各ホストコンピュータ１台毎に、該ホストコンピュータを使用してドライバソフトウェアをインストールまたはアップデート（更新）しなければならず、多大なインストールおよびアップデート（更新）作業時間を必要とするという問題があった。
【０００７】
また、ドライバソフトウェアのインストールおよびアップデート（更新）作業中およびはインストールおよびアップデート（更新）作業終了後の該ホストコンピュータのリブート作業により、ユーザは通常の使用のための作業が該ホストコンピュータで長時間中断させられるという問題があった。
【０００８】
さらにまた、クライアントに既にバージョンを問わずいずれかのバージョンのドライバソフトウェアがインストール済みであったとき、ドライバソフトウェアをインストールしただけでは、正常に動作しないことがある。特に既に新バージョンのドライバソフトウェアがインストール済みで、この新バージョンのドライバソフトウェアに不具合があり、旧バージョンのドライバソフトウェアにアップデート（更新）するときに、この問題は顕著に発生した。このため、該ドライバソフトウェアをアンインストール後に、ドライバソフトウェアをインストールしなければならない場合があったという問題があった。
【０００９】
近年、パーソナルコンピュータ等の普及にともない、LANのネットワークに接続されるホストコンピュータの数が飛躍的に増大しており、これにともなって、クライアント側のホストコンピュータ等に対してのドライバソフトウェアのインストールおよびアップデート（更新）作業の効率化ならびに自動化に対する要求が出つつある。
【００１０】
また、従来、Ｗａｋｅ  Ｏｎ  ＬＡＮを使用したネットワーク上からのホストコンピュータの起動は、サーバとクライアントがルータを跨がない同一ネットワーク上に存在しなければいけないという制限があった。
【００１１】
本発明は、前記事情に基づきなされたもので、その目的とするところは、ホストコンピュータに対するドライバソフトウェアのインストールおよびアップデート（更新）作業の効率化と無人化を図ることのできる、サーバとクライアントが異なるネットワークに存在しても可能な、パーソナルコンピュータ等のリモートインストールおよびリモートアップデート（更新）方法を提供することである。
【課題を解決するための手段】
【００１２】
前記目的を達成するため、本発明は次のような工程からなる。ドライバソフトウェアのインストールおよびアップデート（更新）作業は、ユーザがクライアント側のホストコンピュータ等を使用していない時間帯が望ましい。このため、サーバは管理者により指定された時間になった事を確認し、ドライバソフトウェアのインストールまたはアップデート（更新）対象であるクライアントに対し、Ｗａｋｅｕｐ信号を送信し、クライアントを起動させる。
【００１３】
クライアントに送られるＷａｋｅｕｐ信号のパケットは、ＴＣＰ／ＩＰプロトコルが起動していないのは勿論、電源の入っていないクライアントに対し送るものであるので、本来クライアントのＭＡＣアドレスのみ必要とし、ＩＰアドレスは必要としない。６バイトのFFhとして定義される同期化ストリームに続けて、データシーケンスをクライアントの１６進数で１２桁の４８ビットのＭａｃアドレスを１６回繰り返すことによって定義するだけでよい。
【００１４】
しかし、この場合、サーバとクライアントが、ルータなどを跨いだ異なるネットワークに存在した場合、サーバとクライアントが存在する異なるネットワークを接続するルータは、プロードキャストパケットやマルチキャストパケットのようにＭＡＣアドレスのみがありＩＰアドレスがないパケットまたは、宛先のＩＰアドレスが該ルータがパケットをルーティング（転送）する必要のないネットワークのときは、該パケットを破棄してしまうため、サーバが送る該クライアント宛てパケットは該クライアントには到達することは出来ない。このため、クライアントに送られるＷａｋｅｕｐ信号のパケットには、クライアントのＩＰアドレスも含めることが望ましい。これにより、ルータは該パケットが、ルーティング（転送）を必要であるパケットと判断し、該クライアントに到達させるためルーティング（転送）を行うことにより、サーバが送るＷａｋｅｕｐ信号のパケットを、異なるネットワークに存在するクライアントに到達せしめることができる。
【００１５】
クライアントが起動すると、あらかじめクライアントにインストールされているエージェントが常駐プログラムとして、クライアントで実行される。
【００１６】
サーバは、クライアントにＷａｋｅｕｐ信号のパケットを送出した一定時間経過後、クライアントでエージェントが実行されていることを確認する。これの後、サーバは、クライアントで実行されているエージェントに対しドライバソフトウェアの送付を行う。サーバは、ドライバソフトウェアの送付完了後に、クライアントで実行されているエージェントに対し、該ドライバのセットアップを行うよう指示を出す。サーバより指示を受けたクライアントで実行されているエージェントは、既にバージョンを問わずいずれかのバージョンのドライバソフトウェアがインストール済みであるかを調べる。既にクライアントにバージョンを問わずいずれかのバージョンのドライバソフトウェアがインストール済みであるときには、クライアントで実行されているエージェントは該ドライバソフトウェアのアンインストールを行い、次に、サーバより送付されたドライバソフトウェアのインストールを行うことにより、ドライバソフトウェアのアップデート（更新）処理を行う。クライアントにはバージョンを問わずドライバソフトウェアがインストールされていないときには、クライアントで実行されているエージェントは、直ちにサーバより送付されたドライバソフトウェアのインストールを行うことにより、ドライバソフトウェアのインストール処理を行う。クライアントで実行されているエージェントは、インストールおよびアップデート（更新）作業終了後に、シャットダウン処理を実行し、クライアントの電源を自ら切る。
【００１７】
このようにすると、ユーザの該ホストコンピュータの通常の使用中に、該ホストコンピュータのリブートが必要でなくなり、またユーザの該ホストコンピュータの通常の使用のための作業を中断させることなく、ユーザが該ホストコンピュータを使用していない時間帯に自動でドライバソフトウェアのインストールおよびアップデート（更新）作業を実行することができ、ユーザの負担が無くなる。
【００１８】
また、バージョンを問わずいずれかのバージョンのドライバソフトウェアがインストール済みである場合でも、該ドライバソフトウェアをアンインストール後に、インストールを実行することにより、問題が発生しないように確実にアップデート（更新）することができる。
【００１９】
さらに、サーバとクライアントが異なるネットワークに存在するときも、Ｗａｋｅ  Ｏｎ  ＬＡＮの構成を利用して、ドライバソフトウェアのインストールおよびアップデート（更新）作業を実行することができる。
【発明の効果】
【００２０】
以上説明したように本実施形態によれば、ドライバソフトウェアをホストコンピュータ等に、ユーザの作業を妨げずに、さらに１台毎に該ホストコンピュータでドライバソフトウェアをインストールまたはアップデート（更新）作業をせずに、効率的に、自動でインストールまたはアップデート（更新）が可能となる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の好適な実施形態を添付図面を参照して詳細に説明する。
【００２２】
図１は、本発明の実施形態としてのリモートインストールおよびリモートアップデート（更新）システムの構成を示すサーバ、クライアントおよびＬＡＮ等のネットワークのブロック図である。
【００２３】
図１において、１６はサーバであり、３６はクライアントであり、４１はＬＡＮ等のネットワークであり、サーバ１６とクライアント３６は、ＬＡＮ等のネットワーク４１にネットワークケーブル４２および４３を介して各々接続されている。
【００２４】
サーバ１６は演算処理の中枢をなすＣＰＵ１を備えており、このＣＰＵ１はシステムバス４を介してＣＰＵ１の主メモリ、ワークエリア等として機能するＲＡＭ２やプログラムＲＯＭなどを格納したＲＯＭ３にアクセス可能である。５はキーボードコントローラ（キーボードＣＴＬ）であり、キーボード１０からのキー入力を制御する。６はマウスコントローラ（マウスＣＴＬ）であり、ポインティングデバイスであるマウス１１からの入力を制御する。７はＣＲＴコントローラ（ＣＲＴＣＴＬ）であり、ＣＲＴディスプレイ（ＣＲＴ）１２の表示を制御する。８はディスクコントローラ（ＤＩＳＫＣＴＬ）であり、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム（プリンタドライバ）等を記憶するハードディスク（ＨＤ）、コンパクトディスク（ＣＤ）、フレキシブルディスク（ＦＤ）等の外部メモリ１３とのアクセスを制御する。９はＮＩＣコントローラ（ＮＩＣＣＴＬ）であり、Ｎｅｔｗｏｒｋ  Ｉ／Ｆ  ＲＪ４５等１４からのＬＡＮ等のネットワークに対するパケットの送受信を制御し、ＬＡＮ等のネットワークに接続されているクライアントとの通信制御を実行する。
【００２５】
これら１〜９がサーバ１６のマザーボード１５上に搭載されており、１０〜１４はケーブル等でマザーボード１５の対応するコネクタと接続されている。
【００２６】
クライアント３６は演算処理の中枢をなすＣＰＵ２１を備えており、このＣＰＵ2１はシステムバス２４を介してＣＰＵ２１の主メモリ、ワークエリア等として機能するＲＡＭ２２やプログラムＲＯＭなどを格納したＲＯＭ２３にアクセス可能である。２５はキーボードコントローラ（キーボードＣＴＬ）であり、キーボード３０からのキー入力を制御する。３６はマウスコントローラ（マウスＣＴＬ）であり、ポインティングデバイスであるマウス３１からの入力を制御する。３７はＣＲＴコントローラ（ＣＲＴＣＴＬ）であり、ＣＲＴディスプレイ（ＣＲＴ）３２の表示を制御する。３８はディスクコントローラ（ＤＩＳＫＣＴＬ）であり、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム（プリンタドライバ）等を記憶するハードディスク（ＨＤ）、コンパクトディスク（ＣＤ）、フレキシブルディスク（ＦＤ）等の外部メモリ３３とのアクセスを制御する。２９はＮＩＣコントローラ（ＮＩＣＣＴＬ）であり、Ｎｅｔｗｏｒｋ  Ｉ／Ｆ  ＲＪ４５等３４からのＬＡＮ等のネットワークに対するパケットの送受信を制御し、ＬＡＮ等のネットワークに接続されているホストコンピュータ等との通信制御を実行する。また、ＮＩＣコントローラ（ＮＩＣＣＴＬ）２９は、ＷＯＬ  Ｃｏｎｎｅｃｔｅｒ３７とケーブル３８を介して結ばれている。
【００２７】
これら２１〜２９および３７がクライアント３６のマザーボード３５上に搭載されており、３０〜３４はケーブル等でマザーボード３５の対応するコネクタと接続されている。
【００２８】
さらにクライアント３６には、前記ＮＩＣコントローラ２９上に備えられたＲＯＭ（図示なし）によって実現されるＷａｋｅ  Ｏｎ  ＬＡＮの機能が備えられている。クライアント３６のバイオス（ＢＩＯＳ）の設定によって、上記Ｗａｋｅ  Ｏｎ  ＬＡＮ機能が有効／無効かが決定され、その設定はＮＩＣコントローラ２９上に備えられたフラッシュメモリ（図示なし）に格納される。また、ＮＩＣコントローラ（ＮＩＣＣＴＬ）２９は、受信したパケットが該ＮＩＣコントローラ（ＮＩＣＣＴＬ）２９宛のＷａｋｅｕｐ信号のパケットのときは、該ＮＩＣコントローラ（ＮＩＣＣＴＬ）２９と結んだケーブル３８を使用し、ＷＯＬ  Ｃｏｎｎｅｃｔｅｒ３７を利用し、Ｗａｋｅｕｐ命令をマザーボード３５上のＢＩＯＳ（図示なし）に伝える。Ｗａｋｅｕｐ命令を受信したマザーボード３５上のＢＩＯＳ（図示なし）は、クライアントの電源を入れ、クライアントをブートさせる。
【００２９】
なお、実施形態では、クライアント３６にインストールされ実行されるべきエージェントおよびクライアント３６にインストールまたはアップデート（更新）されるべきドライバソフトウェアが、サーバ１６のハードディスク（ＨＤ）、コンパクトディスク（ＣＤ）等の外部メモリ１３に記憶されているものとするが、記憶媒体はこれのみに限らず、ネットワーク上の他のサーバが有する記憶装置、あるいは、インターネット上のＦＴＰサーバが有する記憶装置などのクライアントがアクセスできる記憶装置なら、どのようなものでも利用可能である。
【００３０】
＜クライアント３６へのエージェントのインストール手順＞
クライアント３６にエージェントをインストールする必要がある。このため、まず、ユーザはサーバ１６の外部メモリ１３にアクセスするために、サーバ１６にログインを行う。次に、ユーザはサーバ１６に格納されているエージェントソフトウェアをインストールするためのｓｅｔｕｐ．ｅｘｅを実行するだけよい。この操作によりクライアント３６に、エージェントが常駐しサーバ１６との通信などが行えるようになる。
【００３１】
＜サーバ１６でのクライアントのインストールまたはアップデート（更新）日時の指定＞
図２は、リモートインストールまたはアップデート（更新）するための、サーバ１６において実行されるサーバプログラムの設定画面を示す図である。２０１、２０２、２０３、２０４、２０５は、クライアントのドライバソフトウェアのインストールまたはアップデート（更新）を何年何月何日何時何分から実行するかを、設定するための領域である。２０６、２０７、２０８、２０９、２１０は、どのクライアントのドライバソフトウェアのインストールまたはアップデート（更新）をするかをＩＰアドレスで設定するための領域、２１１、２１２、２１３、２１４、２１５は、どのクライアントのドライバソフトウェアのインストールまたはアップデート（更新）をするかをＭＡＣアドレスで設定するための領域である。
【００３２】
ドライバソフトウェアのインストールまたはアップデート（更新）を行うクライアントのＭＡＣアドレスが判明していれば、直接ＭＡＣアドレスを入力しても良い。大多数のユーザはＴＣＰ／ＩＰプロトコルを使用しているので、該プロトコルで使用しているＩＰアドレスを入力し、ＭＡＣアドレスを調べることも可能である。このためのＭＡＣアドレス検索機能を有するボタンが２１６である。
【００３３】
２０６〜２１０にＩＰアドレスを入力し、ＭＡＣアドレス検索ボタン２１６を押下すると、ＴＣＰ／ＩＰプロトコルの一部であるＡＲＰコマンドにより、ＩＰアドレスを頼りにして、ＭＡＣアドレスを調査し、ＩＰアドレスと対応する２１１、２１２、２１３、２１４、２１５にＭＡＣアドレスを表示する。但し、クライアントとサーバがルータを跨いだ異なるネットワークに存在する場合、サーバが存在するネットワーク側のルータのＭＡＣアドレスが返り値として設定されるが、何ら差し障りはない。
【００３４】
クライアントに送られるＷａｋｅｕｐ信号のパケットは、ＴＣＰ／ＩＰプロトコルが起動していないのは勿論、電源の入っていないクライアントに対し送るものであるので、本来クライアントのＭＡＣアドレスのみ必要とし、ＩＰアドレスは必要としない。６バイトのFFhとして定義される同期化ストリームに続けて、データシーケンスをクライアントの１６進数で１２桁の４８ビットのＭａｃアドレスを１６回繰り返すことによって定義するだけでよい。
【００３５】
しかし、この場合、サーバとクライアントが、ルータなどを跨いだ異なるネットワークに存在した場合、サーバとクライアントが存在するネットワークを接続するルータは、プロードキャストパケットやマルチキャストパケットのようにＭＡＣアドレスのみがありＩＰアドレスがないパケットまたは、宛先のＩＰアドレスを該ルータがパケットをルーティング（転送）する必要のないネットワークのときは、該パケットを破棄してしまうため、サーバが送る該クライアント宛てパケットは該クライアントには到達することは出来ない。このため、クライアントに送られるＷａｋｅｕｐ信号のパケットには、クライアントのＩＰアドレスも含めることが望ましい。これにより、ルータは該パケットが、ルーティング（転送）を必要であるパケットと判断し、該クライアントに到達させるためルーティング（転送）を行うことにより、サーバが送るＷａｋｅｕｐ信号のパケットを、異なるネットワークに存在するクライアントに到達せしめることができる。
【００３６】
このため、サーバとクライアントが、ルータなどを跨いだ異なるネットワークに存在した場合、サーバが送る該クライアント宛てパケットを該クライアントに到達いたらさせるため、Ｗａｋｅｕｐ信号のパケットには、クライアントのＩＰアドレスも含めることが望ましい。このため、ＩＰアドレスを入力することが望ましい。
【００３７】
また、２１７は設定を有効にして処理を終了するＯＫボタン、２１８は設定を無効にして処理を終了させるキャンセルボタンである。
【００３８】
＜サーバ１６からクライアント３６へ対してのドライバソフトウェアのリモートインストールおよびリモートアップデート（更新）＞
図３は、サーバ１６からクライアント３６へ対してのドライバソフトウェアのリモートインストールおよびリモートアップデート（更新）の概略である。
【００３９】
（１）サーバ１６は、図２の２０１から２０５で設定された年月日の時間になったとき、クライアント３６にＷａｋｅｕｐ信号を送り、クライアントの電源を入れる。電源が入れられたクライアント３６は、ブートし、ＯＳが起動が起動し、エージェントが起動される。（２）サーバ１６はクライアント３６のエージェントの起動が完了したか、一定時間経過後に確認をする。（３）サーバ１６は、クライアント３６のエージェントにドライバソフトウェアを送付する。（４）クライアント３６のエージェントは、サーバ１６からドライバソフトウェアを受領したとき、サーバ１６に受領を報告する。その後、クライアント３６のエージェントは、いずれのバージョンのドライバソフトウェアもインストールされていないときには、サーバ１６より受領したドライバソフトウェアをインストールする。クライアントに既にバージョンを問わずいずれかのバージョンのドライバソフトウェアがインストール済みであったとき、クライアント３６のエージェントは、該ドライバソフトウェアをアンインストール後に、サーバ１６より受領したドライバソフトウェアをインストールする。（５）クライアント３６のエージェントは、サーバ１６に対し、ドライバソフトウェアの導入結果を報告する。その後、クライアント３６のエージェントは、クライアント３６をシャットダウンするコマンドを実行し、クライアント３６をシャットダウンする。クライアント３６のＢＩＯＳは、ＯＳがシャットダウンされたことを感知し、電源を切る。
【００４０】
以下、上記のようにリモートインストールまたは、リモートアップデート（更新）が行われるときの、サーバ１６での処理について図４に示すフローチャートを中心にして詳細に説明する。
【００４１】
サーバ１６は、図２の２０１から２０５で設定された年月日の時間になったかどうかを常に監視し、設定された時間になつたとき（Ｓｔｅｐ４０１）、クライアント３６が起動しているかどうかをクライアント３６に常駐しているエージェントと通信を試みることにより、確認をする（Ｓｔｅｐ４０２）。サーバ１６は、クライアント３６が起動しているときは、ユーザがクライアント３６を使用しているものと判断し、ユーザの作業の妨げになることを考慮し、リモートインストールまたは、リモートアップデート（更新）を行わず、エラーログを作成し（Ｓｔｅｐ４１６）、処理を終了する。サーバ１６は、クライアント３６が起動していないときは、Ｗａｋｅｕｐ信号のパケットを何回送出したかを計算するカウンタＩを初期化（Ｓｔｅｐ４０３）し、１を加算する（Ｓｔｅｐ４０４）。
【００４２】
その後、クライアント３６にＷａｋｅｕｐ信号を送る（Ｓｔｅｐ４０５）。Ｗａｋｅｕｐ信号は、ＳＯＵＲＣＥ  ＡＤＤＲＥＳＳやＤＥＳＴＩＮＡＴＩＯＮ  ＡＤＤＲＥＳＳなどの使用しているネットワークの基本的条件を満たしている必要がある。以下、使用しているネットワークがＩＥＥＥ８０２．３として定義されているＥｔｈｅｒｎｅｔ（登録商標）であることを前提に説明する。
【００４３】
サーバのＭａｃアドレスが00 30 85 a1 03 b0で、クライアントのＭａｃアドレスが00 30 85 a1 03 b1のときの、Ｗａｋｅｕｐ信号は次のようになる。
【００４４】
00 30 85 a1 03 b0 00 30 85 a1 03 b1 FF FF FF FF FF FF 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1
上記のように、最初の00 30 85 a1 03 b0は、ＳＯＵＲＣＥ  ＡＤＤＲＥＳＳであるサーバのＭａｃアドレス00 30 85 a1 03 b0を表す。次の00 30 85 a1 03 b1は、ＤＥＳＴＩＮＡＴＩＯＮ  ＡＤＤＲＥＳＳであるクライアントのＭａｃアドレス00 30 85 a1 03 b1を表す。その次は、同期化ストリームで、６バイトのFFhとして定義される。その後に続けてデータシーケンスをクライアントの１６進数で１２桁の４８ビットのＭａｃアドレス（上の場合は00 30 85 a1 03 b1）を１６回繰り返すことによって定義する。このデータシーケンスは、パケット内のどこに位置しても構わないが、必ず同期化シーケンスの後に続いていなければならない。
【００４５】
同一ネットワーク内ならＷａｋｅｕｐ信号は、上記のようにＴＣＰ／ＩＰプロトコルに抱合することは不要であるが、サーバとクライアントが、ルータを跨いだ異なるネットワークに存在した場合、サーバとクライアントが存在するネットワークを接続するルータは、プロードキャストパケットやマルチキャストパケットのようにＭＡＣアドレスのみがありＩＰアドレスがないパケットまたは、宛先のＩＰアドレスを該ルータがパケットをルーティング（転送）する必要のないネットワークのときは、該パケットを破棄してしまうため、サーバが送る該クライアント宛てパケットは該クライアントには到達することは出来ない。このため、クライアントに送られるＷａｋｅｕｐ信号のパケットには、上述のＭＡＣアドレスのみがあるパケットではなく、ＴＣＰ／ＩＰパケットを使用する必要がある。
【００４６】
サーバのＩＰアドレスが、172.20.6.1で、Ｍａｃアドレスが00 30 85 a1 03 b0で、サーバと同じネットワークに接続されているルータのＩＰアドレスが、172.20.6.0で、Ｍａｃアドレスが00 00 01 00 00 01で、クライアントのＩＰアドレスが、172.20.5.1で、Ｍａｃアドレスが00 30 85 a1 03 b1で、クライアントと同じネットワークに接続されているルータのＩＰアドレスが、172.20.5.0で、Ｍａｃアドレスが00 00 01 00 00 02のときの、Ｗａｋｅｕｐ信号は次のようにＴＣＰ／ＩＰパケットに入れて送出する。
【００４７】
00 30 85 a1 03 b0 00 00 01 00 00 01 172.20.6.1 172.20.5.1 FF FF FF FF FF FF 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1
上記のように、最初の00 30 85 a1 03 b0は、ＳＯＵＲＣＥ  ＡＤＤＲＥＳＳであるサーバのＭａｃアドレス00 30 85 a1 03 b0を表す。次の00 00 01 00 00 01は、ＤＥＳＴＩＮＡＴＩＯＮ  ＡＤＤＲＥＳＳであるルータのサーバと同じ側にあるＭａｃアドレス00 00 01 00 00 01を表す。次の172.20.6.1はＳＯＵＲＣＥ  ＡＤＤＲＥＳＳであるサーバのＩＰアドレス172.20.6.1を表す。次の172.20.5.1は、ＤＥＳＴＩＮＡＴＩＯＮ  ＡＤＤＲＥＳＳであるクライアントのＩＰアドレス172.20.5.1を表す。その次は、同期化ストリームで、６バイトのFFhとして定義される。その後に続けてデータシーケンスをクライアントの１６進数で４８ビットのＭａｃアドレス（上の場合は00 30 85 a1 03 b1）を１６回繰り返すことによって定義する。このパケットのＭａｃアドレスのＤＥＳＴＩＮＡＴＩＯＮ  ＡＤＤＲＥＳＳは、ルータのＭａｃアドレス00 00 01 00 00 01なので、ルータはこのパケットを受信する。ルータはこのパケットを受信後、クライアントが存在するネットワークにパケットを転送する。ルータはパケットの転送前に、ＳＯＵＲＣＥ  ＡＤＤＲＥＳＳのＭａｃアドレスを、クライアントと同じネットワークに接続されているルータのＭａｃアドレス00 00 01 00 00 02に書き換え、ＤＥＳＴＩＮＡＴＩＯＮ  ＡＤＤＲＥＳＳのＭａｃアドレスを、クライアントのＭａｃアドレス00 30 85 a1 03 b1に書き換えてのち、下記のパケットを転送する。
【００４８】
00 00 01 00 00 02 00 30 85 a1 03 b1 172.20.6.1 172.20.5.1 FF FF FF FF FF FF 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1 00 30 85 a1 03 b1
上記のように、最初の00 00 01 00 00 02は、ＳＯＵＲＣＥ  ＡＤＤＲＥＳＳであるルータのクライアントと同じ側のＭａｃアドレス00 00 01 00 00 02を表す。次の 00 30 85 a1 03 b1は、ＤＥＳＴＩＮＡＴＩＯＮ  ＡＤＤＲＥＳＳであるクライアントのＭａｃアドレス 00 30 85 a1 03 b1を表す。次の172.20.6.1はＳＯＵＲＣＥ  ＡＤＤＲＥＳＳであるサーバのＩＰアドレス172.20.6.1を表す。次の172.20.5.1は、ＤＥＳＴＩＮＡＴＩＯＮ  ＡＤＤＲＥＳＳであるクライアントのＩＰアドレス172.20.5.1を表す。
【００４９】
クライアント３６のマザーボード３５およびＮＩＣＣＴＬ２９には、クライアント３６の電源が切られている場合でも、Ｗａｋｅ  Ｏｎ  ＬＡＮに必要な微弱な電流がネットワークより供給されている。
【００５０】
クライアント３６のＮＩＣＣＴＬ２９は、クライアントの電源が入っていないときにおいても、ネットワークーブル４３を介して、接続しているネットワーク４１より供給されている微弱な電流を使用し、常時ネットワークに流れているパケットを受信し監視している。クライアント３６のＮＩＣＣＴＬ２９は、６バイトのFFhとして定義されている同期化ストリームに続いて、１６進数で１２桁の４８ビットのＭａｃアドレス（上の場合は00 30 85 a1 03 b1）が１６回繰り返されているパケットがあったとき、このパケットをクライアント３６に対するＷａｋｅｕｐ信号と認識する。そして、ケーブル３８およびＷＯＬ  Ｃｏｎｎｅｃｔｅｒを経由してマザーボード３５に電源ＯＮの命令信号を電気的に伝える。電源ＯＮの信号を受けたクライアント３６のマザーボードは、電源に対し電源ＯＮの信号を出力する。それを受信した電源は、クライアント３６に対し電源供給を開始し、クライアント３６のＢＩＯＳはＯＳを起動させる。ＯＳは常駐プログラムである、エージェントを起動させる。
【００５１】
クライアント３６が起動したかを何回確認したかを計算するカウンタＪを初期化（Ｓｔｅｐ４０６）し、１を加算する（Ｓｔｅｐ４０７）。その後、サーバ１６は、２分間経過後（Ｓｔｅｐ４０８）、クライアント３６の電源が入り、ＯＳが起動し、エージェントも正常に起動されているかを、クライアント３６のエージェントと通信をし、確認する（Ｓｔｅｐ４０９）。正常にエージェントが起動していないようなら、さらに２分毎に最高４回確認を行う（Ｓｔｅｐ４１４）。
【００５２】
クライアント３６がＷａｋｅｕｐ信号のパケットを受信後、エージェントが正常に起動されるまでの時間は、クライアントのハードディスクの回転数、メモリの容量などの物理的属性と、使用しているＯＳの種類、常駐するアプリケーションの種類や数などのソフト的属性により異なる。このため、サーバ１６は、クライアント３６にたいし、エージェントの正常起動を一定時間間隔毎に、数回確認することが望ましい。
【００５３】
サーバ１６は、クライアント３６にＷａｋｅｕｐ信号のパケットを一回送出後、クライアント３６のエージェントの正常起動を２分毎に５回確認しても、確認できなかった場合、クライアント３６にＷａｋｅｕｐ信号のパケットを、上記クライアント３６のエージェントが正常に起動したかの確認を行いながら、最高４回確認を行う（Ｓｔｅｐ４１５）。
【００５４】
Ｅｔｈｅｒｎｅｔ（登録商標）のネットワーク上では、ネットワークに接続しているホストコンピュータが、自分自身の判断で好きなときにパケットを送出できるため、コリジョン（パケットとパケットの衝突）が発生することがある。また、ルータは、ルータ自身の処理能力を超えたパケットについては、転送できないため破棄してしまう。このため、サーバ１６が送出したＷａｋｅｕｐ信号のパケットを、クライアント１６が必ずしも受信できるとは限らない。よって、サーバ１６は、クライアント３６に対し、Ｗａｋｅｕｐ信号のパケットを、数回送出することが望ましい。
【００５５】
サーバ１６が、クライアント３６のエージェントの正常起動の確認および、クライアント３６へのＷａｋｅｕｐ信号のパケットの送出を複数回行っても、クライアント３６のエージェントが正常に起動しないようなら、サーバ１６はエラーログを作成し（Ｓｔｅｐ４１６）、処理を終了する。
【００５６】
ここでは、サーバ１６が、クライアント３６のエージェントが正常に起動しているかを確認する間隔を２分、その回数を５回まで、クライアント３６へのＷａｋｅｕｐ信号のパケットの送出回数を５回までと固定したが、この数値に束縛されることなく任意の値に固定してもよく、図２で入力画面を設けても良い。
【００５７】
サーバ１６は、クライアント３６のエージェントが正常に起動したなら、クライアント３６のエージェントにドライバソフトウェアを送付し、正常に送付できたことを確認する（Ｓｔｅｐ４１１）。
【００５８】
ドライバソフトウェアを受領したクライアント３６のエージェントは、既にバージョンを問わずいずれかのバージョンのドライバソフトウェアがインストール済みであるかを調べる。既にクライアント３６にバージョンを問わずいずれかのバージョンのドライバソフトウェアがインストール済みであるときには、クライアント３６で実行されているエージェントは該ドライバソフトウェアのアンインストールを行い、次に、サーバ１６より送付されたドライバソフトウェアのインストールを行うことにより、ドライバソフトウェアのアップデート（更新）処理を行う。クライアント３６にはバージョンを問わずドライバソフトウェアがインストールされていないときには、クライアント３６で実行されているエージェントは、直ちにサーバ１６より送付されたドライバソフトウェアのインストールを行うことにより、ドライバソフトウェアのインストール処理を行う。その後、クライアント３６で実行されているエージェントは、インストールまたはアップデート（更新）作業の結果を、サーバ１６に通知する。そして、シャットダウンコマンドをＯＳに発行し、シャットダウンを命じられたＯＳは、シャットダウン処理を実行し、クライアントの電源を自ら切る。
【００５９】
サーバ１６は、クライアント３６からインストールまたはアップデート（更新）作業の結果を、正常終了かを判断し（Ｓｔｅｐ４１２）、正常終了なら正常終了のログを作成し（Ｓｔｅｐ４１３）、正常終了でないならエラーログを作成し（Ｓｔｅｐ４１６）、処理を終了する。
【００６０】
以上の処理により、指定時間にサーバ１６からＷａｋｅｕｐ信号のパケットを送出することにより、クライアント３６に対しドライバソフトウェアをインストールまたはアップデート（更新）作業を行うことができる。
【図面の簡単な説明】
【００６１】
【図１】本発明の実施形態のサーバとクライアントの構成を示すブロック図である。
【図２】本実施形態におけるサーバのリモートインストール・アップデートの設定画面の例を示す図である。
【図３】本実施形態におけるサーバとクライアントの処理手順を示す工程図の例を示す図である。
【図４】本実施形態におけるサーバの処理を示すフローチャートである。
【符号の説明】
【００６２】
１、２１  ＣＰＵ
２、２２  ＲＡＭ
３、２３  ＲＯＭ
４、２４  システムバス
９、２９  ＮＩＣ  ＣＴＬ
１４、３４  Ｎｅｔｗｏｒｋ  Ｉ／Ｆ  ＲＪ４５等
１６  サーバ
３６  クライアント
３７  ＷＯＬ  Ｃｏｎｎｅｃｔｅｒ
４１  Ｅｔｈｅｒｎｅｔ（登録商標）ネットワーク
４２、４３  ネットワークケーブル
２００  リモートインストール・アップデートの設定画面
２０１〜２０５  年月日日時分設定領域
２０６〜２１１  ＩＰアドレス設定領域
２１１〜２１５  Ｍａｃアドレス設定領域
【図１】
2006243915.tif 000003
【図２】
2006243915.tif 000004
【図３】
2006243915.tif 000005
【図４】
2006243915.tif 000006