[go: up one dir, main page]

JP5409767B2 - 展開可能オブジェクト階層内におけるアプリケーション管理 - Google Patents

展開可能オブジェクト階層内におけるアプリケーション管理 Download PDF

Info

Publication number
JP5409767B2
JP5409767B2 JP2011500835A JP2011500835A JP5409767B2 JP 5409767 B2 JP5409767 B2 JP 5409767B2 JP 2011500835 A JP2011500835 A JP 2011500835A JP 2011500835 A JP2011500835 A JP 2011500835A JP 5409767 B2 JP5409767 B2 JP 5409767B2
Authority
JP
Japan
Prior art keywords
application
object hierarchy
user
computer
computing environment
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.)
Active
Application number
JP2011500835A
Other languages
English (en)
Other versions
JP2011515763A (ja
JP2011515763A5 (ja
Inventor
アミガ,オリ
マッキンタイア,ジョン
シュクラ,ダールマ
ジャーン,ジュンフェン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2011515763A publication Critical patent/JP2011515763A/ja
Publication of JP2011515763A5 publication Critical patent/JP2011515763A5/ja
Application granted granted Critical
Publication of JP5409767B2 publication Critical patent/JP5409767B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Description

[0001] 多くのコンピューティング環境は、大きく多様なオブジェクトの集合を備えており、これらは1組のオブジェクト・システムによって管理されている。例えば、あるコンピューティング環境は、1つのファイル・システムによって管理される1組のファイルと、1つのデーターベース・システムによって管理される1つ又は複数のデーターベースと、アプリケーションを表し1つのアセンブリ・キャッシュによって管理される1組のエクゼキュータブル・バイナリー(executable binaries)と、オペレーティング・システムのユーザー・プロファイル・コンポーネントによって管理される1組のユーザー・プロファイルと、データー・キャッシュ・コンポーネントによって管理される種々のデーター・キャッシュとを備えていることがある。種々のデーター・キャッシュとは、オペレーティング・システムのコピー・バッファによって管理される1組のコピーされた項目、オペレーティング・システムの実行取り消し(undo)コンポーネントによって管理される1組の実行取り消し行為、およびオペレーティング・システムの項目使用追跡コンポーネントによって管理される1組の「最新使用」項目等である。更に、このようなオブジェクトは、一人以上のユーザーによってそして1つ又は複数の動作(例えば、2つのオブジェクト集合を併合するオブジェクト同期動作、およびソース・オブジェクト集合と一致するように目標オブジェクト集合を調節するオブジェクト・ミラーリング動作)にしたがって動作する複数のデバイス間で交換することもできる。このように、オブジェクトは、1組のオブジェクト・システムを通じて疎に編成されており、一体となってコンピューティング環境を表す。
[0002] 従来のコンピューティング環境内におけるアプリケーション管理は、かなりのユーザー関与を伴うことが多かった。例えば、ユーザーは、所望のアプリケーションを独立して発見することができ、そしてセットアップ・エクゼキュータブルまたはセットアップ・ファイルを収容したCD−ROMのようなインストーラー・パッケージを調達することができる。次いで、ユーザーは、ファイルを特定の場所にコピーし登録情報を作成することによってというようにして、コンピューティング環境におけるアプリケーションの展開を容易にするアプリケーション・インストーラーを利用することができる。しかしながら、アプリケーションの展開後では、コンピューティング環境は、当該アプリケーションに対して継続サポートを殆ど提供しないのが通例であり、アンインストーラー・アプリケーションしか備えていないこともときにはある。実行、共有、同期、および更新というような共通の維持作業は、アプリケーションに委ねられているのが普通である。更に、1つのコンピューター・システムにアプリケーションを展開した場合でも、2つ以上のこのようなプラットフォームにおいて共通の目的のために同じユーザーによって操作され利用されるのであっても、他のコンピューター・システムまたはデバイスにおける当該アプリケーションの展開が可能になることや容易になることは希である。
[0003] この摘要は、以下で詳細の説明において更に説明する概念から選択したものを簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の鍵となる要素または必須の特徴を特定することを意図するのでなければ、特許請求する主題の範囲を限定するために用いることを意図するのでもない。
[0004]
コンピューティングシステム内において、オブジェクトがちぐはぐで疎に纏められたオブジェクト・システムの集合として編成されているために、様々な問題を生ずる可能性がある。例えば、種々のデバイスを通じてユーザーに一貫性のあるコンピューティング環境を提示することが、特にデバイスの能力にばらつきがある場合(例えば、高性能パーソナル・ワークステーション、ブラウザー主体の公衆端末、および低性能のセルフォン・デバイス)、困難な場合がある。別の例として、同期およびバックアップというようなサービスをオブジェクトに適用するには、各オブジェクト・システムとインターフェースして、それによって管理されているオブジェクトに作用させなければならないことがあり、このようなインターフェースはオブジェクト・システム間で多様に異なる場合がある。第3の例として、多種多様なオブジェクトの集合(アプリケーションを構成するオブジェクトの全てというようなオブジェクト集合)を関係付けることは、管理するオブジェクト・システムの協同が不完全なために、困難になる場合がある。
[0005] コンピューティング環境を構成するオブジェクトを表すための代わりの技法では、オブジェクトをオブジェクト階層に編成する必要があり、このオブジェクト階層をコンピューティング環境ホストによってホストすることができる。オブジェクトがオブジェクト・システムによって均一に表現され一貫性のある方法で管理されていれば、このコンピューティング環境のオブジェクトの全てに適用するために、1組のサービスを交換することができる。更に、オブジェクト階層を種々のデバイスに配信して、同じコンピューティング環境(同じユーザー・プロファイル、アプリケーション、データー・ファイル等を含む)を表すことができ、各デバイスは、そのコンピューティング環境を一貫性のある態様でレンダリングするが、当該デバイスの能力(例えば、ワークステーションに取り付けられているキーボード・デバイスからのデーター入力を受けるためのハード・キーボード・インターフェース、およびセルフォン・デバイスからのデーター入力を受けるためのタッチスクリーン・ソフトウェア・キーボード・インターフェース)に基づいてカスタム化することができる。
[0006] この特質があるオブジェクト階層内では、アプリケーション管理タスクを実行することができる。コンピューティング環境ホストは、アプリケーションの取得、アプリケーションのデバイスとの関連付け、およびアプリケーションのデバイス上での展開を容易にすることができる。展開可能なオブジェクト階層においてアプリケーションを1組のオブジェクトとして表現すると、共通アプリケーション管理タスクをやり易くすることができる。第1の例として、アプリケーションを容易に展開することができ、そして多くの想定場面では、オブジェクト階層において表されている複数のコンピューター・システムおよびデバイス上において自動的に展開することができる。例えば、アプリケーションの第1バージョンをワークステーションに展開することができ、このアプリケーションの第2バージョンを、公衆端末で用いるためのウェブまたはウェブ対応アプリケーションとして展開することができ、このアプリケーションの第3バージョンを、低電力セルフォン・デバイス上で用いるための縮減機能アプリケーションとして展開することができる。第2の例として、コンピューティング環境ホストは、オブジェクト階層をしかるべく調節し、オブジェクト階層のホストされているバージョンと展開されたバージョンとを同期させることによって調節をデバイスに展開することによって、アプリケーションの更新を容易にすることができる(例えば、アプリケーション・リソースの更新バージョンとのパッチング、またはアプリケーションと用いるための新たなコンテンツの展開)。
[0007] 更に、展開可能なオブジェクト階層においてアプリケーションを1組のオブジェクトとして表現すると、新たな機構が可能になることがある。第1の例として、コンピューティング環境は、オブジェクト階層の具体的な部分を第2のユーザーのデバイス、コンピューター・システム、またはコンピューティング環境ホストに展開することによって、ユーザーがアプリケーションを第2のユーザーと、またはアプリケーション・セッションの態様(aspect)と共有することを可能にすることができる。例えば、第1ユーザーは、メディア・プレーヤー・アプリケーションを通じて第1コンピューター上で再生するために1組の歌オブジェクトを選択することができ、更に第2ユーザーとのメディア・プレーヤー・アプリケーション・セッションを共有することを選択することができる(例えば、メディア・プレーヤー・アプリケーションのオーディオを第2のユーザーにストリーミングすることによって)。第2の例として、アプリケーションのコンフィギュレーションを、オブジェクト階層の一部として、デバイスおよびコンピューター・システム間で同期させることができる。デバイスには依存しないアプリケーション・プロパティ(例えば、スペル・チェック辞書に追加される特定用途向けの単語)を自動的にこのようなデバイスおよびコンピューター・システムの全てに伝搬させることができ、一方デバイス特定のアプリケーション・プロパティを、コンピューティング環境ホストによって、それぞれのデバイスに合わせて指定することができる。このように、コンピューティング環境ホストのアプリケーション管理サービスは、一人以上のユーザーによって操作される種々のコンピューター・システムおよびデバイス上における、アプリケーションの発見、展開、使用、および除去をサポートすることができる。
[0008] 以上の目的および関連する目的の遂行のために、以下の説明および添付図面は、ある種の例示的態様および実施態様を詳述する。しかし、これらは、1つ又は複数の態様を用いることができる種々の方法の内、そのわずかを示すに過ぎない。本開示のその他の態様、利点、および新規な特徴は、添付図面と合わせて検討したときに、以下の詳細な説明から明白となろう。
図1は、コンピューティング環境における典型的なアプリケーションのライフ・サイクルの図である。 図2は、コンピューティング環境ホストの種々のコンピューティング環境レンダリング・デバイスとの相互作用の一例を示す。 図3は、デバイス上においてコンピューティング環境を表すオブジェクト階層において、アプリケーションの展開を管理する方法例を示す流れ図である。 図4は、アプリケーション・ストアによって管理されている少なくとも1つのアプリケーションの、少なくとも1つのデバイス上においてコンピューティング環境を表すオブジェクト階層に対する展開を管理する例示的システムを示すコンポーネント・ブロック図である。 図5は、少なくとも1つのデバイス上においてコンピューティング環境を表すオブジェクト階層へのアプリケーションの展開を管理する別の例示的システムを示すコンポーネント・ブロック図である。 図6は、少なくとも1つのデバイス上においてコンピューティング環境を表すオブジェクト階層へのアプリケーションの展開を管理する更に別の例示的システムを示すコンポーネント・ブロック図である。 図7は、少なくとも1つのデバイス上においてコンピューティング環境を表すオブジェクト階層へのアプリケーションの展開を管理する例示的システムの一部のコンポーネント・ブロック図である。 図8は、少なくとも1つのデバイス上においてコンピューティング環境を表すオブジェクト階層へのアプリケーションの展開を管理する例示的システムの別の一部のコンポーネント・ブロック図である。 図9は、少なくとも1つのデバイス上においてコンピューティング環境を表すオブジェクト階層へのアプリケーションの展開を管理する例示的システムの更に別の一部のコンポーネント・ブロック図である。 図10は、少なくとも1つのデバイス上においてコンピューティング環境を表すオブジェクト階層へのアプリケーションの展開を管理するシステムの更に別の例を示すコンポーネント・ブロック図である。 図11は、本明細書において明記する機能(provision)の1つ又は複数を実現することができるコンピューティング環境例を示す。
[0020] これより、図面を参照しながら特許請求する主題について説明する。図面において、同様の参照番号が、同様の要素を示すために全体を通じて用いられている。以下の記載では、説明の目的上、特許請求する主題の完全な理解が得られるようにするために、多数の具体的な詳細を明記する。しかしながら、特許請求する主題は、これら具体的な詳細がなくても実施可能であることは明白であろう。他方において、周知の構造およびデバイスは、特許請求する主題を記載し易くするために、ブロック図で示されている。
[0021] 従来のコンピューティング環境は、大規模且つ様々なアプリケーション系列を含み、クロックおよび計算器のような単純な目的の小型ツールから、ソフトウェア統合開発環境および生産性スイートのような複雑で相互に関係するアプリケーションの大型スイートまでの範囲に及ぶ。また、アプリケーションは、マルチメディア・プレーヤーおよびそれによってレンダリングされるメディア・オブジェクト(例えば、リーダー・アプリケーションによってレンダリングする1つ又は複数の電子書籍)、ゲーム、スクリーン・セイバー、種々の形式のハードウェアを管理するデバイス・ドライバ等のような媒体も備えていることもある。アプリケーションは、ローカルに(例えば、ユーザーのデバイスに展開されているエクゼキュータブル・バイナリーおよびリソースによって)展開すること、リモートに(例えば、リモート・サーバー上で実行し、ウェブ・ブラウザーを通じてユーザーと通信するウェブ・アプリケーション)展開することができ、あるいはその組み合わせも可能である(例えば、ネットワーク・アクセス可能な電子メール・アーカイブにアクセスするように構成されている電子メール・クライアントのような、リモート・リソースを利用する、ローカルにインストールされているアプリケーション)。通常、オペレーティング・システムがホストに供給されてアプリケーションを維持管理し、更にアプリケーション・ランチャー(application launcher)および関係のあるデーター・オブジェクトとの関連を通じて、アプリケーションへのユーザー・アクセスを提供する。
[0022] 図1は、コンピューティング環境においてアプリケーションが辿る典型的なアプリケーション・ライフ・サイクル10を示す。アプリケーション・ライフ・サイクル10は、典型的なコンピューティング環境において遂行され、データー・オブジェクトをコピーする、コンフィギュレーション情報を書き込むおよび読み取る、ならびにオブジェクトを要求してコンピューター・ネットワークを通じてサーバーから受信するというような、かなりの数の動作を伴うことがある。アプリケーション・ライフ・サイクル10は、通常調達12から始まり、ユーザーは、コンピューティング環境においてアクセス可能にするアプリケーションを選択する。調達12は、通例、発見14を含む。ユーザーは、アプリケーション・ライブラリーのユーザー・ドリブン・ブラウジング(user-driven browsing)または広告の提案を通じてというようにして、アプリケーションを知ることになる。また、調達12は、通例、取得16も含む。ユーザーは、アプリケーションのリソースを入手し、そのアプリケーションを用いる許可を手配する。ローカルにインストールされたアプリケーションについては、取得16は、インストーラー・アプリケーションをアプリケーション・サーバーからダウンロードする必要がある場合もある。一方ウェブ・アクセス可能アプリケーションでは、ウェブメール・サービスに対してユーザー・アカウントを作成することによってというようにして、ウェブ・アプリケーションの供給業者に署名する(sign up)する必要がある場合がある。また、取得16は、金銭の支払い、およびエンド・ユーザー・ライセンス契約(EULA)をユーザーに提示し、その条件(terms and conditions)の受諾を要請するというような使用許諾、というようなトランザクションも必要となる場合もある。ときとして、予めインストールされているアプリケーションを、新たなコンピューティング環境のデフォルト・コンポーネントとして、ユーザーに利用可能にすることによって、というようにして、調達12の一部または全部を省略してもよいこともある。
[0023] 調達12の後または調達12と同時に、アプリケーション・ライフ・サイクル10は、インストール18を必要とすることが多く、ローカルコンピューティング環境はプログラムに対するアクセスを与えるように構成されている。ときとして、インストール18はマッピング20を必要とし、特定のデバイスがアプリケーションを用いるように構成される。マッピング20は、ソフトウェアにアクセスするためにユーザーが特定のデバイスを指定すること(例えば、アプリケーションを展開しようとするセルフォン・デバイスを選択する)、および/またはソフトウェアを使用するデバイスを許可すること(例えば、製品の活性化によって)が必要となる場合がある。また、インストール18は、展開22も必要とし、アプリケーションを構成するリソースが1つ又は複数のマッピングされたデバイスに展開される(例えば、アプリケーション・フォルダーを作成し、このようなフォルダーにアプリケーション・バイナリーを入れ、コード・ライブラリーを登録し、コンフィギュレーション情報をシステム・レジストリおよびコンフィギュレーション・ファイルに書き込む)。また、展開22は、アプリケーションにアプリケーション・ランチャーを登録し、アプリケーションをそれに関係するデーター・オブジェクトと関連付け(例えば、メディア・アプリケーションをあるタイプのメディア・オブジェクトのためのメディア・プレーヤーとして特定する)、および/またはシステムの初期化のときまたは特定のイベントに応答してアプリケーションを自発的に起動するようにコンピューティング環境を構成することによってというようにして、コンピューティング環境がアプリケーションへのアクセスを与えるように構成することを必要とする場合もある。また、展開22は、アプリケーションを使用する際にユーザーを補佐するために、文書を表示することを伴う場合もある。想定場面の中には、デバイスにネットワーク・サーバーを登録する、またはそのデバイスのためにアプリケーションをホストするようにネットワーク・サーバーを構成するというように、インストール18がリモート・リソースのコンフィギュレーション設定を伴う場合もある。別の想定場面では、インストール18を縮減または省略してもよい場合もある。例えば、ローカルに展開されたアプリケーションは、コンフィギュレーション設定やインストールを行わなくても実行するエクゼキュータブル・バイナリーを備えている場合があり、ウェブ・アプリケーションはローカル・デバイス上ではいずれの形式のインストールも必要としない場合がある。
[0024] 調達12およびインストール18の後、アプリケーションは、一人以上のユーザーによる使用24の準備ができていると考えられる。使用24は、通例、実行26を伴い、例えば、アプリケーションを起動することによって、またはアプリケーションと関連のあるデーター・オブジェクトを活性化することによって開始することができる。また、実行26は、メディア・プレーヤーによってレンダリングすることができる新たなメディア・オブジェクトのような、追加コンテンツの取得を含むこともある。また、使用24は更新28も伴い、アプリケーションの新たなバージョンを提供するまたはそれによって利用されるリソースの保守を行うためのパッチング(patching)(例えば、新たな形態のマルウェア(malware)を検出しこれに対処するための情報を受け取り組み込むウィルス防止パッケージ)というような、アプリケーションに対する継続中の変更を含む。このような更新28は、ときとして、アプリケーション・サーバーによってリモート・リソースにおいて実行することもある。例えば、ウェブメール提供業者は、ユーザーまたはユーザー・デバイスを巻き込むことなく、そしてユーザーが意識せずとも、そのバック・エンド・ソフトウェアを頻繁に更新することがある。
[0025] また、アプリケーション・ライフ・サイクル10は、アンインストール30も伴うことがあり、ここでアプリケーションが1つ又は複数のデバイスから除去される。アンインストール30は、マッピング解除(unmapping)32を含むことがあり、1つ又は複数のデバイスはアプリケーションの使用許可を剥奪される。例えば、ウェブ・アプリケーションは、ある種のデバイス上でないとアクセスできないこともあり、アプリケーション・サーバー上に格納されている許可済みデバイス・リストから除去することによって、デバイスのマッピング解除を行うことができる。また、アンインストール30は、使用廃止(decommissioning)34も含むことがあり、ここではアプリケーションのリソースを1つ又は複数のデバイスから除去することができる。使用廃止34は、ユーザーが要求することができ、または自発的に呼び出すこともできる(例えば、アプリケーションが限定期間だけユーザーに使用許諾されている場合があり、コンピューティング環境は、使用許諾期間の満了時に自動的にアプリケーションを使用廃止するように構成することができる)。
[0026] アプリケーション・ライフ・サイクルは広範囲に及ぶ種々のアプリケーションに広く利用されているが、多くの従来のコンピューティング環境は、アプリケーション・ライフ・サイクルが様々な欠点を表出させるように構成されている。一例として、従来のコンピューティング環境は、このアプリケーション・ライフ・サイクルを実施する際に大量のユーザー関与を強要する場合がある。調達12の間、コンピューティング環境は、アプリケーションを発見または取得するサポートを殆どまたは全く提供できないこともあり、ユーザーは、検索(例えば、ウェブ検索)によって有用なアプリケーションを探して、アプリケーション・インストール・パッケージをダウンロードする作業を負担することもある。また、調達12は、ライセンスのユーザー受諾を必要とする場合があるが、これを破棄することもできる(例えば、特定のボイラープレート・エンド・ユーザー・ライセンス契約の下で提供されたアプリケーションであればいずれも、ユーザーは予め許可することができる)。最新のコンピューティング環境は、通例、マッピング20のサポートを殆どまたは全く提供せず、ユーザーは1団のデバイス上におけるアプリケーションの個々の展開を手配しなければならないこともある。多くの従来のコンピューティング環境は、自動化されたインストーラー・ツールのように、展開22のために何らかのサポートを提供する。しかしながら、このようなインストーラー・ツールは、なおも、ウェブ・アプリケーションにおいてユーザー・アカウントを作成している間にユーザー情報(氏名、電子メール・アドレス等)を入力する、ライセンスを購入するためにクレジット・カード情報を提供する、そしてインストール用CDのように物理媒体と共に含まれるシリアル・キーを入力するというような、別の場合には回避できるかもしれない大量の相互作用をユーザーに任せる場合がある。また、従来のコンピューティング環境は、更新28に対して不適切なサポートを提供する場合もあり、アプリケーションに任されるか、またはユーザーが開始するソフトウェア・パッチの発見、ダウンロード、および適用に任されることが多い。最後に、マッピング解除34および使用廃止34は、インストーラー・アプリケーションによって容易にすることができるが、デバイス毎の管理に制限される場合がある。例えば、ユーザーは各デバイス上においてアンインストールを開始しなければならないかもしれず、このようなデバイス全ての間で展開を中央で管理することは難しいこともあり得る。
[0027] これらの欠点は、悪化する可能性があり、最新のコンピューティング環境使用のコンテキストでは別の欠点が発生する虞れもあり、1団のデバイスを跨って広がることが多い。コンピューティング環境のユーザーは、協同してワークステーション、ノートブックまたはタブレットのような携帯用コンピューター・システム、ゲーム・コンソール、セルフォン、およびメディア・プレーヤーを管理および利用することもある。更に、ユーザーは、公衆のワークステーション上においてコンピューティング環境の全部または一部にアクセスすることや、コンピューティング環境の一部または全部へのアクセスを他のユーザーに付与することを(例えば、ゲストにコンピューティング環境を利用させるため、またはその中で管理されているデーター・オブジェクトにアクセスさせるため)望む場合もある。コンピューティング環境のコンテキストにおいてユーザーが動作させることができるデバイスは普及し続けているにも拘わらず、従来のオペレーティング・システムは、このようなデバイス間におけるコンピューティング環境の一貫した提示のためのサポートや、これらのデバイスによるデーター・オブジェクトの配信、アクセス、および同期を促進するためのサポートを殆ど提供することができない。この限られたサポートは、特に、アプリケーションに関して明白である。一般に、ユーザーは各デバイス上において、他のいずれのデバイスのコンフィギュレーションからも独立して、アプリケーション・ライフ・サイクル10の多くの態様を手動で実行することが多い。例えば、ユーザーは、ユーザー自身の好みにしたがって、特定のアプリケーションのコンフィギュレーションを設定することができるが、アプリケーションと同様に各デバイスのコンフィギュレーションを設定するには、アプリケーションの展開毎に、手作業でコンフィギュレーションを設定しなければならないことが多い。加えて、多数のデバイスを協同で用いる場合、新たな問題が生ずる虞れがある。例えば、あるユーザーが第1デバイス上においてある人についての1組の連絡先情報を有する場合、第2デバイス上では同じ人についての1組の連絡先情報との一貫性がないこともあり得るので、どちらの組の連絡先情報の方が新しいのかユーザーが確認できない場合がある。
[0028] 1団のデバイス間において、一貫性があり、展開可能で、かつ拡張可能な態様でコンピューティング環境へのアクセスを提供する技法を開発する試みが近年行われている。また、これらの技法は、協同するデバイス間において1組の共通アプリケーションを提供し、更にこのようなデバイス間においてアプリケーションの調達、インストール、使用、およびアンインストールを管理する集中サービスも提供することも追求している。アプリケーションの集合は、必ずしも種々のデバイス間で同一とは限らず、例えば、ワークステーションが、セルフォン・デバイス上では適正に実行しない可能性がある高性能のアプリケーション(例えば、写真編集ソフトウェア、グラフィック集約的ゲーム)を内蔵することもあり、セルフォン・デバイスは、携帯用ではないワークステーションには関連のない可搬性アプリケーション(例えば、GPS系地図作成ソフトウェア)を含むこともある。しかしながら、多くのアプリケーションおよびそれに関係するデーター・オブジェクトは、このようなデバイス間で共有することができ(例えば、ユーザーのカレンダー・オブジェクトを管理するように構成されているカレンダー・アプリケーション)、このようなデバイス間におけるアプリケーションおよびデーター・オブジェクトの配信や同期を可能にするように、コンピューティング環境を適応させることもできる。また、このようなデバイス毎にアプリケーションを適応させることもできる。例えば、アプリケーションの第1バージョンまたはコンフィギュレーションは、ワークステーションのような高性能デバイスに適応させることができ、一方アプリケーションの第2バージョンまたはコンフィギュレーションは、画面サイズおよび入力能力に制限がある低性能デバイスに適応させることができる。しかしながら、同じアプリケーションのアプリケーション・コンフィギュレーション(例えば、視覚様式のようなユーザーの好み)のその他の部分は、デバイス間で共有することができ、種々のデバイス間においてユーザー体験のコンピューティング環境との一貫性を促進することができる。
[0029] したがって、コンピューター・システムは、1組のデバイス間における、アプリケーション集合を含むコンピューティング環境の展開を可能にするように表現できる利点があることを認めることができる。このような技法の1つでは、1組のアプリケーションを、アプリケーション・リソース、およびそれによって用いられるデーター・オブジェクトを含むコンピューティング環境は、デバイスの能力に応じたレンダリングを行うためにデバイスに配信することができるように表現される。この表現は、オブジェクト階層にしたがって編成され、共通文法にしたがって表現された1組のオブジェクトを備えている。これらのオブジェクトは、ユーザーによって作成されるユーザー・ファイルおよびデーターのような、コンピューター・システムのデーター・オブジェクトを含む。また、これらのオブジェクトは、シェル、およびその中で提供されるアプリケーションというような、オペレーティング・システムのコンポーネントを構成するエクゼキュータブル・バイナリーおよびクラス・ライブラリーも含む。また、オブジェクトは、コンピューティング環境のユーザー・インターフェースを指定する情報を含み、この情報には、シェルの基本設定(shell preference)(例えば、視覚的主題、アプリケーション起動メニュー、およびダブル・クリック閾値)、ユーザー・アカウントおよび特権、セキュリティ情報(例えば、パスワード、セキュリティ・トークン、および証明書)、アプリケーション・バイナリーおよびコンフィギュレーション情報、ユーザー・データーおよびメタデーター(例えば、ファイル共有情報)、ならびにデーター・キャッシュ(例えば、最近使用したファイルのリスト、およびブラウザー履歴)が含まれる。これらのオブジェクトの種々の本質および使用にも拘わらず、これらのオブジェクトはオブジェクト階層において共通の態様で表されており、階層において任意に編成することができる。つまり、1組の分離したデーター・ストアを備えており、各々が1つのタイプのオブジェクトを収容する(例えば、ファイル・システムはファイルを収容し、レジストリはコンフィギュレーション情報を収容し、データー・キャッシュはブラウザー履歴を収容する)従来のコンピューター・システムとは対照的に、この手法におけるオブジェクト階層は、このようなオブジェクトの全てをオブジェクト階層において共通の態様で編成する。
[0030] この態様で表現されたコンピューティング環境は、いずれのデバイスにでも配信することができ、そのデバイスの能力に適した態様でレンダリングすることができる。例えば、ワークステーションは、この情報を、ロバストな汎用コンピューティング環境としてレンダリングすることができ、一方公衆ワークステーションは、ウェブ・ブラウザー(例えば、ユーザーのセッションの終了時に破棄することができる仮想機械)を通じて異なるコンピューティング環境体験をレンダリングすることができ、セルフォンは、セルフォン関連情報(例えば、連絡先、カレンダー、およびナビゲーション・データー)により速くアクセスする、より軽いインターフェースを提供することができる。更に、この情報集合に対する更新(例えば、好みの変更、およびその中に収容されているデーター・ファイルに対する更新)は、情報集合の基本的(canonical)ソースに適用することができ、これによって、情報集合が配信される他の全てのデバイスに伝搬させることができる。また、コンピューティング環境を共有するデバイス同士を、共有情報集合を通じて統合して、1つのデバイスが、情報集合において特定された他のデバイスと相互作用を行うことができる。例えば、第1デバイス上に格納されているデーターに第2デバイスによってアクセスすることができ、第2デバイスによって第1デバイスを、通信管路を通じて、制御することができる。したがって、情報集合は、コンピューティング環境を、役割能力(role capabilities)および各デバイスのリソースと共に、共有するデバイスの集合体を特定し、潜在的に大多数で多様となる可能性があるデバイス群に跨って、統合コンピューティング体験を提供することができる。
[0031] 図2は、このような想定場面40の1つを示す。ここでは、コンピューティング環境は、コンピューティング環境ホスト42によってホストすることができ、コンピューティング環境ホスト42はオブジェクト階層44を格納および管理することができる。また、コンピューティング環境ホスト42は、セルフォン・デバイス46、パーソナル・ノート型コンピューター50、および公衆ワークステーション54に代わって、更に異なるアクセス特権を有する異なる種類のユーザーに代わって、異なる方法でオブジェクト階層44をレンダリングすることができる。したがって、コンピューティング環境のレンダリングは、同じアプリケーション、ユーザー・プロファイル、シェル・コンフィギュレーション、ユーザー・データー・オブジェクト等を露出する全てのデバイスに跨って、一貫性のあるコンピューティング環境を反映 (reflect)する。つまり、ユーザーは、高性能ノート型コンピューターによって全機能満載バージョン52のコンピューティング環境にアクセスすることができ、停電力セルフォン・デバイス46上において余分なものを省いたバージョン48のコンピューティング環境にアクセスすることができ、更に公衆端末54のウェブ・ブラウザー46によって、ブラウザー互換性があり秘密指向バージョン(privacy-oriented version)58のコンピューティング環境にアクセスすることができる。このようなデバイスの各々の能力がコンピューティング環境のレンダリングをサポートする範囲において、各デバイスの能力に合わせて調節されたオブジェクト階層44のレンダリングにより、一貫性のあるユーザー・インターフェースおよびデーター集合を提示することができる。コンピューティング環境に対する更新は、コンピューティング環境ホスト42に向かって逆に伝搬させることができ、他のデバイスと自動的に同期させることができる。また、種々のデバイスは、ローカルに格納されているデーターを他のデバイスと共有することによって、そして他のデバイスを制御するまたは他のデバイスによって制御されることによって、協同することもできる。したがって、コンピューティング環境は、クラウドコンピューティングアーキテクチャとして考案し提示することができ、同じコンピューティング環境に対して協同ポータル(デバイス特定プロパティを有する)のメッシュを形成する全てのデバイス(「クライアント」)に跨る、一貫性のあるレンダリングとして表されるデバイス独立表現(「クラウド」)を構成する。コンピューティング環境のアプリケーションに関して具体的には、オブジェクト階層44は、アプリケーション集合、アプリケーション・リソース、およびそれによって作成されたデーター・オブジェクトの表現を含むことができる。更に、コンピューティング環境ホスト42は、オブジェクト階層44を構成する種々のオブジェクトにサービスを適用することができ、オブジェクト階層にオブジェクトを格納する共通フォーマットが、適用されるオブジェクトの本質とは無関係に、サービスの一貫性のある可用性および適用を促進することができる。
[0032] これらの目的を促進するために、オブジェクト階層のオブジェクト群を図式に編成するオブジェクト階層体系を考案することができる。例えば、データー・オブジェクト(ファイルのような)、ユーザーおよびユーザー・アカウント、デバイス、ならびにコンピューティング環境によって生ずるイベント、更にはそれらの間の派生(derivation)、所有、および相互関係を表すために、オブジェクトを考案し構造化することができる。このオブジェクトを編成する態様は、オブジェクトの別の編成に対して、格別な利点をもたらす、および/または欠点を低減することができる。したがって、このオブジェクト階層体系は、これにしたがってオブジェクトを編成するができ、コンピューティング環境のこのようなオブジェクトの使用を考慮して考案される。例えば、それぞれのオブジェクトを、種々の許可の集合を有する1つ又は複数のユーザー・アカウント(例えば、あるオブジェクトに対してリード/ライト許可を有する第1ユーザー・アカウント、そのオブジェクトに対して読み取り専用許可を有する第2ユーザー・アカウント、およびそのオブジェクトに対して許可を有していない第3ユーザー・アカウント)と関連付けることによって、セキュリティ許可(security permission)をモデル化することができる。コンピューティング環境は、オブジェクト階層体系の構造およびセマンティクス(semantics)にしたがって、オブジェクト階層のオブジェクトを利用するように構成することができ、これによって、各デバイスのコンフィギュレーションおよび能力に適した態様であるが、それ以外ではこのようなデバイス全ての間で一貫性のある態様で、複数のデバイスにまたがって、展開可能なコンピューティング環境の提示を可能にする。
[0033] この種のオブジェクト階層内では、1組のアプリケーションは、各アプリケーションのアプリケーション・ライフ・サイクルと一貫性のある態様で管理することができる。例えば、コンピューティング環境ホスト42は、アプリケーションの取得、アプリケーションの1つ又は複数のデバイスとの関連付け、および各デバイス上におけるアプリケーションの展開を容易にすることができる。アプリケーションをオブジェクト階層44において1組のオブジェクトとして表現することにより、共通アプリケーション管理タスクを容易にすることができる。第1の例として、オブジェクト階層44において表されている複数のコンピューター・システムおよびデバイス上において、アプリケーションを容易に展開することができ、多くの想定場面では自動的に展開することができる。例えば、第1バージョンのアプリケーションをパーソナル・ノート型コンピューター50に展開することができ、第2バージョンのアプリケーションを、公衆ワークステーション54と用いるためのウェブまたはウェブ対応アプリケーションとして展開することができ、第3バージョンのアプリケーションを、低電力セルフォン・デバイス46上で用いるための機能削減アプリケーションとして展開することができる。第2の例として、コンピューティング環境ホスト42は、オブジェクト階層44をしかるべく調節し、ホストされ展開されたバージョンのオブジェクト階層44を同期させることによってこの調節をデバイスに展開することにより、アプリケーションの更新(例えば、アプリケーション・リソースの、アプリケーションと共に用いるための新たなコンテンツの更新バージョンとのパッチング、または新たなコンテンツの展開)を容易にすることもできる。
[0034] また、展開可能オブジェクト階層44においてアプリケーションを1組のオブジェクトとして表現することによって、新たな特徴も可能にすることができる。第1の例として、コンピューティング環境は、オブジェクト階層44の特定部分を第2ユーザーのデバイス、コンピューター・システム、またはコンピューティング環境ホスト42に展開することによって、ユーザーがアプリケーションを第2ユーザー、またはアプリケーション・セッションの一態様と共有することを可能にすることができる。例えば、第1ユーザーが1組の歌オブジェクトを選択し、メディア・プレーヤー・アプリケーションによって第1コンピューター上で再生することができ、更にメディア・プレーヤーのアプリケーション・セッションを第2ユーザーと共有することを選択することができる(例えば、メディア・プレーヤー・アプリケーションのオーディオを第2ユーザーにストリーミングすることによって)。第2の例として、オブジェクト階層の一部として、デバイスおよびコンピューター・システム間で、アプリケーションのコンフィギュレーションを同期させることができる。デバイスに独立したアプリケーション・プロパティ(例えば、スペル・チェック辞書に追加した特定用途向けの単語)を自動的にこのようなデバイスおよびコンピューター・システムの全てに伝搬させることができ、一方デバイス特定のアプリケーション・プロパティは、コンピューティング環境ホスト42によってそれぞれのデバイスに合わせて指定することができる。このように、コンピューティング環境ホスト42のアプリケーション管理サービスは、一人以上のユーザーが操作する種々のコンピューター・システムおよびデバイス上におけるアプリケーションの発見、展開、使用、および除去をサポートすることができる。これらの作業の多くの部分は、オブジェクト階層44を調節し、その展開を、その中に表されている種々のデバイスに同期させることによって実行することができ、自動化プロセスとして、コンピューティング環境およびユーザー体験全体の一貫性に多大な改良を得ることができる。
[0035] 図3は、アプリケーション・ストアに格納されているアプリケーションの、デバイス上にコンピューティング環境を表すオブジェクト階層への展開を管理する方法例60として、これらの技法の一実施形態を示す。図2を参照すると、この方法例60は、セルフォン・デバイス40、ノート型コンピューター50、および公衆ワークステーション54のような、1つ又は複数のデバイス上においてアプリケーションをインストールし管理するために利用することができる。その際、デバイスに配信されている(少なくとも部分的に)展開可能オブジェクト階層44においてそのアプリケーションを表現する。方法例60は、62において開始し、アプリケーションをデバイスに展開する要求を受けるステップ(64)を含む。この要求は、アプリケーションをインストールしたいコンピューティング環境のユーザーによって発生すること、デバイス上におけるコンピューティング環境の表現において実行中のプログラムによって発生すること、少なくとも1つのアプリケーションが予めインストールされている新たなコンピューティング環境を発生するように構成されているプログラムによって発生すること等ができる。また、方法例60は、アプリケーション・ストアからアプリケーションを取得するステップ(66)も含む。アプリケーションがウェブ・アプリケーションである場合、取得するステップ66は、単に(例えば)提供されるURLにおいてアプリケーションの可用性を検証するだけでよい場合もある。また、方法例60は、オブジェクト階層において表されているデバイスをアプリケーションにマッピングするステップ(68)も含む。マッピングするステップ68は、オブジェクト階層内にあるデバイスの表現を、オブジェクト階層内にあるアプリケーションの表現と関連付けて、デバイス等に関するアプリケーションについてのオブジェクト階層における1組のコンフィギュレーション情報を作成することを含むことができる。
[0036] また、図3の方法例60は、オブジェクト階層内にアプリケーションを展開するステップ70も含む。展開するステップ70は、オブジェクト階層内においてアプリケーションの表現を作成し、オブジェクト階層のアプリケーション表現において1つ又は複数のエクゼキュータブル・バイナリーを表し、更にデバイス等に関してアプリケーションのコンフィギュレーションを設定することを含むことができる。ウェブ・アプリケーションについては、展開するステップ70は、例えば、デバイスと関連のあるアプリケーション・ランチャー表現に、ウェブサイトへのリンクを挿入すること、および/またはセッション間におけるウェブ・アプリケーションの永続性を促進するために、デバイス上に1つ又は複数のクッキーを作成することを含むことができる。また、方法例60は、オブジェクト階層の少なくとも一部をデバイスに送信するステップ72も含む。例えば、ノート型コンピューター50のような高性能コンピューター・システムは、オブジェクト階層の最大バージョンを受信することができ、一方比較的停電力のセルフォン・デバイス46は、オブジェクト階層の内、セルフォン・デバイス46に関連のある部分だけを受信すればよい。この部分は、セルフォン・デバイス46と互換性のある新たなアプリケーションの展開を含む。アプリケーションをデバイスと関連付けるようにオブジェクト階層を構成し、オブジェクト階層をデバイスに展開し終えると、方法例60はデバイスに関して展開したアプリケーションの管理を遂行し、したがって74において終了する。
[0037] 図4は、アプリケーション・ストア84に格納されているアプリケーションの、少なくとも1つのデバイス上においてコンピューティング環境を表すオブジェクト階層82への展開を管理する例示的システム86として具体化した、これらの技法の第2実施形態を示す。この想定場面80では、3つの展開可能なアプリケーション、即ち、計算器アプリケーション、カレンダー・アプリケーション、およびメディア・プレーヤー・アプリケーションが関与する。これらのアプリケーションは、3つのデバイス、セルフォン・デバイス、ノート型コンピューター・デバイス、および公衆ワークステーション上に表されるコンピューティング環境内で利用可能にすることができる。この想定場面80内では、前述のアプリケーションは、少なくとも1つのアプリケーションを表すアプリケーション・ストア86によってホストされる。これらのアプリケーションは、コンピューティング環境内において、そしてオブジェクト階層82のコンフィギュレーションを再設定することによってそのコンピューティング環境をレンダリングすることができるデバイス上において展開することができる。
[0038] この想定場面80内では、アプリケーション管理システム86は、オブジェクト階層内において1つ又は複数のアプリケーションの展開を遂行するように動作することができる。例示的システム86は、アプリケーション取得コンポーネント88を備えている。アプリケーション取得コンポーネント88は、アプリケーションをインストールする要求を受け、アプリケーション・ストア84からそのアプリケーションを取得するように構成されている。また、アプリケーション取得コンポーネント88は、要求がいずれの必要条件(例えば、アプリケーションは要求されたデバイス上で実行できるか否か、ユーザーはアプリケーションをインストールし実行することを許可されているか、ユーザーの種々のセキュリティ特権および使用許諾問題に関する必要条件等)も満たすか否か判断することができる。また、図4の例示的システム86はアプリケーション・マッピング・コンポーネント90も含む。アプリケーション・マッピング・コンポーネント90は、オブジェクト階層82内に表されている少なくとも1つのデバイスを、少なくとも1つのインストールされているアプリケーションにマッピングするように構成されている。例えば、計算器アプリケーションが既にオブジェクト階層82の中に含まれている場合、アプリケーション・マッピング・コンポーネント90は、オブジェクト階層82内に、計算器アプリケーションと、そのアプリケーションを提供しようとしている1つ又は複数のデバイスとの間の関連付けを作成することができる。計算器アプリケーションが未だオブジェクト階層82の中に含まれていない場合、例示的システム86は、マッピングを実行する前に、例えば、エクゼキュータブル・バイナリーまたはウェブ・アプリケーション・ウェブサイトへのリンクの表現をオブジェクト階層82の中にコピーすることによって、計算器アプリケーションの表現をオブジェクト階層82の中に作成することもできる。また、例示的システム86は、アプリケーション展開コンポーネント92も含む。これは、少なくとも1つのインストールされているアプリケーションをオブジェクト階層82の中に展開するように構成されている。展開には、例えば、新たにマッピングされたデバイスについてのデバイス特定コンフィギュレーション情報をオブジェクト階層の中に作成すること、新たにマッピングされたデバイスをデバイス独立コンフィギュレーション情報と関連付けること、1つ又は複数のデバイス上でレンダリングされるアプリケーション・ランチャーにアプリケーションを挿入すること等を必要とすることがある。オブジェクト階層82の中にあるデバイスの表現を、デバイスによってレンダリングされたコンピューティング環境の中に表されているアプリケーション集合の表現に関連付けた後、例示的システム86は、これによって、コンピューティング環境を表すオブジェクト階層において展開されたアプリケーションの管理を遂行する。
[0039] 本明細書において記載する技法は、多くの態様に変形があっても実現することができ、一部の変形は、これらおよびその他の技法のその他の変形に関して、更に別の利点を表すことおよび/または欠点を縮減することもあり得る。これらの変形は、図3の方法例60および図4の例示的システム86のように、種々の実施形態に含まれる可能性があり、更にこのような様々な追加利点および/または縮減された欠点を公表する(present)ために、他のこのような変形と互換性があるとよい。したがって、当業者はこのような多くの実施形態を、本明細書において論ずる技法にしたがって考案することができる。
[0040] これらの技法の実施態様間で多様に変化する可能性がある第1の態様は、アプリケーション管理サービスを提供するアプリケーション管理サーバーのアーキテクチャに関する。図4に示すように、アプリケーション管理システム84は、種々のアプリケーションを有するアプリケーション・ストア82と相互作用することができ、その中に格納されているアプリケーションを要求し受け取ることができ、更にそのアプリケーションをオブジェクト階層82に展開することができる。この想定場面80では、アプリケーション管理システム84は、1つ又は複数のアプリケーション・ストアおよびコンピューティング環境ホスト86間において単体のインターフェースとして具体化されている。しかしながら、他のアーキテクチャおよびシステム分解(system factoring)も、これらの技法を実現するのに適している場合もある。
[0041] 図5は、第2のアーキテクチャ例100を示す。ここでも、アプリケーション管理サービス86は、アプリケーション・ストア84としての役割を果たし、したがって、計算器アプリケーション102およびカレンダー・アプリケーション104のような、種々のアプリケーションを収容する。これらのアプリケーションは、オブジェクト階層82に展開することができる。この実施形態は、アプリケーション取得サービスと、展開に利用可能なアプリケーションとの統合緊密化という利点を表すことができる。
[0042] 図6は、第3のアーキテクチャ例110を示す。ここでは、コンピューティング環境ホスト42は、アプリケーション管理サービス86を組み込む。したがって、コンピューティング環境ホスト42は、オブジェクト階層82と、アプリケーション取得コンポーネント88、アプリケーション・マッピング・コンポーネント90、およびアプリケーション展開コンポーネント92というような、アプリケーション管理サービス86のサービスとの双方を格納することができる。この第3のアーキテクチャ例110では、デバイス上に表されたコンピューティング環境内においてユーザーによって発せられた要求によってというようにして、アプリケーション112をデバイスから直接受け取ることができる。コンピューティング環境ホスト42は、この要求を受けて、アプリケーション管理サービス86のコンポーネントによってその要求を処理し、コンピューティング環境ホスト42に格納されているオブジェクト階層82を更新することができる。次いで、更新されたオブジェクト階層82をデバイスと同期させて、アプリケーションのデバイスへの展開を完了することができる。当業者であれば、これらおよびその他のシステム分解も、本明細書において論ずる技法を実現する間に、考案することができよう。
[0043] これらの技法の実施態様間で多様に変化する可能性がある第2の態様は、取得、マッピング、および展開を含む、アプリケーション管理の基本コンポーネントの多様な変化に関する。この態様の第1の変形として、アプリケーションを取得するには、通例、アプリケーションを展開する要求を受け取り、特定のデバイスに関してオブジェクト階層に展開しようとするアプリケーションを取得する必要がある。しかしながら、取得は、アプリケーションについてのエンド・ユーザー・ライセンス契約の条件を表示するというように、デバイスを通じてユーザーにアプリケーション・ライセンスを提示することを含む場合もある。また、取得は、展開の必要条件として、アプリケーション・ライセンスを受け入れることをユーザーに要求することを含む場合もあり、アプリケーション・ライセンスの受諾を受けたときに、取得は、アプリケーション・ライセンス・サーバーに通知することによってというようにして、アプリケーション・ライセンスの受諾を記録することを含む場合もある。この受諾は、ユーザーからの承認として、または例えば、ある特定のアプリケーション・ライセンスの下で(例えば、GNU公開ライセンスの特定バージョンの下で与えられるあらゆるアプリケーション)いずれかのアプリケーションの受諾を予め許可している場合、自動受諾として受けることもあり得る。また、取得は、アプリケーションに対するライセンスの電子商取引による購入というように、少なくとも1つのデバイスのユーザーとの取得手続きを仲介することを含む場合もある。また、取得は、アプリケーションのユーザーを表すユーザー・アカウントを発生することを含む場合もある。これは、ウェブメール・サーバー上に完全にホストされコンピューティング環境におけるブラウザーを通じて提供されるウェブメール・アプリケーションのように、ウェブ・アプリケーションへのアクセスを取得するには特に有利であると考えられる。
[0044] この第2の態様の第2の変形として、アプリケーションのマッピングは、通例、そのアプリケーションを、オブジェクト階層において表されている1つ又は複数のデバイスと関連付けることを含む。しかしながら、マッピングは、アプリケーションがデバイスと互換性のあるバージョンで入手可能か否か、そしてアプリケーションまたはその異形(早期バージョンのような)が既にデバイス上で利用可能になっているか否かというような、デバイス特定状態の検査を含むこともできる。また、マッピングは、デバイスと互換性があるかもしれないアプリケーション・バイナリーの新バージョン、またはアプリケーションが依存しデバイスに展開することができる追加のコンポーネント(例えば、別のサーバーから読み出すことができる支援ランタイム(supporting runtime))というような、新たなデバイスへのアプリケーションのマッピングを促進するための追加のリソースを取得することを含んでもよい。また、マッピングは、アプリケーション活性化サーバーによるアプリケーションの活性化を含むこともできる。アプリケーション活性化サーバーは、起動時にデバイス上においてアプリケーションによって有効性が判断される認証済み証明書を与えることによってというようにして、特定のデバイス上におけるアプリケーションの実行を許可することができる。
[0045] この第2の態様の第3の変形として、アプリケーションの展開は、通例、アプリケーションのコンポーネントの表現をオブジェクト階層に挿入することによってというようにして、オブジェクト階層内にアプリケーションを展開することを含む。典型的に編成されたアプリケーションであっても、多数の方法で構造化することができる。小さなユーティリティが1つのエクゼキュータブル・バイナリーを構成することができ、このエクゼキュータブル・バイナリーを全体的または部分的にコンパイルすることができ、あるいは各デバイス上でローカルにコンパイルされるソース・コードとして含めることができる。このエクゼキュータブル・バイナリーは、例えば、ソース・コード・モジュール、解析ツリー、部分的にコンパイルされたバイナリーを表す中間言語命令、全体的にコンパイルされたバイナリー等として表すことができる。ユーティリティを大きくすれば、1つ又は複数のエクゼキュータブル・バイナリー、グローバル・アセンブリ・キャッシュに登録することができる共有アセンブリ、アイコン、サウンド・オブジェクト、写真、文書、およびビデオのようなアプリケーション・リソース、ヘルプ・ファイル、リレーショナル・データーベースのような、1つ又は複数の構造化データー・ストアに格納されているデーター・リソース、ワープロ・アプリケーションにおけるスペル・チェック・ツールのための言語辞書ファイルのような付属アプリケーション・リソース、内部に指定されているリソースのインデックスとしての役割を果たすアプリケーション・マニフェスト(manifest)等というような、1組のリソースを構成することもできる。更に、アプリケーションは、様々なバージョンのエクゼキュータブル・バイナリーを含むことができ、その各々は、特定のプラットフォームを目的とすることができる。例えば、あるアプリケーションは、ノート型コンピューター50のようなより強力なデバイス上において用いるために全機能満載バージョンを含み、更に低電力セルフォン・デバイス46上において用いるために縮減機能バージョンを含むことができる。また、アプリケーションは、様々なコンフィギュレーション情報集合を含むこともでき、その各々は特定のプラットフォームを目的とする。アプリケーションは、単体のインストーラー・パッケージとして、またはデバイス系インストーラー(device-based installer)によって展開することができるインストール可能なアーカイブとして、またはいずれの場所でも利用することができる1つ又は複数のリソースの集合等として表すことができる。
[0046] また、オブジェクト階層は、従来とは異なる構造のアプリケーションを含むこともできる。例えば、ゲーム・アプリケーションは、複雑な三次元環境およびその中に表現されるオブジェクトを構築するためのビットマップ・テクスチャーおよびメッシュのような大多数のグラフィクス・リソースを含む場合がある。ウェブ対応アプリケーション(web-enabled application)は、1組のウェブ・ページを含むことがあり、これらのウェブ・ページはインライン・コードの部分を収容することができ、またはソース・コードまたはコンパイル形態で含まれるJava(登録商標)オブジェクトのような、外部コード・リソースを参照することができる。また、このようなアプリケーションは、単にこのようなリソースが入手可能なウェブサイトへの参照として、表すこともできる。また、ウェブ対応アプリケーションは、拡張可能アプリケーション・マークアップ言語(XAML)のようなマークアップ言語によって構造化することもできる。マークアップ言語は、デバイス上においてコンパイルすること、あるいはアプリケーションとしてまたはウェブ・ブラウザー内にホストされているアプレットとしてインタープリター式に実行することができる。最後に、ウェブ・アプリケーションは、単に、当該アプリケーションの一部または全部を展開することができる1つ又は複数のウェブサイトを参照する1つ又は複数のURLとして表すこともでき、これらのURLには、デバイス上でウェブ・ブラウザーによってアクセスすることができる。代わりにまたは加えて、セッション間でウェブ・アプリエーションの状態を存続させるためにローカルに格納することができるクッキーのような、何らかのリソースをデバイス展開のために含めることができる。
[0047] アプリケーションを構成するリソースは多様である可能性があるので、オブジェクト階層におけるアプリケーションの展開は、同様にロバストであるとよい。例えば、テキスト・リソースは、平文として含ませることができ、あるいは汎用または特殊目的の圧縮ユーティリティによって圧縮することもできる。バイナリー・リソースは、シリアル化したバイナリー・コードとして提示することができ、バイナリー圧縮ユーティリティによって圧縮することができ、コード変換する(例えば、UuencodeまたはMIMEによって)こと等もできる。階層的に編成されたオブジェクトは、XMLのような階層フォーマット化にしたがって構造化することができ、あるいは1つの階層オブジェクトとしてシリアル化することもできる。大きなオブジェクトは、原子ユニットとして含め、圧縮し、コード変換し(例えば、空間を保存するために、ムービー・ファイルをもっと低いビットレートで符号化し直すことができる)、ある時間の間にまたは特別な目的のため等でデバイスに個々に送信することができる部分にセグメント化することができる。リソースは、オブジェクト階層に含めることができ、または必要に応じてアクセスすることができるリソースをホストするサーバーへの参照として挿入することができる。多数のオブジェクトの大きな集合は、アーカイブ(例えば、数千個のオブジェクトを収容した圧縮ファイル)として含めることができる。ウェブ系アプリケーションは、当該アプリケーションのコンポーネントを入手することができる1つ又は複数のURLとして表すことができる。代わりにまたは加えて、ウェブ・アプリケーションのスナップショットを取り込み、オブジェクト階層の中に含ませることによって、当該アプリケーションのキャッシュ・バージョンを備える、またはアプリケーションへのオフライン・アクセスを可能にすることもできる。当業者であれば、オブジェクト階層においてアプリケーションを表現するための多くの技法を、本明細書において論ずる技法を実現する間に、考案することができよう。
[0048] アプリケーションをオブジェクト階層において表現することに加えて、展開は、デバイスに関しておよび/またはユーザーに関して、アプリケーションのコンフィギュレーションを設定することを含むこともできる。例えば、新たな1組のコンフィギュレーション情報をデバイスに合わせて定式化することができ、またはコンフィギュレーション設定のライブラリーの中にあるしかるべき1組のコンフィギュレーション情報を、デバイスによる使用に合わせて指定することができる。図7は、このような1つの想定場面120を示す。ここでは、オブジェクト階層82は、カレンダー・アプリケーションの表現を含む。このカレンダー・アプリケーションは、2つのエクゼキュータブル・バイナリー(ローカル・ネーティブ実行のための1つのコンパイルしたエクゼキュータブルと、標準的なウェブ・ブラウザーによる低速であるが標準化を重視したアクセスのための1つのクライアント側ブラウザー・スクリプト)と、2つのコンフィギュレーション設定(高性能デバイスのための全機能コンフィギュレーションと、低電力移動体デバイスのための携帯用コンフィギュレーション設定)とを備えている。また、オブジェクト階層82は、ユーザーが選択した好ましいカラー方式というような、いずれのデバイスでも用いることができるようにするためのデバイス独立設定値を備えたコンフィギュレーション設定も含む。また、オブジェクト階層82は、コンピューティング環境をレンダリングすることができる2つのデバイス、即ち、低電力セルフォン・デバイス46および高性能ノート型コンピューター50の表現も収容する。
[0049] これらのデバイスに合わせてオブジェクト階層82の中にアプリケーションを展開する際に、アプリケーション展開コンポーネント92は、各デバイス上における個々の使用に合わせてアプリケーションのコンフィギュレーションを設定することができる。例えば、カレンダー・アプリケーションを、セルフォン・デバイス46のウェブ・ブラウザー・アプリケーション内において実行することができるクライアント側ブラウザー・スクリプト・エクゼキュータブル・バイナリーと、そして低電力デバイス用形態用コンフィギュレーション設定と関連付けることによって、セルフォン・デバイス46に合わせて展開することができる。同様に、カレンダー・アプリケーションを、コンパイルしたエクゼキュータブル・バイナリーと、そしてノート型コンピューター50がレンダリングすることができる計算集約的な機構を設けることができる全機能コンフィギュレーション設定と関連付けることによって、ノート型コンピューター50に合わせてカレンダー・アプリケーションを展開することができる。しかしながら、双方のデバイスは、1組の一貫したデバイス独立機能を提示するために、デバイス独立コンフィギュレーション設定を組み込むことができ、これによって計算メッシュ(computing mesh)のこのようなデバイス全ての間において一貫性のあるコンピューティング環境を促進する。当業者であれば、オブジェクト階層82におけるアプリケーションの取得、マッピング、および展開における更に別の変形も、本明細書において論ずる技法を実現する間に、考案することができよう。
[0050] これらの技法の実施態様間で多様に変化する可能性がある第3の態様は、このような実施形態の基本コンポーネントに追加することができる追加の機構に関する。基本的な管理サービス(取得、マッピング、および展開)に加えて、アプリケーションの管理に追加のサービスを提供することができ、アプリケーション・ライフ・サイクルの管理においてユーザーおよびコンピューター・システムに役立つことができる。
[0051] この第3の態様の第1の変形として、アプリケーション管理サービスは、図6の第3のアーキテクチャ例110に示すような、コンピューティング環境ホストとしての役割を果たすこともできる。この第1の変形では、アプリケーション管理サービスは、更に、オブジェクト階層を格納するように構成されているオブジェクト階層ストアと、オブジェクト階層の少なくとも一部をデバイスに(例えば、更新したオブジェクト階層を、各デバイス上に格納されているオブジェクト階層と同期させることによって)送信するように構成されているオブジェクト階層送信コンポーネントとを備えている。展開するアプリケーションを含むオブジェクト階層の部分をデバイスに送信すると、アプリケーションのデバイスへのインストールおよび展開を行うことができる。
[0052] この第3の態様の第2の変形として、アプリケーション管理サービスは、ユーザーに関心があるかもしれないアプリケーションの発見を容易にすることもできる。例えば、アプリケーションのオブジェクト階層への展開を管理する方法(図3の方法例60のような)は、照会の(querying)態様を含むことができ、この方法は、ユーザーからアプリケーションの照会を受けたときに、そのアプリケーションの照会を満たすアプリケーションを選択し、この選択したアプリケーションをユーザーに紹介するように構成されている。同様に、アプリケーションのオブジェクト階層への展開を管理するシステム(図4の例示的システム86のような)は、アプリケーション発見コンポーネントを含むことができる。アプリケーション発見コンポーネントは、ユーザーからアプリケーションの照会を受け、そのアプリケーションの照会を満たすアプリーションを選択し、選択したアプリケーションをユーザーに紹介するように構成することができる。次いで、ユーザーは、選択されたアプリケーションから1つ又は複数を取得するように選別することができ、アプリケーション管理システムは、そのアプリケーションをオブジェクト階層に展開することができる。
[0053] 図8は、このような1つの想定場面130を示す。ここでは、ユーザー132が、ユーザーのセルフォン・デバイス46と互換性があるかもしれないオーディオ・プレーヤー・アプリケーションを特定することを望んでいる。したがって、ユーザー132は、セルフォン・デバイスと互換性のあるメディア・プレーヤー・アプリケーションについての照会というような、アプリケーション照会136を、アプリケーション管理サービス86のアプリケーション発見コンポーネント134に発行することができる。アプリケーション発見コンポーネント134は、アプリケーション・ストア84と通信して、セルフォン・デバイス用オーディオ・プレーヤー・アプリケーションおよびセルフォン・デバイス用ビデオ・プレーヤー・アプリケーションというような、アプリケーション照会136を満たすアプリケーションを特定することができる。したがって、アプリケーション発見コンポーネント134は、これらのアプリケーションをユーザー132に紹介する応答138を供給することができる。ユーザー132は、発見されたアプリケーションの内、セルフォン・デバイス46に展開しようとする1つ又は複数の選択140によって、アプリケーション管理サービス86に回答することができる。次いで、アプリケーション管理サービス86は、選択されたアプリケーション(この想定場面130では、セルフォン・デバイス用オーディオ・プレーヤー・アプリケーション)を取得することができ、そのアプリケーションをオブジェクト階層142に展開することができる。次いで、セルフォン・デバイス46に送信して、選択されたアプリケーションの展開を完了することができる。当業者であれば、アプリケーションの発見を容易にするその他の手法も、本明細書において論ずる技法を実現する間に、考案することができよう。
[0054] この第3の態様の第3の変形として、アプリケーション管理サービスは、アプリケーションの起動を容易にすることもできる。例えば、アプリケーション管理サービスを具体化する例示的システムは、アプリケーション起動コンポーネントを含むことができる。このアプリケーション起動コンポーネントは、少なくとも1つのデバイス上においてアプリケーションを起動するように構成することができる。アプリケーション起動コンポーネントは、例えば、デバイスに合ったプラットフォームを設け、アプリケーションの実行を容易にするように構成されているランタイム(runtime)を備えることができる。例えば、アプリケーションをサービスにおいてクライアント側ブラウザー・スクリプトとして展開することができ、アプリケーション管理サービスは、オブジェクト階層と共に、ブラウザー・スクリプトをインタープリター式で実行することができるブラウザー・ランタイムを含むことができる。別の例として、アプリケーションをソース・コードとして表すことができ、アプリケーション起動コンポーネントは、デバイス特定コンパイラを備えることができる。デバイス特定コンパイラは、デバイス上でアプリケーションを起動したときに、ソース・コードをコンパイルしてエクゼキュータブル・バイナリーとし、これをデバイス上で実行することができる。更に、アプリケーション起動コンポーネントは、コンパイルしたエクゼキュータブル・バイナリーを、アセンブリ・キャッシュの中にというように、格納することもでき、アプリケーションを再度コンパイルする代わりに、格納したエクゼキュータブル・バイナリーを取り出すことによって、アプリケーションを起動するその後の要求に応答することができる。第3の例として、ウェブ対応アプリケーションは、リモート・リソースにアクセスするように構成されているクライアント側フロント・エンドを備えることができ、アプリケーション起動コンポーネントは、リモート・リソースに接続し、アプリケーションの起動時にデバイスに対する入手可能性を検証しようとすることもできる。当業者であれば、デバイス上におけるアプリケーションの起動を容易にする多くの方法を、本明細書において論ずる技法を実現する間に、考案することができよう。
[0055] この第3の態様の第4の変形として、アプリケーション管理サービスは、更に、アプリケーションの態様(aspects)を他のユーザーと共有するのを容易にすることもできる。このようなアプリケーションの共有は、多くの想定場面において行われる可能性がある。第1の例として、共有は、アプリケーション全体(それと関連のある全てのリソースおよびデーター・オブジェクトを含む)の共有を必要とする場合がある。第2の例として、共有は、あるバージョンのアプリケーションを他のユーザーと共有することを伴う場合もある。例えば、第1ユーザーがアプリケーションを用いるライセンスを購入しており、第2ユーザーにそのアプリケーションをライセンスすることを進めるために、アプリケーションの一部の特徴を実演することができる縮減機能バージョンで、そのアプリケーションを第2ユーザーと共有することができる。第3の例として、共有は、アプリケーションによって作成されたメディア・オブジェクトのような、アプリケーションと関連のある1つ又は複数のデーター・オブジェクトを共有することを伴う場合もある。つまり、第2ユーザーが同じアプリケーションまたは別のアプリケーションを用いて、第2ユーザーのコンピューティング環境内にメディア・オブジェクトをレンダリングすることができる。第4の例として、共有は、アプリケーションのコンフィギュレーションを他のユーザーと共有することを伴う場合もある。例えば、ソフトウェア開発チームの数人の部員が、ソフトウェアの開発においてチームとして作業しながら、統合開発環境の内特定のコンフィギュレーションを利用することもあり得る。第5の例として、共有は、アプリケーションの一セッションを他のユーザーと共有することを伴う場合もある。例えば、二人のユーザーがテキスト文書の準備において協力することが考えられ、第1ユーザーがワープロ・アプリケーションの一セッションを第2ユーザーと共有して、これらのユーザー間における生の対話処理を促進することができる。これらの共有の想定場面は、コンピューティング環境(1つのオブジェクト階層によって表される)の数人のユーザー間や、2つ以上のコンピューティング環境(多数のオブジェクト階層によって表される)のユーザー間において起きる可能性があり、あるいはファイル転送プロトコル(FTP)のような共通の通信プロトコルを通じて、共有するコンピューティング環境のデーター・オブジェクトを供給することによって、コンピューティング環境を表すオブジェクト階層の一部を、分からないように表されているコンピューティング環境のユーザーと共有するときにも起こる可能性がある。当業者であれば、これらおよびその他の共有の想定場面を、本明細書において論ずる技法を実現する間に、考案することができよう。
[0056] 図9は、アプリケーション共有の想定場面150を示す。ここでは、第1オブジェクト階層152の第1ユーザーが、メディア・プレーヤー・アプリケーションと、種々のアーティストによって作成された種々の歌という形態のいくつかのメディア・オブジェクトを取得しており、このようなメディア・オブジェクトは忠実性高く符号化されている(即ち、320kbpsの符号化速度)。また、第1ユーザーはポッドキャストのようなメディア・プレーヤー・セッションも作成しており、これは、第1オブジェクト階層152のメディア・セクションにおいて表されているオブジェクトの内数個を参照する。第1ユーザーはこのポッドキャストを、第2オブジェクト階層154の第2ユーザーと共有することを望むかもしれない。したがって、アプリケーション共有は、このメディア・プレーヤー・セッションを第1オブジェクト階層152から第2オブジェクト階層154にコピーすることを必要とすることもある。メディア・プレーヤー・セッションは、第1オブジェクト階層152に格納されているいくつかのメディア・オブジェクトを参照するので、このアプリケーション共有は、メディア・オブジェクトを第2オブジェクト階層154にコピーすることによって、その中で参照されているメディア・オブジェクトを共有することを必要とする場合もある。しかしながら、メディア・オブジェクトに付随するディジタル権利は、忠実度を低くしなければ、メディア・オブジェクトの他のオブジェクト階層への送信を許可しない場合もある。したがって、コンピューティング環境は、第2オブジェクト階層に、品質を低下させてコード変換したメディア・オブジェクト(例えば、24kbps符号化速度)のバージョンを送信すればよい。加えて、第2オブジェクト階層154は、メディア・オブジェクトによって表されるタイプのオーディオについては、メディア・プレーヤー・アプリケーションを含まなくてもよい。したがって、第1オブジェクト階層152は、メディア・プレーヤー・アプリケーションの1つのバージョンを第2オブジェクト階層154と共有すればよい。しかしながら、第1ユーザーが取得したメディア・プレーヤー・アプリケーションのエンド・ユーザー・ライセンス契約にしたがって、縮減機能バージョンを第2ユーザーに送信することができる。このように、アプリケーション・セッションに関するコンポーネントのディジタル権利を遵守しつつ、第1オブジェクト階層152の一部を第2オブジェクト階層154に送信することによって、アプリケーション、それによってレンダリングされるメディア・オブジェクト、および第1ユーザーが発生したアプリケーション・セッションを、第2ユーザーと自動的に共有することができる。
[0057] この第3の態様の第5の変形として、アプリケーション管理サービスは、新たなコンテンツによるアプリケーションの更新を容易にすることができる。バイナリーをパッチングし、新たなリソースを挿入し、既存のリソースを変更または除去することによって、アプリケーションを新たなバージョンに、そして新たなコンテンツで更新することが多い。このような更新は、アプリケーション管理サービスによって、アプリケーション更新を入手し、オブジェクト階層において表されているアプリケーションに更新を展開することによって(例えば、オブジェクト階層に収容されているアプリケーション・リソースを更新すること、および/または新たなリソースを新たなオブジェクトとしてオブジェクト階層に挿入することによって)実行することができる。これらの更新は、ユーザーの要求時に適用することができる。ユーザーは、アプリケーションによって露出されることになる新たなコンテンツを既に取得していることもある。また、更新は、アプリケーション・ストアへの照会によって、アプリケーション管理サービスによって読み出すこともでき、あるいはアプリケーション・ストアまたは管理運営サーバーによってアプリケーション管理サービスにプッシュすること等ができる。更新されたオブジェクト階層は、次いで、1つ又は複数のデバイスに送信することができ、これによって、コンピューティング環境のアプリケーションの更新を、ユーザー関与に頼る程度を低減して遂行することができる。当業者であれば、オブジェクト階層において表されているアプリケーションを更新する多くの方法を、本明細書において論ずる技法を実現する間に、考案することができよう。
[0058] この第3の態様の第6の変形として、アプリケーション管理サービスは、コンピューティング環境からのアプリケーションの取り消しも許可することができる。この取り消しには、アプリケーションのデバイスへのマッピングを除去する、アプリケーション活性化サーバーの許可済みデバイス・リストにおいてデバイスの許可を廃止する(de-authorize)、デバイスからアプリケーション・リソースを除去する(例えば、そのデバイスから、オブジェクト階層の内アプリケーション・リソースを収容する部分を制止することによって)、ならびにアプリケーション・リソースの全てをオブジェクト階層および全てのマッピングされたデバイスから除去することによってアプリケーションを完全に使用廃止するというように、多くの想定場面が関与する可能性がある。取り消しは、1つ又は複数のデバイスからアプリケーションをアンインストールしたいユーザーの要求によって、または期間限定ソフトウェア・ライセンスの満了時に、またはデバイスを計算メッシュから除去するとき等に行うことができる。この変形の一実施形態例として、アプリケーション管理システムは、これらの態様のいずれにおいても、少なくとも1つのデバイスからアプリケーションを取り消すように構成されているアプリケーション取り消しコンポーネントを含むことができる。当業者であれば、オブジェクト階層によって表されるコンピューティング環境内部からアプリケーションを取り消す多くの方法を、本明細書において論ずる技法を実現する間に、考案することができよう。
[0059] これらの態様のこれらの変形は、本明細書において論じた技法の多くの実施形態に含めることができ、図3の方法例60および図4の例示的システム86を含む。更に、様々なこのような変形は、組み合わせて実現することもでき、これらの別の変形およびこれらの技法の別の態様と共に実現して、図3および図4に示したより基本的な実施形態に関して、様々な利点を得ること、および/または欠点を縮減することができる。また、組み合わせによっては、相乗効果が得られる場合もある。例えば、アプリケーション発見コンポーネントをアプリケーション取得コンポーネントに協同的にリンクして、アプリケーションの調達の内、発見、購入、ライセンス受諾、およびユーザー・アカウント作成を、統合ユーザー体験として提示することもできる。
[0060] 図10は、少なくとも1つのデバイス(セルフォン・デバイス46、ノート型コンピューター50、および公衆ワークステーション54のような)上においてコンピューティング環境を表すオブジェクト階層44において、アプリケーションの展開を管理する例示的システム160を示す。図10の例示的システム160は、本明細書において論じた変形の多くを具体化する。図10の例示的システム160は、オブジェクト階層44を格納するように構成されているオブジェクト階層ストア82と、少なくとも1つのアプリケーションを表すアプリケーション・ストア84とを含み、それぞれのアプリケーションが少なくとも1つのアプリケーション・リソースを構成する。また、例示的システム160は、ユーザーからアプリケーション照会を受けて、そのアプリケーション照会を満たすアプリケーションを選択し、選択したアプリケーションをユーザーに紹介するように構成されているアプリケーション発見コンポーネント134も含む。また、例示的システム160は、アプリケーション取得コンポーネント88も含む。アプリケーション取得コンポーネント88は、アプリケーションをインストールする要求を受け、デバイスを通じてユーザーにアプリケーション・ライセンスを提示し、ユーザーからアプリケーション・ライセンスの受諾を受けたときに、アプリケーション・ライセンスの受諾を記録するように構成されている。また、アプリケーション取得コンポーネント88は、アプリケーションのユーザーを表すユーザー・アカウントを発生し、少なくとも1つのデバイスのユーザーとの取得トランザクションを仲介するように構成されている。アプリケーション発見コンポーネント134およびアプリケーション取得コンポーネント88は、調和して、典型的なアプリケーション・ライフ・サイクルにおけるアプリケーションの調達を容易にする。
[0061] また、図10の例示的システム160は、アプリケーション・マッピング・コンポーネント90も含む。アプリケーション・マッピング・コンポーネント90は、オブジェクト階層44において表されている少なくとも1つのデバイスを、少なくとも1つのインストールされているアプリケーションにマッピングするように構成されている。また、例示的システム160はアプリケーション展開コンポーネント92も含む。アプリケーション展開コンポーネント92は、当該デバイスおよびそのデバイスのユーザーの内少なくとも1つに関してアプリケーションのコンフィギュレーションを設定することによって、少なくとも1つのインストールされたアプリケーションをオブジェクト階層44の中に展開するように構成されている。アプリケーション・マッピング・コンポーネント90およびアプリケーション展開コンポーネント92は、調和して、典型的なアプリケーション・ライフ・サイクルにおける、オブジェクト階層内のアプリケーションのインストールを容易にする。
[0062] また、図10の例示的システム160は、アプリケーション起動コンポーネント162も含む。アプリケーション起動コンポーネント162は、少なくとも1つのデバイス上においてアプリケーションを起動するように構成されている。また、例示的システム160はアプリケーション共有コンポーネント164も含む。アプリケーション共有コンポーネント164は、ユーザーとアプリーションを共有する要求を受けて、このアプリケーションを共有する要求を受けたときに、アプリケーション、アプリケーション・セッション、アプリケーション・コンフィギュレーション、およびアプリケーションが発生した少なくとも1つのデーター・オブジェクトの内少なくとも1つを構成する、オブジェクト階層の一部をユーザーと共有するように構成されている。また、例示的システム160は、アプリケーション更新コンポーネント166も含む。アプリケーション更新コンポーネント166は、オブジェクト階層44において少なくとも1つのアプリケーション・リソースを更新するように構成されている。アプリケーション起動コンポーネント162、アプリケーション共有コンポーネント164、およびアプリケーション更新コンポーネント166は、調和して、典型的なアプリケーション・ライフ・サイクルにおける1つ又は複数のデバイス上でのアプリケーションの実行を容易にする。
[0063] また、図10の例示的システム160は、アプリケーション取り消しコンポーネント168も含む。アプリケーション取り消しコンポーネント168は、(例えば、オブジェクト階層において1つ又は複数のデバイスの表現からアプリケーションのマッピングを解除し、1つ又は複数のデバイスからアプリケーションを除去し、および/またはオブジェクト階層からアプリケーションを完全に除去することによってアプリケーションを完全に使用廃止することにより)アプリケーションを取り消すように構成されている。アプリケーション取り消しコンポーネント168は、これによって、典型的なアプリケーション・ライフ・サイクルにおいてアプリケーションのアンインストールを容易にする。
[0064] 最後に、例示的システム160は、オブジェクト階層送信コンポーネント170も含む。オブジェクト階層送信コンポーネント170は、オブジェクト階層44の少なくとも一部を少なくとも1つのデバイスに送信するように構成されている。オブジェクト階層44は、アプリケーション管理システム160のコンポーネントの多くによって変更することができ、オブジェクト階層44の変更を、その中に表されている1つ又は複数のデバイスと同期させて、コンピューティング環境のアプリケーション集合の更新を実施することができる。本明細書において論じた技法のこれら多くの変形を組み合わせることによって、例示的システム160は、計算メッシュを構成する多くのデバイス間において、典型的なアプリケーション・ライフ・サイクルを通じて大きなアプリケーション集合を管理運営するための総合的なアプリケーション管理サービスを提供する。
[0065] 以上、構造的特徴および/または方法論的行為に特定的な文言で本主題について説明したが、添付した特許請求の範囲において定義されている主題は、かならずしも前述した具体的な特徴や行為には限定されないことは言うまでもない。むしろ、前述の具体的な特徴および行為は、特許請求の範囲を実施する形態例として開示したまでである。
[0066] 本願において用いる場合、「コンポーネント」、「モジュール」、「システム」、「インターフェース」等の用語は、一般に、コンピューター関連エンティティを指し、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかであることを意図している。例えば、コンポーネントは、限定ではなく、プロセッサ上で実行中のプロセス、プロセッサ、オブジェクト、エクゼキュータブル、実行のスレッド、プログラム、および/またはコンピューターであってもよい。例示として、コントローラ上で実行中のアプリケーションおよびそのコントローラの双方がコンポーネントであり得る。1つ又は複数のコンポーネントが1つのプロセスの中に位置しても良く、および/または実行のスレッドおよびコンポーネントを1つのコンピューター上に局在させて(localize)もよく、および/または2つ以上のコンピューター間で分散してもよい。
[0067] 更に、特許請求する主題は、コンピューターを制御して開示した主題を実現させるソフトウェア、ファームウェア、ハードウェア、またはそれらのいかなる組み合わせをも生成するために、標準的なプログラミングおよび/またはエンジニアリング技法を用いた、方法、装置、または製造品目として実現することができる。「製造品目」という用語は、本明細書において用いる場合、あらゆるコンピューター読み取り可能デバイス、担体、または媒体からでもアクセス可能なコンピューター・プログラムを包含することを意図している。勿論、特許請求する主題の範囲および主旨から逸脱することなく、多くの変更をこの構成に加えることができることは、当業者には認められよう。
[0068] 図11および以下の論述は、本明細書において明記した設備(provision)の1つ又は複数の実施形態を実現するのに適したコンピューティング環境の端的な全体的説明を提示する。図11の動作環境は、適した動作環境の一例に過ぎず、動作環境の使用または機能の範囲に関して、何の限定も示唆することを意図するのではない。コンピューティングデバイスの例には、限定ではなく、パーソナル・コンピューター、サーバー・コンピューター、ハンドヘルドまたはラップトップ・デバイス、移動体デバイス(移動電話機、パーソナル・ディジタル・アシスタント(PDA)、メディア・プレーヤーなど)、マルチプロセッサ・システム、消費者向け電子機器、ミニ・コンピューター、メインフレーム・コンピューター、以上のシステムまたはデバイスのいずれでも含む分散型コンピューティング環境等が含まれる。
[0069] 実施形態は、1つ又は複数のコンピューティングデバイスによって実行される「コンピューター読み取り可能命令」という一般的なコンテキストにおいて説明するが、こうすることが求められているのではない。コンピューター読み取り可能命令は、コンピューター読み取り可能媒体(以下で論ずる)によって配信することができる。コンピューター読み取り可能命令は、関数、オブジェクト、アプリケーション・プログラミング・インターフェース(API)、データー構造などのような、特定のタスクを実行するかまたは特定の抽象的データー・タイプを実現するプログラム・モジュールとして実現することができる。通例では、コンピューター読み取り可能命令の機能は、所望に応じて、種々の環境において組み合わせることまたは分散することもできる。
[0070] 図11は、本明細書において提唱した1つ又は複数の実施形態を実現するように構成されているコンピューティングデバイス182を備えているシステム180の一例を示す。一構成では、コンピューティングデバイス182は、少なくとも1つの演算装置186と、メモリー188とを含む。コンピューティングデバイスの正確な構成および種類によっては、メモリー188は揮発性(例えば、RAMのような)、不揮発性(例えば、ROM、フラッシュ・メモリーのような)、またはこれら2つの組み合わせとなることもある。この構成は、図11では、破線184によって示されている。
[0071] 他の実施形態では、コンピューティングデバイス182は、追加の機構および/または機能を含むこともできる。例えば、コンピューティングデバイス182は、限定ではなく、磁気ストレージ、光ストレージ等を含む追加のストレージ(例えば、リムーバブルおよび/または非リムーバブル)を含むこともできる。このような追加のストレージは、図11では、ストレージ190によって例示されている。一実施形態では、本明細書において提唱した1つ又は複数の実施形態を実現するためのコンピューター読み取り可能命令は、ストレージ190の中に入れることができる。また、ストレージ190は、オペレーティング・システム、アプリケーション・プログラムなどを実装するための他のコンピューター読み取り可能命令も格納することができる。コンピューター読み取り可能命令は、例えば、演算装置186による実行のために、メモリー188にロードすることができる。
[0072] 「コンピューター読み取り可能媒体」という用語は、本明細書において用いる場合、コンピューター記憶媒体を含む。コンピューター記憶媒体は、コンピューター読み取り可能命令またはその他のデーターのような情報の格納のためにいずれかの方法または技術で実現された、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含む。メモリー188およびストレージ190は、コンピューター記憶媒体の例である。コンピューター記憶媒体は、限定ではなく、RAM、ROM、EEPROM、フラッシュ・メモリーまたはその他のメモリー技術、CD−ROM、ディジタル・バーサタイル・ディスク(DVD)またはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたはその他の磁気記憶デバイス、あるいは所望の情報を格納するために用いることができその上デバイス182によってアクセスすることができるのであれば他のいずれの媒体をも含む。このような御ピュータ記憶媒体は、そのいずれもがコンピューティングデバイス182の一部となってもよい。
[0073] また、コンピューティングデバイス182は、コンピューティングデバイス182が他のデバイスと通信することを可能にする通信接続(1つまたは複数)196も含むことができる。通信接続(1つまたは複数)196は、限定ではなく、モデム、ネットワーク・インターフェース・カード(NIC)、統合ネットワーク・インターフェース、無線周波数送信機/受信機、赤外線ポート、USB接続、またはコンピューティングデバイス182を他のコンピューティングデバイスと接続するためのその他のインターフェースを含むことができる。通信接続(1つまたは複数)196は、有線接続またはワイヤレス接続を含むことができる。通信接続(1つまたは複数)196は、通信媒体を送信および/または受信することができる。
[0074] 「コンピューター読み取り可能媒体」という用語は、通信媒体を含むことができる。通信媒体は、通例、搬送波またはその他の伝達メカニズムのような「変調データー信号」にコンピューター読み取り可能命令またはその他のデーターを具体化し、いずれの情報配信媒体も含む。「変調データー信号」という用語は、情報を信号内に符号化するような態様で設定または変更したその特性の1つ又は複数を有する信号を含むことができる。
[0075] コンピューティングデバイス182は、キーボード、マウス、ペン、音声入力デバイス、接触入力デバイス、赤外線カメラ、ビデオ入力デバイス、および/またはその他のあらゆる入力デバイスというような、入力デバイス(1つまたは複数)194を含むことができる。1つ又は複数のディスプレイ、スピーカー、プリンター、および/またはその他の出力デバイスというような出力デバイス(1つまたは複数)192も、コンピューティングデバイス182に含むことができる。入力デバイス(1つまたは複数)194および出力デバイス(1つまたは複数)192は、有線接続、ワイヤレス接続、またはそのいずれの組み合わせによってでも、コンピューティングデバイス182に接続することができる。一実施形態では、別のコンピューティングデバイスからの入力デバイスまたは出力デバイスを、コンピューティングデバイス182用の入力デバイス(1つまたは複数)194または出力デバイス(1つまたは複数)192として用いることもできる。
[0076] コンピューティングデバイス182のコンポーネントは、バスのような、種々の相互接続によって接続することができる。このような相互接続は、PCI Expressのようなペリフェラル・コンポーネント相互接続(PCI)、ユニバーサル・シリアル・バス(USB)、ファイアワイヤ(IEEE1394)、光バス構造などを含むことができる。別の実施形態では、コンピューティングデバイス182のコンポーネントは、ネットワークで相互接続することができる。例えば、メモリー188は、ネットワークによって相互接続されている異なる物理的位置にある多数の物理的メモリー・ユニットによって構成することもできる。
[0077] コンピューター読み取り可能命令を格納するために利用される記憶デバイスは、ネットワークに跨って分散させてもよいことは、当業者には分かるであろう。例えば、ネットワーク198を通じてアクセス可能なコンピューティングデバイス200は、本明細書において提唱した1つ又は複数の実施形態を実現するために、コンピューター読み取り可能命令を格納することができる。コンピューティングデバイス182は、コンピューティングデバイス100にアクセスし、コンピューター読み取り可能命令の一部または全部を実行のためにダウンロードすることができる。あるいは、コンピューティングデバイス182は、必要に応じて、コンピューター読み取り可能命令の断片をダウンロードすることができ、一部の命令をコンピューティングデバイス182において実行し、一部をコンピューティングデバイス200において実行することもできる。
[0078] 本明細書では、実施形態の種々の動作について提唱した。一実施形態では、記載した動作の1つ又は複数が、1つ又は複数のコンピューター読み取り可能媒体上に格納されたコンピューター読み取り可能命令を構成することができ、コンピューティングデバイスによって実行すると、当該コンピューティングデバイスに、記載した動作を実行させる。これらの動作の一部または全部を記載した順序は、これらの動作に必然的な順序依存性があるように解釈すべきではない。この記載の援助を得た当業者には、代わりの順序も認められよう。更に、本明細書において提唱した各実施形態において、全ての動作が必ずしも出てくる訳ではないことは言うまでもない。
[0079] 更に、「一例の」という単語は、本明細書では、一例、実例、または例示としての役割を果たすことを意味するために用いられる。本明細書において「一例の」として記載される態様または設計はいずれも、他の態様または設計よりも有利であるとは必ずしも解釈されない。むしろ、一例のという用語の使用は、概念を具体的に紹介することを意図している。本明細書において用いる場合、「または」という用語は、排他的な「または」ではなく包含的な「または」を意味することを意図する。即ち、そうでないことが指定されていない限り、または文脈から明白でない限り、「XはAまたはBを採用する」とは、自然な包含的組み合わせ(permutation)のいずれでも意味することを意図する。即ち、XがAを採用する場合、XがBを採用する場合、またはXがAおよびBの双方を採用する場合、これらの実例のいずれにおいても、「XはAまたはBを採用する」が満たされる。加えて、冠詞「a」および「an」は、本願および添付した特許請求の範囲において用いられる場合、そうでないことが指定されていない限り、また単数形を対象とすることが文脈から明白でない限り、「1つ又は複数」を意味するように通常解釈することができる。
[0080] また、1つ又は複数の実施態様に関して本開示を示し説明したが、本明細書および添付図面の熟読および理解に基づいて、同等の変形や変更が当業者には想起されよう。本開示は、このような変更や変形を全て含み、以下の特許請求の範囲のみによって限定される。特に、以上で述べたコンポーネント(例えば、エレメント、リソース等)によって実行される種々の機能に関して、このようなコンポーネントを記載するために用いられた用語は、そうでないことが示されない限り、記載されたコンポーネント(例えば、機能的に同等な)の指定された機能を実行するのであれば、本開示のここで例示された実施態様例における機能を実行する、開示された構造に構造的に同等でなくても、いずれのコンポーネントにも対応することを意図している。加えて、本開示の特定的な機構を、様々な実施態様の内1つのみに関して開示したが、このような機構は、いずれの所与の用途または特定の用途にとっても望まれるまたは有利となるように、他の実施態様の1つ又は複数の別の機構と組み合わせることができる。更に、「含む」、「有している」(having)、「有する」(has)、「と」(with)という用語、またはその異形が詳細な説明または特許請求の範囲において用いられている限りにおいて、このような単語は、用語「備えている」(comprising)と同様に内包的であることを意図している。

Claims (15)

  1. コンピューターにおいて実装され、少なくとも1つのデバイスのコンピューティング環境を表すオブジェクト階層におけるアプリケーションの展開を管理する方法であって、
    アプリケーションをデバイスに展開する要求を受け取ると、
    前記コンピューターが、前記オブジェクト階層が前記アプリケーションを含まない場合に、前記アプリケーションを、アプリケーションを記憶するアプリケーション・ストアから取得し、少なくとも2つのコンフィギュレーション情報を含んだ前記アプリケーションを前記オブジェクト階層にインサートするステップと、
    前記コンピューターが、前記デバイスと前記アプリケーションと、前記アプリケーション向けに前記デバイスによって使用されるべく前記少なくとも2つのコンフィギュレーション情報から選択されたコンフィギュレーション情報と、の関連を前記オブジェクト階層の中に作成するステップと、
    前記コンピューターが、前記アプリケーション、前記選択されたコンフィギュレーション情報、及び、前記アプリケーションと前記デバイスと前記選択されたコンフィギュレーション情報との関連、を含む前記オブジェクト階層の少なくとも一部を、前記デバイス同期させるステップと、
    を含む、方法。
  2. 請求項1記載の方法において、アプリケーション照会をユーザーから受け取ると、
    前記コンピューターが、前記アプリケーション照会を満たすアプリケーションを前記アプリケーション・ストアから選択するステップと、
    前記コンピューターが、選択されたアプリケーションを前記ユーザーに提示するステップと、
    を含む、方法。
  3. 請求項1記載の方法であって、
    前記コンピューターが、前記アプリケーションをユーザー間で共有する要求を受け取ると、前記アプリケーションを前記ユーザー間で共有するステップを含む、方法。
  4. メモリーとプロセッサーとを備えアプリケーションを記憶するアプリケーション・ストアへのアクセスを有するコンピューターにおいて実装され、アプリケーション・ストアによって管理される少なくとも1つのアプリケーションの、少なくとも1つのデバイスにおけるコンピューティング環境を表すオブジェクト階層への展開を管理するシステムであって、
    前記コンピューティング環境にアプリケーションをインストールする要求を受け取ると、前記オブジェクト階層が前記アプリケーションを含まない場合には、前記アプリケーションを前記アプリケーション・ストアから取得し、少なくとも2つのコンフィギュレーション情報を含んだ前記アプリケーションを前記オブジェクト階層に挿入するように構成されているアプリケーション取得コンポーネントと、
    少なくとも1つのデバイスにおいてアプリケーションをインストールする要求を受け取ると、前記デバイスと前記アプリケーションと、前記アプリケーション向けに前記デバイスによって使用されるべく前記少なくとも2つのコンフィギュレーション情報から選択されたコンフィギュレーション情報と、の関連を前記オブジェクト階層において作成するように構成されているアプリケーション・マッピング・コンポーネントと、
    前記アプリケーション、前記選択されたコンフィギュレーション情報、及び、前記アプリケーションと前記デバイスと前記選択されたコンフィギュレーション情報との関連、を含む前記オブジェクト階層を、前記少なくとも1つのデバイス同期させるように構成されているアプリケーション展開コンポーネントと、
    を備え、前記コンポーネントは前記コンピューターの前記メモリーに記憶された命令を前記コンピューターの前記プロセッサー実行することによってその機能が実現される、システム。
  5. 請求項記載のシステムであって、
    前記オブジェクト階層を記憶するように構成されているオブジェクト階層ストアと、
    前記オブジェクト階層の少なくとも一部を前記コンピューターから前記少なくとも1つのデバイスへ送信することによって、前記オブジェクト階層の少なくとも一部前記少なくとも1つのデバイス同期させるように構成されているオブジェクト階層送信コンポーネントと、
    を備えている、システム。
  6. 請求項記載のシステムであって、
    ユーザーからアプリケーション照会を受け取り、
    前記アプリケーション照会を満たすアプリケーションを前記アプリケーション・ストアから選択し、
    選択されたアプリケーションをユーザーに提示する、
    ように構成されたアプリケーション発見コンポーネントを備えている、システム。
  7. 請求項記載のシステムにおいて、前記アプリケーション取得コンポーネントは、
    前記デバイスを通じてアプリケーション・ライセンスの条件をユーザーに提示し、
    前記ユーザーから前記アプリケーション・ライセンスの条件の受諾を受け取ると、前記アプリケーション・ライセンスの前記受諾を記録するように構成されている、システム。
  8. 請求項記載のシステムにおいて、前記アプリケーション取得コンポーネントは、前記アプリケーションのユーザーを表すユーザー・アカウントを発生することによってウェブ・アプリケーションへのアクセスを取得するように構成されている、システム。
  9. 請求項記載のシステムであって、
    前記少なくとも1つのデバイスにおいて前記アプリケーションを起動するように構成されているアプリケーション起動コンポーネントを備えている、システム。
  10. 請求項記載のシステムであって、
    前記アプリケーションをユーザー間で共有する要求を受け取り、前記アプリケーションを共有する前記要求を受け取ると前記アプリケーションを前記ユーザー間で共有するように構成されているアプリケーション共有コンポーネントを備えている、システム。
  11. 請求項10記載のシステムにおいて、前記アプリケーション共有コンポーネントは、前記アプリケーションと、アプリケーション・セッションと、アプリケーション・コンフィギュレーションと、前記アプリケーションによって発生された少なくとも1つのデータ・オブジェクトと、の中の少なくとも1つを含む前記オブジェクト階層の一部を前記ユーザー間で共有するように構成されている、システム。
  12. 請求項記載のシステムであって、
    前記アプリケーションを更新するように構成されているアプリケーション更新コンポーネントを備えている、システム。
  13. 請求項12記載のシステムにおいて、前記アプリケーション更新コンポーネントは、前記オブジェクト階層において少なくとも1つのアプリケーション・リソースを更新するように構成されている、システム。
  14. 請求項記載のシステムであって、
    前記アプリケーションを取り消すように構成されているアプリケーション取消コンポーネントを備えている、システム。
  15. メモリーとプロセッサーとを備えアプリケーションを記憶するアプリケーション・ストアへのアクセスを有するコンピューターにおいて実装され、少なくとも1つのデバイスのコンピューティング環境を表すオブジェクト階層におけるアプリケーションの展開を管理するシステムであって、
    前記オブジェクト階層を記憶するように構成されているオブジェクト階層ストアと
    ーザーからアプリケーション照会を受け取り、前記アプリケーション照会を満たすアプリケーションを前記アプリケーション・ストアから選択し、選択されたアプリケーションをユーザーに提示するように構成されたアプリケーション発見コンポーネントと、
    前記コンピューティング環境においてアプリケーションをインストールする要求を受け取ると、
    前記デバイスを通じてアプリケーション・ライセンスの条件をユーザーに提示し、
    前記ユーザーから前記アプリケーション・ライセンスの条件の受諾を受け取ると、前記アプリケーション・ライセンスの前記受諾を記録し、
    前記アプリケーションのユーザーを表すユーザー・アカウントを発生することによってウェブ・アプリケーションへのアクセスを取得
    記アプリケーションを前記アプリケーション・ストアから取得し、
    少なくとも2つのコンフィギュレーション情報を含んだ前記アプリケーションを前記オブジェクト階層に挿入する、
    ように構成されているアプリケーション取得コンポーネントと、
    デバイスにおいて前記アプリケーションをインストールする要求を受け取ると、前記デバイスと前記アプリケーションと、前記アプリケーション向けに前記デバイスによって使用されるべく前記少なくとも2つのコンフィギュレーション情報から選択されたコンフィギュレーション情報と、の関連を前記オブジェクト階層において作成するように構成されているアプリケーション・マッピング・コンポーネントと、
    前記アプリケーション、前記選択されたコンフィギュレーション情報、及び、前記アプリケーションと前記デバイスと前記選択されたコンフィギュレーション情報との関連、を含む前記オブジェクト階層の少なくとも一部を、前記コンピューターから前記少なくとも1つのデバイスへ送信することによって、前記オブジェクト階層の少なくとも一部前記少なくとも1つのデバイス同期させるように構成されているオブジェクト階層送信コンポーネントと、
    前記少なくとも1つのデバイスにおいて前記アプリケーションを起動するように構成されているアプリケーション起動コンポーネントと、
    前記アプリケーションをユーザー間で共有する要求を受け取るアプリケーション共有コンポーネントであって、前記要求を受け取ると、前記アプリケーションと、アプリケーション・セッションと、アプリケーション・コンフィギュレーションと、前記アプリケーションによって発生された少なくとも1つのデータ・オブジェクトと、の中の少なくとも1つを含む前記オブジェクト階層の一部を前記ユーザー間で共有するように構成されているアプリケーション共有コンポーネントと、
    前記オブジェクト階層において少なくとも1つのアプリケーション・リソースを更新するように構成されているアプリケーション更新コンポーネントと、
    前記アプリケーションを取り消すように構成されているアプリケーション取消コンポーネントと、
    を備え、前記コンポーネントは前記コンピューターの前記メモリーに記憶された命令を前記コンピューターの前記プロセッサー実行することによってその機能が実現される、システム。
JP2011500835A 2008-03-20 2009-02-20 展開可能オブジェクト階層内におけるアプリケーション管理 Active JP5409767B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/052,550 2008-03-20
US12/052,550 US9753712B2 (en) 2008-03-20 2008-03-20 Application management within deployable object hierarchy
PCT/US2009/034601 WO2009117207A1 (en) 2008-03-20 2009-02-20 Application management within deployable object hierarchy

Publications (3)

Publication Number Publication Date
JP2011515763A JP2011515763A (ja) 2011-05-19
JP2011515763A5 JP2011515763A5 (ja) 2012-04-05
JP5409767B2 true JP5409767B2 (ja) 2014-02-05

Family

ID=41090146

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011500835A Active JP5409767B2 (ja) 2008-03-20 2009-02-20 展開可能オブジェクト階層内におけるアプリケーション管理

Country Status (8)

Country Link
US (5) US9753712B2 (ja)
EP (1) EP2255295B1 (ja)
JP (1) JP5409767B2 (ja)
KR (1) KR20100133382A (ja)
CN (1) CN101978366B (ja)
BR (1) BRPI0907773A2 (ja)
TW (1) TWI473019B (ja)
WO (1) WO2009117207A1 (ja)

Families Citing this family (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8296728B1 (en) 2008-08-26 2012-10-23 Adobe Systems Incorporated Mobile device interaction using a shared user interface
US8832681B1 (en) * 2008-08-29 2014-09-09 Adobe Systems Incorporated Bundled mobile/desktop application package
JP5080406B2 (ja) * 2008-09-05 2012-11-21 株式会社エヌ・ティ・ティ・ドコモ 配信装置、端末装置及びシステム並びに方法
JP5112229B2 (ja) * 2008-09-05 2013-01-09 株式会社エヌ・ティ・ティ・ドコモ 配信装置、端末装置及びシステム並びに方法
US8271974B2 (en) 2008-10-08 2012-09-18 Kaavo Inc. Cloud computing lifecycle management for N-tier applications
US8069247B2 (en) * 2008-12-03 2011-11-29 Verizon Data Services Llc Application launcher systems, methods, and apparatuses
US9753746B2 (en) 2008-12-19 2017-09-05 Paul Krzyzanowski Application store and intelligence system for networked telephony and digital media services devices
US8707288B2 (en) * 2009-02-13 2014-04-22 Mobitv, Inc. System for automatic management of applications on remote devices
US20120047228A1 (en) * 2009-05-07 2012-02-23 Shady Hassan Sayed Hassan Aly Method for delivering tag based services
US20110072371A1 (en) * 2009-09-18 2011-03-24 Microsoft Corporation Application programming interface for user interface creation
KR20110040604A (ko) * 2009-10-14 2011-04-20 삼성전자주식회사 클라우드 서버, 클라이언트 단말, 디바이스, 클라우드 서버의 동작 방법 및 클라이언트 단말의 동작 방법
US9002574B2 (en) 2009-10-15 2015-04-07 Airbiquity Inc. Mobile integration platform (MIP) integrated handset application proxy (HAP)
US8831823B2 (en) 2009-10-15 2014-09-09 Airbiquity Inc. Centralized management of motor vehicle software applications and services
US8838332B2 (en) 2009-10-15 2014-09-16 Airbiquity Inc. Centralized management of motor vehicle software applications and services
US8942888B2 (en) 2009-10-15 2015-01-27 Airbiquity Inc. Extensible scheme for operating vehicle head unit as extended interface for mobile device
US9160812B2 (en) * 2009-10-22 2015-10-13 Cellco Partnership Systems and methods for delivering an application over a mobile communications network
US9037711B2 (en) 2009-12-02 2015-05-19 Metasecure Corporation Policy directed security-centric model driven architecture to secure client and cloud hosted web service enabled processes
CN102200918B (zh) * 2010-03-23 2015-12-16 中兴通讯股份有限公司 服务器部署应用程序的方法及装置
US10013252B2 (en) * 2010-04-16 2018-07-03 Oracle International Corporation Software development compliance system
US8707296B2 (en) * 2010-04-27 2014-04-22 Apple Inc. Dynamic retrieval of installation packages when installing software
US8359463B2 (en) * 2010-05-26 2013-01-22 Hewlett-Packard Development Company, L.P. Selecting a configuration for an application
US8521777B2 (en) * 2010-06-16 2013-08-27 Ricoh Company, Ltd Methods and apparatus for presentation of software as a service applications
EP4006728A1 (en) * 2010-07-09 2022-06-01 State Street Corporation Systems and methods for private cloud computing
US20120144319A1 (en) 2010-12-03 2012-06-07 Razer (Asia-Pacific) Pte Ltd Collaboration Management System
US9116728B2 (en) 2010-12-21 2015-08-25 Microsoft Technology Licensing, Llc Providing a persona-based application experience
US9354852B2 (en) 2010-12-23 2016-05-31 Microsoft Technology Licensing, Llc Satisfying application dependencies
US20120174212A1 (en) * 2010-12-29 2012-07-05 Microsoft Corporation Connected account provider for multiple personal computers
US8826260B2 (en) * 2011-01-11 2014-09-02 Intuit Inc. Customization of mobile-application delivery
WO2012107929A2 (en) * 2011-02-09 2012-08-16 Conduit Ltd Application synchronization among multiple computing devices
US8261295B1 (en) * 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
EP2710486B1 (en) * 2011-05-20 2021-06-30 Citrix Systems, Inc. Shell integration on a mobile device for an application executing remotely on a server
US8924958B1 (en) * 2011-05-24 2014-12-30 BlueStack Systems, Inc. Application player
US10089093B1 (en) 2011-05-24 2018-10-02 BlueStack Systems, Inc. Apparatuses, systems and methods of switching operating systems
US9843665B2 (en) 2011-05-27 2017-12-12 Microsoft Technology Licensing, Llc Display of immersive and desktop shells
US10417018B2 (en) 2011-05-27 2019-09-17 Microsoft Technology Licensing, Llc Navigation of immersive and desktop shells
US8924885B2 (en) * 2011-05-27 2014-12-30 Microsoft Corporation Desktop as immersive application
US8914794B2 (en) * 2011-06-30 2014-12-16 Rockwell Automation Technologies, Inc. Multiple deployment of applications with multiple configurations in an industrial automation environment
US8887214B1 (en) 2011-07-07 2014-11-11 Cisco Technology, Inc. System and method for unified metadata brokering and policy-based content resolution in a video architecture
US9123078B2 (en) 2011-08-19 2015-09-01 Nokia Technologies Oy Method and apparatus for socially aware applications and application stores
US9286050B2 (en) * 2011-09-02 2016-03-15 Verizon Patent And Licensing Inc. Method and system for context-based application management
US9173090B2 (en) * 2011-09-15 2015-10-27 Teletech Holdings, Inc. Method for activating services associated with a product via a service center supporting a variety of products
US9785628B2 (en) 2011-09-29 2017-10-10 Microsoft Technology Licensing, Llc System, method and computer-readable storage device for providing cloud-based shared vocabulary/typing history for efficient social communication
US10282221B2 (en) * 2011-12-09 2019-05-07 International Business Machines Corporation Controlling usage of virtual disks before their attachment to virtual machines
US12072989B2 (en) * 2011-12-09 2024-08-27 Sertainty Corporation System and methods for using cipher objects to protect data
US20130191495A1 (en) * 2012-01-23 2013-07-25 Cristian Almstrand Framework and system to distribute applications for heterogeneous platforms
US9503520B2 (en) * 2012-02-06 2016-11-22 Conduit Ltd. Application synchronization among multiple computing devices
US9235565B2 (en) * 2012-02-14 2016-01-12 Facebook, Inc. Blending customized user dictionaries
US9098357B2 (en) * 2012-04-11 2015-08-04 Nokia Technologies Oy Method and apparatus for activity management across multiple devices
JP6154894B2 (ja) 2012-06-08 2017-06-28 エアビクティ インコーポレイテッド 電子センサデータを評価して、自動車を遠隔的に識別し運転者の挙動を監視する方法
CA2783223C (en) * 2012-07-19 2014-07-15 Microsoft Corporation Global recently used files list
CN104919833B (zh) 2012-12-20 2019-11-08 爱尔比奎特公司 高效头单元通信集成
US20140189670A1 (en) * 2012-12-31 2014-07-03 Openpeak Inc. System and method for tailoring applications and application repositories for individual electrical devices
KR101822463B1 (ko) 2013-01-21 2018-01-26 삼성전자주식회사 복수 개의 아이콘들을 화면상에 배치하는 장치 및 이의 운용 방법
JPWO2014122733A1 (ja) * 2013-02-06 2017-01-26 株式会社日立製作所 計算機、データアクセス管理方法及び記録媒体
CN103164286A (zh) * 2013-03-12 2013-06-19 无锡云动科技发展有限公司 云计算平台部署的实现方法、资源管理器、云计算系统
TWI497953B (zh) * 2013-04-24 2015-08-21 Sunix Co Ltd 遠端周邊的控制系統、方法及其遠端服務器
WO2015006170A1 (en) * 2013-07-12 2015-01-15 FREILICH, Arthur A computer system storing content into application independent objects
CN104301338A (zh) * 2013-07-16 2015-01-21 苏州精易会信息技术有限公司 基于云平台的应用系统自动部署方法
US9503541B2 (en) * 2013-08-21 2016-11-22 International Business Machines Corporation Fast mobile web applications using cloud caching
US9323906B2 (en) * 2013-09-04 2016-04-26 D2L Corporation Method and system for digital rights management enforcement
US9098369B1 (en) * 2013-11-13 2015-08-04 Google Inc. Application installation using in-video programming
CN103970579B (zh) * 2014-05-29 2017-05-03 中国银行股份有限公司 应用版本部署方法及装置
US10185590B2 (en) 2014-06-16 2019-01-22 Amazon Technologies, Inc. Mobile and remote runtime integration
US9880918B2 (en) * 2014-06-16 2018-01-30 Amazon Technologies, Inc. Mobile and remote runtime integration
US8997081B1 (en) * 2014-09-18 2015-03-31 Ensighten, Inc. Analytics for mobile applications
US10476757B1 (en) * 2015-01-27 2019-11-12 Nutanix, Inc. Architecture for implementing centralized management for a computing environment
US9798864B2 (en) * 2015-03-06 2017-10-24 International Business Machines Corporation Embedded integrated component governance policy
CN105677421B (zh) * 2016-01-06 2020-01-03 惠州Tcl移动通信有限公司 一种移动终端的桌面启动器的定制方法及系统
US10791109B2 (en) 2016-02-10 2020-09-29 Red Hat, Inc. Certificate based expiration of file system objects
US20170235816A1 (en) 2016-02-12 2017-08-17 Nutanix, Inc. Entity database data aggregation
US10304215B2 (en) 2016-06-10 2019-05-28 Apple Inc. Providing variants of texture assets for an asset catalog
US10621314B2 (en) * 2016-08-01 2020-04-14 Palantir Technologies Inc. Secure deployment of a software package
US10607002B2 (en) * 2016-08-30 2020-03-31 Microsoft Technology Licensing, Llc Isolating an application running inside a native container application
US11675774B2 (en) 2016-09-23 2023-06-13 Amazon Technologies, Inc. Remote policy validation for managing distributed system resources
US10489424B2 (en) * 2016-09-26 2019-11-26 Amazon Technologies, Inc. Different hierarchies of resource data objects for managing system resources
CN106713047A (zh) * 2017-01-12 2017-05-24 泰凌微电子(上海)有限公司 一种网状网络中的节点升级方法与系统
US10810009B2 (en) * 2017-07-14 2020-10-20 Microsoft Technology Licensing, Llc Visualizations of software project and contributor activity
US11263399B2 (en) * 2017-07-31 2022-03-01 Apple Inc. Correcting input based on user context
GB201717251D0 (en) * 2017-10-20 2017-12-06 Palantir Technologies Inc Serving assets in a networked environment
US10678975B2 (en) * 2017-11-07 2020-06-09 Amazon Tecnnologies, Inc. Code module selection for device design
US10700991B2 (en) 2017-11-27 2020-06-30 Nutanix, Inc. Multi-cluster resource management
US10936333B2 (en) * 2018-02-28 2021-03-02 Forcepoint Llc System and method for managing system configuration data models
WO2019221732A1 (en) * 2018-05-17 2019-11-21 Hewlett-Packard Development Company, L.P. Application management service including package file
WO2020002030A1 (de) * 2018-06-26 2020-01-02 Siemens Aktiengesellschaft Verfahren und system zur bestimmung eines geeigneten installationsortes für eine zu installierende applikation in einer verteilten netzwerkumgebung
US10901717B2 (en) 2018-07-16 2021-01-26 International Business Machines Corporation Controlling computer executions based on terms and conditions and user device attributes
US20200159560A1 (en) * 2018-11-16 2020-05-21 Avi Networks Propagating ordered object changes
US11556320B2 (en) 2020-08-06 2023-01-17 Bank Of America Corporation Electronic system for dynamic analysis and detection of transformed transient data in a distributed system network
US11749284B2 (en) * 2020-11-13 2023-09-05 Google Llc Dynamically adapting on-device models, of grouped assistant devices, for cooperative processing of assistant requests
US12321656B2 (en) * 2021-02-04 2025-06-03 Apple Inc. Application casting
US11347565B1 (en) * 2021-06-30 2022-05-31 United Services Automobile Association (Usaa) System and method for app-to-app content reconfiguration
US12261904B2 (en) * 2022-01-20 2025-03-25 Servicenow, Inc. Nested request-response protocol network communications
US12293177B1 (en) * 2022-06-27 2025-05-06 Amazon Technologies, Inc. Techniques for uploading network applications

Family Cites Families (173)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044205A (en) 1996-02-29 2000-03-28 Intermind Corporation Communications system for transferring information between memories according to processes transferred with the information
US5504852A (en) * 1991-09-09 1996-04-02 Apple Computer, Inc. Method for creating a collection of aliases representing computer system files
US5437025A (en) 1993-01-26 1995-07-25 International Business Machines Corporation System and method for run time configuration of objects in an object oriented computing environment
US5548726A (en) 1993-12-17 1996-08-20 Taligeni, Inc. System for activating new service in client server network by reconfiguring the multilayer network protocol stack dynamically within the server node
EP0823092A1 (en) 1995-04-24 1998-02-11 Aspect Development, Inc. Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon
US5850090A (en) 1995-05-24 1998-12-15 Mitsubishi Denki Kabushiki Kaisha Dynamic semiconductor memory device on SOI substrate
US5764543A (en) 1995-06-16 1998-06-09 I2 Technologies, Inc. Extensible model network representation system for process planning
JP3598183B2 (ja) 1996-10-16 2004-12-08 株式会社東芝 多次元データ管理方法、多次元データ管理装置、多次元データ管理プログラムを記録した媒体
US6678724B2 (en) 1997-03-12 2004-01-13 Microsoft Corporation Common namespace for internet and local filesystem objects
US6573907B1 (en) 1997-07-03 2003-06-03 Obvious Technology Network distribution and management of interactive video and multi-media containers
US6105062A (en) 1998-02-26 2000-08-15 Novell, Inc. Method and system for pruning and grafting trees in a directory service
US6330717B1 (en) * 1998-03-27 2001-12-11 Sony Corporation Of Japan Process and system for developing an application program for a distributed adaptive run-time platform
US6209029B1 (en) 1998-05-12 2001-03-27 Silverstream Software, Inc. Method and apparatus for accessing data sources in a three tier environment
US6553375B1 (en) 1998-11-25 2003-04-22 International Business Machines Corporation Method and apparatus for server based handheld application and database management
US6243746B1 (en) * 1998-12-04 2001-06-05 Sun Microsystems, Inc. Method and implementation for using computer network topology objects
US7035895B1 (en) * 1998-12-17 2006-04-25 International Business Machines Corporation Manager object for management of multiple resources on dataless clients in a distributed computing environment
US6286138B1 (en) * 1998-12-31 2001-09-04 International Business Machines Corporation Technique for creating remotely updatable programs for use in a client/server environment
US7062532B1 (en) 1999-03-25 2006-06-13 Autodesk, Inc. Method and apparatus for drawing collaboration on a network
AU4674100A (en) * 1999-04-29 2000-11-17 Rutgers University Distributed software development environment
US6886017B1 (en) * 1999-04-30 2005-04-26 Elata Limited System and method for managing distribution of content to a device
US6425126B1 (en) * 1999-05-19 2002-07-23 International Business Machines Corporation Apparatus and method for synchronizing software between computers
US6519679B2 (en) 1999-06-11 2003-02-11 Dell Usa, L.P. Policy based storage configuration
US6826760B1 (en) 1999-06-16 2004-11-30 Microsoft Corporation Methods of factoring operating system functions, methods of converting operating systems, and related apparatus
US7181539B1 (en) * 1999-09-01 2007-02-20 Microsoft Corporation System and method for data synchronization
US6594664B1 (en) 2000-01-04 2003-07-15 International Business Machines Corporation System and method for online/offline uninterrupted updating of rooms in collaboration space
US6732172B1 (en) 2000-01-04 2004-05-04 International Business Machines Corporation Method and system for providing cross-platform access to an internet user in a heterogeneous network environment
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
US6694336B1 (en) * 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
AU3689301A (en) 2000-02-09 2001-08-20 Apriva Inc Communication systems, components, and methods operative with programmable wireless devices
US6904593B1 (en) * 2000-03-24 2005-06-07 Hewlett-Packard Development Company, L.P. Method of administering software components using asynchronous messaging in a multi-platform, multi-programming language environment
US6662192B1 (en) 2000-03-29 2003-12-09 Bizrate.Com System and method for data collection, evaluation, information generation, and presentation
US20050091576A1 (en) 2003-10-24 2005-04-28 Microsoft Corporation Programming interface for a computer platform
EP1148322A1 (de) 2000-04-18 2001-10-24 Gretag-Macbeth AG Verfahren zur Erzeugung einer elektronischen Farbinformationsdatei und Verfahren zur Farbkommunikation
US7013340B1 (en) 2000-05-18 2006-03-14 Microsoft Corporation Postback input handling by server-side control objects
US6685090B2 (en) 2000-05-24 2004-02-03 Fujitsu Limited Apparatus and method for multi-profile managing and recording medium storing multi-profile managing program
US6611837B2 (en) 2000-06-05 2003-08-26 International Business Machines Corporation System and method for managing hierarchical objects
US7219304B1 (en) 2000-06-19 2007-05-15 International Business Machines Corporation System and method for developing and administering web applications and services from a workflow, enterprise, and mail-enabled web application server and platform
US6865737B1 (en) * 2000-08-23 2005-03-08 Microsoft Corporation Remote software installation and maintenance
US7089295B2 (en) 2000-09-06 2006-08-08 Oracle International Corporation Customizing content provided by a service
US20020138617A1 (en) 2000-09-06 2002-09-26 Jacob Christfort Providing content from multiple services
US7836458B1 (en) 2000-11-02 2010-11-16 Microsoft Corporation Configuration system
US20040006566A1 (en) 2000-11-07 2004-01-08 Matt Taylor System and method for augmenting knowledge commerce
US6834301B1 (en) * 2000-11-08 2004-12-21 Networks Associates Technology, Inc. System and method for configuration, management, and monitoring of a computer network using inheritance
US6961909B2 (en) 2001-01-05 2005-11-01 Hewlett-Packard Development Company, L.P. System for displaying a hierarchical directory
US20040133606A1 (en) 2003-01-02 2004-07-08 Z-Force Communications, Inc. Directory aggregation for files distributed over a plurality of servers in a switched file system
US20020103811A1 (en) 2001-01-26 2002-08-01 Fankhauser Karl Erich Method and apparatus for locating and exchanging clinical information
US7054927B2 (en) 2001-01-29 2006-05-30 Adaptec, Inc. File system metadata describing server directory information
JP2002229902A (ja) 2001-01-31 2002-08-16 Justec:Kk 情報提供方法、情報提供システム、地理情報提供方法、地図情報提供システム、及びコンピュータ読み取り可能なプログラム
US20030004746A1 (en) 2001-04-24 2003-01-02 Ali Kheirolomoom Scenario based creation and device agnostic deployment of discrete and networked business services using process-centric assembly and visual configuration of web service components
US6836842B1 (en) * 2001-04-24 2004-12-28 Xilinx, Inc. Method of partial reconfiguration of a PLD in which only updated portions of configuration data are selected for reconfiguring the PLD
US7685126B2 (en) 2001-08-03 2010-03-23 Isilon Systems, Inc. System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system
US7146524B2 (en) 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
US8290762B2 (en) * 2001-08-14 2012-10-16 National Instruments Corporation Graphically configuring program invocation relationships by creating or modifying links among program icons in a configuration diagram
US6907451B1 (en) 2001-09-29 2005-06-14 Siebel Systems, Inc. Method, apparatus, and system for immediate posting of changes in a client server environment
EP1470482A2 (en) 2001-10-02 2004-10-27 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network
US7117243B2 (en) 2001-10-02 2006-10-03 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network
US6952714B2 (en) 2001-10-02 2005-10-04 Citrix Systems, Inc. Method for distributed program execution with server-based file type association
US7330872B2 (en) 2001-10-02 2008-02-12 Citrix Systems, Inc. Method for distributed program execution with web-based file-type association
WO2003032188A1 (en) 2001-10-05 2003-04-17 Vitria Technology, Inc. System and method for vocabulary-based data transformation
JP3857571B2 (ja) * 2001-11-15 2006-12-13 タイコ エレクトロニクス レイケム株式会社 ポリマーptcサーミスタおよび温度センサ
KR100426307B1 (ko) 2001-12-12 2004-04-08 한국전자통신연구원 에스오에이피-엑스엠엘을 이용한 데이터 액세스 장치 및방법
US7088995B2 (en) 2001-12-13 2006-08-08 Far Eastone Telecommunications Co., Ltd. Common service platform and software
JP2003186782A (ja) * 2001-12-20 2003-07-04 Fuji Photo Film Co Ltd 情報配信システム、情報配信装置及びプログラム、デジタルカメラ及び携帯端末装置
US7266563B2 (en) 2001-12-28 2007-09-04 Fotomedia Technologies, Llc Specifying, assigning, and maintaining user defined metadata in a network-based photosharing system
US7206817B2 (en) * 2002-01-18 2007-04-17 Bea Systems, Inc. Systems and methods for application management and deployment
WO2003075158A2 (en) 2002-03-01 2003-09-12 Green Border Technologies Method and system for assured denotation of application semantics
US7421478B1 (en) * 2002-03-07 2008-09-02 Cisco Technology, Inc. Method and apparatus for exchanging heartbeat messages and configuration information between nodes operating in a master-slave configuration
US7552481B2 (en) 2002-03-18 2009-06-23 Sun Microsystems, Inc. Method of assessing an organization's network identity capability
US6968535B2 (en) 2002-03-21 2005-11-22 Sun Microsystems, Inc. Service mapping method of enterprise application modeling and development for multi-tier service environments
US7401336B2 (en) 2002-05-30 2008-07-15 Oracle International Corporation Role based integrated platform
US7162724B2 (en) * 2002-06-12 2007-01-09 Fsl, L.L.C. Layered computing systems and methods
US20040031029A1 (en) * 2002-08-06 2004-02-12 Kyu-Woong Lee Methods and systems for automatically updating software components in a network
US6909721B2 (en) * 2002-10-31 2005-06-21 Nokia Corporation Device detection and service discovery system and method for a mobile ad hoc communications network
JP2004171107A (ja) 2002-11-18 2004-06-17 Sony Corp ソフトウエア提供システム、ソフトウエア提供装置および方法、記録媒体、並びにプログラム
CA2412383A1 (en) 2002-11-22 2004-05-22 Ibm Canada Limited-Ibm Canada Limitee Meta-model for associating multiple physical representations of logically equivalent entities in messaging and other applications
US7613812B2 (en) 2002-12-04 2009-11-03 Microsoft Corporation Peer-to-peer identity management interfaces and methods
US7386529B2 (en) 2002-12-19 2008-06-10 Mathon Systems, Inc. System and method for managing content with event driven actions to facilitate workflow and other features
US7512703B2 (en) 2003-01-31 2009-03-31 Hewlett-Packard Development Company, L.P. Method of storing data concerning a computer network
US7890543B2 (en) * 2003-03-06 2011-02-15 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7099888B2 (en) 2003-03-26 2006-08-29 Oracle International Corporation Accessing a remotely located nested object
WO2004097759A1 (en) * 2003-04-25 2004-11-11 Apple Computer, Inc. Method and system for network-based purchase and distribution of media
US7203711B2 (en) 2003-05-22 2007-04-10 Einstein's Elephant, Inc. Systems and methods for distributed content storage and management
US7240327B2 (en) 2003-06-04 2007-07-03 Sap Ag Cross-platform development for devices with heterogeneous capabilities
TWI223725B (en) 2003-06-10 2004-11-11 Chunghwa Picture Tubes Ltd Polarizer manufacturing method
US20050015430A1 (en) 2003-06-25 2005-01-20 Rothman Michael A. OS agnostic resource sharing across multiple computing platforms
US8001187B2 (en) * 2003-07-01 2011-08-16 Apple Inc. Peer-to-peer active content sharing
US7594015B2 (en) 2003-07-28 2009-09-22 Sap Ag Grid organization
US7383541B1 (en) * 2003-08-07 2008-06-03 Cisco Technology, Inc. Method and apparatus providing interoperation of execution images of different versions
US7356703B2 (en) * 2003-09-16 2008-04-08 At&T Delaware Intellectual Property, Inc. Time-based computer access controls
US20050060315A1 (en) 2003-09-16 2005-03-17 Aleksey Sanin Metadata database lookup system
WO2005026981A1 (en) 2003-09-17 2005-03-24 Research In Motion Limited System and method for dynamic generation and customization of web service client applications for terminals
US7350201B2 (en) * 2003-10-23 2008-03-25 International Business Machines Corporation Software distribution application supporting operating system installations
US7721254B2 (en) 2003-10-24 2010-05-18 Microsoft Corporation Programming interface for a computer platform
US7546594B2 (en) * 2003-12-15 2009-06-09 Microsoft Corporation System and method for updating installation components using an installation component delta patch in a networked environment
US7574706B2 (en) * 2003-12-15 2009-08-11 Microsoft Corporation System and method for managing and communicating software updates
US20050138156A1 (en) 2003-12-19 2005-06-23 Alexander Gebhart Grid application customization
US7257583B2 (en) * 2004-01-09 2007-08-14 Microsoft Corporation System and method for updating an on-device application catalog in a mobile device receiving a push message from a catalog server indicating availability of an application for download
WO2005072114A2 (en) 2004-01-19 2005-08-11 Pantero Corporation Enterprise interoperability using shared data services
US7480699B2 (en) * 2004-01-20 2009-01-20 International Business Machines Corporation System and method for replacing an application on a server
US20050177600A1 (en) 2004-02-11 2005-08-11 International Business Machines Corporation Provisioning of services based on declarative descriptions of a resource structure of a service
US20050192962A1 (en) 2004-02-26 2005-09-01 Patricia Furrer Apparatus, system, method for enabling web-applications to access enterprise managed data
EP1723518A1 (de) * 2004-03-09 2006-11-22 Bayerische Motorenwerke Aktiengesellschaft Aktualisierung und/oder erweiterung der funktionalität der ablaufsteuerung mindestens eines steuergeräts
US20050203931A1 (en) 2004-03-13 2005-09-15 Robert Pingree Metadata management convergence platforms, systems and methods
US7190962B2 (en) * 2004-04-01 2007-03-13 Qualcomm Incorporated Networked wireless communications device programmed to identify and eliminate probable multipath errors to enhance accuracy in correcting sleep clock for thermally induced errors
US20050251812A1 (en) 2004-04-27 2005-11-10 Convertabase, Inc. Data conversion system, method, and apparatus
US20050251786A1 (en) 2004-05-07 2005-11-10 International Business Machines Corporation System and method for dynamic software installation instructions
US7650432B2 (en) 2004-05-20 2010-01-19 Bea Systems, Inc. Occasionally-connected application server
US7409569B2 (en) 2004-06-08 2008-08-05 Dartdevices Corporation System and method for application driven power management among intermittently coupled interoperable electronic devices
WO2005124573A1 (ja) * 2004-06-15 2005-12-29 Matsushita Electric Industrial Co., Ltd. データ処理装置
US20050289454A1 (en) 2004-06-28 2005-12-29 D & Wayne & Co. Interactive website configuration, display and management application
US7882147B2 (en) 2004-06-30 2011-02-01 Robert T. and Virginia T. Jenkins File location naming hierarchy
US20060036602A1 (en) 2004-08-13 2006-02-16 Unangst Marc J Distributed object-based storage system that stores virtualization maps in object attributes
US8069436B2 (en) 2004-08-13 2011-11-29 Cypress Semiconductor Corporation Providing hardware independence to automate code generation of processing device firmware
US8217756B2 (en) 2004-09-01 2012-07-10 Microsoft Corporation Rule-based filtering and alerting
US20070100834A1 (en) 2004-09-15 2007-05-03 John Landry System and method for managing data in a distributed computer system
US20070038642A1 (en) 2004-09-15 2007-02-15 Scott Durgin Method for providing extensible software components within a distributed synchronization system
US7266370B2 (en) 2004-09-20 2007-09-04 Trilibis Inc. System and method for developing and deploying device independent applications
US20060089965A1 (en) * 2004-10-26 2006-04-27 International Business Machines Corporation Dynamic linkage of an application server and a Web server
US7760746B2 (en) * 2004-11-30 2010-07-20 Computer Associates Think, Inc. Cascading configuration using one or more configuration trees
US20060129972A1 (en) 2004-11-30 2006-06-15 Tyburski John C Application developer and method for generating platform independent code
KR100714683B1 (ko) 2004-12-24 2007-05-04 삼성전자주식회사 디지털 컨텐츠를 글로벌로 공유하고 거래하는 방법 및시스템
US9535679B2 (en) 2004-12-28 2017-01-03 International Business Machines Corporation Dynamically optimizing applications within a deployment server
US8387037B2 (en) * 2005-01-28 2013-02-26 Ca, Inc. Updating software images associated with a distributed computing system
US7516206B2 (en) * 2005-01-28 2009-04-07 Cassatt Corporation Management of software images for computing nodes of a distributed computing system
US7685148B2 (en) * 2005-01-31 2010-03-23 Computer Associates Think, Inc. Automatically configuring a distributed computing system according to a hierarchical model
US20070050446A1 (en) 2005-02-01 2007-03-01 Moore James F Managing network-accessible resources
US7680835B2 (en) 2005-02-28 2010-03-16 Microsoft Corporation Online storage with metadata-based retrieval
US7590653B2 (en) * 2005-03-02 2009-09-15 Cassatt Corporation Automated discovery and inventory of nodes within an autonomic distributed computing system
US8554916B2 (en) 2005-04-11 2013-10-08 Accenture Global Services Gmbh Service delivery platform and development of new client business models
US7743373B2 (en) 2005-05-06 2010-06-22 International Business Machines Corporation Method and apparatus for managing software catalog and providing configuration for installation
US7577681B1 (en) 2005-06-29 2009-08-18 Emc Corporation Methods and apparatus for managing contents of a database
US7694287B2 (en) 2005-06-29 2010-04-06 Visa U.S.A. Schema-based dynamic parse/build engine for parsing multi-format messages
US7739680B1 (en) * 2005-07-21 2010-06-15 Sprint Communications Company L.P. Application server production software upgrading with high availability staging software
US20070028175A1 (en) 2005-07-29 2007-02-01 Moore Dennis B Grid processing user tools
US20070061349A1 (en) 2005-09-15 2007-03-15 Microsoft Corporation Hierarchically describing shapes
US20070073770A1 (en) 2005-09-29 2007-03-29 Morris Robert P Methods, systems, and computer program products for resource-to-resource metadata association
US8005879B2 (en) 2005-11-21 2011-08-23 Sap Ag Service-to-device re-mapping for smart items
US8140624B2 (en) 2005-12-01 2012-03-20 Computer Associates Think, Inc. Automated deployment and configuration of applications in an autonomically controlled distributed computing system
US20070169083A1 (en) * 2005-12-12 2007-07-19 Penubolu Shyam P Method for secure in-service software upgrades
CN1801086A (zh) 2006-01-17 2006-07-12 浙江大学 应用于Java操作系统中设备支持的实现方法
JP5483884B2 (ja) 2006-01-17 2014-05-07 キダロ (イスラエル) リミテッド 複数のコンピューティング環境のシームレスな統合
US7925710B2 (en) 2006-01-31 2011-04-12 Microsoft Corporation Simultaneous API exposure for messages
US7793343B2 (en) 2006-03-03 2010-09-07 Oracle America, Inc. Method and system for identity management integration
US8060871B2 (en) * 2006-03-30 2011-11-15 Microsoft Corporation Servicing software through versioning
US8572138B2 (en) * 2006-03-30 2013-10-29 Ca, Inc. Distributed computing system having autonomic deployment of virtual machine disk images
US7483978B2 (en) 2006-05-15 2009-01-27 Computer Associates Think, Inc. Providing a unified user interface for managing a plurality of heterogeneous computing environments
DE102006023876A1 (de) * 2006-05-19 2007-11-22 Carl Zeiss Smt Ag Optische Abbildungseinrichtung
US7508787B2 (en) 2006-05-31 2009-03-24 Cisco Technology, Inc. Graphical selection of information display for wireless mesh hierarchies
US8370423B2 (en) 2006-06-16 2013-02-05 Microsoft Corporation Data synchronization and sharing relationships
US7814460B2 (en) * 2006-07-13 2010-10-12 Scriptlogic Corporation Hierarchical modular software packages and associated development tool
US7822594B2 (en) 2006-08-07 2010-10-26 Voltaire Ltd. Service-oriented infrastructure management
US7739411B2 (en) * 2006-08-11 2010-06-15 Samsung Electronics Co., Ltd. Method and system for content synchronization and detecting synchronization recursion in networks
US7606588B2 (en) * 2006-08-31 2009-10-20 Telefonaktiebolaget Lm Ericsson (Publ) Hierarchical point-to-multipoint group communications between multiple active communication groups
US8683352B2 (en) 2006-09-05 2014-03-25 International Business Machines Corporation Selectable flattening hierarchical file browser
US7934194B2 (en) 2006-10-17 2011-04-26 The Mathworks, Inc. User-defined hierarchies of user-defined classes of graphical objects in a graphical modeling environment
US20080249994A1 (en) 2006-11-28 2008-10-09 Calder Group, Inc. System and process for server side stateless data interchange
US7734717B2 (en) * 2006-12-05 2010-06-08 Nokia Corporation Software distribution via peer-to-peer networks
US7844912B2 (en) * 2006-12-22 2010-11-30 Sap Ag System and method using transformation nodes with enhancement layers
US9451009B2 (en) * 2007-02-19 2016-09-20 Appcentral, Inc. Methods and system to create applications and distribute applications to a remote device
US20080263348A1 (en) * 2007-04-17 2008-10-23 Texas Instruments Incorporated Dynamic asymmetric partitioning of program code memory in network connected devices
US7853669B2 (en) * 2007-05-04 2010-12-14 Microsoft Corporation Mesh-managing data across a distributed set of devices
US8185891B2 (en) * 2007-05-14 2012-05-22 Red Hat, Inc. Methods and systems for provisioning software
US8321538B2 (en) * 2007-09-24 2012-11-27 Hewlett-Packard Development Company, L.P. Autonomous network device configuration method
US8266260B2 (en) * 2007-12-11 2012-09-11 Sharp Laboratories Of America, Inc. Method and system for updating the software of multiple network nodes
US9280402B2 (en) * 2007-12-20 2016-03-08 Sap Se System and method for updating a dual layer browser
US8127287B2 (en) * 2007-12-20 2012-02-28 Baljit Singh Gupta Systems and methods for reusing SAP adaptors in non-supported releases
US20090172637A1 (en) * 2007-12-28 2009-07-02 Microsoft Corporation Markup-based language for manifests
US8484174B2 (en) 2008-03-20 2013-07-09 Microsoft Corporation Computing environment representation
US8572033B2 (en) 2008-03-20 2013-10-29 Microsoft Corporation Computing environment configuration
US9298747B2 (en) 2008-03-20 2016-03-29 Microsoft Technology Licensing, Llc Deployable, consistent, and extensible computing environment platform
US20110246977A1 (en) * 2010-03-31 2011-10-06 Leviton Manufacturing Co., Inc. Control system code installation and upgrade
US9152404B2 (en) * 2011-07-13 2015-10-06 Z124 Remote device filter
US20140325502A1 (en) * 2012-06-29 2014-10-30 Giannis Zarifis Packaging, distribution and de-packaging of device-independent software applications

Also Published As

Publication number Publication date
TW200941347A (en) 2009-10-01
EP2255295A4 (en) 2011-11-02
TWI473019B (zh) 2015-02-11
EP2255295B1 (en) 2014-10-15
US10514901B2 (en) 2019-12-24
US11593094B2 (en) 2023-02-28
JP2011515763A (ja) 2011-05-19
KR20100133382A (ko) 2010-12-21
EP2255295A1 (en) 2010-12-01
CN101978366A (zh) 2011-02-16
US20210357200A1 (en) 2021-11-18
US20170357498A1 (en) 2017-12-14
CN101978366B (zh) 2013-10-30
WO2009117207A1 (en) 2009-09-24
US10970062B2 (en) 2021-04-06
US20200110594A1 (en) 2020-04-09
BRPI0907773A2 (pt) 2015-07-14
US20220276857A1 (en) 2022-09-01
US9753712B2 (en) 2017-09-05
US20090241104A1 (en) 2009-09-24
US11366654B2 (en) 2022-06-21

Similar Documents

Publication Publication Date Title
US11593094B2 (en) Application management within deployable object hierarchy
US8572033B2 (en) Computing environment configuration
CN101981557B (zh) 计算环境表示
KR101807897B1 (ko) 크로스―플랫폼 어플리케이션 프레임워크
US8601470B2 (en) Symbiotic smart peripherals
US8972967B2 (en) Application packages using block maps
US9244709B2 (en) Automatic recognition of web application
US10331423B1 (en) Utilizing cross platform streamable user interfaces to reduce software deployment frequency caused by user interface improvements
US10387123B2 (en) Lightweight framework for web applications
US20090240698A1 (en) Computing environment platform
US9374275B2 (en) Rapid application development using a content management system
US11102332B2 (en) Method and system for rendering content using templates
JP2019517043A (ja) ハイブリッドアプリケーションの自動更新
US20090031004A1 (en) Techniques for sharing content between portals
US9075678B2 (en) Client and server for installation of files embedded within a client profile
KR20080027293A (ko) 데이터 언어에서 다수 언어들의 관리
Kumawat et al. A Music Player Android App Using Firebase

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120217

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130702

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131105

R150 Certificate of patent or registration of utility model

Ref document number: 5409767

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02