JP4828218B2 - 自己記述アーチファクトおよびアプリケーション抽象化 - Google Patents
自己記述アーチファクトおよびアプリケーション抽象化 Download PDFInfo
- Publication number
- JP4828218B2 JP4828218B2 JP2005354079A JP2005354079A JP4828218B2 JP 4828218 B2 JP4828218 B2 JP 4828218B2 JP 2005354079 A JP2005354079 A JP 2005354079A JP 2005354079 A JP2005354079 A JP 2005354079A JP 4828218 B2 JP4828218 B2 JP 4828218B2
- Authority
- JP
- Japan
- Prior art keywords
- manifest
- software
- self
- computer
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Description
・ソフトウェアアーチファクト(または、単に「アーチファクト」)は、実行可能なエンティティ(例えば、プロセス、アプリケーション、オペレーティングシステムのコンポーネント)のオフライン表現(manifestation)であり、例えば、ロードモジュールおよび構成ファイルが含まれる。
・マニフェストは、実行可能なエンティティのメタデータ宣言型記述である。マニフェストは、実行可能なエンティティの各表現に関連することが可能である。マニフェストは、静的であっても、動的であってもよい。
・プロトタイプは、実行可能なエンティティの実行可能な(executable)(または「実行可能な(runable)」)表現であるが、エンティティのプロトタイプは、実行状態にはない。
・抽象化は、実行可能なエンティティが実行状態にある(「エンティティが実行されている」)場合の、実行可能なエンティティの表現である。
・コンポーネントは、実行可能なエンティティの表現の一部分、一部、または一構成要素であり、例えば、アプリケーションは、プロセスコンポーネントを含み、プロセスは、実行可能な命令をコンポーネントとして含む。
図1は、例示的な自己記述アーチファクトアーキテクチャ100の1つの図を示す。この図では、アーキテクチャ100は、メモリ110(例えば、揮発性メモリ、不揮発性メモリ、リムーバブルなメモリ、リムーバブルでないメモリなどの)を備えて構成された、ソフトウェアベースのコンピュータ102上で実施される。コンピュータ102は、メモリ110内でアクティブなオペレーティングシステム(OS)112を有する。
・コンピュータ102にインストール済みのソフトウェアのすべての依存関係が満たされていること、
・コンピュータ102のオペレーティングシステムが、コンピュータ102のハードウェア構成上で実行されるのに必要なすべてのデバイスドライバを含むこと、
・コンピュータ102におけるコードおよび構成設定が、偶然に、または悪意で変更されていないこと、
・アプリケーションが、コンピュータ102に正しくインストールされていること、
・既知の障害のある、または悪意のあるプログラムが、コンピュータ102にインストールされていないこと、
・インストール前に、アプリケーション、ならびにそのアプリケーションの構成コンポーネントおよび依存関係のすべてが、コンピュータ102上に存在すること、
・アプリケーションのコンポーネントをシステムに読み込む前に、そのアプリケーションが、コンピュータ102にインストール可能であること、
・新たなアプリケーションまたはシステムコンポーネントのインストールが、既存のアプリケーション群またはコンポーネント群と競合しないこと、
・アプリケーションまたはオペレーティングシステムコンポーネントを、他のアプリケーション群またはコンポーネント群からの依存関係を切ることなしに、削除することができること、
・アプリケーションまたはオペレーティングシステムが、事前定義されたローカルポリシーを遵守すること、
・アプリケーション起動のための必要な事前条件が、アプリケーションが起動される前に満たされること、
・事前条件が満たされないアプリケーションは、実行されることが許されないこと、および
・実行中、実行のための必要条件が、もはや有効でない場合、アプリケーションは、もはや実行されることが許されないことである。
マニフェストは、コンピュータ102のアーチファクトを記述するメタデータを含む。また、メタデータは、外部依存関係および外部インタフェースを含め、アーチファクトに関係する構成情報も記述する。また、マニフェストは、ソフトウェアコンポーネント間の接続関係も記述する。
・プログラムインストールソフトウェアが、プログラム内に含まれるいずれの場当たり的なコードも実行することなしに、プログラムコンポーネントのインストールまたはアンインストールを行うこと、
・プログラムをインストールする個人またはエージェントが、プログラムコンポーネントを他のプログラム群またはリソース群にバインドすること、
・プログラムをインストールする個人またはエージェントが、あらゆる構成可能な既定の設定を無効にすること、
・プログラムをインストールする個人またはエージェントが、プログラムを、システム全体に関するマニフェストの一部にすること、
・特定のプログラムのインストールまたはアンインストールが正しく行われたことを、インスペクタソフトウェア(例えば、システムインスペクタ180)が、プログラム独自のコンテキストと、システム全体のコンテキストの両方において検証すること、
・特定のプログラムが、現在、実行可能であるかどうかを、検証ソフトウェア(例えば、システムベリファイア164)が判定すること、
・特定のプログラムがインストールされ、実行されることを可能にするのに必要なすべての依存関係が、システム上で満たされているかどうかを、プレインストール(pre−installation)ソフトウェアが判定すること、
・特定のプログラムをインストールする個人またはエージェントが、プログラム、またはシステム全体の将来の動作の他の諸態様を特定すること、
・コンパイラまたは最適化ツールが、アーチファクトの中のコード、ならびにそのコードが実行される環境の正確な記述を得ること、および
・エラー検出ツールが、アーチファクトの中のコード、ならびにそのコードが実行される環境の正確な記述を得ることである。
図2は、自己記述アーチファクトマネージャ160および/または実行ゲートキーパ162によって実行される方法200を示す。この方法上のインプリメンテーションは、ソフトウェアで実行されても、ハードウェアで実行されても、ソフトウェアとハードウェアの組み合わせで実行されてもよい。理解を容易にするため、方法は、図2に独立のブロックとして表す別々のステップとして示すが、それらの別々に示したステップは、ステップの実行の際に必ずしも順序に依存していると解釈してはならない。さらに、説明のため、方法200は、図2を参照して説明する。
図3は、システムベリファイア164によって実行される方法300を示す。この方法上のインプリメンテーションは、ソフトウェアで実行されても、ハードウェアで実行されても、ソフトウェアとハードウェアの組み合わせで実行されてもよい。理解を容易にするため、方法は、図3に独立のブロックとして表す別々のステップとして示すが、それらの別々に示したステップは、ステップの実行の際に必ずしも順序に依存していると解釈してはならない。さらに、説明のため、方法300は、図3を参照して説明する。
・コンピュータ102にインストール済みのソフトウェアのすべての依存関係が満たされていることを検証すること、
・コンピュータ102のオペレーティングシステムが、コンピュータ102のハードウェア構成上で実行されるのに必要なすべてのデバイスドライバを含むことを検証すること、
・コンピュータ102におけるコードが、偶然に、または悪意で変更されていないことを検証すること、
・アプリケーションが、コンピュータ102に正しくインストールされていることを検証すること、
・既知の障害のある、または悪意のあるプログラムが、コンピュータ102にインストールされていないことを検証すること、
・インストール前に、アプリケーション、ならびにそのアプリケーションの構成コンポーネントおよび依存関係のすべてが、コンピュータ102上に存在することを検証すること、
・アプリケーションのコンポーネントをシステムに読み込む前に、そのアプリケーションが、コンピュータ102にインストール可能であることを検証すること、
・新たなアプリケーションまたはシステムコンポーネントのインストールが、既存のアプリケーション群またはコンポーネント群と競合しないことを検証すること、
・アプリケーションまたはオペレーティングシステムコンポーネントを、他のアプリケーション群またはコンポーネント群からの依存関係を切ることなしに、削除することができることを検証すること、および
・アプリケーションまたはオペレーティングシステムが、事前定義されたローカルポリシーを遵守することを検証することである。
この新たなアーキテクチャは、従来のソフトウェアベースのコンピュータの欠点の多くを克服する。例えば、新たなアーキテクチャを使用するソフトウェアベースのコンピュータの任意のオフライン「システムイメージ」を所与として、実際、そのイメージが、動作可能なOS、または特定の動作可能なアプリケーションを含むと決定的に判定することができる。これは、従来のアーキテクチャを使用するソフトウェアベースのコンピュータでは、行うことができない。
図4は、システムインスペクタ180によって実行される方法400を示す。この方法上のインプリメンテーションは、ソフトウェアで実行されても、ハードウェアで実行されても、ソフトウェアとハードウェアの組み合わせで実行されてもよい。理解を容易にするため、方法は、図4に独立のブロックとして表す別々のステップとして示すが、それらの別々に示したステップは、ステップの実行の際に必ずしも順序に依存していると解釈してはならない。さらに、説明のため、方法400は、図4を参照して説明する。
オペレーティングシステムは、計算を枠に入れ、プログラマが、専門の分野により完全に集中することにより、ソフトウェアをより容易に作成することができるようにする抽象化を提供する。抽象化は、1つまたは複数のコンポーネントのモデルを表し、このモデルは、それらのコンポーネントを、他のすべての種類のコンポーネントから区別する、それらのコンポーネントの基本的な特性を表し、明確に定義された概念上の境界を提供する。
・オペレーティングシステムおよびプログラム群を含む、「実行可能な」(例えば、コンピュータ102上で実行可能な)ソフトウェアシステムを表すシステムプロトタイプ、
・オペレーティングシステムおよびプログラム群を含む、アクティブな、または「実行中の」システムを表すシステム抽象化、
・実行可能なアプリケーションプログラムを表すアプリケーションプロトタイプ、
・アクティブな、または「実行中の」プログラムのインスタンスを表すアプリケーション抽象化、および
・実行可能なプロセスを表すプロセスプロトタイプである。
・システム抽象化512(オペレーティングシステムコンポーネント(例えば、スケジューラ、IPCマネージャ、I/Oマネージャ、セキュリティマネージャ、ガベージコレクション(garbage collection)、およびメモリマネージャなど)、および他の任意のシステムレベルのコンポーネント)、ならびに、包含により、すべてのアプリケーション、
・少なくとも1つのシステムに関連するシステムプロトタイプ514、
・OSおよびアプリケーション群を含む、少なくとも1つのシステムに関連するシステムマニフェスト516、
・1つまたは複数のアプリケーション抽象化522、
・アプリケーション抽象化の少なくとも1つに関連するアプリケーションプロトタイプ524、
・少なくとも1つのアプリケーションベースのアーチファクトに関連するアプリケーションマニフェスト526、
・1つまたは複数のプロセス抽象化532、
・プロセス抽象化の少なくとも1つに関連するプロセスプロトタイプ534、
・少なくとも1つのプロセスベースのアーチファクトに関連するプロセスマニフェスト536、および
単にユーザ中心モデルの一部であるのではなく、アプリケーションプログラムの概念は、実際に、以上の例示的な自己記述アーチファクトアーキテクチャ100の一部である。詳細には、OS112(またはOS112の諸部分)が、「アプリケーション抽象化」の概念を本来的に認識する。関連するマニフェストによって記述されるとおり、アプリケーション抽象化は、特定の低レベルの抽象化(アクティブなプロセス、およびそれらのプロセスのロードソースなどの)、および特定の高レベルの抽象化(オペレーティングシステムなどの)に記述的、かつ必然的にリンクされる。
図6は、アプリケーション抽象化を作成し、管理する目的で、OS112によって実行される方法600、または方法600の諸部分を示す。この方法上のインプリメンテーションは、ソフトウェアで実行されても、ハードウェアで実行されても、ソフトウェアとハードウェアの組み合わせで実行されてもよい。理解を容易にするため、方法は、図6に独立のブロックとして表す別々のステップとして示すが、それらの別々に示したステップは、ステップの実行の際に必ずしも順序に依存していると解釈してはならない。さらに、説明のため、方法600は、図6を参照して説明する。
図7は、本明細書で説明する、例示的な自己記述アーチファクトアーキテクチャを実施することができる(完全にか、または部分的に)、適切なコンピューティング環境700の実施例を示す。コンピューティング環境700は、本明細書で説明するコンピュータアーキテクチャおよびネットワークアーキテクチャにおいて利用することができる。
例示的な自己記述アーチファクトアーキテクチャのインプリメンテーションは、1つまたは複数のコンピュータまたは他のデバイスによって実行される、プログラムモジュールなどの、プロセッサ実行可能命令の一般的な状況で説明することができる。一般に、プログラムモジュールには、特定のタスクを実行する、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。通常、プログラムモジュール群の機能は、様々な実施形態において、所望に応じて組み合わせても、分散させてもよい。
図7は、例示的な自己記述アーチファクトアーキテクチャを実施することができる適切な動作環境700の実施例を示す。具体的には、本明細書で説明する例示的な自己記述アーチファクトアーキテクチャは、図7の任意のプログラムモジュール群728〜730および/またはオペレーティングシステム726またはその一部によって実施することができる(全体として、または部分的に)。
例示的な自己記述アーチファクトアーキテクチャのインプリメンテーションは、何らかの形態のプロセッサ可読媒体上に格納すること、またはそのような媒体を介して伝送することができる。プロセッサ可読媒体は、コンピュータがアクセスすることができる任意の利用可能な媒体であることが可能である。例として、プロセッサ可読媒体は、「コンピュータ記憶媒体」および「通信媒体」を含むことが可能であるが、以上には限定されない。
本明細書で説明した諸技術は、プログラムモジュール、汎用コンピューティングシステムおよび専用コンピューティングシステム、ネットワークサーバおよびネットワーク機器、専用エレクトロニクスおよび専用ハードウェアを含む(ただし、以上には限定されない)、多くの形で、1つまたは複数のコンピュータネットワークの一部として実施することができる。本明細書で説明した諸技術は、例えば、図7に示したコンピュータシステム上で実施することができる。より詳細には、それらの技術は、例えば、図7に示したコンピュータシステム上のオペレーティングシステムによって実施されることが可能である。
112 オペレーティングシステム
130 システムアーチファクト
140 アプリケーションアーチファクト
150 アプリケーションアーチファクト
160 自己記述アーチファクトマネージャ
162 実行ゲートキーパ
164 システムベリファイア
180 オフラインシステムインスペクタ
Claims (15)
- プロセッサ実行可能命令を実行するように構成されたプロセッサと、
前記プロセッサに結合されたメモリと、
前記プロセッサに結合され、コンピューティングシステムのソフトウェアコンポーネントを表す複数の自己記述ソフトウェアアーチファクトを永続的に保存するように構成されたストレージサブシステムであって、各ソフトウェアアーチファクトが、実行可能なエンティティのコンテンツおよび構成を表すオフライン表現を備え、各実行可能なエンティティが、プロセス、アプリケーション、またはオペレーティングシステムのコンポーネントのうちのいずれか1つのソフトウェアコンポーネントである、ストレージサブシステムと
を備え、
前記複数の自己記述ソフトウェアアーチファクトのそれぞれは、関連する永続的に保存されたマニフェストを有し、
各マニフェストは、前記マニフェストのソフトウェアアーチファクトのメタデータ宣言型記述を含み、
各マニフェストは、関連する実行可能なエンティティのメタデータ宣言型記述を含み、
特定の実行可能なエンティティの複数の表現が存在する場合、別個のマニフェストが前記特定の実行可能なエンティティの各表現に関連付けられ、
各マニフェストは、2つの形態のうちの1つで存在し、
マニフェストが静的マニフェストの形態である場合、該静的マニフェストは、ソフトウェアアーチファクトに関連して格納され、
マニフェストが動的マニフェストの形態である場合、該動的マニフェストは、ランタイムに入手可能な静的メタデータとランタイムに構築されて複数のランタイムシステム要素を結び付ける動的メタデータとを含むように、関連する実行可能なエンティティのそれぞれのランタイム中に使用される
ことを特徴とするコンピューティングシステム。 - 前記コンピューティングシステムの前記ソフトウェアコンポーネントは、前記コンピューティングシステム上にインストールされ、前記プロセッサ上で実行されるように構成されたオペレーティングシステム要素およびアプリケーションを含むことを特徴とする請求項1に記載のシステム。
- 前記ストレージサブシステムは、前記複数の自己記述ソフトウェアアーチファクトの宣言型記述を含むシステムマニフェストを永続的に保存することを特徴とする請求項1に記載のシステム。
- 前記自己記述ソフトウェアアーチファクトを管理するように構成されたアーチファクトマネージャをさらに備えたことを特徴とする請求項1に記載のシステム。
- プロセッサによって実行されると、
それぞれが、実行可能なエンティティのコンテンツおよび構成を表すオフライン表現を備え、コンピューティングシステム上にインストールされた動作可能なオペレーティングシステムコンポーネントまたは動作可能なアプリケーションを表す、複数の自己記述ソフトウェアアーチファクトを、前記コンピューティングシステム上に永続的に保存する動作と、
前記複数の自己記述ソフトウェアアーチファクトにそれぞれ関連する複数のマニフェストを永続的に保存する動作であって、特定の実行可能なエンティティの複数の表現が存在する場合、別個のマニフェストが前記特定の実行可能なエンティティの各表現に関連付けられ、前記マニフェストは、
前記複数の自己記述ソフトウェアアーチファクト、および
関連する実行可能なエンティティ
のメタデータ宣言型記述を含む、動作と、
各マニフェストは、静的マニフェストの形態または動的マニフェストの形態のいずれかであって、
マニフェストが静的マニフェストの形態の場合、自己記述ソフトウェアアーチファクトに関連する前記静的マニフェストを格納する動作と、
マニフェストが動的マニフェストの形態の場合、前記動的マニフェストが、ランタイムに構築されて複数のランタイムシステム要素を結び付ける動的メタデータを含むように、関連する実行可能なエンティティのランタイム中に前記動的マニフェストを使用する動作と
を含む処理を実行するプロセッサ実行可能命令を有することを特徴とする1つまたは複数のコンピュータ記録媒体。 - 前記処理は、前記マニフェストを検査して、前記複数の自己記述ソフトウェアアーチファクトに関する情報を検出する動作をさらに含むことを特徴とする請求項5に記載の1つまたは複数のコンピュータ記録媒体。
- プロセッサによって実行されると、
コンピューティングシステム上に永続的に保存された複数の自己記述ソフトウェアアーチファクトと前記複数の自己記述ソフトウェアアーチファクトに関連するマニフェストとを検査して、前記自己記述ソフトウェアアーチファクトと前記マニフェストに関する情報を収集する動作であって、
各ソフトウェアアーチファクトは、実行可能なエンティティのコンテンツおよび構成を表すオフライン表現を含み、各実行可能なエンティティは、プロセス、アプリケーション、またはオペレーションシステムのコンポーネントのうちの1つであり、
前記マニフェストは、前記複数の自己記述ソフトウェアアーチファクトおよび関連する実行可能なエンティティのメタデータ宣言型記述を含み、
特定の実行可能なエンティティの複数の表現が存在する場合、別個のマニフェストが、前記特定の実行可能なエンティティの各表現に関連付けられ、
各マニフェストは、静的マニフェストの形態または動的マニフェストの形態のいずれかで存在し、
前記静的マニフェストの形態のマニフェストは、ソフトウェアアーチファクトに関連して格納され、
前記動的マニフェストの形態のマニフェストは、ランタイムに構築されて複数のランタイムシステム要素を結び付ける動的メタデータを含むように、関連する実行可能なエンティティのそれぞれのランタイム中に使用される、収集する動作と、
前記複数の自己記述ソフトウェアアーチファクトに対して検証を実行する動作と、
前記検証の結果を報告する動作と
を含む処理を実行するプロセッサ実行可能命令を有することを特徴とする1つまたは複数のコンピュータ記録媒体。 - 前記処理は、アプリケーションをコンピュータにインストールする前に、該アプリケーション、および該アプリケーションの構成コンポーネントと依存関係のすべてが、前記コンピュータからアクセス可能であることを検証する動作をさらに含むことを特徴とする請求項7に記載の1つまたは複数のコンピュータ記録媒体。
- 前記処理は、新たなアプリケーションのインストールが、既存のアプリケーションと競合しないことを検証する動作をさらに含むことを特徴とする請求項7に記載の1つまたは複数のコンピュータ記録媒体。
- 前記処理は、アプリケーションを、他のアプリケーションとの依存関係を切ることなく削除することができることを検証する動作をさらに含むことを特徴とする請求項7に記載の1つまたは複数のコンピュータ記録媒体。
- プロセッサによって実行されると、
ソフトウェアベースのコンピュータ上にインストールされたソフトウェアコンポーネントのコンテンツおよび構成を表すオフラインシステムイメージのコピーを獲得する動作であって、前記インストールされたソフトウェアコンポーネントは、前記システムイメージ上で自己記述ソフトウェアアーチファクトとして表わされ、各ソフトウェアアーチファクトは、実行可能なエンティティのコンテンツおよび構成を表すオフライン表現を含み、各実行可能なエンティティは、プロセス、アプリケーション、オペレーティングシステムのコンポーネントのうちの1つであり、各自己記述ソフトウェアアーチファクトは、前記マニフェストのソフトウェアアーチファクトのメタデータ宣言型記述および関連する実行可能なエンティティのメタデータ宣言型記述を含む、関連する永続的に保存されたマニフェストを有し、特定の実行可能なエンティティの複数の表現が存在する場合は、別個のマニフェストが前記特定の実行可能なエンティティの各表現に関連付けられ、各マニフェストは、静的マニフェストの形態または動的マニフェストの形態のいずれかで存在する、獲得する動作と、
第1のマニフェストが前記静的マニフェストの形態で存在する場合、前記第1のマニフェストをソフトウェアアーチファクトに関連して格納する動作と、
第2のマニフェストが前記動的マニフェストの形態で存在する場合、前記第2のマニフェストが、ランタイムに構築されて複数のランタイムシステム要素を結び付ける動的メタデータを含むように、関連する実行可能なエンティティのそれぞれのランタイム中に前記第2のマニフェストを使用する動作と、
前記オフラインシステムイメージの前記自己記述ソフトウェアアーチファクトを分析する動作と、
前記分析する動作の結果を報告する動作と
を含む処理を実行するプロセッサ実行可能命令を有することを特徴とする1つまたは複数のコンピュータ記録媒体。 - 前記処理は、前記分析する動作に基づき、前記オフラインシステムイメージの中の前記ソフトウェアコンポーネントを識別する動作をさらに含むことを特徴とする請求項11に記載の1つまたは複数のコンピュータ記録媒体。
- 前記処理は、
前記分析する動作に基づき、前記オフラインシステムイメージの中の前記ソフトウェアコンポーネントを識別する動作と、
前記オフラインシステムイメージの中の前記識別されたソフトウェアコンポーネントが、不具合を含むかどうかを判定する動作と
をさらに含むことを特徴とする請求項11に記載の1つまたは複数のコンピュータ記録媒体。 - 前記コンピューティングシステムの前記ソフトウェアコンポーネントは、オペレーティングシステム要素およびアプリケーションを含むことを特徴とする請求項11に記載の1つまたは複数のコンピュータ記録媒体。
- 前記オフラインシステムイメージは、前記自己記述ソフトウェアアーチファクトの宣言型記述を有する永続的に保存されたシステムマニフェストを含むことを特徴とする請求項11に記載の1つまたは複数のコンピュータ記録媒体。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/007,808 | 2004-12-07 | ||
| US11/007,808 US7451435B2 (en) | 2004-12-07 | 2004-12-07 | Self-describing artifacts and application abstractions |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2006164287A JP2006164287A (ja) | 2006-06-22 |
| JP2006164287A5 JP2006164287A5 (ja) | 2009-03-05 |
| JP4828218B2 true JP4828218B2 (ja) | 2011-11-30 |
Family
ID=36284372
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2005354079A Expired - Fee Related JP4828218B2 (ja) | 2004-12-07 | 2005-12-07 | 自己記述アーチファクトおよびアプリケーション抽象化 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US7451435B2 (ja) |
| EP (1) | EP1669901A3 (ja) |
| JP (1) | JP4828218B2 (ja) |
Families Citing this family (54)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9361243B2 (en) | 1998-07-31 | 2016-06-07 | Kom Networks Inc. | Method and system for providing restricted access to a storage medium |
| US8234477B2 (en) | 1998-07-31 | 2012-07-31 | Kom Networks, Inc. | Method and system for providing restricted access to a storage medium |
| US7814198B2 (en) | 2007-10-26 | 2010-10-12 | Microsoft Corporation | Model-driven, repository-based application monitoring system |
| JP4833568B2 (ja) * | 2005-03-15 | 2011-12-07 | 株式会社リコー | 情報処理装置、画像形成装置、起動プログラムおよび記憶媒体 |
| US20060265387A1 (en) * | 2005-05-20 | 2006-11-23 | International Business Machines Corporation | Method and apparatus for loading artifacts |
| US8849968B2 (en) | 2005-06-20 | 2014-09-30 | Microsoft Corporation | Secure and stable hosting of third-party extensions to web services |
| US8495619B2 (en) * | 2005-06-29 | 2013-07-23 | Flexera Software Llc | Method and system for pre-deployment conflict checking |
| US7657871B2 (en) * | 2005-07-22 | 2010-02-02 | Sbc Knowledge Ventures, L.P. | Method and system of managing configuration profiles of a plurality of deployed network elements |
| US8074231B2 (en) | 2005-10-26 | 2011-12-06 | Microsoft Corporation | Configuration of isolated extensions and device drivers |
| US8065666B2 (en) | 2006-06-02 | 2011-11-22 | Rockwell Automation Technologies, Inc. | Change management methodologies for industrial automation and information systems |
| US8032898B2 (en) | 2006-06-30 | 2011-10-04 | Microsoft Corporation | Kernel interface with categorized kernel objects |
| US7720931B2 (en) * | 2006-10-13 | 2010-05-18 | International Business Machines Corporation | System and method of remotely managing and loading artifacts |
| US7761559B2 (en) * | 2006-10-13 | 2010-07-20 | International Business Machines Corporation | System and method of remotely managing and loading artifacts |
| US20080155495A1 (en) * | 2006-11-27 | 2008-06-26 | Sourcecode Technology Holding, Inc. | Methods and apparatus for modeling a workflow process in an offline environment |
| US8479283B2 (en) * | 2006-11-28 | 2013-07-02 | Microsoft Corporation | Generating security validation code automatically |
| US8327327B2 (en) | 2007-03-21 | 2012-12-04 | Carnegie Mellon University | Method for statically checking an object-oriented computer program module |
| US8789063B2 (en) | 2007-03-30 | 2014-07-22 | Microsoft Corporation | Master and subordinate operating system kernels for heterogeneous multiprocessor systems |
| US8024396B2 (en) * | 2007-04-26 | 2011-09-20 | Microsoft Corporation | Distributed behavior controlled execution of modeled applications |
| US8239505B2 (en) * | 2007-06-29 | 2012-08-07 | Microsoft Corporation | Progressively implementing declarative models in distributed systems |
| US7970892B2 (en) * | 2007-06-29 | 2011-06-28 | Microsoft Corporation | Tuning and optimizing distributed systems with declarative models |
| US20090037466A1 (en) * | 2007-07-31 | 2009-02-05 | Cross Micah M | Method and system for resolving feature dependencies of an integrated development environment with extensible plug-in features |
| US8230386B2 (en) | 2007-08-23 | 2012-07-24 | Microsoft Corporation | Monitoring distributed applications |
| US20090063623A1 (en) * | 2007-08-31 | 2009-03-05 | International Business Machines Corporation | Determining connection information to use to access an artifact from an application on a remote server |
| US8225308B2 (en) * | 2007-10-26 | 2012-07-17 | Microsoft Corporation | Managing software lifecycle |
| US7974939B2 (en) | 2007-10-26 | 2011-07-05 | Microsoft Corporation | Processing model-based commands for distributed applications |
| US8181151B2 (en) * | 2007-10-26 | 2012-05-15 | Microsoft Corporation | Modeling and managing heterogeneous applications |
| US8099720B2 (en) | 2007-10-26 | 2012-01-17 | Microsoft Corporation | Translating declarative models |
| US7926070B2 (en) | 2007-10-26 | 2011-04-12 | Microsoft Corporation | Performing requested commands for model-based applications |
| US20090172637A1 (en) * | 2007-12-28 | 2009-07-02 | Microsoft Corporation | Markup-based language for manifests |
| US7657941B1 (en) | 2008-12-26 | 2010-02-02 | Kaspersky Lab, Zao | Hardware-based anti-virus system |
| US9588803B2 (en) | 2009-05-11 | 2017-03-07 | Microsoft Technology Licensing, Llc | Executing native-code applications in a browser |
| US20110288932A1 (en) * | 2010-05-21 | 2011-11-24 | Inedible Software, LLC, a Wyoming Limited Liability Company | Apparatuses, systems and methods for determining installed software applications on a computing device |
| US9043863B1 (en) | 2010-09-07 | 2015-05-26 | Symantec Corporation | Policy enforcing browser |
| US8832855B1 (en) | 2010-09-07 | 2014-09-09 | Symantec Corporation | System for the distribution and deployment of applications with provisions for security and policy conformance |
| US8955152B1 (en) * | 2010-09-07 | 2015-02-10 | Symantec Corporation | Systems and methods to manage an application |
| US9778915B2 (en) | 2011-02-28 | 2017-10-03 | Microsoft Technology Licensing, Llc | Distributed application definition |
| US9891939B2 (en) * | 2011-03-03 | 2018-02-13 | Microsoft Technology Licensing, Llc | Application compatibility with library operating systems |
| US9990184B2 (en) | 2011-03-25 | 2018-06-05 | Microsoft Technology Licensing, Llc | Distributed component model |
| US9465589B2 (en) | 2011-04-05 | 2016-10-11 | Microsoft Technology Licensing, Llc | Stateful component authoring and execution |
| US9495183B2 (en) | 2011-05-16 | 2016-11-15 | Microsoft Technology Licensing, Llc | Instruction set emulation for guest operating systems |
| US8555250B2 (en) * | 2011-05-31 | 2013-10-08 | Microsoft Corporation | Static semantic analysis of dynamic languages |
| US9256401B2 (en) | 2011-05-31 | 2016-02-09 | Microsoft Technology Licensing, Llc | Editor visualization of symbolic relationships |
| US8752035B2 (en) | 2011-05-31 | 2014-06-10 | Microsoft Corporation | Transforming dynamic source code based on semantic analysis |
| US8789018B2 (en) | 2011-05-31 | 2014-07-22 | Microsoft Corporation | Statically derived symbolic references for dynamic languages |
| US8996916B2 (en) | 2011-08-16 | 2015-03-31 | Future Dial, Inc. | System and method for identifying problems via a monitoring application that repetitively records multiple separate consecutive files listing launched or installed applications |
| US8825722B2 (en) * | 2012-01-13 | 2014-09-02 | Microsoft Corporation | Calculation of properties of objects/shapes across versions of applications |
| US9875090B2 (en) * | 2012-12-20 | 2018-01-23 | Microsoft Technology Licensing, Llc | Program analysis based on program descriptors |
| US8954939B2 (en) | 2012-12-31 | 2015-02-10 | Microsoft Corporation | Extending a development environment |
| WO2015191731A1 (en) * | 2014-06-13 | 2015-12-17 | The Charles Stark Draper Laboratory, Inc. | Systems and methods for software analytics |
| US9304763B1 (en) * | 2014-08-21 | 2016-04-05 | Amdocs Software Systems Limited | System, method, and computer program for big data integration and configuration |
| US20160313958A1 (en) * | 2015-04-27 | 2016-10-27 | Microsoft Technology Licensing, Llc | Cross-platform command extensibility |
| US10977016B2 (en) * | 2017-10-31 | 2021-04-13 | EMC IP Holding Company LLC | Management of data using templates |
| US10817402B2 (en) * | 2018-01-03 | 2020-10-27 | Nec Corporation | Method and system for automated building of specialized operating systems and virtual machine images based on reinforcement learning |
| US11086901B2 (en) | 2018-01-31 | 2021-08-10 | EMC IP Holding Company LLC | Method and system for efficient data replication in big data environment |
Family Cites Families (61)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB8400291D0 (en) | 1984-01-06 | 1984-02-08 | Wiggins Teape Group Ltd | Fibre reinforced plastics sheets |
| US4916637A (en) * | 1987-11-18 | 1990-04-10 | International Business Machines Corporation | Customized instruction generator |
| JP2720904B2 (ja) * | 1990-08-31 | 1998-03-04 | 富士通株式会社 | 自己記述によるデータベース管理システムの構成方法および開発/変更方法 |
| US5481717A (en) * | 1993-04-12 | 1996-01-02 | Kabushiki Kaisha Toshiba | Logic program comparison method for verifying a computer program in relation to a system specification |
| US5590001A (en) * | 1994-03-15 | 1996-12-31 | Fujitsu Limited | Breather filter unit for magnetic disk drive |
| US5794052A (en) * | 1995-02-27 | 1998-08-11 | Ast Research, Inc. | Method of software installation and setup |
| US5752032A (en) * | 1995-11-21 | 1998-05-12 | Diamond Multimedia Systems, Inc. | Adaptive device driver using controller hardware sub-element identifier |
| US6009476A (en) * | 1995-11-21 | 1999-12-28 | Diamond Multimedia Systems, Inc. | Device driver architecture supporting emulation environment |
| US5951639A (en) * | 1996-02-14 | 1999-09-14 | Powertv, Inc. | Multicast downloading of software and data modules and their compatibility requirements |
| US6292941B1 (en) * | 1996-04-30 | 2001-09-18 | Sun Microsystems, Inc. | Operating system installation |
| US5768532A (en) * | 1996-06-17 | 1998-06-16 | International Business Machines Corporation | Method and distributed database file system for implementing self-describing distributed file objects |
| US5974572A (en) * | 1996-10-15 | 1999-10-26 | Mercury Interactive Corporation | Software system and methods for generating a load test using a server access log |
| US5878408A (en) * | 1996-12-06 | 1999-03-02 | International Business Machines Corporation | Data management system and process |
| US5884018A (en) * | 1997-01-28 | 1999-03-16 | Tandem Computers Incorporated | Method and apparatus for distributed agreement on processor membership in a multi-processor system |
| US6144992A (en) * | 1997-05-09 | 2000-11-07 | Altiris, Inc. | Method and system for client/server and peer-to-peer disk imaging |
| US6038399A (en) * | 1997-07-22 | 2000-03-14 | Compaq Computer Corporation | Computer manufacturing architecture with two data-loading processes |
| US6247128B1 (en) * | 1997-07-22 | 2001-06-12 | Compaq Computer Corporation | Computer manufacturing with smart configuration methods |
| US5963743A (en) * | 1997-08-29 | 1999-10-05 | Dell Usa, L.P. | Database for facilitating software installation and testing for a build-to-order computer system |
| US6351850B1 (en) * | 1997-11-14 | 2002-02-26 | Frank Van Gilluwe | Computer operating system installation |
| US6182275B1 (en) * | 1998-01-26 | 2001-01-30 | Dell Usa, L.P. | Generation of a compatible order for a computer system |
| IL123512A0 (en) * | 1998-03-02 | 1999-03-12 | Security 7 Software Ltd | Method and agent for the protection against hostile resource use access |
| US6092189A (en) * | 1998-04-30 | 2000-07-18 | Compaq Computer Corporation | Channel configuration program server architecture |
| US6161051A (en) * | 1998-05-08 | 2000-12-12 | Rockwell Technologies, Llc | System, method and article of manufacture for utilizing external models for enterprise wide control |
| US6080207A (en) * | 1998-06-04 | 2000-06-27 | Gateway 2000, Inc. | System and method of creating and delivering software |
| US6381742B2 (en) * | 1998-06-19 | 2002-04-30 | Microsoft Corporation | Software package management |
| DE19837871C2 (de) * | 1998-08-20 | 2000-06-08 | Manfred Broy | Verfahren zum automatischen Erzeugen eines Programms |
| US6029174A (en) * | 1998-10-31 | 2000-02-22 | M/A/R/C Inc. | Apparatus and system for an adaptive data management architecture |
| US6066182A (en) * | 1998-11-05 | 2000-05-23 | Platinum Technology Ip, Inc. | Method and apparatus for operating system personalization during installation |
| US6842782B1 (en) | 1998-12-08 | 2005-01-11 | Yodlee.Com, Inc. | Method and apparatus for tracking functional states of a web-site and reporting results to web developers |
| US6442754B1 (en) * | 1999-03-29 | 2002-08-27 | International Business Machines Corporation | System, method, and program for checking dependencies of installed software components during installation or uninstallation of software |
| US6782541B1 (en) | 1999-05-28 | 2004-08-24 | Avaya Technology Corp. | System and method of exchanging information between software modules |
| US7167867B1 (en) * | 1999-10-05 | 2007-01-23 | Emc Corporation | Self-describing file system |
| US6871344B2 (en) * | 2000-04-24 | 2005-03-22 | Microsoft Corporation | Configurations for binding software assemblies to application programs |
| US7155713B1 (en) * | 2000-04-27 | 2006-12-26 | Microsoft Corporation | Componentized operating system |
| US7310801B2 (en) * | 2000-04-27 | 2007-12-18 | Microsoft Corporation | Servicing a component-based software product throughout the software product lifecycle |
| US6868539B1 (en) * | 2000-06-28 | 2005-03-15 | Microsoft Corp. | System and method providing single application image |
| US7124408B1 (en) * | 2000-06-28 | 2006-10-17 | Microsoft Corporation | Binding by hash |
| US6816905B1 (en) | 2000-11-10 | 2004-11-09 | Galactic Computing Corporation Bvi/Bc | Method and system for providing dynamic hosted service management across disparate accounts/sites |
| US7260845B2 (en) * | 2001-01-09 | 2007-08-21 | Gabriel Kedma | Sensor for detecting and eliminating inter-process memory breaches in multitasking operating systems |
| US20040015958A1 (en) | 2001-05-15 | 2004-01-22 | Veil Leonard Scott | Method and system for conditional installation and execution of services in a secure computing environment |
| US7028305B2 (en) * | 2001-05-16 | 2006-04-11 | Softricity, Inc. | Operating system abstraction and protection layer |
| US20030031404A1 (en) | 2001-08-07 | 2003-02-13 | Corvis Corporation | Optical transmission systems including optical components and optical filters and methods of use therein |
| IL145105A (en) | 2001-08-23 | 2007-02-11 | Gregory Bondar | Method and system for providing a web service by a plurality of web domains through a single ip address |
| CA2404552C (en) | 2001-09-21 | 2008-12-09 | Corel Corporation | System and method for secure communication |
| US7711570B2 (en) * | 2001-10-21 | 2010-05-04 | Microsoft Corporation | Application abstraction with dialog purpose |
| CN1630853A (zh) | 2001-10-30 | 2005-06-22 | 皇家飞利浦电子股份有限公司 | 用于构造分布式软件成分的方法 |
| JP2003233521A (ja) * | 2002-02-13 | 2003-08-22 | Hitachi Ltd | ファイル保護システム |
| US7856631B2 (en) * | 2002-05-08 | 2010-12-21 | Sap Aktiengesellschaft | Software delivery manager |
| US7222106B2 (en) * | 2002-05-21 | 2007-05-22 | International Business Machines Corporation | Mechanisms for handling software license agreements on multi-user system |
| US7062764B2 (en) * | 2002-06-17 | 2006-06-13 | Microsoft Corporation | System and method for manipulating offline software |
| DE10235455B9 (de) | 2002-08-02 | 2008-01-24 | Leo Elektronenmikroskopie Gmbh | Teilchenoptische Vorrichtung und Verfahren zum Betrieb derselben |
| US7832011B2 (en) * | 2002-08-30 | 2010-11-09 | Symantec Corporation | Method and apparatus for detecting malicious code in an information handling system |
| ATE516537T1 (de) * | 2002-10-01 | 2011-07-15 | Sap Ag | Prüfung von skriptsprachen mit schnittstellen mittels annotationen in xml |
| EP1431873A1 (en) * | 2002-12-19 | 2004-06-23 | Hewlett-Packard Company, A Delaware Corporation | Computer programming |
| US8255361B2 (en) | 2003-01-31 | 2012-08-28 | Oracle America, Inc. | Method and system for validating differential computer system update |
| US20050005261A1 (en) * | 2003-07-02 | 2005-01-06 | Severin William B. | Component integration engine |
| US7533103B2 (en) * | 2003-07-22 | 2009-05-12 | Sap Ag | Self-describing business objects |
| US7403956B2 (en) * | 2003-08-29 | 2008-07-22 | Microsoft Corporation | Relational schema format |
| US20050060687A1 (en) * | 2003-09-15 | 2005-03-17 | Ghazaleh David Abu | Method and apparatus for documenting and describing object oriented programming logic |
| US20050091658A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Operating system resource protection |
| CA2576508A1 (en) * | 2004-08-04 | 2006-02-16 | Osa Technologies, Inc. | Software and firmware adaptation for unanticipated/changing hardware environments |
-
2004
- 2004-12-07 US US11/007,808 patent/US7451435B2/en not_active Expired - Fee Related
-
2005
- 2005-12-06 EP EP05111730A patent/EP1669901A3/en not_active Ceased
- 2005-12-07 JP JP2005354079A patent/JP4828218B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US7451435B2 (en) | 2008-11-11 |
| EP1669901A2 (en) | 2006-06-14 |
| JP2006164287A (ja) | 2006-06-22 |
| US20060123412A1 (en) | 2006-06-08 |
| EP1669901A3 (en) | 2008-01-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4828218B2 (ja) | 自己記述アーチファクトおよびアプリケーション抽象化 | |
| Zerouali et al. | A formal framework for measuring technical lag in component repositories—and its application to npm | |
| JP4263476B2 (ja) | ハッシュによるアセンブリの完全性の確認のための方法、コンピュータ可読媒体及びプログラム | |
| CN100407142C (zh) | 具有自动完整性参考生成及维护的计算设备 | |
| US11455400B2 (en) | Method, system, and storage medium for security of software components | |
| CN101542446B (zh) | 用于系统分析和管理的方法和装置 | |
| KR101475987B1 (ko) | 오프라인 가상 환경의 개선 또는 오프라인 가상 환경에 관련된 방법 및 시스템 | |
| Lindorfer et al. | Lines of malicious code: Insights into the malicious software industry | |
| US9910743B2 (en) | Method, system and device for validating repair files and repairing corrupt software | |
| CN101278260B (zh) | 使软件程序免于弱点和攻击的约束注入方法 | |
| US8490082B2 (en) | System and method for representing user processes as software packages in a software package management system | |
| US7409675B2 (en) | Code rewriting | |
| US20070101197A1 (en) | System and method for representing system capabilities as software packages in a software package management system | |
| JP2005534092A (ja) | プログラムの潜在的にワームのような挙動の自動決定の方法および装置 | |
| US20150256549A1 (en) | System, method, and computer program product for conditionally performing an action based on an attribute | |
| JP6469028B2 (ja) | オペレーティング・システム・リソースに対する機械語のネイティブイメージのアクセス制御のシステム及び方法 | |
| Christensen et al. | {DECAF}: Automatic, adaptive de-bloating and hardening of {COTS} firmware | |
| Cui et al. | Tracking rootkit footprints with a practical memory analysis system | |
| AU2019371545A1 (en) | Management system, acquisition device and management method | |
| US20090193411A1 (en) | Method and system for assessing deployment and un-deployment of software installations | |
| US20050049790A1 (en) | System and method for validating whether a software application is properly installed | |
| CN118946884B (zh) | 用于安全地运行软件组件的方法 | |
| Singh | SMART CONTRACT SECURITY | |
| CN114691159A (zh) | 软件安装包的处理方法、装置、存储介质及处理器 | |
| WO2024242971A1 (en) | Unpacking software via auto-unpacker interception |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081121 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090116 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110524 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110824 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110909 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110914 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140922 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 4828218 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
| R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
| R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
| R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
| R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |