JP2005129047A - カスタマイズ可能で構成可能な再使用可能アプリケーションを構築し、展開し、保守し、管理するフレームワーク - Google Patents

カスタマイズ可能で構成可能な再使用可能アプリケーションを構築し、展開し、保守し、管理するフレームワーク Download PDF

Info

Publication number
JP2005129047A
JP2005129047A JP2004299266A JP2004299266A JP2005129047A JP 2005129047 A JP2005129047 A JP 2005129047A JP 2004299266 A JP2004299266 A JP 2004299266A JP 2004299266 A JP2004299266 A JP 2004299266A JP 2005129047 A JP2005129047 A JP 2005129047A
Authority
JP
Japan
Prior art keywords
application
manifest
readable medium
customized
computer
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
JP2004299266A
Other languages
English (en)
Other versions
JP2005129047A5 (ja
Inventor
Adrian W Canter
ダブリュ.カンター エイドリアン
David J D'souza
ジェイ.デスーザ デビッド
Markus Horstmann
ホルストマン マルクス
Michael J Grier
ジェイ.グリアー マイケル
Sanjay G Shenoy
ジー.シェノイ サンジェイ
Srivatsan Parthasarathy
パルタサラティ スリバトサン
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 JP2005129047A publication Critical patent/JP2005129047A/ja
Publication of JP2005129047A5 publication Critical patent/JP2005129047A5/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
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】 カスタマイズ可能で構成可能な再使用可能アプリケーションを構築し、展開し、保守し、管理する。
【解決手段】 本発明のフレームワークは厳密なIDを有するマニフェストとして宣言的に定義される。アプリケーションマニフェストは、アプリケーションをセキュリティで保護された形で構成し、カスタマイズする適切な方法を宣言でき、そのような権利を許可された関係者だけに与える能力を提供する。本発明のさらなる態様は、カスタマイズ済みのアプリケーションのIDを有するマニフェストを使用してアプリケーション展開を宣言的に定義するフレームワークを提供する。そのようなフレームワークは、システム、状態インフラストラクチャ、セットアッププログラム、作成ツール、管理ツールが、確固とした合成アプリケーションIDを使用してカスタマイズ済みのアプリケーションを展開し、インストールし、保守し、管理する方法を提供する。
【選択図】 図3

Description

本発明は、一般に、コンピュータシステムソフトウェアアプリケーションに関し、より詳細には、カスタマイズ可能で構成可能な再使用可能アプリケーションに関する。
今日のソフトウェアアプリケーションは、通常、ある程度のカスタマイズおよび/または構成が可能である。カスタマイズは、製造業者からのアプリケーションの出荷前に行うことが可能である。例えば、アプリケーションのローカライズバージョン(すなわち、英語版、ドイツ語版、日本語版など)を、発行および頒布前にソフトウェア開発者が作成することができる。カスタマイズは、サービスパックまたは他のソフトウェア更新に関してそうであるように、ユーザが製品をインストールした後でも可能である。また、ユーザが、一般に、色スキームまたはサウンドスキーム、アイコン、スタートアップスクリーンなどのセッティングおよびオプションをインストール済みのソフトウェア内部で構成することもできる。
しばしば、アプリケーションの開発者は、自分が展開するアプリケーションをカスタマイズし、構成する必要がある。例えば、情報技術管理者は、自分のネットワークドメイン内で使用されているアプリケーションの外観および/または特徴のセットを標準化する必要がある可能性がある。別の例では、インターネットサービスプロバイダが、加入者向けのアプリケーションのブランドバージョン(branded version)を展開することを所望する可能性がある。通常、このカスタマイズは、アプリケーションのセットアップを変更すること、またはセットアップ実行(setup run)後に展開済みのアプリケーションの状態を別のカスタムプログラムを使用して変更することにより、行うことができる。結果として得られたマシンの状態は、実際、その時点で、アプリケーションがカスタマイズ済みの形態になることであり得るが、そのカスタマイズ済みのアプリケーションを操作する確固とした定義またはハンドルは存在しない。
前述の状況には問題がある可能性がある。というのは、アプリケーションがカスタマイズされ、元のアプリケーションIDを失って無関係の新しいIDを有するようになるか、あるいはカスタマイズ済みのIDではなく、元のIDを依然として有していると、カスタマイズ済みのアプリケーションを元のアプリケーションのカスタマイズされた変種であることを明らかにする方法がない。このため、アプリケーションのライフサイクル全体(すなわち、アプリケーションをインストールすること、カスタマイズすること、更新すること、実行すること、および廃棄(retire)すること)を通じて、アプリケーションを維持し、必要な通りに、つまり、元のアプリケーションに従って機能させることができることを確実にすることが、特に困難になる。
米国特許出願第09/605,602号明細書
以上に鑑みて、本発明は、カスタマイズ可能で構成可能な再使用可能アプリケーションを構築し、展開し(deply)、保守し(service)、管理するフレームワークを提供する。具体的には、本発明は、厳密なID(strong identity)(説明するすべてに関して全体が本明細書に組み込まれている2000年6月28日に出願した「共有名」という名称の(特許文献1)を参照されたい)を必須としてではなく含むIDを有するマニフェストとして、アプリケーション(すなわち、実行コンテキストをコントロールし、アクチベートされることが可能なコンポーネント)が宣言的に定義されるフレームワークを提供する。アプリケーションマニフェストは、アプリケーションをセキュリティで保護された形で構成する、またはカスタマイズする適切な方法を宣言することができ、そのような権利を許可された関係者(parties)だけに与える能力を提供する。
本発明の別の態様は、宣言的に定義されるアプリケーション展開のフレームワークも、カスタマイズ済みのアプリケーションのIDを有するマニフェストとして提供する。そのようなフレームワークは、システム、状態インフラストラクチャ、セットアッププログラム、許可ツール、管理ツール、およびその他の関係者が、確固とした合成アプリケーションIDを使用してカスタマイズ済みのアプリケーションを展開し、インストールし、保守(service)し、管理する方法を提供する。カスタマイズ済みのアプリケーションは、さらにカスタマイズすることもできる。
アプリケーションマニフェストおよび展開マニフェスト(deployment manifest)は、ランタイムを含め、展開済みのアプリケーションのライフサイクル全体を通じて利用可能にすることができる。複数のそのようなカスタマイズ済みのアプリケーションが同一範囲(すなわち、ユーザ、マシン、ネットワークなど)内で利用可能であることを可能にするためのサポートにより、サイドバイサイドコンポーネント(side by side components)とほぼ同様に真の再使用可能アプリケーションを有することが可能になる。
添付の特許請求の範囲は、本発明の特徴を詳細に記載しているが、本発明、並びに本発明の目的および利点は、添付の図面と併せて理解される以下の詳細な説明からよく理解することができる。
以下の説明では、本発明は、特に明記しない限り、1つ以上のコンピュータによって実行される操作の作用および記号表現に関して説明する。このため、ときとして、コンピュータが実行するものとして述べるそのような作用および操作には、コンピュータの処理装置による構造化された形態のデータを表す電気信号の操作が含まれることを理解されたい。この操作は、データを変形するか、またはコンピュータのメモリシステムの中の場所にデータを保持し、この変形または保持により、当業者がよく理解している形でコンピュータの動作が再構成されるか、またはそれ以外の形で変更される。データが保持されるデータ構造は、データのフォーマットによって定義された特定のプロパティを有するメモリの物理的場所である。しかし、本発明を以上の文脈で説明しているが、限定することを意図するものではない。というのは、本明細書で説明する作用および操作の多くは、ハードウェアで実施することもできることが当業者には認められるからである。
同様の符号が同様の要素を指している図面を参照すると、本発明が、適切なコンピューティング環境において実施されているのが示されている。以下の説明は、本発明の図示した実施形態に基づいており、本明細書で明示的に説明しない代替の実施形態に関して本発明を制限するものと受けとめられるべきではない。
I.典型的な環境
図1を参照すると、本発明は、接続されたコンピュータネットワーク上のネットワークノード間における通信に関する。ネットワークノードのそれぞれは、多くの異なるコンピュータアーキテクチャの1つを有することが可能なコンピュータ内部に存在する。説明の目的で、図1は、それらのデバイスに関して使用可能な典型的なコンピュータアーキテクチャの概略図を示している。図示のアーキテクチャは適切な環境の一例に過ぎず、本発明の用途または機能の範囲に関して何ら限定を示唆するものではない。また、コンピューティングデバイスが、図1に例示したコンポーネントのいずれか1つ、またはいずれかの組み合わせに関連する依存関係または要件を有するものと解釈してはならない。本発明は、他の多数の汎用または専用のコンピューティングまたは通信の環境または構成で機能する。本発明で使用するのに適した周知のコンピューティングシステム、コンピューティング環境、およびコンピューティング構成の例には、モバイル電話機、ポケットコンピュータ、パーソナルコンピュータ、サーバ、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ミニコンピュータ、メインフレームコンピュータ、並びに以上のシステムまたはデバイスのいずれかを含む分散コンピューティング環境が含まれるが、以上には限定されない。
最も基本的な構成では、コンピューティングデバイス100は、通常、少なくとも1つの処理装置102、およびメモリ104を含む。メモリ104は、揮発性(RAMなどの)、不揮発性(ROMおよびフラッシュメモリなどの)、またはこの2つの何らかの組み合わせとすることができる。この最も基本的な構成は、図1に破線106で示している。
コンピューティングデバイス100は、追加の特徴および機能を有することが可能な記憶メディアデバイス108および110も含むことが可能である。例えば、記憶メディアデバイスには、PCMCIAカード、磁気ディスクおよび光ディスク、磁気テープを含むが、以上には限定されない追加のストレージ(リムーバブル、およびリムーバブルでない)が含まれることが可能である。そのような追加のストレージを図1にリムーバブルなストレージ108およびリムーバブルでないストレージ110で示している。コンピュータ記憶メディアには、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を格納するために任意の方法または技術で実装された揮発性メディアおよび不揮発性メディア、リムーバブルなメディアおよびリムーバブルでないメディアが含まれる。メモリ104、リムーバブルなストレージ108、およびリムーバブルでないストレージ110はすべて、コンピュータ記憶メディアの例である。コンピュータ記憶メディアには、RAM,ROM、EEPROM、フラッシュメモリ、その他のメモリ技術、CD−ROM、デジタルバーサタイルディスク、その他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、その他の磁気記憶装置、並びに所望の情報を格納するのに使用することができ、コンピューティングデバイスがアクセスすることができる他のあらゆるメディアが含まれるが、以上には限定されない。
コンピューティングデバイス100は、デバイス100が他のデバイス群と通信することを可能にする通信チャネル112も含むことができる。通信チャネル112は通信メディアの例である。通信メディアは、通常、搬送波などの変調されたデータ信号、または他のトランスポート機構でコンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを実体化し、あらゆる情報配信メディアを含む。「変調されたデータ信号」という用語は、信号内に情報を符号化するような形で特性の1つ以上がセットされまたは変更されている信号を意味する。例として、限定としてではなく、通信メディアには、有線ネットワークおよび直接有線接続などの有線メディア、並びに音響メディア、無線メディア、赤外線メディア、および他の無線メディアなどの無線メディアが含まれる。本明細書で使用するコンピュータ可読メディアという用語は、記憶メディアと通信メディアをともに含む。コンピューティングデバイス100は、キーボード、マウス、ペン、音声入力コンポーネント、およびタッチ入力デバイスなどの入力コンポーネント114も有する。出力コンポーネント116には、スクリーンディスプレイ、スピーカ、プリンタ、並びにこれらを駆動するレンダリングモジュール(しばしば「アダプタ」と呼ばれる)が含まれる。コンピューティングデバイス100は、電源118を有する。以上すべてのコンポーネントは、当技術分野で周知であり、本明細書で詳細に説明することはしない。
II.カスタマイズ可能で構成可能な再使用可能アプリケーションを構築し、展開し、保守し、管理するフレームワーク
本発明は、カスタマイズ可能で構成可能な再使用可能アプリケーションを構築し、展開し、保守し、管理するフレームワークを対象とする。簡単に述べると、アプリケーションは、ホストが許す通り、実行コンテキストをコントロールし、アクチベートされることが可能な1つ以上のコンポーネントのセットである。コンポーネントは、アトミックな不変のファイルのセットとして説明することができる。本明細書で使用する「コントロール(control)」は相対的であることに留意されたい。つまり、アプリケーションでさえコントロールすることができないいくつかのファクタ(例えば、マシン全体のコンポーネントの保守/セッティングなど)が存在する。また、アプリケーションに異なる保証とレベルのコントロールおよび分離をもたらす、異なるレベルのコンテキスト(例えば、マシン、プロセス、appdomain)が存在する。さらに、アプリケーションは、必ずしも実行可能ファイルである必要はなく、独自のプロセスを実行しない可能性があり、むしろ、アプリケーションドメイン内で実行されることが可能である。図2を参照すると、典型的なアプリケーションアーキテクチャが示されている。ChatApplicationは、ChatApplication.EXE200およびCAPICOMM.DLL202から成る。
共有名スキーム(説明するすべてに関して全体が本明細書に組み込まれている2000年6月28日に出願した「共有名(Shared Names)」という名称の出願第09/605602号明細書を参照されたい)を使用することにより、コンピュータの固有識別子、つまりコンポーネントIDを導出することができる。コンポーネントIDは、コンポーネント名、バージョン、および公開キートークンを含む。アプリケーションIDも同様に導出することができる。アプリケーションIDは、パス上のコンポーネント群のコンポーネントIDの順序付けされたリストとして表わされたアプリケーションまたは展開の依存関係グラフの中のパスである(すなわち、1つ以上のアプリケーションをカスタマイズするコンポーネントが、自らと自らのアプリケーション群が含むアプリケーションおよびその他のコンポーネントの周囲の名前解決範囲を確立する)。そのパス上の最後のコンポーネントは、普通、アプリケーションである。
ChatApplicationの例に関するマニフェストを定義することが可能である。マニフェストは、コンポーネントに関するメタデータを含む作成済みのドキュメントである。有効マニフェストは、コンポーネントのいずれかに関して所与のシステム上で有効である可能性がある(コンポーネント束縛)ポリシーステートメントを考慮した、すべての構成コンポーネントおよび依存コンポーネントのマニフェストの内容を含む、アプリケーションまたは展開のマニフェスト内容の集約(compilation)である。他方、マージされた(merged)アプリケーションマニフェストは、いずれのコンポーネント束縛ポリシーも考慮せず、いずれの外部/前提条件の依存関係(すなわち、OSコンポーネントに対する)も考慮しない、すべての構成コンポーネントのマニフェストの内容を含むアプリケーションまたは展開のマニフェスト内容の集約である。
図2の典型的なアプリケーションアーキテクチャを再び参照すると、ChatApplicationは、ChatApplication.EXEを構成ファイル(constituent file)としてリストアップし、そのファイルのハッシュを含むマニフェストを有している。このマニフェストは、ChatApplication.EXEが実行されるのにインストール済み/利用可能でなければならない依存関係として、CAPICOMM.DLLもリストアップしている。有効マニフェストは、とりわけ、ChatApplication.EXEおよびCAPICOMM.DLLのID、並びにそれらのファイルハッシュを含む。マージされたアプリケーションマニフェストは、ChatApplicationのマニフェストの内容だけから成る。このため、CAPICOMM.DLLが保守される場合、有効マニフェストは変わるが、マージされたアプリケーションマニフェストは変わらない。アプリケーションIDは、ChatApplication.EXEコンポーネントのID(ChatApplication.EXEの依存関係グラフの中の単純な(trivial)単一ノードパス)であり、マージされたアプリケーションマニフェストと同様に、CAPICOMM.DLLが保守(service)された場合でも、変わらない。
1つの好ましい実施形態では、宣言型の拡張マークアップ言語(XML)ベースのスキームを使用して、アプリケーションマニフェストを実装することができる。典型的な実装は、以下の通りである。
Figure 2005129047
Figure 2005129047
Figure 2005129047
前述の通り、多くのアプリケーションは、アプリケーションを実質的にカスタマイズすること、またはブランド化することさえ可能にするセッティングを公開している。多くのシナリオでは、同一マシン上に同一のアプリケーションの複数のカスタマイズをインストールできるようにすることさえ必要である可能性がある。本発明は、従来の技術を使用してそのような結果を実現することに関連する困難を克服するのに特に役立つ可能性がある。図3には典型的な展開シナリオ(deployment scenario)が示されている。このシナリオでは、ChatApplicationが、現時点で2つのサイト/ディプロイヤ(deployer)MSNBC302とMSN300でカスタマイズされている。それらのシナリオを可能にするため、アプリケーションIDは、コードID以上の追加情報を担持する。つまり、カスタマイズ(「展開(deployment)」)には、別個のマニフェスト(「展開マニフェスト(deployment manifest)」)を介して独自のID(展開ID)が割り当てられる。以上の図式を拡張して、次々の展開マニフェストを使用してグラフにさらなるカスタマイズを追加することができる。
1つの好ましい実施形態では、宣言型のXMLベースのスキームを使用して展開マニフェストを実装することができる。典型的な実装は、以下の通りである。
Figure 2005129047
Figure 2005129047
上記の例は、ChatApplicationをブランド化し、MSNらしく見えるようにするように、ChatApplicationのインストールおよびUI体験をMSNChat300がどれだけカスタマイズすることができるかを示している。またこの例は、MSNChat300が、優先する設定ファイル(overriding configuration file)を介してアプリケーションをどのように構成できるかも示唆している。例えば、設定ファイルが、BackgroundColor=青というセッティングを有する場合、展開によって与えられた設定ファイルが、これに優先してBackgroundColor=白と指示することができる。さらに、この例は、以上に示したCapiComm用の仏語サテライトなどの言語サテライトをどのように追加することができるかも示している。
最後に、システムは、証明書およびその他の権利管理技術を使用して、ディプロイヤが、容認できる/アプリケーション作成者が許可した形でだけアプリケーションをカスタマイズすることを確実にすることができる。前述の例では、これを例示するありふれた形は、アプリケーションと展開がともに、アセンブリIDの中の公開キートークン属性で証明される同一の「公開キー(public key)」を有することである。これにより、アプリケーションと展開が信頼関係を有することが確実になる。
ユーザがショートカットを起動した場合、ショートカットは完全なアプリケーションID(AppID)を含む。これは、アプリケーションがカスタマイズされた場合、アプリケーションIDが、アプリケーションはもちろん展開の完全なIDを含むことを意味する。例えば、以下の通りである。
Figure 2005129047
そのようなIDを名前解決するため、バインダは、IDの各セグメントを調べ、コンポーネントが同期しているかどうか(すなわち、コンポーネントがサーバセマンティクスと同期しているかどうか)を判定し、中央サービス提供(servicing)ポリシーが存在する場合、コンポーネントの適切なバージョンに名前解決する。このプロセスは、それぞれの個々のコンポーネントに関するサービスを確実にする。次に、そのIDを使用して、アプリケーションが、完全なIDを表すアプリケーションのランタイムインスタンスで起動される。そのIDをAppIDと呼ぶことができる。AppIDは、カスタマイズされたアプリケーションを構成しやすくし、管理しやすくすることができるように、状態インフラストラクチャ、信頼マネージャなどのエンティティがランタイムに使用することができる。AppIDを使用する可能性がある操作には、以下が含まれる。
・アクチベート:アプリケーションIDを所与としてアプリケーションを起動すること
・セキュリティ:アプリケーションに関するポリシーステートメントがアプリケーションID(参照)を使用して1つ以上のアプリケーションをポリシーステートメントの対象範囲とする
・識別:実行中のアプリケーションのコンテキスト内からアプリケーションIDを特定すること、および
・管理:システムにインストール済みのアプリケーションを特定する−アプリケーション管理APIが、アプリケーションID(定義)を戻す:アンインストールが、アプリケーションID(定義)を要する(take)など。
バインダ自体も、マニフェストから、アセンブリおよび他のDLLの正しいバージョンにバインドするサポート、並びに正しいバージョンの場所情報を提供するために、AppID、並びにIDの各セグメントに関連するマニフェストのセット(AppIDを使用して、「有効マニフェスト(effective manifest)」および「マージされたアプリケーションマニフェスト(merged application manifest)」を獲得することができ、したがって、そのような構造内部のあらゆるデータを獲得することができる)を使用することができる。バインダは、カスタマイズされたアプリケーションの正しいバインド環境を選択する際に非常に選択的である能力を有する。これにより、システムは、1つの展開(またはカスタマイズされたアプリケーション)が、同一のアプリケーションまたは完全に異なるアプリケーションの他のカスタマイズされたバージョンに干渉せずに、コンポーネントのバージョンを使用することができるようになる。このシナリオは、基礎にあるコンポーネント群が分離可能であり得ることに依拠する。
本発明の原理を適用することができる多くの可能な実施形態に鑑みて、図面に関連して本明細書で説明した実施形態は、単に例示することを意図しており、本発明の範囲を限定するものと理解すべきでないことを認識されたい。例えば、パフォーマンス上の理由で、本発明のフレームワークをソフトウェアではなく、ハードウェアで実施してもよい。したがって、本明細書で説明した本発明は、特許請求の範囲に含まれ得るすべてのそのような実施形態、および等価な形態を企図している。
本発明のフレームワークの実施ができる典型的なコンピュータアーキテクチャを示す概略図である。 本発明のフレームワークの実施ができる典型的なソフトウェアアプリケーションを示す概略図である。 本発明のフレームワークの実施ができる典型的な展開を示す概略図である。
符号の説明
102 処理装置
104 メモリ
108 リムーバブルなストレージ
110 リムーバブルでないストレージ
112 通信チャネル
114 入力コンポーネント
116 出力コンポーネント
118 電源
120 ネットワーク
200 ChatApplication.EXE
202 CAPICOMM.DLL
300 MSNChat

Claims (14)

  1. アプリケーションに関連するアプリケーションマニフェストスキーマデータ構造を格納しているコンピュータ可読メディアであって、該データ構造が、
    アプリケーションマニフェスト情報を含むスキーマを示す要素を表すデータを含む第1のデータフィールド、および、
    アプリケーション識別子を表すデータを含む第2のデータフィールドを有することを特徴とするコンピュータ可読メディア。
  2. カスタマイズ済みのアプリケーションに関連する展開マニフェストスキーマデータ構造を格納しているコンピュータ可読メディアであって、該データ構造が、
    展開マニフェスト情報を含むスキーマを示す要素を表すデータを含む第1のデータフィールド、および、
    前記カスタマイズ済みのアプリケーションを表すデータを含む第2のデータフィールドを有することを特徴とするコンピュータ可読メディア。
  3. カスタマイズ済みのアプリケーションに関連するアプリケーション識別子データ構造を格納しているコンピュータ可読メディアであって、該データ構造が、
    1つ以上の展開マニフェストデータ構造を表すデータを含む第1のデータフィールド、および、
    アプリケーションマニフェストデータ構造を表すデータを含む第2のデータフィールドを有することを特徴とするコンピュータ可読メディア。
  4. コンピュータ可読メディアに含まれる命令により実行される、アプリケーションをセキュリティで保護された形でカスタマイズするための方法であって、
    展開マニフェストファイルを獲得するステップ、
    前記展開マニフェストファイルから選択可能な展開オプションを特定するステップ、および、
    許されたアプリケーションカスタマイズ活動を実行するステップを含むことを特徴とする方法。
  5. 請求項4に記載の方法において、
    前記特定するステップは、許されたカスタマイズ活動を特定することを含むことを特徴とする方法。
  6. 請求項4に記載の方法において、
    前記特定するステップは、アプリケーションカスタマイズを実行することを許可された関係者を特定することを含むことを特徴とする方法。
  7. コンピュータ可読メディアに含まれる命令により実行される、カスタマイズ済みのアプリケーションを起動するための方法であって、
    アプリケーションIDを獲得するステップ、
    前記アプリケーションIDを解決するステップ、
    前記アプリケーションIDに対応するコンポーネントを探し出すステップ、および、
    前記コンポーネントを呼び出して前記カスタマイズ済みのアプリケーションを起動するステップを含むことを特徴とする方法。
  8. コンピュータ可読メディアに含まれる命令により実行される、カスタマイズ済みのアプリケーションに関するポリシーステートメントを実施するための方法であって、
    前記カスタマイズ済みのアプリケーションのアプリケーションIDを定義するステップ、および、
    前記アプリケーションIDを使用して1つ以上のアプリケーションをポリシーステートメントの対象範囲とするステップを含むことを特徴とする方法。
  9. コンピュータ可読メディアに含まれる命令により実行される、カスタマイズ済みのアプリケーションを特定するための方法であって、
    前記カスタマイズ済みのアプリケーションが実行されているコンテキストを特定するステップ、および、
    実行されている前記カスタマイズ済みのアプリケーションの前記コンテキスト内からアプリケーションIDを獲得するステップを含むことを特徴とする方法。
  10. コンピュータ可読メディアに含まれる命令により実行される、システムにインストール済みのアプリケーションを特定するための方法であって、
    アプリケーション管理アプリケーションプログラミングインタフェース(API)を呼び出すステップ、および、
    該APIから前記インストール済みのアプリケーションのアプリケーションIDを獲得するステップを含むことを特徴とする方法。
  11. コンピュータ可読メディアに含まれる命令により実行される、システムにインストールされたアプリケーションをカスタマイズするための方法であって、
    展開マニフェストデータ構造を定義するステップ、
    該展開マニフェストを前記アプリケーションに関連付けるステップ、および、
    前記展開マニフェスト内のカスタマイズデータを指定するステップを含むことを特徴とする方法。
  12. 請求項11に記載の方法において、
    前記アプリケーションのビットは不変に保たれることを特徴とする方法。
  13. 請求項11に記載の方法において、
    前記アプリケーションはカスタマイズ済みのアプリケーションであることを特徴とする方法。
  14. 請求項13に記載の方法において、
    前記アプリケーションのビットは不変に保たれることを特徴とする方法。
JP2004299266A 2003-10-24 2004-10-13 カスタマイズ可能で構成可能な再使用可能アプリケーションを構築し、展開し、保守し、管理するフレームワーク Pending JP2005129047A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US51406903P 2003-10-24 2003-10-24
US10/909,217 US20050091259A1 (en) 2003-10-24 2004-07-30 Framework to build, deploy, service, and manage customizable and configurable re-usable applications

Publications (2)

Publication Number Publication Date
JP2005129047A true JP2005129047A (ja) 2005-05-19
JP2005129047A5 JP2005129047A5 (ja) 2007-11-22

Family

ID=34426321

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004299266A Pending JP2005129047A (ja) 2003-10-24 2004-10-13 カスタマイズ可能で構成可能な再使用可能アプリケーションを構築し、展開し、保守し、管理するフレームワーク

Country Status (5)

Country Link
US (1) US20050091259A1 (ja)
EP (1) EP1528465A3 (ja)
JP (1) JP2005129047A (ja)
KR (1) KR20050039533A (ja)
CN (1) CN100507904C (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012155478A (ja) * 2011-01-25 2012-08-16 Canon Inc 画像形成装置、装置、画像形成装置の制御方法、およびプログラム
CN102819453A (zh) * 2012-07-20 2012-12-12 腾讯科技(深圳)有限公司 信息获取的方法及信息获取平台

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0426736D0 (en) * 2004-12-06 2005-01-12 Omnifone Ltd MyFone
US7885945B2 (en) * 2005-08-25 2011-02-08 Microsoft Corporation Secure schema identifier generation
US20070174824A1 (en) * 2006-01-23 2007-07-26 Microsoft Corporation Techniques for generating and executing browser-hosted applications
US7788227B1 (en) * 2006-03-03 2010-08-31 Microsoft Corporation Schema signing and just-in-time installation
KR100835272B1 (ko) * 2006-11-07 2008-06-05 한국전자통신연구원 에스시에이 시스템에서의 컴포넌트 관리 장치 및 그 방법
TWI414954B (zh) * 2007-10-05 2013-11-11 Hon Hai Prec Ind Co Ltd 孔自動關聯方法及系統
US20090165021A1 (en) * 2007-10-23 2009-06-25 Microsoft Corporation Model-Based Composite Application Platform
US8751626B2 (en) * 2007-10-23 2014-06-10 Microsoft Corporation Model-based composite application platform
US8689203B2 (en) * 2008-02-19 2014-04-01 Microsoft Corporation Software update techniques based on ascertained identities
US20090248397A1 (en) * 2008-03-25 2009-10-01 Microsoft Corporation Service Initiation Techniques
US8229980B2 (en) * 2008-04-30 2012-07-24 Microsoft Corporation State buckets
CN101354656B (zh) * 2008-09-12 2010-10-13 深圳市联软科技有限公司 一种安装包数据处理方法及系统
US8898660B2 (en) * 2008-11-25 2014-11-25 Fisher-Rosemount Systems, Inc. Systems and methods to provide customized release notes during a software system upgrade of a process control system
US8667483B2 (en) * 2009-03-25 2014-03-04 Microsoft Corporation Device dependent on-demand compiling and deployment of mobile applications
CN101945121B (zh) * 2010-08-17 2014-03-12 浙江大学城市学院 农产品协议流通服务系统中应用服务包的生成方法及装置
US9098317B2 (en) * 2011-03-16 2015-08-04 Microsoft Technology Licensing Llc Optional retargeting of library references
US11500980B2 (en) 2020-02-11 2022-11-15 International Business Machines Corporation Automated and auditable framework to control software component changes in an application build process
US11829766B2 (en) * 2021-05-04 2023-11-28 International Business Machines Corporation Compliance enforcement via service discovery analytics

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809170A (en) * 1987-04-22 1989-02-28 Apollo Computer, Inc. Computer device for aiding in the development of software system
US5206951A (en) * 1987-08-21 1993-04-27 Wang Laboratories, Inc. Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types
JPH06105440B2 (ja) * 1990-03-08 1994-12-21 株式会社日立製作所 主メモリ管理方法
EP0501613A3 (en) * 1991-02-28 1993-09-01 Hewlett-Packard Company Heterogeneous software configuration management apparatus
US5619716A (en) * 1991-11-05 1997-04-08 Hitachi, Ltd. Information processing system having a configuration management system for managing the software of the information processing system
EP0541875A1 (en) * 1991-11-15 1993-05-19 International Business Machines Corporation Method for facilitating the configuration of programs
US5339430A (en) * 1992-07-01 1994-08-16 Telefonaktiebolaget L M Ericsson System for dynamic run-time binding of software modules in a computer system
US5432941A (en) * 1992-10-13 1995-07-11 Microsoft Corporation Method and system for dynamically configuring a software system using configuration groups
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
US5408665A (en) * 1993-04-30 1995-04-18 Borland International, Inc. System and methods for linking compiled code with extended dictionary support
US5615400A (en) * 1993-06-30 1997-03-25 Apple Computer, Inc. System for object oriented dynamic linking based upon a catalog of registered function set or class identifiers
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
US5758165A (en) * 1995-07-07 1998-05-26 Sun Microsystems, Inc. Local area network and network operating system for formatting a client disk and installing a client operating system
US5845077A (en) * 1995-11-27 1998-12-01 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
US6049671A (en) * 1996-04-18 2000-04-11 Microsoft Corporation Method for identifying and obtaining computer software from a network computer
US6151643A (en) * 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
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
US6314565B1 (en) * 1997-05-19 2001-11-06 Intervu, Inc. System and method for automated identification, retrieval, and installation of multimedia software components
FR2765702B1 (fr) * 1997-07-02 2001-07-06 Bull Sa Architecture de systeme de traitement de l'information
US5974470A (en) * 1997-09-03 1999-10-26 Chicago-Soft, Ltd. System for reducing conflicts among dynamic link library modules by aliasing modules
US6298443B1 (en) * 1998-04-24 2001-10-02 Dell Usa, L.P. Method and system for supplying a custom software image to a computer 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
US6151605A (en) * 1998-05-29 2000-11-21 Hewlett-Packard Company Generic configuration file processing library and executable
US6080207A (en) * 1998-06-04 2000-06-27 Gateway 2000, Inc. System and method of creating and delivering software
US6131192A (en) * 1998-06-18 2000-10-10 Microsoft Corporation Software installation
US6381742B2 (en) * 1998-06-19 2002-04-30 Microsoft Corporation Software package management
US6185734B1 (en) * 1998-07-21 2001-02-06 Hewlett-Packard Company Hierarchical registry structure for managing multiple versions of software components
US7143421B2 (en) * 1998-09-09 2006-11-28 Microsoft Corporation Highly componentized system architecture with a demand-loading namespace and programming model
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
US6029174A (en) * 1998-10-31 2000-02-22 M/A/R/C Inc. Apparatus and system for an adaptive data management architecture
US6434744B1 (en) * 1999-03-03 2002-08-13 Microsoft Corporation System and method for patching an installed application program
US6505204B1 (en) * 1999-03-31 2003-01-07 Internet Design Engineering Automation Center, Inc. Engineering services coordinating system and method therefor
JP4075203B2 (ja) * 1999-04-09 2008-04-16 株式会社日立製作所 データバックアップシステム
US6704797B1 (en) * 1999-06-10 2004-03-09 International Business Machines Corporation Method and system for distributing image-based content on the internet
US6675382B1 (en) * 1999-06-14 2004-01-06 Sun Microsystems, Inc. Software packaging and distribution system
US6453039B1 (en) * 1999-06-16 2002-09-17 Cisco Systems, Inc. Method and apparatus for robust call routing
US6477703B1 (en) * 1999-06-29 2002-11-05 Hewlett-Packard Company Software patch selection tool
US6604238B1 (en) * 1999-07-26 2003-08-05 Hewlett-Packard Development Company, L.P. Method and system for installing software
US6449624B1 (en) * 1999-10-18 2002-09-10 Fisher-Rosemount Systems, Inc. Version control and audit trail in a process control system
US6560614B1 (en) * 1999-11-12 2003-05-06 Xosoft Inc. Nonintrusive update of files
US6564215B1 (en) * 1999-12-16 2003-05-13 International Business Machines Corporation Update support in database content management
US6658659B2 (en) * 1999-12-16 2003-12-02 Cisco Technology, Inc. Compatible version module loading
US7287259B2 (en) * 2000-04-24 2007-10-23 Microsoft Corporation Isolating assembly versions for binding to application programs
US6871344B2 (en) * 2000-04-24 2005-03-22 Microsoft Corporation Configurations for binding software assemblies to application programs
US6681391B1 (en) * 2000-06-21 2004-01-20 Microsoft Corporation Method and system for installing software on a computer system
US7000230B1 (en) * 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
WO2002025438A1 (en) * 2000-09-22 2002-03-28 Patchlink.Com Corporation Non-invasive automatic offsite patch fingerprinting and updating system and method
US20020174422A1 (en) * 2000-09-28 2002-11-21 The Regents Of The University Of California Software distribution system
US6832373B2 (en) * 2000-11-17 2004-12-14 Bitfone Corporation System and method for updating and distributing information
US20030023440A1 (en) * 2001-03-09 2003-01-30 Chu Wesley A. System, Method and computer program product for presenting large lists over a voice user interface utilizing dynamic segmentation and drill down selection
US6859923B2 (en) * 2001-05-09 2005-02-22 Sun Microsystems, Inc. Method, system, program, and data structures for using a database to apply patches to a computer system
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
US7428559B2 (en) * 2001-12-13 2008-09-23 Microsoft Corporation Versioning model for software program development
US20030121024A1 (en) * 2001-12-13 2003-06-26 Microsoft Corporation System and method for building a runtime image from components of a software program
US7133874B2 (en) * 2001-12-13 2006-11-07 Microsoft Corporation Prototyping model for components of a software program
US20040181790A1 (en) * 2003-03-12 2004-09-16 Herrick Joseph W. System and method for maintaining installed software compliance with build standards
GB2403303B (en) * 2003-06-23 2005-08-17 Matsushita Electric Ind Co Ltd Embedded device with software registry
US7313792B2 (en) * 2003-09-08 2007-12-25 Microsoft Corporation Method and system for servicing software
US7765592B2 (en) * 2004-01-10 2010-07-27 Microsoft Corporation Changed file identification, software conflict resolution and unwanted file removal

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012155478A (ja) * 2011-01-25 2012-08-16 Canon Inc 画像形成装置、装置、画像形成装置の制御方法、およびプログラム
KR101461444B1 (ko) * 2011-01-25 2014-11-13 캐논 가부시끼가이샤 장치 및 프린터
CN102819453A (zh) * 2012-07-20 2012-12-12 腾讯科技(深圳)有限公司 信息获取的方法及信息获取平台

Also Published As

Publication number Publication date
US20050091259A1 (en) 2005-04-28
CN100507904C (zh) 2009-07-01
KR20050039533A (ko) 2005-04-29
EP1528465A2 (en) 2005-05-04
EP1528465A3 (en) 2007-09-05
CN1664813A (zh) 2005-09-07

Similar Documents

Publication Publication Date Title
JP2005129047A (ja) カスタマイズ可能で構成可能な再使用可能アプリケーションを構築し、展開し、保守し、管理するフレームワーク
US7530079B2 (en) Managing application customization
US7607126B2 (en) System and method for external override of annotations
JP5373900B2 (ja) カスタマイズを伴うコンピュータアプリケーションパッケージ
EP2668586B1 (en) State-based provisioning of a client
EP2668559B1 (en) Configuring and customizing a specific-purpose client having a windows-based embedded image using extensible markup language (xml) configuration
US8245223B2 (en) Networked deployment of multi-application customizations
EP2668585B1 (en) Comparing and provisioning configurations for a client having a windows-based embedded image
EP2668602B1 (en) Transferring configuration data from a public cloud server and applying onto a mobile client
US9513938B2 (en) Virtual appliance integration with cloud management software
EP2668589B1 (en) Generating and validating custom extensible markup language (xml) configuration on a client embedded image
US8578367B2 (en) Method for enabling the installation of software applications on locked-down computers
EP2668601B1 (en) Self-provisioning of configuration for a client
US20110289478A1 (en) Organization of application state and configuration settings
EP2668588B1 (en) Retrieval, parsing and application of a configuration for a client having a windows-based embedded image
KR20090007576A (ko) 복수-인스톨러 프로그램을 설치하기 위한 컴퓨터로 구현된 방법, 코어 인스톨러의 특권을 레버리징하는 컴퓨터로 구현된 방법 및 컴퓨터 판독가능 매체
JP7493053B2 (ja) イメージファイル生成方法、装置及びコンピュータプログラム
US9038071B2 (en) Operating system context isolation of application execution
JP2005129047A5 (ja)
US20100318967A1 (en) Supplementary deployment actions
CN108182070B (zh) 定制安卓系统rom的方法、装置及终端设备
US9917922B2 (en) Extensibility bundles for a cloud and devices suite
Lee Use ClickOnce to deploy Windows applications
Chaganti et al. Using Built-in DSC Resources
Hashimi et al. WinForms Smart Client Deployment

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071010

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110208

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110509

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110512

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110701

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110722

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111024

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111118