説明

コンフィギュレーションマネージャのロールバック機能とセキュリティ機能を使用してモバイルコンピューティングデバイスにソフトウェアをインストールする方法、システム、コンピュータプログラム

【課題】コンフィギュレーションマネージャのセキュリティ機能を使用してソフトウェアを安全にインストールする。
【解決手段】モバイルコンピューティングデバイスは、このデバイスにインストールしようとしているファイルにアクセスすると共に、ファイルをこのデバイスにどのようにインストールするかを定義しているコンピュータ実行可能命令にアクセスする。そのあと、コンフィギュレーションマネージャは、コンピュータ実行可能命令を実行させ、ミラーリングロールバックドキュメントを構築させる。インストールに失敗すると、そのインストールプロセスは、ロールバックドキュメントを実行することによって逆戻りされる。コンフィギュレーションマネージャは、各インストール命令の実行が許可されているかどうかをチェックして判断することにより、インストール命令の実行時にセキュリティを実現するように使用することもできる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェアインストールテクノロジの分野に関する。具体的には、本発明は、コンフィギュレーション(環境設定)マネージャのロールバック機能とセキュリティ機能を使用してモバイルコンピューティングデバイスにソフトウェアをインストールするための方法、システム、コンピュータプログラムおよびデータ構造に関する。
【背景技術】
【0002】
コンピュータは、われわれの生活様式に革新をもたらした。汎用コンピューティングデバイスの機能コンポーネントは、大別すると、2つのカテゴリに分けることができる。すなわち、ハードウェアとソフトウェアである。ハードウェアの例としては、1つまたは2つ以上のプロセッサ、種々タイプのメモリ(例えば、RAM、ROM、FLASH、ハードドライブ、CD-ROMなど)、ユーザインタフェース(例えば、モニタ、キーボード、マウス、スピーカ、プリンタ、スキャナなど)、およびネットワーキングデバイス(例えば、モデム、ネットワークインタフェースカード、アンテナなど)がある。ソフトウェアは、プロセッサによって実行されたとき、ハードウェアが一定のタスクを遂行するような形でやりとりするように、ハードウェアの種々のオペレーションを制御する命令から構成されている。代表的なコンピューティングデバイスには、広範囲にわたる機能性を助長する種々のソフトウェアがインストールされている。
【0003】
コンピューティングデバイスのオペレーション上の能力をさらに向上するためには、望ましい方法として、別のソフトウェアをコンピューティングデバイスに追加することがよく行われている。そのソフトウェアをインストールするには、コンピューティングデバイスは、インストールファイル (installation file) へのアクセス権を取得する。インストールファイルは、いくつかの圧縮ファイルを収めているのが代表的であり、これらの圧縮ファイルは、最終的には、抽出して、コンピューティングデバイス上の適当なディレクトリロケーションに格納しておく必要がある。インストールファイルは一連の命令も収めており、抽出されたファイルが、その命令に従って正しくインストールされるようにしている。このような命令の例としては、ファイルを抽出し、ファイルを移動し、ファイルをコピーし、ファイルを削除し、コンフィギュレーション情報を設定することを、コンピューティングデバイスに指示するものがある。
【0004】
代表的なインストールプロセス (installation process) は、基本的には、コンピューティングデバイスのユーザによって開始されている。例えば、ユーザは、ハードディスク、CDROMなどのコンピュータ読取可能媒体に入っているソフトウェアを購入する場合もあれば、おそらくは、ネットワークを利用してソフトウェアをダウンロードする場合もある。しかし、モバイルコンピューティングデバイスでは、比較的新しいインストールの形体が定着しつつある。具体的には、新ソフトウェアが発表されたとの通知をモバイルコンピューティングデバイスが受け取ると、その新ソフトウェアを受け取るかどうかの選択は、ユーザに任されているのが代表的である。受け取ることを選択すると、そのソフトウェアは、それがインストールされるモバイルコンピューティングデバイスにダウンロードされることになる。
【0005】
従来の汎用コンピュータ用のオペレーティングシステムによれば、プロセスや個人がある種のファイルに対して、およびある種のディレクトリ内で実行できるオペレーションのタイプが、プロセスと個人に応じて制限されるような形である程度のセキュリティレベルが得られるようにしているのが代表的である。しかるに、モバイルデバイス用のオペレーティングシステムは、ラップトップやデスクトップコンピュータに比べてメモリと処理能力が相対的に制限されているため、機能性が縮小されていることがある。
【0006】
【特許文献1】米国特許出願公開第2002/0144151号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
そのようなオペレーティングシステムは、上記のように処理とメモリに制約があるため、セキュリティ制御のタイプが相対的に制限されていることがよくある。それにもかかわらず、ソフトウェアプロバイダの信頼性は、非同期通知に応答してインストールファイルをモバイルコンピューティングデバイスにダウンロードするときに問題となることが多くなっている。そのため、処理能力とメモリ容量が制限されているような環境でソフトウェアをインストールするとき、セキュリティが得られるようにするシステム、方法、コンピュータプログラム、およびデータ構造が要望されている。
【0008】
さらに、インストールプロセスは、何らかの理由で失敗することがある。例えば、コンピューティングシステムがクラッシュすることもあれば、あるいはインストールソフトウェアが、その操作権限をもたないファイル、ディレクトリ、またはコンフィギュレーション設定値 (configuration settings) を操作しようとすることもある。ソフトウェアインストールが失敗したとき、オペレーティングシステムは、ソフトウェアインストールが正常に行われることを前提とする、誤ったコンフィギュレーション設定値をストアしてしまうことがある。さらに、インストールの一部であったファイルが、インストールが中断した以後無用になった場合でも、コンピューティングデバイスにストアされることがある。これらの誤ったコンフィギュレーション設定値は、コンピューティングデバイスの正しいオペレーションに影響することになる。さらに、無用なファイルが貴重なメモリスペースを占有することになり、これは、モバイルコンピューティングデバイスのような、メモリに制約のある環境では特に好ましくない。そのために、モバイルコンピューティング環境でインストールが失敗した場合、インストールの効果を逆戻り (reverse) させるようなシステム、方法、コンピューティングプログラムプログラムおよびデータ構造が、さらに要望されている。
【0009】
本発明は、上述の課題を解決するためになされたもので、その目的は、モバイルコンピューティングデバイスがコンフィギュレーションマネージャを使用してソフトウェアをインストールすることを可能にし、コンフィギュレーションマネージャのロールバック機能とセキュリティ機能がインストールプロセス期間に使用できるようにする方法、システム、コンピュータプログラムおよびデータ構造を提供することにある。
【課題を解決するための手段】
【0010】
本発明によれば、ロールバック機能を使用すると、インストールが何らかの理由で失敗したとき、インストールの効果を完全に逆戻りさせることが可能になる。また、セキュリティ機能を使用すると、オペレーション期間にどのディレクトリとファイルに対してどのオペレーションを実行できるかを、正しくアクセス制御することが可能になる。
【0011】
一例を挙げると、これらのロールバック機能とセキュリティ機能は、コンフィギュレーションマネージャを使用してコンフィギュレーション情報を設定するという情況では、すでに実行されている。コンフィギュレーションを設定するという情況だけでなく、ディレクトリとファイルをオペレーションするという情況においても、この機能をインストールに適用すると、ロールバック機能とセキュリティ機能をインストールプロセスに適用するときのメモリと処理オーバヘッドが最小限になる。これが、セルラ電話 (cellular telephone) やパーソナルデジタルアシスタント (Personal Digital Assistant − PDA) のような、モバイルコンピューティングデバイスの情況で特に重要であるのは、モバイルコンピューティングデバイスは、ラップトップやデスクトップコンピュータに比べて、処理能力とメモリ能力が相対的に制限されているのが代表的であるからである。
【0012】
本発明は、新しいアプリケーションやパッチ (patch) などの、ソフトウェアをインストールするとき使用できるインストールファイルが置かれているようなネットワーク環境で実現することができる。ネットワークには、モバイルコンピューティングデバイスも含まれている。例えば、ネットワーク環境には、セルラ電話ネットワークを利用してインストールファイルをセルラ電話にダウンロードするサーバを置いておくことが可能である。また、ネットワークには、ドッキングクレードル (docking cradle) 経由でインストールファイルをPDAに転送するデスクトップパーソナルコンピュータを置いておくことも可能である。
【0013】
本発明によれば、モバイルコンピューティングデバイスは、少なくとも、インストールの一部としてモバイルコンピューティングデバイスにインストールしようとしている1つまたは2つ以上のファイルのバージョンにアクセスする。例えば、これらのファイルは、ネットワークバンド幅の使用効率を高めるために圧縮形式になっていることもあれば、未圧縮のままになっていることもある。
【0014】
モバイルコンピューティングデバイスは、ファイルをどのようにモバイルコンピューティングデバイスにインストールさせるかを定義しているコンピュータ実行可能命令にもアクセスする。このような命令としては、例えば、ファイルをコピー、移動または削除する指示 (directive) のほかに、コンフィギュレーション情報を設定する指示などがある。インストールされるファイルは、そのインストールを指示する命令と一緒に、単一のインストールファイルにその一部として入れておくことができる。
【0015】
コンピュータ実行可能命令は、モバイルコンピューティングデバイスに関連するコンフィギュレーションマネージャ (configuration manager) によって直接に解釈することができる。例えば、コンピュータ実行可能命令は、例えば、拡張可能マークアップ言語 (eXtensible Markup Language − XML) 規格によって定義されている言語を使用して、特定のスキーマに準拠した構造にすることができる。この特定スキーマはルールの集まりにすることができ、そこでは、構造内の値の意味は、構造内の値のコンテキストから求められるようしている。
【0016】
そのあと、コンフィギュレーションマネージャは、コンピュータ実行可能命令を実行させる。例えば、コンフィギュレーションマネージャは、命令を直接に実行することもできるが、別のコンポーネント(コンフィギュレーションサービスプロバイダなど)にある種の命令を実行させることもある。例えば、コンフィギュレーションマネージャは、ファイルオペレーション命令をファイルコンフィギュレーションサービスプロバイダによって実行させることもあれば、ファイルオペレーション命令をレジストリサービスプロバイダによって実行させることある。
【0017】
これらの命令が実行されている間、コンフィギュレーションマネージャは、ロールバック機能とセキュリティ機能を実行することができる。ロールバック機能によると、なんらかの理由でインストールが失敗したとき、あるいはインストールが必要でなくなったとき、インストールの効果を逆戻りさせることができる。
【発明の効果】
【0018】
従って、インストールが失敗すると、モバイルコンピューティングデバイスは、そのオリジナルステート(元の状態)に戻されることになる。インストールが正常に行われることを前提とする、望ましくないコンフィギュレーション設定値の変更は行われていない。従って、モバイルコンピューティングデバイスの処理は、正しくないコンフィギュレーション設定値によって妨げられることはない。さらに、インストールが正常に行われることを目的にインストールされたファイルの中には、無用な散在ファイルは存在しない。従って、モバイルコンピューティングデバイスのメモリは、インストールが失敗したとき無用な情報をストアしないで済むことになる。このことが特に利点があるのは、処理能力とメモリ容量が相対的に制限されているモバイルコンピューティングデバイスの情況においてである。
【0019】
コンフィギュレーションマネージャは、インストール命令の実行時に、各インストール命令の実行が許可されているかどうかをチェックして判断することによってセキュリティを実現するためにも使用できる。このようにすると、モバイルコンピューティングデバイスは、モバイルコンピューティングデバイス全体にとって支障となるインストールオペレーションを、新ソフトウェアのプロバイダが悪意にまたは不注意に実行することから保護されることになる。
【0020】
本発明のその他の特徴と利点は、以下の説明の中で明らかにされるが、その一部は説明から自明のものと、本発明を実施することによって知得されるものとがある。本発明の特徴と利点は、特許請求の範囲の請求項に具体的に記載されている手段および組み合わせによって実現し、取得することができる。本発明の上記特徴およびその他の特徴は、以下の説明の中で明らかにされるが、以下に説明するように本発明を実施することによって知得することも可能である。
【発明を実施するための最良の形態】
【0021】
本発明の上述した利点およびその他の利点がどのようにして得られるかを説明するために、以下では、要約して上述した本発明を、添付図面に図示されている具体的実施形態、実施例を参照してもっと具体的に説明することにする。これらの図面は、本発明の代表的な実施形態を示したにすぎず、従って本発明の範囲を限定するものではないとの了解の下で、以下では、本発明は、添付図面を使用してさらに具体的にかつ詳細に説明されている。
【0022】
本発明は、コンフィギュレーションマネージャのロールバック機能とセキュリティ機能がインストールプロセス期間に使用できるように、コンフィギュレーションマネージャを使用してソフトウェアをインストールするための方法、システム、コンピュータプログラムおよびデータ構造に係わるものである。ロールバック機能を使用すると、インストールが何らかの理由で失敗したときや、インストールを逆戻りさせる必要が起こったとき、インストールの効果を全体的に逆戻り (reverse) させることができる。セキュリティ機能を使用すると、インストールが行われるとき、どのディレクトリやファイルに対してどのオペレーションが実行できるかに対して適切なアクセス制御を行うことができる。
【0023】
モバイルコンピューティングデバイスはインストールファイル (installation file) にアクセスする。インストールファイルは、モバイルコンピューティングデバイスにインストールしようとしている1つまたは2つ以上のファイル(以下では、「インストールするファイル」とも呼ばれる)を収めているほかに、これらのファイルをインストールするためのコンピュータ実行可能命令(以下では、インストール命令 (installation instruction) とも呼ばれる)も収めている。インストーラ (installer) は、インストール命令をコンフィギュレーションマネージャ (configuration manager) に渡し、インストールするファイルを抽出する。インストール命令は、コンフィギュレーションマネージャによって直接に解釈できるフォーマットになっている。そのあと、コンフィギュレーションマネージャは、例えば、インストール命令を解析 (parse) し、その命令を該当するコンフィギュレーションサービスプロバイダに渡すことによって、インストール命令を実行させる。
【0024】
ロールバック機能を実現するために、コンフィギュレーションマネージャはロールバックドキュメントを構築する。インストールが最終的に正常に行われると、そのインストールは、シングルトランザクションとしてコミットされる。他方、インストールが失敗すると、そのインストールプロセスは、ロールバックドキュメントを実行することによって逆戻りされる。一実施形態では、トランザクションに関するステート(状態)情報は、持続性メモリに保存されている。従って、モバイルコンピューティングデバイスに電源障害(停電)が発生しても、トランザクションのステートは残っているので、電源回復時にトランザクションを再開することができる。従って、トランザクションは電源中断から生き残ることになる。
【0025】
コンフィギュレーションマネージャは、インストール命令の実行時に、各インストール命令の実行が許可されているかどうかをチェックして判断することにより、セキュリティを実現するためにも使用できる。具体的には、インストールファイルが受け取られると、そのインストールファイルには、インストールファイルに付与された認証 (credential) に依存するロールマスク (role mask) が割り当てられる。ロールマスクは、どのファイルや設定値 (settings) に対してどのインストールオペレーションをモバイルコンピューティングデバイスで実行できるかを定義するために使用される。インストール命令が無許可オペレーションを表していれば、コンフィギュレーションマネージャは、インストールが行われないこと、およびモバイルコンピューティングデバイスがインストール前のステートのままになっていることを確かめる。そのようにすると、モバイルコンピューティングデバイスは、新ソフトウェアのプロバイダがモバイルコンピューティングデバイスにとって支障となるインストールオペレーションを実行することから保護されることになる。
【0026】
本発明の実施形態は、以下で詳しく説明するように、種々のコンピュータハードウェアを装備している特殊目的または汎用コンピューティングデバイスを備えることが可能になっている。本発明の範囲に属する実施形態には、コンピュータ実行可能命令やデータ構造を搬送するための、あるいはこれらがそこに格納されているコンピュータ読取可能媒体も含まれている。そのようなコンピュータ読取可能媒体としては、汎用または特殊目的コンピュータによってアクセス可能な媒体であれば、どのような媒体でも利用可能である。そのようなコンピュータ読取可能媒体の例を挙げると、RAM、ROM、EEPROM、CD-ROMなどの物理ストレージ媒体や他の光ディスクストレージ、磁気ディスクストレージや他の磁気ストレージデバイス、必要とするプログラムコード手段をコンピュータ実行可能命令の形で搬送または格納するために使用でき、汎用または特殊目的コンピュータによってアクセス可能である他の媒体などがあるが、これらに限定されない。
【0027】
情報がネットワークまたは別の通信コネクション(ハードワイヤド(有線)、ワイヤレス(無線)、またはハードワイヤドとワイヤレスを組み合わせたもの)を利用してコンピュータに転送または提供されるとき、コンピュータからは、そのコネクションはコンピュータ読取可能媒体のように見えるのは当然である。従って、かかるコネクションは、当然のことながら、コンピュータ読取可能媒体と名づけられている。上記を組み合わせたものも、当然にコンピュータ読取可能媒体の範囲に含まれるものである。コンピュータ実行可能命令には、例えば、汎用コンピュータ、特殊目的コンピュータ、または特殊目的処理デバイスにある種の機能(関数)または機能(関数)群を実行させる命令とデータが含まれている。
【0028】
必ずしもその必要はないが、本発明は、プログラムモジュールのように、コンピューティングデバイスによって実行されるコンピュータ実行可能命令という広い意味で説明されている。一般的に、プログラムモジュールの中には、特定のタスクを実行し、あるいは特定の抽象データ型を実装しているルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれている。コンピュータ実行可能命令、関連データ構造、およびプログラムモジュールは、ここに開示されている方法のステップを実行するためのプログラムコード手段の例を表している。このような実行可能命令または関連データ構造の特定シーケンスは、上記ステップに記載されている機能(関数)を実現するための対応する行為の例を表している。
【0029】
この分野の精通者ならば理解されるように、本発明は、多数のタイプのコンピュータシステム構成が置かれているネットワークコンピューティング環境で実施することが可能であり、その中には、パーソナルコンピュータ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルコンシューマエレクトロニクス、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどが含まれている。また、本発明は、通信ネットワークを通して(ハードワイヤドリンク、ワイヤレスリンク、またはハードワイヤドリンクとワイヤレスリンクを組み合わせたものによって)リンクされているローカルとリモートの処理デバイスによってタスクが実行されるような、分散型コンピューティング環境で実施することも可能である。分散型コンピューティング環境では、プログラムモジュールは、ローカルとリモートの両方のメモリストレージデバイスに置いておくことが可能である。
【0030】
図1は、インストールファイルをモバイルコンピューティングデバイスに配信することができるネットワーク環境100を示す図である。主に、ネットワーク環境100には、ワイヤレスネットワーク103を利用してモバイルコンピューティングデバイス102と通信するサーバ101が含まれている。
【0031】
サーバ101は、パブリックワイヤレスサービスプロバイダ(例えば、セルラキャリア)またはプライベートワイヤレス通信ネットワーク(例えば、企業通信ネットワーク)のように、モバイルコンピューティングデバイス102の主要コネクティビティポイントなることができる。また、サーバ101は、主要コネクティビティポイントと協力し合う専用サーバとなることもできる。
【0032】
以下では、図2と図3を参照して、モバイルコンピューティングデバイス102を図示し、詳しく説明する。要約して説明すると、モバイルコンピューティングデバイス102は、モバイル電話の機能と代表的なパーソナルデジタルアシスタント (Personal Digital Assistant − PDA) の機能を兼ね備えたハンドヘルドコンピューティングデバイスである。
【0033】
サーバ101とモバイルコンピューティングデバイス102は、ワイヤレスリンク103を利用して相互に通信するが、このワイヤレスリンクは、無線周波数リンクなどのように、どのようなワイヤレスコミュニケーション手段であってもよい。例えば、サーバ101は、モバイルコンピューティングデバイス102にインストールできる新ソフトウェア(例えば、新アプリケーション、更新、またはパッチ)が存在することを検出することができる。そのことを検出すると、サーバ102は、ワイヤレスリンク103を利用してインストール通知をモバイルコンピューティングデバイス102に送り、新ソフトウェアが利用可能であることをモバイルコンピューティングデバイス102に通知することができる。この通知は、図1に第1矢印で示されている。この通知は、ワイヤレスアプリケーションプロトコル (Wireless Application Protocol − WAP) プッシュ通知、ハイパテキスト転送プロトコル (Hypertext Transport Protocol − HTTP) プッシュ通知、または現存しているか、開発中であるかに関係なく、他の可能な通知方法を使用して、ワイヤレス電話ネットワークを利用して行うことができる。
【0034】
このような通知方法には、さまざまなものがある。例えば、ユーザは、モバイルコンピューティングデバイス102のブラウザを使用して、企業ネットワークまたはインターネット (the Internet) をナビゲートしていって、ダウンロードサイトを見つけることがある。ユーザは、インストールファイルに対応するリンクを選択することによって、インストールすることに同意する。この同意を受けて、ブラウザは、インストールファイルの要求(例えば、HTTP Getコマンド)を送付すると、インストールファイルは自動的にダウンロードされる。
【0035】
別の方法として、モバイルコンピューティングデバイス102は、ユニバーサルシリアルバス (Universal Serial Bus − USB) またはシリアルケーブルでデスクトップコンピュータまたはラップトップコンピュータに結合されたクレードル (cradle) にドッキング (dock) にしておくこともできる。デスクトップコンピュータは、同期化ソフトウェア(例えば、ActiveSync)を使用して、インストールファイルをモバイルコンピューティングデバイスにダウンロードすることができる。ユーザは、インストールファイルをモバイルコンピューティングデバイス102にダウンロードさせることによって、インストールすることに同意する。
【0036】
別の例では、インストールファイルは、アタッチメントとして、あるいはリンクとして、モバイルコンピューティングデバイス102に送信されるEメールまたは短テキストメッセージの中に収められている。この場合は、ユーザは、アタッチメントまたはリンクを選択することによって、インストールすることに同意することになる。
【0037】
キャリアは、サービスインディケーション (Service Indication − SI) メッセージとサービスローディング (Service Loading − SL) メッセージを、プッシュプロキシゲートウェイ (Push Proxy Gateway − PPG) 経由でモバイルコンピューティングデバイス102に送信することもできる。モバイルコンピューティングデバイス102は、これらの特殊目的短テキストメッセージサービス (Short test Message Service − SMS) メッセージをインボックスに入れておくように構成することができる。SIメッセージの場合には、ユーザは、メッセージの中のリンクを選択することによって、インストールすることに同意する。SLメッセージの場合には、デバイス自身がインストールファイルをインストールすることを試みる。
【0038】
インストールファイルは、マルチメディアカード (MultiMediaCard − MMC) メモリカードにストアしておくこともできる。MMCは、MMCカードにAutorun(オートラン)ファイルが入っていて、Autorunがモバイルコンピューティングデバイス102で使用可能になっていれば、インストールスクリプトを自動的に開始することもできる。その場合には、ユーザは、MMCデバイスをプラグインすることによって、インストールすることに同意する。
【0039】
モバイルコンピューティングデバイス102がインストールすることに同意するときは、モバイルコンピューティングデバイス102は、新ソフトウェアに関連するインストールファイルの要求を送付する。これは、HTTP Get要求の形にすることができ、図1に第2矢印で示されている。そのあと、インストールファイル105は、モバイルコンピューティングデバイス102にダウンロードされる。例えば、インストールファイル105は、HTTP Get要求に対する同一セッション応答の形でダウンロードすることができる。インストールファイル105のダウンロードは、図1に第3矢印で示されている。そのあと、モバイルコンピューティングデバイス102は、図3乃至図5を参照して以下に詳しく説明されているように、インストールファイル105を使用して新ソフトウェアをインストールする。
【0040】
ここでは、主にインストールファイル105がワイヤレスリンク103を利用してモバイルコンピューティングデバイス102に配信されるものとして説明されているが、当然に理解されるように、これは、インストールファイル105をダウンロードするときの一実施形態にすぎない。インストールファイル105をモバイルコンピューティングデバイス102に配信する方法をいくつか上述したが、その方法の中には、ネットワーク向き (network-oriented) のものと、そうでないものとがある。従って、図1の第2矢印と第3矢印は、ユーザがインストールすることに同意し、インストールファイルがモバイルコンピューティングデバイス102で実行されるときの、任意のコミュニケーション形体を表すことができる。
【0041】
図2は、モバイルコンピューティングデバイス102を示す詳細図である。モバイルコンピューティングデバイス102は、ユーザが入力ユーザインタフェース203を通して情報を入力し、出力ユーザインタフェース202から提示された情報をレビューできるようにするユーザインタフェース201を備えている。例えば、出力ユーザインタフェース202としては、オーディオ情報をユーザに提示するスピーカ204のほかに、ビジュアル情報をユーザに提示するディスプレイ205がある。モバイルコンピューティングデバイス102は、ワイヤレスリンク103を利用してサーバ101とワイヤレス通信するためのアンテナ209も備えている。
【0042】
入力ユーザインタフェース203としては、オーディオ情報を電子形体に変換するマイクロホン206がある。さらに、入力ユーザインタフェース203としては、12個のボタンで表されたダイアリングコントロール207がある。ユーザは、このコントロールから電話番号をダイアルすることも、テキストメッセージを入力することも、データメッセージを送信することをモバイルコンピューティングデバイス102に指示することもできる。さらに、入力ユーザインタフェース203としては、ユーザがディスプレイ205から表示される種々のエントリとオプションをナビゲートしていくのを支援するナビゲーションコントロールボタン208がある。
【0043】
モバイルコンピューティングデバイス102はモバイル電話の外観をしているが、モバイルコンピューティングデバイス102は、複雑で、フレキシブルな汎用処理能力を可能にする、目に見えない特徴を備えている。例えば、モバイルコンピューティングデバイス102はプロセッサ211とメモリ212も装備し、これらは相互に接続されると共に、バス210を介してユーザインタフェース201にも接続されている。歴史的に、セルラ電話やPDAのようなモバイルコンピューティングデバイス102の処理能力とメモリ容量は、ラップトップやデスクトップパーソナルコンピュータに比べると、相対的に制限されている。メモリ212として採用できるものには、広い意味で、広範囲にわたる揮発性および/または不揮発性メモリがある。どのタイプのメモリがモバイルコンピューティングデバイス102で使用されるかは、本発明にとっては重要でない。
【0044】
1つまたは2つ以上のプログラムモジュールを構成するプログラムコード手段は、メモリ212にストアしておくことができる。1つまたは2つ以上のプログラムモジュールの内容としては、オペレーティングシステム213、1つまたは2つ以上のアプリケーションプログラム214、他のプログラムモジュール215、およびプログラムデータ216がある。図2に示す環境は単なる例示であり、本発明の原理を実現することができる種々のモバイルコンピューティングデバイスの一部を示すものではない。
【0045】
図3は、モバイルコンピューティングデバイス102によって実現することができるアーキテクチャ300を示す概略図である。具体的には、図2に示すコンポーネントとしては、スケジューラ301、インストーラ302、コンフィギュレーションマネージャ303、パーサ (parser) 304、ロールバックドラフタ (rollback drafter) 305、アンインストーラ306、セキュリティモジュール307、ファイルコンフィギュレーションサービスプロバイダ (Configuration Service Provider − CSP)、およびレジストリCSP 309のように、いくつかの機能コンポーネントがある。これらの機能コンポーネントは、例えば、アプリケーションプログラム214の1つ、プログラムモジュール、またはモバイルコンピューティングデバイス102のオペレーティングシステム213の一部にすることができる。ロールバックドキュメント310は、例えば、モバイルコンピューティングデバイス102のプログラムデータ216の一部にすることができる。
【0046】
インストールファイル105の配信がネットワークを利用して行われる場合は、スケジューラ301はインストール通知104を受け取り、オプションとして、サーバ101からインストールファイルを取り出す。そのあと、スケジューラ301は、インストールファイル105を使用して新ソフトウェアをインストールするようにインストーラ302をトリガする。図3のアーキテクチャ300は、図4の方法を採用できるので、コンフィギュレーションマネージャのロールバック機能とセキュリティ機能を使用して新ソフトウェアをインストールするようにしている。従って、図3のアーキテクチャの残り部分(基本的には、スケジューラ301を除くすべてのコンポーネント)は、図4を頻繁に参照して説明されている。
【0047】
図4の方法400を参照して説明すると、モバイルコンピューティングデバイス102は、新ソフトウェアのインストールの一部として、モバイルコンピューティングデバイスにインストールしようとする1つまたは2つ以上のファイルの少なくともバージョンにアクセスする(行為401)。例えば、これらのファイルは、ネットワークバンド幅の利用を効率化するために圧縮形式にすることができ、その場合は、モバイルコンピューティングデバイスは、これらファイルの圧縮バージョンにアクセスすることになる。しかし、インストールファイルには、ファイル自体を未圧縮のままで収めておくことも可能である。
【0048】
モバイルコンピューティングデバイス102は、ファイルをモバイルコンピューティングデバイスにどのようにインストールするかを定義しているコンピュータ実行可能命令にもアクセスする(行為402)。そのような命令の例としては、ファイルをコピー、移動、または削除する指示のほかに、コンフィギュレーション情報を設定する指示がある。
【0049】
インストールしようとするファイルとインストール命令は、一緒に、インストールファイル105の一部として収めておくことができる。その場合、インストールしようとするファイルにアクセスする行為(行為401)とインストール命令にアクセスする行為(行為404)は、インストーラ302が、インストールファイル105のような、シングルインストールファイルにアクセスするだけで行うことができる。図5は、インストールファイル105のデータ構造500を示す概略図である。データ構造500には、ファイル503a乃至503dのように、インストールされる複数のファイル503が収められている。また、データ構造500には、ファイル503をモバイルコンピューティングデバイス102にどのようにインストールするかを指示しているインストール命令も収められている。
【0050】
インストール命令501は、コンフィギュレーションマネージャ303によって直接に解釈可能になっている。例えば、インストール命令501は、特定のスキーマに準拠する構造にすることができる。インストール命令501がそのスキーマに準拠していることは、インストール命令501を、図5にスキーマ502と名づけた太線で強調することにより示されている。拡張可能マークアップ言語 (eXtensible Markup Language − XML) 規格を使用するスキーマに準拠するインストール命令の例は、以下に詳しく説明されている。以下の説明および請求項において、「スキーマ(schema)」とは、データ構造を編成するときのルールの集まりであり、構造内の値の意味は、構造内の値のコンテキストによって求められるようにしている。
【0051】
従来のアプローチでは、インストール命令は、専用インストーラによって直接に実行されている。しかるに、本発明によれば、インストーラ302は、インストールプロセスを支援するだけである。具体的には、インストーラ302は、インストールしようとするファイル503を抽出し(ファイルは圧縮形式にあるものと想定する)、それらをメモリ212にストアしておく。また、インストーラ302はインストール命令をコンフィギュレーションマネージャに渡す。いくつかの実施形態では、コンフィギュレーションマネージャ303は、インストール命令を直接に実行できるようになっている。しかし、ここで説明している実施形態では、コンフィギュレーションマネージャ303は、パーサ304を使用してインストール命令を解析していき、該当するインストール命令を他の該当するコンポーネントに転送する。例えば、コンフィギュレーションマネージャ303は、ファイルオペレーション命令(例えば、ファイルの移動、ファイルのコピー、またはファイルの削除)をファイルコンフィギュレーションサービスプロバイダ308によって実行させ、コンフィギュレーションオペレーション命令をレジストリコンフィギュレーションサービスプロバイダ309によって実行させることができる。
【0052】
従来は、コンフィギュレーションマネージャ303は、コンフィギュレーションサービスプロバイダを使用して、コンフィギュレーション設定値を変更し、さもなければ、管理することだけを受け持っていた。しかるに、本発明の原理によれば、インストールオペレーション全体を監視する責任はコンフィギュレーションマネージャ303にも任されている。従って、コンフィギュレーションマネージャ303が従来から備えていたコンフィギュレーション情報の設定機能は、ファイルオペレーションにも適用可能になっている。ファイルオペレーションとコンフィギュレーション設定命令は、コンフィギュレーションマネージャ303が準拠するスキーマに準拠する構造になっている。従って、コンフィギュレーションマネージャ303は、コンフィギュレーションマネージャ303のオペレーションとコーディングを最小限に変更するだけで、コンフィギュレーション設定命令だけでなく、ファイルオペレーション命令も解析することができる。最低限の条件として、コンフィギュレーションマネージャ303はファイルオペレーション命令を認識し、そのファイルオペレーション命令を、ファイルオペレーションの能力を持つコンポーネント(例えば、ファイルCSP 308)に渡すだけで済むことになる。
【0053】
以上のようにすると、コンフィギュレーション情報を設定するというコンフィギュレーションマネージャ303の機能は、インストール処理にも拡張することができる。例えば、行為405でインストール命令を実行するとき、コンフィギュレーションマネージャは、ロールバック機能とセキュリティ機能を果たすことができる。ロールバック機能によると、何らかの理由でインストールが失敗したとか、インストールが必要でなくなったとき、インストールの効果を逆戻りさせることができる。以下では、まず、インストールプロセスのロールバック機能について説明し、その次に、インストールプロセスのセキュリティ機能について説明することにする。
【0054】
図3を参照して説明すると、コンフィギュレーションマネージャ303のロールバック機能は、コンフィギュレーションマネージャ303によって直接にまたは間接にアクセス可能である、ロールバックドラフタ305、ロールバックドキュメント310、およびアンインストーラ306によってサポートされている。
【0055】
以下では、図4を参照してロールバックオペレーションについて簡単に説明する。図4は、コンフィギュレーションマネージャ303を使用してトランザクションの形で新ソフトウェアをインストールするときのステップを示している(ステップ402)。このステップは、対応する行為406と407に加えて、前述した対応する行為404と405を含んでいる。
【0056】
具体的に説明すると、コンフィギュレーションマネージャ303は、ロールバックドキュメント310を構築させる(行為406)。インストールの一部として、モバイルコンピューティングデバイス102は、プロビジョニングドキュメント (provisioning document) を受け取ることができ、これはインストールファイル105である場合と、そこにインストールファイル105が含まれている場合とがある。プロビジョニングドキュメントは、インストールを行うためにどのコンフィギュレーションサービスプロバイダが必要であるかの情報を含んでおり、従って、どのコンフィギュレーションサービスプロバイダをインスタンス化 (instantiate) する必要があるかを示している。コンフィギュレーションマネージャ303は、この情報に基づいてファイルCSP308とレジストリCSP309(他に必要とされるCSPがあれば、それも)をインスタンス化する。
【0057】
次に、コンフィギュレーションマネージャ303は、インストールを行うと、どのファイルおよび/または他のデータアイテムが変更されるかを判別する。例えば、コンフィギュレーションマネージャ303は、インストールの一部として変更されるファイルがあれば、そのカレントステートを得るためにファイルCSP308にクエリ(照会、問合せ)し、インストールの一部として変更されるコンフィギュレーション変更があれば、そのカレントステートを得るためにレジストリCSP309にクエリする。そのあと、コンフィギュレーションマネージャ303は、カレントステートをコンパイルしてロールバックドキュメント310に入れる。従って、ロールバックドキュメント310は、インストールを行うと変更される可能性のあるアイテムに関して、インストール前のモバイルコンピューティングデバイスのステートを表している。
【0058】
次に、コンフィギュレーションマネージャ303は、インストールが正常に行われたかどうか、あるいは正常に行われるかどうかを判断する(行為407)。例えば、コンフィギュレーションマネージャ303は、当該命令を当該CSPに渡し、その命令を実行すると、インストールが正常に行われるかどうかを各CSPに質問する。CSPのいずれかが、インストールが失敗すると示していれば、コンフィギュレーションマネージャ303は、インストールは失敗すると判断する(判定ブロック407でNOと判断する)。例えば、あるCSPは、インストールファイルのIDが与えられているとき、インストール命令の1つまたは2つ以上は、実行の権限がないことを検出していたかも知れない。一実施形態では、これは、インストールファイルに割り当てられたロールマスク (role mask) を使用して行われる。CSPがロールマスクをどのように使用してセキュリティを実現するかの詳細は、以下に説明されている。インストール命令の実行前にインストールが失敗すると判断されたときは、行為410でロールドキュメントを実行しないで済むことになる。その代わりに、コンフィギュレーションマネージャ303は、インストールを行うことを拒否するだけでよい。
【0059】
インストールが正常に行われる可能性があると、このクエリプロセスで判断されたときは(判定ブロック407でYESと判断する)、コンフィギュレーションマネージャ303はトランザクションをコミットする(行為409)。具体的には、コンフィギュレーションマネージャ303は、それぞれに対応するインストール命令を実行するようにCPSの各々に指示する。予備的クエリにもかかわらず、何らかの理由でインストールが失敗したときは、コンフィギュレーションマネージャ303は、インストールは失敗したものと判断する(判定ブロック407でNOと判断する)。その判断時にはインストール命令はすでに実行されているので、コンフィギュレーションマネージャ303は、ロールバックドキュメント310を使用して、モバイルコンピューティングデバイス102をそのインストール前のステートに戻すことになる(行為410)。以上により、新ソフトウェアをトランザクションの形でインストールするステップは完了する(ステップ402)。
【0060】
従って、インストールが失敗すると、モバイルコンピューティングデバイス102は、元のステートに戻される。インストールが正常に行われることを前提とする、望ましくないコンフィギュレーション設定値の変更は行われていない。従って、モバイルコンピューティングデバイス102の処理は、正しくないコンフィギュレーション設定値によって妨げられることはない。さらに、インストールが正常に行われることを目的にインストールされた、無用な散在ファイルが存在することもない。従って、モバイルコンピューティングデバイス102のメモリは、インストールが失敗したとき、無用な情報をストアしないで済むことになる。
【0061】
図3に示すアーキテクチャ300は、新ソフトウェアがトランザクションの形でインストールされることを想定しているだけでなく、コンフィギュレーションマネージャ303が備えているセキュリティ機能を使用して新ソフトウェアが条件付きでインストールされることも想定している。具体的には、セキュリティモジュール307はこれらのセキュリティ機能をサポートし、セキュリティモジュール307は、コンフィギュレーションマネージャ303から直接にまたは間接にアクセス可能になっている。コンフィギュレーションマネージャがコンフィギュレーション情報を設定するとき、どのようにセキュリティを行うかの詳細は、共有に係る、係属中の米国特許出願公開公報に記載されている(特許文献1参照)。なお、その内容全体は、引用により本明細書の一部になっている。
【0062】
図4を参照して説明すると、図示のステップは、コンフィギュレーションマネージャ303のセキュリティ機能を使用して新ソフトウェアを条件付きでインストールするためのものである(ステップ403)。このステップには、対応する行為408のほかに、前述した行為404と405が含まれている。具体的に説明すると、コンフィギュレーションマネージャ303は、それぞれに対応するインストール命令を実行できるかどうかについてCPSの各々にクエリする。その応答として、CPSは、各インストール命令が許可されているかどうかをチェックして判断する(行為408)。CSPは、インストールファイルに割り当てられたロールマスクを使用して、これを行うことができる。このロールマスクは、クエリと一緒に各CSPにすでに渡されていることがある。
【0063】
ロールマスクがどのように割り当てられ、使用されるかは、以下で説明する。インストールファイルが初めて作成されるとき、そのインストールファイルは署名されている場合と、未署名の場合とがある。インストールファイルの署名は、例えば、Microsoft(登録商標)Authenticode(登録商標)などの、ソフトウェアを使用してインストールファイルに証明書 (certificate) を含めることによって行うことができる。そのあと、モバイルコンピューティングデバイス102は、その証明書を対応するロールマスクと突き合わせる。各ロールマスクは、該当証明書と対応付けることができる。次に、モバイルコンピューティングデバイス102は、そのロールマスクを対応するインストールファイルに割り当てる。インストールファイルが未署名であるか、証明書がロールマスクと一致していなかったときは、インストールファイルのソースが未認証であるときの、該当セキュリティ特権に対応するデフォルトロールマスクが割り当てられる。ケースによっては、このことは、セキュリティ特権がまったくないことを意味する場合もある。
【0064】
ロールマスクが与えられているとき、インストール命令のいずれかが許可されていないときは、コンフィギュレーションマネージャ303は、上述したようにインストールを保留にすることができる。このようにすると、モバイルコンピューティングデバイス102は、新ソフトウェアのプロバイダが、モバイルコンピューティングデバイス102全体にとって支障となるインストールオペレーションを、悪意にまたは不注意に実行することから保護されることになる。
【実施例】
【0065】
以下では、XMLベースのインストール命令501の例について説明する。以下に示すXMLは、次のように例示XMLドキュメントの中の最高レベルのネストされたタグを示している。
1. <?xml version="1 .0" encoding="UTF-8"?>
2. <wap-provisioningdoc>
3-47 [Content]
48 </wap-provisioningdoc>
【0066】
XMLコードの各行の左側の数字は、例示XMLドキュメントの中の行順序番号を示している。このコード例に示すように、XMLドキュメントは48行になっている。行1、2および48だけは、ネスト(組み込み)されたXMLコードの最高レベルを示している。従って、行1、2および48だけは、明示的に上記にリストされている。XMLコードの下位レベルは、"[Content]"という用語で総称的に示されており、これは、XMLドキュメントの行3から行47までに対応している。"[Content]"という用語が指定されている個所では、そのことは、XMLドキュメントの中の対応する行の正確なコンテンツは、以下で詳しく説明されていることを示している。
【0067】
XMLドキュメントオーサリング (document authoring) 分野の精通者に周知であるように、行1は、XMLドキュメントのXMLバージョンとXMLドキュメントのテキスト符号化フォーマットを示している。ここでは、行1は、XMLバージョンがバージョン1.0であり、テキストがUTF-8テキスト符号化フォーマットを使用して符号化されていることを示している。
【0068】
行2と行48は、それぞれ開始タグと終了タグであり、その間の内容(つまり、"[Content]"と示された行3 − 47)は、WAPプロビジョニングドキュメントであることを示している。コンフィギュレーションマネージャ303は、WAPプロビジョニングドキュメントを、コンフィギュレーション命令を含むドキュメントタイプであるものと認識する。しかし、ソフトウェアをインストールする場合は、WAPプロビジョニングドキュメントはファイル命令を含むこともできる。
【0069】
次は、WAPプロビジョニングドキュメント内のエレメントを示し、これは、XMLドキュメントの行3から行7までに対応している。
【0070】
【数1】

このエレメント全体は、あるオペレーションが"Registry"で行われることを示しているので(行3参照)、このことは、そのエレメントがコンフィギュレーション命令であることを示している。コンフィグレーションロケーションは、
【0071】
【数2】

で定義されたディレクトリ構造の中にある(行4参照)。コンフィギュレーション設定値は、"Filename"コンフィギュレーション設定値であり、そこには、値 "newgame" が入ることになっている(行5参照)。なお、値"newgame"の意味は、XMLドキュメント内のそのコンテキストによって判断することができる。
【0072】
しかし、XML WAPプロビジョニングドキュメントは、コンフィギュレーション設定命令を収めているだけでなく、実際のファイルオペレーション命令も収めている。次のXMLドキュメントは、XMLドキュメントのファイルオペレーションエレメントであるコードの領域を定義している。
8 <characteristic type="FileOperation">
9-46 [Content]
47 </characteristic>
行8と行47は、それぞれ開始タグと終了タグであり、行9から行46までのコンテンツはファイルオペレーションを表していることを示している。次のXMLコードは、そのコンテンツの一部を構成するエレメントを表している。
【0073】
【数3】

行9はコメントコードであり、これは実行されない。行9は、ディレクトリ
【0074】
【数4】

でファイルオペレーションが行われることを示している。行10は、行25の終了タグに対応する開始タグであり、行11から行24までのコンテンツがそのディレクトリに適用されることを示している。
【0075】
コメント行11が示すように、行12と行13は、それぞれ開始タグと終了タグであり、ディレクトリ
【0076】
【数5】

を作成する。なお、テキスト"%CE1%"は、テキスト"Program Files"を符号化したものである。コメント行14が示すように、行15から行19までは、インストールしようとするファイル503の1つで、"CAB 00hpopen.001"と名づけたファイルの圧縮バージョンから、"hpopen.txt"と名づけたファイルを抽出する。コメント行20が示すように、行21から行24までは、インストールしようとするファイル503の1つで、"CAB 00hpopen.002"と名づけたファイルの圧縮バージョンから、"AirSync.txt"と名づけたファイルを抽出する。抽出されたファイルの各々のデスティネーション(宛先)は、ディレクトリ
【0077】
【数6】

である。
【0078】
次のXMLエレメントは、ファイルコピーオペレーションを示している。
【0079】
【数7】

このエレメントは、"email.bmp"と名づけたファイルを、一時ディレクトリ
【0080】
【数8】

からデスティネーションディレクトリ
【0081】
【数9】

にコピーする。
【0082】
次のXMLエレメントは、ファイル移動オペレーションであることを示している。
【0083】
【数10】

このエレメントは、"profile_move.bmp"と名づけたファイルを、一時ディレクトリ
【0084】
【数11】

から新しいファイル名"profile.bmp"でデスティネーションディレクトリ
【0085】
【数12】

に移動する。
【0086】
次のXMLエレメントは、ファイル削除オペレーションであることを示している。
【0087】
【数13】

このエレメントは、"email.bmp"ファイルを一時ディレクトリ
【0088】
【数14】

から削除する。
【0089】
なお、インストールは、モバイルコンピューティングデバイスの既存コンポーネントに作用を及ぼす (leverage) ことによって行われる。コンフィギュレーションマネージャ303に要求されることは、ファイルオペレーションエレメントを認識し、解析したあと、それがファイルCSP308であるか、レジストリCSP309であるかに関係なく、命令を該当コンフィグレーションサービスプロバイダに渡すだけである。従って、新ソフトウェアをインストールするために要求される増加処理オーバヘッドは、コンフィギュレーション設定値を用意するだけの場合に比べて、最小限になる。従って、本発明の原理によると、新ソフトウェアをモバイルコンピューティングデバイスにインストールすることが効率化される一方で、インストールプロセス期間にロールバックとセキュリティが保証されることになる。
【0090】
本発明は、本発明の精神または基本的特徴から逸脱しない限り、他の具体的形態で具現化することが可能である。上述した実施形態、実施例は、すべての点で単なる例示であり、これらに限定されるものではない。従って、本発明の範囲は、上述した説明からではなく、特許請求の範囲の請求項に記載されている内容によって判断されるものである。請求項の意味と等価範囲に属するすべての変更は、本発明の範囲内に含まれるものである。
【図面の簡単な説明】
【0091】
【図1】インストールファイルをモバイルコンピューティングデバイスに配信するために使用できるネットワーク環境の例を示す図である。
【図2】本発明の原理に従って新ソフトウェアをインストールすることができるモバイルコンピューティングデバイスの動作可能コンポーネントを示す図である。
【図3】新ソフトウェアをモバイルコンピューティングデバイスにインストールするために使用できる種々コンポーネントのアーキテクチャを示す図である。
【図4】コンフィギュレーションマネージャのロールバック機能とセキュリティ機能を使用して新ソフトウェアをモバイルコンピューティングデバイスにインストールするための方法のフローチャートを示す図である。
【図5】インストールしようとするファイルが、そのインストールを指示する命令セクションと共に含まれているインストールファイルのデータ構造を示す図である。
【符号の説明】
【0092】
100 ネットワーク環境
101 サーバ
102 モバイルコンピューティングデバイス
103 ワイヤレスリンク
104 インストール通知
105 インストールファイル
201 ユーザインタフェース
202 出力ユーザインタフェース
203 入力ユーザインタフェース
204 スピーカ
205 ディスプレイ
206 マイクロホン
207 ダイアリングコントロール
208 ナビゲーションコントロール
209 アンテナ
210 バス
211 プロセッサ
212 メモリ
213 オペレーティングシステム
214 アップリケーションプログラム
215 プログラムモジュール
216 プログラムデータ
300 アーキテクチャ
301 スケジューラ
302 インストーラ
303 コンフィギュレーションマネージャ
304 パーサ
305 ロールバックドラフタ
306 アンインストーラ
307 セキュリティモジュール
308 ファイルCSP
309 レジストリCSP
310 ロールバックドキュメント
500 データ構造
501 インストール命令
502 スキーマ
503 インストールされるファイル

【特許請求の範囲】
【請求項1】
コンピュータ実行可能命令セットのソースと複数のモバイルコンピューティングデバイスを含むネットワーク環境において、該モバイルコンピューティングデバイスの少なくとも1つがプロセッサと、インストールモジュールを格納したメモリと、ユーザインタフェースと、ネットワーキングデバイスを含み、かつそのメモリに格納されているコンフィギュレーションマネージャのロールバック機能を使用してトランザクションとしてコンピュータ実行可能命令セットを含むファイルを前記ソースからインストールするための方法であって、該方法は、
前記モバイルコンピューティングデバイスにインストールしようとしている少なくとも1つの前記ファイルの少なくともあるバージョンに前記ネットワーキングデバイスを介してアクセスする前記モバイルコンピューティングデバイスの前記インストールモジュールによる行為と、
少なくとも1つの前記ファイルを前記モバイルコンピューティングデバイスにどのようにインストールするかを定義しているコンピュータ実行可能インストール命令に前記ネットワーキングデバイスを介してアクセスする前記モバイルコンピューティングデバイスの前記インストールモジュールによる行為であって、該インストール命令は、前記ファイルに添付され、前記モバイルコンピューティングデバイスに関連するコンフィギュレーションマネージャによって直接に解釈可能であるフォーマットを有する、行為と、
前記インストール命令を前記コンフィギュレーションマネージャにより実行する行為と、
前記コンフィギュレーションマネージャにより、前記コンピュータ実行可能命令の少なくとも1つについて、該コンピュータ実行可能命令の実行が許可されているかどうかを判断する行為と、
を含むことを特徴とする方法。
【請求項2】
請求項1に記載の方法において、前記モバイルコンピューティングデバイスにインストールしようとしている少なくとも1つの前記ファイルの少なくともあるバージョンにアクセスする前記モバイルコンピューティングデバイスの前記インストールモジュールによる前記行為は、
前記モバイルコンピューティングデバイスにインストールしようとしている少なくとも1つの前記ファイルの圧縮バージョンにアクセスする前記モバイルコンピューティングデバイスの前記インストールモジュールによる行為と、
前記モバイルコンピューティングデバイスにインストールしようとしている少なくとも1つの前記ファイルの圧縮バージョンを伸張(圧縮解除)する前記モバイルコンピューティングデバイスの前記インストールモジュールによる行為と、
を含むことを特徴とする方法。
【請求項3】
請求項1に記載の方法において、前記モバイルコンピューティングデバイスにインストールしようとしている少なくとも1つの前記ファイルの少なくともあるバージョンにアクセスする前記モバイルコンピューティングデバイスの前記インストールモジュールによる前記行為は、
前記モバイルコンピューティングデバイスにインストールしようとしている少なくとも1つの前記ファイルの未圧縮バージョンにアクセスする前記モバイルコンピューティングデバイスの前記インストールモジュールによる行為を含むことを特徴とする方法。
【請求項4】
請求項1に記載の方法において、少なくとも1つの前記ファイルを前記モバイルコンピューティングデバイスにどのようにインストールするかを定義しているコンピュータ実行可能インストール命令にアクセスする前記モバイルコンピューティングデバイスの前記インストールモジュールによる前記行為は、
前記コンフィギュレーションマネージャによって解釈可能なスキーマに準拠する構造になっているインストール命令にアクセスする前記モバイルコンピューティングデバイスの前記インストールモジュールによる行為を含むことを特徴とする方法。
【請求項5】
請求項1に記載の方法において、少なくとも1つの前記ファイルを前記モバイルコンピューティングデバイスにどのようにインストールするかを定義しているコンピュータ実行可能インストール命令にアクセスする前記モバイルコンピューティングデバイスの前記インストールモジュールによる前記行為は、
拡張可能マークアップ言語 (eXtensible Markup Language − XML) に準拠する構造になっているインストール命令にアクセスする前記モバイルコンピューティングデバイスの前記インストールモジュールによる行為を含むことを特徴とする方法。
【請求項6】
請求項1に記載の方法において、少なくとも1つの前記ファイルを前記モバイルコンピューティングデバイスにどのようにインストールするかを定義しているコンピュータ実行可能インストール命令にアクセスする前記モバイルコンピューティングデバイスの前記インストールモジュールによる前記行為は、
少なくとも1つの前記インストール命令にアクセスして、ファイルの圧縮バージョンを抽出する前記モバイルコンピューティングデバイスの前記インストールモジュールによる行為を含むことを特徴とする方法。
【請求項7】
請求項1に記載の方法において、前記少なくとも1つのファイルを前記モバイルコンピューティングデバイスにどのようにインストールするかを定義しているコンピュータ実行可能インストール命令にアクセスする前記モバイルコンピューティングデバイスの前記インストールモジュールによる前記行為は、
少なくとも1つの前記インストール命令にアクセスして、前記ファイルを前記メモリ内のソースディレクトリロケーションからデスティネーションディレクトリロケーションに移動する前記モバイルコンピューティングデバイスの前記インストールモジュールによる行為を含むことを特徴とする方法。
【請求項8】
請求項1に記載の方法において、前記少なくとも1つのファイルを前記モバイルコンピューティングデバイスにどのようにインストールするかを定義しているコンピュータ実行可能インストール命令にアクセスする前記モバイルコンピューティングデバイスの前記インストールモジュールによる前記行為は、
少なくとも1つの前記インストール命令にアクセスして、前記ファイルを前記メモリ内のソースディレクトリロケーションからデスティネーションディレクトリロケーションにコピーする前記モバイルコンピューティングデバイスの前記インストールモジュールによる行為を含むことを特徴とする方法。
【請求項9】
請求項1に記載の方法において、前記少なくとも1つのファイルを前記モバイルコンピューティングデバイスにどのようにインストールするかを定義しているコンピュータ実行可能インストール命令にアクセスする前記モバイルコンピューティングデバイスの前記インストールモジュールによる前記行為は、
少なくとも1つの前記インストール命令にアクセスして、前記ファイルを削除する前記モバイルコンピューティングデバイスの前記インストールモジュールによる行為を含むことを特徴とする方法。
【請求項10】
請求項1に記載の方法において、前記少なくとも1つのファイルを前記モバイルコンピューティングデバイスにどのようにインストールするかを定義しているコンピュータ実行可能インストール命令にアクセスする前記モバイルコンピューティングデバイスの前記インストールモジュールによる前記行為は、
少なくとも1つの前記インストール命令にアクセスして、コンフィギュレーション設定値を変更する前記モバイルコンピューティングデバイスの前記インストールモジュールによる行為を含むことを特徴とする方法。
【請求項11】
請求項1に記載の方法において、前記インストール命令を前記コンフィギュレーションマネージャにより実行する前記行為は、
前記コンフィギュレーションマネージャにより前記インストール命令を直接に実行する行為を含むことを特徴とする方法。
【請求項12】
請求項1に記載の方法において、前記インストール命令を前記コンフィギュレーションマネージャにより実行する前記行為は、
前記コンフィギュレーションマネージャにより前記インストール命令を少なくとも1つの他のモジュールに実行する行為を含むことを特徴とする方法。
【請求項13】
請求項12に記載の方法において、前記コンフィギュレーションマネージャにより前記インストール命令を少なくとも1つの他のモジュールに実行する前記行為は、
ファイルコマンドを前記メモリに格納されているファイルコンフィギュレーションサービスプロバイダに前記コンフィギュレーションマネージャから渡す行為を含むことを特徴とする方法。
【請求項14】
請求項12に記載の方法において、前記コンフィギュレーションマネージャにより前記インストール命令を少なくとも1つの他のモジュールに実行する前記行為は、
前記コンフィギュレーションコマンドを前記メモリに格納されているレジストリコンフィギュレーションサービスプロバイダに前記コンフィギュレーションマネージャから渡す行為を含むことを特徴とする方法。
【請求項15】
請求項1に記載の方法において、前記コンフィギュレーションマネージャにより、前記コンピュータ実行可能命令の少なくとも1つについて、該コンピュータ実行可能命令の実行が許可されているかどうかを判断する行為は、
前記コンフィギュレーションマネージャにより前記コンピュータ実行可能命令セットに対応するロールマスクにアクセスする行為であって、該ロールマスクは前記メモリに格納されている、行為と、
前記コンフィギュレーションマネージャにより前記インストール命令の実行が許可されているかどうかを、前記ロールマスクを使用して判断する行為と、
を含むことを特徴とする方法。
【請求項16】
請求項1に記載の方法において、前記コンフィギュレーションマネージャにより前記インストール命令の実行が許可されているかどうかを、前記ロールマスクを使用して判断する前記行為は、
前記コンフィギュレーションマネージャにより前記インストール命令の少なくとも1つが無許可であることを判断する行為を含むことを特徴とする方法。
【請求項17】
請求項16に記載の方法において、さらに、
前記コンフィギュレーションマネージャにより前記インストール命令の少なくとも1つが無許可であることを判断する前記行為のあと、前記コンフィギュレーションマネージャにより前記インストール命令を実行する前記行為を中止または保留にする前記モバイルコンピューティングデバイスの前記インストールモジュールによる行為を含むことを特徴とする方法。
【請求項18】
コンピュータ実行可能命令セットのソースと複数のモバイルコンピューティングデバイスを含むネットワーク環境において、該モバイルコンピューティングデバイスの少なくとも1つがプロセッサと、インストールモジュールを格納したメモリと、ユーザインタフェースと、ネットワーキングデバイスを含み、かつそのメモリに格納されているコンフィギュレーションマネージャのロールバック機能を使用してトランザクションとしてコンピュータ実行可能命令セットを含むファイルを前記ソースからインストールするための方法であって、該方法は、
前記モバイルコンピューティングデバイスにインストールしようとしている少なくとも1つの前記ファイルの少なくともあるバージョンに前記ネットワーキングデバイスを介してアクセスする前記モバイルコンピューティングデバイスの前記インストールモジュールによる第1の行為と、
少なくとも1つの前記ファイルを、前記コンフィギュレーションマネージャを使用してトランザクションの形でインストールする前記モバイルコンピューティングデバイスの前記インストールモジュールによる第2の行為を含み
前記第2の行為は、
少なくとも1つの前記ファイルを前記モバイルコンピューティングデバイスにどのようにインストールするかを定義しているコンピュータ実行可能インストール命令に前記ネットワーキングデバイスを介してアクセスする前記モバイルコンピューティングデバイスの前記インストールモジュールによる行為であって、該インストール命令は、前記ファイルに添付され、前記モバイルコンピューティングデバイスに関連するコンフィギュレーションマネージャによって直接に解釈可能であるフォーマットを有する、行為と、
前記コンフィギュレーションマネージャのセキュリティ機能を使用して、少なくとも1つの前記ファイルを条件付きでインストールする第3の行為と
を含むことを特徴とする方法。
【請求項19】
請求項18に記載の方法において、
前記第3の行為は、
前記コンフィギュレーションマネージャにより前記インストール命令の少なくとも1つについて、該インストール命令の実行が許可されているかどうかを判断する行為を含むことを特徴とする方法。
【請求項20】
コンピュータ実行可能命令セットのソースと複数のモバイルコンピューティングデバイスを含むネットワーク環境において、該モバイルコンピューティングデバイスの少なくとも1つに、該モバイルコンピューティングデバイスのメモリに格納されたコンフィギュレーションマネージャのロールバック機能を使用して、トランザクションとしてコンピュータ実行可能命令セットを含むファイルを前記ソースからインストールするためのコンピュータプログラムであって、
前記コンピュータプログラムは、少なくとも1つのコンピュータ読み取り可能な記録媒体に格納され、
前記モバイルコンピューティングデバイスにインストールしようとしている少なくとも1つの前記ファイルの少なくともあるバージョンに前記モバイルコンピューティングデバイスのネットワーキングデバイスを介してアクセスするためのコンピュータ実行可能命令と、
少なくとも1つの前記ファイルを前記モバイルコンピューティングデバイスにどのようにインストールするかを定義しているコンピュータ実行可能インストール命令に前記ネットワーキングデバイスを介してアクセスするためのコンピュータ実行可能命令であって、該インストール命令は、前記ファイルに添付され、前記モバイルコンピューティングデバイスに関連するコンフィギュレーションマネージャによって直接に解釈可能であるフォーマットを有する、コンピュータ実行可能命令と、
前記インストール命令を前記コンフィギュレーションマネージャにより実行するためのコンピュータ実行可能命令と、
前記インストール命令の前記実行が該インストール命令の少なくとも1つについて許可されているかどうかを判断するためのコンピュータ実行可能命令と
を含むことを特徴とするコンピュータプログラム。
【請求項21】
請求項20に記載のコンピュータプログラムにおいて、前記少なくとも1つのコンピュータ読取可能媒体は、物理ストレージ媒体であることを特徴とするコンピュータプログラム。
【請求項22】
請求項20に記載のコンピュータプログラムにおいて、前記インストール命令の前記実行が許可されているかどうかを判断するためのコンピュータ実行可能命令は、
前記コンピュータ実行可能命令セットに対応するロールマスクにアクセスするためのコンピュータ実行可能命令と、
前記コンピュータ実行可能インストール命令の前記実行が許可されているかどうかを、前記ロールマスクを使用して判断するためのコンピュータ実行可能命令と、
を含むことを特徴とするコンピュータプログラム。
【請求項23】
請求項20に記載のコンピュータプログラムにおいて、前記コンピュータ実行可能インストール命令の前記実行が許可されているかどうかを判断するための前記コンピュータ実行可能命令は、
前記コンピュータ実行可能インストール命令の少なくとも1つが無許可であることを判断するためのコンピュータ実行可能命令を含むことを特徴とするコンピュータプログラム。
【請求項24】
請求項23に記載のコンピュータプログラムにおいて、前記コンピュータプログラムには、さらに、
前記コンピュータ実行可能命令の少なくとも1つが無許可であることを判断する前記コンフィギュレーションマネージャの行為のあと、前記コンピュータ実行可能命令を実行する前記コンフィギュレーションマネージャの行為を中止するためのコンピュータ実行可能命令が含まれていることを特徴とするコンピュータプログラム。
【請求項25】
コンピュータ実行可能命令セットのソースと複数のモバイルコンピューティングデバイスを含むネットワーク環境において、該モバイルコンピューティングデバイスの少なくとも1つに、該モバイルコンピューティングデバイスのメモリに格納されたコンフィギュレーションマネージャのロールバック機能を使用して、トランザクションとしてコンピュータ実行可能命令セットを含むファイルを前記ソースからインストールするためのコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータプログラムは、
前記モバイルコンピューティングデバイスにインストールしようとしている少なくとも1つの前記ファイルの少なくともあるバージョンに前記モバイルコンピューティングデバイスのネットワーキングデバイスを介してアクセスするためのコンピュータ実行可能命令と、
少なくとも1つの前記ファイルを前記モバイルコンピューティングデバイスにどのようにインストールするかを定義しているコンピュータ実行可能インストール命令に前記ネットワーキングデバイスを介してアクセスするためのコンピュータ実行可能命令であって、該インストール命令は、前記ファイルに添付され、前記モバイルコンピューティングデバイスに関連するコンフィギュレーションマネージャによって直接に解釈可能であるフォーマットを有する、コンピュータ実行可能命令と、
前記インストール命令を前記コンフィギュレーションマネージャにより実行するためのコンピュータ実行可能命令と、
前記インストール命令の前記実行が該インストール命令の少なくとも1つについて許可されているかどうかを判断するためのコンピュータ実行可能命令と
を含むことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項26】
請求項25に記載のコンピュータ読み取り可能な記録媒体において、
前記モバイルコンピューティングデバイスにインストールしようとしている少なくとも1つの前記ファイルの少なくともあるバージョンを少なくとも表しているフィールドと、
少なくとも1つの前記ファイルを前記モバイルコンピューティングデバイスにどのようにインストールするかを定義しているコンピュータ実行可能インストール命令であって、前記インストール命令は、前記モバイルコンピューティングデバイスに関連するコンフィギュレーションマネージャによって直接に解釈可能であるフォーマットを有するデータ構造をさらに含み、
前記フィールドは、インストールしようとする前記少なくとも1つのファイルの圧縮バージョンを含むことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項27】
請求項25に記載のコンピュータ読み取り可能な記録媒体において、前記インストール命令は、拡張可能マークアップ言語 (eXtensible Markup Language − XML) 規格に準拠する構造になっていることを特徴とするピュータ読み取り可能な記録媒体。
【請求項28】
請求項25に記載のコンピュータ読み取り可能な記録媒体において、前記コンピュータ読み取り可能な記録媒体は物理ストレージ媒体であることを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項29】
コンピュータ実行可能命令セットのソースと複数のモバイルコンピューティングデバイスを含むネットワーク環境で使用されるシステムであって、
該システムは、該モバイルコンピューティングデバイスのメモリに格納されたコンフィギュレーションマネージャのセキュリティ機能を使用して前記ソースから前記コンピュータ実行可能命令を含むファイルを該モバイルコンピューティングデバイスにインストールするためのものであり、該システムは、
前記コンピュータ実行可能命令セットを解析(パース)して、インストールしようとする1つまたは2つ以上の前記ファイルをインストール命令に組み入れるように構成されたインストールモジュールと、
該インストールモジュールから前記インストール命令を受け取るように構成されたコンフィギュレーションマネージャと、
該インストール命令のうち、ファイルまたはディレクトリオペレーションを表しているものを、前記コンフィギュレーションマネージャから受け取るように構成されていると共に、該受け取ったインストール命令を実行するように構成されたファイルコンフィギュレーションサービスプロバイダと、
前記インストール命令のうち、コンフィギュレーション設定オペレーションを表しているものを、コンフィギュレーションマネージャから受け取るように構成されていると共に、該受け取ったインストール命令を実行し、前記コンピュータ実行可能命令の少なくとも1つについて、該コンピュータ実行可能命令の実行が許可されているかどうかを判断するように構成されたレジストリコンフィギュレーションサービスプロバイダと、
を備え、
前記インストールモジュール、前記コンフィギュレーションマネージャ、前記ファイルコンフィギュレーションサービスプロバイダ、および前記レジストリコンフィギュレーションサービスプロバイダは前記モバイルコンピューティングデバイスのメモリに予め格納されてていることを特徴とするシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2009−87358(P2009−87358A)
【公開日】平成21年4月23日(2009.4.23)
【国際特許分類】
【出願番号】特願2008−256901(P2008−256901)
【出願日】平成20年10月1日(2008.10.1)
【分割の表示】特願2002−354364(P2002−354364)の分割
【原出願日】平成14年12月5日(2002.12.5)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】