JP2015528943A - ホスト・コンパチブルのダウンロード可能なアプリケーションの識別 - Google Patents

ホスト・コンパチブルのダウンロード可能なアプリケーションの識別 Download PDF

Info

Publication number
JP2015528943A
JP2015528943A JP2015520302A JP2015520302A JP2015528943A JP 2015528943 A JP2015528943 A JP 2015528943A JP 2015520302 A JP2015520302 A JP 2015520302A JP 2015520302 A JP2015520302 A JP 2015520302A JP 2015528943 A JP2015528943 A JP 2015528943A
Authority
JP
Japan
Prior art keywords
application
list
host program
computer
applications
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015520302A
Other languages
English (en)
Other versions
JP6154005B2 (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 JP2015528943A publication Critical patent/JP2015528943A/ja
Application granted granted Critical
Publication of JP6154005B2 publication Critical patent/JP6154005B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

ユーザーの(クライアント)コンピューターが、電子マーケットプレイスにおいてサーバーからダウンロードできるアプリケーションのリストと、ホスト・プログラムにより提供される機能のリストとを求めるリクエストを送る。アプリケーション・マニフェストにあるもののようなアプリケーションの記述は、必要な機能のリストを提供し、また、好ましくは、ソフトウェア・アプリケーションに対するオプションの機能のリストを提供する。サーバーは、それらの機能によりサポートされるアプリケーションのリストを送る。それらのサポートされるアプリケーションは、ダウンロード可能なものとして、ユーザーに対して表示される。ユーザーが望むアプリケーションを選択し、そのアプリケーションのダウンロードを、ユーザーのコンピューターが要求し、サーバーが提供する。次に、ダウンロードされたアプリケーションは、ホスト・プログラムにより提供される必要な機能を用いてユーザーのコンピューターで動作し、また、ホスト・プログラムにより提供される何らかのオプションの機能を用いることもある。

Description

[0001] 電子マーケットプレイスにおいて、ユーザーは、1以上のアプリケーションをダウンロードしてアクティブ化する権利を購入および/または取得することができる。それらのアプリケーションは、典型的には、特定のホスト・プラットフォーム、またはホスト・プラットフォームでの特定のプログラムを指定する。アプリケーションが、ユーザーのコンピューターのプログラムによりサポートされる場合、マーケットプレイスとのユーザーのエクスペリエンスは建設的なものとなるであろう。しかし、アプリケーションがサポートされておらず、ユーザーのコンピューターで実行されない場合、ユーザーは、ユーザーのエクスペリエンスを不満足なものと見るであろう。これは、アプリケーションが購入またはダウンロードされた後に少しの払い戻しを取得可能である場合には、特にあてはまる。従って、ユーザーのエクスペリエンスは、ダウンロードのためにリストされたアプリケーションが、実際に、ユーザーのコンピューターで実行される場合には、良くなる。
[0002] アプリケーション・マニフェストへ付加され得るようなものであるアプリケーションの記述は、必ずしもアプリケーション・マニフェストへ付加され得るとは限らないが、少なくとも、望まれるフィーチャー(feature)をアプリケーションがホスト/クライアント・コンピューターのホスト・プログラムへ提供するために必要とされる機能のリストを、提供する。アプリケーションに必要な機能がクライアント・コンピューターで使用可能な場合、そのアプリケーションは使用可能なものとしてユーザーに対して表示され、従って、電子マーケットプレイスのサーバーからダウンロード可能である。表示されたアプリケーションが選択され、ユーザーのコンピューターへダウンロードされ、アクティブ化された場合、そのアプリケーションは、クライアント・コンピューターとのインターフェースを行い、ホスト・プログラムにより提供される機能を用いて、望まれるフィーチャーを提供する。
[0003] 更に、オプションの機能がリストされ得、これは、エンハンス(enhanced)・フィーチャーをアプリケーションにおいて提供する。ホスト・プログラムが1以上のオプションの機能を提供する場合、アプリケーションはエンハンス・モードで動作することができる。
[0004] ここで説明する主題事項が、コンピューター制御された装置、コンピューター・プロセス、計算システムとして、またはコンピューター可読ストレージ媒体などのような製品としてインプリメントでき得ることを、理解すべきである。これらおよび様々な他の特徴は、下記の詳細な説明を読み、添付の図面を検討することにより、明らかになるであろう。
[0005] この概要は、下記の詳細な説明に記載の幾つかの概念の短い且つ/又は簡略化した紹介である。この概要は、特許請求の範囲に記載の主題事項の鍵となる特徴や本質的な特徴を特定することを意図しておらず、また、この概要を特許請求の範囲に記載の主題事項の範囲を限定するために用いることを意図していない。更に、特許請求の範囲に記載の主題事項は、本開示の何れかの部分に記載した何れかまたは全ての欠点を克服するインプリメンテーションに限定されない。
図1は、1以上のユーザー(クライアントまたは宛先)・コンピューターが、インターネットなどのような通信媒体を介して、電子マーケットプレイスの1以上のサーバーへ接続される例示の環境を示す。 図2Aは、クライアント・コンピューターの例示の動作環境を示す。 図2Bは、サーバーの例示の動作環境を示す。 図3は、クライアント・コンピューターとマーケットプレイス・サーバーとの間の通信の例示の動作タイムラインを示す。 図4Aないし図4Cは、クライアント・コンピューターとマーケットプレイス・サーバーとの動作を示す例示のプロシージャーのフローチャートである。 図4Aないし図4Cは、クライアント・コンピューターとマーケットプレイス・サーバーとの動作を示す例示のプロシージャーのフローチャートである。 図4Aないし図4Cは、クライアント・コンピューターとマーケットプレイス・サーバーとの動作を示す例示のプロシージャーのフローチャートである。 図5は、ここで説明するプロシージャーを実行できるデバイスの例示のコンピューター・アーキテクチャーを示す。
[0012] 下記の詳細な説明は、ホスト・コンパチブルのダウンロードされるプログラムの識別に関する概念および技術に関する。ここで説明される主題事項は、コンピューター・システムのオペレーティング・システムおよびアプリケーション・プログラムの実行と関連して実行されるプログラム・モジュールの一般的コンテキストで示されるが、当業者は、他のタイプのプログラム・モジュールと組み合わせて他のインプリメンテーションを行えることを認識するであろう。一般に、プログラム・モジュールは、ルーチン、プログラム、コンポーネント、データ構造、および特定のタスクを行ったり特定の抽象データ型をインプリメントしたりする他のタイプの構造を含む。更に、当業者は、手持ち型デバイス、マルチプロセッサー・システム、マイクロプロセッサー・ベースまたはプログラマブルの消費者用電子機器、マイクロコンピューター、メインフレーム・コンピューターなどを含む他のコンピューター・システム構成を用いて、ここで説明する主題事項を実施でき得ることを、理解するであろう。
[0013] 下記の詳細な説明では添付の図面を参照するが、添付の図面は、詳細な説明の一部を形成し、特定の実施形態または例を示している。ここで図面を参照すると、図面では、幾つかの図面を通して同じ数字は同じエレメントを表し、ホスト・コンパチブルのダウンロードされるプログラムの識別のための計算システム、コンピューター可読ストレージ媒体、およびコンピューターでインプリメントする方法の態様が示されている。
[0014] 図1は、1以上のユーザー(クライアントまたは宛先)・コンピューター10A〜10Mが、通信媒体12を介して、電子マーケットプレイスの1以上のサーバー14A〜14Nへ接続される例示の環境を示し、MおよびNは双方とも0より大きい整数である。クライアント・コンピューター10は、任意のタイプの計算プラットフオームとすることができ、例えば、パーソナル・コンピューター、ビジネス・コンピューター、タブレット、または1以上のプログラムをホストする別のタイプの計算デバイスである。通信媒体12は、例えば、インターネット、Wi−Fi(登録商標)接続、または1つのポイントから別のポイントへの、ソフトウェア・アプリケーションを含めてのデータの転送が可能な何らかの他の通信媒体である。最後に、サーバー14も1つのタイプの計算デバイスであるが、この場合、その計算デバイスに格納した又はその計算デバイスにより容易に取得できるソフトウェア・アプリケーション・プログラムを有する。
[0015] 電子マーケットプレイスにおいて、クライアント・コンピューター10、例えば10Aのユーザーは、特定の要求を満たすためや、単に何が入手可能であるかを見るために、無料または購買用のソフトウェア・アプリケーションを探す。そのソフトウェア・アプリケーションがユーザーのコンピューター10Aと適切にインターフェースしないであろう場合、電子マーケットプレイスとの及び/又はその特定のサーバーを動作させている会社とのユーザーのエクスペリエンスは不快なものとなり、特に、ユーザーがそのアプリケーションに対して支払いを行っており、払い戻しを得られない場合には、不快なものとなるであろう。しかし、アプリケーションが適切にインターフェースする場合、ユーザーのエクスペリエンスは快適なものと見なせるであろう。
[0016] 「プログラム」、「アプリケーション」、「app」、「拡張(extension)」、「モジュール」、「データ・リンク・ライブラリー」(dll)、および「プラグイン」という用語は一般的に使用されるが、標準化された明確な意味を有さず、これらの用語の一般的な使用はこれらの用語間での区別を不鮮明にすることが多い、ということが理解されるであろう。例えば、「プログラム」、「アプリケーション」、および「app」は、交換可能に用いられることが多く、また、「アプリケーション」、「app」、「拡張」、「モジュール」、「dll」、および「プラグイン」も交換可能に用いられることが多い。従って、説明において便利なように、また、限定や定義としてではなく、ここで一般的に用いられる「プログラム」および「ホスト・プログラム」は、生産性プログラム(生産性ソフトウェア)であり、実行可能なコードを有するワード・プロセッシング・プログラム、スプレッドシート・プログラム、グラフィックス・プログラム、Eメール・プログラムなどであるが、これらには限定されない。また、説明において便利なように、また、限定や定義としてではなく、ここで一般的に用いられる「アプリケーション」および「ソフトウェア・アプリケーション」は、モジュール、拡張、dll、またはプラグインであり、限定ではないが、例えばJavascript(登録商標)などのようなものを含む実行可能なコードを有する。ここで説明する環境では、「プログラム」は、典型的には、ホスト、クライアント、または宛先コンピューターとも呼ばれるユーザーのコンピューターに配されており、アプリケーションは、典型的には、ユーザーのコンピューターのプログラムと共に使用するために、サーバーに配され、そのサーバーからダウンロードできるようにされている。
[0017] アプリケーション・マニフェストは、どのようにアプリケーションが生産性ソフトウェアと統合するか、ということの記述である。アプリケーション・マニフェストのフォーマットの1つの従来例は、アプリケーションの構造およびコンテンツを定めるXMLファイルであり、どのようにアプリケーションが生産性ソフトウェアと統合するか、ということを含む。従来のアプリケーション・マニフェストは、典型的には、必要なエレメントとオプションのエレメントとの双方を有するが、必ずしもそうではない。必要なエレメントは、例えば、assembly(アセンブリ)、manifest version(マニフェスト・バージョン)、およびassemblyIdentity(アセンブリ・アイデンティティ)であり得るが、これらには限定されない。オプションのエレメントは、例えば、noInherit(継承なし)、compatibility(コンパチビリティ)、application(アプリケーション)、supportedOS(サポートされるOS)、dependency(依存性)、dependentAssembly(依存アセンブリ)、およびfile(ファイル)であり得るが、これらには限定されない。他のアプリケーション・マニフェスト・フォーマットも可能であり、他のフォーマットの使用は、ここにおいて特定的に含まれ、また、企図されている。
[0018] 従って、従来のアプリケーション・マニフェストは、ホスト・コンピューターの1以上の特定のプログラムと関連付けされており、また、そのプログラムをターゲットにする。しかし、ホスト・プログラムが変更されたり、新たなホスト・プログラムが使用可能になったりした場合、アプリケーション・マニフェストは古いものになり、アプリケーションの開発者は、それらの変更された及び/又は新たなホスト・プログラムを反映するためにアプリケーション・マニフェストを更新することを必要とされるであろう。さもなければ、そのアプリケーションは、ホスト・プログラムと共に実行されないか又は適切に実行されないであろう。例えば、開発者が作成しているアプリケーションに関して、その開発者がホスト・プログラムにおける特定のフィーチャーまたは能力を必要とするときに、フィーチャーまたは能力を提供するホスト・プログラムを用いてアプリケーションをテストして、それらのホスト・プログラムをアプリケーションにリストする、ということは従来からの習慣である。
[0019] また、従来は、ユーザーが、ワード・プロセッシング・プログラムなどのようなホスト・プログラムを有し、ユーザーが、特定の計画や目的のために追加の能力を望む場合、ユーザーは、ホスト・プログラムのメニュー、ツールバー、「リボン」、または他のユーザー・インターフェースの上でクリックを行う。これは、ダイアログ・ボックスをもたらし、それにより、ユーザーは、使用可能アプリケーションに関してのサーチ基準をマーケットプレイス・サーバーへ提出することができ、マーケットプレイス・サーバーは、そのサーチ基準に適合するアプリケーションのリストを返す。次に、ユーザーは、サーバーからダウンロードするアプリケーションを選択することができる。しかし、アプリケーションに関するマニフェストが、アプリケーションを動作させるために必要なホスト・プログラム、例えば、マイクロソフト(登録商標)Excel(登録商標)をリストしており、そのホスト・プログラムがユーザーのコンピューターで使用可能ではない場合、その選択されたアプリケーションは、クライアント・コンピューターのホスト・プログラムと適切にインターフェースしないであろう。
[0020] この状況に対処するために、ここでのアプリケーション・マニフェストは、単に特定のホスト・プログラムを指定するのではなく、必要とされる機能を指定するように変更される。従って、特定の機能を提供するということをマニフェストまたは他のドキュメントに記述した新たなホスト・プログラムが使用可能になったとき、またはホスト・プログラムが機能を付加または更新するように(また、更には削除するように)変更または更新され、それに従ってプログラム・マニフェストが更新されたとき、開発者は、アプリケーション・マニフェストを更新する必要はない。むしろ、コンパチブルのホスト・プログラムのリストは、その機能を提供するホスト・プログラムが使用可能になったときに自動的に拡張され、ホスト・プログラムがその機能を提供しなくなったときに自動的に縮約される。更に、必ずしもということではなく好ましくは、ユーザーのコンピューターが、アプリケーションの必要とする機能を提供できるホスト・プログラムを有さない場合、そのアプリケーションは、使用可能なものとしてリストされない。また、必ずしもということではなく好ましくは、アプリケーションにおけるエンハンス機能を提供するオプションの機能をマニフェストにリストすることができる。ホスト・プログラムが1以上のオプションの機能を提供する場合、アプリケーションはエンハンス・モードで動作することができる。代替の実施形態では、必要な機能および/またはオプションの機能は、アプリケーション・マニフェストとは別に提供されるドキュメントに記述される。
[0021] 図2Aは、クライアント・コンピューター10Aなどのようなクライアント・コンピューター10の例示の動作環境を示す。クライアント・コンピューター10は、オペレーティング・システム21、ドキュメント・プロセッシング・プログラム22、スプレッドシート・プログラム23、描画プログラム24、インターネット・ブラウザー25などのような、1以上のホスト・プログラム20を有する。コンピューター10はまた、様々なホスト・プログラムにより提供される機能のリスト26と、リストされているオペレーションを行うための電子マーケットプレイス・プログラムまたはモジュール27とを有する。
[0022] 図2Bは、電子マーケットプレイス・サーバー14Aなどのようなサーバー14の例示の動作環境を示す。サーバー14は、オペレーティング・システム31、電子マーケットプレイス・プログラム32、およびリストされているオペレーションを行うためのプログラムまたはモジュール33などのような、1以上のホスト・プログラム30を有する。更に、サーバー14は、ダウンロードさせることができる1以上のアプリケーション34を有するか、またはそのアプリケーションへのアクセスを有する。
[0023] 図3は、クライアント・コンピューター10とマーケットプレイス・サーバー14との間での通信に関する例示の動作タイムライン300を示す。ユーザーが、ワード・プロセッシング・プログラムなどのようなホスト・プログラムを使用しており、ユーザーが、特定の計画または目的のために、そのプログラムに提供されていない追加のフィーチャーまたは能力を望むものと仮定する。これは、ダイアログ・ボックスをもたらし、それにより、ユーザーは、使用可能なアプリケーションに関してのサーチ基準をマーケットプレイス・サーバーへ提出することができる。ダイアログ・ボックスはまた、他のオプションや推奨を含むことができ、それらは、「他者により最も使用されている」、「フィーチャーされたアプリケーション(featured applications)」、「他のユーザーが最高の評価を与えたアプリケーション」などであるが、これらには限定されない。電子マーケットプレイス・ウェブ・サイトへ行き、ログイン・ページを受け取った後、クライアント・コンピューターは、ログイン情報をサーバーへ送り、302、サーバーはそのログイン情報を確認する。ログイン・プロシージャーはオプションであるが、好ましい。
[0024] 次に、サーバーは、サーチ・ページ、またはドロップダウン・メニュー、または他のユーザー・インターフェース手段をクライアント・コンピューターへ送信し、304、それにより、ユーザーは、ユーザーの望むアプリケーションのタイプを示すことができ、そのアプリケーションのタイプは、「マップ」、「パッケージ・トラッキング」、「レストラン・ロケーター」などであるが、これらには限定されない。また、他のオプションや推奨が上述のダイアログ・ボックスに以前にリストされていない場合には、それをこの時点で提供することができ、他のオプションや推奨は、「推奨されるアプリケーション」、「最も頻繁にダウンロードされているアプリケーション」、「他のユーザーが最高の評価を与えたアプリケーション」などであるが、これらには限定されない。クライアント・コンピューターは、そのサーチ・ページをユーザーに対して表示し、ユーザーのサーチ・リクエストを受け入れる。次に、クライアント・コンピューターは、アプリケーション・サーチ・リクエストをサーバーへ送り、306、このアプリケーション・サーチ・リクエストは、必ずしもということではなく好ましくは、ホスト・プログラムによりサポートされる機能または能力のリストと共に送られる。
[0025] 次に、サーバーは、そのアプリケーションのリストをサーチして、サーチ・リクエストに適合するアプリケーションを識別する。サーバーはまた、それらの識別されたアプリケーションのそれぞれが必要とする機能と、ホスト・プログラムによりサポートされる機能とを比較するために、それらの識別されたアプリケーションのリストを検査する。次に、サーバーは、コンパチブルのアプリケーション、即ち、識別されたサポートされているアプリケーションのリストを作成して、クライアント・コンピューターへ送る、308。クライアント・コンピューターは、それらのコンパチブルのアプリケーションのリストを受け取り、308、ユーザーに対して表示し、次に、表示されたコンパチブルのアプリケーションのユーザーによる選択を受け入れる。ユーザーは、任意の好都合な様式で、望むアプリケーションを選択することができ、限定ではないが、その様式は、望むアプリケーションと関連するブロックにチェックを入れて、次に、「送信」、「購入」、「獲得」をクリックすることや、リストされたアプリケーション上でダブル・クリックすることや、何らかの他の適切なアクション(音声コマンドおよびジェスチャー・コマンドを含むが、限定ではない)によるものなどである。次に、クライアント・コンピューターは、ユーザーの選択した特定のアプリケーションを求めるリクエストをサーバーへ送る、310。
[0026] 要求されたアプリケーションおよびそれに対するマニフェストを、サーバーは応答して送り、クライアント・コンピューターは受け取って格納する、312。ここでは変更されているアプリケーション・マニフェストはまた、選択されたアプリケーションのサーバー上でのアドレスまたはアプリケーションを識別するために使用できる何らかの他の情報を、含むことができる。クライアント・コンピューターは、アプリケーションおよびそのマニフェスト受け取って格納する。
[0027] 代替の実施形態では、サーバー上のリストされたアプリケーションのアドレスまたは何らかの他の識別情報は、アプリケーション・リストと共に308で送ることができる。アドレスまたは他の情報は、例えば、アプリケーション・マニフェストの一部として含めることや、別のドキュメントとして送ることができる。次に、クライアント・コンピューターは、310において、要求したアプリケーションのアドレスまたは他の識別情報を送ることができる。
[0028] ここで、例えば、工業予想や金融報告などのような特殊な報告を作成したいユーザーについて考えるが、ユーザーのコンピューターのホスト・プログラムは、例えば、加算、減算、平均化などのような特定の必要な数学演算を行わないので、そのホスト・プログラムがその報告の作成には都合が良くないと仮定する。ユーザーは、その報告を都合良く作成するアプリケーションを探すであろう。ユーザーは、そのようなアプリケーションを見つけるが、そのアプリケーションは、表の形でデータが入力されることを必要し、且つ/又は出力の報告またはデータを表の形で提供すると仮定する。ホスト・プログラムが表機能をサポートしない場合、そのアプリケーションはホスト・プログラムとコンパチブルではない。逆に、ホスト・プログラムが表機能を提供する場合、そのアプリケーションはそのホスト・プログラムとコンパチブルであり、ユーザーは望む報告を作成することができる。従って、表機能は、アプリケーションが基本モードで動作するための必要な機能と考えることができる。そのアプリケーションがダウンロードされると、ホスト・プログラムは、ダウンロードしたアプリケーションをそのホスト・プログラム内で自動的にアクティブ化し、特殊な報告の作成に必要とされるフィーチャーを提供する。更に、将来、ユーザーがホスト・プログラムを実行するとき、ホスト・プログラムは、そのダウンロードしたプログラムをそのホスト・プログラム内で自動的にアクティブ化する。従って、アプリケーションがダウンロードされた後、ユーザーは、アプリケーションを再びダウンロードせずとも、アプリケーションのフィーチャーをホスト・プログラム内で使用可能である。当然であるが、代替の実施形態において、アプリケーションの使用毎にユーザーに対して支払いを要求されることや、アプリケーションが所定回数の使用後に失効することや、アプリケーションが所定の日の後に失効することがあり得る。
[0029] ここで、アプリケーションが、出力の報告またはデータを異なる色で提供する能力、例えば、或るデータは損失を示すために赤色とし、或るデータは利潤率を示すために黒色とし、或るデータは限界生産ラインを示すために黄色とするなどのようにする能力を有すると仮定する。このアプリケーションは、ホスト・プログラムが表における色をサポートしていなくとも動作するが、報告の外観は簡素で退屈なものとなり得、出力データは、マイナス符号やプラス符号、括弧、ブラケットなどのような、別の技術により示される。しかし、ホスト・プログラムが表における色をサポートする場合、対象者の注意を引く報告を提供するために、アプリケーションの高められた又はオプションの色フィーチャーがホスト・プログラムにおいて自動的に使用可能になる。
[0030] 図4Aないし図4Cは、クライアント・コンピューター10とマーケットプレイス・サーバー14との動作を示す例としてのプロシージャー400のフローチャートである。ここで開示されるプロシージャー400の動作は、必ずしも何れかの特定の順で示されているものではなく、代替の順(1以上)での幾つかまたは全ての動作の実行が可能であり、それが企図されていることを、理解すべきである。動作は、記載および例示を容易にするために、説明される順に示されている。特許請求の範囲の範囲から離れずに、動作は、付加すること、省略すること、および/または同時に実行することができる。
[0031] また、例示のプロシージャー400は、任意の時に終了でき、全てを行う必要がないことを、理解すべきである。プロシージャー400の幾つか又は全ての動作、および/または実質的に等価の動作は、ここで定めるように、コンピューター・ストレージ媒体に含まれるコンピューター可読命令の実行により、行うことができる。この説明および特許請求の範囲で用いる「コンピューター可読命令」という用語およびその異形は、ここでは、ルーチン、アプリケーション、アプリケーション・モジュール、プログラム・モジュール、プログラム、コンポーネント、データ構造、アルゴリズムなどを含むように、広く用いられる。コンピューター可読命令は、様々なシステム構成でインプリメントすることができ、システム構成は、シングル・プロセッサーまたはマルチプロセッサーのシステム、ミニコンピューター、メインフレーム・コンピューター、パーソナル・コンピューター、手持ち型計算デバイス、マイクロプロセッサー・ベースのプログラマブルの消費者向け電子製品、これらの組み合わせなどを含む。
[0032] 従って、ここで説明する論理演算は、(1)コンピューターによりインプリメントされる行動のシーケンス又は計算システムで実行されるプログラム・モジュールとして、および/または(2)相互接続された機械論理回路又は計算システム内の回路モジュールとしてインプリメントされることを、理解すべきである。インプリメンテーションは、計算システムの性能および他の要求に応じた選択事項である。従って、ここで説明される論理演算は、状態、動作、構造デバイス、行動、またはモジュールとして、様々に言及される。これらの動作、構造デバイス、行動、およびモジュールは、ソフトウェア、ファームウェア、特定用途向けデジタル論理、およびこれらのものの任意の組み合わせで、インプリメントすることができる。
[0033] プロシージャー400は動作401で開始し、ここにおいて、サーバー14などにより提供することができる電子マーケットプレイス、またはソフトウェア開発者のライブラリー、または何らかの他のソースまたはプロバイダーは、様々なホスト・プログラムにより提供される機能をリストする。動作402において、アプリケーション開発者は、アプリケーションが少しでも動作するようにするためは何れの機能が必要であるか、及びより多くの及び/又は向上したフィーチャーをアプリケーションから得るためには何れの機能が望まれるか(オプションであるか)、ということを決定する。これは、アプリケーション開発者がアプリケーションを開発しているときに生じ得る。例えば、開発者は、作成されているアプリケーションがテキスト機能を必要とし得ること、および様々なフォント、フォント・サイズ、下線、太字などを選択できることが望ましいが必要要件ではないことを、決定することができる。即ち、テキスト機能は必要な機能となり、テキスト書式設定機能はオプションの機能となる。動作404において、開発者は、次に、アプリケーション・マニフェストに、必要な機能とオプションの機能とをリストする。動作406において、開発者は、開発したアプリケーションをマーケットプレイスへ提供する。電子マーケットプレイスは、次に、動作408において、そのアプリケーションを、様々なホスト・プログラムに対しての「ショップ」オプションにリストする。
[0034] ユーザーが、或る計画や目的のために特定のフィーチャーまたは能力を望んでいるが、ユーザーの使用しているホスト・プログラムがそのフィーチャーを提供しない、という場合、ユーザーは、ホスト・プログラムのメニュー、ツールバー、「リボン」、または他のユーザー・インターフェース上でクリックを行い、そのフィーチャーを得るために電子マーケットプレイスへ行く、410。ユーザーはログイン情報を提供し、動作412において、ユーザーのコンピューターは、(好ましくは、ということでありオプションであるが)電子マーケットプレイスへログインして、その望まれるフィーチャー(1以上)を提供するアプリケーションのサーチを開始する。ユーザーのコンピューター(クライアントまたは「ホスト」コンピューター)は、電子マーケットプレイスへサーチ・リクエストおよび基準を送り、また、ホスト・プログラムによりサポートされている機能のリストを送る。
[0035] 電子マーケットプレイスのためのサーバー、例えば、限定ではないがウェブ・サーバーなどのようなサーバーは、次に、何れのアプリケーションがユーザーの要求に最も適合するかを決定し、それらのアプリケーションのリストをクライアント・コンピューターへ提供する、408。サーバーはまた、各アプリケーションに関するマニフェストを送るか、または各アプリケーションに関しての必要な機能のリストを送る、408。クライアント・コンピューターは、その情報を受け取り、409、次に、クライアント・コンピューターのホスト・プログラム(1以上)により提供される機能のリストを取得する。次に、サーバーは、何れのアプリケーションがホスト・プログラムによりサポートされるかを判定する、416、418、420、422。サーバーは、次に、アプリケーションのリストを返し、430、そのリストのアプリケーションは、そのリスト内の各アプリケーション対して、サーチ基準およびマニフェストまたは他の識別情報に適合するものである。サーバーはまた、価格情報、試用期間の情報なども送ることができる。ユーザーのコンピューターは、そのリストと、その情報が有る場合にはその情報とを受け入れ、435、そのリストと、何らかのそのような追加情報とをユーザーに示す。
[0036] ユーザーは使用可能アプリケーションの選択を行い、ユーザーのコンピューターは、その選択を受け入れ、440、次に、そのアプリケーションのマニフェストに示されているアプリケーションのアドレスを指定することにより、またはそのアプリケーションに関する他の識別情報を用いて、そのアプリケーションをサーバーへ要求する、445。「購買」、「登録」、「取得」などのような必要なトランザクションも行われる。選択されたアプリケーションのマニフェストと、マニフェストおよび/またはそれに対する他のドキュメントとを、サーバーは提供し、450、ユーザーのコンピューターは受け取る、450。
[0037] マニフェストが受信されると、クライアント・コンピューターは、ホスト・プログラムを即座に再開することができ、従って、ユーザーは、アプリケーションにおける望んでいたフィーチャーの使用を開始できる。また、ユーザーがそのアプリケーションを使用する権利を以前に取得している場合、ユーザーは、ホスト・プログラムを起動し、455、ホスト・プログラムは、望まれる機能の提供を即座に開始することができる。何れの場合も、ホスト・プログラムは、アプリケーションをアクティブ化する、460。アプリケーションは、次に、基本的フィーチャーをホスト・プログラムへ提供する、475。例えば、アプリケーションは、ホストが「表」機能を提供する場合には正しく動作することができるが、ホスト・プログラムが「カラー・チャート」機能または「テキスト書式設定」機能を提供しないかぎり、完全な視覚的効果を提供することができない。動作480において、ホスト・プログラムによりサポートされる、アプリケーションの何れかのオプションの機能がある場合、アプリケーションはまた、それらのサポートされているオプションの機能をホスト・プログラムへ提供する、485。ホスト・プログラムによりサポートされるオプションの機能が無い場合、アプリケーションは、基本的フィーチャー・モードで動作を継続する。
[0038] マニフェストがユーザーのコンピューターへダウンロードされて格納されると、後の時点で、ユーザーがホスト・プログラムをアクティブ化したときに、455、ホスト・プログラムは、動作412〜450を反復する必要無しに、アプリケーションを直接に呼び出すことができる、460。
[0039]
[0040] 幾つかのアプリケーションは無料であり得、従って、即座にダウンロードでき、幾つかのアプリケーションは販売用のみであり得、従って、「購買」または「取得」のトランザクションを行う必要があり得、幾つかのアプリケーションは、無料であり得るが、その製品を登録するためにユーザーが特定の情報、例えば、名前、場所、Eメール・アドレスなどを提供することを必要とする、ということは理解されるであろう。
[0041] アプリケーションがホスト・プログラムの中で又はホスト・プログラムと関連して動作すると、アプリケーションは、限定機能モードで、即ち、特定のフィーチャーまたは能力がディスエーブルにされて、動作することになり得るが、これは、アプリケーションを完全に使用するためには幾つかの他の機能を必要とし得るからである。例えば、アプリケーションは、「表」機能が提供される場合には実行され得るが、「カラー・チャート」機能または「テキスト書式設定」機能が提供されるまで、プログラムの完全な視覚的効果を提供することができない。クライアント・コンピューターのホスト・プログラムからオプションの機能を得られない場合、アプリケーションは、機能低減モードでホスト・プログラムのサポートを継続する。しかし、ホスト・プログラムから1以上のオプションの機能を得られる場合、アプリケーションは、使用可能なオプションの機能のタイプに応じて、ホスト・プログラムがエンハンス・モードで動作することを可能とする。
[0042] 機能の組は、好適には、何らかの特殊性を用いて定められる。例えば、「表」機能は、表構造、行、列、見出し、およびソート・フィーチャーに対するサポートを提供すると定めることができる。別の例として、「テキスト書式設定」機能は、様々なフォント、フォント・サイズ、下線、太字などを選択する能力に対するサポートを提供すると定めることができる。別の例として、「カラー・チャート」機能は、様々な表スタイル、表の様々なエリアに対しての様々な色、軸情報(例えば、日付、価格、売れ行き、変更、受注残)などを選択する能力に対するサポートを提供すると定めることができる。
[0043] 特定のホスト・プログラム、または特定のホスト・プログラムの特定のバージョン、または特定のプラットフォームを指定することを必要とせずに、アプリケーションの開発者は、単に、必要とする機能およびオプションの機能を指定することができる。また、各ホスト・プログラムは、使用可能な機能のリストを提供する。従って、アプリケーションを取得または実行することが望まれるとき、そのアプリケーションのマニフェストが、クライアント・コンピューターのホスト・プログラム(1以上)の機能についての能力と比較される。一致があった場合、アプリケーションは、リストされ、ダウンロードされ、少なくとも基本モードで動作させることができる。また、アプリケーションのマニフェストがオプションの機能をリストしており、ホスト・プログラムが1以上のオプションの機能を提供する場合、アプリケーションはエンハンス・モードで動作させることができる。
[0044] クライアント・コンピューター10が2以上のホスト・プログラムを有すること又はそれらへのアクセスを有すること、および特定の機能が2以上のホスト・プログラムにより提供され得ることが、可能である。しかし、その機能に関するエンハンスメント(enhancements)を、1つのホスト・プログラムは提供するが、別のホスト・プログラムは提供しない、ということもあり得る。それらのエンハンスメントをアプリケーションが使用できる場合、好適には、エンハンスされた機能が用いられる。従って、機能に対してのオプションのエンハンスメントをリストすることができる。例えば、「表」機能は、指定され要求されるフィーチャーに加えて、使用可能な(ホスト・プログラム)または望まれる(ダウンロードされるアプリケーション)他のフィーチャーもリストすることができる。例として、「表」機能は、「ページ・セパレーター」(例えば、スプレッドシートを、ユーザーの指定した点で2以上のページに分ける能力)、または「ページ印刷順」(例えば、多ページ・スプレッドシートのページを、上から下へ、その後に左から右へと印刷するか、または左から右へ、その後に上から下へと印刷するかを、指定する能力)をリストすることができる。従って、マニフェストは、「表:ページ・セパレーター」、または「表:ページ印刷順」、または「表:ページ・セパレーター;ページ印刷順」を指定することができる。
[0045] また、特定の機能が2以上のホスト・プログラムにより提供され得る場合には、1つのホスト・プログラムにより提供される機能が、或る点、例えば、よりロバストであることや動作が速いことなどの点で、より望ましいことがあり、また、別のホスト・プログラムにより提供される機能が、或る点、例えば、過剰にプロセッサー・メモリや時間を使うなどの点で、あまり望ましくないことがある。従って、機能は、好適なホスト・プログラムを指定することもでき、それにより、そのアプリケーションに関して最高の性能を得ることができる。例えば、マニフェストは、「表:Excel(登録商標)」を指定することができる。従って、2つのホスト・プログラムが表機能を提供できる場合、表機能を提供するためにExcel(登録商標)が選択される。しかし、表機能を提供できるホスト・プログラムが有る場合、クライアント・コンピューターでホスト・プログラムとしてExcel(登録商標)が使用できないとしても、ダウンロードされたプログラムは動作することができる。
[0046] また、機能は、それが特定のホスト・プログラムにより提供されねばならないことを、指定することができる。例えば、マニフェストは、「表:必須:Excel(登録商標)」と指定することができる。しかし、このオプションは好適というほどではない。なぜなら、このオプションは、アプリケーションを、知られたホスト・プログラムに限定し、また、マニフェストを後に更新しない限り、将来のホスト・プログラムを提供しないからである。
[0047] また、機能は、たとえそれが必要な機能であっても、特定のホスト・プログラムからのその機能を使用しないことを、指定することができる。例えば、マニフェストは、「表:NNNではない(Not NNN)」(「NNN」は、その機能を提供するために使用すべきではないプログラムの名前または他のインジケーションである)と指定することができる。その場合において、「NNN」が表機能を提供できる唯一のホスト・プログラムである場合、そのアプリケーションは、ダウンロード可能なアプリケーションとして現れない。
[0048] 同様に、機能はまた、それが特定のプラットフォームのホスト・プログラムにより提供されねばならないことを、指定することができる。例えば、マニフェストは、「表:必要なプラットフォーム:Kindle(登録商標)」と指定することができる。しかし、このオプションは好適というほどではない。なぜなら、このオプションは、アプリケーションを、知られたプラットフォームに限定し、また、マニフェストを後に更新しない限り、将来のプラットフォームを提供しないからである。
[0049] また、機能は、ホスト・プログラムの特定のバージョンと関連付けすることができる。例えば、マニフェストは、「表:YYYv2.5」と指定することができ、ここにおいて、「YYY」はホスト・プログラムの名前である。このオプションは好適というほどではない。なぜなら、このオプションは、アプリケーションを、そのホスト・プログラムのそのバージョンに限定し、また、マニフェストを後に更新しない限り、プログラムの将来のバージョンを提供しないからである。
[0050] また、機能は、ホスト・プログラムの特定のバージョン又はその後のものと関連付けすることができる。例えば、マニフェストは、「表:YYYv2.5+」と指定することができ、ここにおいて、「YYY」はホスト・プログラムの名前であり、「+」は、そのバージョン2.5またはその後のものは働く、ということを示す。逆に、マニフェストは、「表:YYYv2.5−」と指定することができ、ここにおいて、「YYY」はホスト・プログラムの名前であり、「−」は、そのバージョン2.5またはその前のものは働く、ということを示す。しかし、このオプションは好適というほどではない。なぜなら、このオプションは、アプリケーションを、そのホスト・プログラムのそのバージョン(又はそれより前のもの又は後のもの)に限定するからである。しかし、レガシー・デバイスやレガシー・プログラムを意図したアプリケーションを提供することが望まれるときなどのような、特定の場合には、機能を、特定のプラットフォームや、ホスト・プログラムの以前のバージョンと関連付けすることが、望ましいであろう。
[0051] 代替の実施形態では、クライアント・コンピューター10は、サーバー14からダウンロードできるアプリケーションのリストをクライアント・コンピューター10が要求するときに、クライアント・コンピューターで使用可能なホスト・プログラムのリストを、サーバー14へ送る。サーバー14は、次に、クライアント・コンピューターのホスト・プログラムにより提供される機能と、各アプリケーションに必要な機能とを比較し、クライアント・コンピューターで適切に動作するアプリケーションを決定する。サーバー14は、次に、それらの使用可能なアプリケーションのリストをクライアント・コンピューター10へ送り、クライアント・コンピューターは、それらの使用可能なアプリケーションのリストを、選択してダウンロードするために、ユーザーに対して表示する。
[0052] 図5は、サーバー14またはクライアント・コンピューター10に関してここで説明したプロシージャーを実行できるデバイスのための、例としてのコンピューター・アーキテクチャー500を示す。即ち、コンピューター・アーキテクチャー500は、サーバー・コンピューター、モバイル・フォン、PDA、スマート・フォン、デスクトップ・コンピューター、ノートブック・コンピューター、タブレット・コンピューター、および/またはラップトップ・コンピューターについての例としてのアーキテクチャーを示す。コンピューター・アーキテクチャー500は、ここで示したソフトウェア・オペレーションの何れもの態様を実行するために用いることができる。
[0053] 例示のコンピューター・アーキテクチャー500は、中央処理装置502(「CPU」)と、ランダム・アクセス・メモリ506(「RAM」)およびリード・オンリー・メモリ(「ROM」)508を含むシステム・メモリ504と、メモリ504をCPU502へ結合するシステム・バス510とを含む。スタートアップの間などに、コンピューター・アーキテクチャー500内のエレメント間での情報の転送を援助する基本ルーチンを含む基本入出力システムは、ROM508に格納される。コンピューター・アーキテクチャー500は、更に、オペレーティング・システム514および1以上のホスト・プログラム520を格納するための大容量記憶装置512と、1以上のアプリケーション・プログラム522と、1以上の他のプログラム524とを含む。
[0054] 大容量記憶装置512は、バス510と接続された大容量記憶コントローラー(示さず)を介してCPU502と接続される。大容量記憶装置512と、それと関連するコンピューター可読媒体とは、コンピューター・アーキテクチャー500の不揮発性ストレージを提供する。ここに含まれるコンピューター可読媒体の説明では、ハード・ディスクやCD−ROMドライブなどのような大容量記憶装置を引き合いに出すが、コンピューター可読媒体は、コンピューター・アーキテクチャー500によりアクセスできる任意の使用可能なコンピューター・ストレージ媒体や通信媒体とすることができる、ということを当業者は理解すべきである。
[0055] ダウンロード可能なソフトウェア・アプリケーションのリスト、各ソフトウェア・アプリケーションの必要な機能のリスト、ダウンロード可能なソフトウェア・アプリケーション、および各ソフトウェア・アプリケーションのオプションの機能は、それらのアイテムを大容量記憶装置512から取得して、次にそれらのアイテムをネットワーク・インターフェース・ユニット516を介して送るプロセッサー502により、また、大容量記憶装置512に、それらのアイテムを、プロセッサー502へではなく、ネットワーク・インターフェース・ユニット516へ直接に送らせるようにすることにより、または、双方の組み合わせにより、送ることができ、それにより、幾つかのアイテムは大容量記憶装置512からネットワーク・インターフェース・ユニット516へ直接に送られ、他のアイテムはプロセッサー502からネットワーク・インターフェース・ユニット516へ送られる。
[0056] メモリ504と大容量記憶装置512とは好適には分離したコンポーネントであるが、メモリ504は、大容量記憶装置512に含まれることもできる。メモリ504と大容量記憶装置512とは、メモリ・デバイスとしてまとめて考慮し、そのように呼ぶことができる。
[0057] 他のハードウェア・コンポーネント526も存在し得る。例えば、コンポーネント526は、例えば、磁気計、環境光センサー、近接センサー、加速度計、ジャイロスコープ、グローバル・ポジショニング・システム(GPS)・センサー、マイクロフォンまたは他のオーディオ入力デバイス、カメラなどのような、センサー・コンポーネントであり得る。実際、ユーザーの求めているアプリケーションは、他のハードウェア・コンポーネントのうちの1つと共に使用するものであり得る。
[0058] 通信媒体は、コンピューター可読命令、データ構造、プログラム・モジュール、または他のデータを、搬送波や他のトランスポート機構などのような変調されたデータ信号に含むものであり、任意の配送媒体を含む。「変調されたデータ信号」という用語は、信号内において情報をエンコードするように、その信号の特性のうちの1以上の特性が変更または設定された信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接有線接続などのような有線媒体と、音響、RF、赤外線、および他のワイヤレス媒体などのようなワイヤレス媒体とを含む。上記のものの任意の組み合わせも、コンピューター可読媒体の範囲内に含まれるべきである。
[0059] 限定ではなく例として、コンピューター・ストレージ媒体は、揮発性および不揮発性、および取り外し可能および取り外し不可能である媒体を含み、この媒体は、コンピューター可読命令、データ構造、プログラム・モジュール、または他のデータなどのような情報を格納するための任意の方法または技術によりインプリメントされる。例えば、コンピューター・ストレージ媒体は、RAM、ROM、EPROM、EEPROM、フラッシュ・メモリまたは他のソリッド・ステート・メモリ技術、CD−ROM、デジタル・バーサタイル・ディスク(「DVD」)、HD−DVD、BLU−RAY、または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または望まれる情報を格納するために使用でき且つコンピューター・アーキテクチャー500によりアクセスできる任意の他の媒体を含むが、これらには限定されない。特許請求の範囲のために、「コンピューター・ストレージ媒体」という句と、その異形とは、波、信号、及び/又は他の一時的な及び/又は無形の通信媒体自体は含まない。
[0060] 様々な実施形態に従うと、コンピューター・アーキテクチャー500は、ネットワーク12などのようなネットワークを通じてのリモートのコンピューター及び/又はサーバーへの論理接続を用いて、ネットワーク化した環境で動作することができる。コンピューター・アーキテクチャー500は、バス510と接続されたネットワーク・インターフェース・ユニット516を通じて、ネットワーク12と接続することができる。ネットワーク・インターフェース・ユニット516はまた、他のタイプのネットワークやリモート・コンピューター・システムへ接続するために用いることができる、ということを理解すべきである。コンピューター・アーキテクチャー500はまた、多数の他のデバイスから入力を受け取って処理するための入力/出力コントローラー518を含むことができ、他のデバイスは、キーボード、マウス、タッチスクリーン、タッチパッド、キーパッド、または電子スタイラスを含む(図5には示していない)。同様に、入力/出力コントローラー518は、ディスプレイ・スクリーン、プリンター、または他のタイプの出力デバイス(これらも図5には示していない)へ、出力を提供することができる。
[0061] ここで説明したソフトウェア・コンポーネントは、CPU502へロードされて実行されたときに、CPU502およびコンピューター・アーキテクチャー500全体を、汎用計算システムから、ここで示した機能を行い易くするようにカスタム化された特定用途向け計算システムへと変換し得ることを、理解すべきである。CPU502は、個々に又は集合して任意の数の状態をとることができる任意の数のトランジスターや他の個別の回路エレメントから構成することができる。より特定的には、CPU502は、ここで開示したソフトウェア・モジュール内に含まれる実行可能命令に応じて、有限状態マシンとして動作することができる。CPU502は、1つのプロセッサーとすることも、複数のプロセッサーとすることもできる。それらのコンピューター実行可能命令は、どのようにCPU502が状態間を遷移するかを指定することにより、CPU502を変換することができ、それにより、CPU502を構成するトランジスターや他の個別のハードウェア・エレメントを変換する。
[0062] また、ここで示したソフトウェア・モジュールをエンコードすることにより、ここで示したコンピューター可読媒体の物理構造を変換することもできる。物理構造の特定の変換は、この説明の様々なインプリメンテーションにおける様々な要因に応じたものとなり得る。限定ではないが、そのような要因の例は、コンピューター可読媒体をインプリメントするために用いられる技術や、コンピューター可読媒体が一次ストレージとして特徴付けられるか二次ストレージとして特徴付けられるかなどである。例えば、コンピューター可読媒体が半導体ベースのメモリとしてインプリメントされる場合、ここで開示されたソフトウェアは、半導体メモリの物理状態を変換することによりコンピューター可読媒体上にエンコードすることができる。例えば、ソフトウェアは、半導体メモリを構成するトランジスター、キャパシター、または他の個別の回路エレメントの状態を変換することができる。ソフトウェアはまた、そのようなコンポーネントの物理状態を、そのようなコンポーネントにデータを格納するために、変換することができる。
[0063] 別の例として、ここで開示したコンピューター可読媒体は、磁気的または光学的な技術を用いてインプリメントすることができる。そのようなインプリメンテーションでは、ここで示したソフトウェアは、そのソフトウェアが磁気媒体または光媒体の中へエンコードされるときに、磁気媒体または光媒体の物理状態を変換することができる。これらの変換は、所与の磁気媒体内の特定の位置の磁気特性を変えることを、含むことができる。これらの変換はまた、所与の光媒体内の特定の位置の光学特性を変えるために、それら特定の位置の物理的なフィーチャーまたは特性を変えることを、含むことができる。上記の例は、単に、この説明を容易にするために提供されたものであり、この記載の範囲および精神から離れずに、物理媒体の他の変換も可能である。
[0064] 上記のことを考慮すると、ここで示したソフトウェア・コンポーネントを格納および実行するために、コンピューター・アーキテクチャーにおいて多くのタイプの物理的変換が行われることを、理解すべきである。また、コンピューター・アーキテクチャーは、手持ち型コンピューター、埋め込み型コンピューター・システム、パーソナル・デジタル・アシスタント、および当業者には知られている他のタイプの計算デバイスを含めての、他のタイプの計算デバイスも含み得ることを、理解すべきである。また、ここで示したコンポーネントの全てを含まないことが有り得ることや、ここで明示していない他のコンポーネントを含み得ることや、ここで示したアーキテクチャーとは全く異なるアーキテクチャーを用い得ることが、予期される。
[0065] 上記の主題事項は、単なる例として提供したものであり、限定するものと解釈すべきではない。ここで示し説明した例としての実施形態および応用に従わずに、ここで説明した主題事項に対して様々な変更や改変を行うことができる。
[0066] ここで示した主題事項は、コンピューターの構造的特徴、方法論的および変革的な行為、特定の計算用の機械、およびコンピューター可読媒体に特有の言語で説明したが、特許請求の範囲は、ここで説明した特定の特徴、行為、または媒体に必ずしも限定されないことは、理解される。むしろ、特定の特徴、行為、および媒体は、特許請求の範囲を実施するときの例示の形態として開示されている。

Claims (10)

  1. クライアント・コンピューターにおけるホスト・プログラムで用いるアプリケーションを得ることができるように、前記クライアント・コンピューターを動作させる方法であって、
    アプリケーション・サーチ・リクエストと、クライアント・コンピューターのホスト・プログラムにより提供される機能のリストとを送るステップと、
    前記ホスト・プログラムにより提供される前記機能と共に少なくとも基本的動作モードで使用できる入手可能なアプリケーションのリストを、前記サーバーから受け取るステップと、
    前記アプリケーションのリストを呈示するステップと、
    前記リストからのアプリケーションの選択を受け取るステップと、
    前記選択を送るステップと、
    選択された前記アプリケーションを受け取るステップと、
    前記ホスト・プログラムを用いる、受け取った前記アプリケーションを、アクティブ化するステップと
    を含む方法。
  2. 請求項1に記載の方法であって、
    前記ホスト・プログラムが、受け取った前記アプリケーションのオプションのフィーチャーをサポートする機能を提供する場合、前記オプションのフィーチャーをアクティブ化するステップ
    を更に含む方法。
  3. 請求項1に記載の方法であって、
    少なくとも選択された前記アプリケーションのマニフェストを受け取るステップを更に含み、前記マニフェストは、少なくとも、選択された前記アプリケーションが前記基本的動作モードで動作するために必要な機能のリストを含む、
    方法。
  4. アプリケーションをダウンロードさせることができるサーバーであって、
    動作命令と、ダウンロード可能なソフトウェア・アプリケーションのリストと、前記ダウンロード可能なソフトウェア・アプリケーションのそれぞれに対しての、基本的動作モードにおいて前記ダウンロード可能なソフトウェアが用いられるために必要な機能のリストとを含むメモリ・デバイスと、
    ネットワーク・インターフェース・ユニットと、
    前記メモリ・デバイスおよび前記ネットワーク・インターフェース・ユニットと通信するように結合されるプロセッサーであって、
    前記ネットワーク・インターフェース・ユニットを介して、前記サーバーで入手可能なアプリケーションのリストと、クライアント・コンピューターのホスト・プログラムにより提供される機能のリストとを求めるリクエストを受け取るため、
    前記ホスト・プログラムにより提供される前記機能と共に少なくとも基本的動作モードで使用できるアプリケーションを識別するため、
    識別された前記アプリケーションのリストを作成するため、
    識別された前記アプリケーションの前記リストが、前記ネットワーク・インターフェース・ユニットを介して送られるようにするため、
    識別された前記アプリケーションのうちの選択されたアプリケーションを求めるリクエストを、前記ネットワーク・インターフェース・ユニットを介して受け取るため、
    選択された前記ソフトウェア・アプリケーションが、前記ネットワーク・インターフェース・ユニットを介して送られるようにするための
    前記動作命令を実行するプロセッサーと
    を含むサーバー。
  5. 請求項4に記載のサーバーであって、前記プロセッサーは、
    各ソフトウェア・アプリケーションによりオプションで使用可能な機能のリストを、前記メモリ・デバイスから取得するため、および
    前記各ソフトウェア・アプリケーションによりオプションで使用可能な前記機能の前記リストが、前記ネットワーク・インターフェース・ユニットを介して送られるようにするための
    前記動作命令を更に実行する、サーバー。
  6. 請求項4に記載のサーバーであって、前記プロセッサーは、
    各ソフトウェア・アプリケーションによりオプションで使用可能な機能のリストを、前記メモリ・デバイスから取得するため、および
    オプションで使用可能な前記機能の前記リストが、前記ソフトウェア・アプリケーションのリストおよび前記ソフトウェア・アプリケーションのそれぞれにより必要とされる前記機能のリストと共に、前記ネットワーク・インターフェース・ユニットを介して送られるようにするための
    前記動作命令を更に実行する、サーバー。
  7. 請求項4に記載のサーバーであって、
    選択された前記ソフトウェア・アプリケーションによりオプションで使用可能な機能のリストを、前記メモリ・デバイスから取得するため、および
    選択された前記ソフトウェア・アプリケーションによりオプションで使用可能な前記機能の前記リストが、前記ネットワーク・インターフェース・ユニットを介して送られるようにするための
    前記動作命令を更に実行する、サーバー。
  8. アプリケーションを、クライアント・コンピューターのホスト・プログラムで使用するために、サーバーでアクティブ化させることができるコンピューター可読命令を格納したコンピューター・ストレージ媒体であって、前記コンピューター可読命令がコンピューターにより実行されたときに、前記クライアント・コンピューターに
    アプリケーション・サーチ・リクエストと、クライアント・コンピューターのホスト・プログラムにより提供される機能のリストとを送るステップと、
    前記ホスト・プログラムにより提供される前記機能と共に少なくとも基本的動作モードで使用できる入手可能なアプリケーションのリストを、前記サーバーから受け取るステップと、
    前記アプリケーションのリストを呈示するステップと、
    前記リストからのアプリケーションの選択を受け取るステップと、
    前記選択を送るステップと、
    選択された前記アプリケーションを受け取るステップと、
    前記ホスト・プログラムと共に使用するために、受け取った前記アプリケーションをアクティブ化するステップと
    を行わせる、
    コンピューター・ストレージ媒体。
  9. 請求項8に記載のコンピューター・ストレージ媒体であって、前記クライアント・コンピューターにより実行されたときに、前記ホスト・プログラムと共にオプションで使用可能な機能のリストを前記クライアント・コンピューターに受け取らせるようにするコンピューター可読命令を更に含む、コンピューター・ストレージ媒体。
  10. 請求項8に記載のコンピューター・ストレージ媒体であって、、前記クライアント・コンピューターにより実行されたときに、前記ホスト・プログラムが、選択された前記アプリケーションのオプションのフィーチャーをサポートする機能を提供する場合、前記オプションのフィーチャーを前記クライアント・コンピューターがアクティブ化するようにさせるコンピューター可読命令を更に含む、コンピューター・ストレージ媒体。
JP2015520302A 2012-06-26 2013-06-20 ホスト・コンパチブルのダウンロード可能なアプリケーションの識別 Active JP6154005B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/533,367 2012-06-26
US13/533,367 US9710247B2 (en) 2012-06-26 2012-06-26 Identification of host-compatible downloadable applications
PCT/US2013/046672 WO2014004226A2 (en) 2012-06-26 2013-06-20 Identification of host-compatible downloadable applications

Publications (2)

Publication Number Publication Date
JP2015528943A true JP2015528943A (ja) 2015-10-01
JP6154005B2 JP6154005B2 (ja) 2017-06-28

Family

ID=48808503

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015520302A Active JP6154005B2 (ja) 2012-06-26 2013-06-20 ホスト・コンパチブルのダウンロード可能なアプリケーションの識別

Country Status (11)

Country Link
US (1) US9710247B2 (ja)
EP (1) EP2864895B1 (ja)
JP (1) JP6154005B2 (ja)
KR (1) KR102011172B1 (ja)
CN (1) CN104412225B (ja)
AU (2) AU2013280872A1 (ja)
BR (1) BR112014031315B1 (ja)
CA (1) CA2876208C (ja)
MX (1) MX352728B (ja)
RU (1) RU2637880C2 (ja)
WO (1) WO2014004226A2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103514496B (zh) * 2012-06-21 2017-05-17 腾讯科技(深圳)有限公司 一种推荐目标软件的处理方法及系统
US20140149243A1 (en) * 2012-11-29 2014-05-29 Red Hat, Inc. Vendor download integration
US9348608B2 (en) * 2013-04-24 2016-05-24 QRC, Inc. System and method for registering application and application transforms on a radiofrequency digitization and collection device
US9906595B2 (en) * 2013-07-19 2018-02-27 Opanga Networks, Inc. Content source discovery
US9787759B2 (en) * 2013-11-08 2017-10-10 Verizon Patent And Licensing Inc. Method and apparatus for providing shared user interface view
CN104731607B (zh) * 2013-12-18 2018-10-30 华为技术有限公司 终端终生学习处理方法、装置和系统
CN104219323A (zh) * 2014-09-18 2014-12-17 深圳市中兴移动通信有限公司 应用下载方法和移动终端
US10656935B2 (en) * 2015-10-13 2020-05-19 Home Box Office, Inc. Maintaining and updating software versions via hierarchy
US10623514B2 (en) 2015-10-13 2020-04-14 Home Box Office, Inc. Resource response expansion
EP3402160B1 (en) * 2016-03-15 2020-04-29 Huawei Technologies Co., Ltd. Service processing method and apparatus
US10303757B2 (en) 2016-08-19 2019-05-28 Cognex Corporation Apparatuses, systems, and methods for providing a visual program for machine vision systems
US10698740B2 (en) 2017-05-02 2020-06-30 Home Box Office, Inc. Virtual graph nodes
US10417232B2 (en) 2017-12-22 2019-09-17 Microsoft Technology Licensing, Llc Associating hardware to store applications
US11640429B2 (en) 2018-10-11 2023-05-02 Home Box Office, Inc. Graph views to improve user interface responsiveness
US11431817B2 (en) * 2018-12-04 2022-08-30 Samsung Electronics Co., Ltd. Method and apparatus for management of network based media processing functions
US11605166B2 (en) 2019-10-16 2023-03-14 Parsons Corporation GPU accelerated image segmentation
WO2021150594A1 (en) 2020-01-20 2021-07-29 Parsons Corporation Narrowband iq extraction and storage
US11619700B2 (en) 2020-04-07 2023-04-04 Parsons Corporation Retrospective interferometry direction finding
US11569848B2 (en) 2020-04-17 2023-01-31 Parsons Corporation Software-defined radio linking systems
US11575407B2 (en) 2020-04-27 2023-02-07 Parsons Corporation Narrowband IQ signal obfuscation
US11849347B2 (en) 2021-01-05 2023-12-19 Parsons Corporation Time axis correlation of pulsed electromagnetic transmissions

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010015533A (ja) * 2008-06-02 2010-01-21 Ricoh Co Ltd インストール装置、インストール方法、プログラム、記憶媒体
JP2010182309A (ja) * 2009-02-09 2010-08-19 Apple Inc アプリケーションプログラムのインテリジェントなダウンロード
KR20120043382A (ko) * 2010-10-26 2012-05-04 에스케이플래닛 주식회사 애플리케이션의 배포 시스템 및 방법

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151643A (en) 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US6340977B1 (en) 1999-05-07 2002-01-22 Philip Lui System and method for dynamic assistance in software applications using behavior and host application models
US7143142B1 (en) 2000-05-15 2006-11-28 Ricoh Co., Ltd. Method and apparatus for appliance host supported network-based application delivery
US6883168B1 (en) * 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
US7321901B1 (en) 2000-09-29 2008-01-22 Microsoft Corporation Application service provider model for manufacturers product specification data
US8126959B2 (en) 2001-06-28 2012-02-28 International Business Machines Corporation Method and system for dynamic redistribution of remote computer boot service in a network containing multiple boot servers
US7827602B2 (en) 2003-06-30 2010-11-02 At&T Intellectual Property I, L.P. Network firewall host application identification and authentication
US8015504B1 (en) * 2004-03-26 2011-09-06 Adobe Systems Incorporated System and method for communicating information over a network
US7779034B2 (en) 2005-10-07 2010-08-17 Citrix Systems, Inc. Method and system for accessing a remote file in a directory structure associated with an application program executing locally
US8151323B2 (en) 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
US20080027945A1 (en) 2006-07-28 2008-01-31 Nichols Paul H Methods, systems and computer program products for downloading a Java application based on identification of supported classes
US7814234B2 (en) 2006-10-30 2010-10-12 Microsoft Corporation Offline execution of web based applications
US7752313B2 (en) 2007-02-21 2010-07-06 The Go Daddy Group, Inc. Partner web site to assist in offering applications to a web hosting community
US20090037287A1 (en) * 2007-07-31 2009-02-05 Ahmad Baitalmal Software Marketplace and Distribution System
CN101382894B (zh) 2007-09-05 2013-09-04 北京软通科技有限责任公司 下载计算机硬件设备驱动程序的方法、装置及系统
US9361636B2 (en) 2008-05-20 2016-06-07 Microsoft Technology Licensing, Llc Creating, managing, and provisioning packages of online applications
US8667483B2 (en) * 2009-03-25 2014-03-04 Microsoft Corporation Device dependent on-demand compiling and deployment of mobile applications
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
US20110126168A1 (en) 2009-11-25 2011-05-26 Crowdsource Technologies Ltd. Cloud plarform for managing software as a service (saas) resources
US8762985B2 (en) * 2010-09-30 2014-06-24 Samsung Electronics Co., Ltd User terminal device and service providing method thereof
US20110029881A1 (en) * 2010-10-11 2011-02-03 Nevolution Digital, Llc Devices and methods for providing software programs compatible with a computer system for download by a user
US20120096435A1 (en) * 2010-10-18 2012-04-19 Microsoft Corporation Capability-based application recommendation
US8694988B2 (en) * 2010-10-22 2014-04-08 Adobe Systems Incorporated Runtime extensions
CN102063299A (zh) 2010-12-21 2011-05-18 东莞宇龙通信科技有限公司 移动终端中应用运行条件的评估方法及装置、移动终端
CN102143222B (zh) 2011-01-28 2014-07-16 宇龙计算机通信科技(深圳)有限公司 一种应用资源的下载适配方法及下载适配装置
CN102129380B (zh) 2011-03-10 2015-05-13 宇龙计算机通信科技(深圳)有限公司 一种服务器及提供软件的方法、移动终端
US8707289B2 (en) * 2011-07-20 2014-04-22 Google Inc. Multiple application versions
US20130232229A1 (en) * 2012-03-02 2013-09-05 Ilya Firman Distribution of Application Files

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010015533A (ja) * 2008-06-02 2010-01-21 Ricoh Co Ltd インストール装置、インストール方法、プログラム、記憶媒体
JP2010182309A (ja) * 2009-02-09 2010-08-19 Apple Inc アプリケーションプログラムのインテリジェントなダウンロード
KR20120043382A (ko) * 2010-10-26 2012-05-04 에스케이플래닛 주식회사 애플리케이션의 배포 시스템 및 방법

Also Published As

Publication number Publication date
AU2013280872A1 (en) 2015-01-15
WO2014004226A3 (en) 2014-09-12
AU2018278888A1 (en) 2019-01-03
US20130346965A1 (en) 2013-12-26
CA2876208A1 (en) 2014-01-03
EP2864895A4 (en) 2016-01-20
KR102011172B1 (ko) 2019-08-14
RU2014152999A (ru) 2016-07-20
JP6154005B2 (ja) 2017-06-28
CA2876208C (en) 2020-09-01
BR112014031315B1 (pt) 2022-02-15
AU2018278888B2 (en) 2020-04-16
WO2014004226A2 (en) 2014-01-03
EP2864895B1 (en) 2022-03-23
BR112014031315A2 (pt) 2017-06-27
MX352728B (es) 2017-12-06
EP2864895A2 (en) 2015-04-29
CN104412225B (zh) 2017-11-07
KR20150022909A (ko) 2015-03-04
MX2014015929A (es) 2015-03-03
US9710247B2 (en) 2017-07-18
CN104412225A (zh) 2015-03-11
RU2637880C2 (ru) 2017-12-07

Similar Documents

Publication Publication Date Title
JP6154005B2 (ja) ホスト・コンパチブルのダウンロード可能なアプリケーションの識別
US8612933B1 (en) Cross-platform mobile application development
US8640093B1 (en) Native web server for cross-platform mobile apps
US9268562B1 (en) Methods and apparatuses for dynamically generating mobile application layouts using client-independent configuration
US20130198606A1 (en) Software application distribution in documents
US10878392B2 (en) Control and access of digital files for three dimensional model printing
US20120317561A1 (en) Automatic recognition of web application
US11797273B2 (en) System and method for enhancing component based development models with auto-wiring
US20130036196A1 (en) Method and system for publishing template-based content
US9324063B2 (en) Contextual solicitation in a starter application
US20130081010A1 (en) Template and server content download using protocol handlers
US10949176B2 (en) Automatic view generation based on annotations
US10846328B2 (en) Digital asset association with search query data
US9361131B1 (en) Network resource access via a mobile shell
US10579373B2 (en) Seamless extension porting
US10382541B2 (en) Server and method for providing design data for application and system for generating application
JP5661979B1 (ja) データ登録システム、データ登録方法、ならびに、プログラム
Würth et al. Optimization of Customer Interaction in Online Wine Trade Using the Example of the VICAMPO iOS App
CN116610385A (zh) 应用生成方法、装置、计算机设备、存储介质和程序产品

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170123

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170217

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170531

R150 Certificate of patent or registration of utility model

Ref document number: 6154005

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