JP4796966B2 - ソフトウェアアプリケーションをプログレッシブインストールするためのシステムおよび方法およびapi - Google Patents
ソフトウェアアプリケーションをプログレッシブインストールするためのシステムおよび方法およびapi Download PDFInfo
- Publication number
- JP4796966B2 JP4796966B2 JP2006536561A JP2006536561A JP4796966B2 JP 4796966 B2 JP4796966 B2 JP 4796966B2 JP 2006536561 A JP2006536561 A JP 2006536561A JP 2006536561 A JP2006536561 A JP 2006536561A JP 4796966 B2 JP4796966 B2 JP 4796966B2
- Authority
- JP
- Japan
- Prior art keywords
- application
- client
- resources
- package
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Description
図1は、本発明の一実施形態で使用できるコンピューティングデバイス例の図である。図1は、本発明の一実施例で使用できるコンピューティングデバイス例の図である。非常に基本的な構成では、コンピューティングデバイス100は、少なくとも1つの処理ユニット102およびシステムメモリ104を備えるのがふつうである。コンピューティングデバイスの正確な構成と種類に応じて、システムメモリ104は揮発性(RAMなど)、不揮発性(ROM、フラッシュメモリなど)、またはこれら2つの何らかの組合せとすることができる。システムメモリ104は、通常、オペレーティングシステム105、1つまたは複数のプログラムモジュール106を格納し、プログラムデータ107を含むこともできる。基本構成は、図1において点線108内のコンポーネントにより示されている。
図2は、本発明の実装を具体化できる分散ネットワーキング環境の機能ブロック図概要である。図2に例示されているように、サーバ202およびクライアントコンピュータ220などの2台以上のコンピュータがネットワーク205を介して接続される。サーバ202およびクライアントコンピュータ220は、図1とともに上で説明されているデバイスなどのコンピューティングデバイスである。コンピュータは、企業環境内で接続することができ、その場合、ネットワーク205はローカルエリアネットワークまたはワイドエリアネットワークとすることができる。同様に、コンピュータは、インターネットなどのワイドエリアネットワークを介して任意に接続することができる。
図4は、本発明の一実装による、アプリケーションのプログレッシブインストールのさまざまな状態を例示する状態図400である。プログレッシブインストールは、呼び出し状態402、スタートアップ状態404、デマンド状態406、およびインストール状態410を含む。呼び出し状態402で、ユーザはアプリケーションを呼び出す。ユーザがサーバ202から供給されるリンクをクリックすることによりアプリケーションを呼び出すと、プログレッシブインストールはスタートアップ状態404に進む。しかし、後で詳述するように、アプリケーションは、クライアントコンピュータ上にすでにインストールされている可能性がある。ローカルにインストールされているアプリケーションは、ローカルアプリケーションへのリンクを選択する、スタートメニュー内のローカルアプリケーションへのショートカットを選択するなどの方法により呼び出すことができる。ローカルにインストールされているアプリケーションが呼び出されると、プロセスはインストール状態410に遷移する。他の実施形態では、呼び出し状態402からインストール状態410への遷移は、サブスクリプション更新状態412を介して進行することができる。手短に言うと、サブスクリプション更新状態412により、サーバ202上でアプリケーションの更新が利用可能かどうかを判別するということである。更新があれば、アプリケーションの更新されたコンポーネントがダウンロードされる。
具体的な一実施例では、上述の手法は、ダウンロードおよびインストール、サービス、信頼とプライバシーの確立、ならびにアプリケーションの最終的実行を管理するための機能性を公開するアプリケーションプログラミングインターフェース(API)で実装することができる。このようなAPIの一実施例について、これらの各機能を処理するためのDeploymentManagerの以下のクラス例で説明する。このDeploymentManagerのスケルトンタイプの定義を以下に示す。
public class DeploymentManager
{
public DeploymentManager(string identity, string codebase)
{ ... }
//呼び出すことができる非同期オペレーションに対するイベント。
public event BindCompletedEventHandler
BindCompleted;
public event
DeterminePlatformRequirementsCompletedEventHandler
DeterminePlatformRequirementsCompleted;
public event
DetermineAuthorizationCompletedEventHandler
DetermineAuthorizationCompleted;
public event SynchronizeCompletedEventHandler
SynchronizeCompleted;
public event ExecuteCompletedEventHandler
ExecuteCompleted;
//すべての非同期オペレーションに対するProgressChangedイベント
public event DeploymentProgressChangedEventHandler
DeploymentProgressChanged;
//BindAsync
public void BindAsync(object userToken)
{ ... }
//DetermineRequirementsAsync
public void
DeterminePlatformRequirementsAsync(object userToken)
{ ... }
// DetermineAuthorizationAsync
public void DetermineTrustAsync(object userToken)
{ ... }
// SynchronizeAsync
public void SynchronizeAsync(object userToken)
{ ... }
// ExecuteAsync
public void ExecuteAsync(object userToken)
{ ... }
// AsyncCancel
public void AsyncCancel()
{ ... }
}
* * * * * * * * * * * * * * * * * * *
DeploymentManagerは、(1)マニフェストバインディング、(2)プラットフォーム要件の判別、(3)権限の判別、(4)同期処理、および(5)実行の5つの主要オペレーションのためのメソッドを公開することに留意されたい。これらの関数について、それぞれ、簡単にここで説明することにする。
マニフェストバインディングは、展開されたアプリケーションに関する必要なマニフェストメタデータをインストール、サービス、およびアクティベーションのために最初に取得するプロセスである。バインディングは、一般に、デプロイメントマニフェストへのコード ベース、または展開されたアプリケーションのID、または場合によってはそれらの両方のから始まる。バインディングでは、展開されたアプリケーションに関して後から決定するためのマニフェスト情報の最小セットを取り出す。マニフェストバインドでは、バインド、アプリケーションストアの状態、およびバインド先のアプリケーションのコンテキストに応じてネットワーク接続を必要とする場合もあれば必要としない場合もある。アプリケーションがすでにマシンに展開されている場合、バインドは、ネットワークI/Oなしの完全オフライン状態で成功することができる。
バインディングが完了した後、クライアントマシンのインストール状態を問い合わせてアプリケーションを実行するために必要なプラットフォームが存在しているかどうかを判別できるようになる。プラットフォームは、アプリケーションが依存しているが、展開済みアプリケーションインストールの一部としてインストールすることができないソフトウェアとして識別することができる。展開されたアプリケーションは、アプリケーションマニフェストに記述されているこれらの依存関係を参照する。例えば、オペレーティングシステムの最小バージョン、ランタイム環境の最小バージョン、GAC常駐アセンブリの特定のバージョンについてサポートを提供することもできる。バージョンが最小として処理されるかどうかは、アセンブリがプラットフォームまたはライブラリとしてマーク付けされるかどうかに依存する場合がある。
アプリケーションにどのような信頼、プライバシー、およびライセンスが受け入れられるかに関する決定を、このような情報を展開およびアプリケーションマニフェスト内に配置することもできるため、マニフェストバインディングが完了した後に行うことができる。これらの決定は、権限の一般的カテゴリの下にグループ化される。例えば、アプリケーションが既定のサンドボックスで実行できない場合に、権限がユーザプロンプティングを必要とすることがある。権限の付与が成功すると、クライアントマシン上でアプリケーションを実行するのに必要な一組の許可付与、プライバシーポリシー保証、ライセンスキーなどが生成される。この情報は、アプリケーションがアクティブにされているときに決定を後で繰り返す必要がないようにキャッシュしておくことができる。権限が失敗した場合、アプリケーションインストールは続行できない。
プラットフォームおよび権限の判別が首尾よく完了すると、アプリケーションペイロードをインストールする実際のタスクを開始できる。このプロセスは、同期処理と呼ばれる。同期処理は、展開済みアプリケーションの必要なバージョンがすでにマシン上に存在していることを単に確認するだけで成功する。それとは別に、同期処理では、リモートで展開されているアプリケーション(オンデマンドコンポーネント、言語パックとともに必要)またはアプリケーションを起動するために必要な最小限度必要サブセットのみ(例えば、必要なコンポーネントのみ)の完全ダウンロードを伴う場合がある。ダウンロードが発生した場合、同期処理はさらに、(1)アプリケーションペイロードがディスク上の一時記憶域に複製される純粋なトランスポートフェーズおよび(2)展開済みアプリケーションが格納処理され、バインディングに利用可能にされる、コミットオペレーションの2つのフェーズに細分される。同時処理は、既存のインストール済みアプリケーションのオプションコンポーネントまたはオンデマンドコンポーネントのダウンロードに使用することもできる。
アプリケーションがプラットフォームおよび権限の決定を正常に完了し、ペイロードの同期処理が正常に行われ、格納のコミットが行われた後、アプリケーションを実行(起動(launch)または実行(run))できる。実行は、別のスタンドアロンのプロセスで行うか、または既存の呼び出し側のプロセスを使用して行うことができる。両方の場合に、実行ホストは、場合によっては再プロンプティングを回避するために前回の権限呼び出しですでにすでにキャッシュされている決定を利用して、アプリケーションの安全な実行環境を提供する。
非同期完了結果などのDeploymentManagerメソッドの呼び出しからの通知を受け取るために、クライアントは、関連する完了イベントハンドラ(例えば、BindCompletedEventHandlerなど)の実装を提供する。これらは、関連付けられた完了イベント引数(例えば、BindCompletedEventArgs)を受け渡される。これらのオペレーションに対する非同期の進行結果を受け取るために、クライアントはDeployrnentProgressChangedEventHandlerの実装を提供する。これは、引数(DeploymentProgressChangedEventArgs)を受け渡される。以下に、そのようなイベントハンドラ実装の実施例のスケルトンを示す。
//イベントハンドラデリゲートおよび引数をバインドする。
sender, BindCompletedEventArgs e);
public class BindCompletedEventArgs :
AsyncCompletedEventArgs
{
public BindCompletedEventArgs(Exception error, bool
cancelled, object userToken) : base(error, cancelled,
userToken)
{ ... }
}
//DeterminePlatformRequirementsイベントハンドラデリゲートおよび引数。
DeterminePlatformRequirementsCompletedEventHandler(objec
t sender,
DeterminePlatformRequirementsCompletedEventArgs e);
public class
DeterminePlatformRequirementsCompletedEventArgs :
AsyncCompletedEventArgs
{
public
DeterminePlatformRequirementsCompletedEventArgs(Exceptio
n error, bool cancelled, object userToken) : base(error,
cancelled, userToken)
{ ... }
}
//DetermineAuthorizationイベントハンドラデリゲートおよび引数。
DetermineAuthorizationCompletedEventHandler(object
sender, DetermineAuthorizationCompletedEventArgs e);
public class DetermineAuthorizationCompletedEventArgs :
AsyncCompletedEventArgs
{
public
DetermineAuthorizationCompletedEventArgs(Exception
error, bool cancelled, object userToken) : base(error,
cancelled, userToken)
{ ... }
}
//イベントハンドラデリゲートおよび引数を同期処理する。
SynchronizeCompletedEventHandler(object sender,
SynchronizeCompletedEventArgs e);
public class SynchronizeCompletedEventArgs :
AsyncCompletedEventArgs
{
public SynchronizeCompletedEventArgs(Exception
error, bool cancelled, object userToken) : base(error,
cancelled, userToken)
{ ... }
}
//イベントハンドラデリゲートおよび引数を実行する。
sender, ExecuteCompletedEventArgs e);
public class ExecuteCompletedEventArgs :
AsyncCompletedEventArgs
{
public ExecuteCompletedEventArgs(Exception error,
bool cancelled, object userToken) : base(error,
cancelled, userToken)
{ ... }
}
//DeploymentProgressChangedイベントハンドラデリゲートおよび引数。
DeploymentProgressChangedEventHandler(object sender,
DeploymentProgressChangedEventArgs e);
public class DeploymentProgressChangedEventArgs :
ProgressChangedEventArgs
{
public DeploymentProgressChangedEventArgs(object
userToken, int progressPercentage) : base(userToken,
progressPercentage)
{ ... }
}
* * * * * * * * * * * * * * * * * * *
説明したばかりのメカニズムを呼び出すクライアント(例えば、アプリケーション)の一実装の一般的な実施例を以下に示す。以下の実施例は、上述のDeploymentManagerを実装するクラス(クライアント)に基づくアプリケーションである。
public class Client
{
public static void Main()
{
DeploymentManager dep = new
DeploymentManager("name=bar, version=1.0.0.0",
"http://www.foo.com/bar.deploy");
dep.DeploymentProgressChanged += new
DeploymentProgressChangedEventHandler(Client.ProgressCha
nged);
dep.BindCompleted += new
BindCompletedEventHandler(Client.BindCompleted);
dep.BindAsync(null);
}
public static void BindCompleted(object sender,
BindCompletedEventArgs e)
{
System.Console.WriteLine(e.ToString());
}
public static void ProgressChanged(object sender,
DeploymentProgressChangedEventArgs e)
{
System.Console.WriteLine(e.ProgressPercentage);
}
}
* * * * * * * * * * * * * * * * * * *
上記の明細、実施例、およびデータは、本発明の実装の構造および使用に関する完全な説明となっている。本発明の多くの実施形態は、本発明の精神と範囲を逸脱することなく実装できるため、本発明は付属の請求項によって定められる。
Claims (18)
- アプリケーションに関連するアプリケーションパッケージであって、ユーザによる前記アプリケーションとの対話的操作を可能にするために必要な最小限のコードを含むアプリケーションパッケージを識別するステップと、
前記識別されたアプリケーションパッケージを、ローカルのストアにダウンロードするステップと、
前記ローカルのストアを含むクライアントから前記アプリケーションに関連する複数の追加のリソースのうちの1つに対する要求を受け取ると、前記追加のリソースをダウンロードするステップであって、前記複数の追加のリソースのうちの1つに対する要求は、前記アプリケーションパッケージに含まれたコードを実行する前記クライアントが、対応するユーザの操作に応じて発生させるステップと、
前記アプリケーションをクライアントサイドのアプリケーションに遷移させるための要求を受け取ると、残りのリソースを前記ローカルのストアにダウンロードするステップであって、前記アプリケーションをクライアントサイドのアプリケーションに遷移させるための要求は、対応するユーザの操作なしに作成されるステップと
をコンピュータに実行させることを特徴とするプログラム。 - 前記アプリケーションパッケージの識別は、前記アプリケーションに関連するハイパーリンクをアクティブにすることを含むことを特徴とする請求項1に記載のプログラム。
- 前記アプリケーションパッケージの識別は、前記アプリケーションパッケージを識別するマニフェストの検索を開始することを含むことを特徴とする請求項1に記載のプログラム。
- 前記アプリケーションパッケージはアプリケーションのマニフェストを含むことを特徴とする請求項1に記載のプログラム。
- 前記アプリケーションパッケージに含まれたコードは実行可能形式であることを特徴とする請求項1に記載のプログラム。
- 前記アプリケーションに関連するウェブページ上のハイパーリンクをアクティブにすると、前記アプリケーションに関連する追加のリソースをダウンロードするステップをさらにコンピュータに実行させることを特徴とする請求項1に記載のプログラム。
- 前記追加のリソースはオンデマンドのリソースを含むことを特徴とする請求項6に記載のプログラム。
- 前記オンデマンドのリソースを前記ローカルのストアに格納するステップをさらにコンピュータに実行させることを特徴とする請求項7に記載のプログラム。
- 前記アプリケーションを前記クライアントサイドのアプリケーションに遷移させることは、複数の残りのリソースを前記ローカルのストアに格納することを含み、前記複数の残りのリソースは、前記ローカルのストアに現在格納されていないリソースであることを特徴とする請求項1に記載のプログラム。
- 前記アプリケーションを前記クライアントサイドのアプリケーションに遷移させることは、前記クライアントサイドのアプリケーションがオフラインで起動されたとき、前記クライアントサイドのアプリケーションの実行が前記アプリケーションに関連付けられた状態で再開するように、前記アプリケーションに関連付けられた状態を前記クライアントサイドのアプリケーションに遷移させることを含むことを特徴とする請求項1に記載のプログラム。
- 前記状態の情報は前記アプリケーションに関連するアプリケーションオブジェクトに格納されることを特徴とする請求項10に記載のプログラム。
- ウェブアプリケーションをクライアントサイドのアプリケーションに遷移させる方法であって、コンピュータのプロセッサが、
アプリケーションに関連するアプリケーションパッケージであって、ユーザのアプリケーションに対する対話的操作を可能にするために必要な最小限のコードを含むアプリケーションパッケージを識別するステップと、
前記識別されたアプリケーションパッケージをローカルのストアにダウンロードするステップと、
前記ローカルのストアを含むクライアントから前記アプリケーションに関連する複数の追加のリソースのうちの1つに対する要求を受け取ると、前記追加のリソースをダウンロードするステップであって、前記複数の追加のリソースのうちの1つに対する要求は、前記アプリケーションパッケージに含まれたコードを実行する前記クライアントが、対応するユーザの操作に応じて発生させるステップと、
前記アプリケーションを前記クライアントサイドのアプリケーションに遷移させるための要求を受け取ると、残りのリソースを前記ローカルのストアにダウンロードするステップであって、前記アプリケーションを前記クライアントサイドのアプリケーションに遷移させるための要求は、対応するユーザの操作なしに作成されるステップと
を含むことを特徴とする方法。 - 前記アプリケーションを前記クライアントサイドのアプリケーションに遷移させるための要求は、前記ローカルのストアに現在格納されている追加のリソースの数に基づくことを特徴とする請求項12に記載の方法。
- 前記アプリケーションの遷移に対する要求は自律的に発生することを特徴とする請求項13に記載の方法。
- 前記アプリケーションパッケージはアプリケーションのマニフェストおよびコードを含み、前記アプリケーションのマニフェストは前記アプリケーションに関するリソースのサブセットを一意に識別することを特徴とする請求項12に記載の方法。
- 前記プロセッサが、
前記追加のリソースがローカルで利用可能であるかどうかを判断するステップと、利用可能である場合、前記追加のリソースをダウンロードせずに、前記追加のリソースを利用するステップとをさらに含むことを特徴とする請求項12に記載の方法。 - 前記残りのリソースは、前記ローカルのストアに現在格納されていない複数の追加のリソースからの追加のサブセットであることを特徴とする請求項12に記載の方法。
- 前記アプリケーションを前記クライアントサイドのアプリケーションに遷移させることは、前記クライアントサイドのアプリケーションがオフラインで起動されたとき、前記クライアントサイドのアプリケーションの実行が、遷移したときの前記アプリケーションに関連付けられた状態で再開するように、前記アプリケーションに関する状態を前記クライアントサイドのアプリケーションに遷移させることを含むことを特徴とする請求項12に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/692,323 | 2003-10-23 | ||
US10/692,323 US20040237082A1 (en) | 2003-05-22 | 2003-10-23 | System, method, and API for progressively installing software application |
PCT/US2004/023546 WO2005045562A2 (en) | 2003-10-23 | 2004-07-21 | Progressively installing a software application |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007519071A JP2007519071A (ja) | 2007-07-12 |
JP4796966B2 true JP4796966B2 (ja) | 2011-10-19 |
Family
ID=34573192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006536561A Expired - Fee Related JP4796966B2 (ja) | 2003-10-23 | 2004-07-21 | ソフトウェアアプリケーションをプログレッシブインストールするためのシステムおよび方法およびapi |
Country Status (6)
Country | Link |
---|---|
US (1) | US20040237082A1 (ja) |
EP (1) | EP1597654A4 (ja) |
JP (1) | JP4796966B2 (ja) |
KR (1) | KR20060114615A (ja) |
CN (1) | CN1961307A (ja) |
WO (1) | WO2005045562A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3040857A1 (en) | 2015-01-05 | 2016-07-06 | Fujitsu Limited | Application providing method, application providing server, and application providing program |
Families Citing this family (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040040023A1 (en) * | 2002-08-22 | 2004-02-26 | Ellis David G. | Remote identification loader |
US7395534B2 (en) | 2003-05-22 | 2008-07-01 | Microsoft Corporation | System and method for progressively installing a software application |
US8930944B2 (en) | 2003-11-18 | 2015-01-06 | Microsoft Corporation | Application model that integrates the web experience with the traditional client application experience |
US8302020B2 (en) | 2004-06-25 | 2012-10-30 | Apple Inc. | Widget authoring and editing environment |
US7490295B2 (en) | 2004-06-25 | 2009-02-10 | Apple Inc. | Layer for accessing user interface elements |
US8566732B2 (en) | 2004-06-25 | 2013-10-22 | Apple Inc. | Synchronization of widgets and dashboards |
US8453065B2 (en) * | 2004-06-25 | 2013-05-28 | Apple Inc. | Preview and installation of user interface elements in a display environment |
US8543931B2 (en) | 2005-06-07 | 2013-09-24 | Apple Inc. | Preview including theme based installation of user interface elements in a display environment |
US7954064B2 (en) | 2005-10-27 | 2011-05-31 | Apple Inc. | Multiple dashboards |
US7752556B2 (en) | 2005-10-27 | 2010-07-06 | Apple Inc. | Workflow widgets |
US7743336B2 (en) | 2005-10-27 | 2010-06-22 | Apple Inc. | Widget security |
US9104294B2 (en) | 2005-10-27 | 2015-08-11 | Apple Inc. | Linked widgets |
US8543824B2 (en) | 2005-10-27 | 2013-09-24 | Apple Inc. | Safe distribution and use of content |
US7707514B2 (en) | 2005-11-18 | 2010-04-27 | Apple Inc. | Management of user interface elements in a display environment |
US7484084B1 (en) * | 2005-12-20 | 2009-01-27 | Netapp, Inc. | Use of a baseboard management controller to facilitate installation of firmware in a processing system |
US20070174824A1 (en) * | 2006-01-23 | 2007-07-26 | Microsoft Corporation | Techniques for generating and executing browser-hosted applications |
GB2440170B8 (en) | 2006-07-14 | 2014-07-16 | Vodafone Plc | Digital rights management |
US8869027B2 (en) | 2006-08-04 | 2014-10-21 | Apple Inc. | Management and generation of dashboards |
US20080168368A1 (en) * | 2007-01-07 | 2008-07-10 | Louch John O | Dashboards, Widgets and Devices |
US8954871B2 (en) | 2007-07-18 | 2015-02-10 | Apple Inc. | User-centric widgets and dashboards |
US8667415B2 (en) | 2007-08-06 | 2014-03-04 | Apple Inc. | Web widgets |
CN101453416A (zh) * | 2007-11-30 | 2009-06-10 | 国际商业机器公司 | 用于远程程序安装的包预取的服务节点、网络及其方法 |
US20090183182A1 (en) * | 2008-01-10 | 2009-07-16 | Microsoft Corporation | Dynamic Composition of Virtualized Applications |
GB2459682B (en) * | 2008-04-30 | 2012-04-25 | Vmware Inc | A computer system and a method of deploying an application in a computer system |
US8776038B2 (en) | 2008-08-07 | 2014-07-08 | Code Systems Corporation | Method and system for configuration of virtualized software applications |
US8434093B2 (en) | 2008-08-07 | 2013-04-30 | Code Systems Corporation | Method and system for virtualization of software applications |
US8065617B2 (en) * | 2008-08-28 | 2011-11-22 | Microsoft Corporation | Discovering alternative user experiences for websites |
US20100115471A1 (en) * | 2008-11-04 | 2010-05-06 | Apple Inc. | Multidimensional widgets |
CN101452402B (zh) * | 2008-11-28 | 2012-05-30 | 珠海金山快快科技有限公司 | 软件运行***和软件运行方法 |
US8069247B2 (en) * | 2008-12-03 | 2011-11-29 | Verizon Data Services Llc | Application launcher systems, methods, and apparatuses |
US10656931B2 (en) * | 2009-05-26 | 2020-05-19 | Comcast Cable Communications, Llc | Network event triggered software updates |
US8230078B2 (en) * | 2009-08-18 | 2012-07-24 | International Business Machines Corporation | Accept and receive enhancements |
US8954958B2 (en) | 2010-01-11 | 2015-02-10 | Code Systems Corporation | Method of configuring a virtual application |
US9883008B2 (en) | 2010-01-15 | 2018-01-30 | Endurance International Group, Inc. | Virtualization of multiple distinct website hosting architectures |
US20130204746A1 (en) * | 2012-01-11 | 2013-08-08 | Endurance International Group, Inc. | Automatic web presence feature deployment |
US9277022B2 (en) | 2010-01-15 | 2016-03-01 | Endurance International Group, Inc. | Guided workflows for establishing a web presence |
US9104517B2 (en) | 2010-01-27 | 2015-08-11 | Code Systems Corporation | System for downloading and executing a virtual application |
US8959183B2 (en) * | 2010-01-27 | 2015-02-17 | Code Systems Corporation | System for downloading and executing a virtual application |
US9229748B2 (en) | 2010-01-29 | 2016-01-05 | Code Systems Corporation | Method and system for improving startup performance and interoperability of a virtual application |
US8763009B2 (en) | 2010-04-17 | 2014-06-24 | Code Systems Corporation | Method of hosting a first application in a second application |
US8782106B2 (en) | 2010-07-02 | 2014-07-15 | Code Systems Corporation | Method and system for managing execution of virtual applications |
KR101702618B1 (ko) * | 2010-07-09 | 2017-02-03 | 삼성전자주식회사 | 어플리케이션 관련 관리 객체를 제공하는 장치 및 방법 |
US9021015B2 (en) | 2010-10-18 | 2015-04-28 | Code Systems Corporation | Method and system for publishing virtual applications to a web server |
US9209976B2 (en) | 2010-10-29 | 2015-12-08 | Code Systems Corporation | Method and system for restricting execution of virtual applications to a managed process environment |
JP5760716B2 (ja) | 2011-03-30 | 2015-08-12 | 富士通株式会社 | アプリ提供システム、アプリ提供方法、情報処理装置及び情報処理プログラム |
JP5686046B2 (ja) | 2011-03-31 | 2015-03-18 | 富士通株式会社 | アプリ提供システム、アプリ提供方法及びアプリ提供プログラム |
US9329851B2 (en) | 2011-09-09 | 2016-05-03 | Microsoft Technology Licensing, Llc | Browser-based discovery and application switching |
KR101891337B1 (ko) * | 2011-10-06 | 2018-08-29 | 주식회사 케이티 | 단말 및 그의 애플리케이션 실행을 위한 모듈 조회 방법 |
US20130110661A1 (en) * | 2011-10-28 | 2013-05-02 | Microsoft Corporation | Application store delivered platform components |
US20130219383A1 (en) * | 2012-02-16 | 2013-08-22 | Israel Hilerio | Using an Application Cache to Update Resources of Installed Applications |
CN103257868B (zh) * | 2012-02-20 | 2016-12-28 | 联想(北京)有限公司 | 安装程序的方法和装置 |
JP6207163B2 (ja) | 2013-01-30 | 2017-10-04 | キヤノン株式会社 | クライアント、サーバー、管理システム及びその方法 |
US9880824B2 (en) | 2015-06-05 | 2018-01-30 | Apple Inc. | On demand resources |
US10447812B2 (en) | 2015-06-05 | 2019-10-15 | Apple Inc. | On demand resources |
US20170052773A1 (en) * | 2015-08-17 | 2017-02-23 | Google Inc. | Application installs using remote applications |
CN105391757B (zh) * | 2015-10-09 | 2018-09-25 | 南京工程学院 | 一种高安全性的软件安装方法 |
US20170269916A1 (en) * | 2016-03-21 | 2017-09-21 | Microsoft Technology Licensing, Llc | Selective Application Installation Or Application Running Without Installation |
US10432549B1 (en) * | 2016-06-29 | 2019-10-01 | EMC IP Holding Company LLC | Method and system for scope-sensitive loading of software resources |
US9871905B1 (en) * | 2016-08-09 | 2018-01-16 | Sprint Communications Company L.P. | Systems and methods for customized delivery of virtually installed applications |
CN108287758A (zh) * | 2017-01-09 | 2018-07-17 | 阿里巴巴集团控股有限公司 | 一种应用资源管理方法、使用方法及装置 |
EP3602283A1 (en) * | 2017-03-23 | 2020-02-05 | MZ IP Holdings, LLC | System and method for reducing start-up times for software applications |
CN110678819B (zh) * | 2017-05-25 | 2023-03-28 | Ls产电株式会社 | 控制程序运行方法 |
US20190079788A1 (en) * | 2017-09-08 | 2019-03-14 | Cisco Technology, Inc. | Predictive image storage system for fast container execution |
US11237843B2 (en) * | 2018-03-05 | 2022-02-01 | Beijing Zhanxinzhanli Information Technology Co., Ltd. | Application-level runtime environment for executing applications native to mobile devices without full installation |
US10891017B1 (en) | 2018-08-25 | 2021-01-12 | Sprint Communications Company L.P. | Rotating icon selection and interaction software development kit (SDK) |
EP3621266B1 (de) * | 2018-09-05 | 2021-07-28 | Siemens Aktiengesellschaft | Verfahren zum betrieb eines webservers |
US20200089779A1 (en) * | 2018-09-19 | 2020-03-19 | Twitter, Inc. | Progressive API Responses |
EP3977269B1 (en) | 2019-05-24 | 2023-06-07 | Assa Abloy Ab | Enabling upgrading firmware of a target device |
US20220166762A1 (en) * | 2020-11-25 | 2022-05-26 | Microsoft Technology Licensing, Llc | Integrated circuit for obtaining enhanced privileges for a network-based resource and performing actions in accordance therewith |
US20230221797A1 (en) * | 2022-01-13 | 2023-07-13 | Meta Platforms Technologies, Llc | Ephemeral Artificial Reality Experiences |
US12026527B2 (en) | 2022-05-10 | 2024-07-02 | Meta Platforms Technologies, Llc | World-controlled and application-controlled augments in an artificial-reality environment |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2053261A1 (en) * | 1989-04-28 | 1990-10-29 | Gary D. Hornbuckle | Method and apparatus for remotely controlling and monitoring the use of computer software |
US5835777A (en) * | 1996-03-20 | 1998-11-10 | Hewlett-Packard Company | Method of automatically generating a software installation package |
US6272556B1 (en) * | 1996-07-01 | 2001-08-07 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for migrating a client-server application (#5) |
EP1786211A3 (en) * | 1996-09-11 | 2009-07-29 | Panasonic Corporation | Program reception/execution apparatus that can commence execution of a machine program having only received the program in part, and a program transmission apparatus that enables such execution |
US5960204A (en) * | 1996-10-28 | 1999-09-28 | J.D. Edwards World Source Company | System and method for installing applications on a computer on an as needed basis |
US6347398B1 (en) * | 1996-12-12 | 2002-02-12 | Microsoft Corporation | Automatic software downloading from a computer network |
US5995756A (en) * | 1997-02-14 | 1999-11-30 | Inprise Corporation | System for internet-based delivery of computer applications |
US6496979B1 (en) * | 1997-10-24 | 2002-12-17 | Microsoft Corporation | System and method for managing application installation for a mobile device |
US6226747B1 (en) * | 1998-04-10 | 2001-05-01 | Microsoft Corporation | Method for preventing software piracy during installation from a read only storage medium |
US6381742B2 (en) * | 1998-06-19 | 2002-04-30 | Microsoft Corporation | Software package management |
US6574618B2 (en) * | 1998-07-22 | 2003-06-03 | Appstream, Inc. | Method and system for executing network streamed application |
US6289512B1 (en) * | 1998-12-03 | 2001-09-11 | International Business Machines Corporation | Automatic program installation |
US6510466B1 (en) * | 1998-12-14 | 2003-01-21 | International Business Machines Corporation | Methods, systems and computer program products for centralized management of application programs on a network |
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 |
US6282711B1 (en) * | 1999-08-10 | 2001-08-28 | Hewlett-Packard Company | Method for more efficiently installing software components from a remote server source |
US6715144B2 (en) * | 1999-12-30 | 2004-03-30 | International Business Machines Corporation | Request based automation of software installation, customization and activation |
US6654888B1 (en) * | 1999-12-31 | 2003-11-25 | International Business Machines Corporation | Installing and controlling trial software |
US6546554B1 (en) * | 2000-01-21 | 2003-04-08 | Sun Microsystems, Inc. | Browser-independent and automatic apparatus and method for receiving, installing and launching applications from a browser on a client computer |
US6931546B1 (en) * | 2000-01-28 | 2005-08-16 | Network Associates, Inc. | System and method for providing application services with controlled access into privileged processes |
US7225460B2 (en) * | 2000-05-09 | 2007-05-29 | International Business Machine Corporation | Enterprise privacy manager |
US6698018B1 (en) * | 2000-05-10 | 2004-02-24 | Microsoft Corporation | System and method of multiple-stage installation of a suite of applications |
JP2004531780A (ja) * | 2000-06-22 | 2004-10-14 | マイクロソフト コーポレーション | 分散型コンピューティングサービスプラットフォーム |
US6959320B2 (en) * | 2000-11-06 | 2005-10-25 | Endeavors Technology, Inc. | Client-side performance optimization system for streamed applications |
US7062567B2 (en) * | 2000-11-06 | 2006-06-13 | Endeavors Technology, Inc. | Intelligent network streaming and execution system for conventionally coded applications |
US6918113B2 (en) * | 2000-11-06 | 2005-07-12 | Endeavors Technology, Inc. | Client installation and execution system for streamed applications |
US20020188941A1 (en) * | 2001-06-12 | 2002-12-12 | International Business Machines Corporation | Efficient installation of software packages |
US7111055B2 (en) * | 2001-08-30 | 2006-09-19 | Sun Microsystems, Inc. | Method and apparatus to facilitate automated software installation on remote computers over a network |
WO2003029971A1 (en) * | 2001-10-04 | 2003-04-10 | Accretive Technology Group, Inc. | Incentive system for distributing software over a computer network |
US20030145316A1 (en) * | 2002-01-25 | 2003-07-31 | Mckinlay Eric | System, method and computer program product for initiating a software download |
US7028295B2 (en) * | 2001-10-31 | 2006-04-11 | Seiko Epson Corporation | Dynamic java class loading for application execution |
AU2002230410A1 (en) * | 2001-11-15 | 2003-06-10 | Aladdin Knowledge Systems, Ltd. | Incrementally increasing or decreasing the available functionalities of a computer program |
JP3908944B2 (ja) * | 2001-11-30 | 2007-04-25 | ソフトバンクモバイル株式会社 | 携帯通信機器 |
US6993760B2 (en) * | 2001-12-05 | 2006-01-31 | Microsoft Corporation | Installing software on a mobile computing device using the rollback and security features of a configuration manager |
US7028296B2 (en) * | 2001-12-13 | 2006-04-11 | International Business Machines Corporation | Distributing computer programs to a customer's multiple client computers through a hypertext markup language document distributed to and stored on the customer's network server computer |
US7203940B2 (en) * | 2002-04-29 | 2007-04-10 | Hewlett-Packard Development Company, Lp. | Automated installation of an application |
EP1361509B1 (en) * | 2002-05-08 | 2013-07-10 | Sap Ag | Software delivery manager |
US20040003390A1 (en) * | 2002-06-27 | 2004-01-01 | Microsoft Corporation | System and method for installing a software application in a non-impactfull manner |
US7395534B2 (en) * | 2003-05-22 | 2008-07-01 | Microsoft Corporation | System and method for progressively installing a software application |
-
2003
- 2003-10-23 US US10/692,323 patent/US20040237082A1/en not_active Abandoned
-
2004
- 2004-07-21 CN CNA2004800012465A patent/CN1961307A/zh active Pending
- 2004-07-21 WO PCT/US2004/023546 patent/WO2005045562A2/en active Application Filing
- 2004-07-21 JP JP2006536561A patent/JP4796966B2/ja not_active Expired - Fee Related
- 2004-07-21 KR KR1020057007600A patent/KR20060114615A/ko not_active Application Discontinuation
- 2004-07-21 EP EP04778868A patent/EP1597654A4/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3040857A1 (en) | 2015-01-05 | 2016-07-06 | Fujitsu Limited | Application providing method, application providing server, and application providing program |
Also Published As
Publication number | Publication date |
---|---|
US20040237082A1 (en) | 2004-11-25 |
EP1597654A4 (en) | 2008-12-24 |
WO2005045562A3 (en) | 2007-05-03 |
CN1961307A (zh) | 2007-05-09 |
KR20060114615A (ko) | 2006-11-07 |
WO2005045562A2 (en) | 2005-05-19 |
EP1597654A2 (en) | 2005-11-23 |
JP2007519071A (ja) | 2007-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4796966B2 (ja) | ソフトウェアアプリケーションをプログレッシブインストールするためのシステムおよび方法およびapi | |
US8448161B2 (en) | Application tracking for application execution environment | |
US7930273B1 (en) | Version management for application execution environment | |
US8375381B1 (en) | Management user interface for application execution environment | |
US7395534B2 (en) | System and method for progressively installing a software application | |
US8930944B2 (en) | Application model that integrates the web experience with the traditional client application experience | |
US9727327B1 (en) | Software distribution framework | |
US8171470B2 (en) | Software installation and support | |
US8191060B2 (en) | Software installation using template executables | |
US8136100B1 (en) | Software installation and icon management support | |
US8230417B1 (en) | Combined application and execution environment install | |
US20140040877A1 (en) | Application execution and installation environment | |
US20080295110A1 (en) | Framework for Startup of Local Instance of Remote Application | |
US8640121B2 (en) | Facilitating multi-installer product installations | |
JP2003521036A (ja) | クライアント・コンピュータのブラウザからアプリケーションを受取り、インストールしかつランチするためのブラウザ独立及び自動装置及び方法 | |
JP2005338940A (ja) | インストール方法、情報処理装置、及びデバイスドライバ | |
JPH09305408A (ja) | アプリケーション実行方法 | |
US20100318967A1 (en) | Supplementary deployment actions | |
JP2006163840A (ja) | 情報処理装置及びその方法 | |
US20110289192A1 (en) | Controlling a running application for live scene graph editing | |
Hane | Build your own PaaS with Docker | |
Jaygarl et al. | Professional Tizen Application Development | |
KR20110123513A (ko) | 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치 및 방법 | |
JP2003330719A (ja) | アプリケーションのバージョン/リリースコントロール方法及びシステム、クライアントpcにインストールするアプリケーションのバージョン/リリースコントロールを行なうためのコンピュータソフトウエアプログラム | |
Kotaru | Upgrading Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070718 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100730 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101101 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110111 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110411 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110701 |
|
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: 20110801 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4796966 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140805 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |