(57)【要約】【課題】モバイルデバイスのリモート構成のためにアプリケーションを配信し、モバイルデバイスが自動化された構成管理に参加する。【解決手段】モバイルクライアントデバイス３０４は、非永続的な接続を通じて管理サーバ３０２に接続するように構成される。モバイルクライアントデバイス３０４は、管理サーバ３０２にダウンロード命令を要求して、モバイルクライアントデバイス３０４によるダウンロード及びインストールが可能な提供物を判定する。管理サーバ３０２によって提示される任意の提供物は、モバイルクライアントデバイス３０４によって行われた前回の成功したダウンロード動作以降利用可能となった１つまたは複数のファイルを表す。モバイルクライアントデバイス３０４は、ユーザが、任意の１つまたは複数の提供物のダウンロード及びインストールを承認、または拒絶することを可能にする。【選択図】　　　　図４
2004062892.tif 000002
【特許請求の範囲】
【請求項１】
モバイルコンピューティングデバイスの構成管理の目的でダウンロード命令を通信するように構成された管理サーバと、
非永続的な接続を通じて前記管理サーバに接続するように構成されたモバイルコンピューティングデバイスであって、前記管理サーバに前記ダウンロード命令を要求し、受信して、前記モバイルコンピューティングデバイスによるダウンロード及びインストールが可能な提供物のセットを判定するようにさらに構成され、前記提供物は、前記モバイルコンピューティングデバイスによって行われた前回の成功したダウンロード動作以降利用可能となった１つまたは複数のファイルを表し、前記モバイルコンピューティングデバイスは、前記提供物の任意の１つまたは複数のダウンロード及びインストールをユーザが承認または拒絶することを可能にするようにさらに構成されたモバイルコンピューティングデバイスと
を備えたことを特徴とするシステム管理フレームワーク。
【請求項２】
前記ダウンロード命令は、個別のメッセージすなわち第１のメッセージ及び第２のメッセージとして前記モバイルコンピューティングデバイスに通信され、第１のメッセージはパッケージ識別リストを含み、第２のメッセージは、前記パッケージ識別リスト中で指定される１つまたは複数のパッケージの詳細なダウンロード命令を含むことを特徴とする請求項１に記載のシステム管理フレームワーク。
【請求項３】
前記モバイルコンピューティングデバイスは、ＸＭＬスキーマに従って前記管理サーバから前記ダウンロード命令を受信するように構成されたことを特徴とする請求項１に記載のシステム管理フレームワーク。
【請求項４】
前記管理サーバと前記モバイルコンピューティングデバイスとの間の通信は、ワールドワイドウェブを通じてセキュアにデータを伝送するセキュアソケットレイヤプロトコルを使用して行われることを特徴とする請求項１に記載のシステム管理フレームワーク。
【請求項５】
前記モバイルコンピューティングデバイスは、ユーザインタフェース（ＵＩ）を介して前記提供物の少なくとも一部を提示するようにさらに構成され、前記ＵＩは、後に前記モバイルクライアントに配信し、前記モバイルクライアントを構成するために、前記一部の提供物をユーザが選択できるようにすることを特徴とする請求項１に記載のシステム管理フレームワーク。
【請求項６】
前記モバイルコンピューティングデバイスは、前回の成功したダウンロード動作の指示を含むデータ発見要求を通信するようにさらに構成され、
前記管理サーバは、前記データ発見要求を受信するのに応答して、
前記指示に基づいて１つまたは複数のファイルを識別し、
前記１つまたは複数のファイルを示すように前記提供物を更新し、
前記ダウンロード命令を前記モバイルコンピューティングデバイスに通信する
ようにさらに構成されたことを特徴とする請求項１に記載のシステム管理フレームワーク。
【請求項７】
前記モバイルコンピューティングデバイスは、
前記ユーザが前記モバイルコンピューティングデバイスに配信するために、前記提供物のうち特定の提供物を選択したことを、判定することと、
前記管理サーバにダウンロード要求メッセージを通信して前記配信を開始することと、
前記管理サーバから前記特定の提供物を含む配信を受信することと
を含む動作を行うようにさらに構成されたことを特徴とする請求項１に記載のシステム管理フレームワーク。
【請求項８】
前記モバイルコンピューティングデバイスは、
前記ユーザがダウンロードのために前記提供物のうち特定の提供物を選択したことを、判定することと、
１つまたは複数のユーザ指定の基準に基づいて、前記特定の提供物のダウンロードをスケジュールすることと、
前記１つまたは複数のユーザ指定の基準の発生に応答して、サーバにダウンロード要求メッセージを通信して前記特定の提供物のダウンロードを開始し、前記サーバが、前記管理サーバから選択されるか、または前記管理サーバとは無関係の異なるサーバであることと、
前記特定の提供物を前記サーバから受信することと
を含む動作を行うようにさらに構成されたことを特徴とする請求項１に記載のシステム管理フレームワーク。
【請求項９】
前記モバイルコンピューティングデバイスは、
前記管理サーバへの接続に関係なくユーザに提示するために前記提供物をローカルキャッシュに保持することと、
提供物のダウンロード及びインストールが成功したのに応答して、前記提供物のうちある提供物に対応する情報を前記ローカルキャッシュから削除することとを含む動作を行うようにさらに構成されたことを特徴とする請求項１に記載のシステム管理フレームワーク。
【請求項１０】
前記モバイルコンピューティングデバイスは、
利用可能な提供物を必要とするかどうかを自動的に判定し、
必要とする提供物を識別するのに応答して、ユーザの対話に依存せずに前記必要とする提供物を自動的にダウンロードし、インストールする
ようにさらに構成されたことを特徴とする請求項１に記載のシステム管理フレームワーク。
【請求項１１】
前記モバイルコンピューティングデバイスは、あらかじめ設定されたイベントの発生に応答して前記管理サーバにデータ発見要求を通信するようにさらに構成され、
前記管理サーバは、前記データ発見要求を受信するのに応答して、前記モバイルコンピューティングデバイスに前記ダウンロード命令を通信するようにさらに構成され、前記ダウンロード命令は、前記提供物のダウンロードを要求するために前記モバイルコンピューティングデバイスによって選択的に実行可能である
ことを特徴とする請求項１に記載のシステム管理フレームワーク。
【請求項１２】
前記あらかじめ設定されたイベントは、前記リモートコンピューティングデバイスのコールドブートであることを特徴とする請求項１１に記載のシステム管理フレームワーク。
【請求項１３】
前記あらかじめ設定されたイベントは、前記ユーザによってスケジュールされることを特徴とする請求項１１に記載のシステム管理フレームワーク。
【請求項１４】
前記あらかじめ設定されたイベントは、無作為に選択される時間に発生するように設計されたことを特徴とする請求項１１に記載のシステム管理フレームワーク。
【請求項１５】
前記モバイルコンピューティングデバイス及び管理サーバは、信頼されないサーバから信頼されるアプリケーションを配信するために複数署名システムを実装するようにさらに構成されたことを特徴とする請求項１に記載のシステム管理フレームワーク。
【請求項１６】
前記モバイルコンピューティングデバイスは、
信頼されるソースのリストを保持する動作と、
前記信頼されるソースリスト中の情報を介して、受信したダウンロード命令を認証する動作と、
受信したダウンロード命令の検証が成功するのに応答して、前記受信したダウンロード命令によって指定される少なくとも１つの場所に１つまたは複数の提供物を要求し、受信する動作と
を行うことによって前記複数署名システムの一部を実装するように構成されたことを特徴とする請求項１５に記載のシステム管理フレームワーク。
【請求項１７】
前記モバイルコンピューティングデバイスは、
信頼されるソースのリストを保持する動作と、
前記信頼されるソースリスト中の情報を介して、受信したダウンロード命令を認証する動作と、
受信したダウンロード命令の検証が成功するのに応答して、前記受信したダウンロード命令によって指定される少なくとも１つの場所に１つまたは複数の提供物を要求し、受信する動作と、
１つまたは複数のセキュリティハッシュ機能を介して、前記１つまたは複数の提供物を認証する動作と
を行うことにより前記複数署名システムの一部を実装するように構成されたことを特徴とする請求項１５に記載のシステム管理フレームワーク。
【請求項１８】
構成管理サーバがモバイルデバイスのリモート構成のためにアプリケーションを配信するための命令を含む１つまたは複数のコンピュータ読み取り可能な記録媒体であって、前記命令は、
前記構成管理サーバと前記モバイルデバイスとの間の非永続的な接続を通じて、モバイルデバイスからデータ発見メッセージを受信するステップであって、前記データ発見メッセージは、前回の成功したダウンロードの時間を示すステップと、
前記データ発見メッセージを受信するのに応答して、前記前回の成功したダウンロードの時間以降少なくとも１つの提供物が配置されていることを判定するステップと、
前記モバイルデバイスが前記少なくとも１つの提供物をダウンロードするための情報を含むダウンロード命令を前記モバイルデバイスに通信するステップと
を備えた動作を行うためにコンピュータによって実行可能であることを特徴とする１つまたは複数のコンピュータ読み取り可能な記録媒体。
【請求項１９】
前記少なくとも１つの提供物は、前記モバイルデバイスに関連付けられたハードウェア及び／またはソフトウェアの属性か、または前記デバイスのユーザの識別に関連付けられることを特徴とする請求項１８に記載の１つまたは複数のコンピュータ読み取り可能な記録媒体。
【請求項２０】
前記ダウンロード命令はＸＭＬスキーマに基づくことを特徴とする請求項１８に記載の１つまたは複数のコンピュータ読み取り可能な記録媒体。
【請求項２１】
前記コンピュータと前記モバイルデバイスとの間の通信は、セキュアなネットワークプロトコルを利用して行われることを特徴とする請求項１８に記載の１つまたは複数のコンピュータ読み取り可能な記録媒体。
【請求項２２】
前記命令は、
前記少なくとも１つの提供物の少なくとも一部に対応するパッケージのダウンロードを要求することを示すアプリケーション配信要求を前記モバイルデバイスから受信するステップと、
前記アプリケーション配信要求を受信するのに応答して、前記パッケージを前記モバイルデバイスに通信するステップと
を備えた動作を行うために前記コンピュータによってさらに実行可能であることを特徴とする請求項１８に記載の１つまたは複数のコンピュータ読み取り可能な記録媒体。
【請求項２３】
プロセッサと、コンピュータプログラム命令を含むメモリとを備えた構成管理サーバであって、前記コンピュータプログラム命令は、要求元のモバイルデバイスにアプリケーションを配信するように設計され、前記プロセッサは、請求項１８に記載の動作を行う前記命令を実行するように構成されたことを特徴とする構成管理サーバ。
【請求項２４】
モバイルデバイスで構成管理を行う方法であって、
サーバによってホストされるＵＲＬからの前回の成功したダウンロードの時間を示す要求を前記サーバに通信するステップと、
前記要求を通信するのに応答して、前記サーバからダウンロード命令のセットを受信するステップであって、前記ダウンロード命令は、スキーマに基づいてフォーマットされ、１つまたは複数の提供物をそこからダウンロードする場所を指示し、前記１つまたは複数の提供物は、前回の成功したダウンロードの時間以降に利用可能となっているステップと、
前記１つまたは複数の提供物の少なくとも１つの提供物に対応する所望の動作を示す選択要求を前記モバイルデバイスのユーザから受信するステップと、
前記ダウンロード命令によって提供される情報に基づいて、前記所望の動作を行うステップと
を備えたことを特徴とする方法。
【請求項２５】
前記モバイルデバイスと前記サーバとの間の通信は、ＨＴＴＰＳなどのセキュアプロトコルを介することを特徴とする請求項２４に記載の方法。
【請求項２６】
前記ＵＲＬは前記場所ではないことを特徴とする請求項２４に記載の方法。
【請求項２７】
前記所望の動作を行うステップは、検討のために前記少なくとも１つの提供物の短い説明または長い説明を前記ユーザに提示することをさらに含むことを特徴とする請求項２４に記載の方法。
【請求項２８】
信頼されるソースリストに情報を追加するか、または情報を削除するための、アプリケーションプログラミングインタフェースを公開するステップと、
信頼されるソースリストに照らして前記ダウンロード命令を認証するステップと
をさらに備えたことを特徴とする請求項２４に記載の方法。
【請求項２９】
前記モバイルデバイスがファイルのダウンロードをスケジュールするために使用できる１つまたは複数のイベントを定義するための、アプリケーションプログラミングインタフェースを公開するステップであって、前記ファイルは受信されるダウンロード命令によって識別されるステップをさらに備えたことを特徴とする請求項２４に記載の方法。
【請求項３０】
前記所望の動作を行うステップは、ローカルにキャッシュされた提供物リストから前記少なくとも１つの提供物を削除することにより、前記ユーザが前記少なくとも１つの提供物に関心がないことを示すことをさらに含むことを特徴とする請求項２４に記載の方法。
【請求項３１】
前記所望の動作を行うことは、
前記場所にダウンロード要求を通信するステップと、
前記ダウンロード要求を通信するのに応答して、前記モバイルデバイスによって前記少なくとも１つの提供物を受信するステップと、
前記少なくとも１つの提供物を１つまたは複数のファイルとして前記モバイルデバイスにインストールするステップと
をさらに備えたことを特徴とする請求項２４に記載の方法。
【請求項３２】
前記所望の動作を行うステップは、
特定の基準に基づいてイベントをスケジュールするステップであって、前記イベントは、前記場所へのダウンロード要求メッセージの通信に対応するステップと、
前記イベントの発生に応答して、前記ダウンロード要求メッセージを前記場所に通信するステップと、
前記ダウンロード要求メッセージを通信するのに応答して、前記モバイルデバイスによって前記少なくとも１つの提供物を受信するステップと
を含むことを特徴とする請求項２４に記載の方法。
【請求項３３】
前記特定の基準は、ユーザ入力、前記ダウンロード命令によって提供されるスケジューリング情報、ハードウェアイベント、及びソフトウェアイベント、の１つまたは複数の任意の組合せに基づくことを特徴とする請求項３２に記載の方法。
【請求項３４】
前記ダウンロード命令を信頼されるソースリストに照らして認証することにより、信頼されないサーバソースから信頼されるデータを受信するステップをさらに備えたことを特徴とする請求項２４に記載の方法。
【請求項３５】
前記モバイルデバイスは、企業ファイアウォールによって保護されないことを特徴とする請求項３４に記載の方法。
【請求項３６】
前記モバイルデバイスのさらなる動作は、
前記ダウンロード命令の信頼性を判定するのに応答して、前記１つまたは複数の提供物の少なくとも一部を要求するステップと、
前記一部を要求するのに応答して、前記一部を前記サーバから受信するステップと、
ハッシュ機能を介して前記一部の信頼性を判定するステップと、
前記一部を認証するのに応答して、前記一部をモバイルデバイスのメモリにインストールするステップと
を備えたことを特徴とする請求項３４に記載の方法。
【請求項３７】
モバイルデバイスの構成管理を行うコンピュータプログラム命令を備えたコンピュータ読み取り可能な記録媒体であって、前記コンピュータプログラム命令は、請求項２４に記載の方法の動作を行うためにコンピュータによって実行可能であることを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項３８】
メモリに結合されたプロセッサを備えたモバイルデバイスであって、前記メモリは、モバイルデバイスの構成管理を行うコンピュータプログラム命令を含み、前記プロセッサは、前記メモリから前記コンピュータプログラム命令をフェッチし、実行して、請求項２４に記載の方法の動作を行うように構成されたことを特徴とするモバイルデバイス。
【請求項３９】
ユーザが、断続的に接続される管理サーバの１つまたは複数の提供物で選択的にモバイルデバイスを構成することを可能にするユーザインタフェース（ＵＩ）であって、
前記ユーザが、前記管理サーバにデータ発見要求を送信することを可能にする第１のＵＩコンポーネントと、
前記モバイルデバイスによる前記管理サーバに関連付けられたＵＲＬからの前回の成功したダウンロード動作以降に前記モバイルデバイスに利用可能となった１つまたは複数の提供物を前記管理サーバが有するかどうかを知らせる第２の領域であって、前記ユーザが、任意の利用可能な提供物を見るか、または無視することを可能にするユーザ選択可能な複数のコンポーネントを含む第２の領域と
を備えたことを特徴とするＵＩ。
【請求項４０】
（ａ）前記１つまたは複数の提供物のうち特定の提供物の、前記管理サーバから前記モバイルデバイスへのダウンロードをスケジュールするため、及び（ｂ）前記特定の提供物の短い説明または長い説明を見るための、ユーザ入力に応答するダイアログボックスコンポーネントをさらに備えたことを特徴とする請求項３９に記載のＵＩ。
【請求項４１】
前記１つまたは複数の提供物のうち特定の提供物の、前記モバイルデバイスへのダウンロードをスケジュールするための１つまたは複数の基準を指定するユーザ入力に応答するダイアログボックスコンポーネントをさらに備え、前記１つまたは複数の基準は、接続性の属性、時間、及びコストの１つまたは複数の任意の組合せに基づくことを特徴とする請求項３９に記載のＵＩ。
【請求項４２】
請求項３９に記載のユーザインタフェースを提示するためにコンピュータによって実行可能なコンピュータプログラム命令を含むことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項４３】
メモリに結合されたプロセッサを備えたコンピューティングデバイスであって、前記メモリはコンピュータプログラム命令を含み、前記プロセッサは、請求項３９に記載のユーザインタフェースを提示する前記コンピュータプログラム命令をフェッチし、実行するように構成されたことを特徴とするコンピューティングデバイス。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、モバイルデバイスのアプリケーション配信及び構成管理のための、システム管理フレームワーク及び構成管理を行う方法に関し、詳細には、モバイルデバイスのリモート構成のためにアプリケーションを配信するためのシステムで使用する、システム管理フレームワーク、記録媒体、構成管理サーバ、構成管理を行う方法、モバイルデバイス、ユーザインタフェース（ＵＩ）、及びコンピューティングデバイスに関する。
【０００２】
【従来の技術】
コンピュータは、職場の一部として不可欠なものになっている。多くの組織では、ほぼすべての従業員が少なくとも１台のコンピュータを使用している。この結果、大規模なビジネスでは通例非常に多数のコンピュータを操作し、維持している。そのようなビジネスでは、メンテナンス作業を可能な程度まで自動化することが重要になる。
【０００３】
幸いなことに、ローカルエリアネットワーク（ＬＡＮ）及びワイドエリアネットワーク（ＷＡＮ）も普及しており、組織の各種コンピュータが、ユーザ認証、ファイル共有、電子メール、及び各種のその他の種のサービスといった中央で提供されるコンピュータサービスを利用することができる。
【０００４】
構成管理システムは、組織内の各種の異なるコンピュータのメンテナンスと管理を自動化するためにネットワーク環境で効果的に使用できるサービスの１タイプを表す。このサービスは、デスクトップコンピュータ、サーバ、及びサーバアプリケーションに関する、集中化されたソフトウェア配布、資産管理、及びリモートのトラブルシューティング用のツールを提供する。マイクロソフト社の「Ｓｙｓｔｅｍｓ　Ｍａｎａｇｅｍｅｎｔ　Ｓｅｒｖｅｒ」は、その目的で設計されたシステムの一例である。
【０００５】
図１に、自動化された構成管理を実装するコンピュータシステム１０の簡略化した一例を示す。このようなシステムは、管理サーバ１２及び複数のクライアントコンピュータ１４を含む。クライアントコンピュータ１４は、ローカルエリアネットワークまたはワイドエリアネットワーク１６を通じて、クライアント間及び管理サーバ１２と通信することができる。
【０００６】
図１には単一のデバイスとして表しているが、管理サーバ１２は、複数の個々のコンピュータまたはサーバからなってもよく、それらは互いに近接させて配置しても、あるいは各種の異なる場所に配置してもよい。
【０００７】
現在のオペレーティングシステム及びアプリケーションソフトウェアは、しばしば、そのオペレーティングシステム及びアプリケーションソフトウェアが常駐するコンピュータの自動化された構成管理のクライアント側サポートを提供する。例えば、Ｍｉｃｒｏｓｏｆｔ　Ｗｉｎｄｏｗｓ（登録商標）　ＸＰ（登録商標）ファミリーのオペレーティングシステムは、ハードウェアコンポーネント及びソフトウェアコンポーネント両方の詳細なインベントリをデータベースに保持し、このデータベースは、そのコンピュータ自体と他のコンピュータ両方のコンポーネントからプログラムによるクエリとデータ照合を行うことができる。Ｗｉｎｄｏｗｓ（登録商標）環境では、この機能はＷｉｎｄｏｗｓ（登録商標）Ｍａｎａｇｅｍｅｎｔ　ＩｎｓｔｒｕｍｅｎｔａｔｉｏｎあるいはＷＭＩとして知られる。変更及び構成管理ソフトウェアは、ＷＭＩ情報を利用して個々のコンピュータのインベントリを入手し、コンピュータの構成を更新または変更すべきかどうかを評価することができる。
【０００８】
オペレーティングシステムによるサポートに加えて、個々のクライアントコンピュータ１４は通例、自動化された構成管理をサポートする特殊目的のソフトウェアを用いて構成される。このようなソフトウェアは通常、特定ベンダによる自動化構成管理システムの実装の一部として設計され、例えばＭｉｃｒｏｓｏｆｔ（登録商標）のＳｙｓｔｅｍｓ　Ｍａｎａｇｅｍｅｎｔ　Ｓｅｒｖｅｒ製品の一部として設計される。この特殊目的ソフトウェアは、クライアントコンピュータのオペレーティングシステムと協働して、管理サーバ１２とともに各種の機能を行う。したがって、自動化構成管理システムのフレームワーク全体には、サーバコンポーネントとクライアントコンポーネントの両方が含まれる。
【０００９】
図２に、Ｍｉｃｒｏｓｏｆｔ（登録商標）のＳｙｓｔｅｍｓ　Ｍａｎａｇｅｍｅｎｔ　Ｓｅｒｖｅｒ製品によって実装される構成管理フレームワークの簡略化した論理コンポーネントを示しており、これにはサーバ１２のコンポーネントと、クライアントコンピュータ１４内に実装されたコンポーネントが含まれる。図のコンポーネントは、フレームワークのインベントリ及びソフトウェア配布機能に関連する。
【００１０】
管理サーバ１２は、クライアントコンピュータ１４に常駐するクライアントインベントリ及び発見コンポーネント２２と協働して動作するサーバインベントリ及び発見コンポーネント２０を有する。クライアントインベントリ及び発見コンポーネント２２は、クライアントコンピュータ１４の識別情報と、ハードウェア及びソフトウェアのインベントリを収集し、その情報をデータベース構造にまとめ、その情報をサーバ１２のサーバインベントリ及び発見コンポーネント２０に提供する。識別情報は、発見データレコードまたはＤＤＲと称されるデータ構造としてパッケージされ、報告される。管理サーバは、この情報をデータベース中に保持して資産管理機能を容易にする。クライアントコンピュータ１４内では、情報の多くは、Ｗｉｎｄｏｗｓ　ＸＰ（登録商標）オペレーティングシステムのＷＭＩ機能を使用して収集する。サーバ１２とクライアントコンピュータ１４間の通信には、自動化構成管理システムの特定の実装に特有の所定プロトコルを利用する。
【００１１】
クライアントコンピュータは可能性としては２００を超えるプロパティを収集し、報告するが、これには次のような詳細が含まれる。
・ディスクドライブの数
・プロセッサのタイプ
・メモリ量
・オペレーティングシステム
・モニタ及びディスプレイの設定
・コンピュータ名及びＩＰ（Ｉｎｔｅｒｎｅｔ　Ｐｒｏｔｏｃｏｌ）アドレス
・接続された周辺機器についての情報
・ネットワークタイプ
・ＢＩＯＳ（Ｂａｓｉｃ　Ｉｎｐｕｔ／Ｏｕｔｐｕｔ　Ｓｙｓｔｅｍ）情報
【００１２】
これに加えて、各クライアントコンピュータは、製造者及びバージョン情報を含む、そのクライアントにインストールされたすべてのソフトウェアアプリケーションのリストを報告する。
【００１３】
管理サーバ１２は、クライアントコンピュータ１４など管理されるコンピュータに、アドバタイズメントとも称するポリシーをプッシュするか、自動的に配布するポリシープッシャ２４を含む。ポリシーは、ダウンロード及びインストールが可能なソフトウェアパッケージを示し、また、示されるソフトウェアパッケージをどのタイプのクライアントがダウンロードし、インストールすべきかを指示する情報も含む。ソフトウェアパッケージは、ファイルの集合であり、それらのファイルをダウンロードし、インストールするための命令を伴う。
【００１４】
クライアントコンピュータ１４は、サーバ１２からポリシーを受け取り、そのポリシーを評価してどのポリシーをクライアントコンピュータ１４に適用（ｔａｒｇｅｔ）するかを決定するポリシーエバリュエータ２６を備える。ポリシーエバリュエータ２６は、あるポリシーをクライアントコンピュータ１４に適用すると決定すると、その情報をクライアントコンピュータ１４のアプリケーションインストールコンポーネント２８に渡す。インストールコンポーネント２８はそのポリシー情報を調べ、関連付けられたソフトウェアパッケージをどのようにダウンロードするかを決定する。そして、インストールコンポーネント２８は、サーバ１２に関連付けられた配布ポイント２９に接続し、ソフトウェアパッケージをダウンロードする。パッケージをダウンロードすると、アプリケーションインストールコンポーネント２８は、ダウンロードしたソフトウェアパッケージに含まれる情報に従って、パッケージされたソフトウェアをインストールする。
【００１５】
Ｍｉｃｒｏｓｏｆｔ（登録商標）のＳｙｓｔｅｍ　Ｍａｎａｇｅｍｅｎｔ　Ｓｅｒｖｅｒなど既存の自動化構成管理システムは、管理されるコンピュータが、高帯域幅ネットワーク接続を通じて実質的に恒久的に管理サーバに接続されたデスクトップまたはその他のコンピュータである、図１に示す従来のネットワーク環境では良好に動作する。しかし、組織内の個々の従業員が、管理サーバとの永続的な高帯域幅接続に加わらない携帯型のコンピューティングデバイスを利用する傾向が高まっており、そうしたデバイスは通例、一般には低速度でしばしば信頼性のない通信経路を通じて不定期あるいは断続的に管理サーバに接続される。
【００１６】
さらに、そのような携帯型またはモバイル型のコンピューティングデバイスは、通例は、従来のデスクトップコンピュータに比べて機能性が限られる。具体的には、携帯情報端末（ＰＤＡ）及びポケットパーソナルコンピュータ（ＰＰＣ）として知られるハンドヘルドデバイスが非常に広く使用されるようになっており、そのユーザはしばしば、電子メールの閲覧や連絡先リストの同期といったタスクを行うためにそのようなデバイスを企業ネットワークに接続する。ネットワーク接続は、関連付けられたデスクトップコンピュータを通じても、または無線及び／またはリモートのアクセス手段を含む独立したネットワーク接続を通じたものでもよい。
【００１７】
多くの組織では、ＰＤＡなどのハンドヘルドデバイスに対する技術サポートを公式には提供していないが、企業のヘルプデスクで受け取るそのようなデバイスに関するサポート呼出しの数は増加している。そのような呼出しは、ハンドヘルドデバイスの構成と、それらのデバイスにインストールされたアプリケーションの新規の更新の入手に関連することが多い。
【００１８】
コンピュータ、または完全なデスクトップ機能よりも機能が少ない（すなわちメモリ及び／または処理リソースが限られた）コンピュータ様のデバイスを多数使用する環境は数多くある。工場の自動化制御装置、電子ＰＯＳ（ｐｏｉｎｔ　ｏｆ　ｓａｌｅ）端末、ガソリンスタンドのポンプなどは、頻繁にネットワーク化されるが、従来のデスクトップコンピュータが持つ完全な機能及びリソースは持たない、一般に使用されるデバイスの例である。Ｍｉｃｒｏｓｏｆｔ（登録商標）社は、Ｗｉｎｄｏｗｓ　ＣＥ（登録商標）オペレーティングシステムと称する、そのようなリソースが限られたデバイス向けの特殊なバージョンのＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムを設計した。
【００１９】
従来は、上述のＰＤＡやその他の例など、断続的に接続されリソースが制限されたモバイルデバイスは、自動化された構成管理に参加することができなかった。企業がモバイルデバイスとそれに対応する技術を採用するにあたっての大きな障害の１つは、そのようなデバイスを構成するための管理オプションの不足である。既存のモバイルデバイスの構成オプションは、サポート費用、そのような構成オプションを実装するために通例必要となる多量のユーザ仲介、及び望ましくないセキュリティの露出（例えば、ＭＩＴＭ（ｍａｎ−ｉｎ−ｔｈｅ−ｍｉｄｄｌｅ）攻撃）の点から実質的に制限される。
【００２０】
例えば、既存の解決策の１つでは、ドッキングされたデバイスにファイルと設定を配置する構成アプリケーションを実行するデスクトップコンピュータにモバイルデバイスを「ドッキング」する必要がある。ドッキングするデバイスは通例、クレードル（ｃｒａｄｌｅ）に置くか、あるいはその他の形でそのホストコンピュータに接続する。別の知られる技術では、ユーザが、モバイルデバイスを介して企業ネットワークまたはインターネットをナビゲートしてダウンロードサイトを見つけ、ファイルダウンロードのハイパーリンクをタップする必要がある。ユーザは、デバイス上の所望の格納場所を指定するように促され、続いてアプリケーションをインストールすることができる。モバイルデバイスを構成するさらに別の既存の構成技術は、デバイスに差し込めるコンパクトフラッシュ（登録商標）（ＣＦ）メモリカードでアプリケーション及び／またはデータを配布するものである。ＣＦカードは、自動的にインストールスクリプトを開始することさえできる。
【００２１】
これらの方法にはそれぞれ独自の利点があるが、どの方法も多量のユーザ対話を必要とし、また（例えば企業ネットワークに）断続的に接続されるデバイスを、時間の経過に伴って更新された状態に保つ単純な方式は提供しない。これらの方法は、１度限りの構成の機会を提供するに過ぎない。この状況をさらに困難にするのは、多くの場合モバイルデバイスはかなり低速度の通信チャネル（例えば＜９６００ボー）を通じて接続され、アプリケーション及びデータの更新が完了するのに相当長い時間がかかることである。
【００２２】
望ましくないセキュリティの露出（例えばＭＩＴＭ攻撃）に関しては、通例従来のモバイルデバイスの構成技術では、悪意をもったユーザがネットワークを通じて移動するデータを傍受し、あるいは変更するセキュリティ侵害からモバイルデバイスまたはリモートデバイス（すなわち企業のファイアウォールで保護されないデバイス）が保護されないことを考えられたい。これは、実際には攻撃者が２エンティティ間のすべてのネットワークトラフィックを傍受しているのに、別のコンピューティングデバイスがクライアントとサーバの両方をだましてそれらが直接互いと通信していると思わせる場合に、クライアントと特定のホストサーバ間のデータ交換が危険にさらされる恐れがあることを意味する。
【００２３】
【発明が解決しようとする課題】
上述した従来技術には、既存のモバイルデバイス構成管理システムの上記及びその他の制限に対処する機構（ａｒｒａｎｇｅｍｅｎｔ）及び手順が必要とされているという点において、未だ改善の余地が残っている。
【００２４】
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、モバイルデバイスのリモート構成のためにアプリケーションを配信し、モバイルデバイスが自動化された構成管理に参加することができる、システム管理フレームワーク及び構成管理を行う方法を提供することにある。
【００２５】
【課題を解決するための手段】
モバイルデバイスのアプリケーション配信及び構成管理のためのシステム管理フレームワークを記載する。このフレームワークは、管理サーバ及びモバイルコンピューティングデバイスを含む。管理サーバは、モバイルコンピューティングデバイスの構成管理の目的でダウンロード命令を通信するように構成される。モバイルコンピューティングデバイスは、非永続的な接続を通じて管理サーバに接続するように構成される。モバイルコンピューティングデバイスは、管理サーバにダウンロード命令を要求して、モバイルコンピューティングデバイスによるダウンロード及びインストールが可能な提供物を判断する。管理サーバによって提示される提供物はいずれも、モバイルコンピューティングデバイスによって行われた前回の成功したダウンロード動作以降に利用可能となった１つまたは複数のファイルを表す。モバイルコンピューティングデバイスは、ユーザが、任意の１つまたは複数の提供物のダウンロードとインストールを承認または拒絶することを可能にする。
【００２６】
一実装では、特定の管理サーバソースにダウンロード命令を要求するようにモバイルデバイスを予め構成する。その特定ソースに対応する認証情報（例えば１つまたは複数のデジタル署名）は、信頼されるソースリストにモバイルデバイスによって保持される。特定ソースにダウンロード命令を要求し、受信するのに続いて、モバイルデバイスは、信頼されるソースリストを介して、受け取った命令を認証する。検証が成功すると、その命令を使用して、検証されたその命令によって指定される少なくとも１つの場所に１つまたは複数の提供物を要求し、受信する。受け取った提供物は、例えば１つまたは複数のセキュリティ機能を介してさらに信頼性を確認する。このようにして、システム管理フレームワークは、モバイルデバイスが企業ファイアウォールによる保護が及ばない範囲で動作する際に、望ましくないセキュリティ露出を実質的に排除する複数署名システムを提供する。
【００２７】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を詳細に説明する。なお、各図面において同様の機能を有する箇所には同一の符号を付している。
【００２８】
図３に、システム管理フレームワーク３００のトップレベル表現を示す。フレームワーク３００は、構成管理システムまたは管理サーバ３０２、及びモバイルクライアントデバイス３０４を備える。管理サーバ３０２とモバイルクライアントデバイス３０４は、配線または無線のネットワーク接続３０６を通じて直接互いと通信する。構成管理システムまたは管理サーバ３０２は、上述のように互換性のある複数のクライアントコンピュータと通信し、それらを管理するように構成される。そのようなクライアントコンピュータが、従来のデスクトップコンピュータなど完全な機能を持つコンピュータである場合、クライアントコンピュータは、上記のように特殊目的のソフトウェアを実行して、構成管理システムによって提供される機能との互換性を提供する。
【００２９】
ただし図３の例では、モバイルクライアントデバイス３０４は、実質的に恒久的なネットワーク接続を管理サーバ３０２と共有しないモバイルクライアントである。モバイルクライアントは、代わりに、ネットワーク接続３０６として表す、しばしば相当に低速度の通信経路を通じて不定期または断続的に管理サーバに接続される。そのようなリモートクライアントデバイスの例には、ラップトップ、ハンドヘルドコンピュータ、ＰＤＡ、工場のオートメーション制御装置、電子ＰＯＳ端末、ガソリンスタンドのポンプ、移動電話などが含まれる。こうしたデバイスの一部は、完全な機能を持つコンピュータに比べて処理及びストレージリソースが限られる可能性がある。モバイルクライアントデバイス３０４のこうした諸面から、モバイルクライアントデバイス３０４のアプリケーション配信及びリモート構成管理に、上述の従来の自動化構成管理またはその他の構成管理の技術を使用することが不可能となるか、あるいは非実際的、不適当となる。
【００３０】
モバイルクライアントデバイス３０４のセキュアなアプリケーション配信と構成管理を容易にするために、モバイルクライアントデバイス３０４と管理サーバ３０２間の通信は、ワールドワイドウェブを通じてセキュアにデータを伝送するＳｅｃｕｒｅ　ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ　Ｔｒａｎｓｐｏｒｔ　Ｐｒｏｔｏｃｏｌ）（ＨＴＴＰＳ；ｈｙｐｅｒｔｅｘｔ　ｔｒａｎｓｆｅｒ　ｐｒｏｔｏｃｏｌ，　ｓｅｃｕｒｅ）などのセキュアソケットレイヤプロトコルを使用して行う。モバイルデバイスは、新たな提供物がないか、１つまたは複数の管理サーバ３０２を周期的にポーリングする。提供物は、１つまたは複数のアプリケーション、データファイル、モバイルクライアントデバイス３０４にロードするインストールスクリプト、またはデバイス３０４にインストールする設定などである。
【００３１】
モバイルクライアントデバイス３０４のスケジューリングコンポーネント３０８は、そのような提供物を求めるポーリングを行う頻度と条件を制御する。新しい提供物が利用可能になるとモバイルクライアントデバイス３０４のユーザに通知され、ユーザがある提供物を承認する場合はアプリケーションが自動的にダウンロードされ、モバイルクライアントデバイス３０４にインストールされる。この説明では、構成管理とは、デバイスに関するインベントリ情報を保持することによりモバイルクライアントデバイス３０４を管理する、モバイルクライアントデバイス３０４にアプリケーションを追加及び削除する、ポーリングイベントをスケジュールする、信頼されるソースを作成するなどの能力である。スケジューリングコンポーネント３０８は、スケジューラアプリケーションプログラミングインタフェース（ＡＰＩ）４３０を公開して、モバイルデバイスにおける構成管理をスケジュール、更新、及びその他の形で管理する。デバイス上のソフトウェアの多くの異なるコンポーネントがこれらの動作をサポートすることができ、一実装では、デバイスの主要なＵＩコンポーネント内に埋め込まれたソフトウェアによってこれらの動作を制御する。別の実装では、プロテクトモードで実行される特殊なセキュアサーバによってこれらの動作がサポートされる。例示的なスケジューラＡＰＩ４３０を下記の付録Ａに示す。
【００３２】
ここに記載する実施形態では、管理サーバ３０２による要求時にモバイルクライアントデバイス３０４に提供されるアプリケーションダウンロード及び構成命令は、拡張マークアップ言語（ＸＭＬ）のデータスキーマに従ってＸＭＬデータとしてフォーマットされる。この一例をこの説明の下記の部分に示す。アプリケーションダウンロード及び構成命令は、クライアントが後にダウンロードすることが可能なアプリケーションを識別するソフトウェアインベントリを含む。より具体的には、ファイルは、モバイルクライアントデバイスでインストールすることが可能なパッケージに対応するパッケージＩＤ（ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）のリストを含む。構成情報は、ハードウェアインベントリも指定することができる。下記で図４〜１１との関連でより詳細に説明するように、管理サーバ３０２など、以下の説明に従ってダウンロード命令を生成し、通信することができるコンピューティングデバイスであれば、いずれも任意数のモバイルクライアントデバイスにセキュアなアプリケーション配信及び構成を提供することができる。
【００３３】
図４に、システム管理フレームワーク３００の論理コンポーネントをより詳細に示す。管理サーバシステム又は管理サーバ３０２は、インベントリ及び発見コンポーネント４０２及び配布コンポーネント４０４を含む。インベントリ及び発見コンポーネント４０２は、資産管理の目的で、複数のモバイルクライアントデバイス３０４から１つまたは複数の電子ファイル４０６として発見データレコードを受け取る。インベントリ及び発見コンポーネント４０２は、対応するクライアントによる前回の成功したポーリング以降の新しい提供物４０８を識別する役割を担う。データ発見レコードは、仮に前回の成功したターゲットリソース（例えば埋め込まれたＵＲＬ（ユニフォームリソースロケータ）によって示される）のプル（ｐｕｌｌ）が行われている場合には、少なくともそれがいつ行われたかの表示を含む。
【００３４】
一実装では、対応するＵＲＬのポーリングがモバイルクライアントデバイス３０４で成功したことがない場合は、最後の成功したポーリングの日付はヌル（ｎｕｌｌ）と表示される。別の実装では、モバイルクライアントはさらに、後にカスタマイズされたダウンロード命令を受け取るために、データ発見レコード４０６とともに、実質的に一意のＩＤ（例えばクッキー）を管理サーバ３０２に通信する。データ発見メッセージとともに含まれる他の情報には、例えば、モバイルクライアントに関連付けられたハードウェア及び／またはソフトウェア属性の指示、モバイルクライアントのユーザの識別などが含まれる。この情報は通例、システム管理者がアクセスできるデータベース（図示せず）に格納される。
【００３５】
図４では提供物４０８が管理サーバ３０２に結合されているが、このような提供物は、モバイルクライアントデバイス３０４に接続することができる任意のサーバデバイスによって配置することができる。
【００３６】
モバイルクライアントデバイス３０４からデータ発見レコード４０６を受け取るのに応答して、インベントリ及び発見コンポーネント４０２は、それに対応するダウンロード命令ファイルを生成する。この命令は、アプリケーションをダウンロードする条件と、そのアプリケーションをダウンロードできるＵＲＬ（ユニフォームリソースロケータ）を示すことができる。ダウンロード命令ファイルは、１つまたは複数の提供物４０８に関する情報を含み、各提供物は、１つまたは複数のファイルのダウンロードを含むことができる。配布コンポーネント４０４は、ダウンロード命令を１つまたは複数の電子ファイル４１０としてモバイルクライアントに通信する。
【００３７】
配布コンポーネント４０４は、モバイルクライアントデバイス３０４が接続して、ダウンロード命令によって識別されるアプリケーションまたはパッケージ（すなわち提供物４０８）をダウンロードすることができる接続ポイントでもある。パッケージは、ファイルの集合であり、そのファイルをダウンロードし、インストールする命令を伴う。
【００３８】
モバイルクライアントデバイス３０４の論理コンポーネントには、ポーリング及び通知コンポーネント４１２、スケジューリングコンポーネント３０８、ダウンロードコンポーネント４１４、インストール命令インタープリタ４１６、及びプログラムまたはパッケージインストールコンポーネント４１８が含まれる。ポーリング及び通知コンポーネントは、管理サーバ３０２にメッセージを個々に通信し、管理サーバ３０２からメッセージを個々に受け取る。通信されるメッセージには、例えば、ダウンロードが可能な１つまたは複数の提供物を識別するデータ発見要求、ダウンロード要求、提供物の配信及びインストールのステータス（例えば成功、失敗、不完了など）などが含まれる。管理サーバからポーリング及び通知コンポーネントによって受け取られるメッセージには、例えばダウンロード命令、及びダウンロードされるパッケージが含まれる。
【００３９】
一実装では、モバイルデバイスに３０４によって通信されるメッセージにはダウンロード命令要求も含まれ、受信されるメッセージには利用可能な提供物を指定するパッケージＩＤリストも含まれる。パッケージＩＤリストは、詳細なダウンロード命令とは別のものである。このような移植については、下記でアプリケーション配信及び構成管理フレームワーク３００の代替の実装を参照してより詳細に説明する。
【００４０】
スケジューリングコンポーネント３０８は、データ発見イベント及びダウンロードイベントをスケジュールし、実行する。一実装では、イベントのスケジュールに使用する所定の基準を予め管理エンティティによって設定して、モバイルクライアントデバイス３０４の構成に積極的なコントロールを提供する。このような予め設定されたイベントは、自動化モードまたは必須モードの動作に対応し、データ発見及び／またはダウンロードイベントを自動的に生成して、ユーザの介在なしに１つまたは複数のパッケージをダウンロードし、インストールする。別の実装では、ポーリング及び通知コンポーネント４１２は、ユーザが動作を指定するためのユーザインタフェース（ＵＩ）コンポーネントを提示し、動作はスケジュールされたイベントに変換されてアプリケーション配信、ダウンロード、及びインストールに対するユーザ制御を提供する。このようなＵＩの一例を、図７〜１０を参照してこの説明の後の部分で説明する。
【００４１】
ポーリング通知コンポーネント４１２は、対応するメッセージを管理サーバ３０２に通信することによりそのようなイベントに応答する。データ発見イベントにより、データ発見レコード４０６が（例えばＨＴＴＰＳで）管理サーバに通信されて提供物ダウンロード命令４１０を入手する。ダウンロードイベントは、ダウンロード要求４２０を管理サーバに通信させる。この説明では、データ発見イベントは一般に周期的な性質なのでしばしばポーリングイベントと呼ぶ。ただし、任意の特定のデータ発見イベントを１回だけ行うようにスケジュールすることもできる。
【００４２】
ポーリング及びダウンロードイベントは、１つまたは複数の所定の基準に基づいてスケジュールされ、この基準には例えば、時間と接続の基準の任意の組合せが含まれる（例えば、高帯域幅接続がある場合には毎月曜の午後３時。あるいは無作為の時間として、複数のモバイルクライアントデバイス３０４からのすべてのデータ配信メッセージが、サーバの処理リソースに負荷をかけないと思われる形で管理サーバ３０２に送信されることを実質的に保証する、など）。この実装では、各イベントを、名前／説明、イベント基準、及び提供物を識別またはダウンロードするためにアクセスするＵＲＬに関連付ける。スケジューリングコンポーネント３０８は、ポーリング及びダウンロードイベントを指定するためにイベント情報のイベントテーブル４２２を保持する。
【００４３】
ポーリング及び通知コンポーネント４１２は、ダウンロード命令ファイル４１０を受信し、構文解析して、開始時間、デルタ時間、及び／または命令に関連付けられたフラグに従って実行するために、スケジューリングコンポーネント３０８とともにダウンロード命令をスケジューリングする。その適切な時に、スケジューラは、ダウンロードコンポーネント４１４に、ダウンロード命令ファイルに記述されたファイルをダウンロードするように命令する。命令／スクリプトインタープリタ４１６は、ダウンロード命令ファイルの「コマンド」パラメータによって示されるコマンドを実行するが、大半の場合はこれによりインストールコンポーネント４１８によるダウンロード済みファイルのインストールが開始される（例えば、ファイルをモバイルクライアントデバイスの適切なディレクトリにコピーし、レジストリ値をロードし、一時ファイルを削除するなど）。
【００４４】
モバイルクライアントデバイス３０４は、ダウンロードしたアプリケーションをインストールするプログラムメモリ４２４と、モバイルクライアントデバイス３０４が、管理サーバ３０２との以前の対話を介してすでにモバイルクライアントデバイスに利用可能となっているアプリケーションまたはパッケージを示す提供物リストを保持またはキャッシュするデータベースまたは他のデータ構造４２６と、管理サーバ３０２から受信したダウンロード命令４１０を認証するための信頼されるソースリスト（「ＴＳＬ」）４２８も備える。提供物リストは、管理サーバへの接続に関係なくリモートクライアントのユーザに提示することができる。リモートクライアントは、リモートクライアントへの提供物のダウンロード及びインストールに応答して、提供物リストから自動的にその提供物を削除するように構成される。
【００４５】
モバイルクライアントデバイス３０４のこれらのコンポーネントは、モバイルクライアントデバイスにインストールされた特殊目的のソフトウェアによって実装し、ＵＲＬまたは他の指定と、認証情報及びクリデンシャルなどの情報を用いて予め構成することができる。これらのコンポーネント間及び管理サーバ３０２との対話については、下記で図５を参照してより詳細に説明する。
【００４６】
図５に、図４に示すフレームワークの方法論的な諸面を示す。図の左側の動作は、モバイルクライアントデバイス３０４のコンポーネントによって行われる。図の右側の動作は、管理サーバ３０２のコンポーネントによって行われる。真中の動作は、管理サーバ３０２の管理者やモバイルクライアントのユーザなどの人間によって行われ、具体的な例は動作に対応する下記の説明で明記する。これらの動作については、要求元のモバイルクライアントにアプリケーションを配布し、インストールすることが求められるシナリオを参照して説明する。例とするアプリケーションは、ｇｏｌｆ．ｃａｂとｇｏｌｆ．ｄａｔの２つのコンポーネントを有する。モバイルデバイスへのインストールには、両コンポーネントを「＼Ｐｒｏｇｒａｍ　Ｆｉｌｅｓ＼Ｆｏｏ」というディレクトリにコピーすることが必要となる。
【００４７】
最初の動作５０２では、２つのプログラムコンポーネント「ｇｏｌｆ．ｃａｂ」と「ｇｏｌｆ．ｄａｔ」を含む配布パッケージを作成する。「ＣＡＢ」ファイルは、プログラムコンポーネントの配布に用いられる一般的なフォーマットであり、要求元のモバイルクライアントデバイスに自動的にインストールするためにそのモバイルクライアントデバイスで開くことができる。あるいはＣＡＢでないパッケージをアセンブルしてもよく、これは、アプリケーションコンポーネントと、インストールタスクを行うためにモバイルクライアントデバイスによって実行できるインストールスクリプトを含むファイル（通例はシステム管理者を務める者によって作成される）とを含む。この例では、ダウンロード命令４１０（下記で表１を参照してより詳細に説明する）は、インストール命令を含む。
【００４８】
ユーザは、１つまたは複数の配線及び無線ネットワークの任意の組合せを通じて、モバイルクライアントデバイス３０４を管理サーバ３０２に接続する。動作５０４で、ユーザは、ポーリングイベントを生成して、管理サーバに利用可能な提供物４０８のリストを要求する。あるいは、ポーリングイベントは、特定の事態の発生（例えばモバイルクライアントのコールドブート、ログオンイベントなど）に応答して自動的に生成しても、かつ／またはスケジューリングコンポーネント３０８によって決定される１つまたは複数の予め設定された間隔で生成してもよい。一実装では、例えば、コールドブート時に特定の管理サーバ３０２に利用可能な提供物４０８のリストを要求するように、予めスケジューラコンポーネントを構成する。
【００４９】
動作５０８で、図４のインベントリ及び発見コンポーネント４２０は、データ発見レコード４０６を受け取る。この情報を受け取るのに応答して、インベントリ及び発見コンポーネントは、受け取ったデータ発見レコードで提供される情報に基づいてダウンロード命令ファイル４１０を生成する動作５１０を行う。生成されるダウンロード命令ファイルには、対象となる提供物４０８またはパッケージをモバイルクライアントデバイス３０４によってダウンロードする方式、時間、ダウンロード元、及び条件に関する各種のパラメータが含まれる。
【００５０】
一実装では、このパラメータには次の要素が含まれる。
・ヘッダ
・内容ブロック
○ＩＤ（ＧＵＩＤ）
○ステータスリポート用の応答ＵＲＬ（任意選択）
・ダウンロード命令
○ソース名
○提供物名
○提供物のサイズ（例えばバイト単位）
○提供物の価格
○短い説明及び／または長い説明
○モバイルクライアントのユーザに提示するダウンロード命令
○ネットワーク−そのダウンロードを送信するのに好ましいトランスポート
○再発生の間隔
○エラー回復のための再試行間隔（例えばデフォルト＝６０秒）
○再試行の制限（例えばデフォルト＝５回）
○開始時間またはデルタ時間（ＧＭＴ）
○フラグ（接続タイプまたは接続クラス）
○ダウンロードタイプ（例えばＲＯＭ更新、ＣＡＢファイルなど）
○必須であるか（ＹＥＳまたはＮＯ。デフォルトはＮＯ）
○ファイルの記述
★ソースＵＲＬ
★デバイス上の行先（完全に限定されたパスとしてのファイルの場所）
★署名（ファイルの署名付きハッシュ）
○ダウンロード後にデバイスで実行するコマンド（任意選択）
【００５１】
「内容」ブロックは、命令ファイル４１０の内容に関連する情報を含み、この情報には、モバイルクライアントデバイス３０４が下記で挙げる諸動作の成功または失敗を報告すべきＵＲＬが含まれる。「ダウンロード命令」は、モバイルクライアントが、データ発見イベントなどのポーリングイベントを周期的に管理サーバ３０２に送信する間隔を識別する「再発生間隔」を指定する。この他の「ダウンロード命令」には、「開始時間」または「デルタ時間」（動作を開始するまでの時間間隔）のどちらかと、ダウンロードの進行を許可すべき条件を示す「フラグ」が含まれる。フラグは、例えば、高速ネットワークを通じてネットワークに接続されているなど、特定の通信機能がある場合のみダウンロードを開始することを指示することができる。別の例として、フラグは、モバイルクライアントが（電池電源ではなく）ＡＣ電源に接続されている場合にのみダウンロードを開始することを示すことができる。この例では「フラグ」を使用して各種の情報を指示するが、このような情報は、ＸＭＬタグによるなど異なる方式で表すこともできる。
【００５２】
「必須」パラメータは、そのパッケージをモバイルクライアントデバイス３０４にインストールすることが必須であるかどうかを示す。「ファイル記述」は、モバイルクライアントにコピーするファイルのソース及び宛先の場所と、そのファイルの署名を示す。「コマンド」パラメータは、先に命令ファイルで指定されたファイルのコピーが成功した後にモバイルクライアントデバイスによって実行すべきコマンドを識別する。
【００５３】
動作５１２で、配布モジュール４０４は、生成したダウンロード命令を１つまたは複数の電子ファイル４１０としてモバイルクライアントデバイス３０４に通信する。ダウンロード命令ファイルは、データベース４０８によって施行されるＸＭＬスキーマに従ってモバイルクライアントに報告することが好ましい。そのようなＸＭＬスキーマの一例を下記の付録Ａに示す。（図４では提供物データを格納する提供物データベース４０８の一部として示しているが、ＸＭＬスキーマは提供物データと別に格納してもよい。）
表１に、付録ＡのＸＭＬスキーマに従ってフォーマットした実際のデータの例を示す。このＸＭＬデータは、通例はＨＴＴＰＳポストとしてモバイルクライアントデバイス３０４に通信される例示的なダウンロード命令ファイルを表す。説明のために、ダウンロード命令ファイル中の太字体の文字は、可変のデータ値の例を表している。
【００５４】
2004062892.tif 000003
2004062892.tif 000004
【００５５】
上記表１の例示的なダウンロード命令は、Ｇｏｌｆの「値ＩＳＶ」からの提供物を例示している。この命令は、「＼Ｐｒｏｇｒａｍ　Ｆｉｌｅｓ＼ｆｏｏ」ディレクトリに２つのファイルをダウンロードすることを示している。ダウンロードの開始時間は、＜Ｄｏｗｎｌｏａｄ　ＳｔａｒｔＴｉｍｅ＞タグのデータによって識別される。ダウンロードは、＜Ｒｅｏｃｃｕｒ　Ｔｉｍｅ＞タグのデータによって示されるように、周期的に繰り返し行うように指定される。時間は、Ｉｎｔｅｌシステム時間フォーマットで表される。プログラム「ｇｏｌｆ．ｃａｂ」は、ダウンロードの完了後に実行される。
【００５６】
動作５１４で、モバイルクライアントデバイス３０４のサーバポーリング及び通知コンポーネント４１２は、管理サーバ３０２からダウンロード命令４１０を受け取る。一実装では、ダウンロード命令は、スケジューリングコンポーネント３０８が、モバイルクライアントに格納される提供物リスト４２６から期限切れの項目を削除するための情報を含む。これは、任意選択のダウンロード命令タグ「Ｓｕｐｅｒｃｅｄｅｓ」を介し、このタグは、置き換えられる提供物のセットをその「Ｏｆｆｅｒｉｎｇ　Ｎａｍｅ」によって示す。置き換えられた提供物は、提供物リストから削除される。
【００５７】
動作５１６で、モバイルクライアントアプリケーションのダウンロードがセキュアな状態を保つように、ファイル検証及びユーザ許可コンポーネント４３４は、そこからのダウンロード命令はセキュアかつ信頼できるものとみなす１つまたは複数の信頼されるソースに照らして、受け取ったダウンロード命令のデジタル署名（すなわち主張される識別）を確認する。そのような信頼されるソースは、ＴＳＬ４２８に格納される。ＴＳＬは、例えば、信頼されるアプリケーション配信サーバとそれらの公開鍵の一覧である。スケジューリングコンポーネント３０８は、スケジューラＡＰＩ４３０を介して１つまたは複数のインタフェースを公開して、ＴＳＬの内容を更新し、その他の形で管理する。例示的なスケジューラＡＰＩ４３０を下記の付録Ａに示す。
【００５８】
一実装では、ＴＳＬ４２８は、ＲＤＮ（名前）、公開鍵などを含む管理サーバ３０２のＸ．６００証明書を含む。ＴＳＬ中の証明書は、意図的または偶然にＴＳＬから削除することができるが、そのような削除された証明書を単に別の鍵に置き換えることはできない。これにより、モバイルクライアントデバイス３０４のアプリケーション配信がセキュアに保たれることが保証される。さらに、特定の信頼されるソースの証明書が意図的または偶然にＴＳＬから削除された場合でも、モバイルクライアントの不揮発性メモリの一部が予めそのように構成されていれば、モバイルクライアントデバイス３０４のコールドブートにより、削除された証明書を回復することができる。
【００５９】
動作５１８で、ファイル検証及びユーザ許可コンポーネント４３４は、受け取ったダウンロード命令４１０が信頼できるものであるかどうかを判定する。信頼できない場合、手順は、動作５０４に示すようにデータ発見イベントなど別のスケジュールされるイベント（またはその他のイベント）を待つ。これに対し、信頼できると認められるダウンロード命令セットを受け取るのに応答して、動作５２０で、スケジューリングコンポーネント３０８は、利用可能な提供物があればそれをモバイルクライアントデバイス３０４のユーザに通知する。新しいダウンロードが可能になると、スケジューリングコンポーネント３０８は、受け取ったダウンロード情報４１０をメモリに格納する（例えば提供物データストア４２６に）。
【００６０】
動作５２２で、ユーザはユーザインタフェース（ＵＩ）を介して、新しい提供物を見るか、あるいは無視するかを指定する。このＵＩの一例を下記で図７〜１０を参照して説明する。動作５２４でその提供物を無視すると決定すると、手順５００は、次ページの指示「Ａ」で示すように進行する。動作５２６ではユーザがその提供物を見ることを選択しており、ＵＩを介して閲覧し、対話するために、指示される各ダウンロード提供物が対応するステータスとともにユーザに提示される。対応するステータスは、例えば、特定の提供物の新しさまたは公示の表示（例えば「新しい」、公示された日付など）、ダウンロード進行の表示（例えばダウンロードが承認済み、進行中、インストール済みなど）などを示すことができる。次ページ指示「Ｂ」で示すように、手順は図６の動作６０２に続く。
【００６１】
図６に、図４のフレームワークを介したアプリケーション配信及びリモート構成管理を行う例示的手順５００のさらなる側面を示す。図６の左側の動作は、モバイルクライアントデバイス３０４のコンポーネントによって行われる。図の右側の動作は、管理サーバ３０２のコンポーネントによって行われる。真中の動作は、モバイルクライアントのユーザによって行われる。これらの動作は、図５のシナリオを参照して説明する。
【００６２】
動作６０２で、ユーザは１つまたは複数の特定の提供物を承認または拒絶する。ユーザがこれを行う例示的ＵＩ７００については、下記で図７〜１０を参照してより詳細に説明する。動作６０４で、モバイルデバイスは、モバイルクライアントデバイス３０４のユーザが提供物４０８を許可しているかどうかを判定する。いずれにせよ、提示される各個々の提供物のダウンロード命令４１０は、サーバでその提供物の有効期限が切れるまで、またはユーザがリストにある提供物を確認するか、拒絶するまで、スケジューリングコンポーネント３０８によって格納される。ユーザが提示される１つまたは複数の各提供物を拒絶した場合は、手順５００は、（次ページ指示「Ａ」で示すように）図５の動作５０４に示すデータ発見イベントなど、スケジュールされるイベントまたはスケジュールされないイベントがプロセスするのを待つ。
【００６３】
ユーザが提供物を確認すると、動作６０６で、スケジューリングコンポーネント３０８は、ダウンロード命令で指定される場所から確認された提供物を取り出すダウンロードイベントをスケジュールする。ダウンロードイベントは、ユーザ指定の基準に従ってスケジュールしても、開始時間、デルタ時間、及び／またはダウンロード命令に関連付けられたフラグに従ってスケジュールしてもよい。ダウンロードイベントは、直ちに起動しても、特定の接続条件（例えばモバイルクライアントがドッキングされたとき）など１つまたは複数の所定の基準に基づいてスケジュールしてもよい。
【００６４】
イベント６０８で、スケジューリングコンポーネント３０８は、動作６０６のスケジュールに従って、スケジュールされるダウンロードイベントを生成する。動作６１０で、生成されたダウンロードイベントを検出すると、ダウンロードコンポーネント４１４は、ダウンロード要求を１つまたは複数の電子ファイル４２０として（例えばＨＴＴＰＳ／ＩＰにより）管理サーバ３０２に通信する。動作６１２で、管理サーバの配布コンポーネント４０４は、通信されたダウンロード要求を受け取る。ダウンロード要求の受け取りに応答して、配布コンポーネントは動作６１４で、要求される提供物４０８をフェッチし、１つまたは複数の電子ファイル４３２としてモバイルクライアントデバイス３０４に通信する。
【００６５】
動作６１６で、ダウンロードコンポーネント４１４は、通信された提供物４０８を管理サーバ３０２から受け取る。ダウンロードコンポーネントは動作６１８でダウンロードの署名（例えばハッシュ）を検証し、ダウンロードしたファイルを命令インタープリタ４１６に渡す。動作６２０で、命令インタープリタは、ダウンロード命令ファイル４１０の任意選択の「コマンド」パラメータによって示されるコマンドを実行し、大半の場合はこれによりインストールコンポーネント４１８によるダウンロード済みファイルのインストールが開始される。アプリケーション及び／または構成設定のインストールが成功すると、動作６２２で、通知エンジン４１２を介してインストールの完了をユーザに通知する。一実装では、モバイルクライアントのアプリケーション配信及びリモート構成動作の成功／失敗のステータスメッセージ（図示せず）により、サーバにも通知する。
【００６６】
アプリケーション配信及びモバイルデバイス構成のための例示的ＵＩ
図７〜１０に、コンピューティングデバイスのアプリケーション配信及び構成を行うために、モバイルクライアントデバイス３０４などのクライアントコンピューティングデバイスによって提示される例示的なユーザインタフェース（ＵＩ）７００の諸面を示す。詳細には、図７には、ユーザが管理サーバ３０２に新しい提供物４０８を要求するＵＩの一部を示す。ダウンロードアイコン７０２は、ユーザによって選択されると、上述のようにスケジューリングコンポーネントから管理サーバにデータ発見レコード４０６を送信させる。新しい提供物のリストを入手するためのクエリの提出に続いて、「Ｄｏｗｎｌｏａｄ　ｒｅｑｕｅｓｔ（ダウンロード要求）」と記されたバブルメニュー７０４により、データ発見要求が管理サーバに送信されたことをユーザに知らせ、さらにサーバからの応答を待っている最中であることを知らせる。
【００６７】
図８には、新しい提供物４０８がクライアントにダウンロード可能であることをモバイルクライアントデバイス３０４のユーザに知らせるモバイルクライアントＵＩ７００の例示的側面を示す。具体的には、バブルメニュー７０４により、管理サーバ３０２からダウンロードする新しい提供物があることをユーザに知らせ、この例のバブルテキストは「Ｎｅｗ　ｄｏｗｎｌｏａｄｓ　ａｒｅ　ａｖａｉｌａｂｌｅ（新しいダウンロードが可能）」となっている。それ以外の場合は、バブルテキストは、（ある場合には）前回のダウンロード要求をモバイルクライアントから受信して以降新たな提供物が管理サーバに公示されてないことを知らせる。
【００６８】
さらに、管理サーバ３０２から新しい提供物がユーザによってダウンロードできる状態となると、バブルメニュー７０４は、その提供物を見るか、またはその提供物の通知を却下するための少なくとも２つのユーザによる選択が可能なボタンを提示する。この例では、このボタンはそれぞれ、「Ｖｉｅｗ　Ｏｆｆｅｒｉｎｇｓ（提供物を見る）」及び「Ｉｇｎｏｒｅ（無視する）」と記されている。ユーザは、これらのボタンを介して、可能なさらなるユーザ対話（例えばダウンロードやさらなる情報の要求など）を行うために利用可能な提供物の提示を要求するか否かを指定することができる。ユーザ動作は、ペンやマウスなどのポインティングデバイス、または音声コマンドによるなど他の技術を介して指定することができる。
【００６９】
図９に、モバイルクライアントデバイス３０４へのダウンロードが可能な利用可能な提供物のリストを提示し、対話を行うための例示的な提供物ダイアログボックス９０２を示す。このダイアログボックスは、図８の「Ｖｉｅｗ　ｏｆｆｅｒｉｎｇｓ」ボタンをユーザが選択するのに応答して提示されるＵＩの一例である。この例では、「Ｐｏｃｋｅｔ　Ｗｅｂ　Ｂｒｏｗｓｅｒ　ＳｅｃｕｒｉｔｙＰａｔｃｈ」と、上述の表１の例示的ダウンロード命令で指定されるような「Ｇｏｌｆ」アプリケーションの２つの提供物がユーザに提示されている。ダイアログ９０２で提示される提供物リストは、ユーザがそれをスタンドアロンアプリケーションとして開くか、または提供物データ４２６によって表される、格納された提供物リストが空である場合には、「ｎｏ　ｏｆｆｅｒｉｎｇｕ（提供物はない）」と表示する。
【００７０】
この例では、ユーザは、ダイアログ９０２で提示される提供物リスト中の提供物の上で行うタップとホールドのユーザ動作により、「Ａｃｃｅｐｔ．．．」のポップアップメニュー９０４からダウンロードのオプションを選択することができる。例えば、ユーザは、提供物「Ｐｏｃｋｅｔ　Ｗｅｂ　Ｂｒｏｗｓｅｒ　Ｓｅｃｕｒｉｔｙ　Ｐａｔｃｈ」の上でタップ及びホールド動作を行うと、メニュー項目「Ａｃｃｅｐｔ」を通じてその提供物を直ちに（例えばデフォルト）ダウンロードするか、例えばメニュー項目「Ａｃｃｅｐｔ　Ｗｈｅｎ　Ｄｏｃｋｅｄ（ドッキング時に受け入れ）」を介してその提供物を後にダウンロードすることができる。一実装では、ダイアログ９０２はさらに、ユーザがリストにある提供物を迅速かつ簡単に処分できる「ｒｅｊｅｃｔ　ａｌｌ（すべて拒否）」ボタンなどのボタンを含む。
【００７１】
図１０に、例示的なアプリケーション配信及びリモート構成ＵＩ７００のさらなる側面を示す。詳細には、図１０にはダイアログ１００２を示しており、これは、詳細（例えば提供物の短い説明または長い説明）、及び／またはダウンロードオプションをユーザに示すために提示される。一実装では、このダイアログボックスは、特定の提供物の上で行うユーザの（タップとホールドではなく）タップ動作に応答して提示される。
【００７２】
例示的動作環境
図１１に、アプリケーション配信及びリモート構成管理のシステム及び手順を実施することができる例示的な動作環境１１００を示す。上述の管理サーバ３０２及びモバイルクライアント３０４のコンポーネント及び機能は、１つまたは複数の個々のコンピュータによって個々に実装される。図１１に、参照符号１１０６で示すそのようなコンピュータの典型的な例の構成要素を示す。図１１に示す構成要素は例に過ぎず、本発明の範囲及び機能に関して何らの限定を示唆するものではない。本発明は、必ずしも図１１に示す諸機能に依存しない。
【００７３】
一般には、各種の異なる汎用または特殊目的のコンピューティングシステム構成を使用することができる。本発明に使用するのに適している可能性があるよく知られるコンピューティングシステム、環境、及び／または構成の例には、これらに限定しないが、モバイルクライアントデバイス、パーソナルコンピュータ、サーバコンピュータ、ラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ネットワークＰＣ（ｐｅｒｓｏｎａｌ　ｃｏｍｐｕｔｅｒ）、ミニコンピュータ、メインフレームコンピュータ、分散コンピューティング環境、上記のシステムまたはデバイスのいずれを含む完全なデスクトップデバイスに比べて機能が少ないコンピューティングデバイスなどが含まれる。
【００７４】
コンピュータの機能は、多くの場合は、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令によって実現される。一般に、プログラムモジュールには、特定タスクを行うか、特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。タスクは、通信ネットワークを通じてリンクされたリモートの処理装置によって行うこともできる。分散コンピューティング環境では、プログラムモジュールはローカル及びリモート両方のコンピュータ記憶媒体に配置することができる。
【００７５】
命令及び／またはプログラムモジュールは、様々なときに、コンピュータの一部であるか、コンピュータによって読み取ることが可能な各種のコンピュータ可読媒体に格納される。プログラムは通例、例えばフロッピー（登録商標）ディスク、ＣＤ（ｃｏｍｐａｃｔ　ｄｉｓｃ　［ｄｉｓｋ］）−ＲＯＭ（ｒｅａｄ　ｏｎｌｙ　ｍｅｍｂｅｒ）、ＤＶＤ（ｄｉｇｉｔａｌ　ｖｅｒｓａｔｉｌｅ　ｄｉｓｃ　［ｄｉｓｋ］）、あるいは変調信号などの何らかの形態の通信媒体で配布される。プログラムはそこからコンピュータの２次メモリにインストールまたはロードされる。実行時に、プログラムは少なくとも部分的に、コンピュータの主要な電子メモリにロードされる。ここに記載する本発明は、そうした媒体が、マイクロプロセッサまたは他のデータプロセッサと協働して上述のステップ及び動作を実施する命令、プログラム、及び／またはモジュールを含む場合に、上記及びその他の各種タイプのコンピュータ可読媒体を含む。本発明はまた、上述の方法及び技術に従ってプログラムされた場合にはコンピュータ自体も含む。
【００７６】
例証のために、この図ではオペレーティングシステムなどのプログラム及び他の実行可能プログラムコンポーネントは個別のブロックとして示しているが、こうしたプログラム及びコンポーネントは、様々なときに、コンピュータの様々なストレージコンポーネントに常駐し、コンピュータのデータプロセッサによって実行されることが認識される。
【００７７】
図１１を参照すると、コンピュータ１１０６の構成要素には、これらに限定しないが、プロセッサ１１１４、システムメモリ１１１６、及びシステムメモリを含む各種のシステムコンポーネントをプロセッサ１１１４に結合するシステムバス１１２１が含まれる。システムバス１１２１は、各種のバスアーキテクチャの任意のものを使用したメモリバスまたはメモリコントローラ、ペリフェラルバス、及びローカルバスを含む数タイプのバス構造のいずれでもよい。これらに限定しないが、例として、このようなアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ　Ｓｔａｎｄａｒｄ　Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（ＭｉｃｒｏＣｈａｎｎｅｌ　Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ　ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ　Ｅｌｅｃｔｒｏｎｉｃｓ　Ｓｔａｎｄａｒｄｓ　Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、及びメザニンバスとも称されるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ　Ｃｏｍｐｏｎｅｎｔ　Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスが含まれる。
【００７８】
コンピュータ１１０６は通例各種のコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０６がアクセスできる任意の利用可能媒体でよく、揮発性及び不揮発性の媒体、リムーバブル及びノンリムーバブル媒体が含まれる。これに限定しないが、例としてコンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含むことができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または技術に実装された揮発性及び不揮発性の媒体、リムーバブル及びノンリムーバブルの媒体が含まれる。コンピュータ記憶媒体には、これらに限定しないが、ＲＡＭ（ｒａｎｄｏｍ　ａｃｃｅｓｓ　ｍｅｍｏｒｙ）、ＲＯＭ、ＥＥＰＲＯＭ（ｅｌｅｃｔｒｉｃａｌｌｙ　ｅｒａｓａｂｌｅ　ｐｒｏｇｒａｍｍａｂｌｅ　ｒｅａｄ−ｏｎｌｙ　ｍｅｍｏｒｙ）、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、あるいは、所望の情報の記憶に用いることができ、コンピュータ１１０６によるアクセスが可能な任意の他の媒体が含まれる。通信媒体は、通例、搬送波または他の搬送機構などの変調データ信号にコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを実施し、任意の情報伝達媒体を含む。用語「変調データ信号」とは、信号中に情報を符号化するような方式でその特性の１つまたは複数を設定または変化させた信号を意味する。例として、通信媒体には、配線ネットワークまたは直接配線接続などの配線媒体と、音響、ＲＦ（ｒａｄｉｏ　ｆｒｅｑｕｅｎｃｉｅｓ）、赤外線、及び他の無線媒体などの無線媒体が含まれるが、これらに限定しない。上記の媒体のいずれの組合せもコンピュータ可読媒体の範囲に含めるべきである。
【００７９】
システムメモリ１１１６には、読み取り専用メモリ（ＲＯＭ）１１１８及びランダムアクセスメモリ（ＲＡＭ）１１２０など、揮発性及び／または不揮発性メモリの形態のコンピュータ記憶媒体が含まれる。起動時などにコンピュータ１１０６内の要素間の情報転送を助ける基本ルーチンを含む基本入出力システム１１２２（ＢＩＯＳ）は、通例ＲＯＭ１１１８に記憶される。ＲＡＭ１１２０は通例、プロセッサ１１１４から即座にアクセス可能な、かつ／または現在のプロセッサ１１１４によって操作中のデータ及び／またはプログラムモジュールを含む。これらに限定しないが、例として、図１１にはオペレーティングシステム１１３６、アプリケーションプログラム１１３８、他のプログラムモジュール１１４２、及びプログラムデータ１１４４を示している。
【００８０】
コンピュータ１１０６を図４の管理サーバ３０２として実装する場合、アプリケーションプログラム１１３８は例えば、インベントリ及び発見コンポーネント４０２と配布コンポーネント４０４を含む。同様の実装で、プログラムデータ１１４４は、例えば、モバイルクライアントコンピュータ３０４から受信したデータ発見メッセージ４０６、モバイルクライアントで利用可能な１つまたは複数の提供物を知らせるダウンロード命令４１０、ダウンロード命令の意味及び構文を強制させるスキーマ４０８、及び１つまたは複数の電子ファイルまたはパッケージとしてモバイルクライアントに配布する提供物４０８を含む。
【００８１】
コンピュータ１１０６を図４のモバイルクライアントコンピュータ３０４として実装する場合、アプリケーションプログラム１１３８は、例えば、ポーリング及び通知コンポーネント４１２、スケジューリングコンポーネント３０８、ダウンロードコンポーネント４１４、命令／スクリプトインタープリタ４１６、インストーラコンポーネント４１８、及びスケジューラのファイル検証及びユーザ許可コンポーネント４３４を含む。同様の実装で、プログラムデータ１１４４は、例えば、（ａ）管理サーバ３０２に通信するデータ発見メッセージ４０６、（ｂ）管理サーバから受信し、提供物データ４２６として保存されるダウンロード命令４１０、（ｃ）管理サーバから受信したデータを認証するための信頼されるソースリスト４２８、（ｄ）元は１つまたは複数のファイルまたはパッケージ４３２として管理サーバから受信したダウンロード済みアプリケーション４２４、及び（ｅ）管理サーバに通信するデータ発見メッセージ及びダウンロード要求をスケジュールするための情報を格納するポーリング及びダウンロードイベント記述テーブルであるイベントテーブル４２２、を含む。
【００８２】
コンピュータ１１０６は、他のリムーバブル／ノンリムーバブル、揮発性／不揮発性のコンピュータ記憶媒体も含むことができる。単なる例として、図１１には、ノンリムーバブル、不揮発性の磁気媒体の読み取りまたは書き込みを行うハードディスクドライブ１１２４、リムーバブル、不揮発性の磁気ディスク１１２８の読み取りまたは書き込みを行う磁気ディスクドライブ１１２６、及びＣＤ−ＲＯＭや他の光媒体などのリムーバブル、不揮発性の光ディスク１１３２の読み取りまたは書き込みを行う光ディスクドライブ１１３０を示す。例示的動作環境で使用できるこの他のリムーバブル／ノンリムーバブル、揮発性／不揮発性のコンピュータ記憶媒体には、これらに限定しないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれる。ハードディスクドライブ１１２４、磁気ディスクドライブ１１２６、及び光ディスクドライブ１１３０は通例、インタフェース１１３４などの１つまたは複数の固定またはリムーバブルなメモリインタフェースによってシステムバス１１２１に接続される。
【００８３】
上記で説明し、図１１に示すドライブとそれに関連付けられたコンピュータ記憶媒体は、コンピュータ１１０６のコンピュータ可読命令、データ構造、プログラムモジュール、及びその他のデータの記憶を提供する。例えば図１１では、ハードディスクドライブ１１２４にオペレーティングシステム１１３７、アプリケーションプログラム１１３９、他のプログラムモジュール１１４３、及びプログラムデータ１１４５を格納している。これらのコンポーネントは、オペレーティングシステム１１３６、アプリケーションプログラム１１３８、他のプログラムモジュール１１４２、及びプログラムデータ１１４４と同じものでも、異なるものでもよいことに留意されたい。この図では、それらが少なくとも異なるコピーであることを示すために異なる符号をつけている。ユーザは、キーボード１１４６や、一般的にはマウス、トラックボール、あるいはタッチパッドと称するポインティングデバイス１１４８などの入力装置を通じてコンピュータ１１０６にコマンド及び情報を入力することができる。他の入力装置（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどがある。これら及び他の入力装置は、システムバスに結合されたユーザ入力インタフェース１１５０を通じてプロセッサ１１１４に接続することが多いが、パラレルポート、ゲームポート、あるいはユニバーサルシリアルバス（ＵＳＢ）など他のインタフェース及びバス構造によって接続することも可能である。モニタ１１５２または他タイプの表示装置も、ビデオインタフェース１１３０８などのインタフェースを介してシステムバス１１２１に結合される。コンピュータは、モニタに加えて、スピーカやプリンタなど他の周辺出力装置（図示せず）も含むことができ、それらは出力周辺インタフェース１１５５を通じて接続することができる。
【００８４】
コンピュータは、リモートコンピュータ１１０２など１つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク環境で動作するように設計される。リモートコンピュータ１１０２は、モバイルクライアントデバイス、パーソナルコンピュータ、管理サーバ、ルータ、ネットワークＰＣ、ピアデバイス、またはその他の一般的なネットワークノードでよく、図１１にはメモリ記憶装置１１６９しか示していないが、通例は、上記でコンピュータ１１０６との関連で挙げた要素の多くまたはすべてを含む。図１１に示す論理接続には、ローカルエリアネットワーク（ＬＡＮ）１１５７とワイドエリアネットワーク（ＷＡＮ）１１５９が含まれるが、ホームネットワーク、組織内のイントラネットなど他のネットワークを含むことも可能である。このようなネットワーキング環境は、オフィス、企業内のコンピュータネットワーク、イントラネット、及びインターネットに一般的に見られる。
【００８５】
ＬＡＮネットワーキング環境で使用する場合、コンピュータ１１０６はネットワークインタフェースまたはアダプタ１１６６を通じてＬＡＮ１１５７に接続される。ＷＡＮネットワーキング環境で使用する場合、コンピュータ１１０６は通例、インターネットなどのＷＡＮ１１５９を通じて通信を確立するためのモデム１１５８またはその他の手段を含む。モデム１１５８は内蔵型でも外付け型でもよく、ユーザ入力インタフェース１１５０または他の適切な機構を介してシステムバス１１２１に接続することができる。ネットワーク環境では、コンピュータ１１０６との関連で図示したプログラムモジュール、またはその一部はリモートのメモリ記憶装置に格納することができる。これに限定しないが、例として図１１では、リモートアプリケーションプログラム１１６９が、コンピュータ１１０２に結合されたメモリ装置に常駐している。図のネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用できることは理解されよう。
【００８６】
リソースが限られたモバイルクライアントデバイス３０４は、より制限された規模ではあるが、図１１に示す技術と同様の技術を使用して実装する。さらに、ＰＤＡ、携帯電話、ポケットＰＣなどのリソースが限られたモバイルクライアントデバイスは、通例、図１１に示す機能をすべて備えることはない。例えば、リソースが限られたクライアントは、しばしば、フロッピー（登録商標）ディスクやＣＤ−ＲＯＭなどのリムーバブルの磁気媒体用のハードドライブを備えない。そのようなクライアントは通例、メモリ容量がはるかに少なく、表示装置及びキーボードがより小さく、プロセッサは速度が遅いか、能力が低い。さらに、そのようなデバイスの多くは、ハードディスクの代わりに電子的なフラッシュメモリを備える。また、リソースが制限されたデバイスは通例、デスクトップオペレーティングシステムでサポートされる完全な機能のセットを備えないオペレーティングシステムを実行する。例えば、リソースが限られたデバイスは、Ｗｉｎｄｏｗｓ　ＸＰ（登録商標）オペレーティングシステムではなく、Ｗｉｎｄｏｗｓ　ＣＥ（登録商標）オペレーティングシステムを実行する。
【００８７】
代替実施形態
図３及び図４のアプリケーション配信及び構成のフレームワーク３００は、代替の方式で実装することができる。例えば、一実装では、管理サーバ３０２にデータ発見要求を通信するのに応答して詳細なダウンロード命令を直ちに受け取るのではなく、モバイルクライアントデバイス３０４は、インベントリ及び発見コンポーネント４０２からパッケージ識別（ＩＤ）リストを受信する。パッケージＩＤリストは、モバイルデバイスによる前回の成功したＵＲＬへのポーリング以降モバイルデバイスに利用可能となった任意数の（ゼロの可能性もある）パッケージ（すなわち提供物４０８）を識別する。識別される各パッケージは、モバイルクライアントがダウンロードし、インストールすることができる。配布コンポーネント４０４は、生成したパッケージＩＤリストを１つまたは複数の電子ファイル４１０としてモバイルクライアントに通信する。
【００８８】
一般に、パッケージＩＤリストは、すべての利用可能なパッケージについてのすべてのダウンロード命令を含むファイルのバイトサイズに比べるとかなり小さい。これは、パッケージＩＤリストは、詳細なダウンロード情報（例えばダウンロードの条件、ダウンロードの場所、好ましいネットワークトランスポートなど）を含まないためである。代わりに、パッケージＩＤリストは、モバイルクライアントデバイス３０４またはモバイルデバイスのユーザがそれぞれ、そのパッケージを後にダウンロードし、配信することが望ましいことを自動的に、または手動で（例えば必須の管理上のダウンロードと、ユーザが希望するダウンロード）判定するのに必要な情報だけを含む。
【００８９】
例えば、パッケージＩＤリストは、表されるパッケージごとに、；ソース名、提供物名、提供物のサイズ（例えばバイト単位）、価格、短い説明及び／または長い説明、及び／またはそのパッケージが必須かどうかの表示、を指定することができ、すなわち、そのパッケージをモバイルデバイスによって自動的にダウンロードするか、または手動のダウンロード選択を行うためにユーザに提供するかを判定するのに足りるだけの情報を指定する。特定のパッケージをダウンロードするユーザ固有の許可を行うための例示的なユーザインタフェース（ＵＩ）については上記で述べた。
【００９０】
一実装では、特定のパッケージが必須または強制である場合、パッケージＩＤリストは、パッケージＩＤの指示と必要とされる指示だけを含む。ポーリング及び通知コンポーネント４１２は、「必須」ステータスにタグをつけて、対応する詳細なダウンロード命令を自動的に管理サーバ３０２に要求する。
【００９１】
あるパッケージが強制（すなわち必須）であるか、ユーザによって要求されると判断するのに応答して、ポーリング及び通知コンポーネント４１２は、対応するダウンロード命令を管理サーバ３０２から受け取る要求を通信する。上述のように、ダウンロード命令は、１つまたは複数のパッケージ４０８すなわち提供物に関する詳細なダウンロード情報を含み、各提供物は、１つまたは複数のファイルのダウンロードを含むことができる。ダウンロード命令は、提供物をダウンロードする条件と、提供物をダウンロードできるＵＲＬ（ユニフォームリソースロケータ）も示すことができる。
【００９２】
モバイルクライアントデバイス３０４からダウンロード命令要求を受け取るのに応答して、配布コンポーネント４０４は、上述のように、指定されたパッケージ４０８のダウンロード命令を１つまたは複数の電子ファイル４１０としてモバイルクライアントに通信する。このダウンロード命令は、上記で図３〜１１を参照して説明した動作に従って、スケジューリングコンポーネント３０４によって実行をスケジュールされる。
【００９３】
この例では、データ発見メッセージ及びダウンロード命令要求と、パッケージＩＤリスト及びダウンロード命令をそれぞれ１つまたは複数の電子ファイル４０６及び４１０として示しているが、これは説明のために行っているに過ぎず、各メッセージは個別の独立したメッセージである。
【００９４】
結論
本発明について、構造的特徴及び／または方法論的な操作または動作に固有の術語で説明したが、特許請求の範囲に定義する本発明は、必ずしもここに記載する特定の機能または動作に限定されないことを理解されたい。これらの特定の特徴及び動作は、特許権を請求する本発明を実施する好適形態として開示する。
【００９５】
付録Ａ
ダウンロード命令の例示的スキーマ
説明のために、以下のＸＭＬスキーマ中の太字体の文字は、識別子、データタイプ、制約などの例を表す。
【００９６】
【数１】
2004062892.tif 000005
【００９７】
付録Ａ（続き）
ダウンロード命令の例示的スキーマ
【００９８】
【数２】
2004062892.tif 000006
【００９９】
付録Ｂ
例示的スケジューラＡＰＩ
次に示すのは、図４の例示的スケジューラＡＰＩ４３０である。
【０１００】
【数３】
2004062892.tif 000007
【０１０１】
付録Ｂ（続き）
例示的スケジューラＡＰＩ
【０１０２】
【数４】
2004062892.tif 000008
【０１０３】
付録Ｂ（続き）
例示的スケジューラＡＰＩ
【０１０４】
【数５】
2004062892.tif 000009
【０１０５】
付録Ｂ（続き）
例示的スケジューラＡＰＩ
【０１０６】
【数６】
2004062892.tif 000010
【０１０７】
付録Ｂ（続き）
例示的スケジューラＡＰＩ
【０１０８】
【数７】
2004062892.tif 000011
【０１０９】
付録Ｂ（続き）
例示的スケジューラＡＰＩ
【０１１０】
【数８】
2004062892.tif 000012
【０１１１】
【発明の効果】
以上説明したように本発明によれば、モバイルデバイスのリモート構成のためにアプリケーションを配信し、モバイルデバイスが自動化された構成管理に参加することができる。
【図面の簡単な説明】
【図１】
従来技術によるシステム管理フレームワークの図である。
【図２】
図１に示すものなど従来技術のシステム管理フレームワークで使用される構成管理サーバ及びクライアントコンピュータの論理コンポーネントを示すブロック図である。
【図３】
本発明の実施形態のシステム管理フレームワークのブロック図である。
【図４】
本発明の実施形態の図３に示すようなシステムで使用される、構成管理サーバ及びモバイルクライアントコンピュータの論理コンポーネントを示すブロック図である。
【図５】
本発明の実施形態の図３及び図４のシステム管理フレームワークのモバイルデバイスのアプリケーション配信及びリモート構成の方法論的側面を示すブロック図である。
【図６】
本発明の実施形態の図３及び図４のシステム管理フレームワークのモバイルデバイスのアプリケーション配信及びリモート構成の方法論的側面を示すブロック図である。
【図７】
本発明の実施形態の図３及び図４のシステム管理フレームワークでコンピューティングデバイスのアプリケーション配信及び構成を行うために、モバイルクライアントなどのクライアントコンピューティングデバイスによって提示される例示的ユーザインタフェースの諸面の図であり、ユーザが管理サーバに新しい提供物を要求するＵＩの一部の図である。
【図８】
本発明の実施形態の図３及び図４のシステム管理フレームワークでアプリケーション配信及びコンピューティングデバイスの構成を行うために、モバイルクライアントなどのクライアントコンピューティングデバイスによって提示される例示的ユーザインタフェースの諸面の図であり、新しい提供物がクライアントダウンロード可能であることをモバイルクライアントデバイスのユーザに知らせ、さらにユーザが新しい提供物を見るか、無視することを可能にする、モバイルクライアントＵＩの例示的側面の図である。
【図９】
本発明の実施形態の図３及び図４のシステム管理フレームワークでアプリケーション配信及びコンピューティングデバイスの構成を行うために、モバイルクライアントなどのクライアントコンピューティングデバイスによって提示される例示的ユーザインタフェースの諸面の図であり、モバイルクライアントデバイスにダウンロードできる利用可能な提供物のリストを提示し、対話を行うための例示的な提供物ダイアログボックスの図である。
【図１０】
本発明の実施形態の図３及び図４のシステム管理フレームワークでアプリケーション配信及びコンピューティングデバイスの構成を行うために、モバイルクライアントなどのクライアントコンピューティングデバイスによって提示される例示的ユーザインタフェースの諸面の図であり、詳細（例えば提供物の短い説明または長い説明）及び／またはダウンロードオプションをユーザに示す例示的ダイアログの諸面の図である。
【図１１】
本発明の実施形態のアプリケーション配信及びリモート構成管理のシステム及び手順を実装することが可能な例示的動作環境の図である。
【符号の説明】
１０　コンピュータシステム
１２、３０２　管理サーバ
１４　クライアントコンピュータ
１６　ネットワーク
２０、２２、４０２　インベントリ及び発見コンポーネント
２４　ポリシープッシャ
２６　ポリシーエバリュエータ
２８　インストールコンポーネント
２９　配布ポイント
３００　システム管理フレームワーク
３０４　モバイルクライアントデバイス
３０６　ネットワーク接続
３０８　スケジューリングコンポーネント
４０４　配布コンポーネント
４０６、４１０、４２０、４３２　電子ファイル
４０８　提供物（スキーマ）
４１２　ポーリング及び通知コンポーネント
４１４　ダウンロードコンポーネント
４１６　インストール命令インタープリタ
４１８　プログラムまたはパッケージインストールコンポーネント
４２２　イベントテーブル
４２４　プログラムメモリ
４２６　データベース
４２８　ＴＳＬ
４３０　スケジューラＡＰＩ
４３４　ファイル検証及びユーザ許可コンポーネント
７００　ＵＩ
７０２　アイコン
７０４　メニュー
９０２、１００２　ダイアログボックス
１１００　動作環境
１１０６　コンピュータ
１１１４　プロセッサ
１１１６　システムメモリ
１１１８　ＲＯＭ
１１２０　ＲＡＭ
１１２１　システムバス
１１２２　ＢＩＯＳ
１１２４　ハードディスクドライブ
１１２６　磁気ディスクドライブ
１１２８　磁気ディスク
１１３０　光ディスクドライブ
１１３２　光ディスク
１１３４、１１５０、１１５５、１１６６　インタフェース
１１３６、１１３７　オペレーティングシステム
１１３８、１１３９、１１６９　アプリケーションプログラム
１１４２、１１４３　プログラムモジュール
１１４４、１１４５　プログラムデータ
１１４６　キーボード
１１４８　ポインティングデバイス
１１５２　モニタ
１１５７　ＬＡＮ
１１５８　モデム
１１５９　ＷＡＮ
１１６９　メモリ記憶装置
【図１】
2004062892.tif 000013
【図２】
2004062892.tif 000014
【図３】
2004062892.tif 000015
【図４】
2004062892.tif 000016
【図５】
2004062892.tif 000017
【図６】
2004062892.tif 000018
【図７】
2004062892.tif 000019
【図８】
2004062892.tif 000020
【図９】
2004062892.tif 000021
【図１０】
2004062892.tif 000022
【図１１】
2004062892.tif 000023