(57)【特許請求の範囲】
【請求項１】
プロセッサにおいて、コンポーネント化アプリケーションのテキスト・リスト定義を呼び出す要求を受け取ることであって、前記コンポーネント化アプリケーションの前記テキスト・リスト定義は、セットとして実行されるユーザにより指定される異なる列挙された独立したアプリケーション・サブコンポーネントの集合を識別する、受け取ることと、
ユーザ入力の文脈（コンテキスト）を構文解析し、前記コンポーネント化アプリケーションの前記テキスト・リスト定義内の前記異なる列挙された独立したアプリケーション・サブコンポーネントの各々と関連付けられた異なるユーザ・インターフェース・コンポーネントを有するコンポーネント化ユーザ・インターフェースを作成することと、
前記作成された前記コンポーネント化ユーザ・インターフェースによるユーザ入力に応答して、前記コンポーネント化アプリケーションの前記テキスト・リスト定義内の前記異なる列挙された独立アプリケーション・サブコンポーネントに独立してアクセスすることと、
を含み、
前記ユーザ・インターフェースを作成することがアプリケーションを用いて実施されるユーザとの対話を選択的にキャプチャしてアーカイブする選択可能な対話記録フィーチャを含み、前記アクセスすることが前記独立アプリケーション・サブコンポーネントを有するアプリケーションを実行すること、
を含む方法。
【請求項２】
前記コンポーネント化アプリケーションの前記テキスト・リスト定義内の前記異なる列挙された独立アプリケーション・サブコンポーネントの各々と関連付けられた前記異なるユーザ・インターフェース・コンポーネントを有する前記コンポーネント化ユーザ・インターフェースを作成することは、
前記異なる列挙された独立アプリケーション・サブコンポーネントの各々の利用可能なサブコンポーネント・インターフェース・フィーチャを判断することと、
各々が前記異なる列挙された独立アプリケーション・サブコンポーネントの１つの前記判断された利用可能なサブコンポーネント・インターフェース・フィーチャへのインターフェースを提供するユーザ・インターフェースのセットを作成することと、
コンポーネント化されたグラフィカル・インターフェース・ディスプレイ・コンポーネント内に前記ユーザ・インターフェース・コンポーネントの作成されたセットを編成することと、
前記ユーザ・インターフェース・コンポーネントの編成され作成されたセットを含む前記コンポーネント化グラフィカル・インターフェース・ディスプレイ・コンポーネントを表示することと、
を含む、請求項１に記載の方法。
【請求項３】
前記コンポーネント化アプリケーションの前記テキスト・リスト定義内の前記異なる列挙された独立アプリケーション・サブコンポーネントの各々と関連付けられた前記異なるユーザ・インターフェース・コンポーネントを有する前記コンポーネント化ユーザ・インターフェースを作成することは、
前記コンポーネント化アプリケーションの前記テキスト・リスト定義内の前記異なる列挙された独立アプリケーション・サブコンポーネントの各々の識別子の位置に基づいて、前記コンポーネント化アプリケーションの前記テキスト・リスト定義内の前記異なる列挙された独立アプリケーション・サブコンポーネントの各々と関連付けられた前記異なるユーザ・インターフェース・コンポーネントのグラフィカル・ユーザ・インターフェース・レイアウト位置を優先順位付けすること、
を含む、請求項１に記載の方法。
【請求項４】
前記コンポーネント化アプリケーションの前記テキスト・リスト定義は、前記異なる列挙された独立アプリケーション・サブコンポーネントの少なくとも２つの呼び出しのシーケンスの表示を含み、第１の独立アプリケーション・サブコンポーネントは、第２の独立アプリケーション・サブコンポーネントを呼び出すように指定され、
前記コンポーネント化アプリケーションの前記テキスト・リスト定義内の前記異なる列挙された独立アプリケーション・サブコンポーネントの各々と関連付けられた前記異なるユーザ・インターフェース・コンポーネントを有する前記コンポーネント化ユーザ・インターフェースを作成することは、
前記第２の独立アプリケーション・サブコンポーネントを呼び出すように指定された前記呼び出しのシーケンス内に示される前記第１の独立アプリケーション・サブコンポーネントと関連付けられた第１のユーザ・インターフェース・コンポーネントを含む第１のコンポーネント化ユーザ・インターフェースを作成することと、
前記第１のユーザ・インターフェース・コンポーネントとのユーザ対話の完了を検出することに応答して、前記呼び出しのシーケンス内に識別される前記第２の独立アプリケーション・サブコンポーネントと関連付けられた第２のユーザ・インターフェース・コンポーネントを含む第２のコンポーネント化ユーザ・インターフェースを作成することと、
を含む、請求項１に記載の方法。
【請求項５】
独立して実行可能であり、別個のアプリケーション・フィーチャを提供する利用可能な独立アプリケーション・サブコンポーネントのリスティングを前記ユーザに提供することと、
前記列挙された利用可能な独立アプリケーション・サブコンポーネントのサブセットのユーザ選択を受け取ることと、
前記列挙された利用可能な独立アプリケーション・サブコンポーネントの前記選択されたサブセットのテキスト識別子を含む前記コンポーネント化アプリケーションの前記テキスト・リスト定義を作成することと、
前記コンポーネント化アプリケーションの前記作成されたテキスト・リスト定義を格納することと、
を含む、前記コンポーネント化アプリケーションの前記テキスト・リスト定義を定義することをさらに含む、請求項１に記載の方法。
【請求項６】
前記コンポーネント化アプリケーションの前記テキスト・リスト定義内に前記ユーザにより指定される前記異なる列挙される独立アプリケーション・サブコンポーネントの各々のデバイス固有実装をダウンロードすることと、
ローカル・ストレージ内に前記異なる列挙される独立アプリケーション・サブコンポーネントの各々の前記ダウンロードされたデバイス固有実装を格納することと、
をさらに含み、
前記コンポーネント化アプリケーションの前記テキスト・リスト定義内の前記異なる列挙された独立アプリケーション・サブコンポーネントの各々と関連付けられた前記それぞれの異なるユーザ・インターフェース・コンポーネントと関連して受け取った前記ユーザ入力に基づいて、前記異なる列挙された独立アプリケーション・サブコンポーネントに独立してアクセスすることは、
前記ローカル・ストレージ内の前記異なる列挙された独立アプリケーション・サブコンポーネントの各々の前記ダウンロードされたデバイス固有実装に独立してアクセスすることを含む、請求項１に記載の方法。
【請求項７】
分散型ネットワーク内の少なくとも１つの遠隔ストレージ場所内で、前記コンポーネント化アプリケーションの前記テキスト・リスト定義内の前記ユーザにより指定される前記異なる列挙された独立アプリケーション・サブコンポーネントの各々を識別することをさらに含み、
前記コンポーネント化アプリケーションの前記テキスト・リスト定義内の前記異なる列挙された独立アプリケーション・サブコンポーネントの各々と関連付けられた前記それぞれの異なるユーザ・インターフェース・コンポーネントと関連して受け取った前記ユーザ入力に基づいて、前記異なる列挙された独立アプリケーション・サブコンポーネントに独立してアクセスすることは、
前記分散型ネットワーク内の前記少なくとも１つの遠隔ストレージ場所内の前記異なる列挙された独立アプリケーション・サブコンポーネントに独立してアクセスすることを含む、請求項１に記載の方法。
【請求項８】
システムであって、
メモリと、
プロセッサであって、
前記メモリ内に格納される、セットとして実行されるユーザにより指定される異なる列挙された独立アプリケーション・サブコンポーネントの集合を識別するコンポーネント化アプリケーションのテキスト・リスト定義を呼び出す要求を受け取り、
ユーザ入力の文脈（コンテキスト）を構文解析し、前記コンポーネント化アプリケーションの前記テキスト・リスト定義内の前記異なる列挙された独立したアプリケーション・サブコンポーネントの各々と関連付けられた異なるユーザ・インターフェース・コンポーネントを有するコンポーネント化ユーザ・インターフェースを作成し、
前記作成された前記コンポーネント化ユーザ・インターフェースによるユーザ入力に応答して、前記コンポーネント化アプリケーションの前記テキスト・リスト定義内の前記異なる列挙された独立アプリケーション・サブコンポーネントに独立してアクセスし、
前記ユーザ・インターフェースを作成することがアプリケーションを用いて実施されるユーザとの対話を選択的にキャプチャしてアーカイブする選択可能な対話記録フィーチャを含み、前記アクセスすることが前記独立アプリケーション・サブコンポーネントを有するアプリケーションを実行する、
ようにプログラムされたプロセッサと、
を含む、システム。
【請求項９】
表示装置をさらに含み、前記コンポーネント化アプリケーションの前記テキスト・リスト定義内の前記異なる列挙された独立アプリケーション・サブコンポーネントの各々と関連付けられた前記異なるユーザ・インターフェース・コンポーネントを有する前記コンポーネント化ユーザ・インターフェースを作成するようにプログラムされる際、前記プロセッサは、
前記異なる列挙された独立アプリケーション・サブコンポーネントの各々の利用可能なサブコンポーネント・インターフェース・フィーチャを判断し、
各々が前記異なる列挙された独立アプリケーション・サブコンポーネントの１つの前記判断された利用可能なサブコンポーネント・インターフェース・フィーチャへのインターフェースを提供する、ユーザ・インターフェース・コンポーネントのセットを作成し、
コンポーネント化グラフィカル・インターフェース・ディスプレイ・コンポーネント内に前記ユーザ・インターフェース・コンポーネントの作成されたセットを編成し、
前記表示装置上に、前記ユーザ・インターフェース・コンポーネントの編成され作成されたセットを含む前記コンポーネント化グラフィカル・インターフェース・ディスプレイ・コンポーネントを表示する、
ようにプログラムされる、請求項８に記載のシステム。
【請求項１０】
前記コンポーネント化アプリケーションの前記テキスト・リスト定義内の前記異なる列挙された独立アプリケーション・サブコンポーネントの各々と関連付けられた前記異なるユーザ・インターフェース・コンポーネントを有する前記コンポーネント化ユーザ・インターフェースを作成するようにプログラムされる際、前記プロセッサは、
前記コンポーネント化アプリケーションの前記テキスト・リスト定義内の前記異なる列挙された独立アプリケーション・サブコンポーネントの各々の識別子の位置に基づいて、前記コンポーネント化アプリケーションの前記テキスト・リスト定義内の前記異なる列挙された独立アプリケーション・サブコンポーネントの各々と関連付けられた前記異なるユーザ・インターフェース・コンポーネントのグラフィカル・ユーザ・インターフェースのレイアウト位置を優先順位付けする、
ようにプログラムされる、請求項８に記載のシステム。
【請求項１１】
前記コンポーネント化アプリケーションの前記テキスト・リスト定義は、前記異なる列挙された独立アプリケーション・サブコンポーネントの少なくとも２つの呼び出しのシーケンスの表示を含み、第１の独立アプリケーション・サブコンポーネントは、第２の独立アプリケーション・サブコンポーネントを呼び出すように指定され、
前記コンポーネント化アプリケーションの前記テキスト・リスト定義内の前記異なる列挙された独立アプリケーション・サブコンポーネントの各々と関連付けられた前記異なるユーザ・インターフェース・コンポーネントを有する前記コンポーネント化ユーザ・インターフェースを作成するようにプログラムされる際、前記プロセッサは、
前記第２の独立アプリケーション・サブコンポーネントを呼び出すように指定された前記呼び出しのシーケンス内に示される前記第１の独立アプリケーション・サブコンポーネントと関連付けられた第１のユーザ・インターフェース・コンポーネントを含む第１のコンポーネント化ユーザ・インターフェースを作成し、
前記第１のユーザ・インターフェース・コンポーネントとのユーザ対話の完了を検出することに応答して、前記呼び出しのシーケンス内に識別される前記第２の独立アプリケーション・サブコンポーネントと関連付けられた第２のユーザ・インターフェース・コンポーネントを含む第２のコンポーネント化ユーザ・インターフェースを作成する、
ようにプログラムされる、請求項８に記載のシステム。
【請求項１２】
前記プロセッサは、
独立して実行可能であり、別個のアプリケーション・フィーチャを提供する利用可能な独立アプリケーション・サブコンポーネントのリスティングを前記ユーザに提供し、
前記列挙された利用可能な独立アプリケーション・サブコンポーネントのサブセットのユーザ選択を受け取り、
前記列挙された利用可能な独立アプリケーション・サブコンポーネントの前記選択されたサブセットのテキスト識別子を含む前記コンポーネント化アプリケーションの前記テキスト・リスト定義を作成し、
前記コンポーネント化アプリケーションの前記作成されたテキスト・リスト定義を格納する、
ようにプログラムされることを含む、前記コンポーネント化アプリケーションの前記テキスト・リスト定義を定義するようにさらにプログラムされる、請求項８に記載のシステム。
【請求項１３】
前記プロセッサは、ローカル実行のための前記異なる列挙された独立アプリケーション・サブコンポーネントのダウンロードと前記異なる列挙された独立アプリケーション・サブコンポーネントの遠隔バージョンの実行のどちらかを決定するようにさらにプログラムされ、
ローカル実行のための前記異なる列挙された独立アプリケーション・サブコンポーネントのダウンロードを決定することに応答して、前記プロセッサは、
前記コンポーネント化アプリケーションの前記テキスト・リスト定義内に前記ユーザにより指定される前記異なる列挙される独立アプリケーション・サブコンポーネントの各々のデバイス固有実装をダウンロードし、
ローカル・ストレージ内に前記異なる列挙される独立アプリケーション・サブコンポーネントの各々の前記ダウンロードされたデバイス固有実装を格納する、
ようにプログラムされ、
前記コンポーネント化アプリケーションの前記テキスト・リスト定義内の前記異なる列挙された独立アプリケーション・サブコンポーネントの各々と関連付けられた前記それぞれの異なるユーザ・インターフェース・コンポーネントと関連して受け取った前記ユーザ入力に基づいて、前記異なる列挙された独立アプリケーション・サブコンポーネントに独立してアクセスするようにプログラムされる際、前記プロセッサは、
前記ローカル・ストレージ内の前記異なる列挙された独立アプリケーション・サブコンポーネントの各々の前記ダウンロードされたデバイス固有実装に独立してアクセスするようにプログラムされ、
前記ローカル実行のための前記異なる列挙された独立アプリケーション・サブコンポーネントをダウンロードしないと決定することに応答して、前記プロセッサは、
分散型ネットワーク内の少なくとも１つの遠隔ストレージ場所内で、前記コンポーネント化アプリケーションの前記テキスト・リスト定義内の前記ユーザにより指定される前記異なる列挙された独立アプリケーション・サブコンポーネントの各々を識別するようにプログラムされ、
前記コンポーネント化アプリケーションの前記テキスト・リスト定義内の前記異なる列挙された独立アプリケーション・サブコンポーネントの各々と関連付けられた前記それぞれの異なるユーザ・インターフェース・コンポーネントと関連して受け取った前記ユーザ入力に基づいて、前記異なる列挙された独立アプリケーション・サブコンポーネントに独立してアクセスするようにプログラムされる際、前記プロセッサは、
前記分散型ネットワーク内の前記少なくとも１つの遠隔ストレージ場所内の前記異なる列挙された独立アプリケーション・サブコンポーネントに独立してアクセスするようにプログラムされる、請求項８に記載のシステム。
【請求項１４】
請求項１〜７の何れか１項に記載の方法の各ステップをコンピュータに実行させる、コンピュータ・プログラム。
【請求項１５】
請求項１４に記載の前記コンピュータ・プログラムを、コンピュータ可読ストレージ媒体に記録した、ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピューティング・デバイスにより実行することができるアプリケーションに関する。より特定的には、本発明は、カスタマイズされたレディートゥゴー・コンポーネント化アプリケーション（ready-to-go componentized application）の定義に関する。
【背景技術】
【０００２】
コンピュータ・ベースのアプリケーションは、コンピューティング・デバイスのユーザが、アクティビティを実施するためにアプリケーションと対話することを可能にする。アクティビティは、例えば、仕事関連のアクティビティ又は娯楽関連のアクティビティを含むことができ、アプリケーションは、それぞれのアプリケーションを開発するアプリケーション開発者により決定され、提供されるフィーチャ（feature）のセットを提供することができる。フィーチャのセットを有する例示的アプリケーションは、印刷、変更追跡（change tracking）、変更表示フィーチャ、マクロ、及び他のフィーチャを含む仕事関連アクティビティをサポートするために提供されるワード・プロセッシング・アプリケーションを含むことができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
カスタマイズされたレディートゥゴー・コンポーネント化アプリケーションの定義に関する。
【課題を解決するための手段】
【０００４】
方法が、プロセッサにおいて、コンポーネント化アプリケーションのテキスト・リスト定義を呼び出す要求を受け取ることであって、コンポーネント化アプリケーションのテキスト・リスト定義は、セットとして実行されるユーザにより指定される異なる列挙された独立したアプリケーション・サブコンポーネントの集合を識別する、受け取ることと、コンポーネント化アプリケーションのテキスト・リスト定義内の異なる列挙された独立アプリケーション・サブコンポーネントの各々と関連付けられた異なるユーザ・インターフェース・コンポーネントを有するコンポーネント化ユーザ・インターフェースを作成することと、コンポーネント化アプリケーションのテキスト・リスト定義内の異なる列挙された独立アプリケーション・サブコンポーネントの各々と関連付けられたそれぞれの異なるユーザ・インターフェース・コンポーネントと関連して受け取ったユーザ入力に基づいて、異なる列挙された独立アプリケーション・サブコンポーネントに独立してアクセスすることを含む。
【０００５】
システムが、メモリと、プロセッサであって、セットとして実行されるユーザにより指定される異なる列挙された独立アプリケーション・サブコンポーネントの集合を識別する、メモリ内に格納されるコンポーネント化アプリケーションのテキスト・リスト定義を呼び出す要求を受け取り、コンポーネント化アプリケーションのテキスト・リスト定義内の異なる列挙された独立アプリケーション・サブコンポーネントの各々と関連付けられた異なるユーザ・インターフェース・コンポーネントを有するコンポーネント化ユーザ・インターフェースを作成し、コンポーネント化アプリケーションのテキスト・リスト定義内の異なる列挙された独立アプリケーション・サブコンポーネントの各々と関連付けられたそれぞれの異なるユーザ・インターフェース・コンポーネントと関連して受け取ったユーザ入力に基づいて、異なる列挙された独立アプリケーション・サブコンポーネントに独立してアクセスするようにプログラムされたプロセッサとを含む。
【０００６】
コンピュータ・プログラム製品が、コンピュータ可読プログラム・コードがそこに具体化されたコンピュータ可読ストレージ媒体を含み、コンピュータ可読プログラム・コードは、コンピュータ上で実行されるとき、コンピュータに、セットとして実行されるユーザにより指定される異なる列挙された独立アプリケーション・サブコンポーネントの集合を識別する、メモリ内に格納されるコンポーネント化アプリケーションのテキスト・リスト定義を呼び出す要求を受け取らせ、コンポーネント化アプリケーションのテキスト・リスト定義内の前記異なる列挙された独立アプリケーション・サブコンポーネントの各々と関連付けられた異なるユーザ・インターフェース・コンポーネントを有するコンポーネント化ユーザ・インターフェースを作成させ、コンポーネント化アプリケーションのテキスト・リスト定義内の前記異なる列挙された独立アプリケーション・サブコンポーネントの各々と関連したそれぞれの異なるユーザ・インターフェース・コンポーネントと関連して受け取ったユーザ入力に基づいて、異なる列挙された独立アプリケーション・サブコンポーネントに独立してアクセスさせる。
【０００７】
ここで、本発明の好ましい実施形態を、以下の図面を参照して、単なる例として説明する。
【図面の簡単な説明】
【０００８】
【図１】本主題の実施形態による、カスタマイズされたレディートゥゴーのコンポーネント化アプリケーションの定義のためのシステムの実装の一例のブロック図を示す。
【図２】本主題の実施形態による、カスタマイズされたレディートゥゴーのコンポーネント化アプリケーションの定義を提供できるコア処理モジュールの実装の一例のブロック図である。
【図３】本主題の実施形態による、カスタマイズされたレディートゥゴーのコンポーネント化アプリケーションの定義の作成のためのプロセスの実装の一例のフローチャートである。
【図４】本主題の実施形態による、カスタマイズされたレディートゥゴーのコンポーネント化アプリケーションの定義のためのプロセスの実装の一例のフローチャートである。
【図５】本主題の実施形態による、カスタマイズされたレディートゥゴーのコンポーネント化アプリケーションの定義の実行時の選択的なサブコンポーネント呼び出しのためのプロセス内の最初の処理の実装の一例のフローチャートである。
【図６】本主題の実施形態による、カスタマイズされたレディートゥゴーのコンポーネント化アプリケーションの定義の実行時の選択的なサブコンポーネント呼び出しのためのプロセス内の第１の付加的な処理の実装の一例のフローチャートである。
【図７】本主題の実施形態による、カスタマイズされたレディートゥゴーのコンポーネント化アプリケーションの定義の実行時の選択的なサブコンポーネント呼び出しのためのプロセス内の第２の付加的な処理の実装の一例のフローチャートである。
【発明を実施するための形態】
【０００９】
以下に述べる例は、当業者が本発明を実施し、本発明を実施する最良の形態を示すのを可能にするために必要な情報を表す。添付図面に照らして以下の説明を読むと、当業者であれば、本発明の概念を理解し、本明細書では特に扱われていないこれらの概念の応用を認識するであろう。これらの概念及び応用は、本開示及び添付の特許請求の範囲内に含まれることを理解されたい。
【００１０】
本明細書で説明される主題は、カスタマイズされたレディートゥゴーのコンポーネント化アプリケーションの定義を提供する。ユーザが、レディートゥゴー・アプリケーションの定義として、ユーザによって指定された／カスタマイズされたコンポーネント化アプリケーションを定義するのを可能にする技術が提供される。レディートゥゴー・コンポーネント化アプリケーションの「定義」は、ユーザが選択する別個の独立したスタンドアロンのアプリケーション・サブコンポーネント／機能のリスティング／リストである。従って、レディートゥゴー・コンポーネント化アプリケーションの定義／リスティングは、低い帯域幅及びストレージ使用率で移植可能である。レディートゥゴー・コンポーネント化アプリケーションは、それ自体が、ユーザ選択の独立したスタンドアロンのアプリケーション・サブコンポーネントを指定する定義／リスティングを呼び出し、それぞれのユーザ選択の独立したスタンドアロンのアプリケーション・サブコンポーネントを取り出すことによって、ユーザが選択する所定のプラットフォーム上で開始することができる。ユーザは、サブコンポーネント／機能のユーザ選択の定義されたリスティングと対話することを好むとき、独立サブコンポーネントの各々を、独立して選択的に呼び出し、これにアクセスすることができる。独立サブコンポーネントは、サブコンポーネント／機能のユーザ選択の定義されたリスティングとのユーザ対話を効率化するようにさらに順序付けることができる。
【００１１】
「レディートゥゴー・コンポーネント化アプリケーション」及び「コンポーネント化アプリケーション」という用語は、以下の説明内で交換可能であると考えられ、後者は、説明の特定の部分において読みやすくするために利用されることがある。しかしながら、２つの語句は互いに同義であることが理解される。
【００１２】
コンポーネント化アプリケーションの定義は、例えば、コンポーネント化アプリケーション・プラットフォーム（代替的に、「コンポーネント化」又は「レディートゥゴー」アプリケーション「フレームワーク」と呼ばれる）内で呼び出すことができる。コンポーネント化アプリケーション・プラットフォームは、サブコンポーネントの定義／リスティングを構文解析し、ローカル又は遠隔ストレージから、それぞれのユーザ選択サブコンポーネントを取り出す。コンポーネント化アプリケーション・プラットフォームは、異なる列挙された独立アプリケーション・サブコンポーネントの利用可能なサブコンポーネント・フィーチャに基づいて、集約されたコンポーネント化ユーザ・インターフェースとして、選択された独立サブコンポーネントの各々へのユーザ・インターフェースを作成する。コンポーネント化アプリケーション・プロットは、ユーザ入力をそれぞれのサブコンポーネントに渡し、それぞれのサブコンポーネント内でコンポーネント化されたそれぞれの機能を呼び出す。
【００１３】
さらに、コンポーネント化アプリケーションのテキスト・リスト定義内のサブコンポーネント識別子のリスティングの順序を、それぞれのサブコンポーネントの重要性の優先順位又はランク付け手段として利用することができる。それぞれのサブコンポーネントの重要性の優先順位又はランク付けは、コンポーネント化アプリケーションを呼び出して、それぞれのサブコンポーネントへのユーザ・インターフェースのための表示位置を選択する特定のデバイスのフォーム・ファクタ又は他の側面に基づいて利用することができる。さらに、ユーザは、サブコンポーネントのシーケンスを指定して、１つのサブコンポーネントとの対話が、１つ又は複数の付加的なサブコンポーネントの呼び出しをトリガできるようにすることができる。
【００１４】
従って、本技術は、デバイス固有インターフェース内の対話のために優先順位付けし、選択的に呼び出すことができるアプリケーション・サブコンポーネントのリソース効率の高い「エコシステム」を提供する。サブコンポーネントの独立した機能は、選択されたサブコンポーネント及びそれぞれのサブコンポーネントにより実施される機能を指定するサブコンポーネントの参照のリスト又はサブコンポーネント識別子により指定される。サブコンポーネント参照のリストは、定義／リスティングが、サブコンポーネント／機能への参照のフラット・リスティング（flat listing）を表す観点から、互いに平行であると考えることができる機能を識別する。このエコシステム内には、別個のフィーチャの全てを組み込むハードコード化された高レベルのアプリケーションはない。代わりに、サブコンポーネント／機能参照のリスティングを呼び出し／コールし、デバイス上に実装されたコンポーネント化アプリケーション・プラットフォームを用いて、それぞれのデバイスに適切な形態／形式（例えば、フォーム・ファクタ）で実行時に一緒に並べることができる。
【００１５】
上述のように、ユーザはサブコンポーネント／機能のユーザ選択の定義されたリスティングと対話することを好むとき、独立サブコンポーネントの各々を独立して選択的に呼び出し、これにアクセスすることができる。リソース使用率をさらに改善するために、ユーザが実際に対話しているサブコンポーネントだけをアクティブなインメモリ・サブコンポーネント／機能として開始することができる。さらに、順序付けられたコンポーネント化アプリケーションについて、以下により詳細に説明されるように、関連した処理が完了し、他のサブコンポーネントを呼び出した後、メモリから、アプリケーション・サブコンポーネントを除去することができる。
【００１６】
本説明のために、カスタマイズされたレディートゥゴー・コンポーネント化アプリケーションの定義は、ユーザ指定のサブコンポーネントのコンポーネント化アプリケーションの定義／リスティングと考えることができる。カスタマイズされたレディートゥゴー・コンポーネント化アプリケーションの定義は、ユーザがそれぞれのサブコンポーネントを表すために作成されたインターフェース要素と対話するとき、列挙されたサブコンポーネントの実行時（オンデマンド）の選択的サブコンポーネント呼び出しを提供する。フィーチャのコンポーネント化されたユーザ指定の機能の統合により、ユーザがタスク・セットを定め、効率的に実施することが可能になる。従って、ユーザは、ユーザにとって関心のない外部のフィーチャ／機能に気を取られることなく、単一のユーザ・インターフェース内にカスタマイズされたレディートゥゴー・コンポーネント化アプリケーションを作成することができる。レディートゥゴー・コンポーネント化アプリケーションはまた、異なるアプリケーションへの切り換えを必要とすることなく、かつ、異なるアプリケーションの各々の異なるメニュー構造を学習又はナビゲートする必要なしに、ユーザが、ユーザにとって関心のある特定の機能と対話することも可能にする。本明細書で説明されるサブコンポーネントは、独立及び自立型と考えられ、従って、互いに通信することを必要としないが、カスタマイズされたサブコンポーネントを、所定の実装に適切なように実装することができる。
【００１７】
同様に、上述のように、本説明のために、本技術をサポートするコンポーネント化アプリケーション・プラットフォームを、本明細書では代替的に「コンポーネント化アプリケーション・フレームワーク」又は「レディートゥゴー・アプリケーション・フレームワーク」と呼ぶことがある。レディートゥゴー・アプリケーション・フレームワークは、異なる独立サブコンポーネントの高レベルの統合を実施する。従って、レディートゥゴー・アプリケーション・フレームワークは、サブコンポーネントの定義／リスティングを構文解析し、ローカル又は遠隔ストレージからそれぞれのユーザ選択のサブコンポーネントを取り出し、集約されたコンポーネント化ユーザ・インターフェースとして、選択された独立サブコンポーネントの各々へのユーザ・インターフェースを作成する。「レディートゥゴー・アプリケーション・フレームワーク」はまた、それぞれのサブコンポーネントへのユーザ入力を構文解析し、それぞれのサブコンポーネント内のコンポーネント化されたそれぞれの機能を呼び出すこともできる。
【００１８】
選択可能な独立したスタンドアロンのアプリケーション・サブコンポーネントのコンポーネント化データベースから、サブコンポーネントのプラットフォーム固有バージョンをダウンロードすることによって、それぞれの独立したスタンドアロンのアプリケーション・サブコンポーネントのアクティブ化を行うことができる。代替的に、コンポーネント化データベース内又はサーバ（例えば、コンポーネント化アプリケーション・サーバ）上で選択されたサブコンポーネントを呼び出すことによって、それぞれの独立したスタンドアロンのアプリケーション・サブコンポーネントのアクティブ化を行うことができる。
【００１９】
上述され、以下により詳細に説明されるように、「レディートゥゴー」アプリケーションは、コンポーネント化アプリケーションの定義からリアルタイムで構成される。サブコンポーネントは、アプリケーション・サブコンポーネントのコンポーネント化データベースから抽出される。ユーザには、「レディートゥゴー」アプリケーションのアセンブリについての利用可能なサブコンポーネント／機能のメニューが提供される。
【００２０】
別個の独立したスタンドアロンのアプリケーション・サブコンポーネント／機能の選択可能なユーザ選択の指定の予備的な例として、選択可能な独立したスタンドアロンのアプリケーション・サブコンポーネントのコンポーネント化データベースは、「レディートゥゴー」アプリケーション定義インターフェースを提供することができる。「レディートゥゴー」アプリケーション定義インターフェースは、ユーザが「レディートゥゴー」アプリケーション定義についての機能コンポーネント（例えば、選択された機能のリスティング）をブラウズし、選択することができるフラット又はメニュー・インフラストラクチャを提供することができる。
【００２１】
コンポーネント化データベースは、カテゴリにより、選択可能な独立サブコンポーネントを区分化することができる。例えば、通信カテゴリは、個人のｅメール、テキスト・メッセージ、ファクシミリ、又は他のメッセージを送信又は受信するためのサブコンポーネントを含むことができる。ミーティング・カテゴリは、カレンダー・エントリを格納し、取り出すためのサブコンポーネント、ミーティング及び／又は電話会議の詳細（例えば、電話会議の番号、パスコード、参加者リスト）を格納し、取り出すためのサブコンポーネント、携帯電話と関連した電話をかけるためのサブコンポーネント、参加者とモデレータとの間の通信のためのサブコンポーネント、ミーティング情報表示のためのサブコンポーネント、及び／又は他のミーティング情報及びフィーチャのためのサブコンポーネントを含むことができる。計画カテゴリは、作業項目（例えば、タスク又は「すべき」項目及び宿題）を表示し、編集するためのサブコンポーネント、プロジェクトの問題を表示し、編集するためのサブコンポーネント、レポートを表示し、編集するためのサブコンポーネント、承認を表示し、入力するためのサブコンポーネント、製品スケジュールを表示し、編集するためのサブコンポーネント、質問を入力するためのサブコンポーネント、他の人によるタスクの完了時のフィードバックのためのサブコンポーネント、及び／又は他のプロジェクト関連のタスクのためのサブコンポーネントを含むことができる。生産性カテゴリは、スケジュール・リマインダーを設定するためのサブコンポーネント、メモを取るためのサブコンポーネント、メモ及び情報を格納するためのサブコンポーネント、フォントを選択するためのサブコンポーネント、印刷のためのサブコンポーネント、及び／又は他の生産性関連の機能のためのサブコンポーネントを含むことができる。
【００２２】
従って、ユーザは、異なるカテゴリから、「ア・ラ・カルト」方式で所望の機能を選択することができる。ユーザは、個々の選択可能な独立サブコンポーネント／機能のリストを選択及び指定することにより、レディートゥゴー・アプリケーションを定めることができる。レディートゥゴー・アプリケーションの定義を呼び出して、ユーザにより指定されるフィーチャだけを有するレディートゥゴー・アプリケーションをインスタンス化することができる。従って、ユーザ指定のアプリケーション・インターフェース経験を生成することができる。ユーザにとって関心あるサブコンポーネントのリスティングだけを含む定義を考慮して、単一のレディートゥゴー・アプリケーション・ユーザ・インターフェース内に（即ち、ウィンドウ／ページ内に）レディートゥゴー・アプリケーションの各々の指定されたサブコンポーネントについてのインターフェース要素を提供できるので、レディートゥゴー・アプリケーションから、メニュー及び他のナビゲーション・フィーチャを省略できる可能性が高い。
【００２３】
さらに、レディートゥゴー・アプリケーションのインスタンスを作成するために定義／リスティングを呼び出すことに関して、各サブコンポーネント／機能を、ユーザ・インターフェース上に配置されたユーザ・インターフェース要素（例えば、ボタン又はアイコン）に割り当て、ユーザが各々のサブコンポーネントに個々にアクセスできるようにすることができる。代替的に、ユーザは、定義／リスティング内のコンポーネント呼び出しのシーケンスをさらに指定することができる。
【００２４】
コンポーネント呼び出しのこうしたシーケンスは、ウィザードのような形式で線形シーケンスに従うように、サブコンポーネント／機能のそれぞれの定められたリスティングの呼び出しをもたらし得る。サブコンポーネントのシーケンス（sequenced）呼び出しにおいて、１つのサブコンポーネントにおける作業の完了は、定義／リスト内の次のサブコンポーネントをトリガし、ユーザ対話（例えば、ユーザ入力及び／又はユーザへの出力）のためにアクティブ化する又は焦点を合わせることができる。
【００２５】
さらに、定義からレディートゥゴー・アプリケーションがインスタンス化されるとき、レディートゥゴー・アプリケーションのユーザ・インターフェース内で、サブコンポーネントのフィーチャを組み合わせることができる。例えば、レディートゥゴー・アプリケーションの定義において、電話ダイヤラ・サブコンポーネント及び電話会議詳細サブコンポーネント（例えば、電話会議の番号、パスコード等を有する）をどちらも指定することができる。ユーザが電話会議詳細サブコンポーネント内の特定の電話会議についての情報を入力し、格納する場合、本技術は、２つのサブコンポーネント間の関連付けを認識し、レディートゥゴー・アプリケーションのユーザ・インターフェース内の「ミーティング参加（Join  Meeting）」ボタンを作成することができる。「ミーティング参加」ボタンがユーザにより選択されると、電話ダイヤラ・サブコンポーネントが、全て「ミーティング参加」ボタンの単一のユーザ選択により、電話会議詳細サブコンポーネント内に格納される電話番号を使用して電話会議のためにダイヤルし、電話会議用のパスコードを入力する。単一のレディートゥゴー・アプリケーション・ユーザ・インターフェースにおいて、レディートゥゴー・アプリケーションのために定められた他のサブコンポーネントをユーザに提示することもできる。従って、レディートゥゴー・アプリケーションのために定められたコンポーネントの特定のリスティング及びユーザが入力した情報に基づいて、動的な（リアルタイムの）統合されたフィーチャを作成することができる。
【００２６】
さらに、レディートゥゴー・アプリケーション内のサブコンポーネントの順序付けに関して、ユーザは、レディートゥゴー・アプリケーションを互いにネスト化し、１つのレディートゥゴー・アプリケーションが付加的なレディートゥゴー・アプリケーションを呼び出すことを可能にすることができる。例えば、「ミーティング参加」ボタンの上記の例の文脈において、ユーザは、電話ダイヤラ・サブコンポーネント及び電話会議詳細サブコンポーネントのような別の定義／リストを含むコンテンツを供給するカレンダー入力サブコンポーネントのみから始まるサブコンポーネントのシーケンスを指定することができる。ユーザは、カレンダー入力サブコンポーネントの定義を呼び出し、カレンダー入力レディートゥゴー・アプリケーションをインスタンス化することができる。カレンダー入力レディートゥゴー・アプリケーションは、それ自体がまだ呼び出されていない他のサブコンポーネントの定義を含む（コンテンツの）供給を含むカレンダー入力サブコンポーネントを実行する。ユーザは、トリガ・イベントをカレンダー入力サブコンポーネントと関連付けるために、日付と時刻を指定することができる。指定された時間において、カレンダー入力サブコンポーネントは、他のサブコンポーネントの供給されたコンテンツ定義を呼び出し、それにより、予定時刻におけるミーティングについての新しいレディートゥゴー・アプリケーション（又は、現在のレディートゥゴー・アプリケーションの付加的な部分）の別のネスト化されたサブコンポーネントの定義のインスタンス化がもたらされる。上の例で述べたように、ユーザには、いずれかの他の指定されたコンポーネントについての別個のユーザ・インターフェースと共に、ミーティングに参加するための「ミーティング参加」ボタン」が、新しいレディートゥゴー・アプリケーション内提示され得る。カレンダー入力レディートゥゴー・アプリケーションは、供給されたコンテンツ定義の呼び出し後に終了するように構成することができ、又はコンポーネント化されたカレンダー入力サブコンポーネント内で使用可能なユーザ選択により構成されるように実行を続行することができる。
【００２７】
従って、レディートゥゴー・アプリケーション定義を順序付け及び／又はネスト化し、他の／新しいレディートゥゴー・アプリケーション又はレディートゥゴー・アプリケーションの他の部分の作成をトリガすることができる。本明細書での説明に基づいたレディートゥゴー・アプリケーションの定義及び作成についての他の多くの選択肢が可能であり、そうした全ての選択肢は、本主題の範囲内にあると考えられる。
【００２８】
さらに、レディートゥゴー・アプリケーションは、異なる種類のミーティング（例えば、内部生産性／プロジェクト・ミーティング、顧客とのミーティング、公開プレゼンテーション等）などについての、複数の形態の文脈／情報を有するように事前構成することができる。文脈ベースの実装のこの形態において、レディートゥゴー・アプリケーションは、レディートゥゴー・アプリケーションについての文脈の入力をユーザに促すサブコンポーネントのシーケンス内の初期文脈サブコンポーネントを有するように構成することができる。文脈サブコンポーネントは、ユーザから、ミーティングが顧客とのミーティングであるといった情報を受け取り、シーケンス内の他のサブコンポーネントにより使用可能な他の文脈／情報を取り出すことができる。特定の顧客についての情報（例えば、顧客名及び肩書、顧客に尋ねられた質問及び決定された回答等）がポピュレートされた統一されたウィンドウ／ページ内で、他のサブコンポーネントをユーザに提示することができる。
【００２９】
レディートゥゴー・アプリケーションの別のフィーチャは、ユーザが、レディートゥゴー・アプリケーションを用いて行われる対話を選択的にキャプチャし、アーカイブに入れることを可能にするユーザ選択可能な対話記録フィーチャを含むことができる。例えば、ユーザが特定の形態（例えば、文脈）を事前構成し、レディートゥゴー・アプリケーションを用いて、アクションのシーケンス（例えば、「ミーティング参加」ボタンの選択及びメモ取りサブコンポーネントの呼び出し）を実行する場合、ユーザは、レディートゥゴー・アプリケーション・フレームワークの「対話アーカイブ」フィーチャを呼び出して、レディートゥゴー・アプリケーションを構成する個々の別個のサブコンポーネントとのユーザ対話をアーカイブに入れることができる。レディートゥゴー・アプリケーションを構成する個々の別個のサブコンポーネントとの、これらのアーカイブに入れられたユーザ対話を、次にユーザがレディートゥゴー・アプリケーションの定義を呼び出すときに自動的に繰り返し、独立サブコンポーネントのレディートゥゴー・アプリケーション・フレームワークによる自動化された実行を開始することができる。従って、本例では、ミーティングに参加するために、「ミーティング参加」ボタンを自動的に選択し（これにより、上述のように、複数のサブコンポーネントのフィーチャが呼び出される）、メモ取りサブコンポーネントを呼び出して、ユーザ入力のためにレディートゥゴー・アプリケーションを準備することができる。従って、ユーザは、レディートゥゴー・アプリケーション・フレームワークを用いて、ユーザ選択機能の呼び出しのための独立したコンポーネント化サブコンポーネントのリスト内のサブコンポーネントを選択的に定めるだけでなく、レディートゥゴー・アプリケーション・フレームワークを用いて、ユーザ定義のレディートゥゴー・アプリケーションとのユーザ対話を自動化することができる。
【００３０】
所定の実装に適切なように、サブコンポーネントの粒度を作成できることにさらに留意されたい。従って、フィーチャのユーザ選択は、より大きいコンポーネントに限定されない。代わりに、ユーザが個々のフィーチャを選択的に定めることができるように、サブコンポーネントをフィーチャごとに構成することができる。レディートゥゴー・アプリケーション及びレディートゥゴー・アプリケーション・フレームワークの多くのフィーチャ及び粒度を考慮して、ユーザが記録された入力操作をさらに改良し、カスタマイズするので、ユーザ効率はますます改善され得る。本技術の使用についての多くの他の可能性が存在し、全てのそうした可能性は、本技術の範囲内にあると考えられる。
【００３１】
レディートゥゴー・アプリケーションのコンパクトな定義／リスティング形式を考慮して、過度のトランスポーテーション帯域幅又は記憶空間を消費することなく、これらの定義を友人及び／又は同僚の間で共有することができる。他のユーザが、その使用に適切なように定義を修正することもできる。
【００３２】
上述し、以下に詳細に説明されるように、ユーザは、特定の期間、軽量のリスティングを、ユーザが使用することを意図するいずれかのデバイスに移植することができる。例えば、ユーザは、空港に移動する間、ビジネス・ミーティングに出席している場合、ユーザは、タブレット又は携帯電話を用いて、そのデバイス上のレディートゥゴー・アプリケーションの定義／リスティングを呼び出すことができる。代替的に、ユーザが、ラップトップ又はディスクトップ・コンピュータにアクセスを有するオフィス空間にいる場合、ユーザは、それぞれのコンピュータを用いて、そのデバイス上のレディートゥゴー・アプリケーションの定義／リスティングを呼び出すことができる。レディートゥゴー・アプリケーションの定義／リスティングの呼び出しのための他の多くのプラットフォームが可能であり、全てのそうした呼び出しは、本主題の範囲内にあると考えられる。
【００３３】
本主題の概念は、以前のアプリケーション技術と関連した特定の制限の認識の結果生じたものであることに留意されたい。例えば、アプリケーションのユーザは、多くの別個のアプリケーションを立ち上げ、別個のアプリケーションをナビゲートして、異なるアプリケーションの開発者により提供され、決定されたような異なるアクティビティを実行する必要があることが観察された。しかしながら、多くの異なるアプリケーションのユーザは、異なるアプリケーションにより提供されるフィーチャの特定のサブセットを使用することが多く、これらのフィーチャのサブセットの使用は、フィーチャの使用パターンの繰り返しをもたらすことが多いことも観察された。例えば、ビジネルにおける例は、ユーザがプロジェクト・チームと週１回電話会議を行い、電話会議の番号を見つけるために常にカレンダー・アプリケーションを使用し、プロジェクトの状態を表示するために毎週変更している別個の計画アプリケーションを開き、別の完全に別個のアプリケーションにおいてタスクの私的なメモを取るというものであり得ることが観察された。さらに、種々のユーザ・コンピューティング・デバイスのオペレーティング・システム（ＯＳ）は、典型的には、各々が異なるアプリケーションのものを呼び出すアイコンのセットを使用すること、そして、各アプリケーションはそれ自体のグラフィカル・ユーザ・インターフェース（ＧＵＩ）を有し、各々のＧＵＩは、異なるアプリケーションＧＵＩ内の異なる階層メニューのナビゲーションにより見つける必要があるサブ機能を有する異なる階層メニュー構造を有することが観察された。さらに、ユーザは、所望のフィーチャを見つけ、呼び出すために、アプリケーション間で連続的に切り替え、異なるアプリケーション・インターフェースからの異なる階層メニューをナビゲートする必要があることが、観察された。これらの観察を考慮して、多くのユーザは、多くの異なるアプリケーションを用いて多くの繰り返しステップを実施することがあり（例えば、アプリケーション間共通のフィーチャ使用）、アプリケーション間共通のフィーチャ使用の所望の繰り返しパターンを実行するために、多くの異なるアプリケーションと異なる階層メニュー構造との間でナビゲートしなければならないことにより、効率が失われると判断された。さらに、ユーザが、ますます小さいフォーム・ファクタのデバイス（例えば、手持ち式スマートフォン等）を使用して、アプリケーション間をまたがるフィーチャ使用のこれらのタイプの繰り返しパターンを実施するとき、異なるアプリケーション・インターフェースをナビゲートし、所望のフィーチャを見つけて呼び出すことがより難しくなり、そのことは、ユーザ効率及び生産性のさらなる低減をもたらすと判断された。
【００３４】
これらの幾つかの観察及び判断を考慮して、さらに、ユーザが、単一のユーザ・インターフェースから多くの異なるタイプのフィーチャのユーザ指定の選択を形成することを可能にするユーザ・カスタマイズ可能なアプリケーションが必要であると判断された。さらに、ユーザが、プラットフォームごとにアプリケーション全体を移植することを必要とせずに、異なるプラットフォーム上の異なるアプリケーション・インターフェースにアクセスすることが望ましいと判断された。単一のユーザ・インターフェース内に形成される異なるコンポーネントの特定のリスティング／リストを識別するユーザ定義のコンポーネント化されたアプリケーションの「定義」を用いたユーザ定義のコンポーネント化アプリケーションの指定は、実行時に異なるプラットフォーム／デバイスのためにプラットフォーム特有コンポーネントを選択することによりインスタンス化できるユーザ定義のアプリケーションの軽量で移植可能であるとの表示を提供すると判断された。さらに、選択可能な独立スタンドアロン・アプリケーション・サブコンポーネントのコンポーネント化データベースは、ユーザが、多くの異なるユーザ指定の目的のために、多くの異なるユーザ・インターフェースをカスタマイズすることを可能にする。さらに、コンポーネント化アプリケーション定義を呼び出してプラットフォーム固有のアプリケーション・サブコンポーネントをダウンロードし、ユーザ指定の「レディートゥゴー」アプリケーションを形成すること、又は遠隔プラットフォーム内のそれぞれのアプリケーション・サブコンポーネントを、ユーザ指定の「レディートゥゴー」アプリケーションとして実行するとき、軽量のユーザ定義のコンポーネント化アプリケーション定義／リスティングをリアルタイムに構文解析することができる。本明細書で説明されるレディートゥゴー（コンポーネント化）アプリケーション・フレームワークは、異なる独立したサブコンポーネントの呼び出しを管理し、処理のためにユーザ入力をそれぞれのサブコンポーネントに渡す。従って、上述され、以下により詳細に説明されるように、本主題は、カスタマイズされたレディートゥゴー・コンポーネント化アプリケーション定義を提供することによって、ユーザ指定のアプリケーション定義及び移植性（portability）を改善する。
【００３５】
コンポーネント化アプリケーションが呼び出されたとき、本明細書で説明されるカスタマイズされたレディートゥゴー・コンポーネント化アプリケーションをリアルタイムで実施して、アプリケーションの迅速及び軽量の定義、アプリケーション移植性の容易さ、及びユーザによりカスタマイズされたアプリケーションのインスタンス化を可能にすることができる。本説明のために、リアルタイムとは、説明される主題のユーザに容認可能な情報処理のための適当な応答時間の提供に関して十分に短い期間の任意の時間枠を含むものとする。さらに、「リアルタイム」という用語は、一般的に「ほぼリアルタイム」と呼ばれるものを含むものとし、通常、説明される主題のユーザに容認可能なオンデマンドの情報処理のための適当な応答時間（例えば、１秒の一部内又は数秒内）の提供に関して十分に短い期間の任意の時間枠を意味する。これらの用語は、正確に定義するのは困難であるが、当業者にはよく理解される。
【００３６】
図１は、カスタマイズされたレディートゥゴー・コンポーネント化アプリケーション定義のためのシステム１００の実装の一例のブロック図である。コンピューティング・デバイス＿１  １０２乃至コンピューティング・デバイス＿Ｎ  １０４は、ネットワーク１０６を介して、幾つかの他のデバイスと通信する。他のデバイスは、コンポーネント化アプリケーション・サーバ＿１  １０８乃至コンポーネント化アプリケーション・サーバ＿Ｍ  １１０を含む。
【００３７】
コンポーネント・リポジトリ１１２は、選択し組み合わせてコンポーネント化アプリケーションを指定する定義／リスティングにすることができる独立したサブコンポーネントのための格納を提供する。定義／リスティングは、定義／リスティングからのコンポーネント化アプリケーションの使用及び呼び出しに適切なように、システム１００の種々のデバイスの間で移植することができる。従って、コンポーネント・リポジトリ１１２は、コンポーネント化アプリケーションのリスティング／定義を作成するためにいずれのユーザも利用可能な公開された個々のサブコンポーネントを識別する。
【００３８】
コンポーネント化アプリケーションに使用可能な独立サブコンポーネントは、付加的に／代替的に、システム１００内に示されるデバイスのいずれかに局所的に格納できることに留意されたい。従って、定義は、リスティングとして指定することができ、定義／リスティングの呼び出し時に、コンポーネント化アプリケーション・フレームワークは、システム１００内の任意の場所におけるそれぞれのサブコンポーネントを識別することができ、それぞれのストレージ場所においてそれぞれのサブコンポーネントを呼び出すことができ、又はサブコンポーネントのプラットフォーム固有の実装を、コンポーネント化アプリケーションが実行されるデバイスのいずれかにダウンロードすることができる。従って、独立サブコンポーネントの格納及び実行のための多くの代案が可能であり、全てのそうした代案は、本技術の範囲内であると考えられる。さらに、実際のサブコンポーネント自体をカプセル封入するのではなく、異なるサブコンポーネントのコンポーネント化アプリケーション・リスティング識別子の軽量の定義／リスティングの本質上、それぞれ最小の帯域幅及び記憶空間を用いて、コンポーネント化アプリケーションの定義／リスティングを移植／格納することができる。
【００３９】
図２乃至図７と関連して以下により詳細に説明されるように、コンピューティング・デバイス＿１  １０２乃至コンピューティング・デバイス＿Ｎ  １０４及びコンポーネント化アプリケーション・サーバ＿１  １０８乃至コンポーネント化アプリケーション・サーバ＿Ｍ  １１０は、コンポーネント化アプリケーション・フレームワークを実装することができ、自動化及びカスタマイズされたレディートゥゴー・アプリケーション定義を提供することができる。自動化及びカスタマイズされたレディートゥゴー・アプリケーション定義は、独立サブコンポーネントを定義、呼び出し／制御して完全にユーザ指定のコンポーネント化アプリケーションを構築するためのコンポーネント化アプリケーション・フレームワークの使用に基づく。従って、本技術は、ユーザ・コンピューティング・デバイス又はサーバ・デバイス・レベルで実施することができる。本主題の実施のために種々の可能性が存在し、全てのこうした可能性は、本主題の範囲内にあると考えられる。
【００４０】
図１と関連して説明されるそれぞれのコンピューティング・デバイスのいずれも、それぞれのコンピューティング・デバイスを異なる場所に移動させるユーザの能力により、又は飛行機、列車、自動車若しくは他の移動車両のようなポータブル・プラットフォームとのそれぞれのコンピューティング・デバイスとの関連付けにより、ポータブル・コンピューティング・デバイスとすることができることに留意されたい。それぞれのコンピューティング・デバイスは、上述され、以下により詳細に説明されるような情報を処理できる任意のコンピューティング・デバイスとすることができることにも留意されたい。例えば、それぞれのコンピューティング・デバイスは、パーソナル・コンピュータ（例えば、デスクトップ、ラップトップ等）又は手持ち式デバイス（例えば、携帯電話、携帯情報端末（ＰＤＡ）、電子メール・デバイス、音楽録音又は再生デバイス、タブレット・コンピューティング・デバイス、電子ブック読み取りデバイス等）、ウェブ・サーバ、アプリケーション・サーバ、又は他のデータ・サーバ・デバイス、又は上述され、以下により詳細に説明されるような情報を処理することができる他のいずれかのデバイスのようなデバイスを含むことができる。
【００４１】
ネットワーク１０６は、イントラネットのようなプライベート・ネットワーク又はインターネットのようなパブリック・ネットワーク、モジュール間直接相互接続、ダイアルアップ、無線、又はそれぞれのデバイスを相互接続することができる他のいずれかの相互接続機構を含む、意図した目的に適した任意の形態の相互接続を含むことができる。
【００４２】
コンポーネント・リポジトリ１１２は、リレーショナル・データベース、オブジェクト・データベース、又は他のいずれかのストレージ・タイプのデバイスを含むことができる。従って、コンポーネント・リポジトリ１１２は、所定の実装に適切なように実装することができる。
【００４３】
図２は、カスタマイズされたレディートゥゴー・コンポーネント化アプリケーション定義を提供することができるコア処理モジュール２００の実装の一例のブロック図である。コア処理モジュール２００は、所定の実装に適切なように、コンピューティング・デバイス＿１  １０２乃至コンピューティング・デバイス＿Ｎ  １０４、又は、コンポーネント化アプリケーション・サーバ＿１  １０８乃至コンポーネント化アプリケーション・サーバ＿Ｍ  １１０のいずれかと関連付けることができる。従って、コア処理モジュール２００が本明細書で一般的に説明されているが、コア処理モジュール２００内のコンポーネントの実装についての多くの変形が可能であり、全てのこうした変形は、本主題の範囲内にあることが理解される。
【００４４】
さらに、コア処理モジュール２００は、各実装と関連して、コンポーネント化アプリケーションの異なる相補的な処理を提供することができる。従って、以下の例のいずれかにおいて、別のデバイス（例えば、送信する／送信している等）と併せて説明されるいずれか１つのデバイスに関して説明される機能のいずれかの態様が、他のそれぞれのデバイス（受信する／受信している等）の機能を同時に説明することを理解されたい。
【００４５】
中央処理ユニット（ＣＰＵ）２０２（「プロセッサ」）は、コンピュータ命令実行、計算、及びコア処理モジュール２００内の他の能力を実施するハードウェアを提供する。ディスプレイ２０４は、コア処理モジュール２００のユーザに視覚情報を提供し、入力デバイス２０６は、ユーザに入力能力を提供する。
【００４６】
ディスプレイ２０４は、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）、電子インク・ディスプレイ、プロジェクション、タッチスクリーン、又は他の表示要素若しくはパネルを含むことができる。入力デバイス２０６は、コンピュータ・キーボード、キーパッド、マウス、ペン、ジョイスティック、タッチスクリーン、又はユーザがディスプレイ２０４上の情報と対話し、これに対応することができる他のいずれかのタイプの入力デバイスを含むことができる。
【００４７】
ディスプレイ２０４及び入力デバイス２０６は、特定の実装／デバイスのためのコア処理モジュール２００の随意的なコンポーネントとすることができ、又はそれぞれのデバイスから遠隔配置し、それぞれのデバイスと通信する別のコンピューティング・デバイスによりホストすることができる。従って、コア処理モジュール２００は、直接のユーザ・コンフィギュアビリティ（configurability）又はフィードバックなしに完全に自動化された埋め込みデバイスとして動作することができる。しかしながら、コア処理モジュール２００はまた、所定の実装に適切なように、それぞれディスプレイ２０４及び入力デバイス２０６を介してユーザ・フィードバック及びコンフィギュアビリティを提供することもできる。
【００４８】
通信モジュール２０８は、ハードウェア、プロトコル・スタック処理、及びコア処理モジュール２００がシステム１００内の他のモジュールと通信するのを可能にする相互接続能力を提供する。通信モジュール２０８は、所定の実装に適した相互接続能力を提供するために使用できる、いずれかの電気、プロトコル、及びプロトコル変換能力を含むことができる。
【００４９】
メモリ２１０は、コア処理モジュール２００内にコンポーネント化アプリケーションの定義／リスティングを格納するコンポーネント化アプリケーション定義／リスティング格納領域２１２を含む。メモリ２１０はまた、コンポーネント化アプリケーション相関／集約される個々のサブコンポーネントのための格納及び実行空間を提供するコンポーネント化アプリケーション集約及び実行領域２１４も含む。
【００５０】
メモリ２１０は、必要に応じて分散又は局所化される、意図した目的に適した揮発性及び不揮発性メモリの任意の組み合わせを含むことができ、説明を簡単にするために本例内に示されない他のメモリ・セグメントを含み得ることが理解される。例えば、メモリ２１０は、本主題の範囲から逸脱することなく、コード記憶領域、オペレーティング・システム記憶領域、コード実行領域、及びデータ領域を含むことができる。
【００５１】
コンポーネント化アプリケーション・フレームワーク・モジュール２１６も示される。上述され、以下により詳細に説明されるように、コンポーネント化アプリケーション・フレームワーク・モジュール２１６は、ユーザが、コア処理モジュール２００と関連してコンポーネント化アプリケーションの定義を定め、これを呼び出すための能力を提供する。コンポーネント化アプリケーション・フレームワーク・モジュール２１６は、公開され、コンポーネント化アプリケーションのリスティングを定めるために使用される利用可能なサブコンポーネントを表示するためのインターフェースを提供し、コンポーネント化アプリケーション定義の呼び出し及びコンポーネント化アプリケーションの実行を制御する。従って、コンポーネント化アプリケーション・フレームワーク・モジュール２１６は、コア処理モジュール２００の自動化及びカスタマイズされたレディートゥゴー・アプリケーション定義を実装する。
【００５２】
コンポーネント化アプリケーション・フレームワーク・モジュール２１６はまた、本主題の範囲から逸脱することなく、説明される他の回路の一部を形成できることにも留意されたい。さらに、コンポーネント化アプリケーション・フレームワーク・モジュール２１６は、代替的に、メモリ２１０内に格納されるアプリケーションとして実装することもできる。こうした実装において、コンポーネント化アプリケーション・フレームワーク・モジュール２１６は、本明細書で説明される機能を実施するための、ＣＰＵ２０２により実行される命令を含むことができる。ＣＰＵ２０２は、これらの命令を実行して、コア処理モジュール２００について上述され、以下により詳細に説明される処理能力を提供することができる。コンポーネント化アプリケーション・フレームワーク・モジュール２１６は、本主題の範囲から逸脱することなく、割り込みサービス・ルーチン（ＩＳＲ）の一部、オペレーティング・システムの一部、ブラウザ・アプリケーションの一部、又は別個のアプリケーションの一部を形成することができる。
【００５３】
コンポーネント・リポジトリ１１２が、コア処理モジュール２００と関連付けられて再び図２に示される。従って、コンポーネント・リポジトリ１１２は、所定の実装に適切なように、ネットワーク接続を使用せずに、コア処理モジュール２００に動作可能に結合することができる。
【００５４】
ＣＰＵ２０２、ディスプレイ２０４、入力デバイス２０６、通信モジュール２０８、メモリ２１０、コンポーネント化アプリケーション・フレームワーク・モジュール２１６、及びコンポーネント・リポジトリ１１２は、相互接続２１８を介して相互接続される。相互接続２１８は、システムバス、ネットワーク、又はそれぞれの目的に適した相互接続を提供することができる他のいずれかの相互接続を含むことができる。
【００５５】
図２内に示される異なるモジュールは、例証及び説明を容易にするためにコンポーネント・レベルのモジュールとして示されるが、これらのモジュールは、上述され、以下により詳細に説明されるような、それぞれのモジュールの機能を実行するために用いられるいずれのハードウェア、プログラムされたプロセッサ、及びメモリも含み得ることに留意されたい。例えば、モジュールは、特定用途向け集積回路（ＡＳＩＣ）、プロセッサ、アンテナ、及び／又はディスクリート集積回路、及びそれぞれのモジュールと関連した通信及び電気制御アクティビティを実施するためのコンポーネントの形態の付加的なコントローラ回路を含むことができる。さらに、モジュールは、必要に応じて、割り込みレベル、スタック・レベル、及びアプリケーション・レベルのモジュールを含むことができる。さらに、モジュールは、それぞれのモジュールと関連した処理アクティビティを実施するための格納、実行及びデータ処理のために使用される任意のメモリ・コンポーネントを含むこともできる。モジュールはまた、説明される他の回路の部分を形成することもでき、又は本主題の範囲から逸脱することなく組み合わせることもできる。
【００５６】
さらに、コア処理モジュール２００は、説明される特定のコンポーネントと共に示され、これを有するが、本主題の範囲から逸脱することなく、他のモジュール及びコンポーネントをコア処理モジュール２００と関連付けることができる。さらに、コア処理モジュール２００は、例証を容易にするために、単一のデバイスとして説明されるが、コア処理モジュール２００内のコンポーネントは、本主題の範囲から逸脱することなく、ネットワークを介して同一場所に配置又は分散及び相互接続できることに留意されたい。分散型配置において、ディスプレイ２０４及び入力デバイス２０６は、販売時に、デバイス、キオスク、又は他の場所に配置することができるが、ＣＰＵ２０２及びメモリ２１０は、ローカル又は遠隔サーバに配置することができる。コア処理モジュール２００のコンポーネントについての多くの他の可能な配置が可能であり、全てが本主題の範囲内にあると考えられる。コンポーネント・リポジトリ１１２は、例示のために別個のコンポーネントとして示されるが、本主題の範囲から逸脱することなく、コンポーネント・リポジトリ１１２内に格納される情報も同様に／代替的にメモリ２１０内に格納できることも理解されたい。従って、コア処理モジュール２００は、多くの形態をとることができ、多くのプラットフォームと関連付けることができる。
【００５７】
以下に説明される図３乃至図７は、本主題と関連した自動化及びカスタマイズされたレディートゥゴー・アプリケーション定義を実施するために、コア処理モジュール２００のようなデバイスにより実行することができる例示的プロセスを表す。例示的プロセスにおける他の多くの変形が可能であり、全てが本主題の範囲内にあると考えられる。例示的プロセスは、コンポーネント化アプリケーション・フレームワーク・モジュール２１６のようなモジュールにより実施することができ、及び／又はこうしたデバイスと関連付けられたＣＰＵ２０２により実行することができる。説明を簡単にするために、タイムアウト手続き及び他のエラー制御手続きは、以下に述べられる例示的プロセス内に示されないことに留意されたい。しかしながら、全てのそうした手続きは、本主題の範囲内にあると考えられることが理解される。さらに、本主題の範囲から逸脱することなく、説明されるプロセスを組み合わせ、説明される処理のシーケンスを変更し、付加的な処理を付加又は除去することができる。
【００５８】
図３は、カスタマイズされたレディートゥゴー・コンポーネント化アプリケーション定義のためのプロセス３００の実装の一例のフローチャートである。ブロック３０２において、プロセス３００は、プロセッサにおいて、コンポーネント化アプリケーションのテキスト・リスト定義を呼び出す要求を受け取り、ここで、コンポーネント化アプリケーションのテキスト・リスト定義は、セットとして実行される、ユーザにより指定される異なる列挙された独立アプリケーション・サブコンポーネントの集合を識別する。ブロック３０４において、プロセス３００は、コンポーネント化アプリケーションのテキスト・リスト定義内の異なる列挙された独立アプリケーション・サブコンポーネントの各々と関連付けられた異なるユーザ・インターフェース・コンポーネントを有するコンポーネント化ユーザ・インターフェースを作成する。ブロック３０６において、プロセス３００は、コンポーネント化アプリケーションのテキスト・リスト定義内の異なる列挙された独立アプリケーション・コンポーネントの各々と関連付けられたそれぞれの異なるユーザ・インターフェース・コンポーネントと関連して受け取ったユーザ入力に基づいて、異なる列挙された独立アプリケーション・サブコンポーネントに独立してアクセスする。
【００５９】
図４は、カスタマイズされたレディートゥゴー・コンポーネント化アプリケーション定義の作成ためのプロセス４００の実装の一例のフローチャートである。決定点４０２において、プロセス４００は、新しいコンポーネント化アプリケーションを定義する要求が検出されたかどうかについて判断する。新しいコンポーネント化アプリケーションを定義する要求が検出されたと判断することに応答して、ブロック４０４において、プロセス４００は、選択することができる利用可能な独立アプリケーション・サブコンポーネントを判断する。選択することができる利用可能な独立アプリケーション・サブコンポーネントの判断は、コンポーネント・リポジトリ１１２又は別のローカル若しくは遠隔ストレージ場所内など、サブコンポーネントのストレージ場所内の利用可能なサブコンポーネント識別子を突き止めることによって、行うことができる。
【００６０】
ブロック４０６において、プロセス４００は、利用可能な独立アプリケーション・サブコンポーネントのリスティングを要求中のユーザに提供する。ユーザに提供された利用可能な独立アプリケーション・サブコンポーネントのリスティングは、サブコンポーネント識別子、及び各サブコンポーネントにより提供される機能の関連した記述を含むことができる。上述のように、利用可能な独立アプリケーション・サブコンポーネントはそれぞれ、独立して実行可能な別個のアプリケーション・フィーチャを提供することができ、コンポーネント化アプリケーションを定義するために、これらの別個のアプリケーション・フィーチャを、ユーザにより「ア・ラ・カルト」方式で選択することができる。
【００６１】
決定点４０８において、プロセス４００は、利用可能な独立アプリケーション・サブコンポーネントのユーザ選択を受け取ったかどうかを判断する。利用可能な独立アプリケーション・サブコンポーネントのユーザ選択を受け取ったと判断することに応答して、ブロック４１０において、プロセス４００は、選択されたサブコンポーネントのサブコンポーネント識別子をキャプチャする。
【００６２】
ブロック４１２において、プロセス４００は、選択された利用可能な独立アプリケーション・サブコンポーネントについての文脈指定（context specification）を得るようユーザに促す。同じく上述のように、サブコンポーネントについての文脈を提供して、サブコンポーネントがアクティブ化されたときにサブコンポーネントによりロードし、使用できるデータを事前構成することができる。文脈指定は、所定の実装に適切なように、ストレージ場所、ファイル名、又は文脈場所識別の他の形態を含むことができる。
【００６３】
決定点４１４において、プロセス４００は、文脈指定を受け取ったかどうかを判断する。文脈指定を受け取ったと判断することに応答して、ブロック４１６において、プロセス４００は、文脈指定を、サブコンポーネントのサブコンポーネント識別子に割り当てる。
【００６４】
決定点４１８において、プロセス４００は、「コンポーネント化アプリケーション定義」といったユーザ・インターフェース・ボタンのユーザ選択を検出することなどによって、サブコンポーネントのユーザ選択が完了したかどうかを判断する。サブコンポーネントのユーザ選択が完了していないと判断することに応答して、プロセス４００は、決定点４０８に戻り、付加的なサブコンポーネント選択を処理するために、上述のように繰り返す。従って、プロセス４００は、列挙された利用可能な独立アプリケーション・サブコンポーネントのサブセットのユーザ選択を受け取ることができる。
【００６５】
決定点４１８において、サブコンポーネントのユーザ選択が完了したと判断することに応答して、ブロック４２０において、プロセス４００は、コンポーネント化アプリケーションのテキスト・リスト定義、及び各々がユーザにより指定される割り当てられた文脈を作成し表示する。従って、ユーザは、ユーザに関心のあるフィーチャ及びサブコンポーネントだけを有するようにカスタマイズされ、コンポーネント化されたアプリケーションを定義し、各コンポーネントについての初期データ／文脈を構成することができる。
【００６６】
上述のように、コンポーネント化アプリケーションのテキスト・リスト定義内のサブコンポーネント識別子のリスティングの順序を、それぞれのサブコンポーネントの重要性の優先順位又はランク付け手段として用いることができる。それぞれのサブコンポーネントの重要性の優先順位又はランク付けは、コンポーネント化アプリケーションを呼び出してそれぞれのサブコンポーネントへのユーザ・インターフェースの表示場所を選択する特定のデバイスのフォーム・ファクタ又は他の側面に基づいて利用することができる。さらに、ユーザは、１つのサブコンポーネントとの対話が１つ又は複数のサブコンポーネントの呼び出しをトリガできるように、サブコンポーネントのシーケンスを指定することができる。
【００６７】
従って、ブロック４２２において、プロセス４００は、ユーザがコンポーネント化アプリケーションのテキスト・リスト定義を優先順位付け及び順序付けすることを可能にするために、選択肢に優先順位を付け、順序付けするようユーザに促す。決定点４２４において、プロセス４００は、サブコンポーネントを優先順位付けするために、ユーザが、コンポーネント化アプリケーションの表示されたテキスト・リスティング定義内のいずれかのサブコンポーネント識別子を移動したかどうかを判断する。ユーザが、コンポーネント化アプリケーションの表示されたテキスト・リスティング定義内の１つ又は複数のサブコンポーネントを移動したと判断することに応答して、ブロック４２６において、プロセス４００は、ユーザにより指定されたように、コンポーネント化アプリケーションのテキスト・リスティング定義内の列挙されたサブコンポーネント識別子を再順序付けする。
【００６８】
ブロック４２６において列挙されたサブコンポーネント識別子を再順序付けすることに応答して、又は決定点４２４において、ユーザが表示されたテキスト・リスティング定義内のいずれのサブコンポーネント識別子も移動していないと判断することに応答して、プロセス４００は、決定点４２８において、ユーザがコンポーネント化アプリケーションの表示されたテキスト・リスティング定義内のいずれかのサブコンポーネント識別子の順序付けが指定されたかどうかを判断する。個々の独立サブコンポーネントの順序付けの使用により、１つのサブコンポーネントの使用が、別の順序付けられたサブコンポーネントについての文脈になり、次のサブコンポーネントの呼び出しをもたらし得る。サブコンポーネント識別子の順序付けは、例えば、１つ又は複数のサブコンポーネントに連続的に番号付けすることによって、１つのサブコンポーネントから１つ又は複数の他のサブコンポーネントへの矢印の使用又は所定の実装に適切な他の方法によって、指定することができる。
【００６９】
決定点４２８において、ユーザが、コンポーネント化アプリケーションの表示されたテキスト・リスティング定義内のいずれかのサブコンポーネント識別子の順序付けを指定したと判断することに応答して、ブロック４３０において、プロセス４００は、順序付け情報／指定を、ユーザにより指定されるコンポーネント化アプリケーションのテキスト・リスティング定義に付加する。順序付け情報／指定は、階層、数値の順序指定、又は所定の実装に適切ないずれかの他の手法を用いて、テキスト・リスティング定義内で指定することができる。
【００７０】
ブロック４３０において、順序付け情報／指定をテキスト・リスティング定義に付加することに応答して、又は決定点４２８において、ユーザがサブコンポーネント識別子の順序付けを指定しなかったと判断することに応答して、ブロック４３２において、プロセス４００は、コンポーネント化アプリケーションのテキスト・リスト定義を格納する。プロセス４００は、決定点４０２に戻り、上述のように繰り返す。
【００７１】
従って、プロセス４００は、ユーザにより選択することができる利用可能な独立アプリケーション・サブコンポーネントのリスティングを判断及び提供し、個々の独立した機能のサブコンポーネントのユーザ選択に応答して、コンポーネント化アプリケーションのカスタマイズされたテキスト・リスト定義を作成する。プロセス４００は、ユーザが、サブコンポーネントを優先順位付け及び順位付けし、コンポーネント化アプリケーションのテキスト・リスト定義を格納することを可能にする。上述され、以下により詳細に説明されるように、コンポーネント化アプリケーションのテキスト・リスト定義は、移植可能であり、それらがユーザと対話するとき、それ自体を、指定されたサブコンポーネントの選択的なダウンロードによって、種々のコンピューティング・プラットフォーム上で呼び出すことができる。
【００７２】
図５乃至図７は、カスタマイズされたレディートゥゴー・コンポーネント化アプリケーション定義の実行時の選択的なサブコンポーネント呼び出しのためのプロセス５００の実装の一例のフローチャートを示す。図５は、プロセス５００内の初期の処理を示す。決定点５０２において、プロセス５００は、コンポーネント化アプリケーションのテキスト・リスト定義を呼び出す要求を検出した／受け取ったかを判断する。上述のように、コンポーネント化アプリケーションのテキスト・リスト定義は、セットとして実行される、ユーザにより指定される異なる独立アプリケーション・サブコンポーネントの集合を識別する。
【００７３】
決定点５０２において、コンポーネント化アプリケーションのテキスト・リスト定義を呼び出す要求を検出した／受け取ったと判断することに応答して、ブロック５０４において、プロセス５００は、指定されたサブコンポーネントをダウンロードすべきかどうかを判断する。上述のように、ローカル呼び出しのためにデバイス固有のサブコンポーネントをダウンロードすることができ、又はそれらがユーザと対話するとき、サーバ・プラットフォーム上でサブコンポーネントを呼び出すことができる。従って、プロセス５００は、ローカル実行のための異なる独立アプリケーション・サブコンポーネントのダウンロードと異なる独立アプリケーション・サブコンポーネントの遠隔バージョンの実行のどちらかを選択することができる。
【００７４】
決定点５０４において、指定されたサブコンポーネントをダウンロードすると判断することに応答して、ブロック５０６において、プロセス５００は、コンポーネント化アプリケーションのテキスト・リスト定義内の指定されたサブコンポーネントを識別し、コンポーネント化アプリケーションのテキスト・リスト定義内に指定された異なる列挙された独立アプリケーション・サブコンポーネントの各々のデバイス固有実装をダウンロードする。サブコンポーネントのダウンロードは、コンポーネント・リポジトリ１１２のような遠隔ストレージ場所からのものであってもよい。ブロック５０８において、プロセス５００は、ローカル・ストレージ内に、異なる列挙された独立アプリケーション・サブコンポーネントの各々のダウンロードされたデバイス固有実装を格納する。
【００７５】
代替的に、決定点５０４において、指定されたサブコンポーネントがダウンロードされないと判断することに応答して、ブロック５１０において、プロセス５００は、指定されたサブコンポーネントへの遠隔アクセスを構成する。指定されたサブコンポーネントへの遠隔アクセスの構成は、コンポーネント・リポジトリ１１２、又はコンポーネント化アプリケーション・サーバ＿１  １０８乃至コンポーネント化アプリケーション・サーバ＿Ｍ  １１０の１つ又は複数のような、分散型ネットワーク内の１つ又は複数の遠隔ストレージ場所内のそれぞれのサブコンポーネントを識別し、それらにアクセスすることを含むことができる。
【００７６】
ブロック５０６又は５０８においてデバイス固有サブコンポーネントをダウンロードし、格納することに応答して、又はブロック５１０においてそれぞれのサブコンポーネントへの遠隔アクセスを構成することに応答して、ブロック５１２において、プロセス５００は、コンポーネント化アプリケーションのテキスト・リスト定義から、列挙されたサブコンポーネントを選択する。ブロック５１４において、プロセス５００は、選択された独立アプリケーション・サブコンポーネントの利用可能なサブコンポーネント・インターフェース・フィーチャを判断する。ブロック５１６において、プロセス５００は、選択された独立アプリケーション・サブコンポーネントの利用可能なサブコンポーネント・インターフェース・フィーチャへのインターフェースを提供するユーザ・インターフェース・コンポーネントを作成する。
【００７７】
決定点５１８において、プロセス５００は、サブコンポーネントのテキスト・リスト定義識別子と関連付けられた初期構成情報（例えば、テキスト・リスト定義内のファイルの位置又はテキスト情報）のような文脈が、それぞれのサブコンポーネントに対して定義されたかどうかについて判断する。文脈がそれぞれのサブコンポーネントに対して定義されたと判断することに応答して、ブロック５２０において、プロセス５００は、サブコンポーネントについての定義された文脈を構成し、これは、ファイルをダウンロードすること又は開くこと、文脈定義情報をサブコンポーネントのデータ値に付加すること、又はサブコンポーネントについての文脈を構成するための他の処理を含むことができる。
【００７８】
ブロック５２０においてサブコンポーネントについての文脈を構成することに応答して、又は決定点５１８において、文脈がそれぞれのサブコンポーネントに対して定義されなかったと判断することに応答して、決定点５２２において、プロセス５００は、それぞれのサブコンポーネントについての文脈を得るようユーザに促すかどうかを判断する。従って、テキスト定義内の個々のサブコンポーネントについて文脈が指定できなかった場合、呼び出しの間、ユーザは、サブコンポーネントについての文脈（例えば、クライアント名又は他の情報）を提供するよう促されることがある。さらに、ユーザは、サブコンポーネントについてのデフォルトの／構成された文脈をオーバーライドすることができる。
【００７９】
従って、決定点５２２において、それぞれのサブコンポーネントについての文脈を得るようユーザに促すと判断することに応答して、ブロック５２４において、プロセス５００は、それぞれのサブコンポーネントについての文脈を得る、又は所定の文脈をオーバーライドするようユーザに促す。ブロック５２６において、プロセス５００は、所定の文脈（いずれの文脈も、プロンプトに応答してユーザにより与えられる）を構成又はオーバーライドする。選択肢を有するよう促されたときでも、ユーザは、所定の文脈を構成又はオーバーライドしないように選択できることが理解される。従って、ブロック５２６において、サブコンポーネントについて提供された又はオーバーライドされた文脈がないこともある。
【００８０】
ブロック５２６において所定の文脈（いずれの文脈も、プロンプトに応答してユーザにより与えられる）を構成又はオーバーライドすることに応答して、又は決定点５２２において、それぞれのサブコンポーネントについての文脈を得るようユーザに促さないと判断することに応答して、プロセス５００は、決定点５２８において、コンポーネント化アプリケーションのテキスト・リスト定義において別のサブコンポーネントが指定されるかどうかを判断する。コンポーネント化アプリケーションのテキスト・リスト定義において別のサブコンポーネントが指定されると判断することに応答して、プロセス５００はブロック５１２に戻り、次のサブコンポーネントを選択する。プロセス５００は、上述のように繰り返す。従って、プロセス５００は、各々が異なる列挙された独立アプリケーション・サブコンポーネントの１つの判断された利用可能なサブコンポーネント・インターフェース・フィーチャの各々へのインターフェースを提供するユーザ・インターフェース・コンポーネントのセットを繰り返し作成する。
【００８１】
決定点５２８の説明に戻ると、コンポーネント化アプリケーションのテキスト・リスト定義において別のサブコンポーネントが指定されない（全てのサブコンポーネントが処理される）と判断することに応答して、プロセス５００は、決定点５３０において、コンポーネント化アプリケーションのテキスト・リスト定義内のサブコンポーネントのいずれかに対してシーケンスが指定されたかどうかを判断する。例えば、上述のように、別の独立アプリケーション・サブコンポーネント又は独立アプリケーション・サブコンポーネントのセットを呼び出すように、独立アプリケーション・サブコンポーネントを指定することができる。処理の時点で、それぞれの肯定的又は否定的なテキスト・リスト定義の判断についての付加的な処理を、異なる図面を参照して説明し、図面内の混雑を減らす。これらのそれぞれの図の各々は、以下に詳細に説明される。
【００８２】
従って、決定点５３０において、コンポーネント化アプリケーションのテキスト・リスト定義内のサブコンポーネントのいずれかに対してシーケンスが指定されたと判断することに応答して、プロセス５００は、図６と関連して示され、説明される処理に移行する。
【００８３】
図６は、カスタマイズされたレディートゥゴー・コンポーネント化アプリケーション定義の実行時順序付け及び選択的なサブコンポーネント呼び出しのためのプロセス５００と関連した付加的な処理の第１の部分を示す。図６内で説明される処理は、コンポーネント化アプリケーションのテキスト・リスト定義が、コンポーネント化アプリケーションのテキスト・リスト定義内の異なる独立アプリケーション・サブコンポーネントの少なくとも２つの呼び出しのシーケンスの表示を含むと判断することに応答してサブコンポーネント呼び出しを順序付けるための処理を表す。
【００８４】
ブロック５３２において、プロセス５００は、指定されたシーケンスを選択して、単一のコンポーネント化グラフィカル・インターフェース・ディスプレイ・コンポーネント内のシーケンスと関連付けられた、ユーザ・インターフェース・コンポーネントの作成されたセットを処理し、さらに編成し、優先順位付けする。優先順位付けは、コンポーネント化ユーザ・インターフェース内のコンポーネント化アプリケーションのテキスト・リスト定義の現在のシーケンスにおける、異なる列挙された独立アプリケーション・サブコンポーネントの各々と関連付けられたそれぞれの異なるユーザ・インターフェース・コンポーネントのグラフィカル・ユーザ・インターフェース・レイアウト位置を優先順位付けすることを含むことができる。上述のように、優先順位付けは、コンポーネント化アプリケーションのテキスト・リスト定義のシーケンス内の異なる列挙された独立アプリケーション・サブコンポーネントの各々の識別子の位置に基づくことができる。ブロック５３４において、プロセス５００は、サブコンポーネントの現在のシーケンスの優先順位付けされたグラフィカル・インターフェース・コンポーネントの編成され作成されたセットを含む単一のコンポーネント化グラフィカル・インターフェース・ディスプレイ・コンポーネントを表示する。
【００８５】
決定点５３６において、プロセス５００は、現在のサブコンポーネント・シーケンスについての表示されたコンポーネント化グラフィカル・インターフェース内に表されるサブコンポーネントの１つ又は複数と関連して、ユーザ入力が検出されたかどうかを判断する。プロセス５００はまた、ユーザが、レディートゥゴー・アプリケーションを用いて実施される対話を選択的にキャプチャし、アーカイブに入れることを可能にするユーザ選択可能な対話記録フィーチャを検出することもできることに留意されたい。以下により詳細に説明されるように、これらの対話は、それぞれのサブコンポーネントと関連付けられた文脈変更としてキャプチャすることができる。
【００８６】
サブコンポーネントの１つ又は複数と関連して、ユーザ入力が検出されたと判断することに応答して、ブロック５３８において、プロセス５００は、検出されたユーザ入力によりそれぞれのサブコンポーネントにアクセスする。上述のように、検出されたユーザ入力によるそれぞれのサブコンポーネントへのアクセスは、それぞれのサブコンポーネントへのローカル又は遠隔アクセスとすることができる。
【００８７】
決定点５４０において、プロセス５００は、ユーザ入力が、それぞれのサブコンポーネントのいずれかに対する文脈変更をもたらしたかどうかについて判断する。例えば、ユーザは、コンポーネント化アプリケーションのサブコンポーネントのいずれかの使用と関連して、メモ又は情報を入力することができる。この入力された情報は、コンポーネント化アプリケーションについての新しい又は更新された文脈になることができ、同じ又は異なるコンポーネント化アプリケーション内で後に使用するために、情報をアーカイブに入れることができる。さらに、ユーザは、ユーザがレディートゥゴー・アプリケーションを用いて実施される対話を選択的にキャプチャし、アーカイブに入れることを可能にするユーザ選択可能な対話記録フィーチャを選択することができた。これらの対話は、それぞれのサブコンポーネントと関連付けられた文脈変更としてキャプチャすることができる。
【００８８】
ユーザ入力がそれぞれのサブコンポーネントの１つ又は複数についての文脈変更をもたらしたと判断することに応答して、ブロック５４２において、プロセス５００は、変更された文脈を格納する。決定点５４４において、プロセス５００は、コンポーネント化アプリケーションについての処理が完了したかどうかについて判断する。決定点５４４におけるコンポーネント化アプリケーションについての処理の完了の判断は、例えば、コンポーネント化インターフェースのシーケンスにおける最後のサブコンポーネント又はサブコンポーネントのセットの処理の完了からもたらされ得る。
【００８９】
決定点５４４において、コンポーネント化アプリケーションについての処理が完了していないと判断することに応答して、又は決定点５４０において、ユーザ入力が、それぞれのサブコンポーネントのいずれについての文脈変更ももたらさなかったと判断することに応答して、又は決定点５３６において、サブコンポーネントの１つ又は複数との関連で、ユーザ入力が検出されなかったと判断することに応答して、プロセス５００は、決定点５４６において、サブコンポーネントの次のシーケンスを処理すべきかどうかについて判断する。決定点５４６における、サブコンポーネントの次のシーケンスを処理すべきとの判断は、例えば、コンポーネント化インターフェースの現在のシーケンスに適切な全ての入力の処理の完了からもたらされ得る。
【００９０】
決定点５４６において、現在のシーケンスとの付加的なユーザ対話が検出されると判断することに応答して（即ち、この時点でサブコンポーネントの次のシーケンスを処理すべきでないと判断すること）、プロセス５００は、決定点５３６に戻り、現在のコンポーネント化インターフェースのサブコンポーネントについての付加的なユーザ入力を処理するように、上述のように繰り返す。決定点５４６において、サブコンポーネントの次のシーケンスを処理すべきと判断することに応答して（即ち、現在のシーケンスとの付加的なユーザ対話が完了した又は検出されない）、プロセス５００はブロック５３２に戻り、１つ又は複数のサブコンポーネントの次のシーケンスを選択し、上述のように繰り返す。
【００９１】
従って、プロセス５００は、各々が呼び出しのシーケンス内に示される独立アプリケーション・サブコンポーネントを表す１つ又は複数のユーザ・インターフェース・コンポーネントの第１のセットを含む、第１のコンポーネント化ユーザ・インターフェースを作成する。第１のユーザ・インターフェース・コンポーネントとのユーザ対話に応答して、同じく呼び出しのシーケンス内に示される付加的な独立アプリケーション・サブコンポーネントを表す１つ又は複数の付加的なユーザ・インターフェース・コンポーネントも含む、１つ又は複数の付加的なコンポーネント化ユーザ・インターフェースを作成することにより、プロセスが続行する。プロセス５００はさらに、ユーザ・インターフェース・コンポーネントの付加的なシーケンスを、選択されたものとして及びユーザによりカスタマイズされたものとして処理する。
【００９２】
決定点５４４の説明に戻ると、コンポーネント化アプリケーションについての処理が完了したと判断することに応答して、プロセス５００は、図５の決定点５０２に関連して説明される処理に戻り、上述のように繰り返す。
【００９３】
図５の決定点５３０の説明に戻ると、決定点５３０において、コンポーネント化アプリケーションのテキスト・リスト定義内のサブコンポーネントのいずれについてもシーケンスが指定されなかったと判断することに応答して、プロセス５００は、図７と関連して示され、説明される処理に移行する。
【００９４】
図７は、カスタマイズされたレディートゥゴー・コンポーネント化アプリケーション定義の実行時の選択的なサブコンポーネント呼び出しのためのプロセス５００と関連した付加的な処理の第２の部分を示す。ブロック５４８において、プロセス５００は、単一のコンポーネント化グラフィカル・インターフェース・ディスプレイ・コンポーネント内のサブコンポーネントと関連付けられたユーザ・インターフェース・コンポーネントの作成されたセットを優先順位付けする。上述のように、優先順位付けは、コンポーネント化ユーザ・インターフェース内のコンポーネント化アプリケーションのテキスト・リスト定義の異なる列挙された独立アプリケーション・コンポーネントの各々と関連付けられたそれぞれの異なるユーザ・インターフェース・コンポーネントのグラフィカル・インターフェース・レイアウト位置を優先順位付けすることを含むことができる。同じく上述のように、優先順位付けは、コンポーネント化アプリケーションのテキスト・リスト定義の異なる列挙された独立アプリケーション・サブコンポーネントの各々の識別子の位置に基づくことができる。ブロック５５０において、プロセス５００は、優先順位付けされたユーザ・インターフェース・コンポーネントの編成及び作成されたセットを含む単一のコンポーネント化グラフィカル・インターフェース・ディスプレイ・コンポーネントを表示する。
【００９５】
決定点５５２において、プロセス５００は、表示されたコンポーネント化グラフィカル・インターフェース内に表されるサブコンポーネントの１つ又は複数と関連して、ユーザ入力が検出されたかどうかについて判断する。処理のこの分岐において、プロセス５００は、ユーザがレディートゥゴー・アプリケーションを用いて実施される対話を選択的にキャプチャし、アーカイブに入れることを可能にするユーザ選択可能な対話記録フィーチャのユーザ選択を検出することもできることに留意されたい。以下により詳細に説明されるように、これらの対話は、それぞれのサブコンポーネントと関連付けられた文脈変更としてキャプチャすることができる。
【００９６】
サブコンポーネントの１つ又は複数と関連してユーザ入力が検出されたと判断することに応答して、ブロック５５４において、プロセス５００は、検出されたユーザ入力によりそれぞれのサブコンポーネントにアクセスする。さらに上述されるように、検出されたユーザ入力によるそれぞれのサブコンポーネントへのアクセスは、それぞれのサブコンポーネントへのローカル又は遠隔アクセスとすることができる。
【００９７】
決定点５５６において、プロセス５００は、ユーザ入力が、それぞれのサブコンポーネントのいずれかについての文脈変更をもたらしたかどうかを判断する。例えば、ユーザは、コンポーネント化アプリケーションのサブコンポーネントのいずれかの使用と関連してメモ又は情報を入力することができる。この入力された情報は、コンポーネント化アプリケーションについての新しい又は更新された文脈になることができ、同じ又は異なるコンポーネント化アプリケーション内で後に使用するために、情報をアーカイブに入れることができる。さらに、ユーザは、ユーザがレディートゥゴー・アプリケーションを用いて実施される対話を選択的にキャプチャし、アーカイブに入れることを可能にするユーザ選択可能な対話記録フィーチャを選択できた。これらの対話は、それぞれのサブコンポーネントと関連付けられた文脈変更としてキャプチャすることができる。
【００９８】
ユーザ入力がそれぞれのサブコンポーネントの１つ又は複数についての文脈変更をもたらしたと判断することに応答して、ブロック５５８において、プロセス５００は、変更された文脈を格納する。決定点５６０において、プロセス５００は、コンポーネント化アプリケーションについての処理が完了したかどうかについて判断する。決定点５６０における、コンポーネント化アプリケーションについての処理が完了したとの判断は、例えば、最後のサブコンポーネントの処理の完了からもたらされ得る。
【００９９】
決定点５６０において、コンポーネント化アプリケーションについての処理が完了していないと判断することに応答して、又は決定点５５６において、ユーザ入力がそれぞれのサブコンポーネントのいずれについての文脈変更ももたらさなかったと判断することに応答して、プロセス５００は決定点５５２に戻り、サブコンポーネントの１つ又は複数と関連して、付加的なユーザ入力が検出されたかどうかを判断し、上述のように繰り返す。決定点５６０の説明に戻ると、コンポーネント化アプリケーションの処理が完了したと判断することに応答して、プロセス５００は、図５の決定点５０２と関連して説明された処理に戻り、再び上述のように繰り返す。
【０１００】
従って、プロセス５００は、コンポーネント化アプリケーションのテキスト・リスト定義の呼び出しを提供する。プラットフォーム／デバイス固有の個々の及び独立したサブコンポーネントをダウンロードし、ローカル使用のために構成することができ、又はサーバ・ベースのサブコンポーネントへの遠隔アクセスを構成することができる。各サブコンポーネントについてのインターフェース・フィーチャが決定された場合、各々がサブコンポーネントの１つを表すように、ユーザ・インターフェース・コンポーネントのセットが作成される。事前に構成された文脈情報をそれぞれのサブコンポーネントに供給し、ユーザが別個の独立したサブコンポーネントと個々に対話するのを可能にする、コンポーネント化ユーザ・インターフェース又はコンポーネント化ユーザ・インターフェースのシーケンスを提示することができる。ユーザにより入力された情報を他のユーザのために保持できるように、文脈変更を格納することができる。
【０１０１】
図１乃至図７と関連して上述されるように、例示的システム及びプロセスは、カスタマイズされたレディートゥゴー・コンポーネント化アプリケーション定義を提供する。カスタマイズされたレディートゥゴー・コンポーネント化アプリケーション定義と関連した多くの他の変形及び付加的なアクティビティが可能であり、全てが本主題の範囲内にあると考えられる。
【０１０２】
当業者であれば、上記の教示を考慮すると、一定の上記の例は、ＣＰＵ２０２のようなプログラムされたプロセッサの使用に基づいていることを理解するであろう。しかしながら、特殊用途のハードウェア及び／又は専用プロセッサのようなハードウェア・コンポーネント同等物を用いて、他の実施形態を実施できるので、本発明は、こうした例示的実施形態に限定されない。同様に、汎用コンピュータ、マイクロプロセッサ・ベースのコンピュータ、マイクロコントローラ、光コンピュータ、アナログ・コンピュータ、専用プロセッサ、特定用途向け回路、及び／又は専用配線論理を用いて、代替的な同等の実施を構成することもできる。
【０１０３】
本発明は、システム、方法、及び／又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに、本発明の態様を実行させるための、コンピュータ可読プロセッサ命令をそこに有するコンピュータ可読ストレージ媒体（単数又は複数）を含むことができる。
【０１０４】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持し、格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光記憶装置、電磁気記憶装置、半導体記憶装置、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの：即ち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュメモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル、コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー・ディスク、パンチカード若しくはそこに命令が記録された溝内の隆起構造などの機械的符号化デバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波又は他の自由に伝搬する電磁波、導波路若しくは他の伝送媒体を通じて伝搬する電磁波（例えば、光ファイバ・ケーブルを通る光パルス）、又は配線を通じて伝送される電気信号のような、一時的信号それ自体として解釈されるべきではない。
【０１０５】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピュータピューティング／処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、及び／又は無線ネットワークなどのネットワークを介して外部コンピュータ若しくは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅製伝送ケーブル、光伝送ケーブル、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び／又はエッジ・サーバを含むことができる。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体内に格納するためにコンピュータ可読プログラム命令を転送する。
【０１０６】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、ミリコード、ファームウェア命令、状態設定データ、又はＳｍａｌｌｔａｌｋ、Ｃ＋＋等などのオブジェクト指向型プログラミング言語、及び、「Ｃ」プログラミング言語、若しくは同様のプログラミング言語のような従来の手続き型プログラミング言語を含む１つ又は複数のプログラミング言語のいずれかの組み合わせで書かれたソース・コード若しくはオブジェクト・コードのいずれかとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、スタンドアロンのソフトウェア・パッケージとして、一部がユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある（例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて）。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、又はプログラム可能論理アレイ（ＰＬＡ）を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を用いて電子回路を個人化することにより、コンピュータ可読プログラム命令を実行することができる。
【０１０７】
本発明の態様は、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して、本明細書で説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【０１０８】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装するための手段を作り出すようにすることができる。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、及び／又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、内部に命令が格納されたコンピュータ可読ストレージ媒体が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装する命令を含む製品を製造するようにすることもできる。
【０１０９】
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置、又は他のデバイス上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実行するためのプロセスを提供するようにもできる。
【０１１０】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態によるシステム、方法及びコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための１つ又は複数の実行可能命令を含むモジュール、セグメント、又は命令の部分を表すことができる。幾つかの代替的な実装において、ブロック内に記載された機能は、図面内に記載された順序とは異なる順序で行われ得ることもある。例えば、連続して示された２つのブロックが、関与する機能に応じて、実際には、実質的に同時に実行されることもあり、又は、ときにはブロックが逆順に実行されることもある。また、ブロック図及び／又はフローチャート図の各ブロック、並びにブロック図及び／又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を行う専用ハードウェア・ベースのシステムによって、又は専用ハードウェアとコンピュータ命令との組み合わせによって実装できることにも留意されたい。
【０１１１】
本明細書で用いられる用語は、特定の実施形態のみを説明するためのものであり、本発明を限定することを意図したものではない。本明細書で用いられる場合、単数形「１つの（a）」、「１つの（an）」及び「その（the）」は、文脈が明らかにそうでないことを示さない限り、複数形も同様に含むことを意図したものである。「含む（comprise）」及び／又は「含んでいる（comprising）」という用語は、本明細書で用いられる場合、記述された特徴、整数、ステップ、動作、要素、及び／又はコンポーネントの存在を指示するが、１つ又は複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、及び／又はそれらの群の存在又は追加を排除するものではないこともさらに理解されるであろう。
【０１１２】
以下の特許請求の範囲における全ての「手段又はステップと機能との組み合わせ（ミーンズ又はステップ・プラス・ファンクション）」要素の対応する構造、材料、動作、及び均等物は、その機能を、明確に特許請求される他の特許請求された要素との組み合わせで実行するためのあらゆる構造、材料、又は動作を含むことが意図されている。本発明の説明は、例証及び説明を目的として提示されたものであり、網羅的であること又は本発明を開示された形態に限定することを意図したものではない。本発明の範囲及び趣旨から逸脱しない多くの修正及び変形が当業者には明らかとなるであろう。主題は、本発明の原理及び実際的用途を説明するために、そして、当業者が、企図した特定の用途に適した種々の修正を伴う種々の実施形態に関して本発明を理解できるように、説明された。
【符号の説明】
【０１１３】
１００：システム
１０２〜１０４：コンピューティング・デバイス＿１〜Ｎ
１０６：ネットワーク
１０８〜１１０：コンポーネント化アプリケーション・サーバ＿１〜Ｍ
１１２：コンポーネント・リポジトリ
２００：コア処理モジュール
２０２：中央処理ユニット（ＣＰＵ）（プロセッサ）
２０４：ディスプレイ
２０６：入力デバイス
２０８：通信モジュール
２１０：メモリ
２１２：コンポーネント化アプリケーション定義／リスティング格納領域
２１４：コンポーネント化アプリケーション集約及び実行領域
２１６：コンポーネント化アプリケーション・フレームワーク・モジュール
２１８：相互接続
３００、４００、５００：プロセス
【図１】
0006748578.tif 000002
【図２】
0006748578.tif 000003
【図３】
0006748578.tif 000004
【図４】
0006748578.tif 000005
【図５】
0006748578.tif 000006
【図６】
0006748578.tif 000007
【図７】
0006748578.tif 000008