JP5007046B2 - コンポーネントベースのソフトウェア・プロダクトの保守 - Google Patents

コンポーネントベースのソフトウェア・プロダクトの保守 Download PDF

Info

Publication number
JP5007046B2
JP5007046B2 JP2005508281A JP2005508281A JP5007046B2 JP 5007046 B2 JP5007046 B2 JP 5007046B2 JP 2005508281 A JP2005508281 A JP 2005508281A JP 2005508281 A JP2005508281 A JP 2005508281A JP 5007046 B2 JP5007046 B2 JP 5007046B2
Authority
JP
Japan
Prior art keywords
component
software
computer
manifest
files
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
Application number
JP2005508281A
Other languages
English (en)
Other versions
JP2007521529A (ja
Inventor
ブルクハルト ライアン
コーエン ジェーソン
ロッドウィック スティーブン
ジャンウォー ラジ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2007521529A publication Critical patent/JP2007521529A/ja
Application granted granted Critical
Publication of JP5007046B2 publication Critical patent/JP5007046B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明の実施形態は、ソフトウェア・プロダクトの保守分野に関する。具体的には、本発明の実施形態は、コンポーネントベースのオペレーティングシステムおよびアプリケーションプログラムを、ソフトウェア・プロダクトのライフサイクルを通じて、サービスパッケージを用いて更新することに関する。
オペレーティングシステムのイメージは、コンピュータ内のハードウェアと相互に作用して、複数の機能を実行する。従来のコンピュータは通常、オペレーティングシステムを実行して、その作動中に、コンピュータの様々な面を管理する。典型的には、オペレーティングシステムは、入力、および/または出力装置だけでなく、外部記憶装置へのアクセスを管理すること、および一又は複数の追加のアプリケーションの実行を制御することを担当する。オペレーティングシステムがコンピュータによって実行される前に、オペレーティングシステムは、典型的には、コンピュータにインストールされなければならず、その工程は、通常、複数のファイルを、配布媒体(例えば、CD−ROM)からコンピュータの外部記憶装置(例えば、ハードディスク)上にコピーすることを含む。
従来のオペレーティングシステムは、命令、および/またはデータを含む、非常に多くのファイルを含む。これらの命令は、コンピュータによって実行される場合、オペレーティングシステムに機能を提供する。オペレーティングシステムは、一または複数の特定のファイルを追加、または置き換えるなどの幅広い種類の方法で、および幅広い種類の人々(例えば、オペレーティングシステム開発者以外のユーザ、管理者、ソフトウェア開発者など)によって、変更される(例えば、更新される)だろう。正常に動作しないコンピュータを検査し、またはオペレーティングシステムを更新することが難しくなっているのは、ユーザ、または管理者が、どのような機能であって、またはコンピュータに何がインストールされるべきかを、正確に知ることが難しいからである。
現在あるシステムにおいて、ソフトウェア・プロダクト(例えば、オペレーティングシステム、またはアプリケーションプログラム)を備えるバイナリファイルを保守することは、ソフトウェア・プロダクトのライフサイクルにおいて最も費用のかかる側面であることが多い。典型的なソフトウェア・プロダクトのライフサイクルは、プレ・デプロイ(pre-deployment)段階(例えば、事前インストール)、デプロイ(deployment)段階(例えば、インストール)、および、ポスト・デプロイ(post-deployment)段階(例えば、稼動中のシステムへのインストール)を含む。バイナリファイルの大きさ、どれか一つの単独の問題のために一般的に提供されるバイナリファイルの量、およびソフトウェア・プロダクトのライフサイクルの各々の段階におけるバイナリファイルの異なる記憶場所によって、バイナリファイルの配布、および作成は困難になる。また、システム全体に複数のバイナリを保守することにより、システム上の、より大きい、統合された機能の現行バージョンに、特定の情報を提供できなくなる。
例えば、バイナリファイルに記録されたソフトウェアコードの問題点を改善するためにサービスパッケージを作成する場合、現在あるシステムは、通常、バイナリの更新されたコピー、または他のソフトウェアを修正することなくそのソフトウェアコードを修正するパッチを作成する。しかしながら、現在あるシステムは、通常、現段階のソフトウェア・プロダクトのライフサイクルに基づき、パッチとバイナリファイルの両方の異なるバージョン、すなわち、プレ・デプロイのためのバージョン、デプロイのためのバージョン、および、稼動中のシステムのためのバージョン、を必要とする。
他の例においては、ある従前のシステムは、エンドユーザに対して、稼動中のシステム上の、またはプレ・デプロイ時の、一つのファイル、またはライブラリ(例えば、library.dll)を置き換える“ホットフィックス(hot fix)”(例えば、パッチ)を提供する。他のシステムは、インストール時に、クライアントマシーンに対して、インストール媒体から、またはネットワークを介して、更新されたファイル、またはライブラリ(例えば、library.dll)を取得し、および取得したアップデートをインストールするよう指図することによってアップデートを提供する。しかしながら、そのようなシステムは、クライアントマシーンの各々のライフサイクルの段階、すなわち、プレ・デプロイ、デプロイ、ポスト・デプロイのための個別のスクリプトを必要とする。さらに、たった一つのファイルの変更が、他の従属ファイルの変更を必要とするかもしれない。従前のシステムは、更新処理の間、理にかなった、従属関係の解決を提供できない。
したがって、ソフトウェア・プロダクトのライフサイクル全般にわたってソフトウェア・プロダクトの保守をするシステムは、これらの一又は複数の、および他の課題に対応することが望まれる。
本発明の実施態様は、ソフトウェア・プロダクトを、サービスパッケージによって更新することを含む。サービスパッケージは、コンポーネントに関連づけられた一又は複数のファイル、およびファイルをインストールするための複数の命令セットを含む。一実施態様では、本発明は、コンポーネントに関連付けられた状態、または他の操作状況を決定し、決定された状態に基づき命令セットの一つを選択し、および選択された命令セットにしたがって、一又は複数のファイルを、コンポーネントに適用する。例えば、その状態はソフトウェア・プロダクトのライフサイクルの以下の段階、すなわち、ソフトウェア・プロダクトのプレ・デプロイ、ソフトウェア・プロダクトのデプロイ、および、ソフトウェア・プロダクトのポスト・デプロイ、の一つに相当するだろう。
本発明は、ソフトウェア・プロダクトのライフサイクルの全ての段階において、消費者および元の機器製造者の両方に対し一つのサービスパッケージを提供し、ソフトウェア・プロダクトを保守する。ソフトウェア・プロダクトが保守点検すべき、ますます多くのバイナリを持つため、本発明は、保守コストを引き下げ、および、システムの単なるクエリーがシステム上で保守されているバイナリのバージョンを決定できるようにする。
本発明のある側面によると、コンピュータ化された方法はソフトウェア・プロダクトを更新する。その方法は、複数のコンポーネントとしてソフトウェア・プロダクトを特徴付ける。その方法は、更新されるべきソフトウェア・プロダクトのライフサイクルの段階に基づいて、サービスパッケージに関連づけられた、複数の命令セットの一つにアクセスすることも含む。その方法は、アクセスされた命令セットにしたがって、ソフトウェア・プロダクトにおけるコンポーネントの少なくとも一つを修正することも含む。
本発明の他の側面によると、方法は、ソフトウェア・プロダクトを、サービスパッケージによって更新する。ソフトウェア・プロダクトは複数のコンポーネントを含む。コンポーネントの各々は、それとともに関連づけられた状態を有している。その状態はコンポーネントの動作状況を表す。サービスパッケージは選択されたコンポーネントに関連づけられた一又は複数のファイルを含む。サービスパッケージはさらにファイルをインストールするための複数の命令セットを含む。方法は選択されたコンポーネントに関連づけられた状態を決定することを含む。方法は決定された状態に基づいて命令セットの一つを選択することも含む。方法は、選択された命令セットにしたがって、一又は複数のファイルを選択されたコンポーネントに適用することも含む。
本発明のさらに他の側面によると、一又は複数のコンピュータ読み取り可能な媒体は、サービスパッケージによってソフトウェア・プロダクトを更新する、コンピュータで実行可能なモジュールを有する。ソフトウェア・プロダクトは複数のコンポーネントを含む。コンポーネントの各々はそれとともに関連づけられた状態を有している。その状態はコンポーネントの動作状況を表す。サービスパッケージは選択されたコンポーネントに関連づけられた一又は複数のファイルを含む。サービスパッケージは、さらに、ファイルをインストールするための複数の命令セットを含む。モジュールは、選択されたコンポーネントに関連付けられた状態を決定し、および決定された状態に基づいて命令セットの一つを選択する設定モジュールを含む。モジュールは、設定モジュールによって選択された命令セットにしたがって、一又は複数のファイルを選択されたコンポーネントに適用することによって、選択されたコンポーネントを修正するインストールモジュールも含む。
本発明のさらに別の側面によると、方法はソフトウェア・プロダクトのためのサービスパッケージを作成する。そのソフトウェア・プロダクトはそれとともに関連付けられた複数のライフサイクル段階の一つを有するコンポーネントを含む。その方法はソフトウェア・プロダクトに関連付けられた一又は複数のファイルを選択することを含む。その方法は、選択されたファイルを、コンピュータ読み取り可能な媒体上に記憶することも含む。その方法は、複数のインストールスクリプトを、コンピュータ読み取り可能な媒体上に記憶することも含む。各々のインストールスクリプトはライフサイクルの段階の一つに対応する。インストールスクリプトは、コンポーネントのライフサイクルの段階に基づいて実行されて、記憶され、選択されたファイルをソフトウェア・プロダクトに適用する。
本発明のさらに別の側面によると、サービスパッケージはコンピュータ読み取り可能な媒体上に記憶されたソフトウェア・プロダクトを更新する。そのソフトウェア・プロダクトはそれと関連づけられた複数のライフサイクルの段階の一つを有するコンポーネントを含む。そのサービスパッケージは、そのコンポーネントに関連づけられた一又は複数のファイルを含む。そのサービスパッケージはコンポーネントの複数のライフサイクルの段階に対応する複数の命令セットも含む。複数の命令セットの一つは、コンポーネントに関連づけられたライフサイクルの段階に応答して、選択され、および実行されて、ファイルをコンポーネントに適用する。
また、本発明は様々な他の方法および装置を含む。
他の特徴は、以下の記述により、その一部が明らかになり、その一部が指摘される。
最初に図1に言及すると、ブロック図は、コンピュータ・デバイス102上に記憶されたコンポーネント#1ないしコンポーネント#Xなど、一又は複数のコンポーネント108を持つ、コンポーネントベースのソフトウェア・プロダクト106に適用される例示的なサービスパッケージ104を説明する。一実施態様において、本発明は、ソフトウェア・プロダクト106(例えば、オペレーティングシステム、または、アプリケーションプログラム)を更新するために、コンピュータ・デバイス102上で実行するソフトウェアを含む。ソフトウェア・プロダクト106における各コンポーネント108は少なくともバイナリファイルなどの一つのファイルを含み、およびマニフェスト、またはそれとともに関連付けられたコンポーネント108を記載する他の情報を有する。本発明はソフトウェア・プロダクト106のコンポーネントベースの定義を使用し、コンポーネント108を更新するためのただ一つの方法を提供する。すなわち、本発明はサービスパッケージ104内のバイナリファイル#1ないしバイナリファイル#Yなど、全てのバイナリファイル110を適用し、またはそうでなければインストールするコンポーネントインストーラを提供する。
サービスパッケージ104は、ソフトウェア・プロダクトのライフサイクルにおけるコンポーネント108に関連付けられた段階または状態で、ファイル110の適切なインストールを指示する命令セット#1ないし命令セット#Zなど、複数の命令セット112(例えば、インストール段階の宣言的記述を含む)も含む。例えば、ソフトウェア・プロダクトのライフサイクルの段階は、これらに限定されないが、ソフトウェア・プロダクト106のプレ・デプロイ、ソフトウェア・プロダクト106のデプロイ、およびソフトウェア・プロダクト106のポスト・デプロイを含む。他のライフサイクルの段階は本発明の適用範囲内である。本発明はソフトウェア・プロダクト106の現在のライフサイクルの段階に対応する命令セット112にしたがってファイル110を適用する。したがって、本発明は、ソフトウェア・プロダクトのライフサイクルのいかなる段階、状態、または動作状況、若しくは操作環境でもサービスパッケージ104のインストールを可能にするただ一つのサービスパッケージ104を提供する。
一実施態様において、本発明はコンポーネント108に関連付けられた状態を決定し、決定された状態に基づいて命令セット112の一つにアクセスし、および選択し、並びに選択された命令セット112にしたがって1つ以上のファイル110をコンポーネント108に適用して、コンポーネント108を修正(例えば、コンポーネント、またはコンポーネント内のファイルを追加、または削除する)する。本発明は更新処理に関するデータを持つ更新されたコンポーネント108に関連付けられたマニフェストも更新する。管理者などのユーザは、各コンポーネント108に記憶されたマニフェストに問い合わせを行って、ソフトウェア・プロダクト106に行われた変更リストに加えてソフトウェア・プロダクト106にインストールされたすべてのコンポーネント108のすべてのバージョンのリストを取得する。
図1のシステムは、以下、より詳細に記述される。
(コンポーネント化されたソフトウェア・プロダクト)
次に、図2に言及すると、ブロック図は本発明の一実施形態にしたがって例示的なコンピュータ・デバイス201を説明する。コンピュータ・デバイス201は、オペレーティングシステム202、および一又は複数のアプリケーションプログラム204などのソフトウェア・プロダクトを有するものとして説明される。
オペレーティングシステム202は、コンピュータ・デバイス201にとって、基本的なソフトウェア制御プログラムであり、ユーザインターフェースを提供することを含む様々な機能を実行し、一又は複数のアプリケーション204の実行を管理し、並びに様々な入出力(I/O)装置に対するデータの入力、および、データの出力を制御する。アプリケーションプログラム204はコンピュータ・デバイス201上で実行される、一又は複数の幅広い種類のアプリケーションソフトウェアプログラムを表す。そのようなアプリケーションプログラム204の例は教育プログラム、リファレンスプログラム、生産性プログラム(例えば、ワープロ、表計算ソフト、データベース)、気晴らしのためのプログラム、ユーティリティープログラム(例えば、通信プログラム)などを含む。アプリケーションプログラム204はユーザによってコンピュータ・デバイス201にインストールされうるし、または、もう一つの方法として、コンピュータ・デバイス201の製造者および/または販売業者によってプリインストールされうる。
オペレーティングシステム202はその機能をコンポーネント#1ないしコンポーネント#Nなど、複数のコンポーネント206に分割する。各コンポーネント206は、マニフェスト#1ないしマニフェスト#Nなど、それぞれ対応するマニフェスト208を有する。コンポーネント206は、一又は複数のファイル(またはファイルの識別子)の集合を含む。そのファイルは、実行可能ファイル、DLL(dynamic-link library)、COM(component object module)など、ソフトウェア命令を含むことができる。そのファイルは、一又は複数のコンポーネント206によって使用されるデータも含むだろう。一実施例においては、オペレーティングシステム202の特定の機能に対応するファイル(例えば、データおよび/または命令)は、同じコンポーネント206に集約される。例えば、ゲームのコンポーネント、通信のコンポーネント、およびファイルシステムのコンポーネントが存在する。コンポーネント分割(componentization)に結びつくファイルのグルーピングは、静的であるかもしれないし、あるいは次第に変化するかもしれない。一実施例では、オペレーティングシステム202を更新することは、あるコンポーネント206から選択したファイルが削除され、および他のコンポーネント206に追加される結果になるかもしれない。
各マニフェスト208は、対応するコンポーネント206について説明する情報を含む。対応するコンポーネント206に関係する幅広い種類のメタデータは各マニフェスト208に含まれるだろう。一実施形態では、マニフェスト208は、もしあれば、対応するコンポーネント206が依存している他のコンポーネント206がどれであるのかはもちろん、対応するコンポーネント206のバージョンも特定する。一例として、コンポーネント206の一又は複数のファイルを適切に実行するために、もう一つのコンポーネントからの一又は複数の他のファイル(例えば、DLLファイル)は、コンピュータ・デバイス201上にインストールされる必要があるだろう。この例では、マニフェスト208は、コンポーネント206が他のコンポーネントに依存していることを指し示すだろう。
一形態では、コンピュータ・デバイス201に関連付けられた一または複数のコンピュータ読み取り可能な媒体は、サービスパッケージ104などのサービスパッケージによりソフトウェア・プロダクト106(例えば、オペレーティングシステム202)を更新するためのコンピュータ実行可能モジュールを有する。コンピュータ実行可能モジュールは、コンポーネントインストーラ210として具体化される。コンポーネントインストーラ210は、設定モジュール212、インストールモジュール214、スクリプトモジュール216、レポートモジュール218、および依存モジュール220を含む。設定モジュール212は更新されるべきコンポーネント206に関連付けられた状態を決定し、および決定された状態に基づいて命令セットの1つを選択する。インストールモジュール214は、選択された命令セットにしたがって一又は複数のファイルをコンポーネント206に適用することによって、コンポーネント206を修正する。スクリプトモジュール216は、一又は複数のファイルを適用することに関するデータで、コンポーネント206に対するマニフェスト208を更新する。スクリプトモジュール216は、さらにコンポーネント206とともに、コンポーネント206に対する最新版のマニフェスト208を記憶する。レポートモジュール218は、ユーザから、マニフェスト208内のデータの要求を受け取る。レポートモジュール218は、問い合わせ結果を生成する受信した要求に応えてマニフェスト208にさらに問い合わせを行い、およびユーザに対して問い合わせ結果を提供する。依存モジュール220は、サービスパッケージ内のファイルとソフトウェア・プロダクト内のコンポーネント206の間の依存関係を解決する。当業者はモジュール212ないし220はコンポーネントインストーラ210の全ての部品とすることができ、または別々のアプリケーションプログラム、若しくは両者間の組み合わせの中に記憶することができることに気がつくだろう。さらに、モジュール212ないし220は、ローカルで、または遠隔で実行されて、その機能を提供するだろう。コンポーネントインストーラ210は追加の、または図示されているよりも少ない機能を含むことができ、および本明細書で説明される。
(コンポーネントソフトウェア・プロダクトの更新)
次に、図3に言及すると、ブロック図はコンポーネントに分割されたソフトウェア・プロダクトがどのように本発明の一実施形態にしたがって更新されるのかを例示する。図2に関して上記で述べられたように、コンピュータ・デバイス201などのコンピュータは、コンポーネントに分割されたオペレーティングシステム202を含むものとして説明される。サービスパッケージ302は、ネットワーク310などの連結器を介してコンピュータ・デバイス201に結合される。サービスパッケージ302は、磁気ディスク、光ディスク、フラッシュメモリ、および半導体ディスクなどの様々な情報源のいくつかを含むことができる。加えて、サービスパッケージ302はローカル(例えば、コンピュータ・デバイス201のディスクドライブによってアクセスされるディスク)、または遠隔(例えば、ネットワーク310を通してアクセスされるリモートサーバのディスク)にすることができる。当業者は、サービスパッケージ302とコンピュータ・デバイス201の間の実際の結合が、サービスパッケージ302の特徴に依存していることに気がつくだろう(例えば、その結合にはディスクドライブをコンピュータ・デバイス201に接続するバス、モデムと電話線、ネットワークアダプタとネットワーク、またはこれらのいくつかの組み合わせが含まれるだろう)。
サービスパッケージ302は複数のインストール命令セット304を含む。上記で述べたように、各命令セット304は、ソフトウェア・プロダクトのライフサイクルにおける、更新されるべきコンポーネント(例えば、コンポーネント206)の状態または段階に対応する。命令セット304は、コンピュータ実行可能命令(例えば、ソフトウェアコード、若しくはスクリプト)、または、図2における、更新処理中のコンポーネントインストーラ210などのアプリケーションプログラムに付随する宣言型のインストールステップを含む。サービスパッケージ302はさらに更新されたコンポーネント#1ないし更新されたコンポーネント#Mなどの、更新されたコンポーネント306を含む。サービスパッケージ302は、更新されたコンポーネント306に各々対応する、更新されたマニフェスト#1ないし更新されたマニフェスト#Mなどの更新されたマニフェスト308を記憶する。インストール命令セット304、更新されたコンポーネント306、および更新されたマニフェスト308は、サービスパッケージ302内に一緒に図示されているが、インストール命令セット304、更新されたコンポーネント306、および更新されたマニフェスト308の一又は複数は、あるいは、異なる場所(コンピュータ・デバイス201に対して遠隔に、あるいはローカル)に記憶されるだろう。
インストール命令セット304は、オペレーティングシステム202にとってのアップデート(例えば、コンポーネント306のバージョンを含む)であるコンポーネント306を特定する。更新処理の間、新しいコンポーネント306が、コンポーネント206の1つとしてまだインストールされていなかったと仮定すると、更新されたコンポーネント306および対応するマニフェスト308は、対応するコンポーネント206を置き換えまたは追加する。限定ではなく一例として、コンポーネント306は、コンポーネント206のより新しいバージョンである。この状況においては、コンポーネント306およびマニフェスト308は、オペレーティングシステム202内のコンポーネント206およびマニフェスト208をそれぞれ置き換えることができる。コンポーネント306は、コンポーネント206の一又は複数のファイルを、更新されたコンポーネント306の一又は複数のファイルにより、単に上書きすることによってコンポーネント206を置き換えることができる(上書きされたファイルを状況に応じて、上書きする前に他の場所に保存することができる)。同様の例で、マニフェスト308が、コンポーネント306がコンポーネント206内に現在存在するファイルを欠いていることを示す(例えば、マニフェスト208をレビューすることによって示すとき)ならば、そのファイルは、更新処理の間にオペレーティングシステム202を記録しているコンピュータ読み取り可能な媒体から削除される。
もう一つの実施形態では、更新されたコンポーネント306内のファイルは、単に他のファイルを参照するものであるかもしれない。例えば、サービスパッケージ302の大きさを最小化し、および最も最近に更新されたコンポーネント306がインストールされていることを保証するために、更新されたコンポーネント306は、インストールされるべき実際のファイルへのハイパーリンクを含むことができる。コンポーネントインストーラ210は、更新処理の間に更新されたコンポーネント306に関連付けられたファイルをダウンロードする。
オペレーティングシステム202は、幅広い様々な理由によって更新されるだろう。例えば、あるコンポーネントのあるファイルのバグフィックスを利用することができ、コンポーネント206の新しい機能(例えば、置換または追加ファイル)を利用することができ、または新しいコンポーネント306を利用することができる。
さらに、新しいコンポーネント306は、前のコンポーネント206の代わりというよりむしろ前のコンポーネント206に加えてオペレーティングシステム202の一部としてインストールされるだろう。この例においては、マニフェスト208は変更されて、新しいコンポーネント306および前のコンポーネント206の両方がインストールされていることを示す。これにより、異なるアプリケーションは、自らが選ぶ(または、使用することをプログラムされている)コンポーネント206、306のどちらのバージョンでも使用できるようになる。当業者は、一実施形態においては、命令セット304は各コンポーネントにとってのマニフェスト308の一部であることに気がつくだろう。この方法では、コンポーネントインストーラは、各マニフェスト308にアクセスし、それとともに関連付けられているコンポーネント306をインストールする方法を決定する。
(コンポーネントインストーラの動作)
次の図4に言及すると、例示的なフローチャートは、コンポーネントインストーラの動作を説明する。図4の処理は、コンピュータ・デバイス201などのコンピュータ上で、あるいはコンピュータに結合されたもう一つのコンピュータ上で実行されるであろうコンポーネントインストーラ210などのアプリケーションプログラムによって実行される。コンポーネントインストーラは、更新されるソフトウェア・プロダクト(例えば、オペレーティングシステム202)、または別のアプリケーションの一部とすることができる。図4の更新処理は、ソフトウェア、ハードウェア、ファームウェア、またはその組み合わせの中で実行することができる。
更新処理はサービスパッケージを受信し、402でコンポーネントに関連付けられた状態を決定し、404で決定された状態に基づいて命令セットの1つを選択し、および406で選択された命令セットにしたがって一又は複数のファイルをコンポーネントに適用することを含む。ファイルを適用することは、サービスパッケージの各ファイルを、コンポーネントを記憶するコンピュータ読み取り可能な媒体にコピーし、およびコピーされたファイルをコンポーネントに統合することを含む。代わりに、あるいは追加で、ファイルを適用することは、ファイルアクションおよび/またはデータアクションを実行することを含む。ファイルアクションを実行することは、ファイルをコピーすること、削除すること、および置き換えることを含む。データアクションを実行することはレジストリエントリなどのシステム設定を更新することを含む。
更新処理は、さらに、一又は複数のファイルを適用することに関するデータで、コンポーネントに対するマニフェストを更新すること、および408でコンポーネントに対する更新されたマニフェストをコンポーネントとともに記録することを含む。記録されたデータは、少なくとも以下のうち1つを含む:バージョンナンバー、更新時間、サービスパッケージの記述、コンポーネントになされた変更の記述、ソフトウェア・プロダクトの現在のライフサイクルの段階、およびコンポーネントの記憶場所。更新処理は、さらに、410でマニフェスト内のデータに対する要求をユーザから受信すること、412で問い合わせ結果を生成するために受信要求に応答するマニフェストに問い合わせること、および414で問い合わせ結果をユーザに提供することを含む。
更新処理は、ソフトウェア・プロダクト内の更新されたコンポーネントと現在のコンポーネントの間の従属関係も解決する。従属関係の解決は、選択された命令セットにアクセスして、最新版のコンポーネント上で、または更新されたコンポーネントによって依存する一又は複数の追加のコンポーネントを特定することを含む。従属関係の解決の結果として、コンポーネントインストーラは、追加のコンポーネントを必要に応じて要求し、および受信することができる。
一又は複数のコンピュータ読み取り可能な媒体は、図4で説明されている方法を実行するコンピュータ実行可能命令を有している。
(サービスパッケージの作成)
次に、図5に言及すると、例示的なフローチャートは、サービスパッケージの作成について説明する。相手先ブランド製品の製造者(OEM)、ベンダー、システムアドミニストレータ、独立系ソフトウェアベンダー、または他のユーザは、コンピュータ読み取り可能な媒体上に、またはネットワーク上に配布用のサービスパッケージを作成する。その方法は、502でソフトウェア・プロダクトに関連づけられた一又は複数のファイルを選択すること、および504で選択されたファイルをコンピュータ読み取り可能な媒体上に記録することを含む。その方法は、506でコンピュータ読み取り可能な媒体上に複数のインストールスクリプトも記録する。各インストールスクリプトは、更新されるべきコンポーネントの状態の1つに対応する。インストールスクリプトは、記録され、選択されたファイルをソフトウェア・プロダクトに適用するためにコンポーネントの状態に基づいて実行される。一又は複数のコンピュータ読み取り可能な媒体は、図5において説明されている方法を実行するためのコンピュータ実行可能命令を有する。
(実行環境の例)
図6は、コンピュータ130の形態における汎用コンピュータ・デバイスの一例を示す。本発明の一実施形態において、コンピュータ130などのコンピュータは、本明細書で説明され、および記述される他の図における使用に適している。コンピュータ130は、一又は複数のプロセッサ、または処理装置132、およびシステムメモリ134を有する。説明された実施形態において、システムバス136は、システムメモリ134を含む様々なシステムコンポーネントを処理装置132に連結する。バス136は、メモリーバスまたはメモリーコントローラ、周辺機器のバス、AGP(accelerated graphics port)、および様々なバスアーキテクチャーのいくつかを使用するプロセッサ、またはローカルバスを含む、一又は複数の様々な型のバス構造を表す。限定ではなく一例として、そのようなアーキテクチャーはISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびメザニンバスとしてもまた知られるPCI(Peripheral Component Interconnect)バスを含む。
コンピュータ130は通常、少なくともコンピュータ読み取り可能な媒体の形態をもつ。揮発性媒体および不揮発性媒体、取り外し可能な記録媒体および取り外し不能な記録媒体の両方を含むコンピュータ読み取り可能な媒体は、コンピュータ130によってアクセスされる使用可能な記録媒体であろう。限定ではなく一例として、コンピュータ読み取り可能な媒体は、コンピュータ記憶媒体および通信媒体を含む。コンピュータ記憶媒体は、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、または他のデータなどの情報記憶のための方法または技術において実行される、揮発性および不揮発性、取り外し可能および取り外し不能な記録媒体を含む。例えば、コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他の記憶技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置や他の磁気記憶装置、あるいは欲しい情報を記録するために使用され、およびコンピュータ130によってアクセスできる他の記憶媒体を含む。通信媒体は通常、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、または搬送波あるいは他の伝送機構などの変調されたデータ信号における他のデータを具体化し、および情報配信記録媒体を含む。当業者は変調されたデータ信号をよく知っており、それは信号内の情報をエンコードする方法で、一又は複数の特性を設定させ、または変更させる。有線ネットワーク、またはダイレクト有線接続などの有線媒体、および音響、RF、赤外線、および他の無線媒体などの無線媒体は通信媒体の例である。上記のいくつかの組み合わせもまた、コンピュータ読み取り可能な媒体の範囲に含まれる。
システムメモリ134は、取り外し可能および/または取り外し不能、揮発性および/または不揮発性メモリの形態でのコンピュータ記録媒体を含む。説明されている実施形態では、システムメモリ134は、読み出し専用メモリ(ROM)138、および、ランダムアクセスメモリ(RAM)140を含む。スタートアップの際などの、コンピュータ130内部での要素間の情報伝送を助ける基本ルーチンを含む基本入出力システム142(BIOS)は通常、ROM138内に記録されている。RAM140は通常、すぐにアクセスでき、および/または処理装置132によって現在稼動されているデータおよび/またはプログラムモジュールを含む。制限ではなく一例として、図6はオペレーティングシステム144、アプリケーションプログラム146、他のプログラムモジュール148、およびプログラムデータ150について説明する。
コンピュータ130は他の取り外し可能/取り外し不能、揮発性/不揮発性コンピュータ記憶媒体も含む。例えば、図6は、取り外し不能で不揮発性の磁気媒体に対する読み込み、または書き出しをするハードディスクドライブ154について説明する。図6は、取り外し可能で不揮発性の磁気ディスク158に対する読み込み、または書き出しをする磁気ディスクドライブ156、およびCD−ROMまたは他の光記録媒体などの取り外し可能で不揮発性の光ディスク162に対する読み込み、または書き出しをする光ディスクドライブ160も示す。例示的な動作環境において使用される他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ記憶媒体は、以下のものに制限されるということではなく、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体のRAM、半導体のROM、および同様のものを含む。ハードディスクドライブ154、磁気ディスクドライブ156、および光ディスクドライブ160は通常、インターフェース166などの不揮発性メモリインターフェースによってシステムバス136に接続される。
上記で記述し、および図6で説明したドライブ、または他のマスストレージデバイス、およびそれらの関連したコンピュータ記憶媒体は、コンピュータ130にコンピュータ読み取り可能な命令、データ構造、プログラムモジュール、および他のデータの記憶装置を提供する。例えば、図6においては、ハードディスクドライブ154は、オペレーティングシステム170、アプリケーションプログラム172、他のプログラムモジュール174、およびプログラムデータ176を記憶するものとして説明される。これらのコンポーネントは、オペレーティングシステム144、アプリケーションプログラム146、他のプログラムモジュール148、およびプログラムデータ150と同じものであるかもしれないし、または異なるものかもしれないということに気がつかれよう。オペレーティングシステム170、アプリケーションプログラム172、他のプログラムモジュール174、およびプログラムデータ176は、それらが最小限異なるコピーであることを説明するために本明細書では異なる番号が付与されている。
ユーザは、キーボード180、およびポインティングデバイス182(例えば、マウス、トラックボール、ペン、またはタッチパッド)などの入力装置、またはユーザインターフェース選択装置を通じて、コンピュータ130に、コマンドおよび情報を入力するだろう。他の入力装置(図示せず)は、マイクロフォン、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナー、または同等のものを含むことができる。これらの、および他の入力装置は、パラレルポート、ゲームポート、USB(Universal Serial Bus)などの他のインターフェースおよびバス構造によって接続されているのではなくて、システムバス136に連結されているユーザ入力インターフェース184を通じて処理装置132に接続されている。モニタ188または他の種類の表示装置は、また、ビデオインターフェース190などのインターフェースを介してシステムバス136に接続されている。モニタ188に加えて、コンピュータは、出力用の周辺機器インターフェース(図示せず)を通して接続することができるプリンタ、スピーカーなどの他の周辺機器の出力装置(図示せず)を含むことが多い。
コンピュータ130は、リモートコンピュータ194などの一又は複数のリモートコンピュータへの論理結合を使用するネットワーク化された環境において動作することができる。リモートコンピュータ194は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または、他の一般的なネットワーク・ノードになることができ、および通常コンピュータ130に関連して上記で述べられた多くの、または全ての要素を含む。図6に描かれる論理結合は、ローカルエリアネットワーク(LAN)196、およびワイドエリアネットワーク(WAN)198を含むが、他のネットワークも含むこともできる。LAN136および/またはWAN138は、有線ネットワーク、無線ネットワーク、それらの組み合わせなどであるかもしれない。そのようなネットワーク環境はオフィス、企業規模のコンピュータネットワーク、イントラネット、および世界的なコンピュータネットワーク(例えば、インターネット)においては当たり前のことである。
LAN環境で使用される場合、コンピュータ130は、ネットワークインターフェースまたはアダプタ186を通じてLAN196に接続される。WAN環境で使用される場合、コンピュータ130は通常、モデム178またはインターネットなどのWAN198によって通信を確立する他の手段を含む。モデム178は、それが内蔵であっても、または外付けであっても、ユーザ入力インターフェース184、または他の適切なメカニズムを介してシステムバス136に接続される。ネットワーク化された環境においては、コンピュータ130に関連して描かれるプログラムモジュール、またはそれらの一部はリモートメモリ記憶装置(図示せず)に記憶されるだろう。制限ではなく一例として、図6は、リモートアプリケーションプログラム192をメモリ装置上に存在するものとして説明する。示されているネットワーク接続は例示的なものであり、そして、コンピュータ間の通信回線を確立する他の手段が使用される可能性があることは理解されよう。
一般的に、コンピュータ130のデータ処理装置は、コンピュータの様々なコンピュータ読み取り可能な記憶媒体において、異なる時に記憶された命令の手段によってプログラムされている。プログラムおよびオペレーティングシステムは通常、例えば、フロッピー(登録商標)ディスクまたはCD−ROMで配布される。配布されたものから、プログラム、およびオペレーティングシステムは、インストールされ、またはコンピュータの二次メモリにロードされる。実行時において、プログラム、およびオペレーティングシステムは少なくとも部分的にコンピュータのメインメモリにロードされる。明細書に記述されている本発明は、これらのもの、および他のさまざまな種類のコンピュータ読み取り可能な記憶媒体を含む。その場合、そのような記録媒体は、マイクロプロセッサまたは他のデータプロセッサと結合して、以下で述べられるステップを実行する命令またはプログラムを含む。本発明は、明細書で記述されている手段および技術にしたがってプログラムされる場合、コンピュータ自身も含む。
説明ために、プログラムおよびオペレーティングシステムなどの他の実行可能なプログラム・コンポーネントは、別個のブロックとして本明細書では説明される。しかしながら、そのようなプログラムおよびコンポーネントは、様々な場合に、コンピュータ上の異なる記憶コンポーネントにおいて存在し、およびコンピュータのデータプロセッサによって実行されるということは認識されよう。
コンピュータ130を含む例示的なコンピュータシステム環境に関連して記述されているけれども、本発明は、多くの他の一般的な目的で、または特別の目的のコンピュータシステムの環境または設定で使用できる。そのコンピュータシステム環境は、本発明の使用または機能の範囲についてどんな制限も示唆することは意図されていない。さらに、そのコンピュータシステム環境は、例示的な動作環境において説明されるコンポーネントの1つまたは組み合わせに関連する従属関係または必要条件を有すると解釈されるべきでない。本発明の使用に適している可能性のある周知のコンピュータシステム、コンピュータ環境、および/またはコンピュータの設定の例は、制限するということではなく、パーソナルコンピュータ、サーバ・コンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セットトップボックス、プログラムで制御できる家庭用電化製品、携帯電話、ネットワークPC、ミニコンピュータ、メインフレーム・コンピュータ、上記のシステムまたは装置、および同種のものを含む分散コンピューティング環境を含む。
本発明は、一又は複数のコンピュータまたは他の装置によって実行されるプログラムモジュールなど、コンピュータ実行可能命令の一般的な文脈で記述されるだろう。一般的に、プログラムモジュールは、制限するということではなく、ルーチン、プログラム、オブジェクト、コンポーネント、および特定のタスクを実行し、または特定の抽象データ型を実行するデータ構造を含む。本発明は、タスクが通信ネットワークを通じてリンクされる遠隔の制御演算装置によって実行される分散コンピュータ環境においても実施されるだろう。分散コンピュータ環境においては、プログラムモジュールはメモリ記録装置を含むローカルおよび遠隔のコンピュータ記憶媒体の両方に置かれるだろう。
作動中、コンピュータ130は、ソフトウェア・プロダクトを更新するために図4で説明された動作などのコンピュータ実行可能命令を実行する。
(実施例)
以下の例は本発明をさらに説明する。以下にリストされている例示的なマニフェストは、インストールされているコンポーネントの現在の状況(例えば、ソース、または、ランタイム)に基づいて更新されるべきファイルの位置を、コンポーネントインストーラによって決定されたものと定義する。以下の例では、NetworkComponentは機能の集合を表す。さらに、version1.1は、NetworkComponentのアップグレード版であること、すなわち、version1.0に依存している、またはCoreOperatingSystemComponentよりも最近のものであることを示す。
<identity>
<name>NetworkingComponent<\name>
<version>1.1<\version>
<\identity>
<files>
fileA.dll
<\files>
<install>
<source>%sourcepath%fileA.dl_<\source>
<run-time>%rundir%/fileA.dll<\run-time>
<\install>
<dependencies>
CoreOperatingSystemComponent
Version>=1.0
<\dependencies>
当業者は、本明細書で説明され、および記述されている実行の順序、または方法の実行は、特別の定めのない限り、不可欠なものではないということに気がつくだろう。すなわち、方法の要素は、特別の定めのない限り、任意の順序で実行されること、および、方法が本明細書で開示されているものよりも多いまたは少ない要素を含むことは、発明者によって意図されている。
本発明の要素、または本発明の実施形態を紹介する場合、冠詞の“a”、“an”、“the”、および“said”は、一又は複数の要素があることを意味することを目的としている。“comprising”、“including”、および“having”といった表現は、包括的であることを目的とし、およびリストに記載された要素以外の追加の要素がありうることを意味することを目的とする。
上記のことを考慮すると、本発明のいくつかの目的は一定の基準に達し、他の有利な結果が実現されていることが分かるだろう。
本発明の範囲から離れることなく、さまざまな変更が、上記の説明、プロダクト、および方法においてなされているので、上記の記述の中に含まれ、そして、添付図面に示されている全ての事柄は、制限の意味合いではなく、説明に役立つものとして解釈されるべきであろう。
コンピュータ・デバイス上に記憶されたソフトウェア・プロダクトに適用される、例示的なサービスパッケージを説明するブロック図である。 コンポーネントに分割されたオペレーティングシステムを有するコンピュータ・デバイスを説明する例示的なブロック図である。 図1のコンポーネントに分割されたオペレーティングシステムにおいて、コンポーネントを更新するアプリケーションを説明する例示的なブロック図である。 コンポーネントをインストールするアプリケーションプログラムの動作を説明する例示的なフローチャートである。 サービスパッケージの作成を説明する例示的なフローチャートである。 本発明が実施される可能性のある適切なコンピュータシステム環境の一例を説明するブロック図である。

Claims (36)

  1. ソフトウェアを更新するために、コンピュータが実施する方法であって、
    前記方法は、
    ソフトウェアを複数のコンポーネントとして定義するステップであって、該ソフトウェアは複数のライフサイクルの段階を有し、各コンポーネントは自身に関連したマニフェストを有し、該マニフェストは、一つのライフサイクルの段階コンポーネント記憶場所を含む、ステップと、
    更新されるべき前記ソフトウェアのライフサイクルの段階に基づいて、更新されるべきコンポーネントの該段階に対応する複数の命令セットの1つにアクセスするステップと、
    前記アクセスされた命令セットにしたがって、更新されるべきソフトウェアのライフサイクルの段階に基づいて前記マニフェストによって特定される前記記憶場所にて前記ソフトウェアの少なくとも一つのコンポーネントを修正するステップと、
    前記修正するステップに応答して修正された各コンポーネントのマニフェストを更新するステップと
    を備えることを特徴とする方法。
  2. 前記ソフトウェアの前記コンポーネントを修正するステップは、前記ソフトウェアから一又は複数のコンポーネントを削除するステップを備えることを特徴とする請求項1に記載の方法。
  3. 前記ソフトウェアの前記コンポーネントを修正するステップは、一又は複数のコンポーネントを前記ソフトウェアに追加するステップを備えることを特徴とする請求項1に記載の方法。
  4. 前記複数の命令セットの各々は、ソフトウェアのライフサイクルの段階、すなわち、前記ソフトウェアのプレ・デプロイ段階、前記ソフトウェアのデプロイ段階、前記ソフトウェアのポスト・デプロイ段階、の少なくとも一つに対応することを特徴とする請求項1に記載の方法。
  5. コンピュータが、サービスパッケージでソフトウェアを更新する方法であって、
    前記ソフトウェアは複数のコンポーネントを含み、前記コンポーネントの各々は、自身に関連付けられた状態およびマニフェストを有し、該マニフェストは、一つの状態のコンポーネントの記憶場所を含み、前記サービスパッケージは、選択されたコンポーネントに関連づけられた一又は複数のファイルを含み、前記サービスパッケージは、前記ファイルをインストールするための複数の命令セットをさらに備え、
    前記方法は、
    前記選択されたコンポーネントに関連付けられた前記状態を決定するステップであって、該状態は前記コンポーネントの動作状況を表す、ステップと、
    前記決定された状態に基づいて命令セットの1つを選択するステップと、
    一又は複数の前記ファイルを、前記選択された命令セットにしたがって、前記選択されたコンポーネントに適用するステップと、
    更新されるべきソフトウェアの前記状態に基づいて前記マニフェストによって特定される前記記憶場所にて前記選択されたコンポーネントを格納するステップと
    を備えることを特徴とする方法。
  6. 前記選択されたコンポーネントに関連付けられた状態を、前記選択されたコンポーネントに関連付けられたマニフェストで、定義するステップをさらに備えることを特徴とする請求項5に記載の方法。
  7. 前記コンポーネントは、コンピュータ読み取り可能な記録媒体上に格納され、
    前記方法は、
    一又は複数の前記ファイルを適用することに関するデータで、前記選択されたコンポーネントのマニフェストを更新するステップであって、該データは、バージョンナンバー、更新時間、サービスパッケージの記述、およびコンポーネントになされた変更の記述のうちの少なくとも一つを含む、ステップと、
    コンピュータ読み取り可能な記録媒体上前記選択されたコンポーネントの前記更新されたマニフェストを格納するステップと
    をさらに備えることを特徴とする請求項6に記載の方法。
  8. ユーザから、前記選択されたコンポーネントについての前記更新されたマニフェストの中のデータの要求を受信するステップと、
    問い合わせ結果を生成するために、前記受信された要求に応答して前記更新されたマニフェストを問い合わせるステップと、
    前記ユーザに、前記問い合わせ結果を提供するステップと
    をさらに備えることを特徴とする請求項7に記載の方法。
  9. 前記マニフェストは、前記ソフトウェアのライフサイクルの段階、および前記コンポーネントの記憶場所のうち少なくとも一つを明示することを特徴とする請求項6に記載の方法。
  10. 前記コンポーネントは、コンピュータ読み取り可能な記録媒体上に格納され、
    一又は複数の前記ファイルを適用するステップは、前記サービスパッケージから、前記ファイルの各々を、前記コンピュータ読み取り可能な記録媒体にコピーし、および前記コピーされたファイルを前記コンポーネントに統合するステップと
    を備えることを特徴とする請求項5に記載の方法。
  11. 前記サービスパッケージは、一又は複数の更新コンポーネントを含み、前記更新コンポーネントの各々は、自身に関連付けられた更新マニフェストを有し、前記更新マニフェストは、前記関連付けられた更新コンポーネントをインストールするための複数の命令セットを備えることを特徴とする請求項5に記載の方法。
  12. 前記複数の命令セットの各々は、前記ソフトウェアのプレ・デプロイ段階、前記ソフトウェアのデプロイ段階、前記ソフトウェアのポスト・デプロイ段階の少なくとも1つに対応することを特徴とする請求項5に記載の方法。
  13. 前記ソフトウェアは、オペレーティングシステム、およびアプリケーションプログラムの少なくとも1つを備えることを特徴とする請求項5に記載の方法。
  14. 一又は複数の前記ファイルを前記選択されたコンポーネントに適用するステップは、一又は複数のバイナリファイルを前記選択されたコンポーネントに適用するステップを備えることを特徴とする請求項5に記載の方法。
  15. 前記サービスパッケージを受信するステップであって、該サービスパッケージは更新されたコンポーネントを備える、ステップと、
    前記ソフトウェア内の、前記受信され、更新されたコンポーネントと前記選択されたコンポーネントの間の依存関係を解決するステップと
    をさらに備えることを特徴とする請求項5に記載の方法。
  16. 前記依存関係を解決する間に特定された、追加のコンポーネントを受信するステップをさらに備えることを特徴とする請求項15に記載の方法。
  17. 前記依存関係を解決することは、前記選択された命令セットにアクセスして、前記更新されたコンポーネントに依存する追加のコンポーネントを特定することを備えることを特徴とする請求項15に記載の方法。
  18. 前記追加のコンポーネントを取得するステップをさらに備え、
    一又は複数の前記ファイルを適用するステップは、前記ソフトウェアに、前記更新されたコンポーネント、および前記取得された、追加のコンポーネントを適用するステップを備えることを特徴とする請求項17に記載の方法。
  19. 一又は複数の前記ファイルを適用するステップは、ファイルアクションおよびデータアクションの少なくとも一つを実行するステップを備えることを特徴とする請求項5に記載の方法。
  20. 前記ファイルアクションを実行するステップは、前記ファイルをコピーすること、削除すること、および置き換えることのうち少なくとも一つを備えることを特徴とする請求項19に記載の方法。
  21. 前記データアクションを実行するステップは、システム設定を更新するステップを備えることを特徴とする請求項19に記載の方法。
  22. 前記システム設定を更新するステップは、レジストリエントリを更新するステップを備えることを特徴とする請求項21に記載の方法。
  23. 請求項5に記載の方法を実行するコンピュータ実行可能命令を有する、一又は複数のコンピュータ読み取り可能な記録媒体。
  24. コンピュータがサービスパッケージでソフトウェアを更新するためのコンピュータ実行可能モジュールを有する一又は複数のコンピュータ読み取り可能な記録媒体であって、
    前記ソフトウェアは、複数のコンポーネントを備え、前記コンポーネントの各々は、自身に関連付けられた状態およびマニフェストを有し、該マニフェストは、一つの状態のコンポーネントの記憶場所を含み、前記サービスパッケージは、選択されたコンポーネントに関連付けられた一又は複数のファイルを備え、前記サービスパッケージは、前記ファイルをインストールするための複数の命令セットをさらに備え、
    コンピュータが実行する前記モジュールは、
    前記選択されたコンポーネントに関連付けられた前記状態を決定し、前記決定された状態に基づいて、前記命令セットの1つを選択する設定モジュールであって、前記状態は前記コンポーネントの動作状況を表す、設定モジュールと、
    前記設定モジュールによって選択された命令セットにしたがって、前記選択されたコンポーネントに、一又は複数の前記ファイルを適用することによって、前記選択されたコンポーネントを修正するインストールモジュールであって、更新されるソフトウェアの状態に基づいて前記マニフェストによって特定される前記記憶場所にて前記修正されたコンポーネントを格納する、インストールモジュールと
    を備えることを特徴とするコンピュータ読み取り可能な記録媒体。
  25. 前記選択されたコンポーネントは、自身に関連付けられたマニフェストを有し、前記マニフェストは、前記コンポーネントに関連付けられた前記状態を定義することを特徴とする請求項24に記載のコンピュータ読み取り可能な記録媒体。
  26. 前記コンポーネントは、コンピュータ読み取り可能な記録媒体上に格納され、
    前記モジュールは、
    前記インストールモジュールよって、一又は複数の前記ファイルを適用することに関するデータで、前記選択されたコンポーネントの前記マニフェストを更新し、
    前記コンピュータ読み取り可能な記録媒体上前記選択されたコンポーネントの前記更新されたマニフェストを格納する
    スクリプトモジュールをさらに備え、
    該データは、バージョンナンバー、更新時間、サービスパッケージの記述、およびコンポーネントになされた変更の記述のうちの少なくとも一つを含むことを特徴とする請求項25に記載のコンピュータ読み取り可能な記録媒体。
  27. 前記モジュールは、
    ユーザから、前記選択されたコンポーネントの前記更新されたマニフェストのデータの要求を受信し、
    問い合わせ結果を生成するために、前記受信された要求に応答して前記更新されたマニフェストを問い合わせ、
    前記ユーザに前記問い合わせ結果を提供する
    レポートモジュールをさらに備えることを特徴とする請求項26に記載のコンピュータ読み取り可能な記録媒体。
  28. 前記サービスパッケージは、更新されたコンポーネントを備え、
    前記ソフトウェアにおける、前記更新されたコンポーネントと前記選択されたコンポーネントの間の依存関係を解決する依存モジュールをさらに備えることを特徴とする請求項24に記載のコンピュータ読み取り可能な記録媒体。
  29. 前記複数の命令セットの各々は、前記ソフトウェアのプレ・デプロイ段階、前記ソフトウェアのデプロイ段階、および前記ソフトウェアのポスト・デプロイ段階の少なくとも1つに対応することを特徴とする請求項24に記載のコンピュータ読み取り可能な記録媒体。
  30. 前記ソフトウェアは、オペレーティングシステム、およびアプリケーションプログラムの、少なくとも1つを備えることを特徴とする請求項24に記載のコンピュータ読み取り可能な記録媒体。
  31. コンピュータ読み取り可能な記録媒体上に格納されたソフトウェアを更新するためのサービスパッケージであって、該更新はコンピュータによって行われ、前記ソフトウェアは、自身に関連付けられた複数のライフサイクルの段階の1つを有するコンポーネントを備え、
    前記サービスパッケージは、
    前記コンポーネントに関連付けられた一又は複数のファイルであって、前記ソフトウェアは、それぞれが複数のライフサイクルの段階の少なくとも一つに対応する、複数のバージョンのコンポーネントを含み、前記コンポーネントは、自身に関連づけられたマニフェストを有し、該マニフェストは、一つのライフサイクルの段階コンポーネント記憶場所を含む、一又は複数のファイルと、
    前記コンポーネントの前記複数のライフサイクルの段階に対応する複数のコンピュータ実行可能命令セットであって、前記複数の命令セットの1つは、前記コンポーネントの対応する前記ライフサイクルの段階に応答して、選択され、および実行されて、前記ファイルを前記マニフェストによって特定された前記コンポーネントの対応する記憶場所に適用し、前記コンポーネントのマニフェストは、前記ファイルを前記コンポーネントの対応するバージョンに適用することに応答して更新される、複数のコンピュータ実行可能命令セットと
    を備えることを特徴とするサービスパッケージ。
  32. 前記複数のコンピュータ実行可能命令セットの1つは、前記サービスパッケージから、前記ファイルの各々を、コンピュータ読み取り可能な記録媒体にコピーし、前記コピーされたファイルを前記コンポーネントと統合することによって、前記ファイルを前記コンポーネントに適用することを特徴とする請求項31に記載のサービスパッケージ。
  33. 前記ライフサイクルの段階は、前記ソフトウェアのプレ・デプロイ段階、前記ソフトウェアのデプロイ段階、および前記ソフトウェアのポスト・デプロイ段階の少なくとも一つに対応することを特徴とする請求項31に記載のサービスパッケージ。
  34. 前記ソフトウェアは、オペレーティングシステム、およびアプリケーションプログラムの少なくとも1つを備えることを特徴とする請求項31に記載のサービスパッケージ。
  35. 前記ファイルは、バイナリファイルを備えることを特徴とする請求項31に記載のサービスパッケージ。
  36. 前記ファイルは、別のファイルへの参照を備えることを特徴とする請求項31に記載のサービスパッケージ。
JP2005508281A 2003-08-15 2003-08-22 コンポーネントベースのソフトウェア・プロダクトの保守 Expired - Fee Related JP5007046B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/641,800 2003-08-15
US10/641,800 US7310801B2 (en) 2000-04-27 2003-08-15 Servicing a component-based software product throughout the software product lifecycle
PCT/US2003/026443 WO2005020089A1 (en) 2003-08-15 2003-08-22 Servicing a component-base software product

Publications (2)

Publication Number Publication Date
JP2007521529A JP2007521529A (ja) 2007-08-02
JP5007046B2 true JP5007046B2 (ja) 2012-08-22

Family

ID=34216358

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005508281A Expired - Fee Related JP5007046B2 (ja) 2003-08-15 2003-08-22 コンポーネントベースのソフトウェア・プロダクトの保守

Country Status (6)

Country Link
US (1) US7310801B2 (ja)
EP (1) EP1654670A4 (ja)
JP (1) JP5007046B2 (ja)
KR (1) KR100952251B1 (ja)
CN (1) CN100449524C (ja)
WO (1) WO2005020089A1 (ja)

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814198B2 (en) 2007-10-26 2010-10-12 Microsoft Corporation Model-driven, repository-based application monitoring system
US7533380B2 (en) * 2002-06-05 2009-05-12 Sap Ag Installation tool for enterprise management systems based on building blocks
US9092286B2 (en) * 2002-12-20 2015-07-28 Qualcomm Incorporated System to automatically process components on a device
US7987449B1 (en) * 2003-05-22 2011-07-26 Hewlett-Packard Development Company, L.P. Network for lifecycle management of firmware and software in electronic devices
US7774775B2 (en) * 2004-03-10 2010-08-10 Siebel Systems, Inc. Method and system for revising installation software
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US20060101374A1 (en) * 2004-10-14 2006-05-11 Beng Giap Lim Enterprise management system installer
US8020141B2 (en) 2004-12-06 2011-09-13 Microsoft Corporation Operating-system process construction
US7882317B2 (en) * 2004-12-06 2011-02-01 Microsoft Corporation Process isolation using protection domains
US7451435B2 (en) * 2004-12-07 2008-11-11 Microsoft Corporation Self-describing artifacts and application abstractions
US7600232B2 (en) * 2004-12-07 2009-10-06 Microsoft Corporation Inter-process communications employing bi-directional message conduits
US20060149615A1 (en) * 2004-12-31 2006-07-06 Keith Andrews Methods and systems to effect comprehensive customer relationship management solutions
US7472377B2 (en) * 2005-01-18 2008-12-30 International Business Machines Corporation Systems and methods for determining software package identity during a system build
US8849968B2 (en) * 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services
US20070094495A1 (en) * 2005-10-26 2007-04-26 Microsoft Corporation Statically Verifiable Inter-Process-Communicative Isolated Processes
US8074231B2 (en) 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
US8261258B1 (en) * 2005-10-28 2012-09-04 Google Inc. Common installer client
US9274774B2 (en) 2005-10-28 2016-03-01 Google Inc. Common installer server
ZA200806190B (en) * 2006-01-18 2009-10-28 Ericsson Telefon Ab L M Dependency notification
US20070167362A1 (en) * 2006-01-18 2007-07-19 Staidson (Beijing) Pharmaceutical Co., Ltd. Medicines containing nerve growth factor for assisting losing weight and methods for assisting losing weight using same
US8893118B2 (en) * 2006-01-30 2014-11-18 International Business Machines Corporation Migratable unit based application migration
US10838714B2 (en) * 2006-04-24 2020-11-17 Servicenow, Inc. Applying packages to configure software stacks
WO2007146710A2 (en) 2006-06-08 2007-12-21 Hewlett-Packard Development Company, L.P. Device management in a network
US8032898B2 (en) 2006-06-30 2011-10-04 Microsoft Corporation Kernel interface with categorized kernel objects
US20080010246A1 (en) * 2006-07-06 2008-01-10 Curtis Bryce A System and method for providing operating system component version verification
EP2047420A4 (en) 2006-07-27 2009-11-18 Hewlett Packard Development Co USER EXPERIENCE AND DEPENDENCE MANAGEMENT IN A MOBILE DEVICE
WO2008113718A1 (en) * 2007-03-16 2008-09-25 International Business Machines Corporation Method, system and computer program for distributing customized software products
US8789063B2 (en) * 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
KR20100002259A (ko) * 2007-04-03 2010-01-06 인터내셔널 비지네스 머신즈 코포레이션 관련된 제품 정보를 갖는 소프트웨어 카탈로그를 파퓰레이트하기 위한 방법 및 시스템
US8024396B2 (en) * 2007-04-26 2011-09-20 Microsoft Corporation Distributed behavior controlled execution of modeled applications
US9785549B2 (en) * 2007-04-27 2017-10-10 Microsoft Technology Licensing, Llc Managing object lifetime for native/managed peers
US8407692B2 (en) * 2007-06-27 2013-03-26 Microsoft Corporation Dynamic correction of component manifests
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
US20090083732A1 (en) * 2007-09-26 2009-03-26 Microsoft Corporation Creation and deployment of distributed, extensible applications
US8978028B2 (en) * 2007-10-10 2015-03-10 Microsoft Technology Licensing, Llc Transactional multi-package installation
US7926070B2 (en) 2007-10-26 2011-04-12 Microsoft Corporation Performing requested commands for model-based applications
US7974939B2 (en) * 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US8225308B2 (en) * 2007-10-26 2012-07-17 Microsoft Corporation Managing software lifecycle
US8099720B2 (en) 2007-10-26 2012-01-17 Microsoft Corporation Translating declarative models
US8181151B2 (en) * 2007-10-26 2012-05-15 Microsoft Corporation Modeling and managing heterogeneous applications
US8589903B2 (en) 2007-12-04 2013-11-19 Oracle International Corporation Patch attachment facility
US9477462B2 (en) 2008-01-16 2016-10-25 Oracle International Corporation System and method for software product versioning packaging, distribution, and patching
US7509627B1 (en) * 2008-02-19 2009-03-24 International Business Machines Corporation Method for management of dynamically alterable lifecycles in structured classification domains
US8539478B2 (en) * 2008-06-20 2013-09-17 International Business Machines Corporation Dynamic web installer
US20100153942A1 (en) * 2008-12-12 2010-06-17 Lazar Borissov Method and a system for delivering latest hotfixes with a support package stack
US20100318967A1 (en) * 2009-06-12 2010-12-16 Microsoft Corporation Supplementary deployment actions
US8688748B2 (en) * 2010-01-21 2014-04-01 Siemens Product Lifecycle Management Software Inc. Adaptive table sizing for multiple-attribute parameters
US9922354B2 (en) 2010-04-02 2018-03-20 Apple Inc. In application purchasing
US20150205489A1 (en) * 2010-05-18 2015-07-23 Google Inc. Browser interface for installed applications
US9110749B2 (en) * 2010-06-01 2015-08-18 Apple Inc. Digital content bundle
CN102486725A (zh) * 2010-12-02 2012-06-06 上海可鲁***软件有限公司 一种分布式平台及平台中功能模块的生命周期管理方法
DE102011002717B4 (de) * 2011-01-14 2015-05-28 Siemens Aktiengesellschaft Netzwerkfiltereinrichtung und Verfahren zum Schutz eines Systemanlagennetzwerks
FR2972821B1 (fr) 2011-03-18 2013-04-26 Airbus Operations Sas Procede et dispositif d'installation/desinstallation de modules logiciels, avec resolution centralisee de contraintes, dans des equipements d'aeronef
KR101850817B1 (ko) 2011-11-17 2018-04-23 삼성전자주식회사 서로 다른 단말에 어플리케이션을 자동으로 설치하는 장치 및 방법
US9037636B2 (en) 2012-01-19 2015-05-19 Microsoft Technology Licensing, Llc Managing script file dependencies and load times
US9262238B2 (en) 2012-01-31 2016-02-16 Red Hat, Inc. Connection management for an application in a computing platform
US9170797B2 (en) * 2012-01-31 2015-10-27 Red Hat, Inc. Automated deployment of an application in a computing platform
US9665356B2 (en) 2012-01-31 2017-05-30 Red Hat, Inc. Configuration of an application in a computing platform
ITVI20120034A1 (it) * 2012-02-09 2013-08-10 Bentel Security S R L Dispositivo e metodo per la gestione di installazioni elettroniche di edifici
US9396037B2 (en) 2012-02-27 2016-07-19 Microsoft Technology Licensing, Llc Model-based data pipeline system optimization
US9904788B2 (en) 2012-08-08 2018-02-27 Amazon Technologies, Inc. Redundant key management
US9225675B2 (en) 2012-08-08 2015-12-29 Amazon Technologies, Inc. Data storage application programming interface
US9058330B2 (en) 2012-10-17 2015-06-16 Wal-Mart Stores, Inc. Verification of complex multi-application and multi-node deployments
US10558581B1 (en) * 2013-02-19 2020-02-11 Amazon Technologies, Inc. Systems and techniques for data recovery in a keymapless data storage system
US9916585B2 (en) 2013-03-12 2018-03-13 Mastercard International Incorporated Methods and systems for generating a transaction lifecycle output for a payment card transaction
US9632825B2 (en) * 2013-03-15 2017-04-25 Intel Corporation Method and apparatus for efficient scheduling for asymmetrical execution units
US9665366B2 (en) 2014-09-26 2017-05-30 Oracle International Corporation Creation of a software configuration signature for software
US10073690B2 (en) 2014-09-26 2018-09-11 Oracle International Corporation Populating content for a base version of an image
US10195520B1 (en) * 2013-05-14 2019-02-05 Take-Two Interactive Software, Inc. System and method for network gaming architecture
CN105335348B (zh) * 2014-08-07 2018-10-02 阿里巴巴集团控股有限公司 基于目标语句的依存句法分析方法、装置及服务器
CN106156991B (zh) * 2015-04-15 2020-10-09 腾讯科技(深圳)有限公司 运营问题处理方法及装置
US10073689B2 (en) * 2015-07-31 2018-09-11 Cisco Technology, Inc. Managing application lifecycles within a federation of distributed software applications
US10146512B1 (en) 2015-08-28 2018-12-04 Twitter, Inc. Feature switching kits
JP2018522317A (ja) * 2015-09-02 2018-08-09 グーグル エルエルシー ソフトウェア開発および分散プラットフォーム
WO2017045727A1 (en) * 2015-09-18 2017-03-23 Telefonaktiebolaget Lm Ericsson (Publ) Management of communication between m2m device and m2m server
US9916152B2 (en) * 2015-12-10 2018-03-13 Mastercard International Incorporated Systems and methods for managing computer components
US10204059B2 (en) * 2016-09-29 2019-02-12 International Business Machines Corporation Memory optimization by phase-dependent data residency
US10228925B2 (en) * 2016-12-19 2019-03-12 Uptake Technologies, Inc. Systems, devices, and methods for deploying one or more artifacts to a deployment environment
US10868709B2 (en) 2018-09-10 2020-12-15 Oracle International Corporation Determining the health of other nodes in a same cluster based on physical link information
US11175899B2 (en) * 2019-04-17 2021-11-16 Vmware, Inc. Service upgrade integration for virtualized computing environments
CN112241278A (zh) * 2019-07-19 2021-01-19 伊姆西Ip控股有限责任公司 更新软件的方法、设备和计算机程序产品

Family Cites Families (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142680A (en) 1989-04-26 1992-08-25 Sun Microsystems, Inc. Method for loading an operating system through a network
JPH06105440B2 (ja) * 1990-03-08 1994-12-21 株式会社日立製作所 主メモリ管理方法
EP0592079A2 (en) 1992-09-20 1994-04-13 Sun Microsystems, Inc. Automated software installation and operating environment configuration on a computer system
US5359730A (en) * 1992-12-04 1994-10-25 International Business Machines Corporation Method of operating a data processing system having a dynamic software update facility
US5649200A (en) 1993-01-08 1997-07-15 Atria Software, Inc. Dynamic rule-based version control system
US5469573A (en) 1993-02-26 1995-11-21 Sytron Corporation Disk operating system backup and recovery system
JPH076026A (ja) * 1993-05-28 1995-01-10 Xerox Corp 構成管理及び構成要素の互換性保証方法、ならびに常駐ソフトウェアと移行ソフトウェアの非互換性の排除方法
US5713024A (en) 1994-06-10 1998-01-27 Exabyte Corporation Cold boot data backup system
US6110228A (en) 1994-12-28 2000-08-29 International Business Machines Corporation Method and apparatus for software maintenance at remote nodes
US5794052A (en) 1995-02-27 1998-08-11 Ast Research, Inc. Method of software installation and setup
US5845077A (en) 1995-11-27 1998-12-01 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
GB2309104B (en) 1996-01-11 2000-06-07 Ibm Preloading software onto a computer system
FR2745649B1 (fr) 1996-03-01 1998-04-30 Bull Sa Systeme de configuration de logiciels preconfigures sur des systemes ouverts en reseau dans un environnement distribue et procede mis en oeuvre par un tel systeme
US5835777A (en) * 1996-03-20 1998-11-10 Hewlett-Packard Company Method of automatically generating a software installation package
US6049671A (en) 1996-04-18 2000-04-11 Microsoft Corporation Method for identifying and obtaining computer software from a network computer
US6292941B1 (en) * 1996-04-30 2001-09-18 Sun Microsystems, Inc. Operating system installation
US5790796A (en) * 1996-06-14 1998-08-04 Symantec Corporation Polymorphic package files to update software components
JPH1021084A (ja) 1996-07-04 1998-01-23 P I Ii:Kk ソフトウェア流通媒体およびソフトウェア流通媒体の作成方法
US6006034A (en) 1996-09-05 1999-12-21 Open Software Associates, Ltd. Systems and methods for automatic application version upgrading and maintenance
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
GB9623298D0 (en) * 1996-11-08 1997-01-08 Int Computers Ltd Updating mechanism for software
US5878408A (en) * 1996-12-06 1999-03-02 International Business Machines Corporation Data management system and process
US6314565B1 (en) 1997-05-19 2001-11-06 Intervu, Inc. System and method for automated identification, retrieval, and installation of multimedia software components
US5950001A (en) * 1997-06-03 1999-09-07 Sun Microsystems, Inc. Method and apparatus for customizing a software component
FR2765702B1 (fr) * 1997-07-02 2001-07-06 Bull Sa Architecture de systeme de traitement de l'information
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
US6138179A (en) 1997-10-01 2000-10-24 Micron Electronics, Inc. System for automatically partitioning and formatting a primary hard disk for installing software in which selection of extended partition size is not related to size of hard disk
JP3613504B2 (ja) * 1997-11-05 2005-01-26 株式会社日立製作所 版管理・構成管理方法および装置および版管理・構成管理プログラムを記録したコンピュータ読み取り可能な記録媒体
JPH11143724A (ja) 1997-11-13 1999-05-28 Sharp Corp 情報処理装置および情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体
GB2333864B (en) 1998-01-28 2003-05-07 Ibm Distribution of software updates via a computer network
US6202207B1 (en) 1998-01-28 2001-03-13 International Business Machines Corporation Method and a mechanism for synchronized updating of interoperating software
GB2334354B (en) 1998-02-13 2003-04-16 Ibm Booting a computer system from a network
US6367072B1 (en) * 1998-03-12 2002-04-02 Applica Systems, Inc. Apparatus and method for identifying and modifying computer operating system components
DE19810814B4 (de) 1998-03-12 2004-10-28 Telefonaktiebolaget Lm Ericsson (Publ) Rechnersystem und Zustandskopierverfahren zur skalierbaren Software-Aktualisierung
WO1999049394A1 (en) 1998-03-23 1999-09-30 Microsoft Corporation Application program interfaces in an operating system
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
CA2329835A1 (en) 1998-05-13 1999-11-18 Glaxo Group Limited Remote installation of computer operating systems
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
US6377958B1 (en) 1998-07-15 2002-04-23 Powerquest Corporation File system conversion
US7073172B2 (en) 1998-09-21 2006-07-04 Microsoft Corporation On demand patching of applications via software implementation installer mechanism
US6378128B1 (en) 1998-10-08 2002-04-23 Microsoft Corporation System and method for dynamically modifying an install-set
US6262726B1 (en) 1998-10-09 2001-07-17 Dell U.S.A., L.P. Factory installing desktop components for an active desktop
US6029174A (en) 1998-10-31 2000-02-22 M/A/R/C Inc. Apparatus and system for an adaptive data management architecture
US20020073398A1 (en) 1998-12-14 2002-06-13 Jeffrey L. Tinker Method and system for modifying executable code to add additional functionality
TW408286B (en) 1998-12-18 2000-10-11 Inventec Corp Software pre-installation method
US6188779B1 (en) 1998-12-30 2001-02-13 L&H Applications Usa, Inc. Dual page mode detection
US6286138B1 (en) 1998-12-31 2001-09-04 International Business Machines Corporation Technique for creating remotely updatable programs for use in a client/server environment
US6279146B1 (en) * 1999-01-06 2001-08-21 Simutech Corporation Apparatus and method for verifying a multi-component electronic design
US6711624B1 (en) 1999-01-13 2004-03-23 Prodex Technologies Process of dynamically loading driver interface modules for exchanging data between disparate data hosts
US6427236B1 (en) 1999-03-03 2002-07-30 Microsoft Corporation Method for installing a patch based on patch criticality and software execution format
US6434744B1 (en) 1999-03-03 2002-08-13 Microsoft Corporation System and method for patching an installed application program
US20020174329A1 (en) 1999-04-28 2002-11-21 Bowler Richard A. Method and system for automatically transitioning files among computer systems
US6385766B1 (en) 1999-05-20 2002-05-07 Dell Usa L.P. Method and apparatus for windows-based installation for installing software on build-to-order computer systems
US6675382B1 (en) * 1999-06-14 2004-01-06 Sun Microsystems, Inc. Software packaging and distribution system
CN1281182A (zh) * 1999-06-30 2001-01-24 戴尔美国公司 在计算机***上安装软件和对其进行测试的方法
US6282711B1 (en) 1999-08-10 2001-08-28 Hewlett-Packard Company Method for more efficiently installing software components from a remote server source
US6223345B1 (en) 1999-08-30 2001-04-24 J.D. Edwards World Source Company System and method for building client and server application packages
US6493871B1 (en) 1999-09-16 2002-12-10 Microsoft Corporation Method and system for downloading updates for software installation
US6487713B1 (en) * 1999-09-24 2002-11-26 Phoenix Technologies Ltd. Software development system that presents a logical view of project components, facilitates their selection, and signals missing links prior to compilation
US6598223B1 (en) 1999-10-06 2003-07-22 Dell Usa, L.P. Method and system for installing and testing build-to-order components in a defined configuration computer system
US6560614B1 (en) 1999-11-12 2003-05-06 Xosoft Inc. Nonintrusive update of files
US6681323B1 (en) 1999-11-29 2004-01-20 Toshiba America Information Systems, Inc. Method and system for automatically installing an initial software configuration including an operating system module from a library containing at least two operating system modules based on retrieved computer identification data
US6564215B1 (en) * 1999-12-16 2003-05-13 International Business Machines Corporation Update support in database content management
WO2001060059A1 (en) 2000-02-07 2001-08-16 Sony Corporation Image processor and image processing method and recorded medium
CA2299850C (en) * 2000-03-01 2005-06-14 Mitel Inc. System and method for the management of computer software maintenance
JP2001356912A (ja) * 2000-06-12 2001-12-26 Fujitsu Ltd ソフトウェアのインストール/アップデート/アンインストールシステム
CA2315449A1 (en) * 2000-08-10 2002-02-10 Ibm Canada Limited-Ibm Canada Limitee Generation of runtime execution traces of applications and associated problem determination
TWI222020B (en) 2000-10-19 2004-10-11 Wistron Corp Method for installing and pre-setup of software
US6832373B2 (en) * 2000-11-17 2004-12-14 Bitfone Corporation System and method for updating and distributing information
US7574481B2 (en) * 2000-12-20 2009-08-11 Microsoft Corporation Method and system for enabling offline detection of software updates
US8176137B2 (en) * 2001-01-31 2012-05-08 Accenture Global Services Limited Remotely managing a data processing system via a communications network
US20020156877A1 (en) 2001-04-23 2002-10-24 Lu James C. System and method for the duplication of a software system onto an appropriate target computer
US20020188941A1 (en) 2001-06-12 2002-12-12 International Business Machines Corporation Efficient installation of software packages
US6907610B2 (en) 2001-06-15 2005-06-14 Microsoft Corporation System and method for building a target operating system from a source operating system
US7735080B2 (en) * 2001-08-30 2010-06-08 International Business Machines Corporation Integrated system and method for the management of a complete end-to-end software delivery process
US7093132B2 (en) 2001-09-20 2006-08-15 International Business Machines Corporation Method and apparatus for protecting ongoing system integrity of a software product using digital signatures
US7068309B2 (en) 2001-10-09 2006-06-27 Microsoft Corp. Image exchange with image annotation
US7428559B2 (en) 2001-12-13 2008-09-23 Microsoft Corporation Versioning model for software program development
US7133874B2 (en) 2001-12-13 2006-11-07 Microsoft Corporation Prototyping model for components of a software program
US20030121024A1 (en) 2001-12-13 2003-06-26 Microsoft Corporation System and method for building a runtime image from components of a software program
US20030182652A1 (en) * 2001-12-21 2003-09-25 Custodio Gabriel T. Software building and deployment system and method
US7260738B2 (en) 2002-06-17 2007-08-21 Microsoft Corporation System and method for splitting an image across multiple computer readable media
US20040181790A1 (en) * 2003-03-12 2004-09-16 Herrick Joseph W. System and method for maintaining installed software compliance with build standards
CA2465151A1 (en) * 2003-04-16 2004-10-16 Novadigm, Inc. Method and system for patch management

Also Published As

Publication number Publication date
CN1839381A (zh) 2006-09-27
WO2005020089A8 (en) 2007-03-08
JP2007521529A (ja) 2007-08-02
EP1654670A1 (en) 2006-05-10
WO2005020089A1 (en) 2005-03-03
KR20070049095A (ko) 2007-05-10
EP1654670A4 (en) 2007-11-28
KR100952251B1 (ko) 2010-04-09
US7310801B2 (en) 2007-12-18
US20040034850A1 (en) 2004-02-19
CN100449524C (zh) 2009-01-07

Similar Documents

Publication Publication Date Title
JP5007046B2 (ja) コンポーネントベースのソフトウェア・プロダクトの保守
US7694277B2 (en) Cross version customization of design environment
JP7090657B2 (ja) アプリケーションをアップグレードするための方法、装置、デバイスならびに記憶媒体
US7814476B2 (en) Systems and methods for updating software
KR102010508B1 (ko) 소스 코드 파일을 업데이트하는 시스템 및 방법
CN103955363B (zh) 一种程序升级安装包的制作方法
US10922067B1 (en) System and method for installing, updating and uninstalling applications
US9891939B2 (en) Application compatibility with library operating systems
US8060871B2 (en) Servicing software through versioning
US7155713B1 (en) Componentized operating system
US8312446B2 (en) Dependency management when upgrading application components
US20090259999A1 (en) Method and system for applying a patch during application execution
US20050172283A1 (en) Software installation and validation using custom actions
US8266588B2 (en) Creating projects in a rational application developer workspace
JP2012527027A (ja) ランタイム環境を構築するためのシステムおよび方法
JP2010521726A (ja) カスタマイズされたソフトウェア製品を配布する方法、システム、およびコンピュータ・プログラム
JP2008234673A (ja) モバイル・デバイスのアプリケーション・インストール管理システムおよび方法
US7716664B2 (en) Metadata-based application model for large applications
KR102052776B1 (ko) 병행가능하고 신뢰성 있는 설치를 위한 설치 엔진 및 패키지 포맷
US20050120331A1 (en) Hosting environment abstraction agents
JP2004206353A (ja) ソフトウェアのインストール方法
Gregersen et al. State of the art of dynamic software updating in Java
US11880223B1 (en) Separate firmware to fixed and removable storages
TWI549056B (zh) 以函式庫作業系統達成之應用程式相容性
US20230367573A1 (en) Information processing apparatus, settings applying method, and medium

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110121

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120127

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20120130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120130

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120217

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: 20120522

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: 20120528

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150601

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5007046

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees