(57)【要約】バイトコードをネイティブコードにコンパイルする方法が、同じ目的のサーバ（１００）及び受信端末（１０１）と一緒に開示される。前記方法は、バイトコードを含むバイトコードファイルをサーバから受信端末に送信するステップと、前記バイトコードのグループ分けに関するグループ分け情報を前記受信端末に送信するステップと、前記受信端末において受信された前記バイトコードファイルをネイティブコードにコンパイルするステップとを有する。前記バイトコードファイルは、前記バイトコードファイルのグループ分けに応じてコンパイルのために選択される。【特許請求の範囲】
【請求項１】
バイトコードをネイティブコードにコンパイルする方法であり、
前記バイトコードを含むバイトコードファイルをサーバから受信端末に送信するステップと、
前記バイトコードファイルのグループ分けに関するグループ分け情報を前記受信端末に送信するステップと、
前記受信端末において受信された前記バイトコードファイルをネイティブコードにコンパイルするステップと、
を有する方法であって、
前記バイトコードファイルが、前記バイトコードファイルの前記グループ分けに応じてコンパイルのために選択される方法。
【請求項２】
前記グループ分け情報が、送信のための前記バイトコードファイルのグループ分けに関する、請求項１に記載の方法。
【請求項３】
前記コンパイルのために選択されたバイトコードファイルは、同じグループで送信された他のバイトコードファイルの翻訳、コンパイル又は実行のいずれかが行われるとコンパイルのために選択される、請求項２に記載の方法。
【請求項４】
前記グループ分け情報が、デジタルビデオ放送のマルチメディア・ホーム・プラットフォーム規格のデジタル・ストレージ・メディア・コマンド・アンド・コントロール（ＤＳＭ−ＣＣ）プロトコルを使用して規定される、請求項２又は請求項３に記載の方法。
【請求項５】
前記グループ分け情報が、前記サーバに記憶された場合の前記バイトコードファイルのディレクトリ構造に関し、これにより単一のグループが、単一のディレクトリに関する、請求項１に記載の方法。
【請求項６】
前記グループ分け情報が、それぞれのバイトコードファイルのファイル名に追加されたファイル位置を有する、請求項５に記載の方法。
【請求項７】
前記コンパイルのために選択されたバイトコードファイルは、同じディレクトリに属する他のバイトコードファイルの翻訳、コンパイル又は実行が行われるとコンパイルのために選択される、請求項５又は請求項６に記載の方法。
【請求項８】
前記グループ分け情報が、前記バイトコードファイルを前記受信端末に記憶するために使用されるディレクトリ構造を規定し、これにより単一のグループが、単一のディレクトリに関係する、請求項１に記載の方法。
【請求項９】
前記グループ分け情報が、それぞれのバイトコードファイルのファイル名に追加されたファイル位置を有する、請求項８に記載の方法。
【請求項１０】
前記コンパイルのために選択されたバイトコードファイルは、同じディレクトリに属する他のバイトコードファイルの翻訳、コンパイル又は実行が行われるとコンパイルのために選択される、請求項８又は請求項９に記載の方法。
【請求項１１】
前記サーバが、放送カルーセルを使用してバイトコードファイルを前記受信端末に送信する、請求項１ないし１０の何れか一項に記載の方法。
【請求項１２】
前記コンパイルのために選択されたバイトコードファイルが、後の実行のためにコンパイル後にメモリにキャッシュされる、請求項１ないし１２の何れか一項に記載の方法。
【請求項１３】
前記バイトコードが、Ｊａｖａバイトコードである、請求項１ないし１２の何れか一項に記載の方法。
【請求項１４】
バイトコードを含むバイトコードファイルを受信端末に送信するように構成された送信器と、前記バイトコードファイルのグループ分けに関するグループ分け情報とを有するサーバであって、前記グループ分け情報が、特に、バイトコードファイルのグループを特定する目的のために送信され、これにより前記バイトコードファイルが、前記バイトコードファイルの前記グループ分けに応じてネイティブコードへのコンパイルのために選択されるサーバ。
【請求項１５】
前記グループ分け情報が、前記サーバに記憶された場合の前記バイトコードファイルのディレクトリ構造に関し、これにより単一のグループが、単一のディレクトリに関する、請求項１４に記載のサーバ。
【請求項１６】
前記グループ分け情報が、それぞれのバイトコードファイルのファイル名に追加されたファイル位置を有する、請求項１５に記載のサーバ。
【請求項１７】
放送カルーセルを使用して前記バイトコードファイルを前記受信端末に送信するように構成された請求項１４ないし１６の何れか一項に記載のサーバ。
【請求項１８】
前記バイトコードが、Ｊａｖａバイトコードである、請求項１４ないし１７の何れか一項に記載のサーバ。
【請求項１９】
受信端末であり、バイトコードを含むバイトコードファイル及び前記バイトコードファイルのグループ分けに関するグループ分け情報の両方をサーバから受信するように構成された受信器と、前記受信端末において受信された前記バイトコードファイルをネイティブコードにコンパイルするコンパイラとを有する受信端末であって、前記バイトコードファイルが、前記バイトコードファイルの前記グループ分けに応じてコンパイルのために選択される受信端末。
【請求項２０】
前記グループ分け情報が、前記受信器により受信された場合の前記バイトコードファイルの前記グループ分けに関する、請求項１９に記載の受信端末。
【請求項２１】
前記コンパイルのために選択されたバイトコードファイルは、同じグループ内の他のバイトコードファイルの翻訳、コンパイル又は実行のいずれかが行われるとコンパイルのために選択される、請求項２０に記載の受信端末。
【請求項２２】
前記グループ分け情報が、デジタルビデオ放送のマルチメディア・ホーム・プラットフォーム規格のデジタル・ストレージ・メディア・コマンド・アンド・コントロール（ＤＳＭ−ＣＣ）プロトコルを使用して規定される、請求項２０又は請求項２１に記載の受信端末。
【請求項２３】
前記グループ分け情報が、前記バイトコードファイルを前記受信端末に記憶するために使用されるディレクトリ構造を規定し、これにより単一のグループが、単一のディレクトリに関する、請求項１９に記載の受信端末。
【請求項２４】
前記グループ分け情報が、それぞれのバイトコードファイルのファイル名に追加されたファイル位置を有する、請求項２３に記載の受信端末。
【請求項２５】
前記コンパイルのために選択されたバイトコードファイルは、同じディレクトリに属する他のバイトコードファイルの翻訳、コンパイル又は実行が行われるとコンパイルのために選択される、請求項２３又は請求項２４に記載の受信端末。
【請求項２６】
前記コンパイルのために選択されたバイトコードファイルが、後の実行のためにコンパイル後にメモリにキャッシュされる、請求項１９ないし２５の何れか一項に記載の受信端末。
【請求項２７】
前記バイトコードが、Ｊａｖａバイトコードである、請求項１９ないし２６の何れか一項に記載の受信端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バイトコードをネイティブコードにコンパイルする方法に関し、特に前記バイトコードが、サーバから次のコンパイルのために受信する端末に送信されるバイトコードファイルに含まれる場合に関する。
【背景技術】
【０００２】
デジタルビデオ放送（ＤＶＢ）は、デジタル放送の分野において規格化活動を請け負う組織である（http://www.dvb.orgを参照）。ＤＶＢのマルチメディア・ホーム・プラットフォーム（ＭＨＰ）規格（ETSI reference TS 101 812, version 1.1.1, blue book reference A057 05/00）は、アナログテレビ（ＴＶ）からデジタル・インタラクティブ・マルチメディアの未来への調和された移行を促進するように設計された一連の基準である。特に、前記ＭＨＰは、インタラクティブ・デジタル・アプリケーションとこれらのアプリケーションが実行される端末との間の汎用、即ちハードウェアに依らないインターフェースを規定する。これは、デジタル・コンテンツ・プロバイダが、ローエンドからハイエンドまでのセットトップボックス、統合デジタルテレビ及びマルチメディアＰＣにわたる全ての型式の端末をアドレスすることを可能にする。前記ＭＨＰは、以下の例、即ち、電子番組ガイド、情報サービス（向上されたテレテキスト、ニュース及び株価表示等）、並びにテレビコンテンツ、ゲーム及びＥコマースと同期するアプリケーションを含む多種のアプリケーションをサポートする。
【０００３】
前記ＤＶＢ  ＭＨＰ規格及びこの合成要素は、既知であり、よく文書化されており、従って、本発明に関する要素のみが、下に詳述される。
【０００４】
デジタル・ストレージ・メディア・コマンド・アンド・コントロール（ＤＳＭ−ＣＣ）は、ＤＶＢのＭＨＰにおいてＭＰＥＧ−１及びＭＰＥＧ−２ストリームに関連した制御チャネルを開発するツールキットとして使用される。ＭＰＥＧ−２規格のパート６（ＤＳＭ−ＣＣのための拡張）に原理的に規定され、これは、特に、放送カルーセルが規定されることを可能にする。このようなカルーセルは、データセットをバッファにアセンブルする機構であり、周期的な態様で再生され、即ち、周期的に放送される。例えば、このようなカルーセルは、Ｊａｖａクラスファイルと、テキスト情報と、ＭＨＰアプリケーションを実行するために前記受信器に必要とされるグラフィカルデータとを含む全てのアプリケーションファイルを放送するために使用され得る。
【０００５】
ＤＳＭ−ＣＣオブジェクトカルーセルは、ＤＶＢのＭＨＰだけではなく、例えば、英国におけるONdigital、BBCテレビ、Channel４デジタル放送を含む幾つかの地上波デジタルテレビ放送においても使用される。
【０００６】
ＭＨＰは、ＤＶＢ−Ｊとして知られるプラットフォームに基づき、Sun MicrosystemsのＪａｖａ（Ｒ）仮想マシン（ＪＶＭ）規格において規定されるような仮想マシンを含む。Ｊａｖａは、ＪＶＭ上で実行されるハードウェアに依存しない実行可能な“バイトコード”を作成する手段を提供する。異なるハードウェア・プラットフォームは、異なるＪＶＭインプリメンテーションを持つことができるが、しかし全てが、同じバイトコードを実行するだろう。これは、アプリケーションが様々な異なるセットトップボックス又は統合デジタルテレビに対して書かれ、コンパイルされ、放送されることができるデジタルテレビのような放送環境に対して理想的である。
【０００７】
Ｊａｖａソースコードは、Ｊａｖａコンパイラを用いてバイトコードにコンパイルされ、クラスファイルに記憶され、ＪＶＭにより実行されることができる。ＤＶＢのＭＨＰを用いて、Ｊａｖａアプリケーション・クラスファイルは、ＤＳＭ−ＣＣを使用して受信器に対して放送され、前記ＤＳＭ−ＣＣは、対応するファイル構造を規定することができ、前記対応するファイル構造は、この場合、前記クラスファイルを前記受信器に記憶又はキャッシュするために複製されることができる。加えて、前記ＤＳＭ−ＣＣは、関連するＪａｖａクラスファイル及び放送のための他のファイルのグループを有するモジュールを規定するために使用されることができる。
【０００８】
最初のＪＶＭインプリメンテーションにおいて、前記バイトコードが翻訳されたが、しかしながら、最近のＪＶＭは、前記バイトコードをより速く実行するネイティブ命令にコンパイルする。このようなコンパイルは、典型的には、以下の態様の何れにおいても起こり得る。
【０００９】
ジャストインタイム（ＪＩＴ）
これは、クラスファイルがロードされるか、又はクラスファイル内のメソッド（特定の機能を実行するバイトコードのセクション）が実行されるかのどちらかの場合に、バイトコードが、ネイティブコードにコンパイルされる場合である。ＪＩＴインプリメンテーションの不利点は、前記ＪＶＭが、最初にアクセスされる場合にクラス又はメソッドをコンパイルする時間の量を費やさなければならない点である。この時間の間に、前記ＪＶＭは、前記コンパイルが完了するまでＪａｖａアプリケーションの実行を停止して待つ。典型的には、前記コンパイラにより実行される最適化が大きいほど、待ち時間は大きくなるが、前記ネイティブコードは、速く実行するだろう。
【００１０】
ランタイム解析
これらは翻訳されたＪＶＭに基づく。前記ＪＶＭは、ランタイムにおける測定を行い、何れのクラス又はメソッドが、コンパイルされた場合に最高のパフォーマンスの向上を生じるだろうか評価する。これは、クラス又はメソッドが使用される回数と、前記クラス又はメソッドからバイトコードを実行するのに費やされる時間の量との測定を含むことができる。一度識別されると、これらは、（待ち時間を導入して）フォアグラウンドでコンパイルされるか、又はさもなければ浪費されるプロセッサ時間を使用して、バックグラウンドでコンパイルされることができる。この技術を使用するＪＶＭは、新しいクラスファイルがロードされるか、又は以前に使用されていないメソッドが実行される場合に、ＪＩＴインプリメンテーションより少ない待ち時間を持つが、しかし幾らかの翻訳が常に実行されるので、より遅い速度で実行する。ランタイム情報の記憶は、実行速度において小さなオーバーヘッドを持つ。この技法は、バイトコード・インタプリタとバイトコード・ネイティブコード・コンパイラの両方を必要とする。
【００１１】
アヘッド・オブ・タイム（ＡＯＴ）
前記バイトコードは、コンパイル後に処理され、新しいクラスファイルが作成される。前記新しいクラスファイルは、メソッドのネイティブ・インプリメンテーションを含む。前記ＪＶＭは、これらのネイティブ・インプリメンテーションを認識し、バイトコードの代わりに使用する。典型的には、コンパイル時間は、Ｊａｖａアプリケーションの実行を妨げないので、ＡＯＴ時間コンパイルによりＪＩＴより良い最適化が実行されることができる。前記ネイティブコードは、単一のプロセッサに対して特有であり、従ってＡＯＴコンパイルは、異なる受信器製造者により使用される幅広いプロセッサがあり得るので、放送環境に対しては適していない。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明の目的は、サーバから受信端末に送信されたバイトコードファイルに含まれるバイトコードをネイティブコードにコンパイルする代替の及び効率的な方法を提供することである。
【課題を解決するための手段】
【００１３】
本発明によると、このような方法は、バイトコードを含むバイトコードファイルをサーバから受信端末に、例えば放送カルーセルを使用して、送信するステップと、前記バイトコードファイルのグループ分けに関するグループ分け情報を前記受信端末に送信するステップと、前記受信端末において受信されたバイトコードファイルをネイティブコードにコンパイルするステップとを有し、前記バイトファイルは、前記バイトコードファイルのグループ分けに応じてコンパイルのために選択される。コンパイル後、前記バイトコードファイルは、後の実行のためにメモリにキャッシュされることができる。
【００１４】
本発明の前記方法は、依然としてプラットフォーム独立性を維持しながら、及びＪＩＴコンパイル又はランタイム解析と関連した待ち時間無しで、アヘッド・オブ・タイムで選択されたバイトコードがコンパイルされることを可能にする。
【００１５】
前記グループ分け情報は、送信のための前記バイトコードの前記グループ分け、前記サーバに記憶されたような前記バイトコードファイルのディレクトリ構造、又は前記バイトコードファイルを前記受信端末に記憶するのに使用されるディレクトリ構造に関してもよい。
【００１６】
第１オプションの場合、前記バイトコードは、同じグループで送信された他のバイトコードファイルの翻訳、コンパイル又は実行のいずれかが行われるとコンパイルに対して選択され得る。例えば、このようなグループ分け情報は、前記ＤＶＢのＭＨＰ規格のＤＳＭ−ＣＣプロトコルを使用して記述されてもよい。
【００１７】
後の２つのオプションの場合、単一のグループは、典型的には、単一のディレクトリに関するであろうから、バイトコードファイルは、この場合、同じディレクトリに属する他のバイトコードファイルの翻訳、コンパイル又は実行が行われるとコンパイルのために選択され得る。
【００１８】
再び、前記後の２つのオプションの場合、前記グループ分け情報は、それぞれのバイトコードファイルのファイル名に追加されたファイル位置、即ち、従来的に既に放送された情報の新しい使用を有してもよい。
【００１９】
本発明により更に提供されるのは、請求項１４ないし１８に記載のサーバと、請求項１９ないし２７に記載の受信端末とである。
【００２０】
本発明は、ここで、添付された概略図を参照して、例としてのみ記述されるだろう。
【発明を実施するための最良の形態】
【００２１】
図１は、補助アプリケーションデータと一緒にテレビのオーディオ及びビデオデータをＤＶＢのＭＨＰ規格による対応する受信システム１０１に送信するように構成されたテレビ放送システム１００を示す。例えば、前記テレビ放送システムは、民間衛星放送局に属する衛星放送システムであってもよく、前記受信システムは、衛星受信パラボラアンテナと、前記受信されたデータを処理してテレビ１１６上に表示するセットトップボックスとの多くの対応する組み合わせの１つであってもよい。同様に、前記放送システム及び対応する受信システムは、地上波ベースであることができる。どちらの場合にも、このようなシステムの設計、製造及び操作は、既知であり、本発明に関係しない部分は、ここで更には詳述されないだろう。
【００２２】
オーディオ１０５、ビデオ１０４及びデータ１０６入力部を介して、放送システム１００は、事前に記録されたオーディオ及びビデオ・テレビ・コンテンツを含む記憶媒体１０２からのオーディオ及びビデオデータ・ストリームと、Ｊａｖａクラスファイル及び関係したグラフィックファイルを有するコンピュータ１０３からのアプリケーションデータ・ストリームとをフィードされる。前記アプリケーションデータは、前記オーディオ及びビデオ・コンテンツに関連した補助情報を含む（図示されない）向上されたデータ／テレテキスト・サービスを提供するためのものであり、前記情報を介して、ユーザは、前記オーディオ及びビデオデータが表示されるのと同時にナビゲートすることができる。
【００２３】
前記オーディオ、ビデオ及びデータストリームは、送信器１０８を使用して単一のチャネルにのせて対応する受信システムに放送される前に、マルチプレクサ１０７において多重化される。前記図示された受信システムにおいて、入ってくる伝送は、受信器１０９により受信され、デマルチプレクサ１１０において非多重化され、オーディオ、ビデオ及びアプリケーションデータ・ストリームは、それぞれオーディオ出力部１１２、ビデオ出力部１１１及びデータ出力部１１３を介して出力される。前記アプリケーションデータから導かれる表示データは、この場合、テレビ信号処理ユニット１１５における前記オーディオ及びビデオデータを持つフィードであり、テレビ信号処理ユニット１１５から、対応するテレビ信号が、テレビ１１６上に表示するために出力される。
【００２４】
前記アプリケーションデータの前記Ｊａｖａクラスファイルは、特に、前記オーディオ及びビデオ・コンテンツに関連した前記補助情報を表示する窓を生成するために提供されることができ、関連したグラフィックファイルは、装飾用のフレーミング窓及びメニュー・ナビゲーション・オプションの表示を含む外観のために提供されてもよい。このような向上されたデータ／テレテキスト・サービスの例は、前記オーディオ及びビデオ・コンテンツが、演奏するポップスグループを表す場合であり、前記アプリケーションデータは、前記オーディオ及びビデオ表示の部分にわたる窓に表示されるようにウェブ型のインターフェースを用いてデータ／テレテキスト・サービスを提供し、前記ポップスグループのファンは、今度のコンサート及びゴシップ等を詳述する情報のページを閲覧することができる。
【００２５】
特定のＪａｖａクラスファイルは、１つのクラスファイルの翻訳又はコンパイルが、他のクラスファイルの翻訳又はコンパイルに帰着するであろう、またはなり得る、即ち、１つのクラスファイルが、他のクラスファイルの実行を要求し得る限り互いに関連付けられるだろう。この情報は、前記受信器においてランタイム解析により得られることができるが、しかし以前述べたように、これは、待ち時間を導入する。しかしながら幸運にも、前記アプリケーションデータをオーサリングすると、どのクラスファイルが、このように関連付けられるか、及びこれらのクラスファイルが、これに応じてグループ分けされることができることは、認識されるだろう。本発明によると、これらのグループ分けは、前記受信システムにより識別され、これにより特定のクラスファイルは、事前にコンパイルされ、同じグループ内の他のバイトコードファイルの翻訳、コンパイル及び実行のいずれかが行われると後の実行のためにメモリにキャッシュされる。
【００２６】
前記クラスファイルの前記グループ分けは、以下の例の何れかによる前記受信システムに伝達されることができる。
【００２７】
例１
前記グループ分けは、送信中の前記バイトコードファイルの配置に関して規定される。このようなグループ分けは、クラスファイル及び他のファイルを放送するためにモジュールにグループ分けすることができるＤＶＢのＭＨＰのＤＳＭ−ＣＣを使用して規定されることができ、ここで、モジュールの内容は、特定のアプリケーションに関連する。例えば、図２を参照すると、モジュール１は、ディレクトリ“dir1”内の全てのクラスファイルのリストを含み、モジュール２は、クラスファイル“file1.class”、“file4.class”、“file5.class”及びディレクトリ“dir2”内のクラスファイルのリストを含み、モジュール３は、クラスファイル“file2.class”、“file3.class”、“file6.class”、“file7.class”及びディレクトリ“dir3”内の全てのクラスファイルのリストを含み、グラフィックファイル“file8.gif”をも含む。バイトコードファイルは、この場合、同じグループで送信された他のバイトコードファイルの翻訳、コンパイル又は実行のいずれかが行われるとコンパイルのために選択されてもよい。
【００２８】
例２
前記グループ分けは、送信の前に前記サーバに記憶される場合の前記バイトコードファイルの前記ディレクトリ構造により規定され、これにより単一のグループは、単一のディレクトリに対応する。この場合に、前記グループ分け情報は、それぞれのバイトコードファイルのファイル名に追加されたファイル位置を含むことにより、前記バイトコードファイルの中で分配されてもよい。例えば、図３を参照して、前記示されたディレクトリ構造は、クラスファイルの３つのグループに対応することができ、グループ１は、全てのクラスファイルを含むディレクトリ“dir1”に対応し、グループ２は、クラスファイル“file4.class”及び“file5.class”を含む“dir2”に対応し、グループ３は、クラスファイル“file6.class”及び“file7.class”を含む“dir3”に対応する。この場合、所定のクラスファイルは、一度しか放送される必要がないが、１つより多いグループに属することができる。バイトコードファイルは、この場合、コンパイルのために選択されることができ、これによりディレクトリ“dir2”及び“dir3”に対応するグループ内のクラスファイルは、同じディレクトリに属する他のバイトコードファイルの翻訳、コンパイル又は実行が行われると選択され、クラスファイル“file1.class”、“file2.class”及び“file3.class”（即ちディレクトリ“dir2”又は“dir3”ではなくディレクトリ“dir1”内のクラスファイル）のコンパイルが行われると、ディレクトリ“dir1”内の全てのクラスファイルがコンパイルされる。
【００２９】
例３
前記グループ分けが、前記バイトコードファイルを前記受信端末に記憶するために使用されるように、前記サーバに記憶された場合の前記ファイルのディレクトリ構造と同じである必要がないディレクトリ構造により規定されることを除き、例２と同様である。
【００３０】
例４
前記グループ分けは、前記クラスファイルと共に送信され、特に、効率的なコンパイルのためにクラスファイルのグループ分けを規定する唯一の目的のために提供された付加的な情報により規定される。
【００３１】
上述の実施例は、主としてカルーセルでバイトコードを放送する放送システムの文脈において本発明を記述する。しかしながら、本発明は、Ｊａｖａアップレット等のインターネット転送を含む、バイトコードが受信システムに送信される他の装置に対して同様に適用することができる。
【図面の簡単な説明】
【００３２】
【図１】本発明により構成されたテレビ放送システム及び対応する受信システムを示す。
【図２】図１の放送システムにより使用される対応するディレクトリと、Ｊａｖａクラスファイルの構造をグループ分けするモジュールと、他の関係したファイルとを示す。
【図３】図１の放送システムにより使用される対応するディレクトリと、Ｊａｖａクラスファイルの構造をグループ分けするモジュールと、他の関係したファイルとを示す。
【図２】
2005505849.tif 000002
【国際公開パンフレット】
2005505849.tif 000003
2005505849.tif 000004
2005505849.tif 000005
2005505849.tif 000006
2005505849.tif 000007
2005505849.tif 000008
2005505849.tif 000009
2005505849.tif 000010
2005505849.tif 000011
2005505849.tif 000012
2005505849.tif 000013
2005505849.tif 000014
2005505849.tif 000015
2005505849.tif 000016
2005505849.tif 000017
【国際公開パンフレット（コレクトバージョン）】
2005505849.tif 000018
【国際調査報告】
2005505849.tif 000019
2005505849.tif 000020
2005505849.tif 000021