(57)【要約】ターゲット装置上での実行のための予めコンパイルされた再利用可能なコンポーネント群と対応する設定データを有するソフトウェアアプリケーションを調整する方法。設定データは、アプリケーションが実行されるターゲット装置上で利用可能とされる。アプリケーションを有する各コンポーネントに対して、該当する設定データが決定され、コンポーネントのインスタンスがインスタント化され、設定データに応じて設定される。アプリケーションの実行は、コンポーネントの設定されたインスタンスのやりとりにより少なくとも部分的に決定される。
2006518491.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアにより制御される装置の内部の実行のためのアプリケーションを調整する方法であって、前記装置は複数の予めコンパイルされた再利用可能なコンポーネントを有し、該コンポーネントの少なくとも１つは少なくとも１つの設定可能なプロパティを有し、該方法は、
前記複数の予めコンパイルされたコンポーネントに関する設定データにアクセスするステップと、
各コンポーネントに対し、
該コンポーネントに対応する設定データを決定するステップと、
前記少なくとも１つの設定可能なプロパティを有するコンポーネントのインスタンスを生成するステップと、
前記コンポーネントのインスタンスを前記設定データに応じて前記インスタンスのプロパティを設定することにより設定するステップと、
を有し、
前記アプリケーションの実行は、前記コンポーネントの設定されたインスタンスのやりとりにより少なくとも部分的に決定されることを特徴とする方法。
【請求項２】
請求項１記載の方法であって、
コンポーネントに対応する設定データは、前記コンポーネントにより少なくとも部分的に決定されることを特徴とする方法。
【請求項３】
請求項１または２記載の方法であって、
前記コンポーネントは、アーカイブファイルとして前記装置に利用可能とされることを特徴とする方法。
【請求項４】
請求項１または２記載の方法であって、
前記設定データは、ローカル記憶装置から少なくとも部分的にアクセスされることを特徴とする方法。
【請求項５】
請求項１または２記載の方法であって、
前記設定データは、記録キャリアから少なくとも部分的にアクセスされることを特徴とする方法。
【請求項６】
請求項１または２記載の方法であって、
前記設定データは、ネットワークから少なくとも部分的にアクセスされることを特徴とする方法。
【請求項７】
請求項６記載の方法であって、
前記設定データは、インターネットから少なくとも部分的にアクセスされることを特徴とする方法。
【請求項８】
アプリケーションを開発する方法であって、
予めコンパイルされた再利用可能なコンポーネントのスーツにアクセスするステップと、
少なくとも１つが設定可能なプロパティを有する前記コンポーネントの少なくとも２つの間のやりとりを選択するステップと、
前記選択されたやりとりに応じて、前記プロパティを設定するステップと、
前記設定されたプロパティに応じて、設定データを生成するステップと、
を有し、
前記設定データに応じて設定された前記少なくとも２つのコンポーネントのインスタンスは、前記選択されたやりとりを実行することを可能とされることを特徴とする方法。
【請求項９】
請求項８記載の方法で利用される予めコンパイルされた再利用可能なコンポーネントを開発する方法であって、
設定データに応じて設定可能な前記コンポーネントのプロパティを定義するステップと、
前記設定データにアクセスし、該設定データに応じて前記コンポーネントの設定可能なプロパティを設定するよう動作可能な前記コンポーネントを符号化するステップと、
前記コンポーネントをコンパイルするステップと、
を有することを特徴とする方法。
【請求項１０】
請求項９記載の方法により生成される予めコンパイルされた再利用可能なコンポーネント。
【請求項１１】
請求項１、２、８または９記載の方法であって、
コンポーネントは、予め書き込まれたＪａｖａ（登録商標）クラスであることを特徴とする方法。
【請求項１２】
請求項１、２、８または９記載の方法を実行するよう動作可能なソフトウェアを有する記録キャリア。
【請求項１３】
請求項１、２、８または９記載の方法を実行するよう構成されるソフトウェアユーティリティ。
【請求項１４】
請求項１３記載のソフトウェアユーティリティにより動作に関して指示されるデータプロセッサを有するコンピュータ装置。
【請求項１５】
実質的に添付された図面を参照して説明されたソフトウェアにより制御される装置の内部での実行のためのアプリケーションを調整する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発の技術分野に関し、より詳細には、ソフトウェアでなくアプリケーションの専門家によるソフトウェアアプリケーションの開発に関する。
【背景技術】
【０００２】
セットトップボックス（ＳＴＢ）、ＴＶ、ＶＣＲ、ＤＶＤ、パーソナルビデオレコーダ（ＰＶＲ）やオーディオなどの家電機器を購入する消費者は、豊富な機能を期待するようになってきている。典型的には、ソフトウェアは、このような機能を許容範囲の価格で提供するための手段として利用されている。ＰＣのユーザと異なり、家電機器のユーザは、ソフトウェアのバグやクラッシュに寛容でなく、このため家電機器のソフトウェアは常時ロウバストに動作する必要がある。このことは、ソフトウェアの開発コストを上昇させるより多くのテストを実行することを意味し、投資に対するリターンを最大化するため、メーカーは多数の製品範囲または製品ラインにおいてソフトウェアコードを再利用する傾向となっている。製品のライフサイクルの短期化の傾向は、このような再利用を実現不可能なものとしている（単位あたりのコスト削減手段として）。さらに、ＳＴＢなどの製品は、消費者による複数のサービス提供者へのアクセスを可能にするゲートウェイとして販売されるかもしれない。各サービス提供者が自らの「独自のスタイル」や他の「ルック・アンド・フィール（ｌｏｏｋ  ａｎｄ  ｆｅｅｌ）」を求める場合、すべてのサービス提供者に共通のソフトウェアを利用する目的は、より実現困難となる。
【０００３】
この問題を軽減する１つのアプローチは、例えば、各々がアプリケーション全体のより詳細な特徴を処理する予め書き込みされた下位レベルのソフトウェアモジュールを参照するコードを書き込むことによって、当該アプリケーションの上位レベルにおいてソフトウェアを開発するというものである。例えば、Ｇｌｏｕｄｅｍａｎらによる米国特許第６，０２８，９９８号において、より複雑なシステムを構築するのに接続可能な標準的オブジェクト、アセンブリ及び小規模な機能用途向けアプリケーションのライブラリを提供するフレームワークを有する構築自動化システムを構成するためのアプリケーションフレームワークが開示されている。このアプリケーションフレームワークは、経験豊かな設計者の知識及び最良実施を埋め込み、経験の少ないソフトウェア開発者がシステムを構築することを可能にする。このシステムの短所は、標準的オブジェクトを結び付けるのに追加的なソフトウェアが書き込まれる必要があるという点である。このようなソフトウェアを有するプログラム全体は、ロウバストネスを保証するための厳格なテストの実行を要する。このような要求は、システムが本来的に複雑であるという事実により複合化され、潜在的に高いテストコストを生じる。さらに、例えば、以降において他の特徴（標準的オブジェクトの一インスタンスなど）を追加するなどのマイナーな変更には、アプリケーション全体のテストが再び実行されねばならない。
【０００４】
再利用可能なソフトウェアコンポーネントの一例として、Ｊａｖａ（登録商標）ＴＭクラスを再利用可能なソフトウェアコンポーネントとして利用するのを容易にするＪａｖａＢｅａｎｓＴＭ（米国サンタクララのサンマイクロシステムズからのオブジェクト指向プログラミング（ＯＯＰ）インタフェース）があげられる。Ｊａｖａ（登録商標）ＴＭは、ダウンロード可能な任意のベンダのハードウェア上で実行可能なポータビリティとアーキテクチャ中立性のため、家電機器上で実行されるサービスの提供者には魅力的なものである。ＪａｖａＢｅａｎｓＴＭ（またはビーンズ）は、Ｊａｖａ（登録商標）ＴＭプログラミング言語を用いてプログラムを作成し、ユーザインタフェース（ＵＩ）特性などのプロパティや、他のビーンズと通信するために当該ビーンズをトリガーするイベントを記述するためのＪａｖａＢｅａｎｓＴＭステートメントを含めることにより生成される。１９９７年８月のＪａｖａＷｏｒｌｄの「Ａ  ｗａｌｋｉｎｇ  ｔｏｕｒ  ｏｆ  ＪａｖａＢｅａｎｓ」に説明されるように、開発者がアプリケーションを作成するのにビーンズを結合するとき、統合開発環境（ＩＤＥ）がすべてのビーンズのプロパティとその現在値を含むプロパティシートを提供することが可能である（プロパティシートは、メニューなどを用いてプロパティの設定及び/または閲覧を行うのに利用されるダイアログボックスである）。開発者はプロパティをグラフィカルに設定し、ＩＤＥはこのプロパティをビーンズの設定メソッドへの呼出しに変換し、ビーンズの状態を変更する。これにより、特定のアプリケーションにビーンズがカスタマイズされる。アプリケーションを構築するのにＪａｖａＢｅａｎｓＴＭを使用することは、ＩＤＥシステムが接続されたビーンズが適切に相互動作するのを保証するため、設計時点でのコードの生成及びコンパイルを要求する。アプリケーションが良好に機能すると仮定したとしても、ファイナライズされたアプリケーションプログラムのテスト（例えば、バグやプログラムクラッシュをテストするため）が依然として必要とされる。さらに、費用のかかるＪａｖａ（登録商標）ＴＭプログラマが、アプリケーション自体を開発するのに必要とされる（すなわち、ビーンズを結合する）。
【０００５】
カーネギーメロンソフトウェアエンジニアリングインスティテュートにより発行されているインターネット文献に説明されるように（ｈｔｔｐ：//ｗｗｗ．ｓｅｉ．ｃｍｕ．ｅｄｕ/ｓｔｒ/ｄｅｓｃｒｉｐｔｉｏｎｓ）、再利用可能なソフトウェアコンポーネントが明確に規定されたインフラストラクチャを介して統合される必要がある。このインフラストラクチャは、各種コンポーネントからシステムを構成する結合を提供する。ＯＲＢ（Ｏｂｊｅｃｔ  Ｒｅｑｕｅｓｔ  Ｂｒｏｋｅｒ）は、オブジェクト間の通信及びデータ交換を管理するミドルウェア技術である。オブジェクトの通信の詳細は、開発者から隠され、ＯＲＢにおいて隔離されるという効果を備え、潜在的にはシステムをより保守性の高いものにする。ＯＲＢ技術の問題点は、通信を所望するオブジェクトが可視（可読）データと明確なＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を有することを要求するということである。このようなデータ及びＡＰＩを定義及びおそらく規格化するニーズは、製品開発を遅延させる可能性がある。さらに、ＯＲＢに互換的なオブジェクトとＯＲＢコード自体のコードサイズは大規模なものとなるかもしれず、家電機器において特に関係のある要因は、そのようなコードの格納、ダウンロード及び/または処理を行うのに限られた能力しか備えない傾向がある。
【０００６】
家電市場で活動するサービス提供者は、自らのブランドの構築及び維持を行い、ダイナミックに競合する必要がある。このため、変化する市場トレンドに迅速に対処し、サービス提供者のルック・アンド・フィールを維持するアプリケーションを開発する必要が生じる。さらに、アプリケーションの効果的なライフサイクルは短くなる。これらの要求の何れもが、アプリケーションが迅速かつ安価に開発される必要があるということを意味するものであり、もちろんこのようなアプリケーションは、ロウバストに利用可能である必要がある。上記概略されたものを含むいくつかの従来技術による方法に対して、アプリケーションの開発は、アプリケーションのロウバストネスを保証するため（例えば、バグやクラッシュがほとんどないことを保証するため）、ソフトウェアの専門家（例えば、プログラマなど）による実現に従うアプリケーション要求キャプチャの逐次的タスクから構成される。このような方法の問題点には、開発の遅延及び/またはパフォーマンス不良（テストなどのアプリケーション専門家とプログラマの必要な共同作業により）とコスト（例えば、プログラマの費用）が含まれるかもしれない。さらなる問題点としては、明らかに類似したアプリケーションがロウバストネスを損なうことなく共通のソフトウェアコードを容易に利用することができないという点である。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の課題は、２以上の再利用可能なソフトウェアコンポーネントを利用してソフトウェアベースのアプリケーションを生成する方法により、上記及び他の問題に対する解決策を提供することである。
【課題を解決するための手段】
【０００８】
本発明によると、ソフトウェアにより制御される装置の内部の実行のためのアプリケーションを調整する方法であって、前記装置は複数の予めコンパイルされた再利用可能なコンポーネントを有し、該コンポーネントの少なくとも１つは少なくとも１つの設定可能なプロパティを有し、該方法は、前記複数の予めコンパイルされたコンポーネントに関する設定データにアクセスするステップと、各コンポーネントに対し、該コンポーネントに対応する設定データを決定するステップと、前記少なくとも１つの設定可能なプロパティを有するコンポーネントのインスタンスを生成するステップと、前記コンポーネントのインスタンスを前記設定データに応じて前記インスタンスのプロパティを設定することにより設定するステップとを有し、前記アプリケーションの実行は、前記コンポーネントの設定されたインスタンスのやりとりにより少なくとも部分的に決定されることを特徴とする方法が提供される。
【０００９】
アプリケーションの作成時、ソフトウェアコードの再利用は、全体的なコストを低減するための潜在的手段として考えられる。本発明は、コードの実行のロウバストネスを低下させることなく、アプリケーションによる必要な組み合わせでの予め書き込まれ、テストされたコードブロックの利用を可能にする。このようにすると、１以上のアプリケーションの内部でコードブロックを利用するとき、コードブロックの開発及びテストに費やされる労力及び費用が失われない。これは、例えば、ＪａｖａＢｅａｎｓを用いて構成されたアプリケーションと比較され、いくつかのビーンズを適当にリンクさせるのに追加的なコードが必要とされる（すなわち、それらのプロパティをカスタマイズする）。そのようなコードは、アプリケーション全体をバグやクラッシュに対するロウバストネスを低下させ、及び/またはプログラミングに精通した人々による場合を除き、アプリケーションの構築を妨げる可能性を有する。
【００１０】
アプリケーションにおける利用を容易にするため、ソフトウェアコードブロックは、当該アプリケーションのニーズに適切な１以上の方法により設定可能な１以上の機能またはプロパティを提供するようにしてもよい。このようなプロパティは、以下に限定するものではないが、初期化、ユーザインタフェース（ＵＩ）、アクション及び通信（例えば、他のコンポーネントやインタフェースとの）を含むコード処理の機能または他の特徴に影響を与えるものであるかもしれない。このようなコードブロックは、以降において、コンポーネントとして呼ばれ、予め組み込まれ（すなわち、符号化及び/またはコンパイルなどにより、アプリケーションの開発前に構成される）、設定可能とされるかもしれない。本発明に関しては、予め組み込まれたコンポーネントは、そのような各アプリケーションに再構成される必要なく、様々なアプリケーションに実装可能であるという点で再利用可能である。本発明の一特徴は、コンポーネントの設定が追加的なソフトウェアコード（すなわち、コンポーネントに構成されているものに加えたコード）の書き込みまたはコンパイルなしに実現可能であるという点である。このため、コンポーネントは、当該コンポーネントの設定を少なくとも部分的に実行するため、設定データを決定するようにしてもよい。例えば、コンポーネントは、アプリケーションを構成する１以上のコンポーネントによる１以上のファイル内部の設定データにアクセスするよう構成されてもよい。これに応答して、コンポーネントの１つに関する設定データが認識され、コンポーネントのインスタンスが生成され、コンポーネントのロードまたは当該データに従う１以上の設定タスクを実行するため、データに対し行われる他の任意の方法によって、設定データに従い設定される。本発明によると、２以上のこのように設定されたコンポーネントを適切に合成することにより、アプリケーションが作成され、この設定は、アプリケーションの要求に従ってコンポーネントが相互作用することを可能にするかもしれない。これらのコンポーネントは、以下に限定するものではないが、Ｊａｖａ（登録商標）  Ａｒｃｈｉｖｅ（ＪＡＲ）ファイルまたはＺＩＰファイルを含むアーカイブファイルとして構成されてもよい。アーカイブファイルは、アプリケーションが実行されるソフトウェアにより制御された装置（例えば、ターゲット装置など）に利用可能とされてもよい。
【００１１】
本発明の方法は、任意の適切なプログラミング言語で記述されたコンポーネントにより利用されるかもしれない。好ましくは、コンポーネントは、Ｊａｖａ（登録商標）ＴＭ言語、すなわち、予め書き込まれたＪａｖａ（登録商標）ＴＭクラスとして書き込まれる。適切に設定されたＪａｖａ（登録商標）ＴＭコンポーネントを合成することにより生成される以降のＪａｖａ（登録商標）ＴＭアプリケーションには、アプレット、Ｘｌｅｔ及びサーブレットが含まれる。
【００１２】
本発明のさらなる特徴によると、アプリケーションを開発する方法であって、予めコンパイルされた再利用可能なコンポーネントのスーツにアクセスするステップと、少なくとも１つが設定可能なプロパティを有する前記コンポーネントの少なくとも２つの間のやりとりを選択するステップと、前記選択されたやりとりに応じて、前記プロパティを設定するステップと、前記設定されたプロパティに応じて、設定データを生成するステップと、
を有し、前記設定データに応じて設定された前記少なくとも２つのコンポーネントのインスタンスは、前記選択されたやりとりを実行することを可能とされることを特徴とする方法が提供される。
【００１３】
アプリケーションは、１以上の予めコンパイルされたコンポーネントの相互作用から構成されてもよい。新たなアプリケーションを開発するため、個別及び/または相互のやりとりにより、必要な機能を提供する適切なコンポーネントが選択される。選択されたコンポーネントの少なくとも１つは、設定可能なプロパティを備え、その設定は例えば当該コンポーネントと他のコンポーネントとのやりとりを決定するものであってもよい。これにより、コンポーネントのプロパティは、所望の機能を適切に提供するよう設定されてもよい。この結果、設定データが生成され、所望の機能を実現するため（例えば、コンポーネント間の相互動作）、ターゲットプラットフォーム上にコンポーネントのインスタンスを構成するのに利用可能とされてもよい。
【００１４】
設定データは、関連する１以上のコンポーネントにより読み出されるように、任意の適切な形式により構成されてもよく、このファイル構成には、以下に限定されるものではないが、アレイ、リンクリスト、データマップ、ＸＭＬスクリプトあるいはＡＳＣＩＩテキストが含まれてもよい。この利用において、予め書き込まれ、予めコンパイルされたコンポーネントの設定されたインスタンスを有するアプリケーションは、以下に限定されるものではないが、ＰＣ、ＭＡＣ、家電機器（ＴＶ、ＶＣＲ、ＤＶＤ、ＳＴＢ、ＰＶＲなど）及びインターネット機器を含む適切なターゲットプラットフォーム上で実行されてもよい。与えられたアプリケーションに対し、プラットフォームは、ローカル記憶装置（例えば、ＲＯＭ、ＲＡＭ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）など）、記録キャリア（例えば、ＦＤＤ（Ｆｌｏｐｐｙ（登録商標）  Ｄｉｓｋ  Ｄｒｉｖｅ）、光ディスクなど）、及び/またはネットワークまたはインターネット（イーサネット（登録商標）やダイアルアップ、ブロードバンド、ケーブルなどのモデムを利用して）などからのリモートアクセス、あるいは上記の任意の組み合わせを介し、設定データ及び予めコンパイルされた必要なコンポーネント群にアクセスするようにしてもよい。アプリケーションに関する設定データは、アプリケーションを実現するのに利用されるコンポーネントの識別、コンポーネントを設定するためのデータ及び誘導データの任意の組み合わせから構成されてもよい。この設定データに従って、プラットフォーム上で実行されるソフトウェアは、アプリケーションを実行するため、適切なコンポーネントがインスタント化、設定及び実行されるよう構成されてもよい。
【００１５】
本発明の方法により利用されるコンポーネントを開発するため、当該コンポーネントの１以上の設定可能なプロパティが定義されてもよい。これらのプロパティは、コンポーネントによりアクセス可能な設定データに従って設定可能となるよう定義される。適切な符号化及びコンパイルにより、コンポーネントは、設定データにアクセスし、その設定可能プロパティの１以上を設定するよう構成されてもよい。このようにすることにより、機能的にフレキシブルなコンポーネントのロウバストな動作が依然として実現される。このようなコンポーネントのスーツが、各々が追加的コードの書き込みの必要のない様々なロウバストなアプリケーションを生成するため、各種組み合わせにより適切に相互動作するよう構成されるようにしてもよい。任意的に、コンポーネントに対して適切な追加的ＡＰＩを定義することにより、ベンダや先進的なユーザがさらなる能力向上のため、追加的コンポーネントをアプリケーションに追加することが可能となるかもしれない。
【００１６】
本発明の方法の一特徴によると、アプリケーションを開発するため任意の適切なツールが利用されてもよい。さらに、そのようなツールは、以下に限定されるものではないが、アプリケーションコンポーネントにより利用される言語などの任意の適切な言語を利用するようにしてもよい。一例として、適切なツールの機能には、
・予めコンパイルされたコンポーネントのスーツへの参照を有するライブラリ
・アプリケーション開発者による
−ライブラリからの予めコンパイルされたコンポーネントの選択
−選択されたコンポーネント間の可能なやりとりの提供
−提供されたものからの１以上のやりとり（所望の機能に基づく）の選択
−アプリケーションの構成及びその機能の確認
を可能にするユーザインタフェース
・設定プログラム
−選択されたやりとりに応じた選択されたコンポーネントのプロパティ及び相互動作の設定
−設定されたプロパティに応じた設定データの生成
以上により、本発明による方法は、アプリケーションが既存の適切に組み合わされた予めコンパイルされたソフトウェアコンポーネントを有するが、追加的なソフトウェアの符号化及び/またはコンパイルを必要としないため、スフとウェアプログラミングの精通しない、あるいはプログラミングスキルのない開発者によるアプリケーションの作成を可能にする。これはいくつかの効果を有する。すなわち、アプリケーション開発が、アプリケーションを最も良く理解する専門家により実行可能となり、そのような専門家（例えば、グラフィックデザイナなど）は、プログラマより低コストである傾向があり、アプリケーションの機能レベルのテストのみしか必要とされないため、アプリケーションのより迅速な構築を可能にするソフトウェアコンポーネントの再利用が容易になる。この結果、アプリケーションは、ソフトウェアのバグ及び/またはクラッシュの可能性を増大させることなく、ロウバストなものとなる。構成要素となるコンポーネントは、経験豊かなソフトウェアプログラマにより開発、最適は及びテストを行うことが可能となる。これにより、想定される家電機器や類似のアプリケーションにおいて重要と考えられるプログラムの全体サイズ（例えば、コンパクトさなど）、スピード及び/または特徴をアプリケーションにより実現することが可能となる。例えば、低速のネットワークを介したアプリケーションの容易な転送機能や、適度の記憶及び処理機能を有するターゲットプラットフォーム上でのアプリケーションの格納及び実行は価値がある。
【００１７】
さらなる特徴及び効果は、添付された図面を参照することにより実施例を用いて説明される。
【発明を実施するための最良の形態】
【００１８】
以下の説明では、「設定データ」という用語は、ソフトウェアコンポーネントを特定するデータを有すると共に、当該コンポーネントの１以上のプロパティの設定を決定するものであってもよい。
【００１９】
図１は、本発明の一特徴を実現する一例となる方法のフロー図を示す。本方法は１００により包括的に示され、ソフトウェアにより制御される装置の内部における実行に対するアプリケーションを調整するプロセスを示す。本方法は、１０２において開始され、１０４において設定データがアクセスされる。一装置に対し、以下に限定されるものではないが、ローカル不揮発性記憶媒体（ＲＯＭやＨＤＤなど）、記録キャリア（ＦＤＤ、ＣＤ−ＲＯＭ、Ｚｉｐドライブ、メモリカードなど）あるいはネットワークまたはインターネットウェブサイト上のデータファイルを含むデータにアクセスするための様々なソースが存在するかもしれない。設定データは、１以上のアプリケーションにおいて使用されるコンポーネントの識別子と、そのプロパティを設定するデータとから構成されてもよい。実際、設定データは、アプリケーションにより利用される他のアセット（例えば、映像、音声、グらフックス、テキストなど）への参照を含む１以上のファイル内に備えられてもよい。例えば、類似した機能群や互換性が存在する場合、アプリケーション全体またはその一部に対する設定データファイルが定義されるようにしてもよい。アクセスされた設定データ１０６は、１０８において格納されてもよい。次に、特定された各アプリケーションコンポーネントに対し、１１０において設定が決定され、コンポーネントライブラリ１１４を参照することにより、１１２においてコンポーネントのインスタンスがインスタント化される。コンポーネントライブラリは、装置に対しローカル及び/またはリモートに配置された１以上の記憶部を有するようにしてもよい。例えば、このライブラリは、ローカルの不揮発性記憶装置（ＲＯＭやＨＤＤなど）に格納されているよく利用されるコンポーネント（例えば、多くのアプリケーションに共通なものなど）と共に、ネットワーク上にリモートに格納されている他のコンポーネントを有するようにしてもよい。各コンポーネントは、以下に限定されるものではないが、ＪＡＲやＺＩＰファイルを含む１以上のアーカイブファイルの形式によりターゲットによってアクセス可能とされてもよい。コンポーネントまたはアーカイブファイルは、ネットワークやインターネットからダウンロード可能であってもよいし、あるいは前述の設定データと同様に記録キャリアなどの任意の適切な手段により送られるようにしてもよい。この後、インスタント化されたコンポーネントが、１１６において設定されてもよい（アプリケーションの特定のコンポーネントは設定を要するものであってもよいし、そうでなくてもよい）。その後、本方法は、アプリケーションにより必要とされるすべてのコンポーネントがインスタント化及び設定されることを保証するため、１１８においてループ処理されてもよい。これが実行されると、アプリケーションは１１２において実行の準備が完了する。例えば、アプリケーションの設定データは、アプリケーションの実行時に初期的にフォーカスされるコンポーネントを示すかもしれない。
【００２０】
図２は、設定ツールを用いて開発されるシンプルなアプリケーションの概略を示す。アプリケーションコンポーネントが２００により包括的に示される。アプリケーションツールは、例えば、当該アプリケーションを開発するグラフィックデザイナにより利用されるであろう。ここで、この設定ツール自体は、当該アプリケーションに利用されている言語（すなわち、アプリケーションにより利用されているコンポーネントによるもの）だけでなく、任意の適切なプログラミング言語を用いて構成されてもよい。機能的には、当該ツールは、アプリケーションによる利用のため設計者が選択することができる利用可能なコンポーネントのスーツ（ｓｕｉｔｅ）またはパレット（ｐａｌｅｔｔｅ）２０２を有するか、あるいはアクセスするようにしてもよい。設定ツールプロセスの動作方法の一例として、予めコンパイルされているＪａｖａ（登録商標）ＴＭクラス（コンポーネント）に基づくＭＨＰ（Ｍｕｌｔｉｍｅｄｉａ  Ｈｏｍｅ  Ｐｌａｔｆｏｒｍ）インタラクティブＴＶアプリケーションの生成があげられる。アプリケーションは、通知グラフィックスと、さらなる情報を取得するため電子メールアドレスを入力するテキスト入力手段と、送信及びキャンセルボタンから構成される。設計者は、設定ツールを利用して、グラフィックスコンポーネント２０４のロード及び配置を行い、適切な通知グラフィックファイルをそれにロードする（図２には図示せず）。次に、テキスト入力フィールドコンポーネント２０６が追加され、サイズやフォントなどに対して設定されたプロパティを有するようにしてもよい。このとき、設計者は、送信及びキャンセルとラベル付けされた２つのボタンコンポーネント２０８と２１６を追加してもよい。送信ボタン２０８は、アクションリストに「バックチャネルの呼出し」アクションを有することにより、バックチャネルによる通信を扱うさらなるコンポーネント２１０とやりとりするかもしれない。バックチャネルコンポーネント２１０は、バックチャネル２１４を下って送信されるテキスト入力フィールドのコンテンツ２１２に対して構成される送信テキストフィールドをアクションリストに有するようにしてもよい。キャンセルボタン２１６は、アプリケーションを終了するため（２１８）、終了アクションをそのアクションリストに有するかもしれない。当該ツールは、コンポーネント間の適切なやりとりをテストするため、アプリケーションを実施する（例えば、シミュレーションにより）機能を設計者に提供するようにしてもよい。アプリケーションが開発されると、このアプリケーションに対応する設定データが出力され、アプリケーションにより利用される適切なコンポーネント（アプリケーションコア、グラフィック、テキスト入力、ボタン及びバックチャネルを含む）が、ＪＡＲまたはＺＩＰファイルにアーカイブされてもよい（２２２）。任意の適切な方法により、設定データは、以下に限定されるものではないが、ローカル記憶装置、記録キャリア、ネットワークまたはインターネットなどを介しターゲットプラットフォームに利用可能となる。同様に、コンポーネント（例えば、ＪＡＲまたはＺＩＰファイルなど）はまた、上記機能の１以上（必ずしも同一でな��てもよい）を介し利用可能とされてもよい。設定ツールは、アプリケーションのための複数の設定データ及び/またはＪＡＲやＺＩＰファイルを生成するようにしてもよい。これらのファイルは、上記機構の任意の組み合わせにおいてターゲットに利用可能とすることができるということは当業者には明らかであろう。
【００２１】
本発明の特徴を実現するより詳細な実施例が、以下において説明される。この実施例は、複数のサービス提供者からデジタルテレビサービス（例えば、ＭＨＰに関する）を受信するのに利用される家電装置（例えば、ＳＴＢやＰＶＲなど）に関し、装置自体は、前述の本発明の方法により生成された適切なＪａｖａ（登録商標）  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ（ＪＶＭ）及びＪａｖａ（登録商標）ＴＭアプリケーションが予めロードされた規格製品である。実際には、Ｊａｖａ（登録商標）ＴＭアプリケーションは、家電装置のファームウェアの一部として実装されてもよい。Ｊａｖａ（登録商標）ＴＭアプリケーションにより利用されるコンポーネントは、上述のような設定ツールを利用したＪＡＲファイルに構成されるものであってもよい。
【００２２】
各サービス提供者は、Ｊａｖａ（登録商標）ＴＭアプリケーションの実行時に、設定データが当該サービス提供者の要求に従うＪａｖａ（登録商標）ＴＭアプリケーションのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）の誘導とルック・アンド・フィールの構成及び設定が可能となるように、自身の設定データを作成している（例えば、内部のグラフィックデザイナを利用して）。例えば、ある提供者は自らのサービスを通知するスプラッシュ画面からサービスを開始することを所望するかもしれず、他の提供者は電子番組ガイド（ＥＰＧ）に直接移行するのを所望するかもしれず、また第３の提供者は新しい情報を提供することにより開始することを所望するかもしれない。図３は、共通のＪａｖａ（登録商標）ＴＭベースのアプリケーションに対する設定データを生成する一例となるプロセスを概略的に示す。このプロセスは３００により包括的に示され、共通アプリケーション３０６を設定するための設定データを生成するのにサービス提供者により利用される設定ツール３０２を有する。同様に、他のサービス提供者は、当該共通アプリケーションに対する設定データを生成する。サービス提供者に対応する設定データ群３０４が、共通Ｊａｖａ（登録商標）ＴＭアプリケーション３０６を設定するのに利用可能となる。あるサービス提供者に対するユーザアプリケーション３０８を実現するため、当該サービス提供者に対応する設定データ３０４が、アプリケーション３０６のインスタンスを設定する。ユーザが各提供者に特有の設定されたアプリケーションの他の特徴またはカスタマイズされたルック・アンド・フィールの遅延または損失なく、サービス提供者間での間断ない切り替えを行うことができるように、家電装置上でアプリケーションの複数のインスタンスを同時に実行することができるようにしてもよい。
【００２３】
設定データは、家電装置との接続が確立されるとダウンロードされ、その後不揮発性メモリ（フラッシュメモリやＨＤＤなど）に格納されるようにしてもよい。しかしながら、サービス提供者が異なるユーザアプリケーションの提供またはデータ（例えば、ＥＰＧなど）の更新を所望する場合、新たな設定データをダウンロードすることができ、この新たなデータによりＪａｖａ（登録商標）ＴＭアプリケーションを再スタートする（あるいは、設定データがページ毎に１つのファイルに基づく場合、適切なオブジェクトのみが必要に応じて更新される。）。従って、一部のユーザアプリケーションは頻繁には変更されず、他のユーザアプリケーションはリアルタイムにより変更されるようにしてもよい（例えば、デジタル文字放送サービスなど）。このようなユーザアプリケーションにおいて利用されるコンポーネントは、例えば、バックチャネル接続（電話やケーブルを介した）、テキスト入力装置、ビットマップ画像などであってもよく、あるいは完全なＥＰＧなどのより複雑なものであってもよい。何れの場合でも、その様相及び動作方法は、実際の設定データに依存するであろう。
【００２４】
図４は、Ｊａｖａ（登録商標）ＴＭベースアプリケーションの構成の一例を示す概略図である。これは、例えば、セットトップボックスなどのターゲット装置に備えられたアプリケーションの構成である。設定データ４０２は、ターゲット装置に利用可能とされる。Ｊａｖａ（登録商標）ＴＭアプリケーションは、１以上のＪＡＲファイル４０４に含まれ、設定ツールにより選択された（アプリケーションの生成時）コンポーネント４１０と４１２を有する。アプリケーションローダクラス（コンポーネント）４０６は、設定データ４０２を読み出し、ＪＡＲファイルにおいて利用可能なコンポーネントに対応すべきユーザアプリケーションに必要とされるコンポーネントを決定する。このとき、ローダは、設定データの構文解析４１４を開始し、構文解析データ４１４をＪＡＲファイルの第１の必要とされるコンポーネント４１０に転送する。当該コンポーネントは、構文解析データを静的メソッドとして構文解析する（４１６）。対応するデータ群が検出されると、静的メソッドは、コンポーネントのインスタンスを生成し、当該データに従ってそのプロパティを設定する。当該コンポーネントのインスタンス上で、またはそれにより実行されるアクション４１８がまた、設定データに従って決定される。このとき、残りの構文解析データ４１４は、すべての必要なコンポーネントがインスタント化及び設定され、アクションが決定されるまで、構文解析のため残りのコンポーネント（この例では、コンポーネント４１２のみ）に転送される。コンポーネント４１０と同様の方法により、コンポーネント４１２に関して、構文解析データが構文解析され（４２４）、コンポーネントのインスタンスが生成され、当該インスタンス上で、またはそれによって実行されるアクション４２６が決定される。すべてのインスタント化されたコンポーネント４２０のリスト４０８が、アプリケーションローダ４０６に返される。最後に、ローダは、ターゲットプラットフォームにより何れの手段が利用されることにより実行されるアプリケーションを開始する（４２２）。
【００２５】
本発明をサポートするコンポーネントは、以下の要素を有するようにしてもよい。
・新たなインスタンスを生成するメソッド
・該当するトークンに対してのみ動作し、残りを次のコンポーネントにわたすアプリケーションローダによりわたされる設定データを受信する構文解析メソッド
・各インスタンスに対し、構文解析されたデータから自らを設定し、実行すべきアクションに対するパラメータを収集するメソッド
・誘導メソッドを含む当該コンポーネントのインスタンス上で、またはそれによって実行されるアクションを実現するメソッド  これらのインスタンスと関連するメソッドのリスト全体が、アプリケーションを構成するようにしてもよい。
【００２６】
上記方法及び実現形態は、例示的に与えられたものであり、本発明の効果を利用するため、当業者によって容易に特定可能な方法及び実現形態の範囲の選択を表す。
【００２７】
上記の図１を参照した説明では、ターゲット装置上での実行のため、予めコンパイルされ再利用可能なコンポーネント群と対応する設定データを有するソフトウェアアプリケーションを調整する方法が開示される。設定データ１０８は、アプリケーションが実行されるターゲット装置に利用可能とされる。アプリケーションを有する各コンポーネントに対し、該当する設定データが決定され（１１０）、当該コンポーネントのインスタンスがインスタント化され（１１２）、設定データに応じて設定される（１１６）。アプリケーションの実行（１２０）は、コンポーネントの設定されたインスタンスのやりとりにより少なくとも部分的に決定される。
【図面の簡単な説明】
【００２８】
【図１】図１は、本発明の一特徴を実現する一例となる方法をフロー図である。
【図２】図２は、設定ツールを用いて開発されたシンプルなアプリケーションの概略図である。
【図３】図３は、アプリケーションの生成及び実行を行うためのプロセス全体を示す概略図である。
【図４】図４は、Ｊａｖａ（登録商標）ＴＭベースアプリケーションの構成の一例を示す概略図である。
【図１】
2006518491.tif 000003
【図２】
2006518491.tif 000004
【図３】
2006518491.tif 000005
【図４】
2006518491.tif 000006