JP2005522757A - ソフトウェア配布方法およびシステム - Google Patents

ソフトウェア配布方法およびシステム Download PDF

Info

Publication number
JP2005522757A
JP2005522757A JP2003582632A JP2003582632A JP2005522757A JP 2005522757 A JP2005522757 A JP 2005522757A JP 2003582632 A JP2003582632 A JP 2003582632A JP 2003582632 A JP2003582632 A JP 2003582632A JP 2005522757 A JP2005522757 A JP 2005522757A
Authority
JP
Japan
Prior art keywords
target computer
action
computer
package
configuration
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.)
Granted
Application number
JP2003582632A
Other languages
English (en)
Other versions
JP4524113B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2005522757A publication Critical patent/JP2005522757A/ja
Application granted granted Critical
Publication of JP4524113B2 publication Critical patent/JP4524113B2/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/60Software deployment
    • G06F8/61Installation
    • G06F8/64Retargetable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】ソフトウェア配布方法(300b)および対応するシステムを提供すること。
【解決手段】ソフトウェア配布アプリケーションでは、選択されたソフトウェア製品をインストールまたは除去するために各ターゲット・コンピュータで実行されるアクションを指定する命令を含むパッケージが、中央サイトで作成される。通常、これらのアクションは、ターゲット・コンピュータのハードウェア構成に対して条件付けられる。各パッケージが、ターゲット・コンピュータに送信され、対応する命令が解釈されて、ターゲット・コンピュータの現在の構成に合った所望のソフトウェア製品が有効にされる。本発明の解決策では、どんなハードウェアの更新も検出する(337)ように、ターゲット・コンピュータの構成をモニタする。それに応答して、新しい構成にもはや合わなくなったソフトウェア製品を除去するためのアクション・リストと、新しい構成に現在合ったソフトウェア製品をインストールするためのアクション・リストとをターゲット・コンピュータが生成する(339〜351)。これらのリストは、中央サイトに送信され(357)、リストにより対応する差分パッケージの構築がトリガ(360)される。次いで、差分パッケージがターゲット・コンピュータに配布され、したがってターゲット・コンピュータにインストールされたソフトウェア製品がそのハードウェア構成と常に整合することができる。

Description

本発明は、データ処理の分野に関し、より詳細にはソフトウェア配布方法および対応するシステムに関する。
(新しいソフトウェア製品など)ソフトウェア機能の配布は、時間のかかる作業であり、特にソフトウェア製品を配布する必要があるターゲット・コンピュータが多数含まれるシステムにおける場合はそうである。例えば、これは何千ものワークステーションを含む大組織では当たり前の作業であり、そこではソフトウェア製品が情報技術開発に遅れないようにあるいは組織的な変更に適合するように定期的に更新される。
システム管理者がシステムの中央サイトからソフトウェア製品の展開を効率よく管理するのを支援するためのソフトウェア配布アプリケーションがここ数年の間に提案されてきた。ソフトウェア配布アプリケーションは、選択されたソフトウェア製品をインストールしまたは除去するためにターゲット・コンピュータ上で実行されるアクションを指定する命令を含むパッケージの構築を制御する。さらに、各パッケージには、ターゲット・コンピュータ上にインストールすべきソフトウェア製品のコピーが組み込まれている。このパッケージは各ターゲット・コンピュータに送信され、対応する命令が解釈されて、所望のソフトウェア製品が有効にされる。
ソフトウェア配布アプリケーションの柔軟性を高めるために、通常、その命令はターゲット・コンピュータの(例えば、一連のハードウェア・パラメータによって定義される)構成に対して条件付けられる。パッケージは、様々なハードウェア構成を有するターゲット・コンピュータに対して汎用性があるように構成され、したがってシステム管理者側でメンテナンスの必要性が少なくてすむようになる。
当技術分野で周知のソフトウェア配布アプリケーションは、強制モデルに基づいており、すべての動作はシステムの中央サイトから管理され、中央サイトとターゲット・コンピュータの間のどんな種類の協調もサポートしていない。この協調の欠如により、いくつかのシナリオ中で不整合を引き起こす。
具体的には、ターゲット・コンピュータのハードウェアの更新により、パッケージ中で定義された条件の評価結果が変わることもあり得る。言い換えると、配布時に真であった条件が、偽になることもあり、その反対もあり得る。その結果として、ターゲット・コンピュータにインストールされたソフトウェア製品が、もはやそのハードウェアの構成と整合しなくなる。最善でも、ターゲット・コンピュータのハードウェア資源の利用度が下がる。しかし、これらの不整合が、(例えば、メモリの割振りを誤ることにより)実行時エラーを起こすことがある。最悪では、(例えば、ターゲット・コンピュータ上にインストールされたソフトウェア製品のバージョンがそのハードウェアと互換性がないとき)ターゲット・コンピュータ全体の動作を損なうこともあり得る。
これらの欠点は、ターゲット・コンピュータのハードウェア構成がしばしば変更される高度に動的な環境では特に重大である。
本発明の一目的は、中央サイトとターゲット・コンピュータの間のある種の協調をサポートするソフトウェア配布方法および対応するシステムを提供することである。
本発明の他の目的は、ターゲット・コンピュータ中での不整合を避けることである。
本発明の他の目的は、ターゲット・コンピュータの動作がその構成と互換性のないソフトウェア機能によって損なわれないようにすることである。
これらのおよび他の関連する目的は、対応するソフトウェア機能を有効にするために複数のターゲット・コンピュータのそれぞれで実行され、その少なくとも1つがターゲット・コンピュータの構成に対して条件付けられているアクションの指示を含むパッケージをソース・コンピュータ上で提供するステップと、パッケージをソース・コンピュータからターゲット・コンピュータに送信するステップと、ターゲット・コンピュータの構成に合ったアクションを実行するステップと、ターゲット・コンピュータの新しい構成をもたらす変更を検出するステップと、新しい構成に合ったソフトウェア機能を有効にするための訂正アクションを決定するステップと、その訂正アクションを実行するステップとを含むソフトウェア配布方法によって達成される。
本発明はまた、この方法を実施するためのコンピュータ・プログラム・アプリケーション、およびこのプログラム・アプリケーションが記憶されている製品を提供する。さらに、本発明は、対応するソフトウェア配布システムも提供する。
本発明の一態様によれば、ターゲット・コンピュータ上で走らせたときにソフトウェア配布方法を実行するための、ターゲット・コンピュータの作業メモリに直接ロード可能なコンピュータ・プログラムであって、対応するソフトウェア機能を有効にするためにターゲット・コンピュータ上で実行されるアクションの指示を含むパッケージを提供するソース・コンピュータとターゲット・コンピュータが結合されており、少なくとも1つのアクションが、ターゲット・コンピュータの構成に対して条件付けられており、その方法が、ソース・コンピュータからパッケージを受信するステップと、ターゲット・コンピュータの構成に合ったアクションを実行するステップと、ターゲット・コンピュータの新しい構成をもたらす変更を検出するステップと、新しい構成に合ったソフトウェア機能を有効にするための訂正アクションを決定するステップと、その訂正アクションを実行するステップとを含む、コンピュータ・プログラムを提供する。
本発明はまた、プログラムが記憶されている製品、およびソフトウェア配布システムで使用するための対応するターゲット・コンピュータを提供する。
本発明の特徴であると考えられる新規性のある特徴は、添付の特許請求の範囲に記載されている。しかし、本発明それ自体、ならびに本発明のこれらのおよび他の関連する目的および利点は、以下の詳細な説明を参照し添付の図面を併せて読めば最もよく理解されよう。
具体的に図1を参照すると、分散型アーキテクチャを有するデータ処理システム100が示されている。ホスト・コンピュータ105は、システム100を介して配布されるソフトウェア製品を準備しかつ試験するための中央サイトとして動作する。この(ソース)ホスト105は、ソフトウェア配布プロセスを管理するためのサーバ・コンピュータ110に接続されている。1つまたは複数のゲートウェイ・コンピュータ115が、サーバ110を、通常インターネット・ベースのネットワーク・インフラストラクチャ120と結合している。複数のエンドポイント・コンピュータ125が、ネットワーク・インフラストラクチャ120にアクセスし、各エンドポイント125がソフトウェア配布プロセスのターゲットを定義する。
エンドポイント125は、TCP/IPなどのピア・ツー・ピア・プロトコルを介して対応するゲートウェイ115と通信する。サーバ110とゲートウェイ115の間の通信は、サーバとクライアントの間のミドルウェアとして動作するCORBAプログラミング・モデル中のコンポーネントであるORBを介して確立される。各エンドポイント125は、関連するゲートウェイ115上の対応するオブジェクトを介してサーバ110によってアクセスされ、したがって、サーバ110はエンドポイント125を直接アドレスすることができる。このようにして、サーバ110は、エンドポイント125に常駐するアプリケーション上のメソッドを呼び出すことができる。
図2に示すように、本システムの汎用コンピュータは、通信バス130に並列に接続されたいくつかのユニットで形成されている。詳細には、CPU(中央処理装置)135はコンピュータの動作を制御し、RAM140は作業メモリとしてCPU135によって直接使用され、ROM145は、コンピュータのブート・ストラップ用の基本プログラムを記憶している。いくつかの周辺ユニットがさらにバス130に(それぞれのインターフェースによって)接続されている。具体的には、大容量メモリは、磁気ハードディスク150およびCD−ROM160を読取るためのドライバ155からなる。さらに、このコンピュータは、(例えば、キーボードとマウスからなる)入力装置165および(例えば、モニタとプリンタからなる)出力装置170を含む。NIC175は、ネットワーク通信を制御するのに使用される。
システムが、他のトポロジを有する場合、複数のソース・ホストおよび/またはサーバが提供される場合、ソース・ホストおよびサーバが単一コンピュータに組み込まれている場合、エンドポイントが別の方法でサーバに結合されている場合、等価なソース・コンピュータおよびターゲット・コンピュータが提供される場合、コンピュータが異なった構造を有するかまたは異なったユニットを含む場合などにも、同様な考慮が適用される。
次に図3では、ソース・ホストおよび汎用エンドポイントの作業メモリの部分的内容が示されている。情報(プログラムおよびデータ)は、通常それぞれのハードディスクに記憶され、そのプログラムが走る際にオペレーティング・システムおよび他のアプリケーション・プログラム(図示せず)と共に作業メモリに(少なくとも部分的に)ロードされる。プログラムは、最初はCD−ROMからハードディスクにインストールされる。
具体的には、ソース・ホストは、ソフトウェアをエンドポイントに配布するのに使用されるパッケージ205を記憶する。各パッケージ205は、命令セクション205iおよびデータ・セクション205dからなる。データ・セクション205dは、各エンドポイント上にインストールされるエンティティを組み込んでおり、一方、命令セクション205iは、エンドポイント上で実行すべき一連のアクションの定義を含み、各アクションは、そのアクションをいつ実行できるかを指定する可能な条件に関連付けられている。
より具体的には図4で示すように、パッケージ205は、ルート・ノードから始まる階層構造に論理的に編成される。階層構造の各リーフ・ノードは、アクションに対応する。いくつかのアクションは自己完結型であるが、他のアクションはインストール可能オブジェクトと呼ばれる対象を扱う。インストール可能オブジェクトとは、エンドポイントに追加されるエンティティまたはそこから除去されるエンティティを言う。例えば、自己完結型アクションは、エンドポイントの再始動を指定し、一方、インストール可能オブジェクトを含むアクションは、ファイル、アイコンなどの追加または除去を指定する。階層構造の分岐ノードは、コンテナのデフォルトを共用する子アクションの集合体を含むコンテナからなる。
クラスは、階層構造の各ノードによってインスタンス化される。(追加または除去すべき)インストール可能オブジェクトを含まないアクションは、総称ACTIONクラス205pを拡張したクラスに対応する。ACTIONクラス205pは、真であると評価されたときにアクションを実行させる条件を指定する一連の属性を公開する。例えば、アクションは、エンドポイントの異なったハードウェア・パラメータ(CPUモデルやRAMサイズなど)やエンドポイントにインストールされたオペレーティング・システムなどに対して条件付けられる。その条件を定義するために、比較演算子、ブール演算子、定数、および変数が利用できる。ACTIONクラス205pはさらに、アクションをエンドポイントで実行できるかどうか検証できるCAN_EXECUTEメソッドを公開する。次いで、DO_EXECUTEメソッドがこのアクションを実行するのに使用される。CAN_EXECUTEメソッドとDO_EXECUTEメソッドは共に(アクションを実行するための)EXECUTE操作または(アクションを取り消すための)REVERSE操作を指定するために呼び出される。
エンドポイントから除去すべきエンティティを指定するインストール可能オブジェクトを含むアクションは、REMOVE_OBJECTクラス205rをインスタンス化する。REMOVE_OBJECTクラス205rは、ACTIONクラス205pを拡張し、したがってREMOVE_OBJECTクラス205rは、ACTIONクラス205pのすべての属性を継承する。他方、エンドポイントに追加すべきエンティティを指定するアクションは、同様にACTIONクラス205pを拡張するADD_OBJECTクラス205aをインスタンス化する。ADD_OBJECTクラス205aは、エンティティのバージョン制御の目的で一連の属性(その値は、パッケージ205の作成中に設定される)を公開する。例えば、REPLACE_IF_EXISTING属性は、既存のエンティティが置き換えできることを指定し、REPLACE_IF_NEWER属性は、古いエンティティだけが置き換えできることを指定し、REMOVE_IF_MODIFIED属性は、既存のエンティティが修正されたときは除去される必要があることを指定する。
ADD_OBJECTクラス205aおよびREMOVE_OBJECTクラス205rは、(追加または除去すべき)各エンティティに対応した一つの関連するINSTALLABLE_OBJECTクラス205oを有する。INSTALLABLE_OBJECTクラス205oは、そのエンティティを複数のパッケージで共用できるとき有効にされる属性IS_SHAREDを公開する。
コンテナは、ACTIONクラス205pを拡張するCONTAINERクラス205cに対応する。CONTAINERクラス205cは、他の属性STOP_ON_FAILURE(その値は、パッケージの作成中に設定される)を公開する。この属性により、あるアクションの結果がその子アクションの実行を条件付けることができる。
図3に戻って、モジュールの集合体210がパッケージ205を作成するために使用される。詳細には、集合体210は、操作者がグラフィカル・インターフェースを使用してパッケージを定義できるようにするエディタを含む。パッケージ自体は、第一のアクションとして定義される。次いで、オペレータは、まずパッケージの名前属性およびバージョン属性を入力するよう指示される。子アクションは、可能な選択肢のメニューから追加され、それらの属性がダイアログ・ボックスを介して設定される。
パッケージの階層構造が定義された後に、パッケージの命令セクション205iが生成される。命令セクション205iは、階層構造を2進表現に直列化するファイル(ソフトウェア・パッケージ・ファイルと呼ばれる)からなる。この目的で、エディタは階層構造をトップダウンで全探索し、各アクションに関連するENCODEメソッドを呼び出す。呼び出されたメソッドは、対応するクラスを識別する一義的な名前をそれぞれ与えられた一連のレコードを生成する。レコードは、クラスの属性に対して設定された値、各条件の定義、および(もしあれば)それに依存する子供のリストを含む。
あるいは、パッケージはプレーン・テキスト・ファイル(ソフトウェア・パッケージ定義ファイルと呼ばれる)によって記述される。テキスト・ファイルの構文は、パッケージに対応する最上位のスタンザから始まる一連のスタンザに基づいている。各スタンザはアクションを表す。スタンザはネストすることもでき、その場合、スタンザはコンテナを表す他のスタンザを含む。集合体210の変換モジュールは、従来の構文解析技法でこのテキスト・ファイルを解釈することにより命令セクション205iを生成する。
パッケージ205(ソフトウェア・パッケージ・ブロックと呼ばれる)は、命令セクション205iから構築される。パッケージ205は、命令セクション205iの追加先である圧縮アーカイブ・ファイルからなる。次いで、命令セクション205iが復号される。この目的で、命令セクション205iが読み取られ、各レコードに割り当てられた名前が、対応するクラスを指定するルックアップ・テーブルにアクセスするために使用される。クラスがインスタンス化された後、関連するDECODEメソッドが呼び出される。呼び出されたメソッドは、そのパッケージの、対応する階層構造を生成する。次いで、この階層構造が全探索され、各クラス上にBUILDメソッドが呼び出される。これらのメソッドは、(例えば、ファイル、ライブラリなどを記憶する)リポジトリ215からエンドポイントにインストールすべきエンティティを取得する。次いで、取得されたエンティティがパッケージ205に追加される。
パッケージ205は、異なる2つのフォーマットで作成することができる。BUILTフォーマットでは、エンドポイントにインストールすべきエンティティは、作成時にリポジトリ215から収集され、パッケージのデータ・セクション205dにインポートされる。このようにして、エンティティはフリーズされ、すべてのエンドポイントでいつでもパッケージ205の同じコピーを受け取るようになる。逆に、NON_BUILTフォーマットでは、パッケージを配布する必要のあるときだけエンティティが収集される(したがって、エンドポイントはいつも各エンティティの最新版を受け取る)。
NON_BUILTフォーマットはまた、すでに同じパッケージを受け取っているエンドポイントに修復モードでパッケージを配布するために使用される。(対応するオプション・フラグで識別された)このパッケージは、各クラス上のメソッドを呼び出して各エンティティが正しくエンドポイントにインストールされているかどうか検証するために、各エンドポイントに対応する階層構造を全探索させる。(例えば、欠けているため、または誤ったバージョンであるため)修復すべきエンティティのリストが生成されソース・ホストに戻される。次いで、ソース・ホストは、エンドポイントに正しいエンティティをインストールするための、対応する(差分)パッケージを構築する。この技法は、通常、(例えば、間違えて、あるいは他のソフトウェア製品をインストール中に)エンドポイントのユーザによって削除または更新されたエンティティに起因する、エンドポイント中の不整合を検出し修復するために使用される。最後の配布プロセス以後に修正されたエンティティを配布するためだけにも同じ技法が使用される。
さらに、集合体210はパッケージ205の自動生成を可能にするツールを含む。具体的には、このツールは、ソフトウェア製品の配布先であるエンドポイントに対応する初期状態のワークステーション(またはその選択された部分)のスナップショットを取ることによって動作する。次いで、ソフトウェア製品が、そのワークステーションにインストールされ、新しいスナップショットが取られる。ツールは、対応するパッケージ205を生成するために、2つのスナップショット間の差を検出する。その結果得られたパッケージの命令セクション205iを復号して、望ましくないアクションがないか調べるとともによい状態で構築するために検査することが好ましい。
通信サービス220は、パッケージ205にアクセスするためのインターフェースを提供する。サービス220はさらに、エンドポイントから受け取った対応する要求に応答して差分パッケージ205を構築し配布することを制御する、修復モジュール225と結合している。
エンドポイントにある他の通信サービス230は、ソフトウェア配布プロセスを管理する。サービス230は、エンドポイントでソース・ホストから受け取ったパッケージを有効にするエンジン235と通信する。エンジン235は、エンドポイントの現在のハードウェア構成を記憶しているリポジトリ237にアクセスする。構成リポジトリ237は、(CPUモデルやRAMサイズなど)対応するハードウェア・パラメータの値をそれぞれが指定する一連のレコードを含む。エンジン235は、ソフトウェア配布プロセスのログ240を管理する。ログ240は、エンドポイントに配布されたパッケージごとにアクションの定義および対応する条件の定義を記憶するカタログからなる。さらに、配布時における各条件の評価結果を示すためにフラグが使用される。さらに、エンジン235は、配布プロセスの結果として更新されたエンティティまたはエンドポイントから除去されたエンティティのバックアップ・コピー245を作成する。
エンドポイントにエンティティを追加するためのアクション・リスト247aおよびエンドポイントからエンティティを除去するためのアクション・リスト247rは、修復モードで配布されたパッケージに応答してエンジン235によって生成される。さらに、パッケージ・カタログ240はモニタ250によってアクセスされる。モニタ250は、構成リポジトリ237を介して(エンドポイントの新しい構成をもたらす)どんな変更も検出する。したがって、モニタ250は、エンドポイントの新しい構成に現在合っているエンティティを追加するためのアクション・リスト247a、および新しい構成にもはや合っていないエンティティを除去するためのアクション・リスト247rを生成する。追加アクション・リスト247aおよび除去アクション・リスト247rは、対応する差分パッケージの構築をトリガするために、(サービス230を介して)ソース・ホストに通知される。
アプリケーション全体および対応するデータが違った構造になっている場合、パッケージが他の構造を有する場合(例えば、ユーザごとのアクションの概念がサポートされている場合)、(マルチメディア作品などの)等価なソフトウェア機能が配布される場合、異なったモジュールおよび機能が提供される場合(例えば、ソース・ホストが、切断されたコンピュータ上でパッケージをテストするためのモジュールを記憶している場合)も同様な考慮が適用される。あるいは、パッケージが異なった方法で作成される、構成リポジトおよび/またはパッケージ・カタログが等価のメモリ構造で置き換えられる、(ハードウェアまたはソフトウェアの)他のパラメータがエンドポイントの構成を定義するために使用される、エンドポイントの構成の変更が異なった方法で検出される(例えば、エンドポイントの電源投入時ごとにその構成がチェックされる)、追加アクション・リストおよび除去アクション・リストが等価な情報で置き換えられるなどの場合もそれぞれ同様な考慮が適用される。
次に図5では、パッケージの展開に対応するロジック・フローが方法300aとして示されている。この方法は、ブロック303から開始する。ブロック306で、パッケージは、エンドポイントで実行されるアクション、およびその各条件を定義することによって作成される。次いで、エンドポイントにインストールされるエンティティがパッケージ中に組み込まれる。ブロック309に移ると、操作者がサーバに配布要求をサブミットする。配布要求はソース・ホストに送られ、ソース・ホストはサーバに識別コードを戻して、操作者が配布プロセスをモニタしかつ制御できるようにする。操作者が配布プロセスを休止または取り消すことができるようにするコマンドも利用できる。追加のコマンドを用いて、操作者は配布プロセスの完了後に詳細なレポートを要求することができる。
次に、ブロック312を参照すると、パッケージがエンドポイントに送信される。配布プロセスは、エンドポイントに達する前に、ゲートウェイの階層を横切って行われる。ゲートウェイは、リピータ(またはデポ)として動作し、パッケージがそこにロードされ記憶される。エンドポイントのエンジンは、パッケージのラベルを与えられる。次いで、エンドポイントは、同期多重化技法を使用して直接パッケージをダウンロードするために、最も近いゲートウェイへの通信チャネルを開く。パッケージの命令セクションがエンドポイントで受信される最初のファイルである。ブロック315で、エンドポイントの作業メモリ中でパッケージの階層構造を作成するために、命令セクションを読み取ると同時に復号する。
エンジンは、このようにして得られた階層構造を読み取り、トップダウンで全探索する(階層最上位でパッケージのインスタンス上の所望のメソッドを呼び出し、次にこのメソッドが子供の同じメソッドを呼び出すことによって)。ブロック318で、エンジンは、エンドポイントの構成が関連する条件に合っているかどうかアクションごとに検査する。アクションが実行できない場合、方法はブロック321(後述する)に進む。逆に、エンドポイントの構成がアクションに関連する条件に合った場合、方法はブロック324に進む。アクションが、エンドポイントの既存エンティティの更新(例えば、ファイルの消去または置換)を含む場合は、ブロック327で、エンティティのバックアップ・コピーが行われる。次いで、方法はブロック330に進む。さもなければ(例えば、アクションが新ファイルの追加に関するものであるとき)、方法はブロック330に直接進む。
ブロック330で、アクションが実行される。アクションが、インストール可能オブジェクトを指定した場合、エンドポイントにそのエンティティが追加されるか、エンドポイントからエンティティが除去される。エンティティが複数のパッケージ内で共用されている場合、いくつのパッケージがそのエンティティを使用しているかを示すために、エンジンはカウンタをエンティティと関連付ける。共用エンティティを追加するとカウンタは増加し、一方、除去するとカウンタは減少する。エンティティは、カウンタがゼロ(つまり、当該エンティティを使用しているパッケージが他にない)になったときだけエンドポイントから物理的に除去される。次いで、方法はブロック321に進む。
次に、ブロック321では、各条件を含むアクションおよびその評価結果がパッケージ・カタログ中にログされる。ブロック333で、パッケージの最後のアクションが処理されたかどうか判定するためのテストが行われる。処理されていない場合、ブロック318に戻って、新しいアクションを検証し多分実行する。逆に、パッケージの最後のアクションが処理されていたとき、最終ブロック335で、この配布プロセスは終了する。
次に図6に移ると、エンドポイント上で走るモニタは、ブロック335から開始する他の方法300bを実行する。ブロック337で、モニタはイベントが生じるのを待つループに入る。エンドポイントの構成の変更が検出されると、ステップ339〜363が実行される。逆に、エンドポイントがシャットダウンされた場合、最終ブロック369でこの方法は終了する。
次に、ブロック339では、エンドポイントの新しい構成をもたらす(ハードウェアの更新などの)どんな変更が起きても、それはそれぞれのリポジトリに記録される。これにより、モニタはハードウェア・パラメータおよび関係する新しい値のリストの変更を検出することができる。これに応答して、モニタは、更新によって修正された1つまたは複数のハードウェア・パラメータに基づく条件を有するすべてのアクションを識別するために、パッケージ・カタログの走査をトリガする。
ブロック342で、これらのアクションごとに、対応する条件が再度評価される。条件が新しい構成中で有効になった場合、ブロック345で、そのアクションが追加アクション・リスト中に挿入され、方法はブロック348(後述する)に進む。条件が新しい構成中でもはや有効ではない場合、ブロック351で、そのアクションは除去アクション・リストに挿入され、方法はブロック348に進む。評価結果が変わらなかった場合(つまり、条件が有効または無効のままである場合)、方法はブロック348に直接進む。判断ブロック348で、最後のアクションが処理されたかどうか判定するためのテストが行われる。処理されていない場合は、この方法は、次のアクションに関連する条件を評価するためにブロック342に戻る。
すべてのアクションが処理されるとすぐに方法はブロック357に進み、追加アクション・リストおよび除去アクション・リストがソース・ホストに通知される。ブロック360で、これに応答して対応する差分パッケージが構築される。差分パッケージの命令セクションは、追加アクション・リストのアクションにより要求されるエンティティのインストール、および除去アクション・リストのアクションの取り消しを指定する。差分パッケージのデータ・セクションは、エンドポイントにインストールすべき(追加アクション・リストによって識別される)エンティティを組み込む。次にブロック363を参照すると、差分パッケージがエンドポイントに配布され(上記の操作が繰り返され)る。その結果、追加アクション・リストに関連したエンティティは、エンドポイントにインストールされる。同時に、除去アクション・リストに関連したエンティティは(エンドポイントに追加されていた場合)除去され、あるいは(すでに除去されまたは別のバージョンと置き換えられていた場合は)バックアップ・コピーから復元される。次いで、方法はブロック337に戻り、新しいイベントが生じるのを待つ。
例えば、それぞれの条件を含む以下のアクションを指定するパッケージの配布を検討する。
ACTION_1:Add File_1 if CPU=Model_1
ACTION_2:Remove File_2 if RAM≦64Mbytes
ACTION_3:Add File_3 if RAM≦64Mbytes
ACTION_4:Add File_4 if RAM>64Mbytes
Model_1と異なるCPUおよび32メガバイトのRAMを有するエンドポイントにパッケージが配布されたと仮定すると、ACTION_2とACTION_3に関連する条件だけが真である。したがって、エンジンは、(バックアップ・コピーの作成後に)File_2を除去し、次いで、File_3をインストールする(一方、File_1とFile_4は、エンドポイントへの転送さえも行われない)。
ハードウェアの更新がエンドポイントで実行される。更新には、Model_1タイプの新しいCPUのインストール、およびRAMサイズを128メガバイトに増やすいくつかのメモリ・モジュールのインストールが含まれる。これらの変更は、ACTION_1とACTION_4の条件を有効にするが、ACTION_2とACTION_3の条件はもはや有効ではない。それに応答して、ACTION_1、ACTION_4を実行しかつACTION_2、ACTION_3を取り消すための要求がソース・ホストに送信される。ソース・ホストは、対応する差分パッケージをそれに従って構築し、次いで、その差分パッケージがエンドポイントに配布される。その結果、File_2が(そのバックアップ・コピーから)復元され、File_3が除去される。同時に、File_1とFile_4がエンドポイントで受信され、インストールされる。
(例えば、エンドポイントの障害のあとに再始動または再ブートできるようにするために、ソフトウェア配布プロセス中に定期的に書き込まれるチェック・ポイントを用いた)等価な方法が実行される場合、異なる技法によってパッケージが展開される場合、パッケージが、(各アクションをまず作成し、次いでコミットし、作成段階で不具合が生じた場合に整合性のある状態にロールバックできるようにする)トランザクション・モードで配布される場合なども同様な考慮が適用される。
より一般的には、本発明は、ソフトウェア配布方法を提案する。この方法は、対応するソフトウェア機能を有効にするために、複数の各ターゲット・コンピュータで実行されるアクションの指示を含むパッケージを提供する(ソース・コンピュータで実行される)ステップから開始する。1つまたは複数のアクションが、ターゲット・コンピュータの構成に対して条件付けられる。パッケージは、ソース・コンピュータからターゲット・コンピュータに送信され、ターゲット・コンピュータの構成に合ったアクションが実行される。本発明の方法では、ターゲット・コンピュータの新しい構成をもたらす変更が検出される。新しい構成に合ったソフトウェア機能を有効にするための訂正アクションが決定される。次いで、その訂正アクションが実行される。
提案の解決策は、ソース・コンピュータとターゲット・コンピュータの間の協調をサポートするモデルに基づいている。
本発明の方法は、ターゲット・コンピュータ中での不整合を回避する。
具体的には、考案した解決策は、ターゲット・コンピュータの構成と互換性のないソフトウェア機能によりターゲット・コンピュータの動作が損なわれないようにする。
本発明の方法は、(ターゲット・コンピュータの構成がしばしば変更される)高度に動的な環境で特に有利であり、異なるアプリケーションでの使用が排除されない場合であってもそうである。
上記の本発明の好ましい実施形態は、さらに利点を提供する。
具体的には、エンドポイントに配布された各パッケージは、その構成の変更によって影響を受けるすべての条件を識別するために走査される。これらの条件は再度評価され、エンドポイントの新しい構成に現在合った対応するアクションが実行される。
このようにして、パッケージのすべての条件の再評価を必要とせずに、訂正アクションが非常に簡単に決定される。
配布時に、パッケージのすべてのアクションおよび条件を、対応する評価結果と一緒にパッケージ・カタログ中にログすることが好ましい。
考案した解決策は、ソフトウェア配布プロセスの有効性を改善する。
有利には、新しい構成のためにエンドポイントにインストールされるエンティティが、ソース・ホストに要求される。
提案の機能は、エンドポイントにおけるメモリ空間の浪費を回避する。
しかし、本発明の解決策は、異なる方法で条件を定義する、新しい構成中で各パッケージのすべての条件を評価する、様々な情報をログする、パッケージ全体をエンドポイントに記憶する、ソース・ホストの制御下で実行すべきアクションを決定するなども実施可能である。
訂正アクションは、エンドポイントの新しい構成にもはや合わなくなった実行済みアクションの取り消しをさらに指定することが好ましい。
この追加のステップは、(新しい構成で必要なすべてのエンティティと共に)エンドポイントにおける整合条件の復元を可能にする。
他の改良として、実行されたアクションによって影響を受けたエンティティが、そのバックアップ・コピーから復元される。
したがって、配布プロセス中に削除または更新されたどんなエンティティもその元のバージョンに復元することができる。
代替として、どんなバックアップ・コピーも必要とせずにアクションが取り消され、バックアップ・コピーが他の場所に記憶され、エンティティは復元することができず、またはアクションは取り消し可能な方法では実行されない。
本発明の好ましい実施形態では、追加アクション・リストおよび除去アクション・リストがソース・ホストに送信され、それに従って、対応する訂正アクションを実行させる差分パッケージをソース・ホストが構築する。
提案の解決策は、エンドポイントで実行される任意のアクションの中央制御を提供する。差分パッケージの使用により、(追加アクション・リストおよび除去アクション・リストのすべてアクションを確実に実行して)エンドポイント中のどんな不整合も阻止することが可能になる。さらに、この機能は、ソース・ホストですでに利用可能な修復モジュールを活用して実装することができる。
しかし、本発明の方法は、異なる方法で訂正アクションを行い、除去アクション・リストのアクションをエンドポイントで直接取り消し、さらにはソース・ホストで差分パッケージを構築するための専用モジュールを提供することによって実施するのにも適している。
本発明による解決策を、CD−ROMで提供されるコンピュータ・プログラム・アプリケーションで実装すると有利である。
アプリケーションは、クライアント・サーバ・アーキテクチャを有する。具体的には、アプリケーションは、ソース・ホストにインストールされたプログラム、および各エンドポイントにインストールされたプログラムからなる。さらに、エンドポイントのプログラムは、別個に実装し、スタンドアロン製品として市販するのにも適していることに留意されたい。
代替として、このプログラムは、フロッピー(R)・ディスクで提供され、ハードディスクにプリロードされ、もしくは他の任意のコンピュータ可読媒体に記憶され、ネットワーク(通常はインターネット)を介してコンピュータに送られ、ブロードキャストされ、またはより一般的に、コンピュータの作業メモリに直接ロード可能な任意の他の形式で提供される。しかし、本発明による方法は、異なるアーキテクチャを有するアプリケーション、さらには(例えば、半導体材料の1つまたは複数のチップに集積化された)ハードウェア構造を使用しても実施することができる。
ローカルなおよび固有の要件を満たすために、当業者なら上記の解決策に多くの修正および改変を適用できようが、それらはすべて添付の特許請求の範囲によって定義される本発明の保護の範囲内に含まれることは当然である。
本発明の方法が使用できるシステムの概略のブロック図である。 本システムの汎用コンピュータの機能ブロック図である。 本システムのソース・ホストの作業メモリおよびエンドポイントの作業メモリの部分的な内容を示す図である。 ソフトウェア配布プロセス中で用いられるパッケージの階層構造を示す図である。 ソフトウェア配布プロセスの様々な段階のロジックを説明する図である。 ソフトウェア配布プロセスの様々な段階のロジックを説明する図である。

Claims (13)

  1. 対応するソフトウェア機能を有効にするために複数のターゲット・コンピュータのそれぞれで実行され、その少なくとも1つがターゲット・コンピュータの構成に対して条件付けられているアクションの指示を含むパッケージをソース・コンピュータ上で提供するステップ(306)と、
    パッケージをソース・コンピュータからターゲット・コンピュータに送信するステップ(312)と、
    ターゲット・コンピュータの構成に合ったアクションを実行するステップ(315〜333)とを含み、
    ターゲット・コンピュータの新しい構成をもたらす変更を検出するステップ(337)と、
    新しい構成に合ったソフトウェア機能を有効にするための訂正アクションを決定するステップ(339〜351)と、
    訂正アクションを実行するステップ(357〜363)と
    を特徴とするソフトウェア配布方法(300a、300b)。
  2. パッケージが、ターゲット・コンピュータの少なくとも1つの構成パラメータに基づく少なくとも1つの条件の指示をさらに含み、各条件が少なくとも1つのアクションに関連しており、
    ターゲット・コンピュータの構成に合ったアクションを実行するステップ(315〜333)が、ターゲット・コンピュータの構成に従って、各条件の第1の評価を実行するステップ(318)と、第1の評価に対応する結果が肯定であるとき、条件に関連する少なくとも1つのアクションを実行するステップ(324〜330)とを含み、
    訂正アクションを決定するステップ(339〜351)が、変更によって影響を受ける少なくとも1つの構成パラメータに基づいて条件を識別するステップ(339)と、新しい構成に従って、識別された各条件の第2の評価を実行するステップ(342)と、第1の評価に対応する結果が否定であり、第2の評価に対応する結果が肯定であるとき、識別された条件に関連する少なくとも1つのアクションを選択するステップ(345)とを含む、請求項1に記載の方法(300a、300b)。
  3. ターゲット・コンピュータで第1の評価に対応する結果と共に、アクションの指示および少なくとも1つの条件の指示を記憶するステップ(321)をさらに含む、請求項2に記載の方法(300a、300b)。
  4. 少なくとも1つの訂正アクションが、ターゲット・コンピュータにおける対応するエンティティのインストールを含むものであり、ソース・コンピュータに各エンティティを要求するステップ(357)をさらに含む、請求項3に記載の方法(300a、300b)。
  5. 訂正アクションを決定するステップ(339〜351)が、第1の評価に対応する結果が肯定であり第2の評価に対応する結果が否定であったとき、識別された条件ごとに識別された条件に関連する少なくとも1つのアクションを取り消すために、少なくとも1つの取り消しアクションを定義するステップ(351)をさらに含む、請求項2ないし4のいずれかに記載の方法(300a、300b)。
  6. 実行されたアクションによって影響を受けるターゲット・コンピュータで各既存エンティティのバックアップ・コピーを作成するステップ(327)をさらに含み、少なくとも1つの取り消しアクションが、対応する実行されたアクションによって影響を受ける各既存エンティティのバックアップ・コピーの復元に関するものである、請求項5に記載の方法(300a、300b)。
  7. 訂正アクションを実行するステップ(357〜363)が、
    ソース・コンピュータに訂正アクションの指示を送信するステップ(357)と、
    ターゲット・コンピュータで訂正アクションを実行させる他のパッケージを構築するステップ(360)と、
    他のパッケージをターゲット・コンピュータに送信するステップ(363)とを含む、請求項1ないし6のいずれかに記載の方法(300a、300b)。
  8. データ処理システム(100)で走らせたとき請求項1ないし7のいずれかに記載の方法を実行するための、データ処理システムの作業メモリ(140)に直接ロード可能なコンピュータ・プログラム・アプリケーション(210、225、235、250)。
  9. 請求項8のプログラム・アプリケーション(210、225、235、250)が記憶されるコンピュータ可読媒体を含むプログラム・アプリケーション製品(160)。
  10. ターゲット・コンピュータ(125)でプログラムを走らせたときにソフトウェア配布方法(300a、300b)を実行するための、ターゲット・コンピュータ(125)の作業メモリ(140)に直接ロード可能なコンピュータ・プログラム(235、250)であって、対応するソフトウェア機能を有効にするためにターゲット・コンピュータで実行されるアクションの指示を含むパッケージを提供するソース・コンピュータ(105)とターゲット・コンピュータが結合され、少なくとも1つのアクションが、ターゲット・コンピュータの構成に対して条件付けられ、
    方法が、
    ソース・コンピュータからパッケージを受信するステップ(312)と、
    ターゲット・コンピュータの構成に合ったアクションを実行するステップ(315〜333)とを含み、
    ターゲット・コンピュータの新しい構成をもたらす変更を検出するステップ(337)と、
    新しい構成に合ったソフトウェア機能を有効にするための訂正アクションを決定するステップ(339〜351)と、
    訂正アクションを実行するステップ(357〜363)と
    を特徴とするコンピュータ・プログラム(235、250)。
  11. 請求項10のプログラム(235、250)が記憶されているコンピュータ可読媒体を含むプログラム製品(160)。
  12. ソース・コンピュータ(105)と、複数のターゲット・コンピュータ(125)とを含み、ソース・コンピュータが、対応するソフトウェア機能を有効にするためにターゲット・コンピュータのそれぞれで実行されるアクションの指示を含むパッケージを提供する手段を有し、少なくとも1つのアクションが、ターゲット・コンピュータの構成に対して条件付けられ、パッケージをソース・コンピュータからターゲット・コンピュータに送信する手段(220、230)をさらに含み、ターゲット・コンピュータが、ターゲット・コンピュータの構成に合ったアクションを実行する手段(235)を含んでいるソフトウェア配布システム(100)であって、
    ターゲット・コンピュータが、ターゲット・コンピュータの新しい構成をもたらす変更を検出する手段(250)と、新しい構成に合ったソフトウェア機能を有効にするための訂正アクションを決定する手段(250)と、訂正アクションを実行する手段(235)とをさらに含むことを特徴とするソフトウェア配布システム(100)。
  13. ソフトウェア配布システム(100)中で使用されるターゲット・コンピュータ(125)であって、システムが、対応するソフトウェア機能を有効にするためにターゲット・コンピュータで実行されるアクションの指示を含むパッケージを提供する手段(210)を有するソース・コンピュータ(105)を含み、少なくとも1つのアクションが、ターゲット・コンピュータの構成に対して条件付けられ、ターゲット・コンピュータが、パッケージをソース・コンピュータから受信する手段(230)と、ターゲット・コンピュータの構成に合ったアクションを実行する手段(235)とを含んでおり、
    ターゲット・コンピュータが、ターゲット・コンピュータの新しい構成をもたらす変更を検出する手段(250)と、新しい構成に合ったソフトウェア機能を有効にするための訂正アクションを決定する手段(250)と、訂正アクションを実行する手段(235)とをさらに含むことを特徴とする、ターゲット・コンピュータ(125)。
JP2003582632A 2002-04-11 2003-02-13 ソフトウェア配布方法およびシステム Expired - Fee Related JP4524113B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP02368036 2002-04-11
PCT/EP2003/002300 WO2003085513A2 (en) 2002-04-11 2003-02-13 A software distribution method and system

Publications (2)

Publication Number Publication Date
JP2005522757A true JP2005522757A (ja) 2005-07-28
JP4524113B2 JP4524113B2 (ja) 2010-08-11

Family

ID=28686028

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003582632A Expired - Fee Related JP4524113B2 (ja) 2002-04-11 2003-02-13 ソフトウェア配布方法およびシステム

Country Status (7)

Country Link
US (2) US7490322B2 (ja)
EP (1) EP1497721B1 (ja)
JP (1) JP4524113B2 (ja)
CN (1) CN1313923C (ja)
AU (1) AU2003210427A1 (ja)
CA (1) CA2481712C (ja)
WO (1) WO2003085513A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012524342A (ja) * 2009-04-14 2012-10-11 クアルコム,インコーポレイテッド 互換性および/またはユーザ設定に基づいて計算装置でアプリケーションおよびウィジェットを自動的に使用可能にするおよび使用不能にするシステムおよび方法

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751794B1 (en) * 2000-05-25 2004-06-15 Everdream Corporation Intelligent patch checker
WO2003085513A2 (en) * 2002-04-11 2003-10-16 International Business Machines Corporation A software distribution method and system
US7577948B2 (en) * 2003-07-02 2009-08-18 Upgradedetect, Inc. System and method for providing computer upgrade information
GB2413407B (en) * 2004-04-22 2007-11-07 Ibm Method and system for software or data distribution
US8413134B2 (en) * 2005-05-10 2013-04-02 International Business Machines Corporation Method, system and computer program for installing software products based on package introspection
US8166458B2 (en) * 2005-11-07 2012-04-24 Red Hat, Inc. Method and system for automated distributed software testing
CN101657793B (zh) * 2007-04-05 2014-08-13 国际商业机器公司 用于配置防火墙的方法、系统和计算机程序
US8739131B2 (en) 2007-05-04 2014-05-27 International Business Machines Corporation Completing functional testing
US20080294777A1 (en) * 2007-05-25 2008-11-27 Alexei Karve Method and apparatus for template-based provisioning in a service delivery environment
US8239505B2 (en) * 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US8250169B2 (en) * 2007-09-24 2012-08-21 Sap Ag Business context data companion tool
US8127237B2 (en) 2007-09-24 2012-02-28 Sap Ag Active business client
US8572580B2 (en) * 2008-07-28 2013-10-29 Microsoft Corporation Computer application packages with customizations
US20100031249A1 (en) * 2008-08-04 2010-02-04 International Business Machines Corporation Method for policy based enforcement of business requirements for software install
US7721279B1 (en) * 2009-01-28 2010-05-18 International Business Machines Corporation Packaging information integration applications
US8782530B2 (en) * 2009-03-25 2014-07-15 Sap Ag Method and system for providing a user interface in a computer
US8712953B2 (en) * 2009-03-25 2014-04-29 Sap Ag Data consumption framework for semantic objects
US10656931B2 (en) * 2009-05-26 2020-05-19 Comcast Cable Communications, Llc Network event triggered software updates
WO2011053312A1 (en) * 2009-10-30 2011-05-05 Hewlett-Packard Development Company, L.P. Systems and methods of creating a restorable computer installation
US20110113226A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Distribution Of Software Updates
US9128799B2 (en) * 2009-11-09 2015-09-08 Bank Of America Corporation Programmatic creation of task sequences from manifests
US20110113416A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Network-Enhanced Control Of Software Updates Received Via Removable Computer-Readable Medium
US9176898B2 (en) * 2009-11-09 2015-11-03 Bank Of America Corporation Software stack building using logically protected region of computer-readable medium
US9122558B2 (en) * 2009-11-09 2015-09-01 Bank Of America Corporation Software updates using delta patching
US8584113B2 (en) * 2009-11-09 2013-11-12 Bank Of America Corporation Cross-updating of software between self-service financial transaction machines
US8972974B2 (en) * 2009-11-09 2015-03-03 Bank Of America Corporation Multiple invocation points in software build task sequence
US8996684B2 (en) * 2009-12-08 2015-03-31 Tripwire, Inc. Scoring and interpreting change data through inference by correlating with change catalogs
US9741017B2 (en) * 2009-12-08 2017-08-22 Tripwire, Inc. Interpreting categorized change information in order to build and maintain change catalogs
US8600996B2 (en) * 2009-12-08 2013-12-03 Tripwire, Inc. Use of inference techniques to facilitate categorization of system change information
US8868987B2 (en) * 2010-02-05 2014-10-21 Tripwire, Inc. Systems and methods for visual correlation of log events, configuration changes and conditions producing alerts in a virtual infrastructure
US8875129B2 (en) * 2010-02-05 2014-10-28 Tripwire, Inc. Systems and methods for monitoring and alerting events that virtual machine software produces in a virtual infrastructure
US8566823B2 (en) 2010-02-05 2013-10-22 Tripwire, Inc. Systems and methods for triggering scripts based upon an alert within a virtual infrastructure
US20110238572A1 (en) * 2010-03-25 2011-09-29 Bank Of America Corporation Remote Control Of Self-Service Terminal
US20130191495A1 (en) * 2012-01-23 2013-07-25 Cristian Almstrand Framework and system to distribute applications for heterogeneous platforms
JP5533935B2 (ja) * 2012-05-10 2014-06-25 トヨタ自動車株式会社 ソフトウェア配信システム、ソフトウェア配信方法
US9342317B2 (en) * 2012-08-09 2016-05-17 International Business Machines Corporation Importing profiles for configuring specific system components into a configuration profile for the system
US9223592B2 (en) 2012-08-09 2015-12-29 International Business Machines Corporation Configuring a system with various system components utilizing a configuration profile
US9766873B2 (en) 2012-08-17 2017-09-19 Tripwire, Inc. Operating system patching and software update reconciliation
US9367301B1 (en) * 2013-03-06 2016-06-14 Attivio Inc. Dynamic update of a distributed message processing system
US9329854B2 (en) * 2013-03-07 2016-05-03 Telefonaktiebolaget L M Ericsson (Publ) Staging calculation for upgrade campaign generation
US9766870B2 (en) * 2013-05-30 2017-09-19 Microsoft Technology Licensing, Llc Bundle package generation
US20140357357A1 (en) 2013-05-30 2014-12-04 Microsoft Corporation Game bundle package
US20140359605A1 (en) * 2013-05-30 2014-12-04 Microsoft Corporation Bundle package signing
US9323514B2 (en) 2013-05-30 2016-04-26 Microsoft Technology Licensing, Llc Resource package indexing
US9690564B2 (en) * 2013-09-10 2017-06-27 International Business Machines Corporation Runtime detection of software configurations and upgrades
TW201521403A (zh) * 2013-11-19 2015-06-01 Inst Information Industry 軟體漫遊系統、方法與其電腦可讀取記錄媒體
CN105515806A (zh) * 2014-09-24 2016-04-20 中兴通讯股份有限公司 软件版本处理方法及装置
US9116777B1 (en) * 2014-09-25 2015-08-25 International Business Machines Corporation In-flight process instance migration between business process execution language (BPEL) suites
US9740473B2 (en) 2015-08-26 2017-08-22 Bank Of America Corporation Software and associated hardware regression and compatibility testing system
JP6855348B2 (ja) * 2017-07-31 2021-04-07 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびダウンロード処理方法
US10255065B1 (en) * 2017-12-29 2019-04-09 Semmle Limited Automatically building software projects

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05165610A (ja) * 1991-12-13 1993-07-02 Hitachi Ltd ソフトウェア開発環境の生成および保守方法
WO1994025913A2 (en) * 1993-04-30 1994-11-10 Novadigm, Inc. Method and apparatus for enterprise desktop management
JPH10177473A (ja) * 1996-12-18 1998-06-30 Japan Airlines Co Ltd コンピュータ・プログラムのインストール方法及びシステム
US6684397B1 (en) * 1997-09-08 2004-01-27 Novell, Inc. Auto-install apparatus and method
US6117187A (en) * 1997-09-30 2000-09-12 Hewlett-Packard Company Automatic generation of a software installation package
WO1999057634A1 (en) * 1998-05-06 1999-11-11 Jcp Computer Services Ltd. Processing apparatus and method
US6080207A (en) * 1998-06-04 2000-06-27 Gateway 2000, Inc. System and method of creating and delivering software
US6966060B1 (en) * 1999-07-02 2005-11-15 Microsoft Corporation Method and system for remote client installation
US7219332B2 (en) * 2000-07-07 2007-05-15 Microsoft Corporation Configuring software components(merge) with transformation component using configurable and non-configurable data elements
GB0017336D0 (en) * 2000-07-15 2000-08-30 Ibm Preferable modes of software package deployment
US7103650B1 (en) * 2000-09-26 2006-09-05 Microsoft Corporation Client computer configuration based on server computer update
US6832372B1 (en) * 2000-09-29 2004-12-14 Hewlett-Packard Development Company, L.P. Updating system ROM configuration utility using NVRAM
US7213231B1 (en) * 2001-01-11 2007-05-01 Cisco Technology, Inc. Cross-spectrum application model for dynamic computing environments in software lifecycle
US20020147974A1 (en) * 2001-02-09 2002-10-10 Wookey Michael J. Networked installation system for deploying systems management platforms
US6901580B2 (en) * 2001-06-22 2005-05-31 Intel Corporation Configuration parameter sequencing and sequencer
US6986135B2 (en) * 2001-09-06 2006-01-10 Cognos Incorporated Deployment manager for organizing and deploying an application in a distributed computing environment
WO2003085513A2 (en) 2002-04-11 2003-10-16 International Business Machines Corporation A software distribution method and system
US7219344B2 (en) * 2002-04-30 2007-05-15 Accenture Global Services Gmbh Method and apparatus for deploying programs and computing platforms to selected computers

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012524342A (ja) * 2009-04-14 2012-10-11 クアルコム,インコーポレイテッド 互換性および/またはユーザ設定に基づいて計算装置でアプリケーションおよびウィジェットを自動的に使用可能にするおよび使用不能にするシステムおよび方法

Also Published As

Publication number Publication date
CA2481712A1 (en) 2003-10-16
WO2003085513A3 (en) 2004-04-15
AU2003210427A8 (en) 2003-10-20
EP1497721A2 (en) 2005-01-19
US20090158268A1 (en) 2009-06-18
WO2003085513A2 (en) 2003-10-16
CN1313923C (zh) 2007-05-02
JP4524113B2 (ja) 2010-08-11
CA2481712C (en) 2011-07-12
EP1497721B1 (en) 2015-04-01
US7490322B2 (en) 2009-02-10
US20050149925A1 (en) 2005-07-07
US8266617B2 (en) 2012-09-11
AU2003210427A1 (en) 2003-10-20
CN1647038A (zh) 2005-07-27

Similar Documents

Publication Publication Date Title
JP4524113B2 (ja) ソフトウェア配布方法およびシステム
US8122106B2 (en) Integrating design, deployment, and management phases for systems
US9063725B2 (en) Portable management
US7684964B2 (en) Model and system state synchronization
US7421490B2 (en) Uniquely identifying a crashed application and its environment
US9542175B2 (en) Continuous deployment
KR100655124B1 (ko) 주문 제작 컴퓨터시스템을 위한 소프트웨어 설치 및 테스트를촉진하는 데이타베이스
US7243346B1 (en) Customized library management system
US7165194B2 (en) Technical support for software products
US7293255B2 (en) Apparatus and method for automated creation of resource types
US20130232245A1 (en) Automation for virtualized it environments
US8001083B1 (en) Repository including version management
US20050262501A1 (en) Software distribution method and system supporting configuration management
US20060048145A1 (en) Software distribution method and system with automatic prerequisite installation
JP2004158012A (ja) ソフトウェアアプリケーション管理のためのシステムおよび方法
JP2009519544A (ja) 自動ソフトウェアテストフレームワーク
WO2009048894A2 (en) Managing updates to create a virtual machine facsimile
US20070234328A1 (en) File handling for test environments
US20030005093A1 (en) Server configuration versioning tool
US20050108704A1 (en) Software distribution application supporting verification of external installation programs
US7389515B1 (en) Application deflation system and method
CN117785266B (zh) 应用程序的自动发布方法、调度服务器及低代码平台
CN117648198B (zh) 应用适配方法及装置、设备及存储介质
US8812458B2 (en) Adaptive methodology for updating solution building block architectures and associated tooling
US8825610B1 (en) System management based on goals relevant to a current state of a managed system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061024

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070122

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070424

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071121

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071226

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080229

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100423

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130604

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees