JP2008515322A - Mhpアプリケーションの起動時間を減少させるシステム及び方法 - Google Patents
Mhpアプリケーションの起動時間を減少させるシステム及び方法 Download PDFInfo
- Publication number
- JP2008515322A JP2008515322A JP2007534156A JP2007534156A JP2008515322A JP 2008515322 A JP2008515322 A JP 2008515322A JP 2007534156 A JP2007534156 A JP 2007534156A JP 2007534156 A JP2007534156 A JP 2007534156A JP 2008515322 A JP2008515322 A JP 2008515322A
- Authority
- JP
- Japan
- Prior art keywords
- application
- mhp
- class
- file system
- api
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4432—Powering on the client, e.g. bootstrap loading using setup parameters being stored locally or received from the server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4433—Implementing client middleware, e.g. Multimedia Home Platform [MHP]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Stored Programmes (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
MHP1.0.xの持続性記憶域能力及びカスタム・クラスローダを利用することによりMHP1.0.x規格に基づくMHPアプリケーションの起動時間を減少させるシステム及び方法が提供される。MHP1.0.xアプリケーションが、前記アプリケーション自体を持続性記憶域に複製し、前記持続性記憶域から前記アプリケーションを実行することを可能にする汎用ラッパクラスが作成され、これにより起動時間を減少させる。前記汎用ラッパクラスは、MHPプロトコル内の2つの事前に存在するAPI,即ちDVBクラスローダAPI及び持続性記憶域APIを使用する。
Description
本発明は、MHP1.0.x標準規格に基づくMHPアプリケーションの起動時間を減少させるシステム及び方法に関する。
テレビ放送消費者の多くの高機能の市場主導型の要求を満たすために、サブスクライバ・セットトップボックスにコンテンツデータを通信するようなミドルウェア・プラットフォーム・プロバイダは、複数の異種放送及びウェブ対応ネットワークを越えて展開されるコンテンツ(即ち、アプリケーション/データ)にアクセスする必要がある。これらのネットワークは、一般に、例えば、(DVB−C(ケーブル)、DVB−T(地上波)及びDVB−S(衛星)を含む)デジタルビデオ放送(DVB)、オープンケーブル・アプリケーション・プラットフォーム(OCAP)、アドバンストテレビシステム委員会(ATSC)、国家テレビ標準委員会(NTSC)、GIモトローラネットワーク、及びマルチメディアホームプラットフォーム(MHP)標準規格等を含む米国又は欧州の産業デジタル放送標準規格に基づく。MHP規格は、衛星、ケーブル、地上波、及びマイクロウェーブを含む全ての伝送ネットワークにおける放送及びインタラクティブサービスに対して既存のDVB規格を拡張する。DVB/MHP規格は、インタラクティブデジタルアプリケーションと前記アプリケーションが実行する端末との間の汎用(generic)、即ちハードウェアに独立なインターフェースを規定する。これは、デジタルコンテンツプロバイダが、ローエンドからハイエンドのセットトップボックス、統合デジタルテレビセット及びマルチメディアPCまでの範囲の全てのタイプの端末にアドレスすることを可能にする。
DVB/MHP規格によると、MHPアプリケーションは、DSM−CCとして既知のプロトコルにより周期的な形式で放送される。アプリケーションを開始するために、受信器は、少なくとも前記アプリケーションを開始するのに必要とされる部分が来るまで待機しなければならない。多くの場合、この時間は、完全なアプリケーションのサイクル時間に等しく、これは不十分であり、時間がかかる。更に、帯域幅制限及び増大するアプリケーションサイズは、前記アプリケーション起動時間を更に大幅に制限する。前記MHPアプリケーションを統合受信器デバイスの常駐型ファイルシステム(resident file system)に記憶することは、APIが、必要に応じて前記記憶されたMHPアプリケーションの取り出しを容易化するように構成される点で、MHP1.1.x規格によって動作するシステムに対して完全な解決を提供する。しかしながら、多くのユーザは、依然としてMHP1.0.xからMHP1.1.xに移る必要があり、記憶されたMHPアプリケーションを取り出すような機能は、MHP1.0.xには存在しない。
したがって、MHP1.0.x標準規格に基づくMHPアプリケーションの起動時間を減少させる装置及び方法を提供することが望ましい。
本発明によると、MHP1.0.x標準規格に基づくMHPアプリケーションの起動時間を減少させるシステム及び方法が提供される。広くは、本発明のシステム及び方法は、説明されるようにMHP1.0.xのカスタム・クラスローダ(Classloader)及び持続性記憶域(persistent storage)性能を利用することにより、MHP1.0.xアプリケーションが起動時間を減少させることを可能にする。
一実施例において、汎用ラッパ(GW、generic wrapper)クラスがMHP1.0.xアプリケーションに対して作成され、これは、MHP1.0.xアプリケーションが、MHP1.0.xアプリケーションの起動時間を減少させるために従来のような放送ファイルシステムの代わりに、持続性ファイルシステム(persistent file system)に前記アプリケーション自体を複製し、前記持続性ファイルシステムから前記アプリケーション自体を実行することを可能にし、前記持続性ファイルシステムは、例えば、インタラクティブデジタルテレビ(IDT)システム又はセットトップボックス(STB)に関連付けられることができる。前記放送ファイルシステムは、放送ストリームによりDSM−CCプロトコルによって搬送されるファイルシステムである。
起動時間は、MHPプロトコル内の2つの以前から存在するAPI、即ちDVBクラスローダ(DVBClassloader)API及び持続性記憶域APIを使用することにより前記汎用ラッパ(GW)クラスにより減少される。前記DVBクラスローダAPIは、常駐型ファイルシステム内のディレクトリからクラス及びリソースをロードすることができるDVBクラスローダオブジェクトをインスタンシエートする(instantiate)ために前記汎用ラッパ(GW)クラスにより呼び出される。前記DVBクラスローダオブジェクトは、前記持続性ファイルシステム内のクラスファイルの場所と、前記放送ファイルシステム内のクラスファイルの場所とを含むURLのリストを受信する。前記DVBクラスローダオブジェクトは、前記リスト内の第1のURLを使用して前記持続性ファイルシステム内のMHP1.0.xアプリケーションのクラスファイル及びリソースを検索する。前記持続性ファイルシステム内で見つからなかったクラス及びリソースに対して、前記DVBクラスローダオブジェクトは、前記リスト内の第2のURLを使用して前記放送ファイルシステムにおいて前記持続性ファイルシステム内で見つからなかったクラス及びリソースを検索する。
他の態様によると、前記汎用ラッパ(GW)クラスが呼び出されるたびに、コピースレッドプロセス(copythread process)(Java(登録商標)タスク)が作成され、前記コピースレッドプロセスは、前記放送システムから前記持続性ファイルシステムにファイルを複製し始める。より具体的には、持続性記憶域APIは、前記汎用ラッパ(GW)クラスにより呼び出される。前記コピースレッドプロセスは、前記汎用ラッパ(GW)クラスが呼び出されるたびに、持続性記憶域APIを使用してMHPアプリケーションの多くのクラスファイルを前記放送ストリームから前記持続性ファイルシステムに複製する。前記汎用ラッパ(GW)クラスが呼び出されるたびに、前記コピースレッドプロセスは、クラスを前記持続性記憶域に複製しつづけることにより以前の呼び出しにおいて中止した点で続行する。このように、前記コピースレッドプロセスは、むしろバックグラウンドプロセスに近い。このようなものとして、前記汎用ラッパ(GW)クラスに対する各呼び出しは、以前の呼び出しの各々において持続性記憶域に追加のクラスファイルを記憶したおかげで前記MHPアプリケーションの起動時間を増加的に向上させる働きをする。一実施例において、このプロセスは、上述のように前記DVBクラスローダAPIと並列に実行されるように、低い優先順位で実行されてもよい。
一態様によると、前記アプリケーションに関連付けられた持続性ファイルシステムディレクトリがセキュリティ制限無しでアクセスすることができる唯一のディレクトリであることを認識することにより、前記MHPアプリケーションがXletコンテキストを常駐システムから受信する前に前記MHPアプリケーションの組織ID及びアプリケーションIDを得ることが可能である。
本発明の前述のフィーチャは、添付の図面と一緒に本発明の例示的な実施例の以下の詳細な説明を参照することにより、より容易に明らかになり、理解されることができる。
本発明は、DVB/MHP環境に適用されるDSM−CC放送プロトコルによる使用に対する実施例を参照して説明される。
背景技術に記載されたように、従来技術によると、図1のIRD受信器12のようなDSM−CCを使用するデジタルテレビプラットフォームは、典型的には、テレテキストのようなシステムと遭遇したモジュールにアクセスする際に、要求されるモジュールが放送される順番まで待機しなければならないことにより生じる長い遅延を避けるために、少なくとも幾らかのDSM−CCモジュールをキャッシュする。しかしながらキャッシングは、限られたメモリ及び非持続性のため、不完全な解決法である。このようなものとして、記憶は好ましいオプションである。後の呼び出しのためにMHPアプリケーションを持続性ファイルシステムに記憶することは、"記憶されたアプリケーション"と称されるMHP1.1の内在する機構であるが、しかしながら、MHP1.0.xは、このような記憶及び前記持続性ファイルシステムからの再呼び出しに対して明示的なサポートを提供しない。
本発明のシステム及び方法は、MHP1.0.x規格により動作する既存のMHPアプリケーションが、前記MHPアプリケーション自体を持続性ファイルシステムに複製し、次に前記MHPアプリケーションが開始される場合に前記MHPアプリケーション自体を前記持続性ファイルシステムからロードすることを可能にする汎用ラッパクラスを提供することによりこれらの欠点を克服する。この複製プロセスが初めの又は後の呼び出しにおいて全体としては実行されることができず、この場合、次に前記アプリケーションが開始される場合、前記アプリケーションが、前記持続性ファイルシステムから部分的にしかロードされないことに注意すべきである。
マルチメディアアプリケーションに対する通信システムのバックボーンは、ここで図1を参照して論じられる。前記バックボーンは、複数の通信パスを有する。伝送媒体は、オーディオ(A)、ビデオ(V)及びデータ(D)のようなデジタル情報の高速伝送をサポートする。複数のユーザが前記バックボーンに接続され、このうち第1のユーザ10が図1に示されている。このユーザ10は、図1において40で示される複数のサービスプロバイダにより提供されるテレビ番組のサブスクライバのようなマルチメディア情報の受信器として機能する。各ユーザは、入ってくる情報を処理し、ときどき情報の送信機としても機能するように構成されたセットトップボックス(図示されない)又は統合型受信器/デコーダ(IRD)12であることができる受信又は常駐プラットフォーム(resident platform)を持つ。
この模範的実施例において、前記常駐プラットフォームは、統合型受信器/デコーダ(IRD)12として実施され、DVB/MHP準拠であると仮定される。マルチメディアホームプラットフォーム(MHP)仕様は、デジタルテレビに対する改良された及びインタラクティブなアプリケーションの送信のためにDVB規格により規定される。この仕様の最大のフィーチャは、Java(登録商標)ミドルウェアを使用することである。Java(登録商標)は、プラットフォーム間の互換性を向上させる1つの方法としてSun Microsystemsにより推進されるミドルウェアである。全てのJava(登録商標)アプリケーションは、Java(登録商標)を備えたコンピュータ又はデバイス上で実行し、Java(登録商標)アプリケーションの最大のフィーチャは、前記アプリケーションが特定のプラットフォームに制限されず、幅広い動作環境において使用されることができることである。このようなものとして、マルチメディアホームプラットフォーム(MHP)は、インタラクティブデジタルアプリケーションと、これらのアプリケーションを実行する端末との間の汎用インターフェースを規定する。このインターフェースは、異なるMHP端末実装の特定のハードウェア及びソフトウェアの詳細から異なるプロバイダのアプリケーションを分離する。これは、デジタルコンテンツプロバイダが、ローエンドからハイエンドのセットトップボックス、統合型デジタルテレビセット及びマルチメディアPCまでの範囲にある全てのタイプの端末にアドレスすることを可能にする。ここで使用されるように、"アプリケーション"は、放送受信装置において様々な目的を達成するために実行されるプログラムとして規定される。
MHPアプリケーションは、適切に備えられたIRD受信器12に対してデジタルテレビ番組を持つ放送ストリームにおいて放送される。背景技術に記載されたように、前記MHPアプリケーションは、前記MHPアプリケーションが周期的に放送されるISO/IEC1381−6の下で規定されるDSM−CCプロトコルのようなプロトコルによってカルーセル形式(carousel format)で放送される。適切に備えられたIRD受信器12は、これらのMHPアプリケーションを受信し、ローカルで実行することができる。アプリケーション例は、電子番組ガイド、プレイアロング(play-along)ゲーム、テレバンキング、メニューナビゲーションオプション、テレショッピング、電子新聞及び同様な情報サービスである。
上述のように、本発明は、持続性複製ラッパ(PersistentCopyWrapper)Xletとも称される汎用ラッパ(GW)クラスを使用し、前記汎用ラッパ(GW)クラスは、MHP1.0.xアプリケーションが、前記アプリケーション自体を持続性ファイルシステムに複製し、前記持続性ファイルシステムから前記アプリケーション自体を実行することを可能にする。したがって、この点で簡潔にXletを概説することは有益である。
Sun Microsystemsは、Xletとも称されるJava(登録商標)TVTM APIをリリースした。Java(登録商標)テレビアプリケーションは、プログラミング情報及びアナウンスのようなフィーチャ、ゲームショーに沿ってプレイする能力のような選択可能なアプリケーション、画面を横断する株式ティッカーバナーのような放送データ、又はインタラクティブ番組関連調査のような媒体制御を提供することにより放送及び視聴体験を向上させる。アプレットのようなXletは、前記Xletを実行するソフトウェアにより制御される。アプレットの場合、基礎を成すソフトウェアは、ブラウザ又はアプレットビューワツールである。Xletの場合、基礎を成すソフトウェアは、Java(登録商標)テレビプラットフォームをサポートするセットトップボックス又はデジタルテレビ受信器である(例えば図1のIRD12)。Xletは、"主要な"メソッドを持たず、Xletは常にインターフェースXletを実装する。アプレットのように、Xletはライフサイクルを持ち、ライフサイクルメソッドシグネチャは、前記インターフェースXletにより規定される。前記インターフェースXletは、作成、初期化、開始、停止及び破壊のようなXlet状態変化を信号通知するためにライフサイクルメソッドを提供する。しかしながら、前記インターフェースXletは、ライフサイクルメソッドに対する実装を提供しない。
全てのJava(登録商標)テレビ実装は、インターフェースXletを介して様々なアプリケーション状態を通して1つ以上のXletを移動するように前記ライフサイクルメソッドを呼び出すアプリケーションマネージャを持つ。上述のように、前記インターフェースXletは、ライフサイクルメソッドに対する実装を提供しない。開発者は、Xletライフサイクル内の各点において何が起こるかを規定することによりこれらのメソッドに対するアプリケーション固有の実装を提供する。例えば、ゲームXletに対するinitXletメソッドは、ユーザインターフェースコンポーネントを作成することができる。Xletが一部の状態変化をこれ自体で開始し、XletContextインターフェースにおけるメソッドを起動することによりこれらの状態変化を前記アプリケーションマネージャに通知することができることに注意すべきである。
前記インターフェースXletは、Java(登録商標)TVTM APIにおいて規定されるパッケージの1つであるjavax.tv.xletパッケージにより規定される。Java(登録商標)TVTM APIは、パッケージにグループ化されたクラス及びインターフェースからなる。これらのパッケージは、テレビネットワークにより送信される放送ストリームによりデジタル受信器に送信されるビデオ、オーディオ及びデータを処理するクラス及びインターフェースを含む。
前記javax.tv.xletにおいて規定される前記インターフェースXletは、アプリケーションマネージャがXletを作成、初期化、開始、停止及び破壊することを可能にする。前記アプリケーションマネージャは、前記Xletの状態を維持し、様々なライフサイクルメソッドを介して前記Xlet上のメソッドを起動する。前記Xletは、これらのメソッドを実装して、前記アプリケーションマネージャにより命令されたように内部活動及びリソース使用を更新する。
javax.tv.xletにより規定される前記インターフェースXletのメソッドサマリ(method summary)は以下のとおりである。destroyxletは、終了し、破壊された状態に入るように前記Xletに信号通知する。initXletは、前記Xlet自体を初期化し、停止された状態に入るように前記Xletに信号通知する。pauseXletは、サービスの提供を停止し、停止された状態に入るように前記Xletに信号通知する。startXletは、サービスの提供を開始し、アクティブ状態に入るように前記Xletに信号通知する。これらのメソッドが、以下に記載されるように、本発明の汎用ラッパクラスに組み込まれると確信される。
周知のように、MHP1.0.xは、基礎を成すベンダ固有のハードウェア及びソフトウェアと独立なデジタルインタラクティブテレビに対する拡張アプリケーション実行環境を定めている。この実行環境は、Java(登録商標)仮想マシンの使用と、前記インタラクティブデジタルテレビ端末の典型的なリソース及び機能に対するアクセスを提供する汎用APIの定義とに基づく。これらの汎用APIを使用するJava(登録商標)アプリケーションは、DVB−Jアプリケーションと称される。これに反して、MHP1.1は、新しいオプションのアプリケーションタイプ、DVB−HTMLを規定することを含む複数の方法で前記MHP1.0.xプラットフォームに追加の機能を提供する。MHP1.0.xに対して、DVB−Jのみがサポートされる必要がある。したがって、MHP1.0.xの下で実行するDVB−Jアプリケーションに対して、"javax.tv.xlet.Xlet"は、定義済みのインターフェースであり、MHP1.0.xの下で実行されることができる唯一の認識可能なエンティティである。
本発明は、MHP1.0.xアプリケーションが、持続性ファイルシステムにMHPアプリケーションのコード(クラスファイル)を記憶し、前記記憶されたクラスファイルを使用して次に実行する場合に前記持続性ファイルシステムから完全なMHPアプリケーションをロードすることを可能にするMHPアプリケーションに対する汎用Xletラッパクラスを作成する。このように、通常は記憶されていないMHPアプリケーションが、改良された起動時間を実現する。
本発明は、好ましくは、MHP1.0.xアプリケーションが、前記持続性ファイルシステムに前記アプリケーション自体を複製し、前記持続性ファイルシステムから前記アプリケーション自体を実行することを可能にする、MHPアプリケーションに対する、ここで"PersistentXletCopyWrapperXlet"とも称される、記載されるべき汎用ラッパ(GW)クラスを作成することにより一般的な方法で実施される。
前記汎用ラッパ(GW)クラスは、前記GWラッパクラスにおいて呼び出される各メソッド、コンストラクタ(constructor)、スタティック初期化子(static initializer)が、元のMHP1.0.xアプリケーション内の対応するメソッド、コンストラクタ、スタティック初期化子に伝播されるように設計される。事実、前記インターフェースは、これが含むMHP1.0.xアプリケーションインターフェースと全く同じである。
前記元のMHP1.0.xアプリケーションの機能をミラーリングすることに加えて、前記汎用ラッパクラスは、2つのAPIを含む。一方のAPIは、Java(登録商標)クラスローダの拡張であるDVBクラスローダAPIであり、MHP APIの一部である。これは、MHPアプリケーションによる使用に対して利用可能な唯一のクラスローダである点で特別な拡張である。前記DVBクラスローダAPIは、Java(登録)クラスが記憶されることができる場所を参照するURLの検索パスからクラス及びリソースをロードするのに使用される。本発明で使用されるように、前記DVBクラスローダAPIは、前記持続性ファイルシステム内の場所のリストに対応するURLの検索パスと、前記MHPアプリケーションのクラスを探すことができる前記放送ファイルシステム内の場所のリストに対応するURLの検索パスとを備える。
第2のAPIは、前記"PersistentXletCopyWrapperXlet"クラスが呼び出される場合にはいつも前記DVBクラスローダAPIと実質的に並列に動作することができる持続性記憶域APIである。コピースレッドプロセスは、前記MHP1.0.xアプリケーションのクラスファイルを前記放送ストリームから前記持続性ファイルシステムに複製する。前記"PersistentXletCopyWrapperXlet"クラスが呼びされるたびに、前記コピースレッドプロセスは、前記持続性ファイルシステムにクラスを複製しつづけることにより以前の呼び出しにおいて中断した点で続行する。このように、前記コピースレッドプロセスは、むしろバックグラウンドプロセスに近い。このようなものとして、前記"PersistentXletCopyWrapperXlet"クラスに対する各呼び出しは、前記以前の呼び出しの各々において前記持続性ファイルシステムに追加のクラスファイルを記憶したおかげで前記MHP1.0.xアプリケーションの起動時間を向上させる働きをするだけである。
図2a及び図2bは、従来技術によるMHPアプリケーションに対する呼び出し(図2a)及び本発明の"PersistentXletCopyWrapperXlet"クラスに対する呼び出し(図2b)の機構を説明するシーケンス図を示す。時間的に、前記シーケンス図は、ユーザがチャネルをザッピングする点から開始し、前記MHPシステムは、(1)当該チャネルに関連付けられたMHPアプリケーションが存在しうること、(2)いずれのXletクラスファイルが各MHPアプリケーションに属するか、(3)前記ストリーム及び前記クラスの場所を応答的に決定する。この全てがMHPプロトコルにカプセル化される(encapsulated)。ある時点で、前記システムは前記クラスファイルをロードし始め、これは、図2a及び2bが開始する点である。
図2aは、従来技術のシーケンス図である。これは、MHPアプリケーションが開始される場合に前記MHPシステムが、以下のステップ、即ち(1)ラベル51で示される前記Xletクラス(即ち前記Xletインターフェース、AnXletを実装するJava(登録商標)クラス)をロードするステップと、(2)ラベル53で示される前記Xletクラスのスタティック初期化子を実行するステップと、(3)ラベル55で示される前記Xletクラスのインスタンスを作成し、デフォルトのコンストラクタを実行するステップと、(4)ラベル57で示されるinitXletを呼び出すステップと、(5)ラベル59で示されるstartXletを呼び出すステップとを実行することが示される。これらのステップは、前記MHPアプリケーションのライフサイクルを制御する。MHPアプリケーションが開始されるたびに同じステップが実行されることに注意する。大きいアプリケーションは、必然的に小さいアプリケーションよりロードするのに長い時間がかかる。ある時点において、示された前記クラスは、独自のコンストラクタ及び初期化子を持つ他のクラスを再帰的にロードし、追加の時間を要する。
図2bは、以後、GWクラス90と称される、前記汎用ラッパクラス、"PersistentXletCopyWrapperXlet"により実行されるステップを説明する本発明の一実施例によるシーケンス図である。GWクラス90は、MHPアプリケーションを開始する(図2に示されるような)従来技術の動作を実行するのに加えて、2つのAPI、即ちDVBクラスローダAPI及び持続性ファイルシステムAPIを呼び出す。
MHPシステム70は、黙示的にクラスローダ75をインスタンシエートし、前記Xletクラスをロードする。(このクラスローダはシステム固有であり、したがって前記アプリケーションにより使用されることができない。)
MHPシステム70は、次いで、"loadClass"201を呼び出し、GWクラス90をロードする。
MHPシステム70は、次いで、GWクラス90の"スタティック初期化子"301を呼び出す。この呼び出しは、DVBクラスローダオブジェクト80をインスタンシエートする。上述のように、前記DVBクラスローダは、MHPアプリケーションが、前記持続性ファイル記憶システムからMHPアプリケーションをロードするためにMHP1.0.xアプリケーションにおいて使用することができる、唯一の種類のクラスローダである。前記DVBクラスローダは、システムリソースであり、URLパラメータのリスト(図示されない)を受信する。好適な実施例において、DVBクラスローダオブジェクト80は、前記持続性ファイルシステム及び前記放送ファイルシステム内のクラスファイル及びリソースの場所を規定又は指定する2つのURLを受信する。
DVBクラスローダオブジェクト80は、前記持続性ファイルシステム内でMHPアプリケーションのクラスファイル及びリソースを検索するのに第1の提供されたURLを使用する。全てのクラス及びリソースが前記持続性ファイルシステム内で見つけられることができるわけではない。前記持続性ファイルシステム内で見つからなかったクラス及びリソースに対して、DVBクラスローダオブジェクト80は、前記放送ファイルシステム内でクラス及びリソースを検索するために第2の提供されたURLを使用する。クラスファイルが、前記持続性ファイルシステムに存在する(即ち、以前の呼び出しから既に複製されていると仮定する)場合には常に前記持続性ファイルシステムからロードされるべきであり、前記持続性ファイルシステム内で見つからなかった代わりにのみ前記放送システムからロードされるので、この順序が非常に重要であり、本発明の鍵となるフィーチャを表していると理解されるべきである。
上で述べられた正確な順序で前記クラスファイルを取り出す(即ち、前記持続性ファイルシステムを検索した後に前記放送システムを検索する)ことは、MHPアプリケーションに対する連続した呼び出しに対して前記MHPアプリケーションの起動時間の増加的な向上を可能にする。これは、各呼び出しにおいて、バックグラウンドのコピースレッドプロセスが、追加のクラス及びリソースを前記放送ファイルシステムから前記持続性ファイルシステムに複製するので起こる。これは、前記クラスの全てが複製される最初の呼び出しにおいて複製動作を実行し、次いで前記持続性ファイルシステムからロードするのと対照的である。
典型的には、DVBクラスローダ80は、以下のように前記DVBクラスローダにより作成される。
ライン1 String root=System.getProperty("dvb.persistentroot");
ライン2 persistentUrl = new URL("file:/"+root+"/"+orgid+"/"+appid);
ライン3 broadcastUrl = new URL("file://";
ライン4 URL[] urls = new URL[] { persistentUrl, broadcastUrl };
ライン5 DVBClassloader l = DVBClassloader.newInstance(urls);
ライン1 String root=System.getProperty("dvb.persistentroot");
ライン2 persistentUrl = new URL("file:/"+root+"/"+orgid+"/"+appid);
ライン3 broadcastUrl = new URL("file://";
ライン4 URL[] urls = new URL[] { persistentUrl, broadcastUrl };
ライン5 DVBClassloader l = DVBClassloader.newInstance(urls);
ライン4において、上述されたURLを検索する好適な順序が規定されていることに注意する。即ち、第1の又は最初の検索は、前記持続性ファイルシステム、即ちpersistentUrlで行われ、ついで、必要に応じて、第2の検索は、前記最初の検索の間に前記持続性ファイル記憶システムで見つからなかったクラスファイル及びリソースに対して、前記放送ファイルシステム、broadcastUrlで行われる。
GWクラス90は、次にDVBクラスローダオブジェクト80のloadClassを呼び出して元のXletクラスをロードする。この点で、前記好適な検索順序が呼び出され、特に持続性ファイルシステムの後に放送ファイルシステムが続き、前記Xletクラス及びリソースをいずれか一方の場所から取り出す。
DVBクラスローダオブジェクト80に対する呼び出しは、実行されるMHPアプリケーションからのXletクラスである、AnXlet402と称されるクラスを返す。
GWクラス90は、次に前記元のXletクラスのスタティック初期化子403を呼び出す。
前記Xletクラスのスタティック初期化子は完全であり、MHPシステム70は、汎用ラッパ(GW)クラス90をインスタンシエートし302、汎用ラッパクラス90は、前記MHPアプリケーションをインスタンシエートする404。
GWクラス90は、次いで、複製プロセスを実行するスレッド405を作成する。
GWクラス90は、次いで、ファイル及びディレクトリを前記放送ストリームから前記持続性ファイルシステムに再帰的に複製するスレッド406を開始する。
MHPシステム70は、次いで、GWクラス90のinitXlet303を呼び出し、initXlet801は、MHP1.0.xアプリケーションのinitXlet407を呼び出す。
MHPシステム70は、次いで、GWクラス90のstartXlet304を呼び出し、startXlet304は、前記MHP1.0.xアプリケーションのstartXlet408を呼び出す。
他の態様によると、MHPアプリケーションが前記システムから前記Xletコンテキストを受信する前に、即ち、initXletを呼び出す前の時点で(図2bの303参照)、前記MHPアプリケーションの組織ID及びアプリケーションIDを得ることが可能である。下でより詳細に記載されるように、前記組織ID及びアプリケーションIDの取得は、前記アプリケーションに関連付けられた持続性ファイルシステムディレクトリが、セキュリティ制限無しでアクセスすることができる唯一のディレクトリであると認識することにより達成される。放送される各MHPアプリケーションは、アプリケーション情報テーブル(AIT)と称される追加のサービス情報(SI)テーブルにも記憶される一意的な識別子を与えられる。前記AITは、MHPアプリケーションを含むサービス毎に放送され、当該サービスに対して有効であるMHPアプリケーション毎にエントリを含む。したがって、サービスが、前記サービスに関連付けられた2つのアプリケーションを持つ場合、このテーブルは、2つのエントリを含む。各MHPアプリケーションに与えられた一意的な識別子は、名称又は他の特性が一意的でないかもしれないので、前記システムの他の部分が一意的にアプリケーションを参照することができるようにすることを可能にする。各識別子は、2つの部分、即ち、MHPアプリケーションを生成する組織毎に一意的である32ビット組織IDと、16ビットアプリケーションIDとからなる。このアプリケーションIDは、一意的である必要はないが、同じAITに信号通知される2つのアプリケーションは、同じ組織ID及びアプリケーションIDを持つことができない。
MHPアプリケーションが前記システムから前記Xletコンテキストを受信する前に前記MHPアプリケーションの組織ID及びアプリケーションIDを得ることができるようにする鍵は、Xletが独自のアプリケーションディレクトリにのみアクセスを持つことを知ることである。この情報は、以下のように使用される。
アプリケーションライフサイクルAPIを用いて、前記汎用ラッパ(GW)クラス(即ち、"PersistentXletCopyWrapperXlet")は、現在既知である全てのアプリケーションを含むリストを受信する。一度このリストが得られると、前記GWクラスは、前記リスト上で各アプリケーションに関連付けられたアプリケーションディレクトリにアクセスしようと試みる。1つを除いて全ての場合に、"セキュリティエクセプション(Security Exception)"が生じる。上述のようにXletは独自のアプリケーションディレクトリのみにアクセスを持つので、前記アプリケーションの独自のディレクトリのみが"セキュリティエクセプション"を起こさない。前記アプリケーションライフサイクルAPIが全ての既知のアプリケーションの組織ID及びアプリケーションIDを公開するので、対応するものが得られることができる。
つまり、本発明のシステム及び方法は、MHP1.0.xにおいて持続的に記憶されたアプリケーションに対する明確なサポートの欠如を克服する。持続性記憶域は、MHP実装に持続的に記憶され、前記放送ストリームから再びダウンロードすることなく後の実行に対して利用可能であるように、放送されることができるアプリケーションとして規定される。より具体的には、本発明のシステム及び方法は、有利には、MHP1.0.xアプリケーションが前記アプリケーション自体を持続性記憶域に複製し、前記持続性記憶域から前記アプリケーションを実行することを可能にする汎用ラッパクラスを作成することにより、MHP1.0.xアプリケーションが、前記アプリケーション自体を持続性記憶域に複製し、前記持続性記憶域から前記アプリケーション自体を実行することを可能にする。
加えて、本発明のシステム及び方法は、MHPアプリケーションが前記システムからXletコンテキストを受信する前に前記MHPアプリケーションの組織ID及びアプリケーションIDを得る方法をも提供する。
本発明は、特定の実施例を参照して記載されているが、多くの変更が、添付の請求項に記載された本発明の範囲及び精神から逸脱することなく行われることができると理解されるべきである。明細書及び図面は、これに応じて、説明用と見なされ、添付の請求項の範囲を限定することは意図されない。
Claims (19)
- MHP1.0.xアプリケーションの起動時間を減少させる方法において、
汎用ラッパ(GW)クラスを作成する動作と、
前記GWクラスの各呼び出しに応答して、
(a)前記MHP1.0.xアプリケーションのクラス及びリソースの一部を、該クラス及びリソースの一部が記憶されている持続性ファイルシステムからロードする動作、及び
(b)放送ファイルシステムから前記MHP1.0.xアプリケーションの前記クラス及びリソースの残りの部分をロードする動作、
を実行する動作と、
を有する方法。 - 前記MHP1.0.xアプリケーションの前記クラス及びリソースの前記残りの部分の少なくとも一部を前記放送ファイルシステムから前記持続性ファイルシステムに複製する動作を更に有する、請求項1に記載の方法。
- 前記複製する動作が、コピースレッドプロセスの制御下で実行される、請求項2に記載の方法。
- 前記コピースレッドプロセスが、MHPプロトコル内で規定される持続性記憶域APIを使用する、請求項3に記載の方法。
- ステップ(a)及び(b)における前記ローディングする動作が、MHPプロトコル内で規定されるDVBクラスローダAPIを使用する、請求項1に記載の方法。
- 前記DVBクラスローダAPIが、少なくとも第1のURLパラメータ及び第2のURLパラメータを含み、前記第1のURLパラメータが、前記MHP1.0.xアプリケーションの前記クラス及びリソースの一部が記憶される前記持続性記憶域内の場所に対するクラスパスを規定し、前記第2のURLパラメータが、前記MHP1.0.xアプリケーションの前記クラス及びリソースの前記残りの部分が記憶される前記放送ファイルシステム内の場所に対するクラスパスを規定する、請求項5に記載の方法。
- MHP1.0.x規格に基づくMHPアプリケーションの起動時間を減少させる方法において、
(a)前記MHPアプリケーションに対する汎用ラッパ(GW)クラスを作成する動作と、
(b)前記汎用ラッパ(GW)クラスから、前記MHPアプリケーションのクラス及びリソースが記憶される受信器デバイスの持続性ファイルシステム内の場所に対応する第1のURL検索パスを識別する第1のパラメータを持つ第1のAPIを呼び出す動作であって、前記第1のAPIが、前記MHPアプリケーションのクラス及びリソースが記憶される放送ファイルシステム内の場所に対応する第2のURL検索パスを識別する第2のパラメータを更に持つ、当該呼び出す動作と、
(c)前記第1のAPIの制御下で、前記持続性ファイルシステムに現在記憶されている前記MHPアプリケーションに関連付けられたクラス及びリソースをロードする動作と、
(d)前記第1のAPIの制御下で、前記第2のパラメータを使用して、前記放送ファイルシステムから前記持続性ファイルシステムに現在記憶されていない前記MHPアプリケーションに関連付けられた残りのクラス及びリソースをロードする動作と、
を有する方法。 - 前記第1のAPIがDVBクラスローダAPIである、請求項7に記載の方法。
- (a)前記汎用ラッパ(GW)クラスから第2のAPIを呼び出す動作と、
(b)前記呼び出された第2のAPIから、前記MHPアプリケーションに関連付けられたファイル及びディレクトリを放送ストリームから前記持続性ファイルシステムに再帰的に複製するスレッドを開始する動作と、
を更に有する、請求項7に記載の方法。 - 前記第1のAPI及び前記第2のAPIが、実質的に並列に動作する、請求項3に記載の方法。
- 前記第2のAPIが、持続性記憶域APIである、請求項4に記載の方法。
- MHP1.0.x規格によって動作する統合型受信器デバイスにおいて、
MHPアプリケーションに対する汎用ラッパクラスを作成する手段と、
持続性ファイルシステムに現在存在する前記MHP1.0.xアプリケーションの一部をロードする手段と、
前記持続性ファイルシステムに現在存在しない前記アプリケーション1.0.xアプリケーションの少なくとも一部を複製する手段と、
を有するデバイス。 - 前記複製する手段が、前記MHP1.0.xアプリケーションのクラスファイル及びリソースを前記MHP1.0.xアプリケーションを放送する放送ストリームから前記持続性ファイルシステムに複製することを更に含む、請求項12に記載の方法。
- 前記複製する手段が、コピースレッドプロセスの制御下で実行される、請求項12に記載の方法。
- 前記コピースレッドプロセスが、MHPプロトコルにおいて規定される持続性記憶域APIを使用する、請求項14に記載の方法。
- 前記ロードする手段が、MHPプロトコルにおいて規定されるDVBクラスローダAPIを使用する、請求項12に記載の方法。
- 前記DVBクラスローダAPIが、前記MHPアプリケーションのクラスファイルが記憶される前記持続性ファイルシステム内の場所に対するクラスパスを規定する少なくとも第1のURLパラメータ及び第2のURLパラメータを含み、前記第1のURLパラメータが、前記MHP1.0.xアプリケーションを放送する放送ストリームの放送ファイルシステムのファイルシステム内の場所に対するクラスパスを規定する、請求項16に記載の方法。
- MHPアプリケーションがMHPシステムからXletコンテキストを受信する前に前記MHPアプリケーションの組織ID及びアプリケーションIDを得る仕方を提供する方法において、
汎用ラッパ(GW)クラスにより、前記MHPシステムから現在既知の全てのアプリケーションのリストを受信する動作であって、前記リスト上の各アプリケーションが、関連付けられた組織ID及びアプリケーションIDを含む、当該受信する動作と、
前記組織ID及び前記アプリケーションIDを使用して、前記リスト上の各アプリケーションを、持続性ファイルシステムにおいて前記アプリケーションを識別するディレクトリリストに変換する動作と、
前記GWクラスにより、前記ディレクトリリストの各々にアクセスしようと試みる動作と、
前記リストの中のいずれのアプリケーションがセキュリティエクセプションを返さないかを決定する動作と、
前記セキュリティエクセプションを返さないアプリケーションとして、前記決定するステップから組織ID及びアプリケーションIDを得る動作と、
を有する方法。 - 前記変換する動作が、persistent root/organization ID/application IDの形式で前記組織ID及び前記アプリケーションIDを使用して前記ディレクトリリストを構成することを更に含む、請求項18に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US61475204P | 2004-09-30 | 2004-09-30 | |
PCT/IB2005/053199 WO2006035405A2 (en) | 2004-09-30 | 2005-09-28 | System and method for reducing the start-up time of mhp applications |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008515322A true JP2008515322A (ja) | 2008-05-08 |
Family
ID=35414658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007534156A Withdrawn JP2008515322A (ja) | 2004-09-30 | 2005-09-28 | Mhpアプリケーションの起動時間を減少させるシステム及び方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20080209453A1 (ja) |
EP (1) | EP1805605A2 (ja) |
JP (1) | JP2008515322A (ja) |
KR (1) | KR20070063571A (ja) |
WO (1) | WO2006035405A2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070079257A (ko) * | 2006-02-01 | 2007-08-06 | 엘지전자 주식회사 | 데이터 방송 관련 어플리케이션의 제한 방법, 클래스와인터페이스 구조 및 이를 위한 방송 수신기 |
WO2015167593A1 (en) * | 2014-04-28 | 2015-11-05 | Hewlett-Packard Development Company, L.P. | Improving startup time of managed code |
US10104450B2 (en) | 2014-10-17 | 2018-10-16 | Samsung Electronics Co., Ltd. | Method and device for controlling implementation of application and recording medium thereof |
CN110888683B (zh) * | 2018-08-16 | 2022-05-06 | 腾讯科技(深圳)有限公司 | 操作系统的性能优化方法、装置及可读介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020073218A1 (en) * | 1998-12-23 | 2002-06-13 | Bill J. Aspromonte | Stream device management system for multimedia clients in a broadcast network architecture |
US6701334B1 (en) * | 1999-07-13 | 2004-03-02 | Sun Microsystems, Inc. | Methods and apparatus for implementing individual class loaders |
EP1227666A1 (en) * | 2001-01-18 | 2002-07-31 | Sony Service Centre (Europe) N.V. | Method and device for downloading application data |
EP1345417A1 (en) * | 2002-03-14 | 2003-09-17 | Sony Service Center (Europe) N.V. | Method and digital television unit for operating broadcast applications |
EP1387571A1 (en) * | 2002-07-25 | 2004-02-04 | Sony International (Europe) GmbH | Network functionality for Multimedia Home Platform terminal devices |
KR100849842B1 (ko) * | 2003-12-23 | 2008-08-01 | 삼성전자주식회사 | 방송용 어플리케이션을 실행하는 장치 및 실행 방법 |
US20060089933A1 (en) * | 2004-10-21 | 2006-04-27 | Matsushita Electric Industrial Co., Ltd. | Networked broadcast file system |
-
2005
- 2005-09-28 US US11/576,185 patent/US20080209453A1/en not_active Abandoned
- 2005-09-28 EP EP05785758A patent/EP1805605A2/en not_active Withdrawn
- 2005-09-28 WO PCT/IB2005/053199 patent/WO2006035405A2/en active Application Filing
- 2005-09-28 KR KR1020077009834A patent/KR20070063571A/ko not_active Application Discontinuation
- 2005-09-28 JP JP2007534156A patent/JP2008515322A/ja not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20080209453A1 (en) | 2008-08-28 |
WO2006035405A3 (en) | 2006-10-05 |
KR20070063571A (ko) | 2007-06-19 |
EP1805605A2 (en) | 2007-07-11 |
WO2006035405A2 (en) | 2006-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9473827B2 (en) | Apparatus and methods for implementation of network software interfaces | |
AU2003234144B2 (en) | Supporting common interactive television functionality through presentation engine syntax | |
US6874145B1 (en) | Methods and apparatus for implementing an application lifecycle design for applications | |
US6701334B1 (en) | Methods and apparatus for implementing individual class loaders | |
CA2518645C (en) | Method and apparatus enabling multiple application sharing of classes | |
US20110302274A1 (en) | Architecture of a network device for processing applications, and control method for the network device | |
WO2007143933A1 (en) | Network digital television middleware | |
US20070261090A1 (en) | Interactive television application distribution, control, and communication system and methods | |
WO2005011280A1 (en) | Handling feature availability in a broadcast | |
JP2008512012A (ja) | デジタルテレビで双方向サービスを提供する方法及びシステム | |
US7600045B2 (en) | Information processor | |
JP2008515322A (ja) | Mhpアプリケーションの起動時間を減少させるシステム及び方法 | |
US6941559B2 (en) | Software bus and interface for digital television application software environments | |
Peng et al. | Digital television application manager | |
US9420322B2 (en) | System and method for delivering compressed applications | |
KR20070095946A (ko) | 섹션 필터 메카니즘을 통한 바이패스 dsmcc 미들웨어 | |
JP2002527844A (ja) | 放送アプリケーション用のソフトウエアアプリケーションライフサイクル及びマネジメント | |
US8127313B2 (en) | Method and system for providing services | |
KR20050014619A (ko) | 어플리케이션을 저장하고 실행하는 디지털 방송 수신 장치및 그 방법 | |
López et al. | A MHP Receiver over RT-Linux for Digital TV. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20081202 |