(57)【要約】  ブックマークファイルが、永続記憶装置に記憶され、インストール処理中、種々のタスクが完了すると更新される。ブックマークファイルは、インストール処理が開始されるときに読み込まれるため、インストール処理が失敗して再開される場合、最後に成功裏に完了したタスクの次の位置からインストール処理が継続する。ブックマークファイルはまた、インストール処理中にユーザインタフェースから集められるデータを含む。インストール処理が再開されるとき、ある実施形態では、ユーザが修正できるようにユーザインタフェース内にデータを提示する。インストール処理は、インストールのタスクのシーケンスに加えて種々のタスクの何らかのエラー処理のシーケンスを定義するメタデータを含む構成ファイル内に定義される。
2010522932.tif 000002
【特許請求の範囲】
【請求項１】
複数のセットアップモジュール（１３６）、
前記複数のセットアップモジュールの少なくとも１つにより使用される構成データを含む構成ファイル（１１０）、
実行すべき前記セットアップモジュールのシーケンスの定義を含むシーケンスファイル（１０６）、
永続記憶装置内のブックマークファイル（１０４）であって、前記ブックマークファイルは適合されて最終完了セットアップモジュールを記憶するファイル、および
次のセットアップモジュール（２１６）を前記シーケンスファイルおよび前記ブッ    クマークファイルから決定し、
前記次のセットアップモジュールが起動する前に、第１のエントリを前記ブックマークファイル（２２０）に記憶し、
前記次のセットアップモジュールを実行させ（２２２）、
前記次のセットアップモジュールが成功裏に実行を完了したことを検出し（２２４）、
前記次のセットアップモジュールが成功裏に実行を完了した後に、第２のエントリを前記ブックマークファイルに記憶する（２３０）、
ように適合されたセットエンジン（１０２）と
を備えることを特徴とするシステム。
【請求項２】
複数のユーザインタフェースモジュール、および
前記複数のセットアップモジュールの少なくとも１つと、前記複数のユーザインタフェースモジュールの少なくとも１つとの間の、少なくとも１つの関係の関係定義を含む、セットアップファイル
をさらに備えることを特徴とする請求項１に記載のシステム。
【請求項３】
前記セットアップエンジンが
前記次のセットアップモジュールに対して関連するユーザインタフェースモジュールを決定し、
前記関連するユーザインタフェースモジュールを表示する
ようにさらに適合されることを特徴とする請求項２に記載のシステム。
【請求項４】
前記セットアップモジュールが、実行可能ファイルとインタープリット（解釈）されたファイルとから成る群からの、少なくとも１つを含むことを特徴とする請求項１に記載のシステム。
【請求項５】
前記シーケンスファイルが、第１のセットアップモジュールと第２のセットアップモジュールとの間の依存関係をさらに定義することを特徴とする請求項１に記載のシステム。
【請求項６】
前記シーケンスファイルが、並行に実行される前記セットアップモジュールの少なくとも２つをさらに定義することを特徴とする請求項１に記載のシステム。
【請求項７】
前記シーケンスファイルが、前記セットアップモジュールの１つに対する少なくとも１つのエラー処理シーケンスをさらに定義することを特徴とする請求項１に記載のシステム。
【請求項８】
前記セットアップエンジンが、
前記次のセットアップモジュールの実行中にエラーが発生したことを判定し、
前記エラー処理シーケンスを実行する
ようにさらに適合されることを特徴とする請求項７に記載のシステム。
【請求項９】
前記構成ファイルおよび前記シーケンスファイル、
前記構成ファイルおよび前記ブックマークファイル、
前記シーケンスファイルおよび前記ブックマークファイル、
前記構成ファイル、前記シーケンスファイル、および前記ブックマークファイル
から成る群から少なくとも１つの組合せを含む単一ファイルを
さらに備えることを特徴とする請求項１に記載のシステム。
【請求項１０】
最後のセットアップモジュールが成功裏に完了したことを検出するよう適合されたセットアップノーティファイアであって、前記システムが起動するときに実行されるよう適合されるノーティファイアを
さらに備えることを特徴とする請求項１に記載のシステム。
【請求項１１】
セットアップモジュールの前記シーケンスが、前記システム上のソフトウェアコンポーネントのためのインストール処理を定義することを特徴とする請求項１に記載のシステム。
【請求項１２】
セットアップモジュールの前記シーケンスが、第２のシステム上のソフトウェアコンポーネントのためのインストール処理を定義することを特徴とする請求項１に記載のシステム。
【請求項１３】
実行されるべきセットアップモジュールのシーケンスを含むシーケンスファイルを読み込むステップ（２０４）、
最終完了セットアップモジュールを含むブックマークファイルを読み込むステップ（２０６）、
前記シーケンスファイルと前記ブックマークファイルから次のセットアップモジュールを決定するステップ（２１６）、
前記次のセットアップモジュールが起動する前に第１のエントリを前記ブックマークファイルに記憶するステップ（２２０）、
前記次のセットアップモジュールを実行させるステップ（２２２）、
前記次のセットアップモジュールが成功裏に実行を完了したことを判定するステップ（２２４）、および
前記次のセットアップモジュールが成功裏に実行を完了した後に、第２のエントリを前記ブックマークファイルに記憶するステップ（２３０）
を備えることを特徴とする方法。
【請求項１４】
前記次のセットアップモジュールの実行中にエラーが発生したことを検出するステップ、および
前記シーケンスファイル内に定義されるエラー処理シーケンスを実行するステップ
をさらに含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
エラーが発生したことを前記検出するステップが、システムが起動するときに実行されることを特徴とする請求項１４に記載の方法。
【請求項１６】
請求項１３の方法を実行するよう適合されたコンピュータ実行可能命令を含むことを特徴とするコンピュータ可読媒体。
【請求項１７】
最後に試みられたセットアップモジュールが起動されたが完了しなかったことを検出するステップ（２０８）であって、前記検出するステップがブックマークファイルを読み込むことにより実行されるステップ、
実行されるべき複数のセットアップモジュールの定義を含むシーケンスファイルを読み込むステップ（２０４）、
前記複数のセットアップモジュールの少なくとも１つにより使用される構成データを含む構成ファイルを読み込むステップ（２０６）であって、前記構成データが最後に試みられたモジュールのデータを含むステップ、
前記セットアップモジュールの少なくとも１つと、少なくとも１つのユーザインタフェースモジュールの間の関係定義を含むセットアップファイルを読み込むステップ（３０４）、
前記最後に試みられたセットアップモジュールに対して関連するユーザインタフェースモジュールを決定するステップ（３０４）、および
前記関連するユーザインタフェースモジュールを、前記最後に試みられたモジュールのデータの少なくとも一部と共に表示するステップ（３０８）
を含むことを特徴とする方法。
【請求項１８】
前記最後に試みられたセットアップモジュールに対するエラー処理シーケンスを決定するステップであって、前記エラー処理シーケンスが前記シーケンスファイルから決定されるステップ、および
前記エラー処理シーケンスを実行するステップ
をさらに含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
最後に試みられたセットアップモジュールを前記検出するステップが、システムが起動するときに実行されることを特徴とする請求項１７に記載の方法。
【請求項２０】
請求項１７の方法を実行するよう適合されたコンピュータ実行可能命令を含むことを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
オペレーティングシステムおよび他の複雑なコンピュータアプリケーションのセットアップおよびインストールは、複雑であり時には時間がかかる場合がある。場合によっては、セットアップまたはインストールの処理中、特にオペレーティングシステムのインストール中に問題が起こると、コンピュータシステムが停止してしまうことがあるが、これは、インストールが、エラートラッピングおよびリカバリの機能が利用可能でない低いレベルにあるからである。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
オペレーティングシステムおよび複雑なコンピュータアプリケーションがより一層複雑になるにつれて、インストールの時間がかなり長くなる。インストール中にエラーにより問題が起き、インストールが最初からやり直される状況であると、ユーザは苛立たされることになる。
【課題を解決するための手段】
【０００３】
ブックマークファイルが、永続記憶装置に記憶され、インストール処理中、種々のタスクが完了すると更新される。ブックマークファイルは、インストール処理が開始されるときに読み込まれるため、インストール処理が失敗して再開される場合、最後に成功裏に完了したタスクの次の位置からインストール処理が継続する。ブックマークファイルはまた、インストール処理中にユーザインタフェースから集められるデータを含む。インストール処理が再開されるとき、ある実施形態では、ユーザが修正できるようにユーザインタフェース内にデータを提示する。インストール処理は、インストールのタスクのシーケンスに加えて種々のタスクの何らかのエラー処理のシーケンスを定義するメタデータを含む構成ファイル内に、定義される。
【０００４】
この要約は、以下の「発明を実施するための形態」でさらに述べる概念を選択して簡略化した形式で紹介するために提供するものである。この要約は、請求の主題の重要な特徴または主要な特徴を確認することを意図しておらず、請求の主題の範囲を限定するために使用されることを意図してもいない。
【図面の簡単な説明】
【０００５】
【図１】セットアップシステムを示す実施形態の図である。
【図２】セットアップシーケンスを示す実施形態のフローチャート図である。
【図３】ユーザインタフェースタスクのシーケンスを示す実施形態のフローチャート図である。
【発明を実施するための形態】
【０００６】
ブックマークファイルは、セットアップまたはインストールルーチンの間中、更新されるため、ルーチンの最後に成功裏に完了した段階で、ルーチンが再開される。ブックマークファイルまたは構成ファイルは、ユーザがルーチン中に入力するデータを含み、使用されて、セットアップルーチンの失敗後の再開時に、ユーザがデータを更新または変更することを可能にする。
【０００７】
ブックマークファイルは、セットアップルーチンが最後の既知の良好な構成状態にロールバックし、インストールまたはセットアップを再開するのを可能にするため、それまでの段階が繰り返される必要が無い。これにより、不具合が発生するときの複雑なインストール処理において、かなりの時間が節約される。
【０００８】
いくつかの例において、構成ファイルが使用されて、メタデータを用いてインストールシーケンスを定義する。 特定のタスクが、特定のシーケンスおよびある特定のタスクに適用される任意のエラー処理と同様に、実行される。 
【０００９】
本明細書では特に、用語「インストール」および「セットアップ」は、同義に使用されて、プログラム、オペレーティングシステム、アプリケーション、または他のソフトウェアコンポーネントをシステムに載せ、ソフトウェアを使用できるようにする処理を指す。これらの用語はまた、ハードウェアデバイスを構成すること、または、使用するデバイスの準備に使用される任意の他の準備行動を含む。いくつかの例において、インストール処理が、実行されないデータファイルをインストールすることであり得、一方他の例においては、インストール処理が、実行可能またはインタープリット（解釈）可能なソフトウェア機能またはプログラムのインストールを含む。
【００１０】
主題の特定の実施形態を使用して、特定の発明の態様を図解する。実施形態は、例のみの目的のためであり、種々の修正および代替の形式がある。添付の請求項は、請求項により定義されるような発明の精神および範囲内にある全ての修正、等価物、および代替物を対象とすることを意図する。
【００１１】
本明細書を通して、同様の参照番号は図面についての記載全体にわたって同じ構成要素を表す。
【００１２】
構成要素が「接続される」または「連結される」とされるとき、構成要素は直接接続されるか、もしくは一緒に連結されることが可能であり、または、１つもしくは複数の介入する構成要素がまた存在する。対照的に、構成要素が「直接接続される」または「直接連結される」とされるとき、介入する構成要素は何も存在しない。
【００１３】
主題は、デバイス、システム、方法、および／またはコンピュータプログラム製品として具現化される。従って、いくつかのまたは全ての主題は、ハードウェアにおいて、および／または、ソフトウェア（ファームウェア、常駐ソフトウェア、マイクロコード，状態機械、ゲートアレイ等を含む）において、具現化される。さらに、主題は、コンピュータ使用可能またはコンピュータ可読の記憶媒体上でコンピュータプログラム製品の形式をとり得、該媒体は、命令実行システムによりまたは命令実行システムと共に使用するために、該媒体上で具現化されるコンピュータ使用可能またはコンピュータ可読のプログラムコードを有する。本文書の文脈において、コンピュータ使用可能またはコンピュータ可読の媒体は、命令実行システム、装置もしくはデバイスにより、または命令実行システム、装置もしくはデバイスと共に使用するために、プログラムを含有、記憶、通信、伝播、または移送することが可能である任意の媒体である。
【００１４】
コンピュータ使用可能またはコンピュータ可読の媒体は、例えば、電子、磁気、光学、電磁、赤外線、もしくは半導体系、装置、デバイス、または伝播媒体であるが、これに限定されない。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含む。
【００１５】
コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータ等の情報を記憶するための任意の方法または技術において実装される、揮発性および不揮発性媒体、着脱可能および着脱不可能媒体を含む。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋｓ）もしくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、所望の情報を記憶するのに使用可能であり、命令実行システムによりアクセス可能な、任意の他の媒体が含まれるが、これに限定されない。なお、コンピュータ使用可能またはコンピュータ可読の媒体は、プログラムが印刷された紙または別の適切な媒体であるが、それはプログラムを、例えば、紙または他の媒体の光学走査を介して電子的にキャプチャし、次にコンパイルし、インタープリットし、あるいは、必要であれば適切な様式で処理し、そしてコンピュータメモリに記憶することが可能であるからである。
【００１６】
通信媒体は典型的には、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを、搬送波または他の移送機構等の変調されたデータ信号に具現化し、任意の情報配信媒体を含む。用語「変調されたデータ信号」は、情報を信号に符号化するような様式で設定または変更された、１つまたは複数のその特徴を有する信号を意味する。限定ではなく例として、通信媒体には、有線ネットワークまたは直接有線接続等の有線媒体、ならびに、音響、ＲＦ、赤外線および他の無線媒体等の無線媒体が含まれる。任意の上記のものの組合せもまた、コンピュータ可読媒体の範囲に含まれるべきである。
【００１７】
主題が、コンピュータ実行可能命令の一般的文脈において具現化されるとき、実施形態は、１つまたは複数のシステム、コンピュータ、または他のデバイスにより実行されるプログラムモジュールを含む。一般的に、プログラムモジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。典型的には、プログラムモジュールの機能性は、種々の実施形態において所望されるように組み合わせられまたは分配される。
【００１８】
図１は、セットアップシステムを示す実施形態１００の図である。セットアップエンジン１０２は、ブックマークファイル１０４、シーケンスファイル１０６、セットアップファイル１０８、および構成ファイル１１０を使用して、セットアップルーチンを実行する。
【００１９】
セットアップエンジン１０２は、セットアップエンジン１０２により実行される行動が種々のファイル内に定義されるように、設計される。いくつかのまたは全てのセットアップエンジン１０２の行動を編集可能なファイル内に定義することによって、種々のファイルを変更することにより、行動を変更、向上、拡大、および拡張しえる。多くの場合、セットアップエンジン１０２の行動は、第三者により拡張可能である。
【００２０】
ブックマークファイル１０４、シーケンスファイル１０６、セットアップファイル１０８、および構成ファイル１１０等の種々のファイルは、別々の個々のファイルであり得、または、１つまたは複数のファイルに結合される。いくつかの例において、シーケンスファイル１０６、セットアップファイル１０８、および構成ファイル１１０は、３つの区分を有する単一のファイルであり得、または、他にシーケンスファイル１０６とセットアップファイル１０８の組合せ、またはセットアップファイル１０８と構成ファイル１１０の組合せが可能である。
【００２１】
ブックマークファイル１０４を使用してセットアップシーケンスの各段階を記憶するため、セットアップシーケンスが何からの理由で再開される場合に、セットアップシーケンスが最後に成功裏に完了したタスクまたは段階の後から、再開される。
【００２２】
シーケンスファイル１０６は、特定の段階と、インストールまたはセットアッププロシージャを実行するのに使用される段階のシーケンスと、を定義する。いくつかの例において、単一の段階が、ソフトウェアアプリケーション全体をインストールする、または、ハードウェアコンポーネントを構成する、等のデバイスのインストールの大部分を含む。そのような例において、段階のシーケンスは、少数の段階を有する。他の例において、単一の段階が、ソフトウェアまたはハードウェアのコンポーネントをインストールまたは構成する、多数の他の段階と共に使用される、小さな処理である。そのような例において、段階のシーケンスは、インストール処理の数百または数千の段階を有する。インストール処理において各段階により実行される機能の幅は、１つの実施形態から別の実施形態まで、および、実施形態内の１つの段階から別の段階まで、と幅広く変化する。
【００２３】
セットアップファイル１０８は、インストール処理内の特定の段階を、特定のユーザインタフェースモジュール１２４および特定のセットアップモジュール１３６に関連付ける。各ユーザインタフェースモジュール１２４は、ユーザインタフェース定義、または、１つまたは複数の段階により使用される情報表示・データキャプチャ機能の他の部分である。各ユーザインタフェースモジュール１２４は、セットアップシーケンス内の１つまたは複数の段階で使用されるユーザインタフェースの定義である。いくつかの実装において、２つまたはそれ以上のユーザインタフェースモジュール１３６が、単一のセットアップタスクに割り当てられる。
【００２４】
ユーザインタフェースモジュール１２４は、ユーザインタフェースの任意のタイプの定義である。例えば、いくつかの実施形態において、ユーザインタフェースモジュール１２４は、ユーザに対してデータを提示し収集するスタンドアロンの実行可能ファイルである。他の実施形態において、ユーザインタフェースモジュール１２４は、ユーザインタフェースを定義するＨＴＭＬ等のマークアップ言語で定義される、ユーザインタフェースである。
【００２５】
セットアップモジュール１３６は、インストールの段階を実行する、任意のタイプの実行可能な、インタープリットされた、または他のファイルもしくは機能である。いくつかの例において、ユーザインタフェースモジュール１２４は、特定のタスクまたは段階を実行するセットアップモジュール１３６と一組にされる。セットアップモジュール１３６は、システムプロセッサにより直接実行されるスタンドアロンの実行可能な画像またはファイルである。他の実施形態において、セットアップモジュール１３６は、インタープリットされたファイル、動的にロードされたライブラリ内の機能、または、任意の他のアーキテクチャである。いくつかの場合において、セットアップモジュール１３６は、大きなファイル内の別個の呼び出し可能な機能、実行可能な機能、または、他のアーキテクチャである。 
【００２６】
各セットアップモジュール１３６は、データ入力を受け取ることにより実行されるように構成される。データ入力は、いくつかのデバイスに渡って重複してインストールが実行されるとき、または、インストールが実行されるべきであり任意のユーザの入力が特には所望されないとき等の、ユーザインタフェースを利用せずにインストール処理が実行される実施形態において、有用である。
【００２７】
ユーザインタフェースモジュール１２４から集められたデータは、構成ファイル１１０内に記憶され得、そのデータはセットアップモジュール１３６へ転送される。構成ファイル１１０は、セットアップ処理またはインストールのタスクを実行する全てのセットアップモジュール１３６により使用されるデータを含有する。多くの例において、構成ファイル１１０は、デバイスの正確な構成の記録として役立つ。
【００２８】
セットアップエンジン１０２は、将来の動作のためにデバイスを構成する目的で、デバイス上で作動される。そのような例において、セットアップエンジン１０２は、オペレーティングシステム、アプリケーション、ソフトウェアコンポーネントをインストールする、ハードウェア設定を構成する、または、任意の他のセットアップの動作等のタスクを実行する。他の例において、セットアップエンジン１０２は、第２のデバイスを構成する目的で、第１のデバイス上で作動される。第２のデバイスは、ネットワーク接続、バス、または、他の通信媒体上で接続される。いくつかの場合において、セットアップエンジン１０２は、セットアップの動作を、第２のデバイスに後で挿入され、第２のデバイスにより作動される、ディスクドライブまたはメモリデバイス等の、記憶媒体上で実行する。
【００２９】
ユーザインタフェースモジュール１２４およびセットアップモジュール１３６は、いくつかのモジュール内で定義されるため、セットアップの段階のシーケンスおよび構成が容易に素早く変更される。別の段階をインストールシーケンスに追加するために、例えば、ユーザインタフェースモジュール１２４およびセットアップモジュール１３６が、ユーザインタフェースモジュールのグループに追加され、セットアップファイル１０８およびシーケンスファイル１０６内で参照される。
【００３０】
セットアップモジュール１３６の１つを実行中、エラー状態が存在するかまたは何らかの他の理由で、セットアップモジュールが中断され得、セットアップエンジン１０２がユーザインタフェースモジュール１２４の１つを呼び出して、対話型機能を実行する。いくつかの例において、対話型機能を使用して、ユーザから何らかの情報を収集し、ユーザに手動でタスクを実行させるように促し、または、エラー状態をキャプチャして処理することができる。
【００３１】
セットアップノーティファイア１１２は、ブックマークファイル１０４を読み込んで最終完了セットアップモジュール１１４を判定する、ソフトウェアまたはハードウェアコンポーネントである。最終完了セットアップモジュール１１４がインストールシーケンス内で最終のセットアップモジュールでない場合、セットアップノーティファイア１１２が、セットアップエンジン１０２を起動する。いくつかの場合において、セットアップノーティファイア１１２は、コンピュータデバイスに対するブートストラップ動作中にロードされる、デーモンまたは他のアプリケーションである。
【００３２】
セットアップノーティファイア１１２は、スタートアップルーチンまたはインストールシーケンスを再開する、機構である。いくつかの例において、特定のソフトウェアコンポーネントの設定またはインストールへの変更は、ソフトウェアコンポーネントのロードが適切になされるために、デバイスを再起動する必要がある。ブックマークファイル１０４内にイベントのログをとった後、セットアップノーティファイア１１２が、コンポーネントがインストールされた後にシステムが再起動されたことを検出し、次にセットアップエンジン１０２に動作を開始させる。
【００３３】
セットアップノーティファイア１１２はまた、電源異常、コールドリブート、またはシステム機能の他の異常終了の後に、インストール処理を再開させる働きをする。多くの場合、セットアップノーティファイア１１２は、セットアップモジュール１３６が起動したが、完了していないことを検出することが可能である。そのような場合において、種々のエラートラッピングおよびリカバリ処理が実行される。 
【００３４】
セットアップエンジン１０２は、シーケンスファイル１０６を読み込みかつインストールシーケンス内の種々の段階を実行させる、セットアッププレゼンタ１１６を含む。セットアッププレゼンタ１１６は、どの段階をどの順番で実行すべきかを判定することによりインストールの段階を管理し得、この判定には、２つまたはそれ以上の段階が並行して実行されるかどうか、または２つの段階が段階間に依存関係が存在するときに順に実行されるかどうか、を判定することが含まれる。セットアッププレゼンタ１１６は、セットアップユーザインタフェース１１８に、データを収集する種々のユーザインタフェースモジュール１２４を実行させ得、一方、セットアッププレゼンタ１１６は、セットアップエグゼキュータ１３２に種々のセットアップモジュール１３６を起動させる。
【００３５】
いくつかの実施形態において、セットアッププレゼンタ１１６は、インストールシーケンスの個々の段階のための全般的なシーケンサおよびスケジューラとして機能する。セットアッププレゼンタ１１６は、各段階を連続して、またはいくつかの段階を並行して、実行するように構成される。いくつかの場合において、セットアッププレゼンタ１１６は、段階へのユーザインタフェースクエリの実行、段階の実行、そして第２の段階へのユーザインタフェースクエリの実行等をなする。そのような場合において、ユーザは、インストールシーケンスのいくつかの局面の間、システムと対話し、従ってよりかかわりが深くなる。
【００３６】
他の場合において、２つまたはそれ以上のユーザインタフェースクエリが、関連するセットアップモジュール１３６が起動される前に、実行される。そのような場合の一例において、セットアッププレゼンタ１１６は、全てのユーザインタフェースモジュール１２４を、セットアップモジュール１３６が実行される前に、実行させる。そのような例は、ユーザが、インストール処理の種々の段階が進行するのを待つこと無しに、適切な情報を素早く入力するのを可能にする。
【００３７】
シーケンスファイル１０６は、特定のシーケンスの段階間に依存関係を含有する。そのような依存関係が存在するとき、セットアッププレゼンタ１１６は、第２の段階の実行を第１の段階が完了するまで待機させる。他の場合において、モジュール間または段階間の依存関係は、実行されるべきシーケンスの段階を定義することにより暗に示される。セットアップ段階の他の定義は、並行して実行される２つまたはそれ以上の段階の明白にまたは暗に示される定義を含む。
【００３８】
シーケンスファイル１０６は、エラーが検出されたときに実行されるエラーリカバリのルーチンまたはシーケンスを含有する。エラーリカバリルーチンは、エラーが検出されたときにいつでも実行される汎用エラーリカバリルーチンであり得、または、エラーリカバリルーチンは、特定のエラーが戻されたとき、もしくは特定のセットアップモジュール１３６の実行中に実行される。
【００３９】
セットアップユーザインタフェース１１０は、構成ファイル１１０にクエリを行って、既存のデータ１２０を戻し、既存のデータ１２２をユーザインタフェースモジュール１２４へ転送する。特定のユーザインタフェースモジュール１２４が、既存のデータ１２２の一部をユーザインタフェース内に表示する。いくつかの例において、ユーザは、既存のデータ１２２を選択、編集もしくは変更することができ、または、他のデータを上書きもしくは入力するよう促される。ユーザが、ユーザインタフェースモジュール１２４にデータを編集または変更することを終了した後、ユーザインタフェースデータ１２６は、セットアップユーザインタフェース１１８へ転送され、ユーザインタフェースデータ１２８は、構成ファイル１１０へ記憶するために転送される。
【００４０】
セットアッププレゼンタ１１６が、セットアップユーザインタフェース１１８に段階を実行させるとき、セットアップユーザインタフェース１１８は、セットアップファイル１０８を参照して、そのステップを表示する適切なユーザインタフェースモジュール１２４を決定する。セットアップファイル１０８は、セットアップの段階へのユーザインタフェースモジュール１２４およびセットアップモジュール１３６のクロスリファレンスを含有する。
【００４１】
セットアップファイル１０８は、セットアップルーチンの特定の実装のために修正される。例えば、セットアップシーケンスは、特定のアプリケーションのために定義され、シーケンスファイル１０６に記憶される。しかし、セットアップシーケンスを異なる国に異なる言語で展開するためには、セットアップファイル１０８を修正して、第二言語で供給されるユーザインタフェースモジュール１２４を参照する。インストール処理を異なるタイプのデバイスに移植して、その異なるデバイスに該デバイス上で動作するように、異なるセットアップモジュール１３６が供給されるときは、同様に、セットアップファイル１０８を修正して、異なるセットアップモジュール１３６を参照する。
【００４２】
セットアップエグゼキュータ１３２が、セットアップモジュール１３６の１つを呼び出すとき、構成データ１３０がそのモジュールのために構成ファイル１１０から読み込まれ、構成データ１３４が、セットアップモジュール１３６へ転送される。セットアップモジュール１３６は、エラーが発生するとき、セットアップエグゼキュータ１３２により調べられるとき、または、セットアップモジュール１３６がそのタスクを完了したときに、ステータス１３８をセットアップエグゼキュータ１３２に周期的に返する。
【００４３】
セットアップエグゼキュータ１３２は、ステータス１４０のメッセージまたはログを送信し得、これらは永続記憶装置媒体内にあるブックマークファイル１０４内に記憶される。いくつかの実施形態において、セットアップエグゼキュータ１３２は、セットアップモジュール１３６が起動されるとき、ステータスがセットアップモジュール１３６から返されるとき、エラーが発生するとき、セットアップモジュールが成功裏にそのタスクを完了したとき、または任意の他の重大な時に、メッセージまたはログを記憶する。
【００４４】
ブックマークファイル１０４は、ハードドライブ、フラッシュメモリデバイス、または、セットアップノーティファイア１１２により読み込み可能な他の不揮発性メモリ等の永続記憶装置内に記憶される。システムのスタートアップ中またはブートストラップルーチン中に（ブックマークファイルの記憶が）実行されると、セットアップノーティファイア１１２は、セットアップモジュール１３６が突然またはエラーの呼び出しで終了したことを認識し、その情報をセットアッププレゼンタ１１６へ転送する。セットアッププレゼンタ１１６は、シーケンスファイル１０６から、特定のエラーリカバリシーケンスが実行されるべきであると判定する。
【００４５】
いくつかの例において、エラーリカバリシーケンスは、汎用エラーを処理するよう設計された、または、特定のエラーに合せられた、特別のユーザインタフェースモジュール１２４およびセットアップモジュール１３６の実行を含む。利用可能なエラーリカバリシーケンスが無い例においては、セットアッププレゼンタ１１６は、最後に成功裏に完了したタスクへ、または、最後に試みられたセットアップモジュール１３６に転送された構成データ１３０に影響するユーザインタフェースモジュール１２４へ、インストールシーケンスをロールバックする。いくつかの例において、セットアッププレゼンタ１１６は、最後に試みられたセットアップモジュール１３６の前の２つまたはそれ以上の段階へ、インストールシーケンスをロールバックし得、ユーザが、設定を変更する機会を得、もしくはトラブルシューティングできるように、または問題を修正できるようにする。
【００４６】
いくつかの実施形態は、セットアッププレゼンタ１１６、セットアップユーザインタフェース１１８、およびセットアップエグゼキュータ１３２により記述される機能のそれぞれに対して、別個のモジュールまたはソフトウェアコンポーネントを有する。他の実施形態において、セットアッププレゼンタ１１６、セットアップユーザインタフェース１１８、およびセットアップエグゼキュータ１３２により記述される、２つまたは３つの機能が、１つまたは複数のソフトウェアコンポーネント内に結合される。
【００４７】
図２は、セットアップシーケンスを示す実施形態２００のフローチャート図である。実施形態２００は、シーケンスファイル内に定義されるようないくつかのセットアップモジュールを実行し、各セットアップモジュールが実行される前後にブックマークファイルにログをとる方法を図解する。加えて、実施形態２００は、ブックマークファイルに基づきセットアップシーケンスを再開させる機構、また、いくつかのエラーリカバリ機構を示す。
【００４８】
処理がブロック２０２にて開始される。ブロック２０４において、シーケンスファイルが読み込まれて、セットアップモジュールのシーケンスが決定され、ブロック２０６において、ブックマークファイルが読み込まれて、現在の状態がそのシーケンスの途中であるかどうかを判定する。
【００４９】
ブロック２０７において、処理の開始点がシーケンスの途中ではない場合、ブロック２１６において、処理は次のセットアップモジュールを続け、それは第１のセットアップモジュールになる。
【００５０】
ブロック２０７において、処理の開始点がシーケンスの途中であり、ブロック２０８において、最後のセットアップモジュールが適切に終了した場合、ブロック２１６において、処理は次のセットアップモジュールを続ける。これらの状態は、例えば、セットアップシーケンスが、セットアップシーケンス２００が動作しているデバイスの再開を含む場合に、起こり得、ネットワークまたは他のオペレーティングシステムのコンポーネントに影響するオペレーティングシステムおよびアプリケーションのインストールにおいて共通する。
【００５１】
ブロック２０８において、最後のセットアップモジュールが適切に終了しなかった場合、エラーまたは何らかの異常が発生した可能性がある。いくつかの場合において、電源異常により、セットアップモジュールの実行が成功裏に完了する前に停止した可能性がある。他の場合において、セットアップモジュールのユーザの入力が不適切だったため、セットアップモジュールの実行が不安定になった、または停止した可能性がある。
【００５２】
ブロック２１０において、エラーリカバリシーケンスが定義される場合、ブロック２１２において、エラーリカバリシーケンスが実行される。エラーリカバリシーケンスは、特定のエラー状態に対して、または特定のセットアップモジュール内で発生する特定のエラーに対して、定義される。いくつかの実施形態において、エラーリカバリシーケンスが、一シーケンス内で発生する任意のエラーに対して、定義される。エラーリカバリシーケンスは、特定のユーザインタフェースモジュールを含み得、また、エラーに応答して実行される特定のセットアップモジュールをも含む。
【００５３】
ブロック２１０において、エラーリカバリシーケンスが定義されない場合、ブロック２１２において、シーケンスは最後に成功裏に完了したセットアップモジュールへロールバックされる。ロールバックは、最後に成功裏に実行されたセットアップモジュールであるセットアップモジュールの、ユーザインタフェースの段階に対するものである。いくつかの実施形態において、シーケンスは、最後に試みられたセットアップモジュールのユーザインタフェースモジュールへロールバックされ得、一方、他の実施形態において、シーケンスは、失敗したセットアップモジュールが依存していたセットアップモジュールのユーザインタフェースモジュールへ、ロールバックされる。各実施形態は、異なるロールバック機構およびシーケンスを有する。 
【００５４】
いくつかの場合において、ブックマークファイルを調べて、セットアップモジュールが繰り返し失敗したかどうかを判定する。そのような場合において、実施形態は、セットアップモジュールの各失敗に対して、追加の段階をセットアップシーケンスにロールバックする。各段階がロールバックされると、それまでに完了したユーザインタフェースモジュールが示され得、ユーザが、設定を変更すること、異なる値を試すこと、または失敗のトラブルシューティングを行うことができるようにする。
【００５５】
ブロック２１６において、次のセットアップモジュールが決定される。次のセットアップモジュールは、ブロック２０４において読み込まれたシーケンス内の次のセットアップモジュールである。いくつかの例において、セットアップモジュールは、セットアップシーケンス２００と並行して実行される。例えば、セットアップモジュールは、セットアップシーケンスが種々の段階を実行している間に、起動され実行される。いくつかの例において、次のセットアップモジュールは、それまでのモジュールが成功裏に完了することに依存するか、または、次のセットアップモジュールが実行される前にセットアップモジュールから出力されるデータ値または他のものを要求する。そのような場合において、セットアップシーケンス２００は、段階２１６において、それまでのセットアップモジュールが成功裏に完了するまで、中断する。
【００５６】
ブロック２１８において、ユーザインタフェースのタスクが実行される。ユーザインタフェースのタスクは、後に図３で定義するが、ユーザに表示および対話を提供してセットアップモジュールに送られるデータを決定することを含む。
【００５７】
ブロック２２０において、セットアップモジュールが起動されていることを示すログがブックマークファイルに入力される。ブロック２２２において、セットアップモジュールが実行される。
【００５８】
ブロック２２４において、セットアップモジュール内でエラーが発生し、ブロック２２６においてエラーリカバリシーケンスが定義される場合、ブロック２２８において、エラーリカバリシーケンスが実行される。ブロック２２８のエラーリカバリシーケンスは、任意のタイプのエラーリカバリシーケンスであり得、例えば、ブロック２１２について上記で検討したようなものである。多くの場合、特定のエラーリカバリシーケンスが特定のエラーに対して定義される。
【００５９】
ブロック２２６において、エラーリカバリシーケンスが定義されない場合、またはブロック２２８において、エラーリカバリシーケンスが完了した場合、ブロック２２７において、ユーザは、セットアップモジュールを再実行する、ユーザインタフェースからデータを編集する、それまでのセットアップモジュールをロールバックする、またはセットアップモジュールを中止する、のどれかを選択する機会を与えられる。他の実施形態は、ユーザが利用可能な上記の選択肢のうちのいくつかまたは全てを有し得、一方、さらに他の実施形態は、追加の選択肢を有する。実施形態２００において図解される選択肢は、異なる実施形態において実装される可能性のある選択肢の単なる例示であり、網羅することを意味するのではない。
【００６０】
ブロック２２７の選択肢は、ブロック２２４においてエラーが検出されキャプチャされると、エラーが処理される異なる方法を反映する。一機構により、ユーザがセットアップモジュールへ送られる値を編集し、セットアップモジュールを再実行することを可能にする。そのような選択肢により、処理がブロック２１８に続く。別の選択肢においては、ユーザは、ブロック２１４で、それまでのセットアップモジュールをロールバックすることが可能であり得、いくつかの実施形態においては、いくつかの段階をロールバックすることが許可される。ユーザが、例えば、前の段階で入力されたパラメータの値を変更することを希望する場合、ユーザは、ブロック２１４において、ロールバックを実行することが選択可能である。前の段階にロールバックすることにより、ユーザは、異なる値を使用して、いくつかのそれまでのセットアップモジュールを再実行することが可能である。
【００６１】
ブロック２２７において、ユーザが選択する別の選択肢は、現在のセットアップモジュールを中止することである。中止の選択肢は、現在実行中のセットアップモジュールを、まだ停止していない場合に停止させ得、ブロック２３１において、セットアップモジュールが中止されたことを示すログが、ブックマークファイルに書き込まれる。いくつかの実施形態において、続くセットアップモジュールが、その続くセットアップモジュールが中止されたセットアップモジュールに依存しない場合に、実行される。
【００６２】
ブロック２２４において、エラーが発生しない場合、ブロック２３０において、セットアップモジュールが成功裏に完了したことを示すログが、ブックマークファイルに書き込まれる。ブロック２３２において、さらなるセットアップモジュールが実行されるべく残っている場合は、処理はブロック２１６に続き、現在のセットアップモジュールがインクリメントされ、開始される。そうでなければ、ブロック２３４において、処理は終了する。
【００６３】
実施形態２００は、いくつかのエラー検出およびリカバリの選択肢を有する、ユーザインタフェースの段階を実行しかつセットアップモジュールを実行する、１つの簡素な機構を図解する。多くの場合、シーケンスファイルは、異なる状況に対する、より複雑な条件およびエラー処理ルーチンを含む。例えば、特定のエラーが検出されると、潜在的にエラー状態の原因となったユーザ指定の値が、新しい値を求めてユーザに対して提示され、セットアップモジュールが再開される。同じエラーが２回検出される場合、シーケンスが異なる点にロールバックされ、異なるユーザ指定の値が編集のためにハイライトされる。そのようなロジックおよびシーケンスの分岐は、ブロック２１２または２２８において、シーケンスファイル内またはエラーリカバリルーチン内に定義される。
【００６４】
図３は、図２に表されるユーザインタフェースのタスク２１８の実施形態のフローチャート図である。
【００６５】
ブロック３０２において、ユーザインタフェースのタスクが開始される。ブロック３０４において、セットアップファイルが読み込まれて、次のセットアップモジュールに関連するユーザインタフェースモジュールを決定する。ブロック３０６において、構成ファイルが読み込まれて、次のセットアップモジュールのための既存の構成データを決定する。
【００６６】
ブロック３０８において、ユーザインタフェースモジュールが、少なくともいくつかの既存の構成データと共に編集のために表示される。編集が完了すると、ブロック３１０において、更新されたデータが構成ファイルに記憶され、ブロック３１２において、処理が終了する。
【００６７】
ユーザインタフェースモジュールは、ユーザが、読み込み、編集、変更、入力、選択、またはセットアップモジュールで使用するデータの決定、をすることを可能にする、任意のタイプのユーザインタフェースである。いくつかの例において、ユーザインタフェースモジュールは、何らかのデータの分析、修正、解釈、または、ユーザインタフェースの入力をセットアップモジュールで受け取り可能なデータに変更するための変換、を実行する。
【００６８】
ユーザインタフェースモジュールは、特定のセットアップモジュールに対して指定されるユーザインタフェース定義の部分である。ユーザインタフェースモジュールは、ユーザインタフェースのための任意のアーキテクチャまたは機構である。いくつかの実施形態において、別個のユーザインタフェースモジュールが、各セットアップモジュールに対してＨＴＭＬ等のマークアップ言語で作成され、ブラウザまたはＨＴＭＬを表示可能な他の表示を通して表示される。他の実施形態において、ユーザインタフェースモジュールは、ウィザードまたは他の複合スクリーン、プログレッシブユーザインタフェース機構を含み得、それを介してユーザは、種々の質問に答え、またはデータを入力するようプロンプトされる。
【００６９】
他の実施形態において、ユーザインタフェースモジュールは、特定のユーザインタフェースおよびデータキャプチャタスクを実行する、スタンドアロンの実行可能プログラムである。そのような実施形態のあるバージョンにおいて、いくつかのユーザインタフェースモジュールは、特定のユーザインタフェースモジュールに対して指定されるユーザインタフェースのタスクの一部分を実行する、単一の実行可能プログラムに含まれる。ユーザインタフェースの機構および実装の詳細は、デバイスの種類、デバイスの物理的特徴、ならびにユーザインタフェース機能を実行するのに利用可能なハードウェアおよびソフトウェアコンポーネントによって、かなり多様である。
【００７０】
主題の前述の記載は、説明および記載の目的のために提示されたものである。網羅的であること、または、主題を開示する正確な形式に限定することは意図されず、他の修正および変形が上記の技術に照らして可能である。実施形態は、本発明の原理およびその実用的な応用を最も良く説明するために選択され記載されたものであり、それによって、他の当業者が、本発明を種々の実施形態および種々の修正において、熟考された特定の使用に適合されるように、最も良く利用することを可能にする。添付の請求項は、従来の技術によって限定される場合を除いて、他の代替の実施形態を含む、と解釈されることが意図される。
【図１】
2010522932.tif 000003
【図２】
2010522932.tif 000004
【図３】
2010522932.tif 000005
【国際調査報告】
2010522932.tif 000006
2010522932.tif 000007