(57)【特許請求の範囲】
【請求項１】
クライアントの構成を管理するための構成管理装置、並びに、夫々が該構成管理装置と所定の通信プロトコルで通信する通信手段を持った複数のクライアントコンピュータを備えたコンピュータネットワークにおけるクライアントコンピュータの構成管理システムであって、前記構成管理装置が前記複数のクライアントコンピュータからの構成情報を取得し及び前記複数のクライアントコンピュータにポリシーを配布し、並びに、該クライアントコンピュータが該ポリシーを評価して１つまたは複数のアプリケーション及び／又は１つまたは複数の構成変更命令を前記構成管理装置からダウンロードする構成管理システムにおいて、
夫々が前記クライアントコンピュータが有する機能よりも少ない機能を持った複数の機能限定クライアント装置、並びに、
前記構成管理装置と前記所定の通信プロトコルで通信する通信手段及び前記構成管理装置から配布される前記ポリシーを前記複数の機能限定クライアント装置に代わって評価するポリシーエバリュエータを持ったクライアントプロキシであって、前記複数の機能限定クライアント装置からの構成情報を取得し及び該取得した構成情報を前記所定の通信プロトコルに従ったフォーマットに変換し及び該フォーマット変換した構成情報を前記構成管理装置に提供し、並びに、前記ポリシーエバリュエータが配布された前記ポリシーを評価して前記複数の機能限定クライアント装置に前記１つまたは複数のアプリケーション及び／又は前記１つまたは複数の構成変更命令を前記構成管理装置からダウンロードするように命令するクライアントプロキシ
を備えたことを特徴とする構成管理システム。
【請求項２】
前記クライアントプロキシは前記機能限定クライアント装置からの前記構成情報をＸＭＬスキーマに従って受け取ることを特徴とする請求項１に記載の構成管理システム。
【請求項３】
前記機能限定クライアント装置からの前記構成情報はハードウェア／ソフトウェアインベントリを含むことを特徴とする請求項１に記載の構成管理システム。
【請求項４】
前記ポリシーエバリュエータが、前記構成管理装置から配布された前記ポリシーのいずれかが前記機能限定クライアント装置に適用可能かどうかを判定し、前記機能限定クライアント装置に適用可能であると判定された該ポリシーに従って前記１つまたは複数のアプリケーション及び／又は前記１つまたは複数の構成変更命令をダウンロードするように前記機能限定クライアント装置に命令することを特徴とする請求項１に記載の構成管理システム。
【請求項５】
前記ポリシーエバリュエータが、前記適用可能であると判定された前記ポリシーに従ってダウンロードした前記１つまたは複数のアプリケーションを前記機能限定クライアント装置上にインストールするように及び／又は前記１つまたは複数の構成変更を実行するように前記機能限定クライアント装置に命令することを特徴とする請求項４に記載の構成管理システム。
【請求項６】
前記ポリシーエバリュエータが、前記適用可能であると判定された前記ポリシーに従ってダウンロードした前記１つまたは複数のアプリケーションを該ポリシーに従って除去するように前記機能限定クライアント装置に命令することを特徴とする請求項５に記載の構成管理システム。
【請求項７】
前記クライアントプロキシが動作を実施するように構成されており、前記動作は、
前記機能限定クライアント装置からアプリケーションリストを受け取る動作、
前記構成管理装置から前記ポリシーを受け取る動作、
受け取った前記ポリシーを考慮して前記リストを調べ、該リストに加える変更を決定する動作、及び、
該決定した変更に従ってそのアプリケーションリストを変更するように前記機能限定クライアント装置に命令する動作
を含むことを特徴とする請求項１に記載の構成管理システム。
【請求項８】
前記クライアントプロキシが動作を実施するように構成されており、前記動作は、
前記機能限定クライアント装置から現在の構成を受け取る動作、
前記構成管理装置から前記ポリシーを受け取る動作、
受け取った前記ポリシーを考慮して前記受け取った現在の構成を調べ、前記現在の構成に加える変更を決定する動作、及び、
該決定した変更に従ってその構成を変更するように前記機能限定クライアント装置に命令する動作を含むことを特徴とする請求項１に記載の構成管理システム。
【請求項９】
前記クライアントプロキシは、前記機能限定クライアント装置からパッケージリクエストを受け取るように、また、それに応答して、前記機能限定クライアント装置がアプリケーションパッケージをダウンロードするために実行することができるダウンロード命令を返すように構成されることを特徴とする請求項１または７または８のいずれかに記載の構成管理システム。
【請求項１０】
クライアントの構成を管理するための構成管理装置、並びに、夫々が該構成管理装置と所定の通信プロトコルで通信する通信手段を持った複数のクライアントコンピュータを備えたコンピュータネットワークにおけるクライアントコンピュータの構成管理方法であって、前記構成管理装置が前記複数のクライアントコンピュータからの構成情報を取得し及び前記複数のクライアントコンピュータにポリシーを配布し、並びに、該クライアントコンピュータが該ポリシーを評価して１つまたは複数のアプリケーション及び／又は１つまたは複数の構成変更命令を前記構成管理装置からダウンロードする構成管理方法を処理装置に実行させるための命令を記憶したコンピュータ可読媒体において、
前記構成管理装置と前記所定の通信プロトコルで通信する通信手段及び前記構成管理装置から配布される前記ポリシーを、夫々が前記クライアントコンピュータが有する機能よりも少ない機能を持った複数の機能限定クライアント装置に代わって評価するポリシーエバリュエータを持ったクライアントプロキシが備える処理装置が、前記命令に従って、
前記複数の機能限定クライアント装置からの構成情報を取得する手順、
該取得した構成情報のフォーマットを前記所定の通信プロトコルに従ったフォーマットに変換する手順、
該フォーマット変換した構成情報を前記構成管理装置に提供する手順、並びに、
前記ポリシーエバリュエータを機能させて、前記ポリシーを評価して前記複数の機能限定クライアント装置に前記１つまたは複数のアプリケーション及び／又は前記１つまたは複数の構成変更命令を前記構成管理装置からダウンロードするように命令する手順
を実行することを特徴とするコンピュータ可読媒体。
【請求項１１】
前記クライアントプロキシは前記機能限定クライアント装置からの前記構成情報をＸＭＬスキーマに従って受け取ることを特徴とする請求項１０に記載のコンピュータ可読媒体。
【請求項１２】
前記機能限定クライアント装置からの前記構成情報はハードウェア／ソフトウェアインベントリを含むことを特徴とする請求項１０に記載のコンピュータ可読媒体。
【請求項１３】
前記ポリシーエバリュエータが、前記構成管理装置から配布された前記ポリシーのいずれかが前記機能限定クライアント装置に適用可能かどうかを判定し、前記機能限定クライアント装置に適用可能であると判定された該ポリシーに従って前記１つまたは複数のアプリケーション及び／又は前記１つまたは複数の構成変更命令をダウンロードするように前記機能限定クライアント装置に命令することを特徴とする請求項１０に記載のコンピュータ可読媒体。
【請求項１４】
前記ポリシーエバリュエータが、前記適用可能であると判定された前記ポリシーに従ってダウンロードした前記１つまたは複数のアプリケーションを前記機能限定クライアント装置上にインストールするように及び／又は前記１つまたは複数の構成変更を実行するように前記機能限定クライアント装置に命令することを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項１５】
前記ポリシーエバリュエータが、前記適用可能であると判定された前記ポリシーに従ってダウンロードした前記１つまたは複数のアプリケーションを該ポリシーに従って除去するように前記機能限定クライアント装置に命令することを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
前記クライアントプロキシの前記処理装置が前記命令に従って動作を実施するように構成されており、前記動作は、
前記機能限定クライアント装置からアプリケーションリストを受け取る動作、
前記構成管理装置から前記ポリシーを受け取る動作、
受け取った前記ポリシーを考慮して前記リストを調べ、該リストに加える変更を決定する動作、及び、
該決定した変更に従ってそのアプリケーションリストを変更するように前記機能限定クライアント装置に命令する動作
を含むことを特徴とする請求項１０に記載のコンピュータ可読媒体。
【請求項１７】
前記クライアントプロキシが前記処理装置が前記命令に従って動作を実施するように構成されており、前記動作は、
前記機能限定クライアント装置から現在の構成を受け取る動作、
前記構成管理装置から前記ポリシーを受け取る動作、
受け取った前記ポリシーを考慮して前記受け取った現在の構成を調べ、前記現在の構成に加える変更を決定する動作、及び、
該決定した変更に従ってその構成を変更するように前記機能限定クライアント装置に命令する動作
を含むことを特徴とする請求項１０に記載のコンピュータ可読媒体。
【請求項１８】
前記クライアントプロキシは、前記機能限定クライアント装置からパッケージリクエストを受け取るように、また、それに応答して、前記機能限定クライアント装置がアプリケーションパッケージをダウンロードするために実行することができるダウンロード命令を返すように構成されることを特徴とする請求項１０または１６または１７のいずれかに記載のコンピュータ可読媒体。
【請求項１９】
クライアントの構成を管理するための構成管理装置、並びに、夫々が該構成管理装置と所定の通信プロトコルで通信する通信手段を持った複数のクライアントコンピュータを備えたコンピュータネットワークにおけるクライアントコンピュータの構成管理方法であって、前記構成管理装置が前記複数のクライアントコンピュータからの構成情報を取得し及び前記複数のクライアントコンピュータにポリシーを配布し、並びに、該クライアントコンピュータが該ポリシーを評価して１つまたは複数のアプリケーション及び／又は１つまたは複数の構成変更命令を前記構成管理装置からダウンロードする構成管理方法において、
前記構成管理装置と前記所定の通信プロトコルで通信する通信手段及び前記構成管理装置から配布される前記ポリシーを、夫々が前記クライアントコンピュータが有する機能よりも少ない機能を持った複数の機能限定クライアント装置に代わって評価するポリシーエバリュエータを持ったクライアントプロキシが、
前記複数の機能限定クライアント装置からの構成情報を取得するステップ、
該取得した構成情報のフォーマットを前記所定の通信プロトコルに従ったフォーマットに変換するステップ、
該フォーマット変換した構成情報を前記構成管理装置に提供するステップ、並びに、
前記ポリシーエバリュエータが、前記ポリシーを評価して前記複数の機能限定クライアント装置に前記１つまたは複数のアプリケーション及び／又は前記１つまたは複数の構成変更命令を前記構成管理装置からダウンロードするように命令するステップ
を有することを特徴とする構成管理方法。
【請求項２０】
前記クライアントプロキシは前記機能限定クライアント装置からの前記構成情報をＸＭＬスキーマに従って受け取ることを特徴とする請求項１９に記載の構成管理方法。
【請求項２１】
前記機能限定クライアント装置からの前記構成情報はハードウェア／ソフトウェアインベントリを含むことを特徴とする請求項１９に記載の構成管理方法。
【請求項２２】
前記ポリシーエバリュエータが、前記構成管理装置から配布された前記ポリシーのいずれかが前記機能限定クライアント装置に適用可能かどうかを判定し、前記機能限定クライアント装置に適用可能であると判定された該ポリシーに従って前記１つまたは複数のアプリケーション及び／又は前記１つまたは複数の構成変更命令をダウンロードするように前記機能限定クライアント装置に命令することを特徴とする請求項１９に記載の構成管理方法。
【請求項２３】
前記ポリシーエバリュエータが、前記適用可能であると判定された前記ポリシーに従ってダウンロードした前記１つまたは複数のアプリケーションを前記機能限定クライアント装置上にインストールするように及び／又は前記１つまたは複数の構成変更を実行するように前記機能限定クライアント装置に命令することを特徴とする請求項２２に記載の構成管理方法。
【請求項２４】
前記ポリシーエバリュエータが、前記適用可能であると判定された前記ポリシーに従ってダウンロードした前記１つまたは複数のアプリケーションを該ポリシーに従って除去するように前記機能限定クライアント装置に命令することを特徴とする請求項２３に記載の構成管理方法。
【請求項２５】
前記クライアントプロキシの前記処理装置が前記命令に従って動作を実施するように構成されており、前記動作は、
前記機能限定クライアント装置からアプリケーションリストを受け取る動作、
前記構成管理装置から前記ポリシーを受け取る動作、
受け取った前記ポリシーを考慮して前記リストを調べ、該リストに加える変更を決定する動作、及び、
該決定した変更に従ってそのアプリケーションリストを変更するように前記機能限定クライアント装置に命令する動作
を含むことを特徴とする請求項１９に記載の構成管理方法。
【請求項２６】
前記クライアントプロキシが前記処理装置が前記命令に従って動作を実施するように構成されており、前記動作は、
前記機能限定クライアント装置から現在の構成を受け取る動作、
前記構成管理装置から前記ポリシーを受け取る動作、
受け取った前記ポリシーを考慮して前記受け取った現在の構成を調べ、前記現在の構成に加える変更を決定する動作、及び、
該決定した変更に従ってその構成を変更するように前記機能限定クライアント装置に命令する動作
を含むことを特徴とする請求項１９に記載の構成管理方法。
【請求項２７】
前記クライアントプロキシは、前記機能限定クライアント装置からパッケージリクエストを受け取るように、また、それに応答して、前記機能限定クライアント装置がアプリケーションパッケージをダウンロードするために実行することができるダウンロード命令を返すように構成されることを特徴とする請求項１９または２５または２６のいずれかに記載の構成管理方法。
【請求項２８】
クライアントの構成を管理するための構成管理装置が複数のクライアントコンピュータと通信するために用いる所定の通信プロトコルで該装置と通信するための通信手段及び該装置から配布されるポリシーを、夫々が前記クライアントコンピュータが有する機能よりも少ない機能を持った複数の機能限定クライアント装置に代わって評価するポリシーエバリュエータを持ったクライアントプロキシ装置であって、
前記複数の機能限定クライアント装置からの構成情報を取得し及び該取得した構成情報を前記所定の通信プロトコルに従ったフォーマットに変換し及び該フォーマット変換した構成情報を前記構成管理装置に提供し、並びに、
前記ポリシーエバリュエータが配布された前記ポリシーを評価して前記複数の機能限定クライアント装置に１つまたは複数のアプリケーション及び／又は１つまたは複数の構成変更命令を前記構成管理装置からダウンロードするように命令する
ことを特徴とするクライアントプロキシ装置。
【請求項２９】
ネットワーク上でクライアントの構成を管理するための構成管理システムであって、
複数のクライアントコンピュータと通信し、該クライアントコンピュータを管理するための管理手段と、
該管理手段と直接通信ができず且つ該管理手段に直接管理されないクライアント装置と通信し、該管理手段及び該クライアント装置から独立した代理手段であって、前記クライアント装置から前記管理手段と互換性がないフォーマットで構成情報を受け取るように、また前記受け取った構成情報を前記管理手段と互換性があるフォーマットで前記管理手段に提供するように構成される代理手段とを備え、
該代理手段が、前記管理手段からポリシーを受け取り、前記ポリシーのいずれかが前記クライアント装置に適用可能かどうかを判定し、前記クライアント装置に適用可能であると判定されたポリシーのいずれかに従って１つまたは複数のアプリケーション及び／又は１つまたは複数の構成変更命令をダウンロードするよう前記クライアント装置に命令する手段を含む
ことを特徴とする構成管理システム。
【請求項３０】
複数の互換クライアントコンピュータと通信し、それらを管理するように構成された構成管理システムと、
前記構成管理システムと直接通信ができず且つ前記構成管理システムに直接管理されないクライアント装置と通信するように構成され、前記構成管理システムから独立し且つ前記クライアント装置から離れて実装されるクライアントプロキシであって、前記クライアント装置から前記構成管理システムと互換性がないフォーマットで構成情報を受け取るように、また前記受け取った構成情報を前記構成管理システムと互換性があるフォーマットで前記構成管理システムに提供するように構成されるクライアントプロキシとを備え、
該クライアントプロキシが、前記構成管理システムからポリシーを受け取り、前記ポリシーのいずれかが前記クライアント装置に適用可能かどうかを判定し、前記クライアント装置に適用可能であると判定されたポリシーのいずれかに従って１つまたは複数のアプリケーション及び／又は１つまたは複数の構成変更命令をダウンロードするよう前記クライアント装置に命令するポリシーエバリュエータを含む
ことを特徴とするシステム。
【請求項３１】
前記クライアントプロキシは、前記クライアント装置からＸＭＬスキーマに従って構成情報を受け取るように、また前記受け取った構成情報を前記構成管理システムにレポートするように構成されることを特徴とする請求項３０に記載のシステム。
【請求項３２】
前記クライアントプロキシは、前記クライアント装置からハードウェア／ソフトウェアインベントリを受け取るように、また前記受け取ったハードウェア／ソフトウェアインベントリを前記構成管理システムにレポートするように構成されることを特徴とする請求項３０に記載のシステム。
【請求項３３】
前記クライアントプロキシは、前記構成管理システムからポリシーを受け取り、前記ポリシーのいずれかが前記クライアント装置に適用されるかどうかを判定し、前記クライアント装置に適用されると判定されたポリシーのいずれかに従って１つまたは複数のアプリケーションをクライアント装置上にインストールするよう前記クライアント装置に命令するポリシーエバリュエータを含むことを特徴とする請求項３０に記載のシステム。
【請求項３４】
前記クライアントプロキシは、前記構成管理システムからポリシーを受け取り、前記ポリシーのいずれかが前記クライアント装置に適用されるかどうかを判定し、前記クライアント装置に適用されると判定されたポリシーのいずれかに従ってクライアント装置上で１つまたは複数の構成変更を加えるように前記クライアント装置に命令するポリシーエバリュエータを含むことを特徴とする請求項３０に記載のシステム。
【請求項３５】
前記クライアントプロキシは、前記構成管理システムからポリシーを受け取り、前記ポリシーのいずれかが前記クライアント装置に適用されるかどうかを判定し、前記クライアント装置に適用されると判定されたポリシーのいずれかに従って１つまたは複数のアプリケーションをダウンロードしてインストールするよう前記クライアント装置に命令するポリシーエバリュエータを含むことを特徴とする請求項３０に記載のシステム。
【請求項３６】
前記クライアントプロキシは、前記構成管理システムからポリシーを受け取り、前記ポリシーのいずれかが前記クライアント装置に適用されるかどうかを判定し、前記クライアント装置に適用されると判定されたポリシーのいずれかに従って構成変更命令をダウンロードして実行するよう前記クライアント装置に命令するポリシーエバリュエータを含むことを特徴とする請求項３０に記載のシステム。
【請求項３７】
前記クライアントプロキシは、前記構成管理システムからポリシーを受け取り、前記ポリシーのいずれかが前記クライアント装置に適用されるかどうかを判定し、前記クライアント装置に適用されると判定されたポリシーのいずれかに従って１つまたは複数のアプリケーションを除去するよう前記クライアント装置に命令するポリシーエバリュエータを含むことを特徴とする請求項３０に記載のシステム。
【請求項３８】
前記クライアントプロキシが動作を実施するように構成されており、前記動作は、
前記クライアント装置からアプリケーションリストを受け取るステップと、
前記構成管理システムからポリシーを受け取るステップと、
前記受け取ったポリシーを考慮して前記リストを調べ、該リストに加えるべき変更を決定するステップと、
前記決定した変更に従ってそのアプリケーションリストを変更するよう前記クライアント装置に命令するステップと
を含むことを特徴とする請求項３０に記載のシステム。
【請求項３９】
前記クライアントプロキシが動作を実施するように構成されており、前記動作は、
前記クライアント装置から現在の構成を受け取るステップと、
前記構成管理システムからポリシーを受け取るステップと、
前記受け取ったポリシーを考慮して前記受け取った現在の構成を調べ、前記現在の構成に加えるべき変更を決定するステップと、
前記決定した変更に従ってその構成を変更するよう前記クライアント装置に命令するステップと
を含むことを特徴とする請求項３０に記載のシステム。
【請求項４０】
前記クライアントプロキシは、前記クライアント装置からパッケージリクエストを受け取るように、また、それに応答して、前記クライアント装置がアプリケーションパッケージをダウンロードするために実行することができるダウンロード命令を返すように構成されることを特徴とする請求項３０に記載のシステム。
【請求項４１】
前記クライアントプロキシが動作を実施するように構成されており、前記動作は、
前記クライアント装置からアプリケーションリストを受け取るステップと、
前記構成管理システムからポリシーを受け取るステップと、
前記受け取ったポリシーを考慮して前記リストを調べ、該リストに加えるべき変更を決定するステップと、
前記決定した変更に従ってそのアプリケーションリストを変更するよう前記クライアント装置に命令するステップと、
前記クライアント装置からパッケージリクエストを受け取るステップと、
前記パッケージリクエストを受け取ったことに応答して、前記クライアント装置がアプリケーションパッケージをダウンロードするために実行することができるダウンロード命令を返すステップと
を含むことを特徴とする請求項３０に記載のシステム。
【請求項４２】
アプリケーションリストを維持するクライアント装置をさらに含み、
前記クライアント装置は前記リストを前記クライアントプロキシに供給し、
前記クライアントプロキシは、前記構成管理システムから得たポリシーを考慮して前記リストを調べ、前記クライアントのアプリケーションリストに加えるべき変更を決定し、
前記クライアントプロキシは、前記決定した変更に従ってそのアプリケーションリストを変更するよう前記クライアント装置に命令し、
前記クライアント装置は、前記クライアントのアプリケーションリストに追加されたアプリケーションに対応するパッケージリクエストを提出し、
前記クライアントプロキシは、前記パッケージリクエストを受け取ったことに応答して、前記クライアント装置がアプリケーションパッケージをダウンロードするために実行することができるダウンロード命令を返すことを特徴とする請求項３０に記載のシステム。
【発明の詳細な説明】
【０００１】
本出願は、２００１年１２月５日に出願されたMarlらによる米国仮出願第60／338,777号および２００２年６月２６日に出願されたMarlらによる米国出願第10／183,916号に基づく優先権を主張するものである。
【０００２】
【発明の属する技術分野】
本発明は、構成管理システムに関し、特に、限定されたリソースおよび／または互換性がないクライアント装置を有するこのようなシステムの使用に関する。
【０００３】
【従来の技術】
コンピュータは、職場の不可欠な一部となっている。多くの組織において、ほとんどすべての従業員が、少なくとも１台のコンピュータを使用している。その結果、大企業は、一般に、きわめて多数のコンピュータを運用し、維持している。このような企業においては、可能な限りメンテナンス作業を自動することが重要になっている。
【０００４】
幸いなことに、ローカルエリアネットワーク(ＬＡＮ)および広域ネットワーク(ＷＡＮ)もまた一般的になっており、組織の様々なコンピュータはユーザ認証、ファイル共用、電子メール、様々なその他の種類のサービスなど、中央から提供されるコンピュータサービスを利用することができる。
【０００５】
構成管理システムとは、組織内の様々な異種コンピュータのメンテナンスおよび管理を自動するために、ネットワーク化された環境において有効に使用することができる一種のサービスを意味する。このようなサービスは、デスクトップコンピュータ、サーバ、およびサーバアプリケーションに関して、集中化されたソフトウェア配布、資産管理、およびリモートトラブルシューティングを行うためのツールを提供する。マイクロソフト(登録商標)社の「システム管理サーバ(Systems Management Server)」は、この目的で設計されたシステムの一例である。
【０００６】
図１は、自動構成管理が実施されたコンピュータシステム１０の簡略化した例を示す。このようなシステムは、管理サーバ１２、および複数のコンピュータ１４を含む。クライアント１４は、ローカルエリアネットワークまたは広域ネットワーク１６を介して互いに、かつ管理サーバ１２と通信を行うことができる。
【０００７】
管理サーバ１２は、図１では単一の装置として表してあるが、複数の個々のコンピュータまたはサーバを含むこともあり、その場合、それらは互いに極めて接近して配置してもよいし、または様々な異なる場所に配置してもよい。
【０００８】
最新のオペレーティングシステムおよびアプリケーションソフトウェアは、それらのオペレーティングシステムおよびアプリケーションソフトウェアが存在しているコンピュータの自動構成管理のために、クライアント側のサポートを提供することが多い。例えば、マイクロソフト（登録商標） Windows(登録商標) XPオペレーティングシステムファミリは、コンピュータ自体の中にあるコンポーネントからも、また他のコンピュータからもプログラマチッククエリーおよびデータ照合が可能なデータベース中に、ハードウェアコンポーネントおよびソフトウェアコンポーネント両方の詳細なインベントリを維持している。Windows(登録商標)環境の中では、この機能は、Windows(登録商標)管理インストルメンテーション(Windows(登録商標)Management Instrumentation)またはＷＭＩとして知られる。変更および構成管理ソフトウェアは、ＷＭＩ情報を利用して、個々のコンピュータのインベントリを得ることができ、また、コンピュータの構成を更新または変更すべきかどうかを評価することができる。
【０００９】
オペレーティングシステムのサポートに加え、個々のクライアントコンピュータ１４は、一般に、専用ソフトウェアを使って自動構成管理をサポートするように構成される。このようなソフトウェアは、通常、特定のベンダの自動構成管理システムの実施の一部として、例えば、マイクロソフト(登録商標)のシステム管理サーバプロダクトの一部として設計される。専用ソフトウェアは、クライアントコンピュータのオペレーティングシステムと共に作動して管理サーバ１２と共に様々な機能を実行する。したがって、自動構成管理システムの全体的なフレームワークはサーバコンポーネントとクライアントコンポーネントの両方を含む。
【００１０】
図２は、サーバ１２のコンポーネントおよびクライアント１４内に実施されているコンポーネントを含めて、マイクロソフト(登録商標)のシステム管理サーバプロダクトによって実施された構成管理フレームワークの簡略化した論理コンポーネントを示す。例示のコンポーネントはフレームワークのインベントリ配布機能およびソフトウェア配布機能に関連する。
【００１１】
管理サーバ１２は、クライアント１４上に存在するクライアントインベントリ／ディスカバリコンポーネント２２と共に作動するサーバインベントリ／ディスカバリコンポーネント２０を有する。クライアントインベントリ／ディスカバリコンポーネント２２は、クライアントコンピュータ１４の識別情報およびハードウェア／ソフトウェアインベントリを収集し、この情報をデータ構造に組み立て、この情報を、サーバ１２のサーバインベントリ／ディスカバリコンポーネント２０に供給する。識別情報は、管理されているネットワーク上のクライアントを一意に識別し、ＮｅｔＢＩＯＳ名やＩＰアドレスなどのプロパティを含む。この情報は、ディスカバリデータレコードまたはＤＤＲと呼ばれるデータ構造としてパッケージ化され、レポートされる。管理サーバは、この情報をデータベース中に維持して、資産管理機能を容易にする。クライアント１４内では、この情報の多くが、Windows(登録商標) XPオペレーティングシステムのＷＭＩ機能を使って収集される。サーバ１２とクライアント１４の間の通信は、この自動構成管理システムのこの特定の実施に属する所定のプロトコルを利用する。
【００１２】
クライアントコンピュータは、以下のような詳細を含めて、２００を超えるプロパティを収集し、レポートする可能性がある。
ディスクドライブの数およびサイズ
プロセッサのタイプおよび速度
メモリ量
オペレーティングシステム
モニタおよびディスプレイの設定
コンピュータ名およびＩＰアドレス
接続されている周辺装置に関する情報
ネットワークのタイプ
ＢＩＯＳ情報
【００１３】
さらに、各クライアントコンピュータは、メーカおよびバージョン情報を含めて、そのクライアントにインストールされているすべてのソフトウェアアプリケーションのリストをレポートする。
【００１４】
管理サーバ１２は、クライアント１４など、管理されているコンピュータにポリシーを配布するポリシープロバイダ２４を含む。ポリシーは、構成の設定およびソフトウェアの配布を示す。構成設定ポリシーの例として、「このクライアントコンピュータ上でのパスワードは、７〜１０文字の長さで、非英字を含まなければならない」などのルールが挙げられる。ソフトウェア配布ポリシーはダウンロードおよびインストールが可能なソフトウェアパッケージを示し、また、どのタイプのクライアントがその示されているソフトウェアパッケージをダウンロードし、インストールすることができるかを示す情報も含む。ソフトウェアパッケージは、ファイルをダウンロードおよびインストールするための命令と共にファイルを集めたものである。
【００１５】
クライアント１４は、サーバ１２からポリシーを受け取り、それらのポリシーを評価して、どれがクライアント１４をターゲットとしているかを判定する、ポリシーエバリュエータ２６を有する。ポリシーエバリュエータ２６は、あるポリシーがクライアント１４に向けられていると判定したときは、この情報を適切なコンポーネントに渡して動作させる。構成設定ポリシーは、様々な方法で実施される。中には、レジストリの変更を必要とするものもあるし、ＷＭＩをコールすることを必要とするものもある。ポリシーがソフトウェア配布タイプの場合は、クライアント１４上のアプリケーションインストールコンポーネント２８に渡される。インストールコンポーネント２８は、そのポリシー情報を調べ、関連するソフトウェアパッケージをどのようにダウンロードすべきかを決定する。次いで、サーバ１２に関連する配布ポイント２９に接続し、ソフトウェアパッケージをダウンロードする。パッケージをダウンロードした後、アプリケーションインストールコンポーネント２８は、ダウンロードしたソフトウェアパッケージに含まれている情報に従ってパッケージソフトウェアをインストールする。
【００１６】
マイクロソフト(登録商標)のシステム管理サーバなど、既存の自動構成管理システムは、図１に示す従来のネットワーク化された環境において十分に作動する。この場合、管理されているコンピュータには、デスクトップまたはその他の全機能コンピュータが含まれる。しかし、組織内の個々の従業員が、従来のデスクトップコンピュータよりも機能が限定されたポータブルコンピューティング装置を利用する傾向が強くなってきている。特に、パーソナルデジタルアシスタント(ＰＤＡ)として知られるハンドヘルド装置が広く使用されるようになっており、そのユーザは、電子メールを見たり、コンタクトリストの同期をとったりするために、このような装置を企業ネットワークに接続することが多い。ネットワークへの接続は、関連するデスクトップコンピュータを介して可能であるし、あるいは、ワイヤレスおよび／またはリモートアクセス手段を含めて、独立したネットワーク接続による場合もある。
【００１７】
多くの組織は、ＰＤＡなどのハンドヘルド装置に対するテクニカルサポートを正式に提供していないが、それらのヘルプデスクが受け取る、このような装置に関するサポートコール数は増加しつつある。このような電話は、ハンドヘルド装置の構成、および装置にインストールされているアプリケーションの新しいアップデート版の入手に関することが多い。
【００１８】
全デスクトップ機能に満たない機能のコンピュータまたはコンピュータのような装置が数多く使用されている環境は多数ある。工場のオートメーション制御装置、販売端末の電子ポイント（electronic point）、ガソリンスタンドのポンプなどはネットワーク化されることが多いが、従来のデスクトップコンピュータの全機能およびリソースは備えていない、一般に使用されている装置の例である。マイクロソフト(登録商標)社では、Windows(登録商標) CEオペレーティングシステムとして知られる、このような限定リソース装置のためのWindows(登録商標)オペレーティングシステム特別版を設計している。
【００１９】
【発明が解決しようとする課題】
従来、ＰＤＡなどの限定リソース装置および上述のその他の例は、自動構成管理には加わることはできなかった。既存の構成管理ソリューションは、一般に管理されるクライアントに対してきわめて大量の処理タスクを負わせ、必要とされるクライアント側ソフトウェアは、一般にＰＤＡなどの限定リソース装置上で走ることができない。これらの装置のために特に設計されたクライアントソフトウェアは、既存の構成管理システムで使用するように設計されていることも考えられるが、これらの装置上で利用することが可能なコンピュータリソースの限界に近づくか、またはそれを超える可能性がある。
【００２０】
【課題を解決するための手段】
限定リソースクライアントで使用するためのシステム管理フレームワークは、そのクライアント装置とは別に実施されたクライアントプロキシを含む。クライアントプロキシは、クライアント装置と通信するように、また、クライアント装置に代わって全機能クライアントコンピュータをエミュレートするように構成される。特に、クライアントプロキシは構成管理システムからポリシーを受け取り、そのポリシーを評価して、それらのクライアント装置への適用性を判定するポリシーエバリュエータを有する。クライアントプロキシは、あるポリシーがクライアント装置に適用可能であると判定すると、新しい設定をどのように適用すべきか、または新しいソフトウェアパッケージをどのようにダウンロードし、インストールすべきかに関する命令をクライアントに与える。
【００２１】
【発明の実施の形態】
図３は、システム管理フレームワーク３０のトップレベルを表したものである。フレームワーク３０は、構成管理システムまたはサーバ３２、クライアント装置３４、およびクライアントプロキシ３６を含む。説明している実施形態の構成管理サーバシステム３２は、上述のように、マイクロソフト(登録商標)のシステム管理サーバ(ＳＭＳ)のインストールしたものを含む。ただし、本明細書で説明している技術は、他のメーカの自動管理システムに関連させて実施することができる。
【００２２】
構成管理システム３２は、上述のように、互換性がある複数のコンピュータと通信を行い、それらを管理するように構成される。このようなクライアントコンピュータが、従来のデスクトップコンピュータなど、全機能コンピュータである場合、クライアントコンピュータは、上述のように専用ソフトウェア(一般に、管理システムクライアントエージェントまたはクライアントコンポーネントと呼ばれる)を走らせて、構成管理システムが提供する機能との互換性を供給する。しかし、図３に示す例では、クライアント装置３４は、その上で自動構成管理システムの標準のクライアントコンポーネントを走らせることが不可能、非実用的、または望ましくない限定リソース装置である。限定リソース装置には、従来の全機能デスクトップコンピュータと比較すると限定されたリソースおよび機能しか備えていない、ハンドヘルドコンピュータ、モバイル装置、あるいはその他のコンピュータまたはコンピュータのような装置が含まれる。このような装置の例として、ＰＤＡ、工場のオートメーション制御装置、販売端末の電子ポイント（electronic point）、ガソリンスタンドのポンプ、モバイル電話などが挙げられる。これらの装置は、一般に従来のデスクトップコンピュータのオペレーティングシステムよりもオーバーヘッドが少なく、提供する機能が少ないオペレーティングシステムの下で走る。Windows(登録商標) CEオペレーティングシステムは、上記のような限定リソースコンピュータに関連して使用されることが多いオペレーティングシステムの例である。
【００２３】
その限定された機能およびリソースのため、また構成管理システムの標準クライアントソフトウェアを走らせることができないため、この説明の目的でクライアント装置３４を構成管理システム３２とは互換性がないとみなす。つまり、構成管理システム３２との直接の通信、およびそれによる管理を可能にするソフトウェアを走らせない。逆に、クライアントプロキシ３６は、この互換性がないクライアント装置３４に代わって互換性がある非限定リソースクライアントコンピュータをエミュレートし、それによって、構成管理システムが互換性がないクライアント装置を管理することができるようにする。クライアント装置の管理には、その装置に関するインベントリ情報を維持する能力、およびそのクライアント装置にアプリケーションを追加し、またそこからアプリケーションを除去する能力が含まれる。
【００２４】
クライアントプロキシ３６は、限定リソースクライアント装置３４とは別に、例えば、管理システム３２の一部であるコンピュータ上、何か他の集中サーバまたはコンピュータ上、あるいは同期化の目的でクライアント装置３４に関連付けられたホストのデスクトップコンピュータ上に実施されるソフトウェアコンポーネントである。それは、ネットワーク接続またはその他の手段によって、通信のために管理システム３２と接続される。クライアントプロキシ３６は管理されるクライアントとして管理システム３２と通信を行い、管理システム３２にとっては、標準の全機能クライアントとして見える。したがって、限定リソースクライアントをサポートするために、プロダクトのサーバ部分に最低限の変更を加えるだけで標準構成管理システム３２を利用することができる。
【００２５】
クライアントプロキシ３６は、有線ネットワーク接続、ワイヤレス接続、またはホストコンピュータ(同期の目的でクライアント装置に関連付けられたデスクトップコンピュータなど)を介したＨＴＴＰプロキシ接続によってクライアント装置３４と通信する。管理の目的のためには、クライアント装置３４は、直接、構成管理システム３２とではなく、クライアントプロキシ３６と通信する。
【００２６】
クライアントプロキシ３６の責任は、次の２つのカテゴリに大きく分けることができる。すなわち、(a)クライアント装置３４と管理サーバ３２の間における情報の変換および中継、および(b)通常はクライアント装置３４が実行する管理機能の実行。
【００２７】
これらのカテゴリのうち最初について説明すると、クライアントプロキシ３６は、クライアント装置３４から、構成管理システム３２が使用しているフォーマットおよびプロトコルとは互換性がないフォーマットで、現在の構成情報を得るか、または受け取り、その構成情報の少なくとも一部を構成管理システム３２と互換性があるフォーマットに変換し、その構成情報を、クライアント装置３４に代わって構成管理システム３２が期待するフォーマットで構成管理システム３２に供給またはレポートする。
【００２８】
構成情報は、クライアント装置上で利用可能なアプリケーションを識別するソフトウェアインベントリを含む。より詳細には、ソフトウェアインベントリは、クライアント装置が、クライアント装置のユーザの任意選択でインストールまたは利用可能にするようにすでに命令されているパッケージに対応するパッケージＩＤのリストを含む。構成情報はハードウェアインベントリも含む。
【００２９】
記載の実施形態では、クライアント装置３４からクライアントプロキシ３６に伝達された構成情報は、ＸＭＬデータスキームに従ってＸＭＬデータとしてフォーマットされる。その例を、この説明の後の部分に示す。
【００３０】
第２のカテゴリ―管理機能の実行―について説明すると、クライアントプロキシ３６は、管理サーバ３２と通信してポリシーを受け取るかまたは取得する。上述のように、ポリシーは、構成設定および／またはダウンロードおよびインストール用として利用可能なソフトウェアパッケージを示し、また、どのタイプのクライアントが示されている構成設定をダウンロードおよび実施すべきか、または示されているソフトウェアパッケージをダウンロードおよびインストールすべきかを示す情報も含む。クライアントプロキシ３６は構成管理システム３２からポリシーを受け取り、ポリシーのいずれかがクライアント装置３４に適用されるかどうかを判定し、クライアント装置に命令する。特に、クライアントプロキシは、クライアント装置に適用されると判定されたポリシーのいずれかに従って１つまたは複数の構成変更命令をダウンロードして実行するように、または、１つまたは複数のアプリケーションをダウンロード、インストール、および／または除去するようにクライアント装置に命令する。クライアント装置に与えられた命令は、アプリケーションまたは１組の構成変更命令をダウンロードする条件、およびそれらをダウンロードすることができる先のＵＲＬ(ユニフォームリソースロケータ)を示すことができる。
【００３１】
図４は、システム管理フレームワーク３０の論理コンポーネントをより詳細に示す。管理サーバシステム３２は、インベントリ／ディスカバリコンポーネント４０、ポリシープロバイダ４２、およびアプリケーションまたはパッケージ配布コンポーネント４４を含む。
【００３２】
インベントリ／ディスカバリコンポーネント４０は、資産管理（asset management）目的で、複数のクライアントコンピュータからディスカバリデータレコード、およびハードウェア／ソフトウェアインベントリを受け取る。この情報は、一般にシステムアドミニストレータがアクセス可能なデータベース(図示せず)に記憶される。
【００３３】
ポリシープロバイダ４２は、サーバシステム３２が管理するコンピュータおよびその他の装置にポリシーを配布する。ポリシーは、構成設定、またはダウンロードおよびインストール用として利用可能なソフトウェアパッケージを示し、また、どのタイプのクライアントにポリシーが適用されるかを示す情報を含む。ソフトウェアパッケージは、ファイルをダウンロードおよびインストールするための命令と共にファイルを集めたものである。
【００３４】
配布コンポーネント４４は、クライアントが、アプリケーション、パッケージ、または構成変更命令をダウンロードするために接続することができる接続ポイントである。
【００３５】
クライアントプロキシ３６の論理コンポーネントは、インベントリ／ディスカバリコンポーネント４６、ポリシーエバリュエータ４８、および命令プロバイダ５０を含む。インベントリ／ディスカバリコンポーネント４６は、クライアント装置３４と相互作用して、ハードウェア／ソフトウェアインベントリを含めて、クライアント装置の構成に関する情報を得る。限定リソースクライアント装置３４から受け取ったハードウェア／ソフトウェアインベントリは、全機能デスクトップコンピュータなど、その他のタイプのクライアントが生成した場合のインベントリと比較すると著しく簡略化されている。インベントリ／ディスカバリコンポーネント４６は、管理サーバシステム３２が利用している通信プロトコルに従って、この簡略化された情報をフォーマットし、その情報をハードウェア／ソフトウェアインベントリおよびディスカバリデータレコード(ＤＤＲ)の形態で管理サーバシステム３２に伝達する。
【００３６】
ポリシーエバリュエータ４８は、管理サーバシステム３２のポリシープロバイダ４２からポリシーを受け取り、そのポリシーを評価して、どれがクライアント装置３４をターゲットとしているかを判定する。ポリシーエバリュエータ４８は、あるポリシーがクライアント装置３４に向けられていると判定すると、ポリシーの内容であるアプリケーション、パッケージ、または１組の構成命令を、どのように、また任意選択によりどの条件で、ダウンロードするかを指定しているダウンロードまたは構成変更命令をクライアント装置３４に与えるように、命令プロバイダコンポーネント５０に命令する。
【００３７】
クライアント装置３４の論理コンポーネントには、ポーリング／レポーティングコンポーネント５２、スケジューリングコンポーネント５４、ダウンロードコンポーネント５６、インストール命令インタプリタ５８、およびプログラムまたはパッケージインストールコンポーネント６０が含まれる。これらのコンポーネントは、クライアント装置にインストールされている専用ソフトウェアで実施することができ、ＵＲＬまたはその他のクライアントプロキシ３６に関する仕様などの情報、および認証情報および資格認定（credential）を使って、予め構成しておくことができる。クライアント装置３４の限定された機能およびリソースのために、この専用ソフトウェアは、全機能デスクトップコンピュータ上で使用されることがある標準クライアント側ソフトウェアと比較すると、その範囲および機能が限定されている。これは、以下の説明からより明らかになろう。
【００３８】
クライアント装置は、アプリケーションがインストールされるプログラムメモリ６４、および、その中に、クライアント装置３４が以前のクライアントプロキシ３６との相互作用によってすでにクライアント装置に利用可能になっているアプリケーションまたはパッケージを示す提供リストを維持するデータベースまたは他のデータ構造６６も備えている。これらのコンポーネントの、互いの、およびクライアントプロキシ３６との相互作用について、図５を参照しながら以下により詳細に説明する。
【００３９】
図５は、図４に示すフレームワークの方法の側面を示す。図５の左側の動作はクライアント装置３４のコンポーネントによって実行される。図５の右側の動作はクライアントプロキシ３６のコンポーネントによって実行される。中間の動作は、アドミニストレータによって、またはサーバシステム３２によって実行される。これらの動作を、あるアプリケーションをすべてのモバイル装置に配布およびインストールすることを望む場合のシナリオに関して、以下に説明する。この例のアプリケーションは、foo.exe、foo.dll、およびfoo.regの３つのコンポーネントを有する。クライアント装置へのインストールには、最初の２つのコンポーネントを「#Program Fil#Foo」と呼ばれるディレクトリにコピーすること、および「foo.reg」をクライアント装置のレジストリにロードすることが含まれる。
【００４０】
初期動作（an initial action）７０は、３つのプログラムコンポーネント「foo.exe」、「foo.dll」、および「foo.reg」を含む配布パッケージを作成することを含む。このパッケージは、いわゆる「ＣＡＢ」ファイル(配布を容易にするため、複数のファイルを単一のファイルに結合する、よく知られたファイルのタイプ)も含み、このファイルは、それを受け取ったクライアント装置により開いてそのクライアント装置上に自動的にインストールすることができる。あるいは、アプリケーションコンポーネント、およびインストールタスクを実施するためにクライアント装置が実行することができるインストールスクリプトを含むファイルを有する非ＣＡＢパッケージを組み立てることができる。この例では、インストールスクリプトファイルを「foo.cmd」と呼び、それは次のコマンドを含む。
copy foo.exe "#program files#foo.exe"
copy foo.dll "#program files#foo.dll"
loadreg foo.reg
delete foo.exe
delete foo.dll
delete foo.reg
【００４１】
このファイルは、一般にシステムアドミニストレータとしての役割を果たす者が作成する。
【００４２】
ポーリング／レポーティングコンポーネント５２は、スケジューリングコンポーネント５４が決定した所定の間隔でクライアントプロキシ３６に接続し、構成情報を送る動作７２を実施する。構成情報はクライアント装置のハードウェアおよびソフトウェアに関する様々な情報を含み、本明細書では提供リストと呼ぶ、アプリケーションパッケージのリストを含む。提供リストは、クライアント装置が、インストールすること、またはインストールできるように利用可能にすることのいずれかを命令されたアプリケーションパッケージを、パッケージＩＤによって識別する。パッケージＩＤはデータベース６６から得られ、データベース６６は、以下に説明するようにクライアントプロキシ３６から受け取った命令に基づいて維持される。提供リストは、クライアントプロキシ３６がクライアントに利用可能にするように命令したすべてのパッケージを示す。
【００４３】
構成情報は、好ましくはＸＭＬスキーマに従ってクライアントプロキシ３６にレポートされる。
【００４４】
【表１】
0004313030.tif 000002
【００４５】
【表２】
0004313030.tif 000003
【００４６】
表１および表２は、本出願の優先権主張の基礎の一つとされている米国出願第10／183,916号において一つの表として示されていたものを、オンライン出願のための電子化の都合上、二つに分割したものであって、表１および表２により米国出願第10／183,916号における上記一つの表と同一内容を表す。
【００４７】
以下は、上記ＸＭＬスキーマに従ってフォーマットした実際のデータの例である。ここで、下線は可変データ値の例であることを表すために付したものである。ＸＭＬデータは、一般にＨＴＴＰポストとしてクライアントプロキシ３６に伝達される。
【００４８】
DEVICE POST:
<devmgmt>
<identity deviceName="corpuser-ipaq" userName="corpuser"
domain="NTDEV"/>
<devmgmt-sysinfo version="1.0" type="full">
<ceDevice class="Pocket PC2" modelDescription="Compaq iPAQ H3600"
cpuType="StrongARM"/>
<osVersion major="3" minor="0" buildNum="9348"
CodePage="1236">
<binFile pid="{l3D65099-CE43-11D0-A2AD-0020357512E7}"
ver="1.0" xipRegion="OS Core"/>
<binFile pid="{23C46454-CE43-4650-AG7D-0145357512F8}"
ver="1.6" xipRegion="Apps"/>
</osVersion>
<screen vRes="240" hRes="320" type="Color"
numColors="65536"/>
<transport ip="157.59.244.92" subnet="255.255.252.0"
bandWidth="10000"/>
<power AC="Connected" battery="High" batteryPercent="95"
backup="High" backupPercent="100"/>
<memory total="31944" program="15984" programFree="3584"
storage="15960" storageFree="13002"/>
<storage>
<fileSystem name="root" size="1002" usedSpace="500"/>
<fileSystem name="backup" size="1462" usedSpace="700"/>
<fileSystem name="data" size="150" usedSpace="120"/>
</storage>
<packages>
<package ID="E9C4C404-A802-460b-B8AF-6BFID72AF594"/>
<package ID="4A9D1F33-76CC-42d2-93BE-F1D86B7FBA36"/>
<package ID="2C0E13E1-4C20-4dc2-A80E-368FD63F986F"/>
</packages>
</devmgmt-sysinfo>
</devmgmt>
【００４９】
「package ID」属性のインスタンスは、構成管理サーバシステム３２から受け取ったパッケージＩＤを示す。このＩＤは、「必須」パッケージを指すことも、または「任意選択」パッケージを指すこともある。必須パッケージは、サーバシステム３２が適用可能なクライアント装置上にインストールすることを要求するパッケージである。任意選択パッケージは、ユーザの任意選択によってのみダウンロードおよびインストールされるパッケージである。クライアント装置が維持し、レポートする提供リストは、以前のクライアントプロキシ３６との相互作用によって、クライアント装置が知らされているすべての適用可能な必須および任意選択パッケージに対応する。
【００５０】
クライアントプロキシ３６のインベントリ／ディスカバリコンポーネント４６は、動作７４で構成情報を受け取る。クライアントプロキシは、この情報を受け取ったことに応答して、この情報を管理サーバシステム３２が期待するフォーマットでフォーマットし、そのフォーマットした情報をサーバシステム３２に送る。クライアントプロキシはまた、クライアント装置から受け取ったクライアント装置のＩＤと、管理サーバシステム１２によってクライアント装置に割り当てられたＩＤの間のマッピングを維持する。
【００５１】
クライアント装置３４のポリシーエバリュエータ４８は、管理サーバシステム３２からポリシーを受け取るだけでなく、提供リストも受け取る。この情報に基づき、クライアントプロキシ３６は、受け取ったポリシーをクライアント装置３４に選択的に適用する動作７８を実施する。これには、ポリシーのいずれかがクライアント装置に適用されるかどうかを判定すること、およびこのような適用可能ポリシーのいずれかを考慮して受け取った提供リストを評価し、クライアントがその提供リストにいずれかの変更を加えるべきかを判定することが含まれる。評価には、クライアント装置の提供リストにパッケージを追加すべきか、またはそこから除去すべきかを判定することが含まれる。この判定の結果、ポリシーエバリュエータ４８は、その決定された変更に従って提供リストを変更するように―すなわち、管理サーバ３２から受け取ったポリシーに従ってアプリケーションを削除し、および／またはパッケージをダウンロードし、かつインストールするようにクライアント装置３４に命令する提供リスト命令をクライアント装置３４に送る動作８０を実施する。記載の実施においては、提供リスト命令は次のＸＭＬフォーマットで送られ、ここで、下線はパッケージの性質によって変わる例示的データを表すために付したものである。
【００５２】
0004313030.tif 000004
【００５３】
クライアント装置３４は、動作８２で提供リスト命令を受け取り、動作８４で、これに応答して命令を構文解析して実行し、その提供リストを修正する。上記の例では、クライアント装置は、列挙パッケージＩＤによって指定されている「Foo Program」をその提供リストに追加し、同様にそのパッケージＩＤで識別されている別のプログラムを除去するように命令されている。
【００５４】
その提供リストを修正した後、クライアント装置３４は提供リストに何か変更があればそれを検出し、適切な措置をとる。１つまたは複数のアプリケーションを除去した場合には、それらを動作８６でアンインストールまたは除去する。１つまたは複数のアプリケーションを追加した場合には、動作８８で、それらをダウンロードし、かつインストールする。
【００５５】
図６は、新しいプログラムを追加またはインストールする動作８８の詳細を示す。パッケージをインストールする必要があると判定した後、ポーリング／レポーティングコンポーネント５２は、クライアントプロキシ３６にコンタクトし、パッケージリクエストを提出することによりダウンロード命令を要求する動作９０を実施する。パッケージリクエストは、クライアントが必要であると識別したパッケージを、そのパッケージＩＤによって識別する。クライアントプロキシ３６は、動作９１でパッケージリクエストを受け取り、動作９２で、これに応答して、ダウンロード命令ファイルを作成または編集し、そのダウンロード命令ファイルをクライアント装置３４に供給する。ダウンロード命令ファイルは、好ましくはＸＭＬフォーマットで供給される。
【００５６】
ダウンロード命令ファイルは、対象パッケージをどのように、いつ、どこから、および何の条件でダウンロードすべきかに関する様々なパラメータを含む。記載の実施形態では、これらのパラメータは以下を含む。
ヘッダ
内容ブロック
ＩＤ(ＧＵＩＤ)
ステータスレポートのための応答ＵＲＬ(任意選択)
ダウンロード命令
開始時間(ＧＭＴで)
デルタ時間(ＧＭＴで)
フラグ(接続タイプまたは接続クラス)
要求されている(ＹＥＳまたはＮＯ。デフォルト:ＮＯ)
ファイルの説明
ソースＵＲＬ
装置上の宛先(完全修飾パスとしてのファイルのロケーション)
署名(ファイルの署名付ハッシュ)
ダウンロード後に装置上で実行すべきコマンド(任意選択)
【００５７】
「内容（contents）」ブロックは、命令ファイル自体の内容に関する情報を含み、これには、クライアントがその後に続く列挙動作の成功または失敗をレポートすべき先のＵＲＬが含まれる。「ダウンロード命令」は「開始時間」または「デルタ時間」(オペレーションが開始するまでの間隔)のいずれかを指定し、「フラグ」は、ダウンロードの開始が許可されるべき条件を示す。例えば、フラグは、高速ネットワークを介してネットワークに接続されているなど、ある種の通信能力が存在している場合にのみダウンロードが開始され得ることを示す場合もある。別の例として、フラグは、クライアント装置が（バッテリ電源とは対照的に）ＡＣ電源に接続されている場合にのみダウンロードが開始され得ることを示す場合もある。
【００５８】
「要求されている」パラメータは、そのパッケージを装置上にインストールすることが管理サーバ３２によって要求されているかどうかを示す。「ファイルの説明」は、クライアント装置にコピーすべきファイルのソースおよび宛先ロケーション、並びにファイルの署名を示す。「コマンド」パラメータは、クライアント装置が前に命令ファイル中に指定されていたファイルをうまくコピーした後に実行すべきコマンドを識別する。
【００５９】
以下はＸＭＬダウンロード命令ファイルの例である。ここで、下線は可変データ値であることを表わすために付したものである。
DOWNLOAD XML MESAGE
<RDM-Operation>
<Authorization SourceGUID="66CC03B9-6C89-45e3-94C5-4213925B7B21"
Signature="Foo Bar"/>
<Contents Action="Create" ID="FE046C21-9272-49e0-83D7-8975566184F0"
ResponseUrl="https://server/device.dll?status">
<Description SourceName="Server" OfferingName="Foo Program">
<ShortDescription>"Latest Foo program"</ShortDescription>
</Description>
<Download StartTime="d0 07 0a 00 03 00 12 00 00 00 2a 00 05 00
00 00" DeltaTime="00 00 01 00 00 00 00 00 00 00 00 00 00 00
00 00" RetryTime="00 00 01 00 00 00 00 00 00 00 00 00 00 00
00 00" MaxRetryCount="5" Type="Download" Flags="05 00
00 00" RequireUrlSigs="0"
NotificationType="MandatorySilent">
<CopyFile Url="https://server/drop/foo.exe"
Dest="\temp\foo.exe"/>
<CopyFile Url=https://server/drop/foo.dll
Dest="\temp\foo.dll"/>
<CopyFile Url="https://server/drop/foo.reg"
Dest="\temp\foo.reg"/>
<CopyFile Url="https://server/drop/foo.cmd"
Dest="\temp\foo.cmd"/>
<PostInstall Command="\temp\foo.cmd"/>
</Download>
</Contents>
</RDM-Operation>
【００６０】
クライアント装置３４は、ダウンロード命令ファイルを受け取って構文解析し、動作９４で、そのダウンロード命令を、その命令に関連する開始時間、デルタ時間、および／またはフラグに従って実行するようにスケジューリングコンポーネント５４でスケジュールする。スケジューラは、適切な時間に、ダウンロード命令ファイルに記載されているファイルをダウンロードする動作９５を実施するようにダウンロードコンポーネント５６に命令する。それに続く動作９６は命令インタプリタ５８によって実施され、ダウンロード命令ファイルの「コマンド」パラメータが示すコマンドを実行することを含む。このコマンドは、ほとんどの場合、インストールコンポーネント６０による、ダウンロードしたファイルのインストールを開始する。ここに記載の例では、このコマンドは、本明細書で前に述べた「foo.cmd」スクリプトを含む。「foo.cmd」を実行することは、その個々の命令を実行することを含み、それら個々の命令は、いずれかの必要なインストールタスクを実行する―ここに記載の例では、クライアント装置上の該当するディレクトリにファイルをコピーし、レジストリの値をロードし、かつテンポラリーファイルを削除する。
【００６１】
図５に戻ると、クライアント装置３４は、そのプログラムリストに追加、またはそこからの削除を行った後、または、プログラムまたはパッケージをインストールした後、オペレーションの成功(または失敗)を示すステータス応答をクライアントプロキシ３６に送る動作９７を実施する。ステータス応答は、好ましくはＸＭＬデータとしてフォーマットされ、ダウンロード、インストール、および／または除去されたいずれかのパッケージのパッケージＩＤを示す。例えば、ＸＭＬステータス応答は次のようになる。ここで、下線は可変データであることを表すために付したものである。
<Status>
<response code="100" ID="E587E5D6-7160-4b8e-A3D9-041B85568704"
Type="Download"/>
<response code="100" ID="E587E5D6-7160-4b8e-A3D9-041B85568704"
Type="Install"/>
</Status>
クライアントプロキシ３６は、動作９８でステータス応答を受け取り、処理する。
【００６２】
上記に詳説した特定の機能に加え、クライアントプロキシ３６は、クライアント装置３４の管理をサポートするその他の機能を実施する。特に、クライアントプロキシ３６は、クライアント装置３４に代わってステータス要求および他の通信に応答する。さらに、クライアントプロキシは、特定のレポーティングアプリケーションをダウンロード、インストール、および／または実行するようにクライアント装置に命令することによって、クライアント装置３４による、さらに広範囲にわたるレポーティングを開始することができる。
【００６３】
上述の、サーバおよびクライアントプロキシのコンポーネントおよび機能は、１台または複数の個々のコンピュータで実施される。図７は、参照番号１００で指す、このようなコンピュータの代表的な例のコンポーネントを示す。図７に示すコンポーネントは例にすぎず、本発明の機能の範囲に関し、いかなる制限も示唆するものではない。本発明は、必ずしも図７に示す機能に依存するものではない。
【００６４】
一般に、様々な異なる汎用または専用コンピューティングシステム構成を使用することができる。本発明と共に使用するのに適した、よく知られたコンピューティングシステム、環境、および／または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記システムまたは装置のいずれかを含む分散コンピューティング環境などが含まれるが、これらのみに限定されるわけではない。
【００６５】
コンピュータの機能は、多くの場合、プログラムモジュールなど、コンピュータによって実行されるコンピュータ実行可能命令によって実施される。一般に、プログラムモジュールには、特定のタスクを実施し、特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。タスクは、通信ネットワークを介してリンクされたリモート処理装置によって実施されることもある。分散コンピューティング環境においては、プログラムモジュールを、ローカルおよびリモートコンピュータ記憶媒体の両方に配置することもできる。
【００６６】
命令および／またはプログラムモジュールは、コンピュータの一部であるか、またはコンピュータが読み込むことができるか、いずれかの様々なコンピュータ可読媒体中に、様々な時間に記憶される。プログラムは、一般に、例えばフロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ＤＶＤで、または、変調信号など、ある種の通信媒体の形態で配布される。そこから、コンピュータの補助記憶装置にインストールまたはロードされる。実行時、それらは、少なくとも一部が、コンピュータの主記憶装置にロードされる。本明細書で説明している本発明は、これらおよびその他の様々なタイプのコンピュータ可読媒体が、マイクロプロセッサまたはその他のデータ処理装置に関連して、上述のステップおよび動作を実施するための命令、プログラム、および／またはモジュールを含む場合、そのような媒体を含む。本発明はまた、コンピュータが上記の方法および技術に従ってプログラムされている場合、そのコンピュータ自体も含む。
【００６７】
本明細書では例示の目的で、オペレーティングシステムなど、プログラムおよびその他の実行可能プログラムコンポーネントを別々のブロックとして示している。しかし、このようなプログラムおよびコンポーネントは様々な時間に、コンピュータの様々な記憶コンポーネントに存在し、コンピュータのデータ処理装置によって実行されることを理解されたい。
【００６８】
図７を参照すると、コンピュータ１００のコンポーネントは、処理装置１２０、システムメモリ１３０、および、システムメモリを含めて様々なシステムコンポーネントを処理装置１２０に結合するシステムバス１２１を含むことができるが、これらのみに限定されるわけではない。システムバス１２１は、様々なバスアーキテクチャのいずれかを使用した、メモリバスまたはメモリ制御器、周辺バス、およびローカルバスを含めた何種類かのバス構造のいずれかであってよい。例として、このようなアーキテクチャには、限定することなく、業界標準アーキテクチャ(Industry Standard Architecture)(ＩＳＡ)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture)(ＭＣＡ)バス、拡張ＩＳＡ(Enhanced ISA)(ＥＩＳＡＡ)バス、ビデオエレクトロニクス規格協会(Video Electronics Standards Association)(ＶＥＳＡ)ローカルバス、およびメザニン(Mezzanine)バスとしても知られるＰＣＩ(Peripheral Component Interconnect)バスが含まれる。
【００６９】
コンピュータ１００は、一般に様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１００がアクセスできるいずれかの利用可能な媒体であってよく、揮発性および不揮発性媒体、およびリムーバブルおよび非リムーバブル媒体の両方を含む。例として、コンピュータ可読媒体には、限定することなく、コンピュータ記憶媒体および通信媒体を含めることができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するためのいずれかの方法または技術で実施された揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体の両方が含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク(ＤＶＤ)またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他の磁気記憶装置、あるいは所望の情報を記憶するために使用でき、かつコンピュータ１００がアクセスできるその他の任意の媒体が含まれるが、これらのみに限定されるわけではない。通信媒体は、一般にコンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータを搬送波やその他のトランスポートメカニズムなどの変調データ信号という形にし、かつ、いずれかの情報送達媒体を含む。「変調データ信号」という用語は、情報を信号内に符号化するような方法で設定または変更されたその特性の１つまたは複数を有する信号を意味する。例として、通信媒体には、限定することなく、有線ネットワークや直接有線接続などの有線媒体、および音響、RF、赤外線などのワイヤレス媒体およびその他のワイヤレス媒体が含まれる。上記のいずれかの組合せもコンピュータ可読媒体の範囲に含まれるであろう。
【００７０】
システムメモリ１３０は、読取り専用メモリ(ＲＯＭ)１３１およびランダムアクセスメモリ(ＲＡＭ)１３２などの、揮発性および／または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動の間など、コンピュータ１００内のエレメント間における情報の転送を助ける基本的なルーチンを含む基本入出力システム(ＢＩＯＳ)１３３は、一般に、ＲＯＭ１３１に記憶されている。ＲＡＭ１３２は、一般に、処理装置１２０が直ちにアクセス可能で、および／または現在、処理装置１２０が動作させているデータおよび／またはプログラムモジュールを含む。例として、図７は、限定することなく、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００７１】
コンピュータ１００は、その他のリムーバブル／非リムーバブルの揮発性／不揮発性コンピュータ記憶媒体も含むことがある。例にすぎないが、図７は、非リムーバブル不揮発性磁気媒体から読み込み、またはそこに書き込むハードディスクドライブ１４１、リムーバブル不揮発性磁気ディスク１５２から読み込み、またはそこに書き込む磁気ディスクドライブ１５１、ＣＤ−ＲＯＭやその他の光媒体などのリムーバル不揮発性光ディスク１５６から読み込み、またはそこに書き込む光ディスクドライブ１５５を示す。例示のオペレーティング環境で使用することができる、その他のリムーバブル／非リムーバブルの揮発性／不揮発性コンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体ＲＡＭ、半導体ＲＯＭなどが含まれるが、これらに限定されるわけではない。ハードディスクドライブ１４１は、一般にインタフェース１４０などの非リムーバルメモリインタフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、一般にインタフェース１５０などのリムーバブルメモリインタフェースによってシステムバス１２１に接続される。
【００７２】
上記で説明し、図７に示しているドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ１００に、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータを記憶する場所を提供する。図７では、例えば、ハードディスクドライブ１４１を、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７を記憶しているものとして示してある。これらのコンポーネントが、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７と同じであっても、あるいは異なってもどちらでもよいことに注意されたい。ここでは、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７が少なくとも異なるコピーであることを示すために、それらに異なる番号を付けてある。ユーザは、キーボード１６２、および、通例、マウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス１６１などの入力装置を介して、コンピュータ１００にコマンドおよび情報を入力することができる。その他の入力装置(図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどを含めることができる。これらおよびその他の入力装置は、システムバスに結合されているユーザ入力インタフェース１６０を介して処理装置１２０に接続されていることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(ＵＳＢ)など、その他のインタフェースおよびバス構造によって接続することもできる。モニタ１９１またはその他のタイプの表示装置も、ビデオインタフェース１９０などのインタフェースを介して、システムバス１２１に接続される。モニタに加えて、コンピュータは、スピーカ１９７およびプリンタ１９６など、その他の周辺出力装置も含むことができ、これらは出力周辺装置インタフェース１９５を介して接続することができる。
【００７３】
コンピュータは、リモートコンピュータ１８０など、１台または複数のリモートコンピュータへの論理接続を使って、ネットワーク化された環境において動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置、またはその他の一般的なネットワークノードでよく、図７にはメモリストレージ装置１８１しか示していないが、一般に、コンピュータ１００に関連して上記に説明したエレメントの多く、またはすべてを含む。図７に示す論理接続は、ローカルエリアネットワーク(ＬＡＮ)１７１および広域ネットワーク(ＷＡＮ)１７３を含むが、その他のネットワークを含むこともある。このようなネットワーキング環境は、オフィス、企業内コンピュータネットワーク、イントラネット、およびインターネットにおいては一般的である。
【００７４】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ１００は、ネットワークインタフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ１００は、一般に、モデム１７２、またはインターネットなど、ＷＡＮ１７３を介して通信を確立するためのその他の手段を含む。モデム１７２は、内部装置でも外部装置でもよく、ユーザ入力インタフェース１６０またはその他の適切なメカニズムを介して、システムバス１２１に接続することができる。ネットワーク化された環境では、コンピュータ１００に関連して示すプログラムモジュール、またはそれらの部分は、リモートメモリストレージ装置に記憶することができる。例として、図７は、限定することなく、リモートアプリケーションプログラム１８５をメモリ装置１８１に存在するものとして示す。図示しているネットワーク接続は例であって、コンピュータ間の通信リンクを確立するその他の手段を使用することができることを理解されたい。
【００７５】
限定リソースクライアント装置３４は、より限定された規模ではあるが、図７に示す技術と同様の技術を使って実施される。さらに、ＰＤＡや携帯電話などの限定リソースクライアント装置は、一般に、図７に示す機能のすべてを備えるわけではない。例えば、限定リソースクライアントは、フロッピー（登録商標）ディスクやＣＤ−ＲＯＭなどのリムーバブル磁気媒体用のドライブを備えていないことが多い。このようなクライアントは、一般に、メモリ容量がはるかに少なく、表示装置およびキーボードがより小さく、プロセッサの速度がより遅い、または能力が低い。さらに、多くのこのような装置は、ハードディスクの代わりに電子フラッシュメモリを備えている。さらに、限定リソース装置は、一般に、デスクトップのオペレーティングシステムがサポートする機能を全て備えているわけではない。例えば、限定リソース装置は、Windows(登録商標) XPオペレーティングシステムではなく、Windows(登録商標) CEオペレーティングシステムを動作させることがある。
【００７６】
本発明を、構造上の機能および／または方法のステップに特有の用語で説明してきたが、頭記の特許請求の範囲に定義する本発明は、必ずしも上記の特定の機能またはステップに限定されるものではないことを理解されたい。むしろ、その特定の機能およびステップは、特許請求の範囲に記載されている発明を実施する好ましい形態として開示している。
【図面の簡単な説明】
【図１】従来技術によるシステム管理フレームワークの図である。
【図２】図１に示すような従来技術によるシステム管理フレームワークにおいて使用される、構成管理サーバおよびクライアントコンピュータの論理コンポーネントを示す構成図である。
【図３】本発明の一実施形態によるシステム管理フレームワークの構成図である。
【図４】図３に示すようなシステムにおいて使用される、構成管理サーバ、クライアントコンピュータ、およびクライアントプロキシの論理コンポーネントを示す構成図である。
【図５】図３および図４のシステム管理フレームワークの方法の側面を示す構成図である。
【図６】図３および図４のシステム管理フレームワークの方法の側面を示す構成図である。
【図７】そのサブセットを本明細書で説明している論理機能の様々な部分を実施するために使用することができるコンピュータコンポーネントを示す構成図である。
【符号の説明】
１０  コンピュータシステム
１２  管理サーバシステム
１４  クライアントコンピュータ
１６  ローカルエリアネットワークまたは広域ネットワーク
２０，２２  インベントリ／ディスカバリコンポーネント
２４  ポリシープロバイダ
２６  ポリシーエバリュエータ
２８  アプリケーションインストールコンポーネント
２９  配布ポイント
３０  システム管理フレームワーク
３２  構成管理サーバシステム
３４  限定リソースクライアント装置
３６  クライアントプロキシ
４０  インベントリ／ディスカバリコンポーネント
４２  ポリシープロバイダ
４４  アプリケーションまたはパッケージ配布コンポーネント
４６  インベントリ／ディスカバリコンポーネント
４８  ポリシーエバリュエータ
５０  命令プロバイダコンポーネント
５２  ポーリング／レポーティングコンポーネント
５４  スケジューリングコンポーネント
５６  ダウンロードコンポーネント
５８  インストール命令インタプリタ、命令インタプリタ
６０  プログラムまたはパッケージインストールコンポーネント
６４  プログラムメモリ
６６  データベース（または他のデータ構造）
７０，７２，７４，７８，８０，８２，８４，８６，８８，９０，９１，９２，９４，９５，９６，９７，９８  動作（action）
１００  コンピュータ
１２０  処理装置
１２１  システムバス
１３０  システムメモリ
１３１  読取り専用メモリ（ＲＯＭ）
１３２  ランダムアクセスメモリ（ＲＡＭ）
１３３  基本入出力システム(ＢＩＯＳ)
１３４  オペレーティングシステム
１３５  アプリケーションプログラム
１３６  その他のプログラムモジュール
１３７  プログラムデータ
１４０  インタフェース
１４１  ハードディスクドライブ
１４４  オペレーティングシステム
１４５  アプリケーションプログラム
１４６  その他のプログラムモジュール
１４７  プログラムデータ
１５０  インタフェース
１５１  磁気ディスクドライブ
１５２  磁気ディスク
１５５  光ディスクドライブ
１５６  リムーバル不揮発性光ディスク
１６０  ユーザ入力インタフェース
１６１  ポインティングデバイス
１６２  キーボード
１７０  アダプタ
１７１  ローカルエリアネットワーク(ＬＡＮ)
１７２  モデム
１７３  広域ネットワーク(ＷＡＮ)
１８０  リモートコンピュータ
１８１  メモリストレージ装置
１８５  リモートアプリケーションプログラム
１９０  ビデオインタフェース
１９１  モニタ
１９５  出力周辺装置インタフェース
１９６  プリンタ
１９７  スピーカ
【図１】
0004313030.tif 000005
【図２】
0004313030.tif 000006
【図３】
0004313030.tif 000007
【図４】
0004313030.tif 000008
【図５】
0004313030.tif 000009
【図６】
0004313030.tif 000010
【図７】
0004313030.tif 000011