JP2008507775A - ソフトウェアアプリケーションリポジトリ内のアプリケーションメタ情報の抽出と作成のためのシステムおよび方法 - Google Patents

ソフトウェアアプリケーションリポジトリ内のアプリケーションメタ情報の抽出と作成のためのシステムおよび方法 Download PDF

Info

Publication number
JP2008507775A
JP2008507775A JP2007522813A JP2007522813A JP2008507775A JP 2008507775 A JP2008507775 A JP 2008507775A JP 2007522813 A JP2007522813 A JP 2007522813A JP 2007522813 A JP2007522813 A JP 2007522813A JP 2008507775 A JP2008507775 A JP 2008507775A
Authority
JP
Japan
Prior art keywords
software
repository
software package
dependencies
dependent
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.)
Pending
Application number
JP2007522813A
Other languages
English (en)
Inventor
シェーファー スチュアート
Original Assignee
ソフトリシティ インコーポレイテッド
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 ソフトリシティ インコーポレイテッド filed Critical ソフトリシティ インコーポレイテッド
Publication of JP2008507775A publication Critical patent/JP2008507775A/ja
Pending 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • G06F3/1254Automatic configuration, e.g. by driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

ターゲットマシン上の依存ソフトウェアパッケージの検出と使用を自動化する方法は、第1ソフトウェアパッケージのインストール又は実行期間に依存関係を検出し、ソフトウェアパッケージのインストール又は実行を休止し、依存ソフトウェアパッケージを構成し、第1ソフトウェアパッケージのインストール又は実行を継続する。依存関係を検出するステップは依存関係について1又は2以上のリポジトリに照会する。さらに、依存関係を検出するステップはテンプレートマッチング又はマッチング構成情報について1又は2以上のリポジトリに照会するルールの使用を含んでいる。依存関係を検出するステップは、ターゲットマシン上のソフトウェアオペレーションの実行を含み、その結果の失敗はリポジトリに照会する必要性を示す。依存ソフトウェアパッケージの構成を示す情報は、ターゲットマシンの事前構成スナップショットに追加される。

Description

関連出願との相互参照
本出願は、2004年7月21日出願の米国仮特許出願第60/589,614号に基づき優先権主張するものであり、その内容は引用により本明細書に含まれるものである。
本発明は、ソフトウェアアプリケーションリポジトリ(Software Application Repository)内のアプリケーションメタ情報の抽出と作成のためのシステムおよび方法に関する。
現行技術のシステムでは、アプリケーションは個別単位または「パッケージ」として扱われているのが代表的である。多くのアプリケーション環境においては、群居(sociability)問題に起因するシステム全体の障害を防止するためにアプリケーションを隔離することが望まれている。異種エンドユーザ人口またはネットワーク全体にわたってアプリケーションを管理することが誘因となって、この問題を解決するさまざまな多くの試みが行なわれている。
特許文献1の教示事項は引用により本明細書に含まれるものである。
米国特許第60/598,234号、発明の名称「コンテキストポリシ制御を通してアプリケーション相互間の関連を制御するシステムおよび方法(System and Method for Controlling Inter-Application Association through Contextual Policy Control)」
本発明は、構成とバージョン管理の自動化のためにすべてのソフトウェアシステムを1または2以上のリポジトリ(repositories)集合内に統合する方法を提供することを課題にしている。
本発明の一側面によれば、ターゲットマシン上の依存ソフトウェアパッケージ(dependent software package)の検出と使用を自動化する方法は、第1ソフトウェアパッケージのインストールまたは実行期間に、依存関係(dependency)を検出し、ソフトウェアパッケージのインストールまたは実行を休止し、依存ソフトウェアパッケージを構成し、第1ソフトウェアパッケージのインストールまたは実行を継続することを含んでいる。依存関係を検出するステップは、依存関係について1または2以上のリポジトリに照会(クエリ)するステップを含んでいる。さらに、依存関係を検出するステップは、テンプレートマッチング(template matching)またはマッチング構成情報について1または2以上のリポジトリに照会するためのルールの使用を含んでいる。依存関係を検出するステップは、ターゲットマシン上のソフトウェアオペレーションの実行を含み、その結果の障害は、リポジトリに照会する必要性があることを示している。また、依存関係を検出するステップは、第1ソフトウェアパッケージの構成に含まれる資産の集合をサーチすることを含んでいる。ターゲットマシン上の依存ソフトウェアパッケージを構成するステップは依存ソフトウェアパッケージをインストールすることを含んでいる。依存ソフトウェアパッケージの構成を示す情報は、ターゲットマシンの事前構成スナップショット(preconfiguration snapshot)に追加される。ターゲットマシン上の依存ソフトウェアパッケージを構成するステップはシミュレーションまたはバーチャルインストール(virtual installation)によって行なわれる。このステップは、第1ソフトウェアパッケージの構成と依存関係の1または2以上のリポジトリを更新することを含んでいる。この方法は、さらに、第1ソフトウェアパッケージの構成と依存関係の1または2以上のリポジトリを更新することを含んでいる。
本発明の別の側面によれば、ターゲットマシン上の依存ソフトウェアパッケージの検出と使用を自動化する方法は、1または2以上の他の依存ソフトウェアパッケージとの依存関係の通知を得るために第1ソフトウェアパッケージのインストール資産の集合をサーチし、依存ソフトウェアパッケージを構成することを含んでいる。サーチするステップは、インストール資産内に収められた情報のパターンマッチング(pattern matching)を含んでいる。このステップはコード分析方法の使用を含んでいる。
本発明のさらに別の側面では、ソフトウェアパッケージ資産ストア(software package asset store)、メタデータストア(metadata store)、および統合エンジン(integration engine)を含むソフトウェアリポジトリ(software repository)を作成するシステムが提供されている。このシステムは、さらに、パッケージ資産ストア、メタデータストアの内容およびそこに含まれる依存関係について照会するためのルールまたはテンプレーティングエンジン(templating engine)を含んでいる。リポジトリのクライアントは、ソフトウェアパッケージ資産および/または依存パッケージの存在について直接に照会(クエリ)することができる。リポジトリは相互に対して遠隔操作される2または3以上のリポジトリを含んでいる。このシステムによれば、一方のリポジトリは他方のリポジトリシステムのクライアントと同じ場所に置かれている。
本発明の上記および他の特徴と利点の理解を容易にするために、以下では、添付図面に図示の本発明の実施形態について詳しく説明する。
ソフトウェアの実行またはインストール期間に、新しいソフトウェアシステムがソフトウェアの他の部分からの支援を要求したり、構成アイテム(configuration item)に特定の設定値をもたせたりすることが非常によく行なわれている。インストールまたは実行中のソフトウェアがこのような要求を行なったり、他のソフトウェアに依存したりすることを、以下では依存関係(dependencies)と呼ぶことにする。多くの種々のシステムは、インストールと構成のタスクの自動化を支援するように構築されている。
最も普通のことは、別のシステムを使用するか、あるいはなんらかの形で別のシステムに依存するプログラムが、インストール時または実行時のいずれかにその別プログラムの所在を見つける能力を必要としていることである。正しくインストールできるが、依存ソフトウェアの存在を必要としないシステムは、疎結合(loosely coupled)と呼ぶことができる。そのようなシステムは、他のソフトウェアシステムなしでも存在するのに十分に独立している。自身を構成するために他のプログラムまたは構成を必要とするソフトウェアは密結合(tightly coupled)と呼ばれる。
メールマージ(mail merge)の作成またはOutlookカレンダの使用といった自身の機能のためにMicrosoft Officeを使用する密結合プログラムは、自身を正しくインストールするためにはOfficeのインストールを見つける能力が要求されることになる。この事情の下では、シナリオとして次のいくつかがある。第一に、プログラムをOfficeから切り離して構成するが、その機能はそのまま残しておくのが代表的である。第二に、依存ソフトウェアプログラムをインストールする前にOfficeをインストールしておく必要があるのが通常である。最後に、Officeプログラムは多数のバージョンが存在できるが、インストール期間に選択されるのは1つだけである。
アプリケーションをパッケージ化し、配布するプロセスは比較的単純な作業であるのが代表的である。しかし、アプリケーションとデータが何らかの形で相互に依存していると、問題は複雑化する。これらの依存関係を表現し、解決すると、使用可能なシステムと単純作業にのみ適しているシステムを区別することが可能になる。本発明の目標は複雑な統合化作業を容易にし、自動化することである。
図1は、複数のネットワークにわたってアクセス可能な多数のソフトウェアリポジトリを示す概念図である。ソフトウェアリポジトリ10は、本発明の実施形態に関連するメータデータ(metadata)と共に、1または2以上の構成情報データベースとソフトウェア資産(software assets)で構成されている。ソフトウェアシステムのインストール、構成または使用期間には、リポジトリのコピーをインストールマシン(installation machine)34で使用することも、リモートのリポジトリに照会することもできる。
ソフトウェアパッケージは、インストールされる1または2以上のファイル、実行可能プログラム、データファイルまたは他の構成エレメントで構成できるのが代表的である。リポジトリ内にソフトウェアパッケージをストアするときの形体は、その使用時の形体と異なることもあれば、そうでないこともある。ソフトウェアパッケージをインストールするために必要な資産はそのインストール資産である。この資産には、ソフトウェアパッケージのインストールを支援することを目的としたインストールプログラムに加えて、上述したパッケージエレメントが含まれているのが代表的である。ソフトウェアパッケージはインストールされると、これはその構成に含まれる資産、すなわち、ソフトウェアパッケージのうちそのソフトウェアパッケージを操作するために使用され、インストールプログラムによって構成される部分で表されることになる。
リポジトリは、リポジトリが組織内でどのような使い方をされるかを示すためにグループまたは階層構造で編成することができる。当然に理解されるように、これらのデータベースは、データベース、XLMベースのデータファイル、構造化ファイルシステム、あるいは必須情報をストアできる手段の使用を通して、多くの態様に構築し、正しく照会され、更新されるようにすることができる。
組織が1または2以上の部門、パッケージングまたはテスティンググループをソフトウェアリポジトリ28と共にもつことは非常に普通であり、さらに第2のリポジトリがユーザアクセプタンステスティング(User Acceptance Testing UAT)30のために存在することができ、最後に第3のリポジトリ32がソフトウェア資産のライブで本稼動の使用においてユーザとシステムのために存在している。
図1は、これらのリポジトリと同一会社内26の他のリポジトリまたは他の会社18およびサービスプロバイダ14との単純な関係も示している。各々のケースにおいて、ソフトウェアリポジトリは相互から情報と資産を引き出すことができると共に、資産をターゲットマシン34に提供することもできる。
ユーザがソフトウェアアプリケーションまたは資産にアクセスする必要があるときは、これはこのリポジトリ本体から引き出すことができる。通常の環境では、アプリケーションは開発リポジトリ(Development Repository)内でパッケージ化され、エンドユーザのシミュレートされたテスティングのためにUATリポジトリにプロモートされている。テスティングに失敗すると、パッケージは修正のために開発リポジトリに戻される。そうでなければ、アプリケーションパッケージはオペレーションチーム(operations team)に転送され、そこでこのパッケージはエンドユーザによる直接の使用に備えて本稼動リポジトリ(Production Repository)に置かれる。なお、多くの会社または部門はこの経路をたどっていくリソースをもっていないので、しばしば、これらのリポジトリの一部または全部がもっと少ないシステムに縮小され、すべての機能のための1つのリポジトリに縮小されることさえある。
システムの代表的な実施形態では、ユーザは利用可能リポジトリのすべてのサブセットであるリポジトリ36を独自にもっていると考えることができる。このパーソナルリポジトリ内には、ユーザが現在使用中であるか、依存している資産が収められている。
リポジトリの内容は、上述したように、構成情報とメタデータ本体を含むソフトウェア資産を組み合わせたものである。代表的なリポジトリでは、そこに収められる資産のタイプは多様であり、その中には、ソースコード、オブジェクトファイル、実行可能ファイル(executables)、COMまたはJava(登録商標)オブジェクトなどのオブジェクト、スクリプト、関連データファイル、外部データファイルやソースへのポインタまたは参照、あるいは他の形体のスタブやプロキシオブジェクトが含まれている。一般的に、リポジトリはソフトウェア開発者のために存在しており、そこには、ソースコードなどのオリジナルエンジニアリングアーティファクト(original engineering artifact)が収められているのに対し、上記に列挙したリポジトリは実行可能コードやDLLなどの本稼動オブジェクトなどを収めている。このエンジニアリングリポジトリは開発リポジトリ、UATリポジトリまたは本稼動リポジトリに直接に与えることも、上述したように使用されるインストールプログラムを生成することもできる。
リポジトリ内に収められたメタデータはいくつかの目的に使用される。これは、編成、インデックス付けのために使用されるほかに、そこに収められているマテリアルに構造を与えるために使用される。また、そこにストアされた資産間の関連付けや依存関係を与えるためにも使用できる。一般的に、メタデータはインストールタスクを実行するための、サポートされたプラットフォームやスクリプトに関する情報といったように、配置プロセスを支援するためにも用意される。このようなリポジトリの例としては、MSIまたはMicrosoft Installer アプリケーションに関する情報を収めておくために使用されるMicrosoft Orcaデータベースがある。さらに、この情報を1または2以上のデータベースにストアしている他の会社やテクノロジが存在している。メタデータモデルの例としては、DMTF CIMメタモデルがある。しかし、これらのリポジトリは、シングルマシンに限定されているか、専らプログラム資産のためのストレージリポジトリであるのが代表的である。
基本的リポジトリの機能は、これらのソフトウェアオブジェクトと関連メタデータをストアすること、およびリポジトリに対してオペレーションを行なう機能を提供することである。そのようなオペレーションとしては、リポジトリ内の資産を追加、削除および編集するメソッド、リポジトリの内容を照会(クエリ)するメソッド、バージョンを管理するメソッド、リポジトリのメタデータを取り扱うメソッドがあるが、これらに限定されない。そのほかに、資産転送、パブリッシュ・サブスクライブ(publish-subscribe)機能、リポジトリ相互間の照会といったもののリポジトリ相互間の通信と制御のための機能クラスがある。
本発明のリポジトリでは、分散照会(distributed querying)およびルール/テンプレート処理のための機能群もある。分散照会の目的は、シングルマスタリポジトリまたはインデックスを必要とすることなくワークフローとマルチリポジトリアクセスの両方をサポートすることである。テンプレートエンジン(template engine)によると、内容自体のテキストの上位のセマンティック層に置かれたメタデータを照会することができる。
パブリッシングプロセス(Publishing Process)
ソフトウェアがエンドユーザに届く前に、ソフトウェアは設計、構築、テストおよび配置のサイクルでいくつかの変形を受けることになる。このプロセスには多数の変形がある。この分野の精通者ならば理解されるように、多くの会社はこの経路を達成するために異なるプロセスを使用している。さらに、このサイクルは、ソフトウェアがエンドユーザに公表または利用可能にされる前に1または2以上のサードパーティによって行なうことができる。
しかし、最も一般的なことは、ソフトウェアが2通りの方法で作成されることである。ソフトウェアは、サードパーティまたはサードパーティ集団によって作成され、なんらかの方法でエンドユーザまたは企業エンティティに配布されている。このケースでは、ソフトウェアシステムは、インストールプログラム内で配布され、ソフトウェアの保全性(integrity)およびソフトウェアがカストマサイトで正しく実装されることを保証し、その実装をエンドユーザのために容易化する設計になっている。これとは別に、多くのソフトウェアプログラムは会社や家庭の個人によって作成され、その会社の社員だけによって使用されることが多い。この形体のソフトウェアでは、システムは、インストールプログラムなしでそのオリジナル形体で配布されるのが普通である。この分野の精通者ならば理解されるように、どちらの場合も、ソフトウェアは、開発時とは同じでないことがよくあるデスティネーションマシンまたはネットワーク上で動作するように、なんらかの形で構成されていなければならない。
構成またはインストールプロセスは、インストールを行なう会社の性格と構成に応じていくつかのステップで行なわれている。多数のユーザがいて、1または2以上のリポジトリを所有する大きな会社では、ソフトウェアアプリケーションは、その会社内で複製可能な構成内に事前パッケージ化されるためにオフサインでテストマシン上にインストールされている。この事前パッケージ化では、会社のネットワークまたはプロセスの最も一般的なシナリオまたは詳細を反映するように目標設定値(target setting)が構成されている。これらの設定値が構成されたあと、情報は開発リポジトリまたはテスティングリポジトリ内にストアされ、エンドユーザによるテスティングに備えてスケジュールすることができる。シングルユーザの場合は、インストールはユーザのホストマシン上に直接に行なわれ、独自のパーソナルリポジトリに入れられる。また、当然に理解されるように、ホスト側会社またはサードパーティのサービスプロバイダはアプリケーションを同じように事前構成するが、カストマ層全体に広く適用可能な設定値を使用することを試みている。
この分野には、アプリケーションをパッケージ化し、配布するためのシステムが多数存在している。これらのプロダクトの詳細説明は既存ドキュメントで行なわれている。これらのシステムの基本的目標は、構成プロセスを実行するプロセスを多くのユーザのために単純化し、構成とインストールを正しく行なう成功率を高めることである。パッケージ化には3つの基本形体が存在するが、この分野の精通者ならば理解されるように、他にも多数の形体を本発明に取り入れることが可能である。
最も単純形体のパッケージ化は、上述したように、会社の内部で使用されるのが普通で、プログラムの資産を一方のマシンから他方のマシンにコピーするだけのものであった。他にもいくつかの構成が存在するが、その構成は別ステップで行なわれ、これは手作業で行なわれるか、スクリプトに従って自動化されている。このケースでは、多くの場合、ソフトウェアが除去できること、またはエンドユーザ環境が正しく事前構成されていることを確かめるための配慮がなされていない。多くの場合、これらのタスクを調整するのはエンドユーザまたは何らかの管理者に任されている。
もっと大きなユーザ集団をサポートするために、会社は上述した方法を使用し、そこではアプリケーションは共通設定値で事前パッケージ化されている。このケースでは、テストマシンが使用される。標準のエレクトロニックソフトウェア配布(Electronic Software Distribution ESD)システムでは、代表的なインストールが行なわれる前にマシンの構成のスナップショットをとるテクノロジが使用されている。以下では、これを事前構成スナップショット(preconfiguration snapshot)と呼ぶことにする。インストール後は別のスナップショットがとられる。以下では、これを事後構成スナップショット(post-configuration snapshot)と呼ぶことにする。これらのスナップショット間の差は、会社のためにテンプレートインストールパッケージ(template installation package)を作成するために使用される。
類似のパッケージまたは「バーチャルインストール(virtual installation)」のために使用されるパッケージを作成するためにインストールをダイナミックに記録することを可能にする最新システムが使用されている。これらのケースでは、ソフトウェア資産を表すために、もっと大きなおよび/または異なるメタデータ本体がパッケージとリポジトリ内に作成されることがよくある。
前述したように、このプロセスは、アプリケーションとデータがなんらかの形で相互に依存していると複雑化している。これらの依存関係を解決するためには、完全自動化システムに依存関係を検出させ、依存関係をメタデータ内に正しく構成させ、以後のインスール期間に依存関係に合致していることを確かめさせ、そのライフサイクルを追跡させる必要がある。
依存関係検出(Dependency Detection)
ソフトウェアパッケージがインストールされる時点では、エンドユーザマシン側においても、テスト環境におけるパッケージ化マシン側においても、インストールプログラムまたはコピーイングプロセスは、プログラムの資産、構成およびリソースをセットアップするためにターゲットマシン上で多数のオペレーションを実行している。これらのオペレーションがどのように記録されるかに関係なく、密結合プログラムはインストール期間にこれらの依存関係を示すのに対し、疎結合プログラムは示さない。
密結合プログラムの場合には、インストールプログラムは、それが依存するプログラムがデスティネーションマシンまたはネットワーク上に構成されていないと失敗する。この依存関係について知るのは、あるいはインストールプログラムの失敗に応答するのは、エンドユーザまたはパッケージ化オペレータに任されているのが通常である。プログラムが特定バージョンのデータベースドライバを必要とするときは、プログラムはそのドライバを探し出すか、インストール期間にそのドライバを使用または構成することを試みている。これらの依存関係は、インストールの失敗回数を削減し、これらの問題に起因する問題をサポートするためにソフトウェアメーカによって記述されることがよくある。
本発明のシステムは、依存関係を実行時(on-the-fly)に検出することによってこの問題を単純化し、自動化している。インストーラ(installer)によって使用される共通オペレーションは、ダイナミック記録システムに類似の手法を使用してフック(hook)またはトラップ(trap)されるので、これらのオペレーションは発生時に見ることができる。本発明の一実施形態では、クライアントエージェントプロセスはターゲットマシン上で実行され、これらのフックを受け持っている。オペレーションとしては、Windows(登録商標) レジストリキー、システムファイルまたは他のファイルシステム要求、COMオブジェクト作成/照会/削除、UNIX(登録商標) rpmまたはパッケージオペレーション、Microsoft MSIコマンドなどのように、デスティネーションマシンのリソースに対するアクセス、変更または他の要求がある。
あるオペレーションがトラップされると、本発明のシステムは、図2に示すようにステップ82でそのオペレーションを調べる。そのオペレーションがステップ84で現行パッケージに一致していると、ステップ86でオペレーションを通常通りに完了させるだけである。好適実施形態では、ファイルまたはサブディレクトリ作成といったオペレーションがそのプログラムに固有のデスティネーションマシン内にあるか、システム共通ロケーションにあるか、あるいは別のプログラムを表すロケーションにあるかが、この一致テストでチェックされる。上記とは別に、ステップ86によるオペレーションが正しく完了しなければ(ステップ90)、そのオペレーションをチェインに再挿入して、それが現行パッケージの一部でないものとして処理させることができる。
次に、オペレーションはステップ92でリポジトリまたはそのリポジトリ内のテンプレートと比較される。この分野の精通者ならば理解されるように、これは順番に行なうことも、同時に行なうこともできる。一実施形態では、そのパラメータとコンテキストを含むオペレーションはそのオペレーションのターゲットを特定するためにテンプレート群と比較される。本発明のシステムでは、ルールエンジンはオペレーションとリポジトリメタデータ内のテンプレートとの比較を行なうために使用される。このテンプレートオペレーションは単純にデスティネーションマシン上で行なうことも、アクセス可能リポジトリ内に存在するテンプレートと関連付けて行なうこともできる。
上に示した例では、プログラムはそのタスクの一部を実行するためにMicrosoft Officeを使用することができる。自身を構成するためには、プログラムはOfficeの存在について照会することも、Officeを直接に構成することを試みることも、Officeと統合するためにプログラム自体の中にリンクを作成することもできる。例示のプログラムは、Windows(登録商標) レジストリキーのHKLM\Software\Microsoft\Officeの存在について照会するプログラムである。このキーが存在していれば、プログラムはこのアイテムのサブキーを列挙することによってどのバージョンが利用可能であるかについてさらに照会することが可能になる。
テンプレーティングシステムを使用すると、このキーまたはそのサブキーのいずれかの照会がOfficeとの依存関係を示すことを表すメタデータを作成して、リポジトリ内にストアすることができる。テンプレート例は図3に示されている。図に示すように、好適実施形態のシステムはXMLベースの構成フォーマットを使用し、regexとXPathスタイルの照会構文を可能にしている。多くの他のタイプのテンプレートとルールフォーマットをシステム内で同じように効果的に使用することができる。
また、図示に示すように、マッチングテンプレートはマルチステージプロセスにすることができる。上に示したレジストリキーについて照会すると、Officeとの一般的依存関係が示されることになる。バージョン別の依存関係(version specific dependency)は示されない。さらに依存関係の指定を容易にする、いくつかの関連または複合テンプレート(compound template)が存在することができる。プログラムがOfficeサブキーについてさらに照会しなければ、一般的Officeソフトウェア資産との依存関係を作成することができる。このことは、Officeのどのバージョンもターゲットマシンで使用できることを示している。そのあと、Office\10.0サブキーについて照会すれば、依存関係はOffice XPバージョンに限定することができる。
さらに、部分的にマッチングされるテンプレートの中には、別のテンプレートが構成を完了するためにマッチングされなければ、依存関係を作成しないものがいくつかある。MSVCRT.DLLのシステム共通ロケーションをプログラムにサーチさせると、そのコンポーネントとの依存関係を推定することができる。しかし、プログラムがこのオブジェクトのコピーを自身のディレクトリ構造内にインストールする場合は、依存関係はプログラム内部に存在し、外部依存関係は存在しないか、さもなければ、その特定バージョンのコンポーネントとの依存関係を作成することができる。従って、テンプレーティングシステムを使用すると、部分的マッチング(partial matching)と遅延完了(delayed completion)手法が可能になる。大部分の最新ルールエンジンと他のロジックプログラムは、この機能を容易に備えることができる。
代替実施形態では、リポジトリのデータとメタデータは直接的に照会することができる。Microsoft Officeの場合の上に示したサーチ例では、1または2以上のパッケージにこのWindows(登録商標) レジストリキーを構成アイテムとして含めておくことができる。このサーチ手法によると、このエレメントを探すためにこのパッケージの内容を直接に照会することができる。従って、インストールプログラムがこの構成アイテムを探し出す場合は、これはデスティネーションマシン上には見つからないが、リポジトリ内の1または2以上のパッケージ内に見つかることになる。
さらに、テンプレートによるとオペレーションに対する解決が得られないときは、1または2以上のリポジトリに照会してオペレーションが満足されるように両方の実施形態を結合することができる。この例を単純化するために、ここでは上記と同じ例を使用し、Officeアプリケーション用のテンプレートはないが、1または2以上のバージョンのOfficeがソフトウェアリポジトリに存在するものと想定している。レジストリキーを照会したとき、テンプレートオペレーションは失敗に終わることになる。この時点でローカルまたは分散照会を行なうと、この照会の結果を探し出すことができる。
例示のサーチでは、レジストリキーHKLM\Software\Microsoft\Officeは、照会オペレーションとして各々の利用可能リポジトリに送られる。テストパッケージング環境内にあれば、システムは他の開発リポジトリだけを照会するように構成することができる。ライブ環境内にあれば、エンドユーザマシンはすべての本稼動リポジトリおよび構成に含まれるサードパーティまたは外部プロバイダに照会するはずである。リポジトリは照会を受け取り、このキーが利用可能パッケージのいずれか内に存在するかのサーチを内部で実行する。
サーチの結果を受け取ると、システムは依存関係を結果に見合うように構成する。応答が否定であれば、オペレーションは失敗するだけであり、インストーラはその失敗を処理する必要がある。多くのオペレーションは失敗するように設計されているか、失敗は幸先のよいケースのどちらかであるので、このことは非常に普通のことである。一例として、Microsoft VisioはMicrosoft Officeから独立して動作できるが、Officeが存在すれば自身を異なった構成にする。Officeがどのリポジトリにも存在しなければ、Visioは自身の構成を続けるだけである。追加のステップとして、本発明のシステムは、デスティネーションマシン上のオペレーションを正しくシミュレートし、正しいエラーコードを戻す手段として、ステップ96によるオペレーションをローカルシステム上で実行することができる。
2つ以上の応答が続く場合は、システムは、下述するようにシステムの管理ポリシによって設定されたルールに基づいてあるいはユーザに従って、オプションとして依存関係をステップ98に従って構成する(ステップ100)。依存関係の構成には、依存関係または一致(match)の存在に関してメタデータをリポジトリにパブリッシュ(公表)するステップを含めることができる。管理者は、エンドユーザまたはパッケージが最寄りの近隣をもつようにリポジトリのプリファレンス(preference)または階層を設定したい場合がある。また、当然に理解されるように、リポジトリはパッケージを転送できるので、これらのプリファレンスに関してストアされた依存関係情報を転送期間に変更することができる。
依存関係が特定されると、本発明のシステムは応答することができる。依存パッケージまたは資産がリポジトリ内に収められていれば、システムは、オプションとして、インストールされるプログラムが正常にインストールされ、必要ならば依存プログラムと統合されるのを保証するように作用することができる(ステップ102)。好適実施形態のシステムは、バーチャルインストールテクノロジを使用してOfficeシステムの存在をシミュレートして(ステップ102)、Officeシステムをインストールし(ステップ108)、依存関係またはこれらの方法の組み合わせを拒否することができる。
第一メソッドでは、構成タスクを行なうユーザは、プログラムをMicrosoft Officeと統合したいことを、先験的にシステムに指示することになる。これは、システムのリポジトリ内の利用可能プログラムのメニューをユーザに提供し、統合しようとする1または2以上のプログラムをユーザに選択させることにより行なうことができる。この方法を使用すると、候補プログラムがインストールされる前に、Microsoft Officeのように、前提となるプログラムをセットアップし、デスティネーションマシンに追加することができる。このようにすると、スナップショットテクノロジを使用していれば、依存プログラムが事前構成スナップショットの一部になることが保証される。バーチャルインストールテクノロジを使用すると、Office用のバーチャル環境がインストール環境とは別のコンテキスト内に作成されることになる。インストーラが実行されるとき、インストーラはMicrosoft Officeインストーラを見ることができるが、インストーラが行なった変更はすべて新パッケージ内に保存される。また、2環境の依存関係とそのオペレーションに合ったコンテキストを可能にする方法を示すコンテキスト構成が自動的に作られる。
第二メソッドでは、システムは、インストールプログラムのオペレーションに応答してプログラムインスタンスの作成をダイナミックに管理することができる。従って、Microsoft Officeの存在についてプログラムに照会させると、システムはそのテンプレートベースまたは直接照会からその照会を認識し、Officeの存在を自動的に可能にするか、あるいはその統合を可能にするかどうかの指示を得るためにユーザに照会することができる。
自動的に応答するように指示または構成されていると、システムは依存パッケージのインストールを実行することができる(ステップ108)。最初に、システムは一次アプリケーション(primary application)のインストールを休止する。次に、スナップショットテクノロジを使用していれば、システムは依存パッケージをインストールする。個別にパッケージ化する必要があれば、システムはそのパッケージが事前構成スナップショットに追加されるようにする(ステップ106)。バーチャルインストールテクノロジを使用していれば、システムは依存パッケージをデスティネーションマシン内にダウンロードし、アクチベートする(ステップ110)。これは、現行パッケージの内部で行なうことも、単純に依存パッケージとして行なうこともできる。
失敗した場合には、現行インストールを中止して、システムから取り除くことができる。これにより、システムはその事前構成状態に戻される。そのあと、依存パッケージをインストールすることができ、インストールを再実行することができる。
以上のようにすると、インストールの依存関係を先験的に知らなくても、ソフトウェアアプリケーションをシステムにインストールすることができる。インストールの依存関係は、インストール時にリポジトリから簡単に取り出すことができる。システムが複数バージョンの類似プログラムまたはコンポーネントを管理している場合は、バージョン依存関係についてテストするメカニズムを備えることもできる。これは、ソフトウェアのバージョンごとにインストールを繰り返し、依存ソフトウェアのバージョンごとに作成されたソフトウェアパッケージをテストすることにより、あるいは最悪の場合には、他の情報がないときバージョン依存関係を作成することにより行なうことができる。この方法によると、システムに知らされたすべてのプログラムは統合化の候補になることができるので、統合化ポイントを広範にテストすることができるが、利用可能アプリケーションすべてをテストシステムにインストールしないで済むことになる。
疎結合システム(Loosely Coupled Systems)
上述したように、疎結合システムはインストール時に依存関係を示さないのが代表的である。これらのシステムが統合化できるようにするために、インストール時にも、実行時にもいくつかの手法が利用可能になっている。
ソフトウェアパッケージのインストール期間には、システムは疎結合システムのどのオペレーションにも注目しないのが通常である。インストールの終了時に、システムはこの統合化の指示を探すためにパッケージの内容をスキャンすることができる。ストリングや他のバイナリデータなどのリソースが、依存アイテムを表しているプログラムの資産やデータ内に存在することがよくある。一例として、プログラムが名前付きパイプ(named pipe)を通して別のプログラムと通信する場合は、名前付きパイプのオペレーティングシステム機能との依存関係がプログラムの実行可能コード中に存在することがあり、パイプの名前を表すストリング\\PIPE\ExamplePipeがデータまたは実行可能コードの中のどこかに存在する可能性が高いことがある。
多くの疎結合システムは、実行時のバインディングを見つけるためにJNIまたはUDDIなどの中央リポジトリを使用している。これらのバインディングは、必要ならば先験的に検出し、システムの中に構成することができる。この場合も、システムは、その構成に含まれるコードライブラリからUDDIを使用することは分かっており、そのターゲットの命名コンテキストを特定するためにリソースをサーチすることが可能になっている。
他のシステムはコードをダイナミックにロードするために実行時バインディング(late binding)を使用している。Windows(登録商標) LoadLibraryなどのシステムコールは、実行時までコードとの依存関係を延期することができる。これらのコールは特定することができ、システムは、スタティックまたはダイナミックコード分析または他の方法を通して、依存するもののストリングと他のインジケータを探し出す。
別の方法として、疎結合プログラムの依存関係は実行時に検出することができる。一部のシステムでは、プログラムをパッケージ化期間に実行させることが可能であり、あるいはそのことが要件になっている。UATを実行する実装には、実行時コンテキストがあり、これはライブではなく、事後インストールになっている。その他の場合は、依存関係の特定はエンドユーザシステムで行なうことができる。
実行時またはUATの期間、プログラムが別のプログラムにバインドしている場合は、依存関係はプログラムが動作している期間に特定し、作成することができる。管理者は、実行時の期間にエンドユーザマシンでの依存関係の作成を禁止し、パッケージ化またはUATの期間にだけ依存関係を許容することを選択することもできる。
これらの依存関係は、上に列挙したものを含めて多くの形体をとることができる。RPC、ソケット、パイプ、COM/DCOM、およびその他のシステムを通した通常の相互通信は検出されるだけである。他のシステムは、相互のファイル、データまたは他の資産の変更を通して相互通信している。インストール期間の検出に関して上に示したのと同じように、システムはテンプレートおよびリポジトリとそのメタデータを照会する他の形体を使用して、これらの統合を特定することができる。
開発と管理(Development and Administration)
開発リポジトリに供給し、あるいは開発リポジトリから供給されるエンジニアリング情報のリポジトリがシステム内に存在することもある。自分のソフトウェアが構築される手段を開発者が宣言し、メタデータがエンジニアリングリポジトリに公表されることおよび/またはインストールプログラムの中に入れられることを可能にすることは、普通の慣行になりつつある。類似の機能は、プログラムの依存関係、オーサリング(author)バージョンの依存関係または非依存関係(independencies)をテストし、さもなければソフトウェアコンポーネントの種々の統合をテストするために開発期間に使用することができる。
例えば、あるプログラムがMicrosoft Officeと統合し、そのMail Merge機能を使用するように構築されていれば、そのプログラムは、リポジトリ内に存在するときのOfficeの1または2以上のバージョンと突合せテストすることができる。開発者は、どのプログラムをインストールするか、あるいはテストのためにシミュレートするかを選択するだけで済ますことができる。このテストから、メタデータ作成は自動的に作成し、ソフトウェアリポジトリに移植(populate)することができる。
好適実施形態では開発時と管理の両方のために、メタデータを作成してリポジトリに移植し、テンプレーティングエンジンのためのテンプレートを作成することを可能にするツールが用意されている。これらのルールを使用すると、ソフトウェア開発者は、インストール時の期間に他のプログラムをどのようにこのプログラムと統合させるか、さもなければ、そのプログラムをどのように見つけさせるかの妥当なメソッドを宣言するプログラムを構築することができる。さらに、開発者は、インストールプログラムによって外部で構成可能なアイテムを変更するためのテンプレートを用意することができる。
本発明の原理が適用できる実施形態は広範囲にわたっていることに鑑みて、当然に理解されるように、図示の実施形態は単なる例示であり、本発明の範囲を限定するものではない。例えば、フロー図のステップは上述したものとは別の順序にすることが可能であり、図中に使用されているエレメントは多くすることも、少なくすることも可能である。実施形態の種々エレメントはソフトウェアで実現化されるものと説明されているが、ハードウエアまたはファームウェアで実現した他の実施形態を上記に代えて使用することも、その逆にすることも可能である。
この分野の通常の知識を有する者に自明であるように、アプリケーションメタデータ情報をソフトウェアアプリケーションリポジトリ内に作成するシステムおよび方法に関与するメソッドは、コンピュータ使用可能媒体を含むコンピュータプログラムプロダクトで具現化することが可能である。例えば、このようなコンピュータ使用可能媒体としては、ハードドライブデバイス、CD−ROM、DVD−ROM、またはコンピュータディスケットのように、コンピュータ読取り可能プログラムセグメントコードがそこに格納されている読取り可能メモリデバイスがある。コンピュータ読取り可能媒体としては、さらに、光、ワイヤド(有線)またはワイヤレス(無線)のいずれかのバスまたは通信リンクのように、プログラムコードセグメントがデジタルまたはアナログデータ信号としてそこで搬送される通信または伝送媒体がある。
その他の側面、変更および実施形態は請求項に記載の本発明の範囲に属するものである。
複数のネットワークにわたってアクセス可能な多数のソフトウェアリポジトリを示す概念図である。 構成の依存関係を検出し、それに応答するために本発明の実施形態によって使用されるプロセスを示すフローチャートである。 本発明に実施形態によるソフトウェアリポジトリのルールエンジンによって使用されるルール例を示す図である。

Claims (19)

  1. ターゲットマシン上の依存ソフトウェアパッケージの検出と使用を自動化する方法であって、該方法は、
    第1ソフトウェアパッケージのインストールまたは実行期間に、依存関係を検出し、
    ソフトウェアパッケージのインストールまたは実行を休止し、
    依存ソフトウェアパッケージを構成し、
    第1ソフトウェアパッケージのインストールまたは実行を継続する、
    ことを含むことを特徴とする方法。
  2. 請求項1に記載の方法において、依存関係を検出するステップは、依存関係について1または2以上のリポジトリに照会するステップを含むことを特徴とする方法。
  3. 請求項2に記載の方法において、依存関係を検出するステップは、テンプレートマッチングのためのルールの使用を含むことを特徴とする方法。
  4. 請求項2に記載の方法において、依存関係を検出するステップは、マッチングする構成情報について1または2以上のリポジトリへの照会を含むことを特徴とする方法。
  5. 請求項1に記載の方法において、依存関係を検出するステップは、ターゲットマシン上のソフトウェアオペレーションの実行を含み、その結果の失敗はリポジトリに照会する必要性を示していることを特徴とする方法。
  6. 請求項1に記載の方法において、依存関係を検出するステップは、第1ソフトウェアパッケージの構成に含まれる資産セットをサーチすることを含むことを特徴とする方法。
  7. 請求項1に記載の方法において、ターゲットマシン上の依存ソフトウェアパッケージを構成するステップは、依存ソフトウェアパッケージのインストールを含むことを特徴とする方法。
  8. 請求項1に記載の方法において、依存ソフトウェアパッケージの構成を示す情報は、ターゲットマシンの事前構成スナップショットに追加されることを特徴とする方法。
  9. 請求項1に記載の方法において、ターゲットマシン上の依存ソフトウェアパッケージを構成するステップは、シミュレーションまたはバーチャルインストールによって実行されることを特徴とする方法。
  10. 請求項1に記載の方法において、依存ソフトウェアパッケージを構成するステップは、第1ソフトウェアパッケージの構成と依存関係の1または2以上のリポジトリを更新することを含むことを特徴とする方法。
  11. 請求項1に記載の方法において、さらに、第1ソフトウェアパッケージの構成と依存関係の1または2以上のリポジトリを更新することを含むことを特徴とする方法。
  12. ターゲットマシン上の依存ソフトウェアパッケージの検出と使用を自動化する方法であって、該方法は、
    1または2以上の他の依存ソフトウェアパッケージとの依存関係の通知を得るために第1ソフトウェアパッケージのインストール資産セットをサーチし、
    依存ソフトウェアパッケージを構成する、
    ことを含むことを特徴とする方法。
  13. 請求項12に記載の方法において、サーチするステップは、インストール資産内に収められた情報のパターンマッチングを行なうことを含むことを特徴とする方法。
  14. 請求項12に記載の方法において、サーチするステップは、コード分析方法を使用することを含むことを特徴とする方法。
  15. ソフトウェアリポジトリを作成するシステムであって、
    ソフトウェアパッケージ資産ストアと、
    メタデータストアと、
    統合エンジンと、
    を含むことを特徴とするシステム。
  16. 請求項15に記載のシステムにおいて、さらに、パッケージ資産ストアとメタデータストアの内容、および前記ストアに含まれる依存関係について照会するためのルールまたはテンプレーティングエンジンを含むことを特徴とするシステム。
  17. 請求項15に記載のシステムにおいて、リポジトリのクライアントは、ソフトウェアパッケージ資産および/または依存パッケージの存在について直接に照会できることを特徴とするシステム。
  18. 請求項15に記載のシステムにおいて、リポジトリは、相互に対して遠隔に操作される2または3以上のリポジトリを含むことを特徴とするシステム。
  19. 請求項18に記載のシステムにおいて、一方のリポジトリは他方のリポジトリシステムのクライアントと同じ場所に置かれていることを特徴とするシステム。
JP2007522813A 2004-07-21 2005-07-21 ソフトウェアアプリケーションリポジトリ内のアプリケーションメタ情報の抽出と作成のためのシステムおよび方法 Pending JP2008507775A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US58961404P 2004-07-21 2004-07-21
PCT/US2005/026080 WO2006012533A2 (en) 2004-07-21 2005-07-21 System and method for extraction and creation of application meta-information within a software application repository

Publications (1)

Publication Number Publication Date
JP2008507775A true JP2008507775A (ja) 2008-03-13

Family

ID=35427564

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007522813A Pending JP2008507775A (ja) 2004-07-21 2005-07-21 ソフトウェアアプリケーションリポジトリ内のアプリケーションメタ情報の抽出と作成のためのシステムおよび方法

Country Status (6)

Country Link
US (1) US20060020937A1 (ja)
EP (1) EP1771785A2 (ja)
JP (1) JP2008507775A (ja)
KR (1) KR20070049166A (ja)
CN (1) CN101027639A (ja)
WO (1) WO2006012533A2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012064022A (ja) * 2010-09-16 2012-03-29 Ricoh Co Ltd インストールプログラム、インストール方法、画像形成装置、及び記録媒体
JP2013149271A (ja) * 2013-03-29 2013-08-01 Ricoh Co Ltd 情報処理装置、プログラム導入支援システム、表示制御方法、表示制御プログラム、及びそのプログラムを記録した記録媒体
JP2014052935A (ja) * 2012-09-10 2014-03-20 Fujitsu Ltd 情報処理装置、検証方法およびプログラム
US9558326B2 (en) 2009-09-14 2017-01-31 Ricoh Company, Ltd. Information processing apparatus, program introduction assistance system and computer readable information recording medium

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060277433A1 (en) * 2000-05-19 2006-12-07 Self Repairing Computers, Inc. Computer having special purpose subsystems and cyber-terror and virus immunity and protection features
US7137034B2 (en) * 2000-05-19 2006-11-14 Vir2Us, Inc. Self repairing computer having user accessible switch for modifying bootable storage device configuration to initiate repair
US7111201B2 (en) * 2000-05-19 2006-09-19 Self Repairing Computers, Inc. Self repairing computer detecting need for repair and having switched protected storage
US7096381B2 (en) * 2001-05-21 2006-08-22 Self Repairing Computer, Inc. On-the-fly repair of a computer
US7392541B2 (en) * 2001-05-17 2008-06-24 Vir2Us, Inc. Computer system architecture and method providing operating-system independent virus-, hacker-, and cyber-terror-immune processing environments
US7849360B2 (en) * 2001-05-21 2010-12-07 Vir2Us, Inc. Computer system and method of controlling communication port to prevent computer contamination by virus or malicious code
US7536598B2 (en) * 2001-11-19 2009-05-19 Vir2Us, Inc. Computer system capable of supporting a plurality of independent computing environments
US7788699B2 (en) * 2002-03-06 2010-08-31 Vir2Us, Inc. Computer and method for safe usage of documents, email attachments and other content that may contain virus, spy-ware, or malicious code
EP1634175B1 (en) 2003-05-28 2015-06-24 Citrix Systems, Inc. Multilayer access control security system
US20060031819A1 (en) * 2004-08-06 2006-02-09 Microsoft Corporation Methods and apparatus for creating solutions
US7752600B2 (en) * 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US7853947B2 (en) * 2004-09-30 2010-12-14 Citrix Systems, Inc. System for virtualizing access to named system objects using rule action associated with request
US7711835B2 (en) * 2004-09-30 2010-05-04 Citrix Systems, Inc. Method and apparatus for reducing disclosure of proprietary data in a networked environment
US8095940B2 (en) * 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US8171479B2 (en) 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
US7748032B2 (en) * 2004-09-30 2010-06-29 Citrix Systems, Inc. Method and apparatus for associating tickets in a ticket hierarchy
US8613048B2 (en) * 2004-09-30 2013-12-17 Citrix Systems, Inc. Method and apparatus for providing authorized remote access to application sessions
US8117559B2 (en) * 2004-09-30 2012-02-14 Citrix Systems, Inc. Method and apparatus for virtualizing window information
US7680758B2 (en) * 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US8024568B2 (en) * 2005-01-28 2011-09-20 Citrix Systems, Inc. Method and system for verification of an endpoint security scan
US20060174243A1 (en) * 2005-01-31 2006-08-03 Gregory Brewer Application software installation prequalification system and method
US7953703B2 (en) * 2005-02-17 2011-05-31 International Business Machines Corporation Creation of highly available pseudo-clone standby servers for rapid failover provisioning
US9508077B2 (en) * 2005-07-29 2016-11-29 At&T Intellectual Property I, L.P. Podcasting having inserted content distinct from the podcast content
TWI275964B (en) * 2005-09-09 2007-03-11 Wistron Corp File system builder and method for building file system
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US20070083610A1 (en) * 2005-10-07 2007-04-12 Treder Terry N Method and a system for accessing a plurality of files comprising an application program
US7779034B2 (en) * 2005-10-07 2010-08-17 Citrix Systems, Inc. Method and system for accessing a remote file in a directory structure associated with an application program executing locally
US20070083620A1 (en) * 2005-10-07 2007-04-12 Pedersen Bradley J Methods for selecting between a predetermined number of execution methods for an application program
US20070106993A1 (en) * 2005-10-21 2007-05-10 Kenneth Largman Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US20070240134A1 (en) * 2006-02-28 2007-10-11 Joydeep Buragohain Software packaging model supporting multiple entity types
US8266616B1 (en) * 2006-05-11 2012-09-11 Hewlett-Packard Development Company, L.P. Computer system provisioning using templates
US20070277170A1 (en) * 2006-05-25 2007-11-29 International Business Machines Corporation Merger driven application installation
US7567984B1 (en) * 2006-08-31 2009-07-28 Symantec Operating Corporation Operating system and application deployment based on stored user state and organizational policy
US8533846B2 (en) 2006-11-08 2013-09-10 Citrix Systems, Inc. Method and system for dynamically associating access rights with a resource
US7685461B2 (en) * 2006-12-20 2010-03-23 International Business Machines Corporation Method, apparatus and program storage device for performing fault tolerant code upgrade on a fault tolerant system by determining when functional code reaches a desired state before resuming an upgrade
US7661018B2 (en) * 2006-12-21 2010-02-09 International Business Machines Corporation Method, apparatus and program storage device for providing automatic recovery from premature reboot of a system during a concurrent upgrade
US20080163199A1 (en) * 2006-12-30 2008-07-03 Rao Siddhartha Ashok Multi-product package creation and editing
US20080172276A1 (en) * 2007-01-12 2008-07-17 Burton Mary C Apparatus, system, and method for assessing information technology environment needs
WO2008092031A2 (en) 2007-01-24 2008-07-31 Vir2Us, Inc. Computer system architecture having isolated file system management for secure and reliable data processing
US8019794B2 (en) 2007-04-02 2011-09-13 Sharp Laboratories Of America, Inc. Firmware repository for MFP devices
US9264483B2 (en) 2007-07-18 2016-02-16 Hammond Development International, Inc. Method and system for enabling a communication device to remotely execute an application
US8122447B2 (en) * 2007-07-31 2012-02-21 Hewlett-Packard Development Company, L.P. Firmware installation
US20090070327A1 (en) * 2007-09-06 2009-03-12 Alexander Stephan Loeser Method for automatically generating regular expressions for relaxed matching of text patterns
US9003399B2 (en) * 2007-09-11 2015-04-07 International Business Machines Corporation Methods, systems and computer products for a dynamic repository
US8196136B2 (en) * 2007-09-28 2012-06-05 Microsoft Corporation Configuration and change management system with restore points
US20090094596A1 (en) * 2007-10-05 2009-04-09 Scense B.V. Systems and methods for an adaptive installation
US8171483B2 (en) * 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
US7792934B2 (en) * 2008-01-02 2010-09-07 Citrix Systems International Gmbh Loading of server-stored user profile data
US9063808B2 (en) * 2008-05-15 2015-06-23 International Business Machines Corporation Deploying a package for a software application
CN101334729B (zh) * 2008-08-07 2012-01-25 金蝶软件(中国)有限公司 软件包的处理方法及装置
GB2465784B (en) * 2008-11-28 2012-07-11 Vmware Inc Computer system and method for configuring an application program in a computer system
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
CN102147723A (zh) * 2010-02-05 2011-08-10 北京金山数字娱乐科技有限公司 软件包生成方法及系统
JP2011170638A (ja) 2010-02-18 2011-09-01 Ricoh Co Ltd プログラム管理システム、プログラム管理方法、クライアントおよびプログラム
US10514940B2 (en) 2010-03-17 2019-12-24 Microsoft Technology Licensing, Llc Virtual application package reconstruction
US8438532B2 (en) 2011-04-19 2013-05-07 Sonatype, Inc. Method and system for scoring a software artifact for a user
US8612936B2 (en) 2011-06-02 2013-12-17 Sonatype, Inc. System and method for recommending software artifacts
US9122551B2 (en) * 2011-06-17 2015-09-01 The Boeing Comapny Methods and systems for generating read-only operating systems
US20130007726A1 (en) * 2011-06-30 2013-01-03 Indrajit Poddar Virtual machine disk image installation
US8627270B2 (en) 2011-09-13 2014-01-07 Sonatype, Inc. Method and system for monitoring a software artifact
US8473894B2 (en) 2011-09-13 2013-06-25 Sonatype, Inc. Method and system for monitoring metadata related to software artifacts
US9141378B2 (en) 2011-09-15 2015-09-22 Sonatype, Inc. Method and system for evaluating a software artifact based on issue tracking and source control information
US9531588B2 (en) * 2011-12-16 2016-12-27 Microsoft Technology Licensing, Llc Discovery and mining of performance information of a device for anticipatorily sending updates to the device
US8656343B2 (en) 2012-02-09 2014-02-18 Sonatype, Inc. System and method of providing real-time updates related to in-use artifacts in a software development environment
US8825689B2 (en) 2012-05-21 2014-09-02 Sonatype, Inc. Method and system for matching unknown software component to known software component
US9110761B2 (en) 2012-06-27 2015-08-18 Microsoft Technology Licensing, Llc Resource data structures for firmware updates
US9235404B2 (en) 2012-06-27 2016-01-12 Microsoft Technology Licensing, Llc Firmware update system
US8972973B2 (en) 2012-06-27 2015-03-03 Microsoft Technology Licensing, Llc Firmware update discovery and distribution
US9141408B2 (en) 2012-07-20 2015-09-22 Sonatype, Inc. Method and system for correcting portion of software application
CN102902558B (zh) * 2012-09-11 2016-05-11 新浪网技术(中国)有限公司 项目脚本文件更新系统和方法、脚本文件合并方法和装置
US9135263B2 (en) 2013-01-18 2015-09-15 Sonatype, Inc. Method and system that routes requests for electronic files
US9032423B2 (en) * 2013-06-21 2015-05-12 Microsoft Technology Licensing, Llc Dependency based configuration package activation
US10026064B2 (en) * 2013-09-13 2018-07-17 Microsoft Technology Licensing, Llc Automatically recommending updates based on stored lifecycle information
US9830142B2 (en) 2013-09-13 2017-11-28 Microsoft Technology Licensing, Llc Automatic installation of selected updates in multiple environments
US9626176B2 (en) 2013-09-13 2017-04-18 Microsoft Technology Licensing, Llc Update installer with technical impact analysis
US9665359B2 (en) 2013-09-13 2017-05-30 Microsoft Technology Licensing, Llc Automatically resolving conflicts after installation of selected updates in a computer system
US9769258B1 (en) * 2013-12-26 2017-09-19 Google Inc. Application synchronization across multiple computers
CN103729184B (zh) * 2013-12-29 2017-05-17 国云科技股份有限公司 一种软件组件组合构建方法
US10332182B2 (en) 2014-02-28 2019-06-25 Vmware, Inc. Automatic application layer suggestion
US10241773B2 (en) * 2014-02-28 2019-03-26 Vmware, Inc. Automatic application layer capture
US9886246B2 (en) 2015-07-13 2018-02-06 International Business Machines Corporation Dynamically building mobile applications
US20170046145A1 (en) * 2015-08-13 2017-02-16 Unisys Corporation Systems and methods for dynamically installing a program's dependent modules before program execution
US9971594B2 (en) 2016-08-16 2018-05-15 Sonatype, Inc. Method and system for authoritative name analysis of true origin of a file
US10997197B2 (en) 2016-09-27 2021-05-04 International Business Machines Corporation Dependencies between site components across geographic locations
US10552766B2 (en) 2017-02-10 2020-02-04 International Business Machines Corporation System implementing electronic case versioning
US10360026B1 (en) * 2017-11-07 2019-07-23 Amdocs Development Limited System, method, and computer program for RPM versioning
CN109739523B (zh) * 2019-01-03 2022-06-14 Oppo广东移动通信有限公司 应用程序打包方法、装置、存储介质及终端
CN109767447B (zh) * 2019-01-04 2021-03-02 腾讯科技(深圳)有限公司 一种模板匹配方法、装置、设备及介质
US11397570B2 (en) 2019-01-10 2022-07-26 Hewlett Packard Enterprise Development Lp Abort installation of firmware bundles

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721824A (en) * 1996-04-19 1998-02-24 Sun Microsystems, Inc. Multiple-package installation with package dependencies
WO2001093020A2 (en) * 2000-06-01 2001-12-06 Aduva Inc. Virtual system configurator server for linux
US20020144248A1 (en) * 1998-06-19 2002-10-03 Microsoft Corporation Software package management
WO2003005243A1 (en) * 2001-07-06 2003-01-16 Logiclibrary, Inc. Managing reusable software assets
US20040060045A1 (en) * 2002-09-19 2004-03-25 International Business Machines Corporation Programmatic application installation diagnosis and cleaning

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860012A (en) * 1993-09-30 1999-01-12 Intel Corporation Installation of application software through a network from a source computer system on to a target computer system
US6226792B1 (en) * 1998-10-14 2001-05-01 Unisys Corporation Object management system supporting the use of application domain knowledge mapped to technology domain knowledge
US6442754B1 (en) * 1999-03-29 2002-08-27 International Business Machines Corporation System, method, and program for checking dependencies of installed software components during installation or uninstallation of software
US6633899B1 (en) * 1999-05-06 2003-10-14 Sun Microsystems, Inc. Dynamic installation and configuration broker
US6725452B1 (en) * 2000-06-01 2004-04-20 Aduoa, Inc. Method for resolving dependency conflicts among multiple operative entities within a computing environment
US7403938B2 (en) * 2001-09-24 2008-07-22 Iac Search & Media, Inc. Natural language query processing
US7039898B2 (en) * 2002-07-12 2006-05-02 Netspective Communications, Llc Computer system for performing reusable software application development from a set of declarative executable specifications
US7334222B2 (en) * 2002-09-11 2008-02-19 International Business Machines Corporation Methods and apparatus for dependency-based impact simulation and vulnerability analysis
GB2394570A (en) * 2002-10-21 2004-04-28 Ncr Int Inc Installing software components according to component characteristics
US8312446B2 (en) * 2002-12-17 2012-11-13 International Business Machines Corporation Dependency management when upgrading application components

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721824A (en) * 1996-04-19 1998-02-24 Sun Microsystems, Inc. Multiple-package installation with package dependencies
US20020144248A1 (en) * 1998-06-19 2002-10-03 Microsoft Corporation Software package management
WO2001093020A2 (en) * 2000-06-01 2001-12-06 Aduva Inc. Virtual system configurator server for linux
WO2003005243A1 (en) * 2001-07-06 2003-01-16 Logiclibrary, Inc. Managing reusable software assets
US20040060045A1 (en) * 2002-09-19 2004-03-25 International Business Machines Corporation Programmatic application installation diagnosis and cleaning

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9558326B2 (en) 2009-09-14 2017-01-31 Ricoh Company, Ltd. Information processing apparatus, program introduction assistance system and computer readable information recording medium
JP2012064022A (ja) * 2010-09-16 2012-03-29 Ricoh Co Ltd インストールプログラム、インストール方法、画像形成装置、及び記録媒体
KR101516504B1 (ko) 2010-09-16 2015-05-04 가부시키가이샤 리코 인스톨 방법 및 장치
US9274776B2 (en) 2010-09-16 2016-03-01 Ricoh Company, Ltd. Product, method, and apparatus for installing a second program based on a call from a first program
JP2014052935A (ja) * 2012-09-10 2014-03-20 Fujitsu Ltd 情報処理装置、検証方法およびプログラム
JP2013149271A (ja) * 2013-03-29 2013-08-01 Ricoh Co Ltd 情報処理装置、プログラム導入支援システム、表示制御方法、表示制御プログラム、及びそのプログラムを記録した記録媒体

Also Published As

Publication number Publication date
US20060020937A1 (en) 2006-01-26
CN101027639A (zh) 2007-08-29
WO2006012533A3 (en) 2006-08-03
EP1771785A2 (en) 2007-04-11
WO2006012533A2 (en) 2006-02-02
KR20070049166A (ko) 2007-05-10

Similar Documents

Publication Publication Date Title
JP2008507775A (ja) ソフトウェアアプリケーションリポジトリ内のアプリケーションメタ情報の抽出と作成のためのシステムおよび方法
US11853774B2 (en) Dynamically loaded plugin architecture
KR101619557B1 (ko) 커스터마이즈된 컴퓨터 응용 프로그램 패키지
US8122106B2 (en) Integrating design, deployment, and management phases for systems
US7684964B2 (en) Model and system state synchronization
KR101150019B1 (ko) 컨텍스트 정책 제어를 통한 애플리케이션간 연관을제어하는 시스템 및 방법
US6202207B1 (en) Method and a mechanism for synchronized updating of interoperating software
US20070038642A1 (en) Method for providing extensible software components within a distributed synchronization system
US20070088707A1 (en) Method for providing extensible software components within a distributed synchronization system
US20040088397A1 (en) System and method for management of software applications
US9542173B2 (en) Dependency handling for software extensions
GB2333865A (en) Synchronised updating of interoperating software
US20090125874A1 (en) Method and system for creating projects in a rational application developer workspace
US10514940B2 (en) Virtual application package reconstruction
US9760364B2 (en) Checks for software extensions
US11522967B2 (en) System metamodel for an event-driven cluster of microservices with micro frontends
US10558450B2 (en) Mechanism for customizing multiple computing devices
US8250558B2 (en) Dynamic linked library add-on features
US9477447B1 (en) Semantic representations of software extensions
US20100011411A1 (en) Policy-Based Usage of Computing Assets
Jahn et al. Plux. Net-A dynamic Plug-in Platform for Desktop and Web Applications in. Net.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080718

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110913

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120217