(57)【特許請求の範囲】
【請求項１】
コンピュータ・システムの障害部分を検出して修復する方法であって、
前記コンピュータ・システムにインストールされたアプリケーションのファイルの各々について、メモリにロードされ、計算および命令が実行されるランタイム環境における変更を検出するステップと、
前記コンピュータ・システム上にインストールされた各アプリケーションについてＸＭＬファイルとして提供される作業定義に記述され、コンフリクトを判定するための制約条件のセットと、各アプリケーションの前記ランタイム環境における前記ファイルへの前記変更とを比較するステップと、
前記制約条件と前記変更との比較により前記変更が前記制約条件のセットとコンフリクトすると決定された場合には、前記ファイルについてデジタル署名済みの正しいバージョンの前記作業定義内に記述された前記制約条件を使用し、障害を受けたファイルを修復することにより不揮発性記憶装置に格納されたパーシステント記憶を修正し、前記コンフリクトを解決するステップと、
前記変更が前記制約条件のセットによるコンフリクトを生成しないと決定された場合には、前記変更によりアプリケーションの前記作業定義内に記述された設定のうち、影響を受けた設定をランタイム環境において更新するステップと、
を有することを特徴とするコンピュータ・システム障害修復方法。
【請求項２】
前記ファイルの前記デジタル署名済みの正しいバージョンは、ネットワークを介してサーバから取り出されたものであることを特徴とする請求項１に記載のコンピュータ・システム障害修復方法。
【請求項３】
前記ネットワークは、インターネットであることを特徴とする請求項２に記載のコンピュータ・システム障害修復方法。
【請求項４】
コンピュータ・システムの障害部分を検出して修復するためにデータ処理システムで使用されるコンピュータ読み取り可能媒体内のコンピュータ・プログラム記憶媒体であって、前記記憶媒体は、
前記コンピュータ・システムにインストールされたアプリケーションのファイルの各々について、メモリにロードされ、計算および命令が実行されるランタイム環境における変更を検出する第１命令と、
前記コンピュータ・システム上にインストールされた各アプリケーションについてＸＭＬファイルとして提供される作業定義に記述され、コンフリクトを判定するための制約条件のセットと、各アプリケーションの前記ランタイム環境における前記ファイルへの前記変更とを比較する第２命令と、
前記制約条件と前記変更との比較により前記変更が前記制約条件のセットとコンフリクトすると決定された場合には、前記ファイルについてデジタル署名済みの正しいバージョンの前記作業定義内に記述された前記制約条件を使用し、障害を受けたファイルを修復することにより不揮発性記憶装置に格納されたパーシステント記憶を修正し、前記コンフリクトを解決する第３命令と、
前記変更が前記制約条件のセットによるコンフリクトを生成しないと決定された場合には、前記変更によりアプリケーションの前記作業定義内に記述された設定のうち、影響を受けた設定をランタイム環境において更新する第４命令と
が記録されたことを特徴とするコンピュータ可読な記憶媒体。
【請求項５】
前記ファイルの前記デジタル署名済みの正しいバージョンは、ネットワークを介してサーバから取り出されたものであることを特徴とする請求項４に記載の記憶媒体。
【請求項６】
前記ネットワークは、インターネットであることを特徴とする請求項５に記載の記憶媒体。
【請求項７】
コンピュータ・システムの障害部分を検出して修復するシステムであって、
前記コンピュータ・システムにインストールされたアプリケーションのファイルの各々について、メモリにロードされ、計算および命令が実行されるランタイム環境における変更を検出する手段と、
前記コンピュータ・システム上にインストールされた各アプリケーションについてＸＭＬファイルとして提供される作業定義に記述され、コンフリクトを判定するための制約条件のセットと、各アプリケーションの前記ランタイム環境における前記ファイルへの前記変更とを比較する手段と、
前記制約条件と前記変更との比較により前記変更が前記制約条件のセットとコンフリクトすると決定された場合には、前記ファイルについてデジタル署名済みの正しいバージョンの前記作業定義内に記述された前記制約条件を使用し、障害を受けたファイルを修復することにより不揮発性記憶装置に格納されたパーシステント記憶を修正し、前記コンフリクトを解決する手段と、
前記変更が前記制約条件のセットによるコンフリクトを生成しないと決定された場合には、前記変更によりアプリケーションの前記作業定義内に記述された設定のうち、影響を受けた設定をランタイム環境において更新する手段と、
を有することを特徴とするコンピュータ・システム。
【請求項８】
前記ファイルの前記デジタル署名済みの正しいバージョンは、ネットワークを介してサーバから取り出されたものであることを特徴とする請求項７に記載のシステム。
【請求項９】
前記ネットワークは、インターネットであることを特徴とする請求項８に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にコンピュータ・ソフトウェア、特にデータ処理システムにおいてファイル及び設定の障害を検出し、かつ修復する方法の分野に関する。なお、本発明は、米国において同日出願された「複合アプリケーション構成の開発、配備、及び管理のための強カプセル化環境」と題された米国特許出願シリアル番号０９／５５２８６３号（出願人管理番号ＡＵＳ００００１７８ＵＳ１）、「アプリケーション・ランタイム表示から制御された分離形式によるカプセル化アプリケーション生成方法」と題された米国特許出願シリアル番号０９／５５２８６４号（出願人管理番号ＡＵＳ００００１７９ＵＳ１）、及び「強カプセル化環境内の同一構成体に異なるビューを提供するためのアプリケーション開発サーバ及び機構」と題された米国特許出願シリアル番号０９／５５２８６１号（出願人管理番号ＡＵＳ００００１８１ＵＳ１）に関連したものである。
【０００２】
【従来の技術】
現在、コンピュータ・システムは異なるソフトウェア開発者によって供給された一連のインストールを介して構築されるもので、各々によって１種類以上の異なるソフトウェア・コンポーネントがインストールされる。何がアプリケーションを含むかを記述する工業規格は存在しない。この記述なしでは、各アプリケーションの完全性をプロテクトすることが可能な基準サービスを実行する方法は存在しない。
【０００３】
標準的で、単純的で、拡大縮小可能な、障害が生じたアプリケーションを検出し、かつ該アプリケーションを修復するためのプラットホーム独立型機構が求められている。アプリケーションは、様々なかたちで障害を受ける可能性がある。
以下のオペレーションの各々は、コンピュータシステム内の１つ以上のアプリケーションに対して障害を与える可能性がある。すなわち、
・新規アプリケーションのインストール
・アプリケーションの再設定
・アプリケーションの使用
・アプリケーション・エラー
・ユーザ・エラー
・ウイルス
【０００４】
産業における現在のアプローチはどちらかと言えば「借金を増やしていく」ようなアプローチであり、各アプリケーションのインストール手順に対する責任は各アプリケーション開発者にある。インストールの間、任意の２つ以上のアプリケーション間で何らかのエラー又はコンフリクト生ずることでコンピュータシステム構成が強力に損なわれるかもしれない。アプリケーションは、標的（ターゲット）コンピュータシステムに既にインストールされた他のアプリケーションの必要条件及び依存条件に対するアクセスを持たない。このような情報無しで、コンピュータ・システムのファイル及び設定に対する変更が全く安全に行われることはない。それにもかかわらず、ファイル及び設定の変更は、コンピュータシステムへのアプリケーションのインストールに必要とされている。
【０００５】
アプリケーションの再設定は、他のアプリケーションによって必要とされた、あるいは使用されたファイル及び構成の設定に対して変更を加えることも必要とする可能性があり、またそのような変更は他のアプリケーションの１つ以上を動作不能にしてしまう可能性もある。
【０００６】
アプリケーションの使用は、コンピュータシステム内のファイル及び設定を時折更新する必要があろう。このことは互いに「行儀がよい(well behaved)」アプリケーションを要求する。コンフリクト(conflict)は、偶然又はアプリケーション内のエラーのいずれかによって、それでも生ずる可能性がある。それでもアプリケーション開発者の優先順位は常に該開発者のアプリケーションにあり、該開発者のアプリケーションがコンフリクトに勝つことの保証について以外は、他のアプリケーションとの強力なコンフリクトを検討することではない。各アプリケーションの要求及び制約条件が定義されていないので、各開発者はアプリケーションがインストールされた全てのシステムの構成管理にも責任を負うようになり、また該開発者のアプリケーションが使用されるかもしれない全ての構成でのコンフリクトを取り扱うことに責任を負う。しかし、このような責任が今までに各アプリケーション開発者の最も優先されるものとなったことは希である。
【０００７】
アプリケーションを開発し、かつ実行する現在のシステムでは、所定のアプリケーションによって他のアプリケーションが損なわれるのを防ぐためにアプリケーション間に設けられる障壁はかなり弱いものが定められる。所定のアプリケーションを優先処理するならば、どんなコンフリクトでも競合アプリケーションの実行を防ぐことが可能である。このような状態では、アプリケーション開発者が己のアプリケーションを適切に構成することが可能である限り、競合アプリケーションによるコンフリクトを避けようとする意欲はわずかである。各アプリケーションは、それ自身の構成と事前に不可欠なデバイス、ドライバ、アプリケーション、及びシステム設定に対するアクセスとを確認するために、それ自身のインストールとランタイム・コードとに依存している。
【０００８】
ユーザ自身はファイル又は構成設定を、偶然に、正確にプロシージャに従うことが失敗したりして問題を生じる可能性がある。しばしば、全てのファイル及び構成設定がユーザによる変更を受ける。
【０００９】
現実には、非常に低い確率で生ずる全てのアプリケーションの障害はウィルスの攻撃が原因である。それでもウィルス攻撃によって膨大な量のデータが障害を被る可能性がある。
【００１０】
現在、外部からのウィルス攻撃による障害からコンピュータ・システムを守るための一般に受けいられている方法は、サード・パーティ・ベンダのウィルス保護ソフトウェア製品の使用を介したものである。しかし、そのような製品は最近のウィルスの検出を可能とするために頻繁に更新されなければならない。ソフトウェアが更新されてから作られた新たなウィルスはいずれもウィルス保護ソフトで検出することはできず、コンピュータが適切に動作する上で必要なファイルをウィルスが汚染又は破損させることが可能となる。
【００１１】
【発明が解決しようとする課題】
したがって、障害が生じたファイル及びアプリケーションを自動的に検出し、それらを適当な状態に回復させるコンピュータ・システム障害修復方法、コンピュータ・プログラム記憶媒体、及びシステムが求められている。
【００１２】
【課題を解決するための手段】
本発明は、コンピュータ・システムの障害を受けた部分を検出し、かつ修復するためのコンピュータ・システム障害修復方法、コンピュータ・プログラム記憶媒体、及びシステムを提供する。本発明の好ましい実施形態では、障害検出及び修復機能がコンピュータ・システムの複数の変化を監視し、かつ検出する。障害検出及び修復機能は、コンピュータ・システムにインストールされた各アプリケーションについての作業定義によって定義された制約の設定に対してそれらの変化を比較する。作業定義は、各アプリケーションの不変な部分を定義し、また各アプリケーションによってコンピュータ・システム上に置かれた制約を定義する。この制約の設定、障害検出、及び修復機能にコンフリクトしている変化に対する応答は、そのようなコンフリクトが解消されるようにパーシステンス記憶にそのような変化をもたらす。このことは、例えば、障害を受けたファイルの修復、失われたドライバのインストール、又は環境変数の調整によって行うことができよう。
【００１３】
【発明の実施の形態】
以下、本発明の実施形態を図面を参照しながら説明する。図１は、基本的な従来のコンピュータ・アーキテクチャを説明するためのブロック図である。説明をする前に、この説明を通じて同一の参照符号は異なる図において同一又は類似の構成要素を示すものであることに留意されたい。
【００１４】
全ての既存のコンピュータ・アーキテクチャは、中心となる基本的なコンピュータ・アーキテクチャ１００に合わせられる。この中心となる基本的なコンピュータ・アーキテクチャ１００は４つの構成要素、すなわち１つ以上のプロセッサ１０６、１つ以上のメモリ空間１０４、１つ以上の入出力管理機構１０８、及び１つ以上のパーシステンス定義機構１０２から構成される。プロセッサ１０６は所定のアプリケーションのパーシステンス・イメージからメモリへその初期状態をロードすることによって該アプリケーションの計算及び命令を実行する。
【００１５】
パーシステンス定義機構１０２はメモリ１０４から離れたアプリケーションのパーシステンス格納である。コンピュータ・システムの基本的性質は、すべてのアプリケーションがどこかに記憶されることを必要とする。たとえ人がプログラムの使用を望むたびにコンピュータに該プログラムをタイプするとしても、たとえそのプログラムが誰かの頭の中にあるとしてもプログラムは常にどこかに記憶される。どのようにしてアプリケーションが記憶されるかは、プラットフォーム間で変動するものではない。例えば、アプリケーションは実行可能なファイル及びライブラリー、ファイル、データベース、レジストリ項目、及び環境変数として記憶される。典型的なこれらのファイル、データベース等は、読出し専用記憶素子、ハード・ディスク、テープ、ＣＤ−ＲＯＭ、又はＤＶＤ等の不揮発性記憶装置に格納される。最も複雑なアプリケーションでさえも、たとえ各々のタイプが多くあるにもかかわらず、異なる持続した構造の数はどちらかといえば本当に小さい。
【００１６】
アプリケーションの複雑性にかかわらず、それはパーシステンス・イメージに依存する。もし、パーシステンス構造が正しければ、アプリケーションは実行されるだろう。もしパーシステンス構造が誤りであるならば、アプリケーションは実行されないであろう。
【００１７】
図２は、本発明が実現されるデータ処理システムの構成を説明するためのブロック図である。データ処理システム２５０は図１に示したアーキテクチャに準拠する。データ処理システム２５０は周辺機器相互接続（ＰＣＩ）ローカル・バス・アーキテクチャを使用するが、マイクロ・チャンネル及びＩＳＡ等の他のアーキテクチャを使用してもよい。プロセッサ２５２及びメイン・メモリ２５４はＰＣＩブリッジ２５８を介してＰＣＩローカル・バス２５６に接続している。ＰＣＩブリッジ２５８はプロセッサ２５２のための集積されたメモリ・コントロラ及びキャッシュ・メモリを含むものであってもよい。ＰＣＩローカル・バスに対する追加のコンポーネントは、増設ボードを介して、または直接的なコンポーネント相互接続を介して作ることが可能である。図示した例では、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ２６３、ＳＣＩホスト・アダプタ２６２、及び拡張バス・インタフェース２６４は、直接なコンポーネント接続によってＰＣＩローカル・バス２５６に接続されている。それとは異なり、オーディオ・アダプタ２６６、グラッフィック・アダプタ２６８、及びオーディオ／ビデオ／アダプタ（Ａ／Ｖ）２６９は、拡張スロットに挿入された増設ボードによってＰＣＩローカル・バス２６６に接続されている。拡張バス・インタフェース２６４は、キーボード及びマウス・アダプタ２７０、モデム２７２、及び増設メモリ２７４に対して接続回路を提供する。ＳＣＳＩホスト・アダプタ２６２は、図示した例ではハード・ディスク・ドライブ２７６、テープ・ドライブ２７８、及びＣＤ−ＲＯＭ２８０に対して接続回路を提供する。典型的なＰＣＩローカル・バス・インプリメンテーションは３乃至４つのＰＣＩ拡張スロット又は増設コネクタをサポートする。
【００１８】
オペレーティング・システムはプロセッサ２５２上で実行され、図２に示すデータ処理システム２５０内の様々なコンポーネントを制御したり、連係して働かせる。オペレーティング・システムは、International Business Machines Corporation から入手可能な市販のJavaOS For Business又はＯＳ／２であってもよい。当業者は、図２のハードウェアがインプリメンテーションに依存して変動するものであることを容易に理解することであろう。例えば、他の周辺装置、例えば光ディスク・ドライブ等は図２に示したハードウェアに加えて、又はその代わりに使用することが可能である。図示した例は、本発明のアーキテクチャ的な限界を意味するものではない。例えば、本発明のプロセスをマルチプロセッサ・データ処理システムに適用してもよい。
【００１９】
図３は、本発明を実現することが可能な個人用携帯型情報端末機器（ＰＤＡ）を説明するためのブロック図である。ＰＤＡは、小型かつ携帯可能なデータ処理システム（すなわち、コンピュータ）である。図２に示すコンピュータやすべてのコンピュータと同様に、ＰＤＡ３００は図１に示すコンピュータ・アーキテクチャに準拠する。ＰＤＡは、典型的なパームトップ・コンピュータであり、例えば3Com Corporation（Santa Clara, Cliformina所在）の登録商標であり、かつ製品名でもあるParm VIIが挙げられる。これは、無線通信網に接続可能であり、また音声、ファックス、電子メール、及び／又は他の種類の通信手段を提供することが可能である。ＰＤＡ３００は、例えばカレンダ及び予定のような、ユーザに対して他の機能を提供するものであってもよい。ＰＤＡ３００は、マイクロプロセッサ等の一つ以上のプロセッサ３０２、ディスク・メモリ３０６、及びＩ／Ｏ（例えば、マウス、キーボード、又はペン型入力装置）３０８、さらに画面又はモニタを有することができる。また、ＰＤＡ３００は無線通信の送受信を可能とするアンテナ３１２に接続されたワイヤレス・トランシーバ３１０を有するものであってもよい。プロセッサ３０２、メイン・メモリ３０４、ディスク・メモリ３０６、Ｉ／Ｏ３０８、及びトランシーバ３１０はバス３０４に接続されている。バスは、それに接続された各デバイス間でデータ、すなわち命令及び情報の転送を行う。Ｉ／Ｏ３０８は、又はモニタに表示したり、プリンタによって印刷可能なファックス、電子メール、又は光学的イメージを可能とするものであってもよい。Ｉ／Ｏ３０８はマイクロフォン３１６及びスピーカ３１８に接続することで音声又はサウンド情報を送受信可能なものであってもよい。
【００２０】
図２及び図３に示したコンピュータは、図１に示したコンピュータ・アーキテクチャ・パラダイムに準拠する。システムの複雑化、コンポーネントの数、及びプロセッサの速度は変動するが、基本的モデルはキーボード及びディスプレイ（ＬＥＤ又はビデオ表示端末であるか否かにかかわらず）、プロセッサ、メモリ、及びパーシステンスの手段である図１に示したアーキテクチャ１００と同様である。パーシステンスは、例えばハード・ディスクに格納、又はシステムの中に組み込まれている。しかし、図２及び図３に示すコンピュータは、ただの例にすぎない。他のコンピュータ、実際はすべてのコンピュータもまたこのモデルに準拠する。他のそのようなコンピュータの例として、限定されるものではないが、メイン・フレーム・コンピュータ、ワーク・ステーション、ラップトップ・コンピュータ及びゲーム・コンソール、テレビに接続するポータブル型及び通常型のゲーム・コンソールが挙げられる。ゲーム・コンソールの例として、Sony Playstation（登録商標）及びNintendo Gameboy（登録商標）が挙げられる。Playstationはソニー株式会社（所在地：東京）の商標登録された製品である。Gameboyは任天堂株式会社（所在地：京都）の子会社であるNintendo of America（所在地：Redomond, Washington）の商標登録された製品である。
【００２１】
図２のコンピュータ及び図３のＰＤＡもまた本発明のデータ構造、方法、及び装置にインプリメントすることに適している。本発明は、以下の説明するような特徴及び利点を持つ新規なコンピュータ・アーキテクチャ・パラダイムを表すような方法で、図１に示したコンピュータ・アーキテクチャ・パラダイムを修正するものである。
【００２２】
本発明は、アプリケーション及びコンピュータが己自身で該アプリケーション及びコンピュータの設定及び管理を行うことを可能とするデータ構造、プロセス、システム、及び装置を影響する。また、本発明は、アプリケーションのランタイム表現からの制御された分離によってカプセル化アプリケーションを生成するためのプロセス、システム、及び装置を提供する。この分離はクリティカルで、かつ必要性がある。アプリケーションのカプセル化は、アプリケーションに対する作業定義によって提供され、一方でランタイム・イメージは伝統的な実行環境例えばWindows、Unix、OS/2、及び他のシステム・プラットホームでアプリケーションが実行されるのを可能とする。
【００２３】
図４は、本発明の好ましい実施形態にもとづいてアプリケーションを強力にカプセル化するデータ構造を説明するためのブロック図である。好ましい実施形態では、任意のソフトウェア・アプリーションは、以下の要素から構成されるものとすることが可能である。すなわち、識別４０４、コード４０６、必要条件４０８、データ４１０、アーティファクト４１２、及び設定４１４である。これらの要素は、アプリケーション定義特性を組み立てる。定義特性は、その標的とされたコンピュータ・システム内のアプリケーションの正当なランタイム表示を形成するように要求されたパーシステンス状態、設定、及び構造を定義する。アプリケーションの作業定義は、該アプリケーションの各々の要素を記録し、かつ制御する。
【００２４】
アプリケーションの識別４０４は、アプリケーション開発者によって定義されるもので、アプリケーションの名称やバージョンから成り立っている。識別セクション４０４もまた、自動化された管理サービス及びユーザの両方に対して有用なアプリケーションのドキュメンテーション、ウェブ・リンク等を提供する。
【００２５】
コード４０６は実行可能なイメージ、ファイル、ソース・コード、さらにアプリケーション開発者が使用することを決めたと思われる該アプリケーションの実行可能部分の他のレプレゼンテーションのすべてを表す。コード・セクション４０６は、アプリケーションのライフ・サイクルを通して該アプリケーションのインストール、メンテナンス、設定、アンインストール等を可能とするために、実行可能なイメージ、ファイル、ソース・コード等を含む。
【００２６】
必要条件セクション４０８は、ディレクトリ構造、環境変数、レジストリ設定、及び他の存在しなければならないパーシステンス構造が何かを定め、またコンピュータ・システムのパーシステンス・イメージに適当に構築及びインストールされるべきこのアプリケーションのための形態が何かを定義する。必要条件セクション４０８は、このアプリケーションに求められ、かつそれをサポートする任意のサービス及びアプリケーションも記述する。必要条件セクション４０８は、それらのコンセプトを一組の制約条件として記述し、また順序付けを記述するものであってもよく、この順序付けは該命令が必要な時にそれらの制約条件が解決されなければならない順序付けである。必要条件４０８は、またアプリケーション特有のインストール、メンテナンス、設定、アンインストール、その他コードの使用に対する環境及び制約条件も定義する。
【００２７】
データ・セクション４１０は、データ・テーブル、設定ファイル、及び他のアプリケーション用パーシステンス構造を定義する。データ・セクション４１０は、ＵＩプレファレンス、ルーティング・テーブル、及びアプリケーションをよりいっそう使いやすくする他の情報を保持するために使われる。
【００２８】
アーティファクト４１２はアプリケーションによって与えられた値のパーシステンス形態である。アーティファクト３１２の例として、ドキュメント、スプレッドシード、データベース、メールフォルダ、テキスト・ファイル、イメージ・ファイル、ウェブ・ページ等が含まれる。これらは、ユーザの作業（この文脈で「ユーザ」は人又はアプリケーションである）を含むファイルである。
【００２９】
設定４１４は、アプリケーションに対する必要条件を満たすように意図されているランタイム・レプレゼンテーション内で生成又は修正されたパーシステンス構造である。区別は、必要条件４０８（レジストリ設定又は準拠しなければならないディレクトリ構造の形成の値の範囲を特性する）と該必要条件４０９を満足させるためにランタイム・イメージ１００で構築された実際のソリーションとの間で引かれる。
【００３０】
必要条件４０８は、開発者、アプリケーション管理ソフトウェア、環境等によって提供される。設定はそのような必要条件を解決を試み、設定が満足する必要条件を判断する。
【００３１】
図５は、本発明の好ましい実施形態にもとづくコンピュータ・アーキテクチャの新規モデルを説明するためのブロック図である。本発明の新規のコンピュータ・アーキテクチャ４００は、図１に示すような標準アーキテクチャ上に構築される。しかし、新規コンピュータ・アーキテクチャ４００はアプリケーションの作業定義４０２も含む。好ましい実施形態では、アプリケーションの作業定義４０２は識別４０４、コード４０６、必要条件４０８、データ４１０、アーティファクト４１２、及び設定４１４の拡張可能マークアップ言語（ＸＭＬ）レプレゼンテーションである。すなわち、アプリケーションのすべての定義特性が含まれる。アプリケーションのランタイム・レプレゼンテーション１００から分離されるこれらの要素を定義することによって、作業定義４０２は、カプセル化されていない形態にあるアプリケーションを予想するオペレーティング・システムと互換性のあるアプリケーションを強力にカプセル化する方法を提供する。作業定義は、コンピュータ・システムの新たな普遍的なイメージを定める。作業定義は、いかなるオペレーション・システム又はプラットフォームと干渉しない。なぜなら、作業定義は、アクティブな行動を取ることができないからである。作業定義は、コンピュータ・システム内で、アプリケーションが何であるか、何を要求しているか、また必要とするものに何が与えられたかを定義することで、該アプリケーションのランタイム・レプレゼンテーション１００を定める。作業定義がアクティブな行動を取ることができない一方で、該作業定義は様々な自動化されたサービスのインプリメンテーションを可能とさせる。これらのサービスは、アプリケーション・ライフ・サイクル管理、リソース・トラッキング、アプリケーション・インストール、障害検出及び修復、コンピュータ・システム最適化等が含まれる。
【００３２】
状態の強力なカプセル化は、コンピュータ・システムの全体的な複雑性を大幅に減少させる。状態、例えばパス要求、ファイル拡張、レジストリ設定、プログラム・ファイルは、ランタイム・レプレゼンテーション１００外のピュア状態に維持される。アプリケーション１００のランタイム・バージョンが冗長なレプレゼンテーションであることから、それを再構成し、かつ標準としてアプリケーションのカプセル化されたバージョンを用いて固定する。重要な修正は、バックグラウンド・タスクとしてアプリケーションの作業定義にパーシステンス的に戻すことができる。
【００３３】
作業定期は、ＸＭＬを用いてアプリケーションに関するクリティカルな情報を構築するためのフレキシブル・フォーマットを定義する。ＸＭＬはさらなる要求に適合するために作業定義を拡張する能力を提供し、またＸＭＬはワールド・ワイド・ウェブのハイパーテキスト・マークアップ言語（ＨＭＴＬ）と同様に、ジョブ要求のように単純又は複雑にすることができる。作業定義の実際の大きさは、たとえアプリケーションがちょうどバッチ・ファイルであったとしても、それを定義するアプリケーションと比べて非常に小さい。同時に、作業定義は、膨大な、分布した、マルチ・プラットフォーム・アプリケーションを記述するために使用することができる。
【００３４】
仕事定義は、プラットフォームであり、技術とは無関係であり、技術普遍的な設定問題に対処する。さらに、作業定義はオープン・スタンダードとして使用することができる。作業定義は、ブックキーピング・サポートの提供と同様に、サービス及びアプリケーションに対して設定情報を提供する。
【００３５】
アプリケーションの有効なランタイム・レプレゼンテーションは、複数の制約条件からなる有限の構造化されたセットに適合する。したがって、ＸＭＬは理想の方法である。なぜなら、ＸＭＬは構造化データのための理想的なレプレゼンテーションであり、内部相互関係のトラッキングを可能とするリンクを定義すること、又は外に定義された構造に対する参照を含む能力をサポートする。さらに、ＸＭＬは容易に拡張し、かつプラットフォームとは独立するように設計される。
【００３６】
しかし、ＸＭＬは絶え間ない修正とアクセスにとっては良好なレプレゼンテーションではない。アプリケーションのためのランタイム・レプレゼンテーションは、効率的な実行可能なレプレゼンテーションをアプリケーションに提供する。
効率的な実行可能なレプレゼンテーションをアプリケーションに提供するために、ＸＭＬはアプリケーションにとって必要とされるランタイム構造及び必要条件を記述することができる。それらの命令を使用することで、アプリケーションが構成され、かつ自動的に実行される。前提条件も、適当な順序付け、かつ適当な設定で、構成され、かつ自動的実行されるだろう。
【００３７】
アプリケーションが実行されるにつれて、アプリケーションの状態に対して生じた変化が、すなわち現在あるように、ランタイム表示に対して行われてもよい。ＸＭＬはパーシステンスすべき重要なファイルを特定し、バックグラウンドでこのパーシステンスを実行してもよい。したがって、オーバヘッドはユーザの立場から見られるように、性能に対する効果はほとんどなくかなり少ない。
【００３８】
コンピュータ・システムの管理及び設定を自動的に行う問題は、本質的に各ソフトウェア・コンポーネントのレプレゼンテーションがコンピュータ及び人に対してフレンドリな共通なものであることを必要とする。この情報なくして、コンピュータ・システムの自動化管理は不可能である。
【００３９】
作業定義がここで記述され、それからアプリケーションのＸＭＬレプレゼンテーションを参照して記述される一方で、当業者に容易に理解されるように、他の技術及びアプローチの多くが使用されるかもしれない。例えば、カプセル化もまたデータ・ベースを用いて、又はZipファイルを用いてインプリメントすることもできる。また、データベースは転送プロトコルとして使用されるＸＭＬによるカプセル化のためのサポートを実際にインプリメントすることに使用することができる。
【００４０】
さらに、ＸＭＬを用いた作業定義の構成を主に参照しながら記述されるが、作業定義は任意の構造化フォーマットを用いて構成してもよい。例えば、可能な選択肢として、他の構造化フォームの使用が含まれる。該構造化フォームの例として、以下のものを挙げることができる。
【００４１】
・オブジェクトをベースとする技術（Java、Beans、CORBAオブジェクト、Ｃ＋＋オブジェクト等）。これは何らかの種類のデータベースによってサポートされる必要があろう。
・オブジェクト指向データベース。これはデータベースとオブジェクトをベースとした技術との組み合わせからなる。
・機能的な技術。それらの構造を定義するPostScript様又はLisp様の言語（コンパイルされた、あるいは解釈された）を作ることができる。
・ルールをベースとした技術。作業定義は一般に制約条件からなるセットを解決するので、このことは作業定義によって定義された制約条件に対して実行を制限するサービスをインプリメントする最良方法であるかもしれない。
・タッグ化フォーマット。ＸＭＬはタグ付きフォーマットの一例である。しかし、同様に働く別のタグ付きフォーマットが存在する。タグ付きイメージ・フォーマット（ＴＩＦＦ）は、イメージを定義するために一般に使用されるが、カスタム・タグの使用がサポートされることからア行定義を定めることにも使用可能である。さらに、ＴＩＦＦはバイナリ・フォーマットであることから、実行可能なコード及びバイナリ・データを保持するものと思われる。他のタグ付きフォーマットとして、例えばＳＧＭＬ、ＴｅＸ、及びＬａＴｅｘが挙げられる。
【００４２】
構造化フォーマットのこれらの例に加えて、作業定義を構築するために間違いなく働く他のフォーマット及びレプレゼンテーションが存在する。（１）構造化データをレプレゼンテーションすること、（２）外部ソースに対するリンクをサポートすること、及び（３）フラットフォーム間で使用可能であることが可能な任意の技術が作業定義を定めることに使用可能である。
【００４３】
図６は、ＸＭＬコードの一部分を示すもので、本発明の好ましい実施形態にもとづいて、作業定義の必要条件要素をレプレゼンテーションする一つの方法を示している。図示されたＸＭＬの部分５００は、作業定義の必要条件要素のレプレゼンテーションの断片のみであり、ただ単に例として与えられたにすぎない。さらに、ＸＭＬのこの部分５００は、単純化されているが、この情報がどのようにレプレゼンテーションされるかを示す。
【００４４】
５０２におけるプラットフォーム・タグは、プラットフォームがｘｘ８６型のコンピュータ、例えばWindows 95（商標）、Windows 98（商標）、又はWindows NT（商標）オペレーティング・システムが走るIntel Pentium（商標）クラスのコンピュータであるアプリケーションの必要条件要素を反映する。PentiumはIntel Corporation（所在地：Snta Clara, California）の登録商標である。Windows 95（商標）、Windows 98（商標）、又はWindows NT（商標）は、Microsoft Corporation（所在地：Redmond, Washington）の商標又は登録商標である。
【００４５】
５０４におけるプラットフォーム・タグは、アプリケーションがＴＣＰ／ＩＰ及びファイル・システム・サービスを要求することを示す。５０６の前提条件タグは、Adobe Acrobat（登録商標）というアプリケーションがこのアプリケーションのための前提条件（すなわち、必要条件）である。Adobe Acrobatは、Adobe System Incorporated （所在地：San Jose, California）の登録商標である。
【００４６】
５０８のレジストリ・タグはレジストリ項目を記述する。この例では、レジストリ項目及び一組のキーが定義される。
【００４７】
５１０のディレクトリ・タグは、"PprogramRoot"（必要とされるが、名前によって特定はされない）とサブディレクトリ"programRoot"/jclassとからなる一組のディレクトリを記述する。
【００４８】
セクション５１２は、パス環境変数に対してprogramRootディレクトリを加えることを記述する。ディレクトリ"programRoot"/jclassもまたclasspath環境変数に加えられるために必要であることが示されている。
【００４９】
セクション５１２の<test>・・・</test>タグは、角括弧で囲っているセクションのセットアップを確かめるために使用することができる。このことは、アプリケーションを維持するためにアプリケーション特異的コードをどのように使用するかを記述する１つの可能な方法である。
【００５０】
図７は、本発明の好ましい実施形態にもとづくコンピュータ・システム内で自動的に障害を検出し、それを修復する方法を説明するためのブロック図である。現在、従来技術では、各アプリケーションはコンピュータ内でそれ自身の完全性に対して責任を負う。コンフリクトを検出しそれを解決する自動化された機能は、障害が生じたファイルを検出したり、あるいは行方不明となったレジストリ項目を検出したりすることは、従来のシステムでは著しく制限されていた。
【００５１】
ランタイム環境１００に対するコンフリクト及び修正を避けることはできない。それらは、コンピュータ・システムの使用で自然に生じる結果である。なぜならコンピュータ・システムの使用は自然と新しいアプリケーションのインストール、アプリケーションのアップデート、アプリケーション・アーティファクトの生産及び管理、テンポラリ・ファイルの使用、及びシステム設定の別の変更につながるからである。
【００５２】
障害の検出及び修復を行う機能６０２は、インストールされたアプリケーションのすべてを制約条件のセットとして作業定義６０４に定義された必要条件を使用する。ランタイム環境３００又はカプセル化されたアプリケーションのいずれかに対して変化が生ずる場合はいつでも、障害検出及び修復機能６０２がそのような変化を検出し、コンピュータ・システムにインストールされたカプセル化したアプリケーションの作業定義によって定義された制約条件のセットに対してそれらを照らし合わせる。各カプセル化したアプリケーションのＸＭＬ作業定義は、アプリケーションと、パーシステンスする必要のない一時ファイルによって対比されたようにパーシステンスするべきであるユーザの作業との一定部分を定める。ＸＭＬアプリケーション作業定義の追加のデジタル署名されたセクションは、ランタイム環境でアプリケーションのファイルの各々についてのチェックサム及びファイル・サイズが変更されていないことを保証する。もし、ファイルが修正されているならば、障害検出及び修復機能６０２によって検出されるように、そのファイルは署名済みの既知の有効なバージョンによって修復することができる。
【００５３】
点検の適用を受けるファイルのセットは、かなり限定されている。なぜなら作業定義はどのファイルをチェックすべきかを正確に定めるからである。各々のファイル及びファイル毎に確かめる代わりに、検出は作業定義がクリティカルなものとして識別するファイルのみに限定することができる。さらに徹底的なチェックが可能であるが、基本的なランタイム・レプレゼンテーションはそれらを必要としない。
【００５４】
図８は、本発明にもとづいて図７の障害検出及び修復機能６０２をインプリメントする模範的な手順を説明するためのフローチャートである。
【００５５】
障害検出及び修復機能は、変更についてコンピュータ・システムをモニタし（ステップ７０２）、データ処理システムが電源切断の表示を受け取ったかどうかを決定する（ステップ７０３）。もし電源切断の表示をデータ処理システムが受け取られているならば、プロセスは終了する。もし電源切断の表示をデータ処理システムが受け取られているならば、障害検出及び修復機能は、変更が任意のファイル、設定、又はカプセル化したアプリケーションに対して行われる（ステップ７０４）。このプロセスを容易にするためにアプリケーションが通知機能を使う時、探索を避けることができる。しかし、このようなアプリケーションとの相互作用は、必要ではない。もし何ら変化が生じなければ、障害検出及び修復機能６０２はコンピュータ・システムをモニタし続ける（ステップ７０２）。
【００５６】
もし、アプリケーションの作業定義によって定義されるようにアプリケーションの作業定義のランタイム・レプレゼンテーションのある局面に対して変更がなされたならば、障害検出及び修復機能６０２は、変更をコンピュータ・システムの作業定義のセットによって定義されたように制約条件と比較し（ステップ７０６）、その変更が何らかのコンフリクトを生じさせるか決定する（ステップ７０８）。もし、変更がコンフリクトを生ずることなしに１つ以上の作業定義に影響を及ぼすならば、影響を及ぼされたアプリケーションの設定セクションにそれが記録される（ステップ７１０）。コンフリクトは、影響を受けたランタイム表示を復元するか、調整することによって解決される。一時ファイル及び設定に対する変更は（それらを使用するアプリケーションの作業定義によって定義されるように）、コンフリクトを生じない。
【００５７】
セキュリティがかなり重要であるシステムでは、合理的である定義されたものから外れる変更に対する任意のテスト（ステップ７１１）が行うことができる。
この任意のバージョンでは、もし変更が何らコンフリクトを生じなければ、障害検出及び修復機能６０２は該変更がソフトウェア・コンポーネントによって定義された何らかの作業定義に影響を及ぼすかどうかを決定する（ステップ７１１）。このことは、コンピュータ・システムの定義された制約条件から外れる変更を検出するために行われる。もし変更が作業定義ソフトウェア・コンポーネントに影響を及ぼすものであるならば、変更の否定、後の検査における変更のロギング、又は監視機能に対してそれらの変更を報告すること等、影響を受けた作業定義の設定が更新される（ステップ７１２）。もし変更が何らかの作業定義定義付けソフトウェア・コンポーネントに影響を及ぼさなければ、このセキュリティ問題に対処する多くの戦略を用いることが可能であろう。障害検出及び修復機能６０２は、システムの監視を続ける（ステップ７０２）。
【００５８】
インストールされたアプリケーションの作業定義は、コンピュータ・システムのランタイム・レプレゼンテーションの制約条件のセットを課すアプリケーションのセットとしてコンピュータ・システムが形づけられることを可能とする。そのような制約条件は、すでに述べたように可能な限りパーシステンスするアプリケーションの要素すべてを定義する。設定が変更されると、障害検出及び修復機能は、各アプリケーションの作業定義によって定義されたようなこの制約条件のセットに対する変更を評価することができる。もし制約条件が依然として満たされているならば、影響を受けた作業定義の設定セクションに設定を記録することができる。もし制約条件が満たされていなければ、設定は適当な設定にコンピュータ・システムを復元する要求として調整（及び記録）することができる。
【００５９】
ここで指摘しておくべき重要なことは、仕事定義はアプリケーションの定義特性すべての全体性を論理的に具体化する一方で、実際のところ本発明が主に記述されているので作業定義は個々のマシン上に位置した単一のエンティティよりどちらかと言えばエンティティとしてインプリメントすることができるということである。そのコンポーネントをリンクを介してアクセスすることもでき、またサーバ、ハード・ディスク、又は他の媒体に物理的に格納したり、かつバス、インターネット、イントラネット、又は他のチャンネルを介してアクセスすることもできる。
【００６０】
ここで指摘しておくべき重要なことは、本発明が完全に機能しているデータ処理システムの文脈において記述されている一方で、本発明のプロセスが複数の命令からなるコンピュータ読み取り可能媒体の形態及び様々な形態で分配可能であり、また分配を実行するために実際に使用される単一の記録媒体の特定の種類に関わらず等しく適用されることを当業者は容易に理解することができよう。コンピュータ読み取り可能媒体の例としては、フロッピー・ディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、さらにデジタル及びアナログ通信リンク等の伝送型媒体、ラジオ周波数及び光波伝送等を用いた有線及び無線通信リンクが挙げられる。コンピュータ読み取り可能媒体は、特定のデータ処理システムで実際に使用するためにデコードされるコード化されたフォーマットの形をとるものであってもよい。
【００６１】
以上の本発明に関する記述は、図示及び説明のためのものであり、開示された形態に本発明が余すことなく含ませたり、限定することを意図したものではない。多くの修正及び変更を当業者が容易に想到することが可能であることは言うまでもない。上記の実施形態は発明時に本発明の原理を説明する上で最良と思われること、また意図した特定の使用に適するように当業者が本発明を容易に理解して多くの実施形態及び様々な変更が理解できるようにするために、選択及び記述されたものである。
【００６２】
まとめとして、本発明の構成に関して以下の事項を開示する。
（１）コンピュータ・システムの障害部分を検出して修復する方法であって、
前記コンピュータ・システムに対する変更を検出するステップと、
前記コンピュータ・システム上にインストールされ、前記コンピュータ・システム上にインストールされた各アプリケーションによって前記コンピュータ上におかれた制約条件のセットを含む各アプリケーションの作業定義に対して前記変更を比較するステップと、
前記変更が制約条件のセットとコンフリクトしているという決定に応答し、前記コンフリクトを解決するようにパーシステント記憶を修正するステップと、
を有することを特徴とするコンピュータ・システム障害修復方法。
（２）前記変更が前記制約条件のセットによるコンフリクトを生成しない決定に応答し、影響を受けたアプリケーションの前記作業定義にある設定を更新するステップを、さらに有することを特徴とする上記（１）に記載のコンピュータ・システム障害修復方法。
（３）各アプリケーションの前記作業定義は、拡張可能マークアップ言語レプレゼンテーションによって与えられることを特徴とする上記（１）に記載のコンピュータ・システム障害修復方法。
（４）前記パーシスタント記憶を修正するステップは、前記アプリケーションのカプセル化レプレゼンテーションに基づいたアプリケーションのランタイム・イメージを修復するステップを含むことを特徴とする上記（１）に記載のコンピュータ・システム障害修復方法。
（５）前記パーシスタント記憶を修正するステップは、前記作業定義からの前記ファイルの正しいバージョンを用いて、障害を受けたファイルを修復するステップを含むことを特徴とする上記（１）に記載のコンピュータ・システム障害修復方法。
（６）前記ファイルの正しいバージョンは、サーバから取り出されたものであることを特徴とする上記（５）に記載のコンピュータ・システム障害修復方法。
（７）前記サーバはネットワークを介してアクセスされることを特徴とする上記（６）に記載のコンピュータ・システム障害修復方法。
（８）前記ネットワークは、インターネットであることを特徴とする上記（７）に記載のコンピュータ・システム障害修復方法。
（９）前記変更が前記制約条件のセットとコンフリクトしない決定に応答し、前記変更が任意の作業定義定義付けソフトウェア・コンポーネントに影響を及ぼすかどうかを決定するステップと、
前記変更が前記任意の作業定義定義付けソフトウェア・コンポーネントに影響を及ぼす決定に応答し、前記変更を取り消すステップと、
をさらに有することを特徴とする上記（１）に記載のコンピュータ・システム障害修復方法。
（１０）前記変更が前記制約条件のセットとコンフリクトしない決定に応答し、前記変更が任意の作業定義定義付けソフトウェア・コンポーネントに影響を及ぼすかどうかを決定するステップと、
前記変更が前記任意の作業定義定義付けソフトウェア・コンポーネントに影響を及ぼす決定に応答し、前記変更をロギングするステップと、
をさらに有することを特徴とする上記（１）に記載のコンピュータ・システム障害修復方法。
（１１）前記変更が前記制約条件のセットとコンフリクトしない決定に応答し、前記変更が任意の作業定義定義付けソフトウェア・コンポーネントに影響を及ぼすかどうかを決定するステップと、
前記変更が前記任意の作業定義定義付けソフトウェア・コンポーネントに影響を及ぼす決定に応答し、監視機能に対して前記変更を報告するステップと、
をさらに有することを特徴とする上記（１）に記載のコンピュータ・システム障害修復方法。
（１２）コンピュータ・システムの障害部分を検出して修復するためにデータ処理システムで使用されるコンピュータ読み取り可能媒体内のコンピュータ・プログラム記憶媒体であって、
前記コンピュータ・システムに対する変更を検出するための第１の命令と、
前記コンピュータ・システム上にインストールされ、前記コンピュータ・システム上にインストールされた各アプリケーションによって前記コンピュータ上におかれた制約条件のセットを含む各アプリケーションの作業定義に対して前記変更を比較する第２の命令と、
前記変更が制約条件のセットとコンフリクトしているという決定に応答し、前記コンフリクトを解決するようにパーシステント記憶を修正する第３の命令と、
を有することを特徴とするコンピュータ・プログラム記憶媒体。
（１３）前記変更が前記制約条件のセットによるコンフリクトを生成しない決定に応答し、影響を受けたアプリケーションの前記作業定義にある設定を更新する第４の命令を、さらに有することを特徴とする上記（１２）に記載のコンピュータ・プログラム記憶媒体。
（１４）各アプリケーションの前記作業定義は、拡張可能マークアップ言語レプレゼンテーションによって与えられることを特徴とする上記（１２）に記載のコンピュータ・プログラム記憶媒体。
（１５）前記パーシスタント記憶を修正する前記第３の命令は、前記アプリケーションのカプセル化レプレゼンテーションに基づいたアプリケーションのランタイム・イメージを修復する命令を含むことを特徴とする上記（１２）に記載のコンピュータ・プログラム記憶媒体。
（１６）前記パーシスタント記憶を修正する前記第３の命令は、前記作業定義からの前記ファイルの正しいバージョンを用いて、障害を受けたファイルを修復する命令を含むことを特徴とする上記（１２）に記載のコンピュータ・プログラム記憶媒体。
（１７）前記ファイルの正しいバージョンは、サーバから取り出されたものであることを特徴とする上記（１６）に記載のコンピュータ・プログラム記憶媒体。
（１８）前記サーバはネットワークを介してアクセスされることを特徴とする上記（１７）に記載のコンピュータ・プログラム記憶媒体。
（１９）前記ネットワークは、インターネットであることを特徴とする上記（１８）に記載のコンピュータ・プログラム記憶媒体。
（２０）前記変更が前記制約条件のセットとコンフリクトしない決定に応答し、前記変更が任意の作業定義定義付けソフトウェア・コンポーネントに影響を及ぼすかどうかを決定する第４の命令と、
前記変更が前記任意の作業定義定義付けソフトウェア・コンポーネントに影響を及ぼす決定に応答し、前記変更を取り消す第５の命令と、
をさらに有することを特徴とする上記（１２）に記載のコンピュータ・プログラム記憶媒体。
（２１）前記変更が前記制約条件のセットとコンフリクトしない決定に応答し、前記変更が任意の作業定義定義付けソフトウェア・コンポーネントに影響を及ぼすかどうかを決定する第４の命令と、
前記変更が前記任意の作業定義定義付けソフトウェア・コンポーネントに影響を及ぼす決定に応答し、前記変更をロギングする第５の命令と、
をさらに有することを特徴とする上記（１２）に記載のコンピュータ・プログラム記憶媒体。
（２２）前記変更が前記制約条件のセットとコンフリクトしない決定に応答し、前記変更が任意の作業定義定義付けソフトウェア・コンポーネントに影響を及ぼすかどうかを決定する第４の命令と、
前記変更が前記任意の作業定義定義付けソフトウェア・コンポーネントに影響を及ぼす決定に応答し、前記変更を監視機能に報告する第５の命令と、
をさらに有することを特徴とする上記（１２）に記載のコンピュータ・プログラム記憶媒体。
（２３）コンピュータ・システムの障害部分を検出して修復するシステムであって、
前記コンピュータ・システムに対する変更を検出する手段と、
前記コンピュータ・システム上にインストールされ、前記コンピュータ・システム上にインストールされた各アプリケーションによって前記コンピュータ上におかれた制約条件のセットを含む各アプリケーションの作業定義に対して前記変更を比較する手段と、
前記変更が制約条件のセットとコンフリクトしているという決定に応答し、前記コンフリクトを解決するようにパーシステント記憶を修正する手段と、
を有することを特徴とするシステム。
（２４）前記変更が前記制約条件のセットによるコンフリクトを生成しない決定に応答し、影響を受けたアプリケーションの前記作業定義にある設定を更新する手段を、さらに有することを特徴とする上記（２３）に記載のシステム。
（２５）各アプリケーションの前記作業定義は、拡張可能マークアップ言語レプレゼンテーションによって与えられることを特徴とする上記（２３）に記載のシステム。
（２６）前記パーシスタント記憶を修正する手段は、前記アプリケーションのカプセル化レプレゼンテーションに基づいたアプリケーションのランタイム・イメージを修復する手段を含むことを特徴とする上記（２３）に記載のシステム。
（２７）前記パーシスタント記憶を修正する手段は、前記作業定義からの前記ファイルの正しいバージョンを用いて、障害を受けたファイルを修復する手段を含むことを特徴とする上記（２３）に記載のシステム。
（２８）前記ファイルの正しいバージョンは、サーバから取り出されたものであることを特徴とする上記（２７）に記載のシステム。
（２９）前記サーバはネットワークを介してアクセスされることを特徴とする上記（２８）に記載のシステム。
（３０）前記ネットワークは、インターネットであることを特徴とする上記（２９）に記載のシステム。
（３１）前記変更が前記制約条件のセットとコンフリクトしない決定に応答し、前記変更が任意の作業定義定義付けソフトウェア・コンポーネントに影響を及ぼすかどうかを決定する手段と、
前記変更が前記任意の作業定義定義付けソフトウェア・コンポーネントに影響を及ぼす決定に応答し、前記変更を取り消す手段と、
をさらに有することを特徴とする上記（２３）に記載のシステム。
（３２）前記変更が前記制約条件のセットとコンフリクトしない決定に応答し、前記変更が任意の作業定義定義付けソフトウェア・コンポーネントに影響を及ぼすかどうかを決定する手段と、
前記変更が前記任意の作業定義定義付けソフトウェア・コンポーネントに影響を及ぼす決定に応答し、前記変更をロギングする手段と、
をさらに有することを特徴とする上記（２３）に記載のシステム。
（３３）前記変更が前記制約条件のセットとコンフリクトしない決定に応答し、前記変更が任意の作業定義定義付けソフトウェア・コンポーネントに影響を及ぼすかどうかを決定する手段と、
前記変更が前記任意の作業定義定義付けソフトウェア・コンポーネントに影響を及ぼす決定に応答し、監視機能に対して前記変更を報告する手段と、
をさらに有することを特徴とする上記（２３）に記載のシステム。
【図面の簡単な説明】
【図１】  従来の基本的コンピュータ・アーキテクチャ構造を説明するためのブロック図である。
【図２】  本発明が適用されるデータ処理システムの概略的構成を説明するためのブロック図である。
【図３】  本発明が適用される個人用携帯型情報端末機器（ＰＤＡ）の概略的構成を説明するためのブロック図である。
【図４】  本発明の好ましい実施形態にもとづいてアプリケーションを強力にカプセル化するデータ構造を説明するためのブロック図である。
【図５】  本発明の好ましい実施形態にもとづくコンピュータ・アーキテクチャの新規モデルを説明するためのブロック図である。
【図６】  ＸＭＬコードの一部分を示す説明図であって、本発明の好ましい実施形態にもとづいて、作業定義の必要条件要素をレプレゼンテーションする一つの方法を示す。
【図７】  本発明の好ましい実施形態にもとづくコンピュータ・システム内で自動的に障害を検出し、それを修復する方法を説明するためのブロック図である。
【図８】  本発明にもとづいて図７の障害検出及び修復機能をインプリメントする模範的な手順を説明するためのフローチャートである。
【符号の説明】
１００      コンピュータ・アーキテクチャ（ランタイム・イメージ）
１０２      持続性定義機構
１０４      メモリ空間
１０６      プロセッサ
１０８      入出力管理機構
２５０      データ処理システム
２５２      プロセッサ
２５４      メイン・メモリ
２５６      ＰＣＩローカル・バス
２５８      ＰＣＩブリッジ
２６２      ＳＣＩホスト・アダプタ
２６３      ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ
２６４      拡張バス・インタフェース
２６６      オーディオ・アダプタ
２６８      グラッフィック・アダプタ
２６９      オーディオ／ビデオ／アダプタ（Ａ／Ｖ）
２７０      キーボード及びマウス・アダプタ
２７２      モデム
２７４      増設メモリ
２７６      ハード・ディスク・ドライブ
２７８      テープ・ドライブ
２８０      ＣＤ−ＲＯＭ
２３０      個人用携帯型情報端末機器（ＰＤＡ）
３０２      プロセッサ
３０４      メイン・メモリ
３０６      ディスク・メモリ
３０８      Ｉ／Ｏ（例えば、マウス、キーボード、又はペン型入力装置）
３１０      ワイヤレス・トランシーバ
３１２      アンテナ
３１４
３１６      マイクロフォン
３１８      スピーカ
４００      コンピュータ・アーキテクチャ
４０２      作業定義
４０４      識別
４０６      コード
４０８      必要条件
４１０      データ
４１２      アーティファクト
４１４      設定
５００      ＸＭＬコードの一部分
５０２、５０４、５０６、５０８、５１０、５１２      セクション
６０２      機能
６０４      作業定義
【図１】
0003901955.tif 000002
【図２】
0003901955.tif 000003
【図３】
0003901955.tif 000004
【図４】
0003901955.tif 000005
【図５】
0003901955.tif 000006
【図６】
0003901955.tif 000007
【図７】
0003901955.tif 000008
【図８】
0003901955.tif 000009