(57)【要約】ユーザーの（クライアント）コンピューターが、電子マーケットプレイスにおいてサーバーからダウンロードできるアプリケーションのリストと、ホスト・プログラムにより提供される機能のリストとを求めるリクエストを送る。アプリケーション・マニフェストにあるもののようなアプリケーションの記述は、必要な機能のリストを提供し、また、好ましくは、ソフトウェア・アプリケーションに対するオプションの機能のリストを提供する。サーバーは、それらの機能によりサポートされるアプリケーションのリストを送る。それらのサポートされるアプリケーションは、ダウンロード可能なものとして、ユーザーに対して表示される。ユーザーが望むアプリケーションを選択し、そのアプリケーションのダウンロードを、ユーザーのコンピューターが要求し、サーバーが提供する。次に、ダウンロードされたアプリケーションは、ホスト・プログラムにより提供される必要な機能を用いてユーザーのコンピューターで動作し、また、ホスト・プログラムにより提供される何らかのオプションの機能を用いることもある。
2015528943.tif 000002
【特許請求の範囲】
【請求項１】
クライアント・コンピューターにおけるホスト・プログラムで用いるアプリケーションを得ることができるように、前記クライアント・コンピューターを動作させる方法であって、
アプリケーション・サーチ・リクエストと、クライアント・コンピューターのホスト・プログラムにより提供される機能のリストとを送るステップと、
前記ホスト・プログラムにより提供される前記機能と共に少なくとも基本的動作モードで使用できる入手可能なアプリケーションのリストを、前記サーバーから受け取るステップと、
前記アプリケーションのリストを呈示するステップと、
前記リストからのアプリケーションの選択を受け取るステップと、
前記選択を送るステップと、
選択された前記アプリケーションを受け取るステップと、
前記ホスト・プログラムを用いる、受け取った前記アプリケーションを、アクティブ化するステップと
を含む方法。
【請求項２】
請求項１に記載の方法であって、
前記ホスト・プログラムが、受け取った前記アプリケーションのオプションのフィーチャーをサポートする機能を提供する場合、前記オプションのフィーチャーをアクティブ化するステップ
を更に含む方法。
【請求項３】
請求項１に記載の方法であって、
少なくとも選択された前記アプリケーションのマニフェストを受け取るステップを更に含み、前記マニフェストは、少なくとも、選択された前記アプリケーションが前記基本的動作モードで動作するために必要な機能のリストを含む、
方法。
【請求項４】
アプリケーションをダウンロードさせることができるサーバーであって、
動作命令と、ダウンロード可能なソフトウェア・アプリケーションのリストと、前記ダウンロード可能なソフトウェア・アプリケーションのそれぞれに対しての、基本的動作モードにおいて前記ダウンロード可能なソフトウェアが用いられるために必要な機能のリストとを含むメモリ・デバイスと、
ネットワーク・インターフェース・ユニットと、
前記メモリ・デバイスおよび前記ネットワーク・インターフェース・ユニットと通信するように結合されるプロセッサーであって、
前記ネットワーク・インターフェース・ユニットを介して、前記サーバーで入手可能なアプリケーションのリストと、クライアント・コンピューターのホスト・プログラムにより提供される機能のリストとを求めるリクエストを受け取るため、
前記ホスト・プログラムにより提供される前記機能と共に少なくとも基本的動作モードで使用できるアプリケーションを識別するため、
識別された前記アプリケーションのリストを作成するため、
識別された前記アプリケーションの前記リストが、前記ネットワーク・インターフェース・ユニットを介して送られるようにするため、
識別された前記アプリケーションのうちの選択されたアプリケーションを求めるリクエストを、前記ネットワーク・インターフェース・ユニットを介して受け取るため、
選択された前記ソフトウェア・アプリケーションが、前記ネットワーク・インターフェース・ユニットを介して送られるようにするための
前記動作命令を実行するプロセッサーと
を含むサーバー。
【請求項５】
請求項４に記載のサーバーであって、前記プロセッサーは、
各ソフトウェア・アプリケーションによりオプションで使用可能な機能のリストを、前記メモリ・デバイスから取得するため、および
前記各ソフトウェア・アプリケーションによりオプションで使用可能な前記機能の前記リストが、前記ネットワーク・インターフェース・ユニットを介して送られるようにするための
前記動作命令を更に実行する、サーバー。
【請求項６】
請求項４に記載のサーバーであって、前記プロセッサーは、
各ソフトウェア・アプリケーションによりオプションで使用可能な機能のリストを、前記メモリ・デバイスから取得するため、および
オプションで使用可能な前記機能の前記リストが、前記ソフトウェア・アプリケーションのリストおよび前記ソフトウェア・アプリケーションのそれぞれにより必要とされる前記機能のリストと共に、前記ネットワーク・インターフェース・ユニットを介して送られるようにするための
前記動作命令を更に実行する、サーバー。
【請求項７】
請求項４に記載のサーバーであって、
選択された前記ソフトウェア・アプリケーションによりオプションで使用可能な機能のリストを、前記メモリ・デバイスから取得するため、および
選択された前記ソフトウェア・アプリケーションによりオプションで使用可能な前記機能の前記リストが、前記ネットワーク・インターフェース・ユニットを介して送られるようにするための
前記動作命令を更に実行する、サーバー。
【請求項８】
アプリケーションを、クライアント・コンピューターのホスト・プログラムで使用するために、サーバーでアクティブ化させることができるコンピューター可読命令を格納したコンピューター・ストレージ媒体であって、前記コンピューター可読命令がコンピューターにより実行されたときに、前記クライアント・コンピューターに
アプリケーション・サーチ・リクエストと、クライアント・コンピューターのホスト・プログラムにより提供される機能のリストとを送るステップと、
前記ホスト・プログラムにより提供される前記機能と共に少なくとも基本的動作モードで使用できる入手可能なアプリケーションのリストを、前記サーバーから受け取るステップと、
前記アプリケーションのリストを呈示するステップと、
前記リストからのアプリケーションの選択を受け取るステップと、
前記選択を送るステップと、
選択された前記アプリケーションを受け取るステップと、
前記ホスト・プログラムと共に使用するために、受け取った前記アプリケーションをアクティブ化するステップと
を行わせる、
コンピューター・ストレージ媒体。
【請求項９】
請求項８に記載のコンピューター・ストレージ媒体であって、前記クライアント・コンピューターにより実行されたときに、前記ホスト・プログラムと共にオプションで使用可能な機能のリストを前記クライアント・コンピューターに受け取らせるようにするコンピューター可読命令を更に含む、コンピューター・ストレージ媒体。
【請求項１０】
請求項８に記載のコンピューター・ストレージ媒体であって、、前記クライアント・コンピューターにより実行されたときに、前記ホスト・プログラムが、選択された前記アプリケーションのオプションのフィーチャーをサポートする機能を提供する場合、前記オプションのフィーチャーを前記クライアント・コンピューターがアクティブ化するようにさせるコンピューター可読命令を更に含む、コンピューター・ストレージ媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  電子マーケットプレイスにおいて、ユーザーは、１以上のアプリケーションをダウンロードしてアクティブ化する権利を購入および／または取得することができる。それらのアプリケーションは、典型的には、特定のホスト・プラットフォーム、またはホスト・プラットフォームでの特定のプログラムを指定する。アプリケーションが、ユーザーのコンピューターのプログラムによりサポートされる場合、マーケットプレイスとのユーザーのエクスペリエンスは建設的なものとなるであろう。しかし、アプリケーションがサポートされておらず、ユーザーのコンピューターで実行されない場合、ユーザーは、ユーザーのエクスペリエンスを不満足なものと見るであろう。これは、アプリケーションが購入またはダウンロードされた後に少しの払い戻しを取得可能である場合には、特にあてはまる。従って、ユーザーのエクスペリエンスは、ダウンロードのためにリストされたアプリケーションが、実際に、ユーザーのコンピューターで実行される場合には、良くなる。
【発明の概要】
【０００２】
[0002]  アプリケーション・マニフェストへ付加され得るようなものであるアプリケーションの記述は、必ずしもアプリケーション・マニフェストへ付加され得るとは限らないが、少なくとも、望まれるフィーチャー(feature)をアプリケーションがホスト／クライアント・コンピューターのホスト・プログラムへ提供するために必要とされる機能のリストを、提供する。アプリケーションに必要な機能がクライアント・コンピューターで使用可能な場合、そのアプリケーションは使用可能なものとしてユーザーに対して表示され、従って、電子マーケットプレイスのサーバーからダウンロード可能である。表示されたアプリケーションが選択され、ユーザーのコンピューターへダウンロードされ、アクティブ化された場合、そのアプリケーションは、クライアント・コンピューターとのインターフェースを行い、ホスト・プログラムにより提供される機能を用いて、望まれるフィーチャーを提供する。
【０００３】
[0003]  更に、オプションの機能がリストされ得、これは、エンハンス（enhanced）・フィーチャーをアプリケーションにおいて提供する。ホスト・プログラムが１以上のオプションの機能を提供する場合、アプリケーションはエンハンス・モードで動作することができる。
【０００４】
[0004]  ここで説明する主題事項が、コンピューター制御された装置、コンピューター・プロセス、計算システムとして、またはコンピューター可読ストレージ媒体などのような製品としてインプリメントでき得ることを、理解すべきである。これらおよび様々な他の特徴は、下記の詳細な説明を読み、添付の図面を検討することにより、明らかになるであろう。
【０００５】
[0005]  この概要は、下記の詳細な説明に記載の幾つかの概念の短い且つ／又は簡略化した紹介である。この概要は、特許請求の範囲に記載の主題事項の鍵となる特徴や本質的な特徴を特定することを意図しておらず、また、この概要を特許請求の範囲に記載の主題事項の範囲を限定するために用いることを意図していない。更に、特許請求の範囲に記載の主題事項は、本開示の何れかの部分に記載した何れかまたは全ての欠点を克服するインプリメンテーションに限定されない。
【図面の簡単な説明】
【０００６】
【図１】図１は、１以上のユーザー（クライアントまたは宛先）・コンピューターが、インターネットなどのような通信媒体を介して、電子マーケットプレイスの１以上のサーバーへ接続される例示の環境を示す。
【図２Ａ】図２Ａは、クライアント・コンピューターの例示の動作環境を示す。
【図２Ｂ】図２Ｂは、サーバーの例示の動作環境を示す。
【図３】図３は、クライアント・コンピューターとマーケットプレイス・サーバーとの間の通信の例示の動作タイムラインを示す。
【図４Ａ】図４Ａないし図４Ｃは、クライアント・コンピューターとマーケットプレイス・サーバーとの動作を示す例示のプロシージャーのフローチャートである。
【図４Ｂ】図４Ａないし図４Ｃは、クライアント・コンピューターとマーケットプレイス・サーバーとの動作を示す例示のプロシージャーのフローチャートである。
【図４Ｃ】図４Ａないし図４Ｃは、クライアント・コンピューターとマーケットプレイス・サーバーとの動作を示す例示のプロシージャーのフローチャートである。
【図５】図５は、ここで説明するプロシージャーを実行できるデバイスの例示のコンピューター・アーキテクチャーを示す。
【発明を実施するための形態】
【０００７】
[0012]  下記の詳細な説明は、ホスト・コンパチブルのダウンロードされるプログラムの識別に関する概念および技術に関する。ここで説明される主題事項は、コンピューター・システムのオペレーティング・システムおよびアプリケーション・プログラムの実行と関連して実行されるプログラム・モジュールの一般的コンテキストで示されるが、当業者は、他のタイプのプログラム・モジュールと組み合わせて他のインプリメンテーションを行えることを認識するであろう。一般に、プログラム・モジュールは、ルーチン、プログラム、コンポーネント、データ構造、および特定のタスクを行ったり特定の抽象データ型をインプリメントしたりする他のタイプの構造を含む。更に、当業者は、手持ち型デバイス、マルチプロセッサー・システム、マイクロプロセッサー・ベースまたはプログラマブルの消費者用電子機器、マイクロコンピューター、メインフレーム・コンピューターなどを含む他のコンピューター・システム構成を用いて、ここで説明する主題事項を実施でき得ることを、理解するであろう。
【０００８】
[0013]  下記の詳細な説明では添付の図面を参照するが、添付の図面は、詳細な説明の一部を形成し、特定の実施形態または例を示している。ここで図面を参照すると、図面では、幾つかの図面を通して同じ数字は同じエレメントを表し、ホスト・コンパチブルのダウンロードされるプログラムの識別のための計算システム、コンピューター可読ストレージ媒体、およびコンピューターでインプリメントする方法の態様が示されている。
【０００９】
[0014]  図１は、１以上のユーザー（クライアントまたは宛先）・コンピューター１０Ａ〜１０Ｍが、通信媒体１２を介して、電子マーケットプレイスの１以上のサーバー１４Ａ〜１４Ｎへ接続される例示の環境を示し、ＭおよびＮは双方とも０より大きい整数である。クライアント・コンピューター１０は、任意のタイプの計算プラットフオームとすることができ、例えば、パーソナル・コンピューター、ビジネス・コンピューター、タブレット、または１以上のプログラムをホストする別のタイプの計算デバイスである。通信媒体１２は、例えば、インターネット、Ｗｉ−Ｆｉ（登録商標）接続、または１つのポイントから別のポイントへの、ソフトウェア・アプリケーションを含めてのデータの転送が可能な何らかの他の通信媒体である。最後に、サーバー１４も１つのタイプの計算デバイスであるが、この場合、その計算デバイスに格納した又はその計算デバイスにより容易に取得できるソフトウェア・アプリケーション・プログラムを有する。
【００１０】
[0015]  電子マーケットプレイスにおいて、クライアント・コンピューター１０、例えば１０Ａのユーザーは、特定の要求を満たすためや、単に何が入手可能であるかを見るために、無料または購買用のソフトウェア・アプリケーションを探す。そのソフトウェア・アプリケーションがユーザーのコンピューター１０Ａと適切にインターフェースしないであろう場合、電子マーケットプレイスとの及び／又はその特定のサーバーを動作させている会社とのユーザーのエクスペリエンスは不快なものとなり、特に、ユーザーがそのアプリケーションに対して支払いを行っており、払い戻しを得られない場合には、不快なものとなるであろう。しかし、アプリケーションが適切にインターフェースする場合、ユーザーのエクスペリエンスは快適なものと見なせるであろう。
【００１１】
[0016]  「プログラム」、「アプリケーション」、「ａｐｐ」、「拡張（extension）」、「モジュール」、「データ・リンク・ライブラリー」（ｄｌｌ）、および「プラグイン」という用語は一般的に使用されるが、標準化された明確な意味を有さず、これらの用語の一般的な使用はこれらの用語間での区別を不鮮明にすることが多い、ということが理解されるであろう。例えば、「プログラム」、「アプリケーション」、および「ａｐｐ」は、交換可能に用いられることが多く、また、「アプリケーション」、「ａｐｐ」、「拡張」、「モジュール」、「ｄｌｌ」、および「プラグイン」も交換可能に用いられることが多い。従って、説明において便利なように、また、限定や定義としてではなく、ここで一般的に用いられる「プログラム」および「ホスト・プログラム」は、生産性プログラム（生産性ソフトウェア）であり、実行可能なコードを有するワード・プロセッシング・プログラム、スプレッドシート・プログラム、グラフィックス・プログラム、Ｅメール・プログラムなどであるが、これらには限定されない。また、説明において便利なように、また、限定や定義としてではなく、ここで一般的に用いられる「アプリケーション」および「ソフトウェア・アプリケーション」は、モジュール、拡張、ｄｌｌ、またはプラグインであり、限定ではないが、例えばＪａｖａｓｃｒｉｐｔ（登録商標）などのようなものを含む実行可能なコードを有する。ここで説明する環境では、「プログラム」は、典型的には、ホスト、クライアント、または宛先コンピューターとも呼ばれるユーザーのコンピューターに配されており、アプリケーションは、典型的には、ユーザーのコンピューターのプログラムと共に使用するために、サーバーに配され、そのサーバーからダウンロードできるようにされている。
【００１２】
[0017]  アプリケーション・マニフェストは、どのようにアプリケーションが生産性ソフトウェアと統合するか、ということの記述である。アプリケーション・マニフェストのフォーマットの１つの従来例は、アプリケーションの構造およびコンテンツを定めるＸＭＬファイルであり、どのようにアプリケーションが生産性ソフトウェアと統合するか、ということを含む。従来のアプリケーション・マニフェストは、典型的には、必要なエレメントとオプションのエレメントとの双方を有するが、必ずしもそうではない。必要なエレメントは、例えば、assembly（アセンブリ）、manifest version（マニフェスト・バージョン）、およびassemblyIdentity（アセンブリ・アイデンティティ）であり得るが、これらには限定されない。オプションのエレメントは、例えば、noInherit（継承なし）、compatibility（コンパチビリティ）、application（アプリケーション）、supportedOS（サポートされるＯＳ）、dependency（依存性）、dependentAssembly（依存アセンブリ）、およびfile（ファイル）であり得るが、これらには限定されない。他のアプリケーション・マニフェスト・フォーマットも可能であり、他のフォーマットの使用は、ここにおいて特定的に含まれ、また、企図されている。
【００１３】
[0018]  従って、従来のアプリケーション・マニフェストは、ホスト・コンピューターの１以上の特定のプログラムと関連付けされており、また、そのプログラムをターゲットにする。しかし、ホスト・プログラムが変更されたり、新たなホスト・プログラムが使用可能になったりした場合、アプリケーション・マニフェストは古いものになり、アプリケーションの開発者は、それらの変更された及び／又は新たなホスト・プログラムを反映するためにアプリケーション・マニフェストを更新することを必要とされるであろう。さもなければ、そのアプリケーションは、ホスト・プログラムと共に実行されないか又は適切に実行されないであろう。例えば、開発者が作成しているアプリケーションに関して、その開発者がホスト・プログラムにおける特定のフィーチャーまたは能力を必要とするときに、フィーチャーまたは能力を提供するホスト・プログラムを用いてアプリケーションをテストして、それらのホスト・プログラムをアプリケーションにリストする、ということは従来からの習慣である。
【００１４】
[0019]  また、従来は、ユーザーが、ワード・プロセッシング・プログラムなどのようなホスト・プログラムを有し、ユーザーが、特定の計画や目的のために追加の能力を望む場合、ユーザーは、ホスト・プログラムのメニュー、ツールバー、「リボン」、または他のユーザー・インターフェースの上でクリックを行う。これは、ダイアログ・ボックスをもたらし、それにより、ユーザーは、使用可能アプリケーションに関してのサーチ基準をマーケットプレイス・サーバーへ提出することができ、マーケットプレイス・サーバーは、そのサーチ基準に適合するアプリケーションのリストを返す。次に、ユーザーは、サーバーからダウンロードするアプリケーションを選択することができる。しかし、アプリケーションに関するマニフェストが、アプリケーションを動作させるために必要なホスト・プログラム、例えば、マイクロソフト（登録商標）Ｅｘｃｅｌ（登録商標）をリストしており、そのホスト・プログラムがユーザーのコンピューターで使用可能ではない場合、その選択されたアプリケーションは、クライアント・コンピューターのホスト・プログラムと適切にインターフェースしないであろう。
【００１５】
[0020]  この状況に対処するために、ここでのアプリケーション・マニフェストは、単に特定のホスト・プログラムを指定するのではなく、必要とされる機能を指定するように変更される。従って、特定の機能を提供するということをマニフェストまたは他のドキュメントに記述した新たなホスト・プログラムが使用可能になったとき、またはホスト・プログラムが機能を付加または更新するように（また、更には削除するように）変更または更新され、それに従ってプログラム・マニフェストが更新されたとき、開発者は、アプリケーション・マニフェストを更新する必要はない。むしろ、コンパチブルのホスト・プログラムのリストは、その機能を提供するホスト・プログラムが使用可能になったときに自動的に拡張され、ホスト・プログラムがその機能を提供しなくなったときに自動的に縮約される。更に、必ずしもということではなく好ましくは、ユーザーのコンピューターが、アプリケーションの必要とする機能を提供できるホスト・プログラムを有さない場合、そのアプリケーションは、使用可能なものとしてリストされない。また、必ずしもということではなく好ましくは、アプリケーションにおけるエンハンス機能を提供するオプションの機能をマニフェストにリストすることができる。ホスト・プログラムが１以上のオプションの機能を提供する場合、アプリケーションはエンハンス・モードで動作することができる。代替の実施形態では、必要な機能および／またはオプションの機能は、アプリケーション・マニフェストとは別に提供されるドキュメントに記述される。
【００１６】
[0021]  図２Ａは、クライアント・コンピューター１０Ａなどのようなクライアント・コンピューター１０の例示の動作環境を示す。クライアント・コンピューター１０は、オペレーティング・システム２１、ドキュメント・プロセッシング・プログラム２２、スプレッドシート・プログラム２３、描画プログラム２４、インターネット・ブラウザー２５などのような、１以上のホスト・プログラム２０を有する。コンピューター１０はまた、様々なホスト・プログラムにより提供される機能のリスト２６と、リストされているオペレーションを行うための電子マーケットプレイス・プログラムまたはモジュール２７とを有する。
【００１７】
[0022]  図２Ｂは、電子マーケットプレイス・サーバー１４Ａなどのようなサーバー１４の例示の動作環境を示す。サーバー１４は、オペレーティング・システム３１、電子マーケットプレイス・プログラム３２、およびリストされているオペレーションを行うためのプログラムまたはモジュール３３などのような、１以上のホスト・プログラム３０を有する。更に、サーバー１４は、ダウンロードさせることができる１以上のアプリケーション３４を有するか、またはそのアプリケーションへのアクセスを有する。
【００１８】
[0023]  図３は、クライアント・コンピューター１０とマーケットプレイス・サーバー１４との間での通信に関する例示の動作タイムライン３００を示す。ユーザーが、ワード・プロセッシング・プログラムなどのようなホスト・プログラムを使用しており、ユーザーが、特定の計画または目的のために、そのプログラムに提供されていない追加のフィーチャーまたは能力を望むものと仮定する。これは、ダイアログ・ボックスをもたらし、それにより、ユーザーは、使用可能なアプリケーションに関してのサーチ基準をマーケットプレイス・サーバーへ提出することができる。ダイアログ・ボックスはまた、他のオプションや推奨を含むことができ、それらは、「他者により最も使用されている」、「フィーチャーされたアプリケーション（featured applications）」、「他のユーザーが最高の評価を与えたアプリケーション」などであるが、これらには限定されない。電子マーケットプレイス・ウェブ・サイトへ行き、ログイン・ページを受け取った後、クライアント・コンピューターは、ログイン情報をサーバーへ送り、３０２、サーバーはそのログイン情報を確認する。ログイン・プロシージャーはオプションであるが、好ましい。
【００１９】
[0024]  次に、サーバーは、サーチ・ページ、またはドロップダウン・メニュー、または他のユーザー・インターフェース手段をクライアント・コンピューターへ送信し、３０４、それにより、ユーザーは、ユーザーの望むアプリケーションのタイプを示すことができ、そのアプリケーションのタイプは、「マップ」、「パッケージ・トラッキング」、「レストラン・ロケーター」などであるが、これらには限定されない。また、他のオプションや推奨が上述のダイアログ・ボックスに以前にリストされていない場合には、それをこの時点で提供することができ、他のオプションや推奨は、「推奨されるアプリケーション」、「最も頻繁にダウンロードされているアプリケーション」、「他のユーザーが最高の評価を与えたアプリケーション」などであるが、これらには限定されない。クライアント・コンピューターは、そのサーチ・ページをユーザーに対して表示し、ユーザーのサーチ・リクエストを受け入れる。次に、クライアント・コンピューターは、アプリケーション・サーチ・リクエストをサーバーへ送り、３０６、このアプリケーション・サーチ・リクエストは、必ずしもということではなく好ましくは、ホスト・プログラムによりサポートされる機能または能力のリストと共に送られる。
【００２０】
[0025]  次に、サーバーは、そのアプリケーションのリストをサーチして、サーチ・リクエストに適合するアプリケーションを識別する。サーバーはまた、それらの識別されたアプリケーションのそれぞれが必要とする機能と、ホスト・プログラムによりサポートされる機能とを比較するために、それらの識別されたアプリケーションのリストを検査する。次に、サーバーは、コンパチブルのアプリケーション、即ち、識別されたサポートされているアプリケーションのリストを作成して、クライアント・コンピューターへ送る、３０８。クライアント・コンピューターは、それらのコンパチブルのアプリケーションのリストを受け取り、３０８、ユーザーに対して表示し、次に、表示されたコンパチブルのアプリケーションのユーザーによる選択を受け入れる。ユーザーは、任意の好都合な様式で、望むアプリケーションを選択することができ、限定ではないが、その様式は、望むアプリケーションと関連するブロックにチェックを入れて、次に、「送信」、「購入」、「獲得」をクリックすることや、リストされたアプリケーション上でダブル・クリックすることや、何らかの他の適切なアクション（音声コマンドおよびジェスチャー・コマンドを含むが、限定ではない）によるものなどである。次に、クライアント・コンピューターは、ユーザーの選択した特定のアプリケーションを求めるリクエストをサーバーへ送る、３１０。
【００２１】
[0026]  要求されたアプリケーションおよびそれに対するマニフェストを、サーバーは応答して送り、クライアント・コンピューターは受け取って格納する、３１２。ここでは変更されているアプリケーション・マニフェストはまた、選択されたアプリケーションのサーバー上でのアドレスまたはアプリケーションを識別するために使用できる何らかの他の情報を、含むことができる。クライアント・コンピューターは、アプリケーションおよびそのマニフェスト受け取って格納する。
【００２２】
[0027]  代替の実施形態では、サーバー上のリストされたアプリケーションのアドレスまたは何らかの他の識別情報は、アプリケーション・リストと共に３０８で送ることができる。アドレスまたは他の情報は、例えば、アプリケーション・マニフェストの一部として含めることや、別のドキュメントとして送ることができる。次に、クライアント・コンピューターは、３１０において、要求したアプリケーションのアドレスまたは他の識別情報を送ることができる。
【００２３】
[0028]  ここで、例えば、工業予想や金融報告などのような特殊な報告を作成したいユーザーについて考えるが、ユーザーのコンピューターのホスト・プログラムは、例えば、加算、減算、平均化などのような特定の必要な数学演算を行わないので、そのホスト・プログラムがその報告の作成には都合が良くないと仮定する。ユーザーは、その報告を都合良く作成するアプリケーションを探すであろう。ユーザーは、そのようなアプリケーションを見つけるが、そのアプリケーションは、表の形でデータが入力されることを必要し、且つ／又は出力の報告またはデータを表の形で提供すると仮定する。ホスト・プログラムが表機能をサポートしない場合、そのアプリケーションはホスト・プログラムとコンパチブルではない。逆に、ホスト・プログラムが表機能を提供する場合、そのアプリケーションはそのホスト・プログラムとコンパチブルであり、ユーザーは望む報告を作成することができる。従って、表機能は、アプリケーションが基本モードで動作するための必要な機能と考えることができる。そのアプリケーションがダウンロードされると、ホスト・プログラムは、ダウンロードしたアプリケーションをそのホスト・プログラム内で自動的にアクティブ化し、特殊な報告の作成に必要とされるフィーチャーを提供する。更に、将来、ユーザーがホスト・プログラムを実行するとき、ホスト・プログラムは、そのダウンロードしたプログラムをそのホスト・プログラム内で自動的にアクティブ化する。従って、アプリケーションがダウンロードされた後、ユーザーは、アプリケーションを再びダウンロードせずとも、アプリケーションのフィーチャーをホスト・プログラム内で使用可能である。当然であるが、代替の実施形態において、アプリケーションの使用毎にユーザーに対して支払いを要求されることや、アプリケーションが所定回数の使用後に失効することや、アプリケーションが所定の日の後に失効することがあり得る。
【００２４】
[0029]  ここで、アプリケーションが、出力の報告またはデータを異なる色で提供する能力、例えば、或るデータは損失を示すために赤色とし、或るデータは利潤率を示すために黒色とし、或るデータは限界生産ラインを示すために黄色とするなどのようにする能力を有すると仮定する。このアプリケーションは、ホスト・プログラムが表における色をサポートしていなくとも動作するが、報告の外観は簡素で退屈なものとなり得、出力データは、マイナス符号やプラス符号、括弧、ブラケットなどのような、別の技術により示される。しかし、ホスト・プログラムが表における色をサポートする場合、対象者の注意を引く報告を提供するために、アプリケーションの高められた又はオプションの色フィーチャーがホスト・プログラムにおいて自動的に使用可能になる。
【００２５】
[0030]  図４Ａないし図４Ｃは、クライアント・コンピューター１０とマーケットプレイス・サーバー１４との動作を示す例としてのプロシージャー４００のフローチャートである。ここで開示されるプロシージャー４００の動作は、必ずしも何れかの特定の順で示されているものではなく、代替の順（１以上）での幾つかまたは全ての動作の実行が可能であり、それが企図されていることを、理解すべきである。動作は、記載および例示を容易にするために、説明される順に示されている。特許請求の範囲の範囲から離れずに、動作は、付加すること、省略すること、および／または同時に実行することができる。
【００２６】
[0031]  また、例示のプロシージャー４００は、任意の時に終了でき、全てを行う必要がないことを、理解すべきである。プロシージャー４００の幾つか又は全ての動作、および／または実質的に等価の動作は、ここで定めるように、コンピューター・ストレージ媒体に含まれるコンピューター可読命令の実行により、行うことができる。この説明および特許請求の範囲で用いる「コンピューター可読命令」という用語およびその異形は、ここでは、ルーチン、アプリケーション、アプリケーション・モジュール、プログラム・モジュール、プログラム、コンポーネント、データ構造、アルゴリズムなどを含むように、広く用いられる。コンピューター可読命令は、様々なシステム構成でインプリメントすることができ、システム構成は、シングル・プロセッサーまたはマルチプロセッサーのシステム、ミニコンピューター、メインフレーム・コンピューター、パーソナル・コンピューター、手持ち型計算デバイス、マイクロプロセッサー・ベースのプログラマブルの消費者向け電子製品、これらの組み合わせなどを含む。
【００２７】
[0032]  従って、ここで説明する論理演算は、（１）コンピューターによりインプリメントされる行動のシーケンス又は計算システムで実行されるプログラム・モジュールとして、および／または（２）相互接続された機械論理回路又は計算システム内の回路モジュールとしてインプリメントされることを、理解すべきである。インプリメンテーションは、計算システムの性能および他の要求に応じた選択事項である。従って、ここで説明される論理演算は、状態、動作、構造デバイス、行動、またはモジュールとして、様々に言及される。これらの動作、構造デバイス、行動、およびモジュールは、ソフトウェア、ファームウェア、特定用途向けデジタル論理、およびこれらのものの任意の組み合わせで、インプリメントすることができる。
【００２８】
[0033]  プロシージャー４００は動作４０１で開始し、ここにおいて、サーバー１４などにより提供することができる電子マーケットプレイス、またはソフトウェア開発者のライブラリー、または何らかの他のソースまたはプロバイダーは、様々なホスト・プログラムにより提供される機能をリストする。動作４０２において、アプリケーション開発者は、アプリケーションが少しでも動作するようにするためは何れの機能が必要であるか、及びより多くの及び／又は向上したフィーチャーをアプリケーションから得るためには何れの機能が望まれるか（オプションであるか）、ということを決定する。これは、アプリケーション開発者がアプリケーションを開発しているときに生じ得る。例えば、開発者は、作成されているアプリケーションがテキスト機能を必要とし得ること、および様々なフォント、フォント・サイズ、下線、太字などを選択できることが望ましいが必要要件ではないことを、決定することができる。即ち、テキスト機能は必要な機能となり、テキスト書式設定機能はオプションの機能となる。動作４０４において、開発者は、次に、アプリケーション・マニフェストに、必要な機能とオプションの機能とをリストする。動作４０６において、開発者は、開発したアプリケーションをマーケットプレイスへ提供する。電子マーケットプレイスは、次に、動作４０８において、そのアプリケーションを、様々なホスト・プログラムに対しての「ショップ」オプションにリストする。
【００２９】
[0034]  ユーザーが、或る計画や目的のために特定のフィーチャーまたは能力を望んでいるが、ユーザーの使用しているホスト・プログラムがそのフィーチャーを提供しない、という場合、ユーザーは、ホスト・プログラムのメニュー、ツールバー、「リボン」、または他のユーザー・インターフェース上でクリックを行い、そのフィーチャーを得るために電子マーケットプレイスへ行く、４１０。ユーザーはログイン情報を提供し、動作４１２において、ユーザーのコンピューターは、（好ましくは、ということでありオプションであるが）電子マーケットプレイスへログインして、その望まれるフィーチャー（１以上）を提供するアプリケーションのサーチを開始する。ユーザーのコンピューター（クライアントまたは「ホスト」コンピューター）は、電子マーケットプレイスへサーチ・リクエストおよび基準を送り、また、ホスト・プログラムによりサポートされている機能のリストを送る。
【００３０】
[0035]  電子マーケットプレイスのためのサーバー、例えば、限定ではないがウェブ・サーバーなどのようなサーバーは、次に、何れのアプリケーションがユーザーの要求に最も適合するかを決定し、それらのアプリケーションのリストをクライアント・コンピューターへ提供する、４０８。サーバーはまた、各アプリケーションに関するマニフェストを送るか、または各アプリケーションに関しての必要な機能のリストを送る、４０８。クライアント・コンピューターは、その情報を受け取り、４０９、次に、クライアント・コンピューターのホスト・プログラム（１以上）により提供される機能のリストを取得する。次に、サーバーは、何れのアプリケーションがホスト・プログラムによりサポートされるかを判定する、４１６、４１８、４２０、４２２。サーバーは、次に、アプリケーションのリストを返し、４３０、そのリストのアプリケーションは、そのリスト内の各アプリケーション対して、サーチ基準およびマニフェストまたは他の識別情報に適合するものである。サーバーはまた、価格情報、試用期間の情報なども送ることができる。ユーザーのコンピューターは、そのリストと、その情報が有る場合にはその情報とを受け入れ、４３５、そのリストと、何らかのそのような追加情報とをユーザーに示す。
【００３１】
[0036]  ユーザーは使用可能アプリケーションの選択を行い、ユーザーのコンピューターは、その選択を受け入れ、４４０、次に、そのアプリケーションのマニフェストに示されているアプリケーションのアドレスを指定することにより、またはそのアプリケーションに関する他の識別情報を用いて、そのアプリケーションをサーバーへ要求する、４４５。「購買」、「登録」、「取得」などのような必要なトランザクションも行われる。選択されたアプリケーションのマニフェストと、マニフェストおよび／またはそれに対する他のドキュメントとを、サーバーは提供し、４５０、ユーザーのコンピューターは受け取る、４５０。
【００３２】
[0037]  マニフェストが受信されると、クライアント・コンピューターは、ホスト・プログラムを即座に再開することができ、従って、ユーザーは、アプリケーションにおける望んでいたフィーチャーの使用を開始できる。また、ユーザーがそのアプリケーションを使用する権利を以前に取得している場合、ユーザーは、ホスト・プログラムを起動し、４５５、ホスト・プログラムは、望まれる機能の提供を即座に開始することができる。何れの場合も、ホスト・プログラムは、アプリケーションをアクティブ化する、４６０。アプリケーションは、次に、基本的フィーチャーをホスト・プログラムへ提供する、４７５。例えば、アプリケーションは、ホストが「表」機能を提供する場合には正しく動作することができるが、ホスト・プログラムが「カラー・チャート」機能または「テキスト書式設定」機能を提供しないかぎり、完全な視覚的効果を提供することができない。動作４８０において、ホスト・プログラムによりサポートされる、アプリケーションの何れかのオプションの機能がある場合、アプリケーションはまた、それらのサポートされているオプションの機能をホスト・プログラムへ提供する、４８５。ホスト・プログラムによりサポートされるオプションの機能が無い場合、アプリケーションは、基本的フィーチャー・モードで動作を継続する。
【００３３】
[0038]  マニフェストがユーザーのコンピューターへダウンロードされて格納されると、後の時点で、ユーザーがホスト・プログラムをアクティブ化したときに、４５５、ホスト・プログラムは、動作４１２〜４５０を反復する必要無しに、アプリケーションを直接に呼び出すことができる、４６０。
【００３４】
[0039]  
[0040]  幾つかのアプリケーションは無料であり得、従って、即座にダウンロードでき、幾つかのアプリケーションは販売用のみであり得、従って、「購買」または「取得」のトランザクションを行う必要があり得、幾つかのアプリケーションは、無料であり得るが、その製品を登録するためにユーザーが特定の情報、例えば、名前、場所、Ｅメール・アドレスなどを提供することを必要とする、ということは理解されるであろう。
【００３５】
[0041]  アプリケーションがホスト・プログラムの中で又はホスト・プログラムと関連して動作すると、アプリケーションは、限定機能モードで、即ち、特定のフィーチャーまたは能力がディスエーブルにされて、動作することになり得るが、これは、アプリケーションを完全に使用するためには幾つかの他の機能を必要とし得るからである。例えば、アプリケーションは、「表」機能が提供される場合には実行され得るが、「カラー・チャート」機能または「テキスト書式設定」機能が提供されるまで、プログラムの完全な視覚的効果を提供することができない。クライアント・コンピューターのホスト・プログラムからオプションの機能を得られない場合、アプリケーションは、機能低減モードでホスト・プログラムのサポートを継続する。しかし、ホスト・プログラムから１以上のオプションの機能を得られる場合、アプリケーションは、使用可能なオプションの機能のタイプに応じて、ホスト・プログラムがエンハンス・モードで動作することを可能とする。
【００３６】
[0042]  機能の組は、好適には、何らかの特殊性を用いて定められる。例えば、「表」機能は、表構造、行、列、見出し、およびソート・フィーチャーに対するサポートを提供すると定めることができる。別の例として、「テキスト書式設定」機能は、様々なフォント、フォント・サイズ、下線、太字などを選択する能力に対するサポートを提供すると定めることができる。別の例として、「カラー・チャート」機能は、様々な表スタイル、表の様々なエリアに対しての様々な色、軸情報（例えば、日付、価格、売れ行き、変更、受注残）などを選択する能力に対するサポートを提供すると定めることができる。
【００３７】
[0043]  特定のホスト・プログラム、または特定のホスト・プログラムの特定のバージョン、または特定のプラットフォームを指定することを必要とせずに、アプリケーションの開発者は、単に、必要とする機能およびオプションの機能を指定することができる。また、各ホスト・プログラムは、使用可能な機能のリストを提供する。従って、アプリケーションを取得または実行することが望まれるとき、そのアプリケーションのマニフェストが、クライアント・コンピューターのホスト・プログラム（１以上）の機能についての能力と比較される。一致があった場合、アプリケーションは、リストされ、ダウンロードされ、少なくとも基本モードで動作させることができる。また、アプリケーションのマニフェストがオプションの機能をリストしており、ホスト・プログラムが１以上のオプションの機能を提供する場合、アプリケーションはエンハンス・モードで動作させることができる。
【００３８】
[0044]  クライアント・コンピューター１０が２以上のホスト・プログラムを有すること又はそれらへのアクセスを有すること、および特定の機能が２以上のホスト・プログラムにより提供され得ることが、可能である。しかし、その機能に関するエンハンスメント（enhancements）を、１つのホスト・プログラムは提供するが、別のホスト・プログラムは提供しない、ということもあり得る。それらのエンハンスメントをアプリケーションが使用できる場合、好適には、エンハンスされた機能が用いられる。従って、機能に対してのオプションのエンハンスメントをリストすることができる。例えば、「表」機能は、指定され要求されるフィーチャーに加えて、使用可能な（ホスト・プログラム）または望まれる（ダウンロードされるアプリケーション）他のフィーチャーもリストすることができる。例として、「表」機能は、「ページ・セパレーター」（例えば、スプレッドシートを、ユーザーの指定した点で２以上のページに分ける能力）、または「ページ印刷順」（例えば、多ページ・スプレッドシートのページを、上から下へ、その後に左から右へと印刷するか、または左から右へ、その後に上から下へと印刷するかを、指定する能力）をリストすることができる。従って、マニフェストは、「表：ページ・セパレーター」、または「表：ページ印刷順」、または「表：ページ・セパレーター；ページ印刷順」を指定することができる。
【００３９】
[0045]  また、特定の機能が２以上のホスト・プログラムにより提供され得る場合には、１つのホスト・プログラムにより提供される機能が、或る点、例えば、よりロバストであることや動作が速いことなどの点で、より望ましいことがあり、また、別のホスト・プログラムにより提供される機能が、或る点、例えば、過剰にプロセッサー・メモリや時間を使うなどの点で、あまり望ましくないことがある。従って、機能は、好適なホスト・プログラムを指定することもでき、それにより、そのアプリケーションに関して最高の性能を得ることができる。例えば、マニフェストは、「表：Ｅｘｃｅｌ（登録商標）」を指定することができる。従って、２つのホスト・プログラムが表機能を提供できる場合、表機能を提供するためにＥｘｃｅｌ（登録商標）が選択される。しかし、表機能を提供できるホスト・プログラムが有る場合、クライアント・コンピューターでホスト・プログラムとしてＥｘｃｅｌ（登録商標）が使用できないとしても、ダウンロードされたプログラムは動作することができる。
【００４０】
[0046]  また、機能は、それが特定のホスト・プログラムにより提供されねばならないことを、指定することができる。例えば、マニフェストは、「表：必須：Ｅｘｃｅｌ（登録商標）」と指定することができる。しかし、このオプションは好適というほどではない。なぜなら、このオプションは、アプリケーションを、知られたホスト・プログラムに限定し、また、マニフェストを後に更新しない限り、将来のホスト・プログラムを提供しないからである。
【００４１】
[0047]  また、機能は、たとえそれが必要な機能であっても、特定のホスト・プログラムからのその機能を使用しないことを、指定することができる。例えば、マニフェストは、「表：ＮＮＮではない（Not NNN）」（「ＮＮＮ」は、その機能を提供するために使用すべきではないプログラムの名前または他のインジケーションである）と指定することができる。その場合において、「ＮＮＮ」が表機能を提供できる唯一のホスト・プログラムである場合、そのアプリケーションは、ダウンロード可能なアプリケーションとして現れない。
【００４２】
[0048]  同様に、機能はまた、それが特定のプラットフォームのホスト・プログラムにより提供されねばならないことを、指定することができる。例えば、マニフェストは、「表：必要なプラットフォーム：Ｋｉｎｄｌｅ（登録商標）」と指定することができる。しかし、このオプションは好適というほどではない。なぜなら、このオプションは、アプリケーションを、知られたプラットフォームに限定し、また、マニフェストを後に更新しない限り、将来のプラットフォームを提供しないからである。
【００４３】
[0049]  また、機能は、ホスト・プログラムの特定のバージョンと関連付けすることができる。例えば、マニフェストは、「表：ＹＹＹｖ２．５」と指定することができ、ここにおいて、「ＹＹＹ」はホスト・プログラムの名前である。このオプションは好適というほどではない。なぜなら、このオプションは、アプリケーションを、そのホスト・プログラムのそのバージョンに限定し、また、マニフェストを後に更新しない限り、プログラムの将来のバージョンを提供しないからである。
【００４４】
[0050]  また、機能は、ホスト・プログラムの特定のバージョン又はその後のものと関連付けすることができる。例えば、マニフェストは、「表：ＹＹＹｖ２．５＋」と指定することができ、ここにおいて、「ＹＹＹ」はホスト・プログラムの名前であり、「＋」は、そのバージョン２．５またはその後のものは働く、ということを示す。逆に、マニフェストは、「表：ＹＹＹｖ２．５−」と指定することができ、ここにおいて、「ＹＹＹ」はホスト・プログラムの名前であり、「−」は、そのバージョン２．５またはその前のものは働く、ということを示す。しかし、このオプションは好適というほどではない。なぜなら、このオプションは、アプリケーションを、そのホスト・プログラムのそのバージョン（又はそれより前のもの又は後のもの）に限定するからである。しかし、レガシー・デバイスやレガシー・プログラムを意図したアプリケーションを提供することが望まれるときなどのような、特定の場合には、機能を、特定のプラットフォームや、ホスト・プログラムの以前のバージョンと関連付けすることが、望ましいであろう。
【００４５】
[0051]  代替の実施形態では、クライアント・コンピューター１０は、サーバー１４からダウンロードできるアプリケーションのリストをクライアント・コンピューター１０が要求するときに、クライアント・コンピューターで使用可能なホスト・プログラムのリストを、サーバー１４へ送る。サーバー１４は、次に、クライアント・コンピューターのホスト・プログラムにより提供される機能と、各アプリケーションに必要な機能とを比較し、クライアント・コンピューターで適切に動作するアプリケーションを決定する。サーバー１４は、次に、それらの使用可能なアプリケーションのリストをクライアント・コンピューター１０へ送り、クライアント・コンピューターは、それらの使用可能なアプリケーションのリストを、選択してダウンロードするために、ユーザーに対して表示する。
【００４６】
[0052]  図５は、サーバー１４またはクライアント・コンピューター１０に関してここで説明したプロシージャーを実行できるデバイスのための、例としてのコンピューター・アーキテクチャー５００を示す。即ち、コンピューター・アーキテクチャー５００は、サーバー・コンピューター、モバイル・フォン、ＰＤＡ、スマート・フォン、デスクトップ・コンピューター、ノートブック・コンピューター、タブレット・コンピューター、および／またはラップトップ・コンピューターについての例としてのアーキテクチャーを示す。コンピューター・アーキテクチャー５００は、ここで示したソフトウェア・オペレーションの何れもの態様を実行するために用いることができる。
【００４７】
[0053]  例示のコンピューター・アーキテクチャー５００は、中央処理装置５０２（「ＣＰＵ」）と、ランダム・アクセス・メモリ５０６（「ＲＡＭ」）およびリード・オンリー・メモリ（「ＲＯＭ」）５０８を含むシステム・メモリ５０４と、メモリ５０４をＣＰＵ５０２へ結合するシステム・バス５１０とを含む。スタートアップの間などに、コンピューター・アーキテクチャー５００内のエレメント間での情報の転送を援助する基本ルーチンを含む基本入出力システムは、ＲＯＭ５０８に格納される。コンピューター・アーキテクチャー５００は、更に、オペレーティング・システム５１４および１以上のホスト・プログラム５２０を格納するための大容量記憶装置５１２と、１以上のアプリケーション・プログラム５２２と、１以上の他のプログラム５２４とを含む。
【００４８】
[0054]  大容量記憶装置５１２は、バス５１０と接続された大容量記憶コントローラー（示さず）を介してＣＰＵ５０２と接続される。大容量記憶装置５１２と、それと関連するコンピューター可読媒体とは、コンピューター・アーキテクチャー５００の不揮発性ストレージを提供する。ここに含まれるコンピューター可読媒体の説明では、ハード・ディスクやＣＤ−ＲＯＭドライブなどのような大容量記憶装置を引き合いに出すが、コンピューター可読媒体は、コンピューター・アーキテクチャー５００によりアクセスできる任意の使用可能なコンピューター・ストレージ媒体や通信媒体とすることができる、ということを当業者は理解すべきである。
【００４９】
[0055]  ダウンロード可能なソフトウェア・アプリケーションのリスト、各ソフトウェア・アプリケーションの必要な機能のリスト、ダウンロード可能なソフトウェア・アプリケーション、および各ソフトウェア・アプリケーションのオプションの機能は、それらのアイテムを大容量記憶装置５１２から取得して、次にそれらのアイテムをネットワーク・インターフェース・ユニット５１６を介して送るプロセッサー５０２により、また、大容量記憶装置５１２に、それらのアイテムを、プロセッサー５０２へではなく、ネットワーク・インターフェース・ユニット５１６へ直接に送らせるようにすることにより、または、双方の組み合わせにより、送ることができ、それにより、幾つかのアイテムは大容量記憶装置５１２からネットワーク・インターフェース・ユニット５１６へ直接に送られ、他のアイテムはプロセッサー５０２からネットワーク・インターフェース・ユニット５１６へ送られる。
【００５０】
[0056]  メモリ５０４と大容量記憶装置５１２とは好適には分離したコンポーネントであるが、メモリ５０４は、大容量記憶装置５１２に含まれることもできる。メモリ５０４と大容量記憶装置５１２とは、メモリ・デバイスとしてまとめて考慮し、そのように呼ぶことができる。
【００５１】
[0057]  他のハードウェア・コンポーネント５２６も存在し得る。例えば、コンポーネント５２６は、例えば、磁気計、環境光センサー、近接センサー、加速度計、ジャイロスコープ、グローバル・ポジショニング・システム（ＧＰＳ）・センサー、マイクロフォンまたは他のオーディオ入力デバイス、カメラなどのような、センサー・コンポーネントであり得る。実際、ユーザーの求めているアプリケーションは、他のハードウェア・コンポーネントのうちの１つと共に使用するものであり得る。
【００５２】
[0058]  通信媒体は、コンピューター可読命令、データ構造、プログラム・モジュール、または他のデータを、搬送波や他のトランスポート機構などのような変調されたデータ信号に含むものであり、任意の配送媒体を含む。「変調されたデータ信号」という用語は、信号内において情報をエンコードするように、その信号の特性のうちの１以上の特性が変更または設定された信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接有線接続などのような有線媒体と、音響、ＲＦ、赤外線、および他のワイヤレス媒体などのようなワイヤレス媒体とを含む。上記のものの任意の組み合わせも、コンピューター可読媒体の範囲内に含まれるべきである。
【００５３】
[0059]  限定ではなく例として、コンピューター・ストレージ媒体は、揮発性および不揮発性、および取り外し可能および取り外し不可能である媒体を含み、この媒体は、コンピューター可読命令、データ構造、プログラム・モジュール、または他のデータなどのような情報を格納するための任意の方法または技術によりインプリメントされる。例えば、コンピューター・ストレージ媒体は、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリまたは他のソリッド・ステート・メモリ技術、ＣＤ−ＲＯＭ、デジタル・バーサタイル・ディスク（「ＤＶＤ」）、ＨＤ−ＤＶＤ、ＢＬＵ−ＲＡＹ、または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または望まれる情報を格納するために使用でき且つコンピューター・アーキテクチャー５００によりアクセスできる任意の他の媒体を含むが、これらには限定されない。特許請求の範囲のために、「コンピューター・ストレージ媒体」という句と、その異形とは、波、信号、及び／又は他の一時的な及び／又は無形の通信媒体自体は含まない。
【００５４】
[0060]  様々な実施形態に従うと、コンピューター・アーキテクチャー５００は、ネットワーク１２などのようなネットワークを通じてのリモートのコンピューター及び／又はサーバーへの論理接続を用いて、ネットワーク化した環境で動作することができる。コンピューター・アーキテクチャー５００は、バス５１０と接続されたネットワーク・インターフェース・ユニット５１６を通じて、ネットワーク１２と接続することができる。ネットワーク・インターフェース・ユニット５１６はまた、他のタイプのネットワークやリモート・コンピューター・システムへ接続するために用いることができる、ということを理解すべきである。コンピューター・アーキテクチャー５００はまた、多数の他のデバイスから入力を受け取って処理するための入力／出力コントローラー５１８を含むことができ、他のデバイスは、キーボード、マウス、タッチスクリーン、タッチパッド、キーパッド、または電子スタイラスを含む（図５には示していない）。同様に、入力／出力コントローラー５１８は、ディスプレイ・スクリーン、プリンター、または他のタイプの出力デバイス（これらも図５には示していない）へ、出力を提供することができる。
【００５５】
[0061]  ここで説明したソフトウェア・コンポーネントは、ＣＰＵ５０２へロードされて実行されたときに、ＣＰＵ５０２およびコンピューター・アーキテクチャー５００全体を、汎用計算システムから、ここで示した機能を行い易くするようにカスタム化された特定用途向け計算システムへと変換し得ることを、理解すべきである。ＣＰＵ５０２は、個々に又は集合して任意の数の状態をとることができる任意の数のトランジスターや他の個別の回路エレメントから構成することができる。より特定的には、ＣＰＵ５０２は、ここで開示したソフトウェア・モジュール内に含まれる実行可能命令に応じて、有限状態マシンとして動作することができる。ＣＰＵ５０２は、１つのプロセッサーとすることも、複数のプロセッサーとすることもできる。それらのコンピューター実行可能命令は、どのようにＣＰＵ５０２が状態間を遷移するかを指定することにより、ＣＰＵ５０２を変換することができ、それにより、ＣＰＵ５０２を構成するトランジスターや他の個別のハードウェア・エレメントを変換する。
【００５６】
[0062]  また、ここで示したソフトウェア・モジュールをエンコードすることにより、ここで示したコンピューター可読媒体の物理構造を変換することもできる。物理構造の特定の変換は、この説明の様々なインプリメンテーションにおける様々な要因に応じたものとなり得る。限定ではないが、そのような要因の例は、コンピューター可読媒体をインプリメントするために用いられる技術や、コンピューター可読媒体が一次ストレージとして特徴付けられるか二次ストレージとして特徴付けられるかなどである。例えば、コンピューター可読媒体が半導体ベースのメモリとしてインプリメントされる場合、ここで開示されたソフトウェアは、半導体メモリの物理状態を変換することによりコンピューター可読媒体上にエンコードすることができる。例えば、ソフトウェアは、半導体メモリを構成するトランジスター、キャパシター、または他の個別の回路エレメントの状態を変換することができる。ソフトウェアはまた、そのようなコンポーネントの物理状態を、そのようなコンポーネントにデータを格納するために、変換することができる。
【００５７】
[0063]  別の例として、ここで開示したコンピューター可読媒体は、磁気的または光学的な技術を用いてインプリメントすることができる。そのようなインプリメンテーションでは、ここで示したソフトウェアは、そのソフトウェアが磁気媒体または光媒体の中へエンコードされるときに、磁気媒体または光媒体の物理状態を変換することができる。これらの変換は、所与の磁気媒体内の特定の位置の磁気特性を変えることを、含むことができる。これらの変換はまた、所与の光媒体内の特定の位置の光学特性を変えるために、それら特定の位置の物理的なフィーチャーまたは特性を変えることを、含むことができる。上記の例は、単に、この説明を容易にするために提供されたものであり、この記載の範囲および精神から離れずに、物理媒体の他の変換も可能である。
【００５８】
[0064]  上記のことを考慮すると、ここで示したソフトウェア・コンポーネントを格納および実行するために、コンピューター・アーキテクチャーにおいて多くのタイプの物理的変換が行われることを、理解すべきである。また、コンピューター・アーキテクチャーは、手持ち型コンピューター、埋め込み型コンピューター・システム、パーソナル・デジタル・アシスタント、および当業者には知られている他のタイプの計算デバイスを含めての、他のタイプの計算デバイスも含み得ることを、理解すべきである。また、ここで示したコンポーネントの全てを含まないことが有り得ることや、ここで明示していない他のコンポーネントを含み得ることや、ここで示したアーキテクチャーとは全く異なるアーキテクチャーを用い得ることが、予期される。
【００５９】
[0065]  上記の主題事項は、単なる例として提供したものであり、限定するものと解釈すべきではない。ここで示し説明した例としての実施形態および応用に従わずに、ここで説明した主題事項に対して様々な変更や改変を行うことができる。
【００６０】
[0066]  ここで示した主題事項は、コンピューターの構造的特徴、方法論的および変革的な行為、特定の計算用の機械、およびコンピューター可読媒体に特有の言語で説明したが、特許請求の範囲は、ここで説明した特定の特徴、行為、または媒体に必ずしも限定されないことは、理解される。むしろ、特定の特徴、行為、および媒体は、特許請求の範囲を実施するときの例示の形態として開示されている。
【図１】
2015528943.tif 000003
【図２Ａ】
2015528943.tif 000004
【図２Ｂ】
2015528943.tif 000005
【図３】
2015528943.tif 000006
【図４Ａ】
2015528943.tif 000007
【図４Ｂ】
2015528943.tif 000008
【図４Ｃ】
2015528943.tif 000009
【図５】
2015528943.tif 000010
【国際調査報告】
2015528943.tif 000011
2015528943.tif 000012