(57)【要約】【課題】アプリケーションを実行する際に、各機器のグラフィカル性能の違いを吸収して適切なＧＵＩを提供する。【解決手段】クライアント１７は、アプリケーションが起動されると、サーバ１０に対して選択されたアプリケーションのアプリケーションＩＤと、クライアント１７のプロファイルデータを送信する。サーバ１０は、アプリケーションＩＤとプロファイルデータを受信すると、そのアプリケーションＩＤに対応するアプリケーションプログラムと、そのプログラムに関連付けられたリソースデータおよびイメージデータを検索し、プロファイルデータに基づいて、そのリソースデータとイメージデータを変換する。変換後のリソースデータとイメージデータは、アプリケーションプログラムと共にクライアント１７に提供される。【選択図】図２
2006236323.tif 000002
【特許請求の範囲】
【請求項１】
互いにネットワークで接続されたサーバとクライアントを含み、
上記サーバは、
少なくともアプリケーションプログラムおよびリソースデータを記憶する記憶部と、
上記クライアントから、アプリケーションＩＤとプロファイルデータとを受信する受信部と、
上記アプリケーションＩＤに対応するアプリケーションプログラムを上記記憶部から検索するとともに、検索された上記アプリケーションプログラムが参照するリソースデータを上記記憶部から検索する検索部と、
上記プロファイルデータに基づいて、検索された上記リソースデータを変換する変換部と、
上記検索部により検索された上記アプリケーションプログラムと、上記変換部により変換された上記リソースデータとを、上記クライアントに提供するデータ提供部とを有し、
上記クライアントは、
アプリケーションが選択された場合に、選択された上記アプリケーションに対応する上記アプリケーションＩＤと上記クライアントの特性を表す上記プロファイルデータを、上記ネットワークを介して上記サーバに送信する送信部と、
上記送信部による上記アプリケーションＩＤと上記プロファイルデータの送信に応答して上記サーバが提供した上記アプリケーションプログラムおよび上記リソースデータを取得するデータ取得部と、
上記データ取得部によって取得した上記アプリケーションプログラムを、上記データ取得部によって取得した上記リソースデータを参照して上記クライアント上で実行するよう制御する実行制御部と
を有する
ことを特徴とするアプリケーション提供システム。
【請求項２】
請求項１に記載のアプリケーション提供システムにおいて、
上記プロファイルデータは、上記クライアントのグラフィカル・ユーザインタフェースに関連する項目を含む
ことを特徴とするアプリケーション提供システム。
【請求項３】
請求項２に記載のアプリケーション提供システムにおいて、
上記変換部は、上記アプリケーションプログラムが、上記クライアントに適合したグラフィカル・ユーザインタフェースを実現できるように上記リソースデータの変換を行う
ことを特徴とするアプリケーション提供システム。
【請求項４】
請求項１に記載のアプリケーション提供システムにおいて、
上記プロファイルデータは、上記クライアントの少なくとも表示解像度を示す情報を含み、
上記リソースデータは、少なくともＧＵＩコンポーネントの配置情報を含む
ことを特徴とするアプリケーション提供システム。
【請求項５】
請求項４に記載のアプリケーション提供システムにおいて、
上記変換部は、
上記プロファイルデータに含まれる上記表示解像度を示す情報に基づき、上記リソースデータに含まれる上記配置情報を変更する
ことを特徴とするアプリケーション提供システム。
【請求項６】
請求項４に記載のアプリケーション提供システムにおいて、
上記記憶部に記憶される上記リソースデータは、予め作成された、異なる複数のアスペクト比にそれぞれ対応した複数の上記配置情報を含み、
上記変換部は、
上記プロファイルデータに含まれる上記表示解像度を示す情報に基づき、上記リソースデータに含まれる上記複数の配置情報から１つを選択する
ことを特徴とするアプリケーション提供システム。
【請求項７】
請求項６に記載のアプリケーション提供システムにおいて、
上記変換部は、上記リソースデータに含まれる上記複数の配置情報に対応した上記アスペクト比のそれぞれと、上記表示解像度を示す情報から計算されるアスペクト比とを比較して、上記複数の配置情報のうち最も近いアスペクト比に対応する配置情報を選択する
ことを特徴とするアプリケーション提供システム。
【請求項８】
請求項６に記載のアプリケーション提供システムにおいて、
上記変換部は、上記表示解像度を示す情報から計算されるアスペクト比を閾値により判断して、上記複数の配置情報から１つを選択する
ことを特徴とするアプリケーション提供システム。
【請求項９】
請求項１に記載のアプリケーション提供システムにおいて、
上記サーバの上記データ提供部は、
上記検索部により検索された上記アプリケーションプログラムが記憶されている位置の情報と、上記変換部により変換された上記リソースデータが記憶されている位置の情報とを、上記ネットワークを介して上記クライアントに送信することにより、上記クライアントの上記データ取得部が、上記アプリケーションプログラムおよび上記リソースデータを取得できるようにした
ことを特徴とするアプリケーション提供システム。
【請求項１０】
少なくともアプリケーションプログラムおよびリソースデータを記憶する記憶部と、
ネットワークを介して接続されたクライアントから、アプリケーションＩＤと上記クライアントの特性を表すプロファイルデータを受信する受信部と、
上記アプリケーションＩＤに対応するアプリケーションプログラムを上記記憶部から検索するとともに、検索された上記アプリケーションプログラムが参照するリソースデータを上記記憶部から検索する検索部と、
上記プロファイルデータに基づいて、検索された上記リソースデータを変換する変換部と、
上記検索部により検索された上記アプリケーションプログラムと、上記変換部により変換された上記リソースデータとを、上記クライアントに提供するデータ提供部と
を有する
ことを特徴としたサーバ。
【請求項１１】
請求項１０に記載のサーバにおいて、
上記プロファイルデータは、上記クライアントのグラフィカル・ユーザインタフェースに関連する項目を含む
ことを特徴とするサーバ。
【請求項１２】
請求項１０に記載のサーバにおいて、
上記プロファイルデータは、上記クライアントの少なくとも表示解像度を示す情報を含み、
上記リソースデータは、少なくともＧＵＩコンポーネントの配置情報を含む
ことを特徴とするサーバ。
【請求項１３】
請求項１２に記載のサーバにおいて、
上記変換部は、
上記プロファイルデータに含まれる上記表示解像度を示す情報に基づき、上記リソースデータに含まれる上記配置情報を変更する
ことを特徴とするサーバ。
【請求項１４】
請求項１２に記載のサーバにおいて、
上記記憶部に記憶される上記リソースデータは、予め作成された、異なる複数のアスペクト比にそれぞれ対応した複数の上記配置情報を含み、
上記変換部は、
上記プロファイルデータに含まれる上記表示解像度を示す情報に基づき、上記リソースデータに含まれる上記複数の配置情報から１つを選択する
ことを特徴とするサーバ。
【請求項１５】
請求項１４に記載のサーバにおいて、
上記変換部は、上記リソースデータに含まれる上記複数の配置情報に対応した上記アスペクト比のそれぞれと、上記表示解像度を示す情報から計算されるアスペクト比とを比較して、上記複数の配置情報のうち最も近いアスペクト比に対応する配置情報を選択する
ことを特徴とするサーバ。
【請求項１６】
請求項１４に記載のサーバにおいて、
上記変換部は、上記表示解像度を示す情報から計算されるアスペクト比を閾値により判断して、上記複数の配置情報から１つを選択する
ことを特徴とするサーバ。
【請求項１７】
アプリケーションが選択された場合に、選択された上記アプリケーションに対応するアプリケーションＩＤと自身の特性を表す上記プロファイルデータを、ネットワークを介して接続されたサーバに送信する送信部と、
上記送信部による上記アプリケーションＩＤと上記プロファイルデータの送信に応答して上記サーバが提供したアプリケーションプログラムおよびリソースデータを取得するデータ取得部と、
上記データ取得部によって取得した上記アプリケーションプログラムを、上記データ取得部によって取得した上記リソースデータを参照して実行するよう制御する実行制御部と
を有する
ことを特徴とするクライアント。
【請求項１８】
請求項１７に記載のクライアントにおいて、
上記プロファイルデータは、上記クライアントのグラフィカル・ユーザインタフェースに関連する項目を含む
ことを特徴とするクライアント。
【請求項１９】
クライアント上でアプリケーションが選択された場合に、選択された上記アプリケーションに対応するアプリケーションＩＤと上記クライアントの特性を表すプロファイルデータとを、ネットワークを介して接続されたサーバに送信する送信ステップと、
上記サーバ上で、上記クライアントから送信された上記アプリケーションＩＤと上記プロファイルデータとを受信する受信ステップと、
上記サーバ上で、上記アプリケーションＩＤに対応するアプリケーションプログラムを記憶部から検索するとともに、検索された上記アプリケーションプログラムが参照するリソースデータを上記記憶部から検索する検索ステップと、
上記サーバ上で、上記プロファイルデータに基づいて、検索された上記リソースデータを変換する変換ステップと、
上記サーバ上で、上記検索ステップにより検索された上記アプリケーションプログラムと、上記変換ステップにより変換された上記リソースデータとを、上記クライアントに提供するデータ提供ステップと、
上記クライアント上で、上記データ提供ステップにより上記サーバから提供された上記アプリケーションプログラムおよび上記リソースデータを取得するデータ取得ステップと、
上記クライアント上で、上記データ取得ステップによって取得した上記アプリケーションプログラムを、上記データ取得ステップによって取得した上記リソースデータを参照して実行するよう制御する実行制御ステップと
を有する
ことを特徴とするアプリケーション提供方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＧＵＩアプリケーションの実行を管理するシステムに関し、より詳しくは、クライアントの要求に基づいて、サーバからクライアントに対して、実行に必要なデータを提供するようにしたアプリケーション提供システム、サーバ、クライアントおよびアプリケーション提供方法に関する。
【背景技術】
【０００２】
近年、情報処理技術や無線通信技術などの発達を背景に、パーソナルコンピュータといったコンピュータ装置、携帯電話やＰＤＡ(Personal Digital Assistance)などの通信端末、情報家電などの機器の家庭への普及がすすんでいる。これらの機器は、通常、ＬＣＤ(Liquid Crystal Display)などの表示装置を備えており、これによってユーザとのＧＵＩ(Graphical User Interface)を実現する。例えば、ユーザは、この表示装置上に表示されたメニューや入力ボタンなどのグラフィック表示に対して、マウスやペン、リモートコントロールコマンダなどの入力手段により所定の操作を行うことにより、当該機器に所定の指示を与える。
【０００３】
従来、上述した機器の一形態であるＣＥ(Consumer Electronics)機器などにおいて、新しいアプリケーションを追加する場合や、新しいサービスの開始に伴ってそのサービスに対応するクライアントアプリケーションを追加する場合に、そのアプリケーションのＧＵＩは、ＷＥＢブラウザ上に指示画面などを表示させ、ＨＴＴＰ(HyperText Transfer Protocol)などのプロトコルを使ってサーバとデータをやりとりする仕様のものが多かった。ＷＥＢブラウザを用いると、ボタンや入力エリアなどのＧＵＩコンポーネントは自動的にレイアウトされ、これらが所定の表示領域を超えて配置されても、ユーザは、スクロール操作を行うことによって、そのＧＵＩコンポーネントを表示させ、表示内容を確認したり、入力操作を行ったりすることができ、容易にＧＵＩを構成することができる。
【０００４】
また、特許文献１では、装置プラットフォーム独立型のアプリケーション・グラフィカル・ユーザインタフェースを、複数の異種装置プラットフォームで表示するためにスケジューリングする拡張型のグラフィカル・ユーザインタフェース・アーキテクチャが開示されている。
【特許文献１】特開２００３−１８６６６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述したような、ＷＥＢブラウザを用いたＧＵＩを用いると、開発サイドでは、どのような機種に対しても同じアプリケーションを用いることができるという利点がある反面、ユーザビリティの点では一定の限界が存在する。すなわち、ＷＥＢブラウザでは、ＨＴＭＬ(Hyper Text Markup Language)などの規定によって実現可能な表示形態に限定されるために、個々の機器について特徴的なデザインを採用することが困難であるという問題点があった。
【０００６】
すなわち、ユーザのサービス選択によって起動するアプリケーションのＧＵＩ画面は、元々の機器に組み込まれているアプリケーションのデザインおよび使い勝手（ルックアンドフィール）が同じであることが好ましい。しかしながら、ＷＥＢブラウザでは、ルックアンドフィールの統一感を実現することはきわめて困難であるという問題点があった。
【０００７】
また、ＷＥＢブラウザを用いたＧＵＩは、ＧＩＦ(Graphics Interchange Format)ファイルなどのイメージデータとＨＴＭＬなどで表現された表示に関するデータを、異なる機種の間で共通して用いることができるという利点を有する。しかしながら、そのために、ＷＥＢブラウザでは、ＣＥ機器のそれぞれの特性に適したユーザインタフェースを実現することが困難であるという問題点があった。
【０００８】
例えば、ＷＥＢブラウザを用いて入力画面などを表示する場合、ＣＥ機器の表示デバイスによって使用可能な色や画面サイズが異なるときに、これらの違いに自動的に対応することができない。さらに、ＣＥ機器などでは、タッチパネルを有するものやリモコン（リモートコントロールコマンダ）を用いるものもあるが、ＷＥＢブラウザでは、これらの機能に最適に対応することが困難である。
【０００９】
他方、特許文献１には、異種装置プラットフォームでグラフィカル・ユーザインタフェースを提供するためのアーキテクチャが示されているが、この技術は、アプリケーションが起動する装置の特性に合わせて装置独立型の中間表示を動的に変換するにすぎない。中間表示の変換により、ＧＵＩコンポーネントが他の同様の機能を有するコンポーネントに置き換えられる場合もある（図５）。
【００１０】
したがって、この発明の目的は、様々な種類の機器でアプリケーションを実行する際に、各機器の表示に関する機能に応じて適切なＧＵＩを提供する、アプリケーション提供システム、サーバ、クライアントおよびアプリケーション提供方法を提供することにある。
【００１１】
また、この発明のさらなる目的は、機器からアプリケーションを起動する旨の要求があった場合に、サーバが、指定されたアプリケーションのＧＵＩを実現するためのデータを、その機器の表示に関する機能に応じて決定し、そのようにして決定されたデータを当該機器に送信するように構成された、アプリケーション提供システム、サーバ、クライアントおよびアプリケーション提供方法を提供することにある。
【課題を解決するための手段】
【００１２】
上述した課題を解決するために、第１の発明は、互いにネットワークで接続されたサーバとクライアントを含み、サーバは、少なくともアプリケーションプログラムおよびリソースデータを記憶する記憶部と、クライアントから、アプリケーションＩＤとプロファイルデータとを受信する受信部と、アプリケーションＩＤに対応するアプリケーションプログラムを記憶部から検索するとともに、検索されたアプリケーションプログラムが参照するリソースデータを記憶部から検索する検索部と、プロファイルデータに基づいて、検索されたリソースデータを変換する変換部と、検索部により検索されたアプリケーションプログラムと、変換部により変換されたリソースデータとを、クライアントに提供するデータ提供部とを有し、クライアントは、アプリケーションが選択された場合に、選択されたアプリケーションに対応するアプリケーションＩＤとクライアントの特性を表すプロファイルデータを、ネットワークを介してサーバに送信する送信部と、送信部によるアプリケーションＩＤとプロファイルデータの送信に応答してサーバが提供したアプリケーションプログラムおよびリソースデータを取得するデータ取得部と、データ取得部によって取得したアプリケーションプログラムを、データ取得部によって取得したリソースデータを参照してクライアント上で実行するよう制御する実行制御部とを有することを特徴とするアプリケーション提供システムである。
【００１３】
また、第２の発明は、少なくともアプリケーションプログラムおよびリソースデータを記憶する記憶部と、ネットワークを介して接続されたクライアントから、アプリケーションＩＤとクライアントの特性を表すプロファイルデータを受信する受信部と、アプリケーションＩＤに対応するアプリケーションプログラムを記憶部から検索するとともに、検索されたアプリケーションプログラムが参照するリソースデータを記憶部から検索する検索部と、プロファイルデータに基づいて、検索されたリソースデータを変換する変換部と、検索部により検索されたアプリケーションプログラムと、変換部により変換されたリソースデータとを、クライアントに提供するデータ提供部とを有することを特徴としたサーバである。
【００１４】
また、第３の発明は、アプリケーションが選択された場合に、選択されたアプリケーションに対応するアプリケーションＩＤと自身の特性を表すプロファイルデータを、ネットワークを介して接続されたサーバに送信する送信部と、送信部によるアプリケーションＩＤとプロファイルデータの送信に応答してサーバが提供したアプリケーションプログラムおよびリソースデータを取得するデータ取得部と、データ取得部によって取得したアプリケーションプログラムを、データ取得部によって取得したリソースデータを参照して実行するよう制御する実行制御部とを有することを特徴とするクライアントである。
【００１５】
また、第４の発明は、クライアント上でアプリケーションが選択された場合に、選択されたアプリケーションに対応するアプリケーションＩＤとクライアントの特性を表すプロファイルデータとを、ネットワークを介して接続されたサーバに送信する送信ステップと、サーバ上で、クライアントから送信されたアプリケーションＩＤとプロファイルデータとを受信する受信ステップと、サーバ上で、アプリケーションＩＤに対応するアプリケーションプログラムを記憶部から検索するとともに、検索されたアプリケーションプログラムが参照するリソースデータを記憶部から検索する検索ステップと、サーバ上で、プロファイルデータに基づいて、検索されたリソースデータを変換する変換ステップと、サーバ上で、検索ステップにより検索されたアプリケーションプログラムと、変換ステップにより変換されたリソースデータとを、クライアントに提供するデータ提供ステップと、クライアント上で、データ提供ステップによりサーバから提供されたアプリケーションプログラムおよびリソースデータを取得するデータ取得ステップと、クライアント上で、データ取得ステップによって取得したアプリケーションプログラムを、データ取得ステップによって取得したリソースデータを参照して実行するように制御する実行制御ステップとを有することを特徴とするアプリケーション提供方法である。
【００１６】
上述したように、第１および第４の発明は、クライアント上でアプリケーションが選択された場合に、選択されたアプリケーションに対応するアプリケーションＩＤとクライアントの特性を表すプロファイルデータとを、ネットワークを介して接続されたサーバに送信し、クライアントから送信されたアプリケーションＩＤとプロファイルデータとをサーバが受信すると、サーバは、アプリケーションＩＤに対応するアプリケーションプログラムを記憶部から検索するとともに、検索されたアプリケーションプログラムが参照するリソースデータを記憶部から検索し、検索されたリソースデータをプロファイルデータに基づいて変換し、検索されたアプリケーションプログラムと変換されたリソースデータとをクライアントに提供し、クライアントは、サーバから提供されたアプリケーションプログラムおよびリソースデータを取得すると、取得したアプリケーションプログラムを、取得したリソースデータを参照して実行するように制御しているため、クライアントは、自身に適合したリソースデータを、サーバから取得することができる。
【００１７】
また、第２の発明は、記憶部に少なくともアプリケーションプログラムおよびリソースデータが記憶され、ネットワークを介して接続されたクライアントから、アプリケーションＩＤとクライアントの特性を表すプロファイルデータを受信し、アプリケーションＩＤに対応するアプリケーションプログラムを記憶部から検索するとともに、検索されたアプリケーションプログラムが参照するリソースデータを記憶部から検索し、検索されたリソースデータをプロファイルデータに基づいて変換し、検索されたアプリケーションプログラムと変換されたリソースデータとをクライアントに提供するようにしているため、クライアントに対して、当該クライアントに適合したりソースデータを提供することができる。
【００１８】
また、第３の発明は、アプリケーションが選択された場合に、選択されたアプリケーションに対応するアプリケーションＩＤと自身の特性を表すプロファイルデータをネットワークを介して接続されたサーバに送信し、アプリケーションＩＤとプロファイルデータの送信に応答してサーバが提供したアプリケーションプログラムおよびリソースデータを取得して、取得したアプリケーションプログラムを、取得したリソースデータを参照して実行するように制御するため、クライアントは、自身に適合したリソースデータを、サーバから取得することができる。
【発明の効果】
【００１９】
この発明に係るアプリケーション提供システムによって、各機器からアプリケーションの実行が指示された場合に、サーバから、その機器のＧＵＩ機能に応じてＧＵＩ関連データ（リソースデータおよびイメージデータ）が送信され、当該機器において好適なＧＵＩが実現されるという効果がある。例えば、アプリケーションの実行が指示された機器の画面サイズ、画像処理能力、カラー表示能力などにあわせてＧＵＩ関連データが生成され、当該機器に送信され、当該機器では、そのＧＵＩ関連データを参照してアプリケーションが実行される。
【発明を実施するための最良の形態】
【００２０】
以下、この発明の実施の第１の形態を、図面を参照しながら説明する。図１は、この発明の実施の第１の形態に係るアプリケーション提供システム１の概要を示す。アプリケーション提供システム１は、サーバ１０と、少なくとも１つのクライアント１７から構成され、クライアント１７は、例えば、音楽、映像、インターネット情報をそれぞれ、または同時にユーザに提供するＡＶ（Audio Visual）機器２０、ベースステーションからの電波を受信することにより、任意の場所でテレビジョン放送を視聴することができる可搬型のテレビジョン機器３０、大容量ハードディスク装置を備え、録画したテレビジョン放送を再生・配信する放送サーバ機器４０、個人用の携帯情報端末であるＰＤＡ（Personal Digital Assistanc）機器５０といった機器である。
【００２１】
それぞれのクライアント１７は、例えば、ＡＶ機器２０のように、表示モニタ装置、スピーカ、およびインターネット接続機能を有する制御機器といった複数の機器を組み合わせて構成される場合も多いが、本明細書中では、少なくとも表示装置（または表示部）に対する表示を制御する構成要素を含んだ機器をクライアント１７と称することとする。したがって、放送サーバ機器４０の例では、テレビジョンモニタ装置と、そのテレビジョンモニタ装置に対する表示をコントロールするサーバ機器から構成される機器、またはそのようなサーバ機器のみからなる機器は、この発明におけるクライアント１７となるが、テレビジョンモニタ装置のみから構成される機器はクライアント１７にはあたらない。
【００２２】
サーバ１０は、ＡＶ機器２０、テレビジョン機器３０、放送サーバ機器４０、およびＰＤＡ機器５０などのクライアント１７と、ネットワーク１５を介して接続される。ここで、ネットワーク１５は、所定のプロトコルによりデータ通信を行いうる伝送媒体であり、例えばインターネット、イントラネット、エクストラネット、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、ＭＡＮ（Metropolitan Area Network）などである。また、少なくとも一部が、無線を用いたネットワークにより構成されていてもよい。
【００２３】
ＡＶ機器２０では、ユーザが、ＡＶ機器２０の表示モニタ装置に表示されたメニューから、例えば、「フォトビューア」といった所定のアプリケーションを選択すると、そのアプリケーションに対応するアプリケーションＩＤ（アプリＩＤ）２１と、ＡＶ機器２０の表示機能に関連するデータを含むプロファイルデータ（プロファイル）２２が、ネットワーク１５を介してサーバ１０に送信される。
【００２４】
ここで、プロファイルデータ２２は、クライアント１７の特性に関する情報を含み、特に、クライアント１７のＧＵＩに関連する情報を含む。ＧＵＩに関連する情報は、ＧＵＩを実現するための表示機能や入力機能に関する項目を含む。また、このような、ＧＵＩを実現するための表示機能や入力機能の情報は、ハードウエアに関するものだけでなく、ソフトウエアに関するものも考えられる。
【００２５】
サーバ１０は、ＡＶ機器２０から、アプリケーションＩＤ２１とプロファイルデータ２２を受信すると、そのアプリケーションＩＤ２１に対応するアプリケーションプログラムと、そのアプリケーションプログラムがＡＶ機器２０の表示モニタ装置にＧＵＩ画面を表示するために必要なデータをひとまとめにパックし、パックデータ２３として、ネットワーク１５を介してＡＶ機器２０に送信する。
【００２６】
ここで、ＡＶ機器２０の表示モニタ装置にＧＵＩを実現するために必要なデータは、ＧＵＩ画面に表示するために用いられる画像データからなるイメージデータ（イメージＡ）と、メニューやボタンなどのＧＵＩコンポーネントの配置情報などを含む、ＡＶ機器２０の表示モニタ装置に対する表示や入力に関連するデータ、すなわち、ＧＵＩに関するリソースデータ（リソースＡ）である。また、イメージデータとリソースデータは、クライアント１７で実行されるアプリケーションプログラムにより、ＧＵＩを実現するために参照されるデータである。
【００２７】
一方、テレビジョン機器３０は、ユーザが、テレビジョン機器３０の表示モニタ部に表示されたメニューから、所定のアプリケーションを選択すると、そのアプリケーションに対応するアプリケーションＩＤ３１と、テレビジョン機器３０のＧＵＩに関連するデータを含むプロファイルデータ３２が、ネットワーク１５を介してサーバ１０に送信される。
【００２８】
サーバ１０は、テレビジョン機器３０から、アプリケーションＩＤ３１とプロファイルデータ３２を受信すると、そのアプリケーションＩＤ３１に対応するアプリケーションプログラムと、そのアプリケーションプログラムがテレビジョン機器３０の表示モニタ部にＧＵＩを実現するために必要なデータをひとまとめにパックし、パックデータ３３として、ネットワーク１５を介してテレビジョン機器３０に送信する。
【００２９】
ここで、表示モニタ部にＧＵＩを実現するために必要なデータは、ＧＵＩ画面に表示するための画像データからなるイメージデータ（イメージＢ）と、メニューやボタンなどのＧＵＩコンポーネントの配置情報などを含む、テレビジョン機器３０の表示モニタ装置に対する表示や入力に関連するリソースデータ（リソースＢ）である。イメージデータとリソースデータは、クライアント１７で実行されるアプリケーションプログラムにより、ＧＵＩを実現するために参照されるデータである。
【００３０】
以降、同様に、放送サーバ機器４０やＰＤＡ機器５０といった他の機器も、サーバ１０に対して上記と同様のやりとりを行い、各アプリケーションにおいて好適なＧＵＩが実現される。
【００３１】
なお、イメージデータに、ＧＵＩコンポーネントの表示に用いられる画像データを含ませることができる。例えば、メニューを表示するためのメニュー画像データや、ボタンを表示するためのボタン画像データを、イメージデータに含ませることができる。以下、この実施の第１の形態の説明では、イメージデータがこれらＧＵＩコンポーネントの表示に用いられる画像データを含むものとする。
【００３２】
ＡＶ機器２０に対して提供されたイメージＡとリソースＡは、ＡＶ機器２０の表示モニタ装置の画面のような、比較的大きな画面に表示されるＧＵＩコンポーネントを実現するためのデータであり、イメージＡはそれぞれ大きな解像度を有するイメージデータであり、リソースＡに含まれる配置情報は、イメージＡのイメージデータの解像度に応じて広い間隔で各イメージデータを配置する内容を含んでいる。
【００３３】
これに対して、テレビジョン機器３０の表示モニタ部は、ＡＶ機器２０の表示モニタ装置に比べると表示域の面積が小さく、そのために、サーバ１０から提供されるイメージＢのイメージデータは、比較的小さな解像度のものである。また、リソースＢに含まれる配置情報は、イメージＢのイメージデータの解像度に応じて比較的間隔の狭いものになっている。
【００３４】
それぞれのクライアント１７で実行され、ユーザに対するＧＵＩを提供するアプリケーションは、例えば、Ｊａｖａアプリケーションである（「ＪＡＶＡ」は登録商標）。Ｊａｖａアーキテクチャでは、プログラム開発によって記述されたソースファイルが、Ｊａｖａのコンパイラによってコンパイルされると、中間コードが生成され、こうして生成された中間コードが、通常、Ｊａｖａ仮想マシン（ＪａｖａＶＭ（Virtual Machine））によって解釈され、実行される。このように、Ｊａｖａ仮想マシンは、中間コードをあたかも実行コードとして理解し実行するプログラムである。したがって、ＣＰＵ（Central Processing Unit）やＯＳ（Operating System）の種類ごとに、このＪａｖａ仮想マシンを用意すれば、機器の種類を問わずに、同じ中間コードで同じ内容のプログラムを実行できる。
【００３５】
Ｊａｖａアプリケーションは、既存の多くの部品を利用して作成することができ、このことは、効率的なプログラム開発を可能とする。Ｊａｖａアーキテクチャでは、Ｊａｖａアプリケーションの実行時に、プログラム開発によって作成されたＧＵＩアプリケーションのソースファイルと、Ｊａｖａの実行環境に含まれる部品のソースファイルの両方を解釈することでＧＵＩアプリケーションを実行する。ただし、部品のソースファイルについては、実行の際にその都度コンパイルするのは効率的ではないので、通常は、あらかじめ中間コードに変換されている。そのため、Ｊａｖａ仮想マシンは、コンパイラが生成したＧＵＩアプリケーションの中間コードと、あらかじめ用意された部品の中間コードの両方を解釈してプログラムを実行し、そのような方法によって、全体のアプリケーション実行時間が大幅に短縮される。
【００３６】
また、Ｊａｖａアプリケーションの中間コード、リソースデータ、イメージデータなどはＪａｒファイルに格納され、Ｊａｖａ仮想マシンは、そのＪａｖａアプリケーションの実行時に必要なデータをＪａｒファイルから解凍（アンパック）して取り出す。ここで、Ｊａｒは「Ｊａｖａ  ａｒｃｈｉｖｅ」の略で、実際にはＺｉｐ形式の圧縮ファイルである。
【００３７】
また、ここでは、クライアント１７の例としてＡＶ機器２０などのＣＥ機器を挙げているが、この発明に係るアプリケーション提供システム１のクライアント１７は、これらの機器に限定される訳ではない。機器においてＧＵＩが実現され、その機器がＧＵＩを実現するための機能に関連するプロファイルデータをサーバに送信するとともに、当該プロファイルデータに応じたリソースデータおよびイメージデータをサーバから受け取れるように構成できる限り、どのような機器でもこの発明に係るアプリケーション提供システム１のクライアント１７となりうる。そういった意味では、パーソナルコンピュータ（ＰＣ）も、クライアント１７となりうる。
【００３８】
次に、図２の機能ブロック図を参照して、アプリケーション提供システム１の各部について説明する。クライアント１７は、送信部１７Ａ、データ取得部１７Ｂ、および実行制御部１７Ｃを含み、サーバ１０は、受信部１０Ａ、検索部１０Ｂ、変換部１０Ｃ、およびデータ提供部１０Ｄを含んでいる。クライアント１７とサーバ１０は、ネットワーク１５を介して接続され、また、クライアント１７は、アプリケーションデータテーブル１１を備えている。
【００３９】
クライアント１７の送信部１７Ａは、ユーザからアプリケーション一覧から１つのアプリケーションを選択したことを検知して、そのアプリケーションに対応するアプリケーションＩＤをサーバ１０に、ネットワーク１５を介して送信する。この送信の際、クライアント１７のＧＵＩに関するデータを含むプロファイルデータも同様に、サーバ１０に送信される。
【００４０】
アプリケーション一覧は、クライアント１７の表示装置や表示部に表示され、ユーザは、表示されたこれらのアプリケーションから１つを、例えばリモコンのような入力手段を用いて選択する。アプリケーション一覧は、クライアント１７が事前にサーバ１０からネットワーク１５を介して取得する。
【００４１】
データ取得部１７Ｂは、サーバ１０から提供されるアプリケーションプログラム、リソースデータ、およびイメージデータを取得する。データ取得部１７Ｂによるデータ取得は、サーバ１０からネットワーク１５を介して直接データを受信するデータ渡しや、サーバ１０からネットワーク１５を介してデータのアドレスを受信し、クライアント１７側で再度そのアドレスにデータを取得しにいくアドレス渡しなどの方法がある。
【００４２】
実行制御部１７Ｃは、サーバ１０から提供されたアプリケーションプログラムを、同じくサーバ１０から提供されたリソースデータおよびイメージデータを参照して実行するよう制御する。リソースデータとイメージデータは、アプリケーションプログラムがクライアント１７上でＧＵＩを実現するために必要なデータである。
【００４３】
サーバ１０の受信部１０Ａは、クライアント１７の送信部１７Ａが送信したアプリケーションＩＤとプロファイルデータを受信し、検索部１０Ｂは、受信部１０Ａで受信したアプリケーションＩＤに対応するアプリケーションプログラムをアプリケーションデータテーブル１１から検索し、さらに、そのアプリケーションプログラムが参照するリソースデータとイメージデータをアプリケーションデータテーブル１１から検索する。アプリケーションデータテーブル１１において、アプリケーションプログラムとリソースデータ、イメージデータは、１対１に対応している必要はない。異なるアプリケーションプログラムが同じイメージデータやリソースデータを利用していてもよい。
【００４４】
変換部１０Ｃは、クライアント１７の送信部１７Ａが送信したプロファイルデータにあわせて、検索部１０Ｂで検索されたイメージデータとリソースデータの内容を変換する。
【００４５】
データ提供部１０Ｄは、変換部１０Ｃで変換されたイメージデータとリソースデータ、および検索部１０Ｂで検索されたアプリケーションプログラムを、データ渡しやアドレス渡しといった方法でクライアント１７に提供する。
【００４６】
このように、この発明のアプリケーション提供システム１において、クライアント１７は、アプリケーションプログラムなどのデータを必要に応じて逐次、サーバ１０からダウンロードしており、これは、クライアント１７の記憶装置の容量の制限や、バージョン管理の面を考慮して行われている。
【００４７】
次に、図３を参照して、サーバ１０によって、各機器に対応したイメージデータおよびリソースデータが生成される概念について説明する。図３の上部には、ＡＶ機器２０からアプリケーションＩＤ２１とプロファイルデータ２２が、テレビジョン機器３０からアプリケーションＩＤ３１とプロファイルデータ３２が、放送サーバ機器４０からアプリケーションＩＤ４１とプロファイルデータ４２が、ＰＤＡ機器５０からアプリケーションＩＤ５１とプロファイルデータ５２が、それぞれサーバ１０に送信されている状況が示されている。これは、それぞれのクライアント１７（ＡＶ機器２０ないしＰＤＡ機器５０）で所定のアプリケーションが選択された場合の処理であり、この点については、図１および図２で説明した通りである。
【００４８】
一方、サーバ１０は、アプリケーションデータテーブル１１にアプリケーションプログラム１２、およびそのアプリケーションプログラム１２がクライアント１７において標準的なＧＵＩを実現するためのリソースデータ１３とイメージデータ１４を記憶している。クライアント１７において選択されたアプリケーションプログラムは、基本的に、様々なクライアント１７間で共通するものであるが、一部のクライアント１７に固有のアプリケーションプログラムも存在しうる。アプリケーションデータテーブル１１には、これらのアプリケーションプログラムのすべてが記憶される。
【００４９】
ここでは、クライアント１７で選択されたアプリケーションが、クライアント１７間で共通のアプリケーションプログラム１２に対応するとの前提で説明を進める。
【００５０】
サーバ１０は、それぞれのクライアント１７からアプリケーションＩＤを受け取ると、そのアプリケーションＩＤに対応するアプリケーションプログラム１２を検索し、このアプリケーションプログラム１２に関連付けられたリソースデータ１３とイメージデータ１４を検索する。その後、サーバ１０は、図３の下部に示すように、クライアント１７から受信したプロファイルデータに基づいて、リソースデータ１３およびイメージデータ１４を変換し、クライアント１７に提供する。
【００５１】
例えば、プロファイルデータにはクライアント１７の画面サイズ（解像度情報）が含まれうるが、その画面サイズに収まるように、アプリケーションプログラム１２で表示される入力画面のＧＵＩコンポーネントの配置が決定される。また、必要に応じて、ＧＵＩコンポーネントのサイズが決定される。ＧＵＩコンポーネントの配置はリソースデータの変換により調整され、ＧＵＩコンポーネントのサイズはイメージデータの変換により調整される。
【００５２】
サーバ１０は、リソースデータ１３とイメージデータ１４の変換を終えると、アプリケーションＩＤなどを受信したクライアント１７に、アプリケーションプログラム、変換後のリソースデータ、および変換後のイメージデータをひとまとめにして（例えばＪａｒファイルの形式で）送信する。アプリケーションプログラム、変換後のリソースデータ、および変換後のイメージデータをひとまとめにしたのはデータの取り扱いやアクセスを容易にするためであり、必要に応じて個別に送信することもできる。
【００５３】
また、サーバ１０は、こうしてひとまとめにされたデータを、クライアント１７がアクセス可能なアドレス（例えば、インターネット上の所定の記憶位置）に配置して、クライアント１７が、そのアドレスにアクセスして上記データを取り出すようにしてもよい。データがインターネット上の所定の記憶位置に置かれた場合、クライアント１７は、例えばＵＲＬ（Uniform Resource Locator）を指定して、そのデータを取り込むことができる。サーバ１０は、データをサーバ１０とは異なるインターネット上の記憶装置上に記憶し、その装置のアドレスをクライアント１７に知らせるようにすることもできる。このように構成することにより、サーバ１０に様々なクライアント１７からのアクセスが集中することを防ぐことができる。
【００５４】
図３の例で、サーバ１０は、ＡＶ機器２０からアプリケーションＩＤ２１とプロファイルデータ２２が提供されると、アプリケーションＩＤ２１に対応するアプリケーションプログラム１２に関連づけられたリソースデータ１３とイメージデータ１４を、プロファイルデータ２２に基づいて変換して、それぞれリソースＡとイメージＡを生成し、それらとアプリケーションをひとまとめにしてパックデータ２３を生成する。ここで、パックデータ２３に含まれるアプリケーションプログラムは実質的にアプリケーションプログラム１２と同じものであり、実行形式のプログラムファイルである。
【００５５】
また、ここでプログラムとは、Ｊａｖａの中間コードのような概念も含むものとし、さらに、スクリプトのような、実質的にはテキストデータであるがインタプリタによって実行形式のファイルと同様の作用を伴うものをも含む概念である。
【００５６】
次に、図４を参照して、この発明の実施の第１の形態による、リソースデータとイメージデータに関するより具体的な変換の態様について説明する。ここでは、サーバ１０においてリソースデータとイメージデータの変換がされることによって、テレビジョン機器３０と放送サーバ機器４０のそれぞれに好適なＧＵＩが実現される例が示されている。
【００５７】
サーバ１０は、テレビジョン機器３０から受け取ったプロファイルデータから、テレビジョン機器３０が有する表示モニタ部の解像度（画素数）が６００×４８０であることを検出する。この実施の第１の形態においては、サーバ１０は、この検出結果に基づき、アプリケーションに対応するリソースデータとイメージデータを６００×４８０の解像度での表示に適したように変換する。より具体的には、リソースデータを変換してボタン等のＧＵＩコンポーネントの表示位置等を調整し、必要に応じてイメージデータを変換してボタン等のＧＵＩコンポーネントのサイズを小さくし、画像を表示する領域のサイズと位置を上記解像度に応じて調整する。
【００５８】
また、サーバ１０は、放送サーバ機器４０からプロファイルデータを受け取った場合も、上記と同様の処理を行う。ただし、放送サーバ機器４０の表示モニタ装置の解像度は、この例では１０２４×７６８であるので、ボタンなどのＧＵＩコンポーネントはより大きなサイズになるよう調整され、それと同時に、ＧＵＩコンポーネントの表示位置は、ある程度間隔を開けて調整され、画像を表示する領域も解像度に合わせて大きなサイズに調整される。
【００５９】
ここで、変換の他のバリエーションについて説明する。リソースデータに関連しては、例えば、表示モニタ部や表示モニタ装置のサイズ（解像度）の違いによって、フォントの大きさを変更する。また、アプリケーションの送信先であるクライアント１７においてカラーモデルが異なる場合は、この違いに対応すべく変換がなされる。
【００６０】
イメージデータに関連しては、例えば、表示モニタ部や表示モニタ装置の表示特性に応じて、イメージの減色処理を施す。また、アプリケーションの送信先であるクライアント１７のグラフィック処理能力やソフトウエアの有無に応じて、アニメーション表示や、ｆｌａｓｈ（マクロメディア・インコーポレイテッドの商標）ファイルやＳＶＧ（Scalable Vector Graphics）の使用を制限する。ここで、ｆｌａｓｈとは、グラフィックス、オーディオ、テキスト、ビデオといったディジタルメディアを組み合わせて、ＷＥＢコンテンツを作成・再生する世界標準のテクノロジーである。一方、ＳＶＧは標準のグラフィック規格の１つであり、豊富かつスケーラブルなグラフィック表現を実現し、デザインからビジュアルＸＭＬ（eXtensible Markup Language）を構築できる点を主たる特徴としている。
【００６１】
図５には、この発明に係るアプリケーション提供システム１に関連して使用されるアプリケーションの実行環境と開発環境の概要が示されている。
【００６２】
図５の左側には、クライアント１７におけるアプリケーションの実行環境の例が示されており、ここでは、クライアント１７の一例としてテレビジョン機器３０が示されている。右側には、開発ホスト機７０において、当該アプリケーションが開発（作成）される環境の例が示されている。
【００６３】
実行環境の例では、テレビジョン機器３０の所定のＯＳ上でＰｅｒｓｏｎａｌＪａｖａ６１が稼働しており、これはＪａｖａ仮想マシンを含むものである。その上で、さらにＣＥ機器向けのＧＵＩアプリケーションフレームワーク６２が稼働し、これは、アプリケーションのライフサイクルの定義やアプリケーション間のインタフェース、イベント配信などの仕組みを提供する。
【００６４】
ＧＵＩアプリケーションフレームワーク６２は、さらにＧＵＩツールキット６３とアニメーションエンジン６４とを含む。ＧＵＩツールキット６３は、ＣＥ機器向けにデザインされたＧＵＩコンポーネントのセットを含み、リモコンの操作や日本語入力の機能をサポートする。アニメーションエンジン６４は、アニメーション表現を容易に実現するＡＰＩ（Application Program Interface）を提供し、グラフィックスオブジェクトのレンダリングとそのスケジューリングを行う。
【００６５】
アプリケーション６６は、ＰｅｒｓｏｎａｌＪａｖａ６１上で実行され、リソースデータ／イメージデータ６５、およびＧＵＩツールキット６３のＧＵＩコンポーネントを参照してＧＵＩアプリケーションをテレビジョン機器３０上で実現する。
【００６６】
すなわち、ＰｅｒｓｏｎａｌＪａｖａ６１は、アプリケーション６６から渡されたコマンドやデータを、テレビジョン機器３０の所定のＯＳが解釈可能な形式に変換して当該ＯＳに渡す。テレビジョン機器３０の所定のＯＳは、変換され渡されたコマンドやデータに基づき、テレビジョン機器３０の各部を所定に制御し、ＧＵＩアプリケーションをテレビジョン機器３０上で実行させる。
【００６７】
一方、図５の右側に示されたアプリケーションの開発環境の例は、パーソナルコンピュータなどで構成される開発ホスト機７０上に構築される。この例では、開発ホスト機７０の所定のＯＳ上で、Ｊ２ＳＥ（Java 2 Platform, Standard Edition）７１が稼働し、これがＪａｖａ仮想マシンを含む。その上でさらに、ＧＵＩオーサリング環境７２、すなわち、エディターを備えたＪａｖａアプリケーションの開発環境が提供される。ＧＵＩオーサリング環境７２は、さらにＧＵＩツールキット７３とアニメーションエンジン７４とを含む。ＧＵＩツールキット７３は前述のＧＵＩツールキット６３に対応し、アニメーションエンジン７４は、前述のアニメーションエンジン６４に対応するものである。
【００６８】
アプリケーション開発者は、ＧＵＩオーサリング環境７２の各機能を利用してＧＵＩコンポーネントなどを配置して各コンポーネントに対するプロパティ、メソッド、イベントなどを編集し、さらにリソースデータ／イメージデータ７５を参照することによりアプリケーション７６を構築する。アプリケーション７６は、テレビジョン機器３０上ではアプリケーション６６として実行され、テレビジョン機器３０の表示モニタ部上に所定のＧＵＩを実現する。また、リソースデータ／イメージデータ７５は、テレビジョン機器３０において、リソースデータ／イメージデータ６５として表されているものとほぼ同じである。
【００６９】
図５では、特にＪａｖａプラットフォームを用いたＧＵＩアプリケーションの実行環境および開発環境の一例を示したにすぎない。既知のさまざまな別の方法を用いて、こうしたＧＵＩアプリケーションを開発・実行することが可能である。
【００７０】
次に、図６を参照して、クライアント１７で実現されるＧＵＩの一例について説明する。図６に示す２つのメニューは、例えば、クライアント１７であるＡＶ機器２０の表示モニタ装置に表示される。また、前述のように、これらのメニューがテレビジョン機器３０の表示モニタ部上に表示される場合は、ＡＶ機器２０に表示される場合より小さいサイズ（より小さい解像度）で表示される。
【００７１】
メインメニュー８０には、いくつかのメニューが表示されており、ユーザは、ここから１つのメニューを選択する。この例では、「メニュー４」に対応するメニュー項目８１が選択されている。こうした、ユーザによる選択操作は、上述した種類のクライアント１７では、リモコン、タッチペン、またはキーボードのような入力手段によって行われるのが普通である。たとえば、リモコンでは、矢印ボタン等を数回押下して「メニュー４」までカーソル（場合によっては反転表示や強調表示）を移動させ、決定ボタン等を押下することによって、「メニュー４」の選択を決定する。
【００７２】
メインメニュー８０において、「メニュー４」が選択されると、サブメニュー８５がポップアップ画面として表示される。そこで、ユーザは、メインメニュー８０の場合と同様に、リモコン等を操作して、「フォトビューア」に対応するサブメニュー項目８６を選択する。このユーザの操作により、「フォトビューア」というアプリケーションが選択される。この際、クライアント１７は、その「フォトビューア」に対応するアプリケーションＩＤと、自身の機器に関するプロファイルデータをサーバ１０に送信する。
【００７３】
メインメニュー８０やサブメニュー８５の表示内容は、サーバ１０からクライアント１７に事前に提供される。
【００７４】
ここで、図７のフローチャートを参照して、この発明に係るアプリケーション提供システム１における一連の処理手順を説明する。図７の左側にはクライアント１７の処理が、右側にはサーバ１０の処理が表されている。クライアント１７とサーバ１０の間のデータのやりとりは、図１に関連して前述したように、ネットワーク１５を介して行われる。
【００７５】
最初に、ステップＳ１０において、クライアント１７（例えば、ＡＶ機器２０）は、アプリケーションの一覧をサーバ１０に要求する。これは、クライアント１７が提供可能なサービスに対応するアプリケーションを一覧として示すためにするものであり、この一覧がサーバ１０から提供されることにより、その時点でサービス可能なアプリケーションの一覧がクライアント１７に提供されうる。また、新たに提供サービスが追加された場合も、その追加アプリケーションが即座にアプリケーションの一覧に追加される。
【００７６】
クライアント１７が、このようにサーバ１０に対してアプリケーションの一覧を要求するタイミングは、たとえば、図６で示したように、メインメニュー８０で所望のメニュー項目（例えば「メニュー４」）が選択されたような場合である。
【００７７】
次に、ステップＳ１２において、サーバ１０は、対応するクライアント１７が実行可能なアプリケーションを、クライアント１７の機器の種類や契約・登録内容から判断などして判定し、クライアント１７に送信する。クライアント１７は、ステップＳ１４において、サーバ１０から送信されたアプリケーション一覧を受信し、表示モニタ装置上に表示する。こうして表示される一覧は、例えば、図６で示したサブメニュー８５のようなポップアップ画面である。
【００７８】
ステップＳ１６で、ユーザが一覧表示されたアプリケーションのいずれかを選択したか否かが判定される。この判定は、ユーザによる選択が行われるまで、所定の期間繰り返し行われる。ユーザによる選択が行われると、クライアント１７は、ステップＳ１８で、そのクライアント１７自身の特性を示すプロファイルデータと、選択されたアプリケーションを識別するために用いられるアプリケーションＩＤをサーバ１０に送信する。
【００７９】
サーバ１０は、ステップＳ２０において、クライアント１７から送られてきたプロファイルデータとアプリケーションＩＤを受信し、ステップＳ２２において、当該アプリケーションＩＤに対応するアプリケーションプログラムを検索すると共に、その検索されたアプリケーションプログラムによって利用されるリソースデータとイメージデータを検索し、クライアント１７から受信したプロファイルデータに応じ、前述したような態様でリソースデータとイメージデータの変換を行う。
【００８０】
次に、サーバ１０は、ステップＳ２４において、当該アプリケーションＩＤに対応するアプリケーションプログラムと、ステップＳ２２で変換されたリソースデータとイメージデータをひとまとめにパックし、所定のアドレスに配置する。ここで、アプリケーションプログラム、リソースデータ、およびイメージデータは、例えばｊａｒファイルのような任意の形式で１つのファイルにパックされるが、個別に保持するようにしてもよい。
【００８１】
サーバ１０は、ステップＳ２６において、パックされたファイルのアドレス情報をクライアント１７に対して送信する。ここで、アドレス情報は、例えば、インターネットからアクセス可能なサーバ１０の所定の記憶領域であり、ＵＲＬで表される。この例の場合、ＵＲＬは、インターネット上におけるサーバ１０のアドレスと、サーバ１０内におけるファイルの格納ディレクトリからなる。
【００８２】
その後、クライアント１７は、ステップＳ２８で、サーバ１０からアドレス情報を受け取ると、ステップＳ３０において、サーバ１０のファイルにＵＲＬを利用してアクセスし、これをダウンロードした後、ファイルを解凍（アンパック）し、受信したリソースデータとイメージデータを利用してアプリケーションプログラムを実行する。
【００８３】
ここでは、クライアント１７がパックされたデータを、サーバ１０からダウンロードしているが、サーバ１０からクライアント１７に対して、直接、パックされたデータを送信するよう構成することもできる。
【００８４】
また、この例では、サーバ１０が、クライアント１７からプロファイルデータを受信するたびにリソースデータおよびイメージデータを変換しているが、これはこの例に限定されない。例えば、サーバ１０にアクセスするクライアント１７の機器の種類が所定の範囲内であることが、あらかじめ分かっているような場合には、事前にリソースデータとイメージデータを、想定されるプロファイルデータに応じて変換しておくように構成することもできる。このように構成した場合は、サーバ１０のハードウエア資源がより多く必要になる反面、クライアント１７に対して、より早くリソースデータおよびイメージデータを提供することができる。この場合、サーバ１０は、機器ごとに、かつアプリケーションごとに、必要なリソースデータとイメージデータを記録しておくテーブルが必要になる。
【００８５】
また、サーバ１０を複数台設け、サーバ１０ごとに、対応するクライアント１７を機種ごとに切り分けるようにして、１つのサーバ１０には一定範囲の機種からしか要求がされないように構成することもできる。
【００８６】
またさらに、クライアント１７の機種によってプロファイルデータがほとんど固定される場合は、サーバ１０が、事前に各機器のプロファイルデータを有しておくことにより、それぞれのクライアント１７は、ユーザから所定のアプリケーションの選択があった場合に、そのアプリケーションに対応するアプリケーションＩＤのみをサーバ１０に送信すればよいことになる。この場合、サーバ１０は、機器ごとに、プロファイルデータを記憶しておくテーブルが必要となる。
【００８７】
図８は、クライアント１７がサーバ１０に送信するプロファイルデータの例を示したものである。この例では、クライアント１７には、機器Ａ〜機器Ｅの６つの機種が存在する。プロファイルデータは、機種ごとに、機器名、解像度、出力デバイス、色、ＣＰＵ、メモリ、入力手段の各項目を含んでいる。
【００８８】
解像度は、その機器が備える表示モニタ部またはその機器に接続される表示モニタ装置の解像度（画素数）を表しており、この値が大きいほど、大きなＧＵＩの表現が可能となる。この図８の例では、解像度は、「横方向の表示画素数×縦方向の表示画素数」の形式で記述される。横方向の表示画素数および縦方向の表示画素数を、互いの最大公約数で除することで、アスペクト比を求めることができる。
【００８９】
出力デバイスには、ＣＲＴ（Cathode Ray Tube）、液晶、ＴＶ（テレビジョン）といった、表示装置の識別が含まれる。この識別情報は、ＧＵＩの内容を画素の応答速度によって調整する必要がある場合等に利用されうる。
【００９０】
色の項目には、その機器の表示モニタ部または表示モニタ装置が出力可能な色数を、ビット数で表したものが含まれる。これは、出力デバイスの能力のみならず、グラフィックチップやグラフィックメモリの特性や設定内容にも左右される。たとえば、色の項目に「１６」とあるのは、１６ビットで表現可能なカラー表示をすることができるという意味であり、具体的には、６５５３６色のカラーを表示可能である。
【００９１】
ＣＰＵの項目には、その機器の備えるＣＰＵまたはＧＰＵ（Graphics Processing Unit）の処理能力を示す情報が含まれる。ＣＰＵまたはＧＰＵの処理能力は、例えばＣＰＵまたはＧＰＵの動作周波数で示される。単位はＭＨｚ（メガヘルツ）である。ＣＰＵの真の能力は、ＣＰＵのメーカ、モデル、チップセット等の情報から把握されるために、これらの情報をプロファイルデータに含むことも可能である。メモリの項目には、メインメモリやグラフィック描画に用いられるグラフィックメモリの容量が含まれる。単位はＭＢ（メガバイト）である。ＧＵＩコンポーネントに、アニメーションなどの比較的大きなＣＰＵパワーと大きな記憶容量を必要とするものが含まれる場合は、ＣＰＵの項目とメモリの項目が参照され、そのアニメーションの表現を採用するか否かの判定が総合的になされうる。
【００９２】
入力手段の項目には、その機器が備える入力インタフェースの種類が含まれる。ＣＥ機器では、リモートコントロールコマンダやタッチペンを入力手段とするものが主流である。この入力インタフェースの違いにより、ＧＵＩコンポーネントや、これに関連するリソースデータを適合させる必要がある。
【００９３】
機器Ｅと機器Ｆで示されるクライアント１７は、表示モニタ部（表示モニタ装置）が２つの解像度を有し、プロファイルデータは、こうした２つの情報をサーバ１０に伝えることができるようにも構成される。また、機器Ｅで示されるクライアント１７は、それぞれの解像度に関して表示色数が異なる。プロファイルデータでは、このような状況もサーバ１０に伝えることができる。
【００９４】
この他、プロファイルデータの項目としては、たとえば、クライアント１７のリモコンが、ダイヤルにより選択を行う機能を有しているかどうかといった、入力に関する情報や、３次元（３Ｄ）グラフィックス機能を有しているかどうかといった、ソフトウエア、あるいは、ハードウエアとソフトウエアとの組み合わせに関する情報を含みうる。
【００９５】
次に、図９を参照して、クライアント１７のハードウエア構成の例について説明する。これまでに説明してきたクライアント１７は、たとえば、図９に示ように、コンピュータと同等の構成を備える。近年のＣＥ機器等は、構成上様々なバリエーションを有する。図９は、その代表的な構成を例示したものである。以下、クライアント１７がコンピュータ１００であるものとして説明する。
【００９６】
コンピュータ１００は、ＣＰＵ１０１、メモリ１０２、ＧＰＵ１０３、ネットワークインタフェース１０４、ディスプレイコントローラ１０５、ディスプレイ１０６、入力機器インタフェース１０７、外部機器インタフェース１０８、外部記憶装置１０９、外部記録媒体駆動装置１１０、およびこれらの構成要素を互いに接続するバス１１１を含んでいる。
【００９７】
ＣＰＵ１０１は、各構成要素の動作を制御し、ＯＳおよびＪａｖａ仮想マシンの制御下で、Ｊａｖａアプリケーションの実行を可能とする。コンピュータ１００は、Ｊａｖａ仮想マシンの稼働を前提とするものではないが、各機器において同一のアプリケーションが動作可能な環境を備えることが望ましい。
【００９８】
メモリ１０２は通常、不揮発性メモリであるＲＯＭ（Read Only Memory）、および揮発性メモリであるＲＡＭ（Random Access Memory）から構成される。ＲＯＭには、コンピュータ１００の起動時に実行されるプログラムなどが格納される。ＲＡＭには、ＣＰＵ１０１で実行されるＪａｖａアプリケーションなどのプログラムや、そのプログラムが実行中に使用するデータが一時的に格納される。
【００９９】
ＧＰＵ１０３は、ＧＵＩコンポーネントの配色処理などを行うグラフィック処理専用のプロセッサである。機器によっては、ＧＰＵを持たずにグラフィック処理をＣＰＵ１０１で実行するものもある。また、描画処理の能力や速度は、グラフィックメモリの容量にも影響される。グラフィックメモリは、例えば、後述する、ディスプレイコントローラ１０５内に配置される。
【０１００】
ネットワークインタフェース１０４は、ネットワーク１２０に接続するためのインタフェースである。ネットワーク１２０は、図１に示したインターネットやイントラネットなどのネットワーク１５に対応する。また、前述のようなクライアント１７とサーバ１０との間のデータ授受は、例えば、ＳＯＡＰ（Simple Object Access Protocol）というプロトコルに基づいて行われ、さらに、実際の通信処理においては、Ａｐａｃｈｅ−ＳＯＡＰといった、ＪａｖａでＳＯＡＰを用いるためのライブラリが用いられる。
【０１０１】
ディスプレイコントローラ１０５は、ＣＰＵ１０１が発行する描画命令を実際に処理するための専用コントローラである。ディスプレイコントローラ１０５で処理された描画データは、一旦グラフィックメモリに書き込まれ、その後、ディスプレイ１０６に出力される。ディスプレイ１０６は、例えば、ＡＶ機器２０の表示モニタ装置や、テレビジョン機器３０の表示モニタ部に対応する。
【０１０２】
また、ディスプレイ１０６は、ＬＣＤやＣＲＴで構成される表示装置であり、前述のように、ディスプレイコントローラ１０５に接続されて画像情報が提供される。ただし、ディスプレイ１０６自体は、コンピュータ１００に接続される別の装置、すなわち、クライアント１７に接続される外部機器として構成されることもできる。例えば、図１に示したＡＶ機器２０や放送サーバ機器４０では、本体と表示装置が別の筐体となっており、そのような構成が可能である。
【０１０３】
入力機器インタフェース１０７は、リモコン１４０から照射される赤外線信号などを受信して、その信号パターンに応じて所定の指令をＣＰＵ１０１に送信する。これによって、ユーザはコンピュータ１００の動作をリモコン１４０によって指示することができる。この例では、入力手段としてリモコンのみが示されているが、タッチペン（タッチパネル）やキーのような入力手段であってもよい。また、パーソナルコンピュータのように、マウスやキーボードを入力手段として採用することも可能である。
【０１０４】
入力手段としてタッチパネルを用いた場合、タッチパネルとディスプレイ１０６とを一体的に構成することで、ユーザは、ディスプレイ１０６に表示されるＧＵＩコンポーネントを実際に操作しているような感覚を得ることができる。この場合、ディスプレイ１０６に表示されるＧＵＩコンポーネントの位置をタッチペンや手指などで触れたときに、当該ＧＵＩコンポーネントに割り当てられた機能が起動されるように、アプリケーションプログラムを構成することが考えられる。
【０１０５】
外部機器インタフェース１０８には、外部記憶装置１０９や外部記録媒体駆動装置１１０が接続され、外部記憶装置１０９や外部記録媒体駆動装置１１０から提供されたデータをメモリ１０２などに送信する。外部記憶装置１０９は、例えば、ハードディスクドライブ（ＨＤＤ）のような記憶装置であり、この装置内にはプログラムやデータが記録され、実行時に、必要に応じてそこからメモリ１０２のＲＡＭにロードされる。また、サーバ１０から与えられたアドレスにアクセスすることにより得られたＪａｖａアプリケーションプログラム、リソースデータ、およびイメージデータも外部記憶装置１０９に記憶されうる。
【０１０６】
ただし、少なくとも外部機器インタフェース１０８、外部記憶装置１０９、および外部記録媒体駆動装置１１０はこの発明のアプリケーション提供システム１のクライアント１７においては必須の構成要件ではない。アプリケーション提供システム１を実現するためのプログラムや、サーバ１０から提供されたアドレスにより得られるＪａｖａアプリケーションなどのデータを保存するために必要な容量のフラッシュメモリなどを備えている場合は、外部記憶装置１０９を備える必要はない。また、外部記録媒体駆動装置１１０も、後述の外部記録媒体１３０からのデータを読み込む必要がない場合は、備える必要はない。
【０１０７】
外部記録媒体駆動装置１１０は、ＣＤ（Compact Disc）、ＭＯ（Magneto-Optical Disc）、ＤＶＤ（Digital Versatile Disc）などの可搬型の外部記録媒体１３０の記録面にアクセスして、そこに記録されているデータを読み取る装置である。外部記録媒体１３０には、この発明に係るアプリケーション提供システム１の仕組みを実現するためのプログラムも記録することが可能である。外部記録媒体１３０に記録されているデータは、外部記録媒体駆動装置１１０および外部機器インタフェース１０８を介して外部記憶装置１０９に格納され、プログラムであれば、実行時にメモリ１０２のＲＡＭにロードされうる。
【０１０８】
この発明に係るアプリケーション提供システム１を実現するためのプログラムの他の流通形態としては、ネットワーク上の所定のサーバから、ネットワーク１２０およびネットワークインタフェース１０４を介して外部記憶装置１０９に格納されうる。こうして格納されたプログラムは、上記と同様に、実行時にメモリ１０２のＲＡＭにロードされ、この発明に係るアプリケーション提供システム１の仕組みが実現される。
【０１０９】
この発明に係るアプリケーション提供システム１のサーバ１０に関しては、基本的に図９に示すコンピュータ１００と同様の構成を用いることができる。ただし、サーバ１０は、クライアント１７とネットワークを介してデータ通信を行い、受信したプロファイルデータに基づいてオリジナルのリソースデータとイメージデータを変換するものであるため、一般的には、ＣＰＵ１０１、メモリ１０２、ネットワークインタフェース１０４、外部機器インタフェース１０８、および外部記憶装置１０９を少なくとも備える構成とすることが好ましい。
【０１１０】
次に、この発明の実施の第２の形態について説明する。上述の実施の第１の形態では、サーバ１０は、クライアント１７から送信されたプロファイルデータに基づきＧＵＩコンポーネントのサイズや配置を決定していた。
【０１１１】
これに対して、この実施の第２の形態では、サーバ１０側において、典型的な幾つかのアスペクト比毎にＧＵＩの画面デザインを予め用意する。そして、クライアント１７から送信されたプロファイルデータに基づき、アスペクト比が対応するＧＵＩの画面デザインを選択し、選択された画面デザインに基づきリソースデータおよびイメージデータを変換してクライアント１７に送信するようにしている。
【０１１２】
このような実施の第２の形態によれば、異なるアスペクト比のそれぞれについて、デザイナの意図を反映したＧＵＩ画面を構成することができる。
【０１１３】
一例として、アスペクト比が１６：９の画面（例えばＨＤＴＶ(High Definition Television)放送対応のテレビジョン受像機）と、アスペクト比が１：１の画面（例えばＰＤＡや携帯電話端末の画面）とに対して、同一のアプリケーションによるＧＵＩの画面デザインをそれぞれ提供する場合について考える。
【０１１４】
このような場合、アスペクト比が１６：９の画面に適合するように設計された画面デザインを、画面内でのＧＵＩコンポーネントの位置関係を変えずにそのまま、アスペクト比が１：１の画面に適用できるとは限らない。したがって、アスペクト比が１６：９の画面に適合するようにデザインされた画面デザインを、アスペクト比が１：１の画面に適用させる場合には、何らかの方法で画面デザインを変更する必要がある。
【０１１５】
ここで、画面デザインの変更を、サーバ１０側あるいはクライアント１７側でソフトウェア処理による自動変換で行う場合について考える。この場合、デザインを横方向に縮小する、あるいは、所定のアルゴリズムによって、ボタンなどＧＵＩに用いられる部品をアスペクト比が１：１の画面に収まるように自動的に配置し直すなどの処理が必要となることが考えられる。
【０１１６】
しかしながら、このようにして自動生成された画面デザインは、ＧＵＩとして必ずしも操作性、視認性に優れているとは限らず、また、当初のデザイナの意図からかけ離れたデザインになってしまうことも考えられる。すなわち、クライアント１７から送られてきたプロファイルデータの解像度情報に基づき、元の画面デザインをソフトウェア処理による自動生成で変更してしまうことは、ユーザビリティを失ってしまう可能性がある。
【０１１７】
この実施の第２の形態では、リソースデータおよびイメージデータの変換を、デザイナによりアスペクト比毎に予め作成され用意された画面デザインに基づき行うことで、より操作性に優れ見栄えがよいＧＵＩの画面デザインを提供できるようにしている。
【０１１８】
なお、この実施の第２の形態では、上述した実施の第１の形態のシステムなどをそのまま適用可能であるので、システム構成やアーキテクチャなどの説明は、繁雑さを避けるため、省略する。
【０１１９】
図１０は、この発明の実施の第２の形態を概念的に示す。サーバ１０側では、図１０Ａに一例が示されるように、ある１つのアプリケーションプログラム２００に対して、リソースデータ２０１およびイメージデータ２０２を有し、リソースデータ２０１は、ＧＵＩの画面に対するＧＵＩコンポーネントの配置情報であるレイアウトデータを複数、有する（レイアウトデータ２０１Ａ、２０１Ｂおよび２０１Ｃ）。
【０１２０】
この図１０Ａの例では、リソースデータ２０１は、典型的なアスペクト比であるアスペクト比４：３、１６：９および１：１にそれぞれ対応するレイアウトデータ２０１Ａ、２０１Ｂおよび２０１Ｃを有する。レイアウトデータ２０１Ａ、２０１Ｂおよび２０１Ｃのそれぞれは、デザイナによって予め設計されたものである。
【０１２１】
なお、リソースデータ２０１に含まれるレイアウトデータは、この例に限らず、さらに多種類のアスペクト比に対応して用意されてもよいし、アスペクト比４：３と１：１との分だけ、用意してもよい。アスペクト比の例も、４：３、１６：９および１：１に限られない。また、例えば極めて縦長、極めて横長など、特殊なアスペクト比のレイアウトデータを、典型的なアスペクト比のデータと共に含めることも考えられる。
【０１２２】
また、図１０において、リソースデータ２０１とイメージデータ２０２とがそれぞれ別個のデータとして示されているが、これはこの例に限定されず、イメージデータ２０２をリソースデータ２０１に含めることもできる。
【０１２３】
サーバ１０は、クライアント１７から送信されたプロファイルデータに基づき、クライアント１７が備える表示モニタ部またはクライアント１７に接続される表示モニタ装置のアスペクト比に対応するレイアウトデータを、レイアウトデータ２０１Ａ、２０１Ｂおよび２０１Ｃから選択する。そして、選択されたレイアウトデータを所定に変換し、図１０Ｂに一例が示されるように、イメージデータ２０２およびアプリケーションプログラム２００と共にパックデータ２３として、ネットワーク１５を介してクライアント１７に対して送信する。
【０１２４】
なお、上述もしたが、サーバ１０からクライアント１７に対するパックデータ２３の受け渡し方法は、サーバ１０からクライアント１７に対して直接的にパックデータ２３を送信するデータ渡しによる方法と、クライアント１７に対してパックデータ２３のアドレスを送信するアドレス渡しの方法とがある。以下では、これら２種類の受け渡し方法を、データ渡しによる方法で代表させて記述する。
【０１２５】
クライアント１７側では、受信されたパックデータ２３を所定にアンパックし、取り出されたアプリケーションプログラム２００が実行され、リソースデータ２０１およびイメージデータ２０２に基づきＧＵＩの画面が表示モニタ部や表示モニタ装置に描画される。
【０１２６】
異なるアスペクト比にそれぞれ対応するＧＵＩの画面のより具体的な例を、図１１を用いて説明する。図１１Ａは、アスペクト比が４：３に対応するＧＵＩ画面の例、図１１Ｂは、アスペクト比が１６：９に対応するＧＵＩ画面の例、図１１Ｃは、アスペクト比が１：１に対応するＧＵＩ画面の例をそれぞれ示す。これら図１１Ａ〜図１１Ｃに示されるＧＵＩ画面は、同一のアプリケーションプログラムに対応し、この図１１の例では、ＧＵＩ画面が４つのメニュー項目（メニュー項目＃１〜＃４）と、５個のボタン（ボタン＃１〜５＃）とから構成されているものとする。
【０１２７】
当初、このＧＵＩ画面は、アスペクト比が４：３の画面用にレイアウトが設計されていたものとする（図１１Ａ参照）。この図１１Ａのレイアウトにおいては、メニュー項目のブロックとボタンのブロックとが横に並べられている。これに対し、アスペクト比が１６：９の画面用のレイアウトがさらに要求された場合、デザイナは、例えば、図１１Ｂに一例が示されるように、アスペクト比が４：３の画面用のレイアウトを横方向に広げたようなレイアウトが適当であると判断し、レイアウトデータを作成する。
【０１２８】
一方、アスペクト比が１：１の画面用のレイアウトが要求された場合、デザイナは、アスペクト比が４：３や１６：９の画面用に対するレイアウトのように、メニュー項目のブロックとボタンのブロックとを横方向に並べて配置したのでは、操作性および外観に問題があると判断し、図１１Ｃに一例が示されるように、メニュー項目のブロックとボタンのブロックとを縦方向に並べたレイアウトが適当であると判断し、レイアウトデータを作成する。
【０１２９】
作成された、アスペクト比４：３に対応するレイアウトデータ、アスペクト比１６：９に対応するレイアウトデータおよびアスペクト比１：１に対応するレイアウトデータは、それぞれサーバ１０の例えばアプリケーションデータテーブル１１に、対応するアプリケーションプログラムやイメージデータと関連付けられて格納される。
【０１３０】
なお、図１１の例では、アスペクト比４：３、１６：９および１：１に対応するレイアウトとがそれぞれ異なるものとして説明したが、これはこの例に限定されず、異なる複数のアスペクト比に対して全て共通のレイアウトとすることもできる。また、図１１の例では、共に横長の画面であるアスペクト比４：３および１６：９のレイアウトを、共通的なものとしているが、これはこの例に限らず、両者を全く異なるレイアウトとすることもできる。
【０１３１】
図１２は、レイアウトデータの一例を示す。ＧＵＩの画面に表示されるボタンなどのＧＵＩコンポーネントは、実際には、クライアント１７側で予め有するボタン画像などが用いられることが多い。例えば、クライアント１７のそれぞれは、装置のサイズ、外観、用途などに応じたＧＵＩコンポーネントを予め有し、レイアウトデータに基づき、これらＧＵＩコンポーネントの選択および画面への配置を行う。
【０１３２】
したがって、サーバ１０は、例えば図１２に一例が示されるように、ボタンなどのＧＵＩコンポーネントを配置するための座標データ（ｘn，ｙn）をレイアウトデータとして保持しておけばよい。レイアウトデータは、解像度に関して正規化しておけば、様々な解像度に対応するのが容易になり好ましい。また、ボタンは、大きさが可変とされる可変ボタンとして用いることもできる場合もあり、ボタンが可変ボタンであるか否かの情報と、可変ボタンであれば、ボタンのサイズを示す情報とが、さらにレイアウトデータに付加される。
【０１３３】
図１２の例では、ＧＵＩ画面に３個のボタンがボタン画像＃１、ボタン画像＃２およびボタン画像＃３により配置され、ボタン画像＃ｎそれぞれの配置位置がボタン画像の左上隅の座標（ｘn，ｙn）で示されている。また、ボタン画像＃１、ボタン画像＃２およびボタン画像＃３はそれぞれ可変ボタンであって、ボタンのサイズが長さｌnで示されている。
【０１３４】
レイアウトデータが正規化されている場合、実際にクライアント１７において用いられる際には、クライアント１７側の表示モニタ部または表示モニタ装置の解像度に応じて、データが変換される。データの変換は、サーバ１０側で行ってもよいし、クライアント１７側で行うこともできる。
【０１３５】
なお、ＧＵＩ画面には、クライアント１７がそれぞれ有するＧＵＩコンポーネントを用いるのに限られず、サーバ１０側で予め用意したグラフィクスデータを用いることもできる。例えば、アプリケーションプログラムのロゴマーク画像を、サーバ１０側で予め用意し、イメージデータ２０２としてクライアント１７に送信することができる。また、ＧＵＩコンポーネントを表示するための画像データを、サーバ１０側で用意し、イメージデータとしてパックしてクライアント１７に送信することもできる。
【０１３６】
図１３は、この実施の第２の形態による、リソースデータおよびイメージデータの一例の変換処理を示すフローチャートである。なお、この図１３のフローチャートに示される処理は、上述の実施の第１の形態で説明した、図７に示すフローチャートにおけるステップＳ２２の処理に対応する。
【０１３７】
先ず、ステップＳ４０で、クライアント１７から送られてきたプロファイルデータが取得されると共に、プロファイルデータとアプリケーションＩＤとに基づき、アプリケーションプログラムが検索される。そして、検索されたアプリケーションプログラムで用いられるリソースデータ２０１およびイメージデータ２０２が検索される。
【０１３８】
次のステップＳ４１で、取得されたプロファイルデータに含まれる解像度情報に基づき、適用可能なレイアウトデータを決定する。この例では、アスペクト比が１６：９、４：３および１：１の３種類に対応するレイアウトデータが予め作成され用意されているものとする。これら対応するアスペクト比が異なる複数のレイアウトデータから、プロファイルデータに含まれる解像度情報から計算されるアスペクト比に対して最も近いアスペクト比のレイアウトデータを選択する。例えば、サーバ１０は、プロファイルデータ中の解像度情報に基づき、閾値判断により適用するレイアウトデータを決定する。
【０１３９】
閾値判断は、例えば、プロファイルデータ中の解像度情報から計算して得られるアスペクト比に基づき行う。アスペクト比１：１の比の値は１、４：３の比の値は１．３３３・・・、１６：９の比の値は１．７７７・・・であるので、閾値を、例えば１．１５および１．５とする。すなわち、プロファイルデータに含まれる解像度情報から求められるアスペクト比の値が１．１５未満、１．１５以上且つ１．５未満、１．５以上で場合分けを行い（ステップＳ４１）、値が１．１５未満であればアスペクト比１：１用のレイアウトデータを（ステップＳ４２）、値が１．１５以上且つ１．５未満であればアスペクト比４：３用のレイアウトデータを（ステップＳ４３）、値が１．５以上であれば、アスペクト比１６：９用のレイアウトデータを（ステップＳ４４）、当該クライアント１７のＧＵＩ画面に対して用いるレイアウトデータとして選択する。
【０１４０】
なお、レイアウトデータを決定するための閾値は、上述の値に限られない。また、閾値は、対応するアプリケーションプログラムに応じてそれぞれ設定することができる。閾値は、例えば、アプリケーションプログラムに要求される操作性、外観といった様々な条件に基づき、デザイナなどによって設定される。
【０１４１】
レイアウトデータが選択されたら、処理はステップＳ４５に移行する。ステップＳ４５では、リソースデータの変換処理が行われる。
【０１４２】
例えば、レイアウトデータが解像度に関して正規化されて作成されている場合、正規化されたレイアウトデータをプロファイルデータに示される解像度に対応するように変換する処理が行われる。例えば、サーバ１０は、クライアント１７から送られてきたプロファイルデータに含まれる解像度情報に基づき、正規化されたレイアウトデータを当該解像度情報に対応した座標データに変換し、得られたレイアウトデータを変換後のリソースデータの一部とする。
【０１４３】
また、必要に応じて、レイアウトデータに対する拡大、縮小処理も行われる。例えば、図１４に例示されるように、クライアント１７から送られてきたプロファイルデータに示される解像度が８００画素×６００画素であれば、アスペクト比が４：３であるので、アスペクト比が４：３用のレイアウトデータをそのまま用いることができる。一方、クライアント１７から送られてきたプロファイルデータに示される解像度が例えば８００画素×６５０画素といったような、アスペクト比が、上述したステップＳ４１における閾値の範囲内であって、且つ、レイアウトデータのアスペクト比の４：３とは異なる場合も考えられる。このような場合、サーバ１０は、プロファイルデータに示される解像度情報に基づき、選択されたレイアウトデータに対して拡大または縮小処理を行う。拡大または縮小処理は、上述した座標データへの変換後に行ってもよい。
【０１４４】
なお、このステップＳ４５の変換処理では、レイアウトデータ上のＧＵＩコンポーネントの位置関係を変更するような変換は行わない。
【０１４５】
なお、ここでは、レイアウトデータに対する変換処理や拡大、縮小処理について説明したが、イメージデータに対しても、同様の処理を施すことができる。また、イメージデータに対しては、プロファイルデータに含まれる他の情報、例えば出力可能色数（図８参照）といった情報に基づき変換処理がなされる。
【０１４６】
このようにして形成されたりソースデータおよびイメージデータは、ステップＳ４０で検索されたアプリケーションプログラムと共にパックデータとされる（ステップＳ４７）。パックデータは、例えば上述した図７のステップＳ２４で説明したように、所定のアドレスに配置される。
【０１４７】
以降、上述の図７のステップＳ２６以降の処理に従い、サーバ１０は、パックされたファイルのアドレス情報をクライアント１７に送信し（ステップＳ２６）、クライアント１７側では、サーバ１０から送信されたアドレス情報を受け取り（ステップＳ２８）、サーバ１０のファイルにアドレス情報に基づきアクセスして当該パックされたファイルをダウンロードしてアンパックし、アンパックされたデータから取り出されたりソースデータおよびイメージデータを用いてアプリケーションプログラムが実行される（ステップＳ３０）。
【０１４８】
このように、この発明の実施の第２の形態では、アプリケーションプログラムによりクライアント１７の表示モニタ部または表示モニタ装置に表示されるＧＵＩ画面は、予めデザイナによりデザインされ作成された複数のレイアウトデータの中から、クライアント１７から送信されたプロファイルデータに含まれる解像度情報に基づき選択されたレイアウトデータを用いて描画される。そのため、クライアント１７側の表示モニタ部または表示モニタ装置の表示アスペクト比や解像度によらず、デザイナの意図が反映されたＧＵＩ画面を実現することができる。
【図面の簡単な説明】
【０１４９】
【図１】この発明の実施の第１の形態に係るアプリケーション提供システムの概要を表す略線図である。
【図２】この発明の実施の第１の形態に係るアプリケーション提供システムについての機能ブロック図である。
【図３】この発明の実施の第１の形態に係るアプリケーション提供システムにおけるリソースデータとイメージデータの変換の態様を概念的に表す略線図である。
【図４】この発明の実施の第１の形態に係るアプリケーション提供システムにおけるリソースデータとイメージデータの変換の態様をより具体的に表す略線図である。
【図５】この発明の実施の第１の形態に係るアプリケーション提供システムにおけるアプリケーションの実行環境と開発環境の例を表す略線図である。
【図６】この発明の実施の第１の形態に係るアプリケーション提供システムのクライアントのモニタ装置またはモニタ部に表示されるＧＵＩの例を表す略線図である。
【図７】この発明の実施の第１の形態に係るアプリケーション提供システムの処理手順を表すフローチャートである。
【図８】この発明の実施の第１の形態に係るアプリケーション提供システムにおけるプロファイルデータの例を表す略線図である。
【図９】この発明の実施の第１の形態に係るアプリケーション提供システムのクライアントのハードウエア構成の例を表す略線図である。
【図１０】この発明の実施の第２の形態を概念的に示す略線図である。
【図１１】異なるアスペクト比にそれぞれ対応するＧＵＩの画面のより具体的な例を示す略線図である。
【図１２】レイアウトデータの一例を示す略線図である。
【図１３】この実施の第２の形態によるリソースデータおよびイメージデータの一例の変換処理を示すフローチャートである。
【図１４】レイアウトデータの一例の変換処理を説明するための略線図である。
【符号の説明】
【０１５０】
１  アプリケーション提供システム
１０  サーバ
１０Ａ  受信部
１０Ｂ  検索部
１０Ｃ  変換部
１０Ｄ  データ提供部
１１  アプリケーションデータテーブル
１２，２００  アプリケーションプログラム
１３，２０１  リソースデータ
１４，２０２  イメージデータ
１５  ネットワーク
１７  クライアント
１７Ａ  送信部
１７Ｂ  データ取得部
１７Ｃ  実行制御部
２０  ＡＶ機器
３０  テレビジョン機器
４０  放送サーバ機器
５０  ＰＤＡ機器
２１，３１，４１，５１  アプリケーションＩＤ
２２，３２，４２，５２  プロファイルデータ
２３，３３，４３，５３  パックデータ
７０  開発ホスト機
１００  コンピュータ
１０１  ＣＰＵ
１０２  メモリ
１０３  ＧＰＵ
１０４  ネットワークインタフェース
１０５  ディスプレイコントローラ
１０６  ディスプレイ
１０７  入力機器インタフェース
１０８  外部機器インタフェース
１０９  外部記憶装置
１１０  外部記録媒体駆動装置
１１１  バス
１２０  ネットワーク
１３０  外部記録媒体
１４０  リモコン
２０１Ａ，２０１Ｂ，２０１Ｃ  レイアウトデータ
【図１】
2006236323.tif 000003
【図２】
2006236323.tif 000004
【図３】
2006236323.tif 000005
【図４】
2006236323.tif 000006
【図５】
2006236323.tif 000007
【図６】
2006236323.tif 000008
【図７】
2006236323.tif 000009
【図８】
2006236323.tif 000010
【図９】
2006236323.tif 000011
【図１０】
2006236323.tif 000012
【図１１】
2006236323.tif 000013
【図１２】
2006236323.tif 000014
【図１３】
2006236323.tif 000015
【図１４】
2006236323.tif 000016