(57)【要約】複数アプリケーションのためのメモリマネージメントおよび現在のアプリケーションバージョン保守の通信端末のシステムおよび方法が提供される。このシステムおよび方法はサーバデバイスに接続される通信端末のメモリを管理することを提供し、このサーバデバイスは、この通信端末がこのサーバデバイスからダウンロードされた複数のアプリケーションを通信端末においてメモリに格納し実行するためのメモリ容量の提供を可能にする。アプリケーションをダウンロードする前に、通信端末は、サーバデバイスからダウンロードされるために、アプリケーションクライアントによって要求されるメモリ容量の大きさを決定する。その後、通信端末はメモリ容量を割り付ける試みを行う。【選択図】図２
2004511833.tif 000002
【特許請求の範囲】
【請求項１】
通信端末が、メモリに格納するためにメモリ容量を提供することを可能にし、サーバデバイスからダウンロードされた複数のアプリケーションを通信端末上で実行する該サーバデバイスに接続された該通信端末においてメモリを管理するための方法であって、
該サーバデバイスからダウンロードされるアプリケーションクライアントによって必要とされるメモリ容量の量を決定する工程と、
該アプリケーションクライアントへの該メモリ容量の割り当てを試みる工程と、
該通信端末が該アプリケーションクライアントに対して不十分なメモリ容量を有する場合、該アプリケーションクライアントのために、該メモリにメモリ容量を作成する優先順位のダイナミックリストに従って、該メモリに含まれたデータをパージする工程と、
該メモリ容量を該アプリケーションクライアントに割り当てる工程と、
該サーバデバイスから該アプリケーションクライアントを受け取る工程と、
を含む方法。
【請求項２】
前記メモリ容量は、前記アプリケーションクライアントを格納および実行するのに十分なメモリ量である、請求項１に記載の方法。
【請求項３】
前記メモリ容量を割り当てることを試みる工程は、
前記メモリのプライベートヒープから前記アプリケーションクライアントに該メモリを割り当てることを試みる工程と、
該プライベートヒープが該アプリケーションクライアントを格納するのに不十分な容量を有する場合、該メモリのシステムヒープから、該メモリ容量の該アプリケーションクライアントへの割り当を試みる工程とを含む、請求項１に記載の方法。
【請求項４】
前記メモリの割り当てを試みる工程は、
前記プイライベートヒープのコンパクト化が、前記アプリケーションクライアントのための十分なメモリ容量を作成するかどうかを決定する工程と、
前記プライベートヒープのコンパクト化が、前記アプリケーションクライアントに対して十分なメモリ容量を作成する場合、該プライベートヒープをコンパクト化して前記メモリ容量を作成する工程と
を含む、請求項１に記載の方法。
【請求項５】
前記メモリの割り当てを試みる工程は、前記メモリ容量を作成するために、前記プライベートヒープのサイズの拡大を試みる工程を含む、請求項１に記載の方法。
【請求項６】
前記メモリの割り当てを試みる工程は、前記システムヒープのコンパクト化が前記アプリケーションクライアントに対して十分なメモリ容量を作成する場合、前記システムヒープをコンパクト化して前記メモリ容量を作成する、請求項１に記載の方法。
【請求項７】
前記メモリに含まれるデータをパージングする工程は、前記優先順位のダイナミックリストに関してより高い優先順位の複数のアプリケーションおよびデータファイルをパージングする前に、該優先順位のダイナミックリストに関してより低い優先順位の複数のアプリケーションおよびデータファイルをパージングする工程を含む、請求項１に記載の方法。
【請求項８】
最低の優先順位の複数のアプリケーションおよびデータファイルをパージングした後、前記システムヒープを再コンパクト化する工程をさらに含む、請求項７に記載の方法。
【請求項９】
前記優先順位のダイナミックリストは、所与の時間において、通信端末のメモリ内に格納された複数のアプリケーションおよびデータファイルのそれぞれに対して優先順位パラメータをコンパイルすることによって作成される、請求項１に記載の方法。
【請求項１０】
通信端末が、メモリへの格納のためにメモリ容量を提供することを可能にし、該サーバデバイスからダウンロードされる複数のアプリケーションを該通信端末上で実行させるサーバデバイスに接続された該通信端末におけるメモリを管理する方法であって、
該通信端末上で実行アプリケーションクライアントからのさらなるメモリ容量の割り当てについての要求を受け取る工程と、
該さらなるメモリ容量の該実行アプリケーションクライアントへの割り当てを試みる工程と、
該通信端末が該実行アプリケーションクライアントに対して不十分なメモリ容量を有する場合、該アプリケーションクライアントに対するメモリにおいてメモリ容量を作成する優先順位のダイナミックリストに従って、該メモリ内に含まれるデータをパージする工程と、
該実行アプリケーションクライアントに該さらなるメモリ容量を割り当てる工程と、
を含む方法。
【請求項１１】
前記メモリの割り当てを試みる工程は、
前記プライベートヒープのコンパクト化が、前記アプリケーションクライアントに対して十分なメモリ容量を作成するかどうかを決定する工程と、
該プライベートヒープのコンパクト化が、該アプリケーションクライアントに対して十分なメモリ容量を作成する場合、該メモリ容量を作成するプライベートヒープをコンパクト化する工程と
を含む、請求項１０に記載の方法。
【請求項１２】
前記メモリへの割り当てを試みる工程は、前記メモリ容量を作成するために、前記プライベートヒープのサイズの拡大を試みる工程を含む、
請求項１０に記載の方法。
【請求項１３】
前記メモリの割り当てを試みる工程は、前記システムヒープのコンパクト化が前記アプリケーションクライアントに対して十分なメモリ容量を作成する場合、該メモリ容量を作成するシステムヒープをコンパクト化する工程を含む、請求項１０に記載の方法。
【請求項１４】
通信端末がメモリへの格納のためにメモリ容量を提供することを可能にし、該サーバデバイスからダウンロードされる複数のアプリケーションを該通信端末上で実行させるサーバデバイスに接続された該通信端末におけるメモリを管理する方法であって、
該サーバデバイスからダウンロードされたアプリケーションクライアントによって要求されるメモリ容量の通常量および低減された量を決定する工程と、
全利用可能なメモリがアプリケーションクライアントによって要求されるメモリ容量の通常量より小さい場合、該アプリケーションクライアントへの該低減された量の割り当てを試みる工程と、
全利用可能なメモリがアプリケーションクライアントによって要求されたメモリ容量よりも小さい場合、該アプリケーションクライアントに対してメモリ容量の低減された量を作成する優先順位のダイナミックリストに従ってメモリ内に含まれるデータをパージする工程と、
該実行アプリケーションクライアントに該メモリ容量の低減された量を割り当てる工程と、
該サーバデバイスから該アプリケーションクライアントを受け取る工程と
を含む方法。
【請求項１５】
前記メモリの割り当てを試みる工程は、
前記プライベートヒープのコンパクト化が、該アプリケーションクライアントに対して十分なメモリ容量を作成するかどうかを決定する工程と、
該プライベートヒープのコンパクト化が、該アプリケーションクライアントに対して十分なメモリ容量を作成する場合、該メモリ容量を作成するように該プライベートヒープをコンパクト化する工程と
を含む、請求項１４に記載の方法。
【請求項１６】
前記メモリの割り当てを試みる工程は、前記メモリ容量を作成するように前記プライベートヒープのサイズの拡大を試みる工程を含む、請求項１４に記載の方法。
【請求項１７】
前記メモリの割り当てを試みる工程は、前記システムヒープのコンパクト化が、前記アプリケーションクライアントに対して十分なメモリ容量を作成する場合、該システムヒープをコンパクトにして前記メモリ容量を作成する工程を含む、請求項１４に記載の方法。
【請求項１８】
サーバデバイスに接続された通信端末のメモリにおいてダウンロードされたアプリケーションの現在のバージョンを保守するための方法であって、
該サーバデバイスによって支援された各複数のアプリケーションに対して現在のバージョンの指示を該サーバデバイスから該通信端末まで受け取る工程と、
該ダウンロードされたアプリケーションからバージョンパラメータを取り出す工程であって、該バージョンパラメータは、該ダウンロードされたアプリケーションのバージョンの数を表す、工程と、
該バージョンパラメータが該現在のバージョン指示に整合するかどうか決定する工程と、
該バージョンパラメータが該現在のバージョン指示との整合が失敗する場合、該ダウンロードされたアプリケーションの現在のバージョンをダウンロードする工程と
を含む方法。
【請求項１９】
前記バージョンパラメータは、前記ダウンロードされたアプリケーションのユーアールエル（ＵＲＬ）アドレスに含まれる、請求項１８に記載の方法。
【請求項２０】
前記バージョンパラメータは、前記ダウンロードされたアプリケーションが前記現在のバージョンアプリケーションとの比較のためのサービスの実行のために始動される場合、読み出される、請求項１８に記載の方法。
【請求項２１】
前記バージョンパラメータが前記現在のバージョン指示との整合に失敗するする場合、前記ダウンロードされたアプリケーションによって提供された任意のサービスを一時停止する工程をさらに含む、請求項１８に記載の方法。
【請求項２２】
前記バージョンパラメータが前記現在のバージョン指示との整合に失敗するする場合、前記ダウンロードされたアプリケーションをメモリからアンロードする工程と、
前記サーバデバイスから該ダウンロードされたアプリケーションの現在のバージョンをダウンロードする工程であって、該ダウンロードされたアプリケーションの現在のバージョンが該メモリ内に格納される工程と
を含む、請求項１８に記載の方法。
【請求項２３】
通信端末が、メモリへの格納のためにメモリ容量を提供することを可能にし、該サーバデバイスからダウンロードされる複数のアプリケーションを該通信端末上で実行させるサーバデバイスに接続された該通信端末におけるメモリを管理するシステムであって、
該サーバデバイスからダウンロードされるアプリケーションクライアントによって要求されたメモリ容量の量を決定するように構成された論理と、
該アプリケーションクライアントへの該メモリ容量の割り当てを試みるように構成された論理と、
該通信端末が該アプリケーションクライアントに対して不十分なメモリ容量を有する場合、該アプリケーションクライアントに対する該メモリにおいてメモリ容量を作成する優先順位のダイナミックリストに従って、該メモリに含まれたデータをパージするように構成された論理と、
該メモリ容量が得られると、該アプリケーションに該メモリ容量を割り当てるように構成された論理であって、該アプリケーションクライアントが該通信端末にダウンロードされる、論理と、
を含むシステム。
【請求項２４】
メモリ容量の量の割り当てを試みるように構成された前記論理は、
前記メモリのプライベートヒープから前記アプリケーションクライアントへのメモリ容量の割り当てを試み、
該プライベートヒープが該アプリケーションクライアントを格納するのに十分な容量を有する場合、該メモリのシステムヒープから該アプリケーションクライアントまで該メモリ容量の割り当てを試みるようにさらに構成される、請求項２３に記載のシステム。
【請求項２５】
前記メモリの割り当てを試みるように構成された前記論理は、
前記プライベートのコンパクト化は、前記アプリケーションクライアントに対して十分なメモリ容量を作成するかどうかを決定し、
該プライベートヒープをコンパクトにして、該アプリケーションクライアントに対して十分なメモリ容量を作成する場合、該メモリ容量を作成するようにさらに構成される、請求項２３に記載のシステム。
【請求項２６】
前記メモリの割り当てを試みるように構成された論理は、前記プライベートヒープのサイズを拡大して前記メモリ容量を作成することを試みるようにさらに構成される、請求項２３に記載のシステム。
【請求項２７】
前記メモリの割り当てを試みるように構成された論理は、前記システムヒープのコンパクト化は、前記アプリケーションクライアントに対して十分なメモリを作成する場合、該システムヒープをコンパクトにして該メモリ容量を作成するようにさらに構成される、請求項２３に記載のシステム。
【請求項２８】
前記優先順位のダイナミックリストに関して複数のより高い優先順位のアプリケーションおよびデータファイルをパージする前に、該優先順位のダイナミックリストに関して複数の最低の優先順位のアプリケーションおよびデータファイルをパージするようにさらに構成される、請求項２３に記載のシステム。
【請求項２９】
前記優先順位のダイナミックリストは、任意の所与の時間において、前記通信端末のメモリに格納された各複数のアプリケーションおよびデータファイルに対して優先順位パラメータをコンパイルすることによって作成される、請求項２３に記載のシステム。
【請求項３０】
通信端末が、サーバデバイスからダウンロードされた複数のアプリケーションをメモリ内に格納して、該サーバデバイスからダウンロードされた複数のアプリケーションを該通信端末上で実行するためのメモリ容量を提供することを可能にするサーバデバイスに接続された該通信端末においてメモリを管理するシステムであって、
該通信端末上で実行アプリケーションクライアントからさらなるメモリ容量の割り当てのための要求を受け取るように構成された論理と、
該さらなるメモリ容量の該実行アプリケーションクライアントへの割り当てを試みるように構成された論理と、
該通信端末が該実行アプリケーションクライアントに対して不十分なメモリ容量を有する場合、該アプリケーションクライアントに対するメモリにおけるメモリ容量を作成する優先順位のダイナミックリストに従って、該メモリ内に含まれるデータをパージするように構成された論理と、
該さらなるメモリ容量を該実行アプリケーションクライアントに割り当てるように構成された論理と
を含むシステム。
【請求項３１】
前記メモリへの割り当てを試みるように構成された前記論理は、前記プライベートヒープのコンパクト化が前記アプリケーションクライアントに対して十分なメモリ容量を作成するかどうか決定し、
該プライベートヒープのコンパクト化が該アプリケーションクライアントに対して十分なメモリ容量を作成する場合、該プライベートヒープをコンパクトにして該メモリ容量を作成するようにさらに構成される、請求項３０に記載のシステム。
【請求項３２】
前記メモリの割り当てを試みるように構成された論理が、前記プライベートヒープのサイズを拡大して前記メモリ容量を作成するようにさらに構成される、請求項３０に記載のシステム。
【請求項３３】
前記メモリの割り当てを試みるように構成された論理は、前記システムヒープのコンパクト化が前記アプリケーションクライアントに対して十分なメモリを作成する場合、該システムヒープをコンパクトにして該メモリ容量を作成するようにさらに構成される、請求項３０に記載のシステム。
【請求項３４】
通信端末が、サーバデバイスからダウンロードされた複数のアプリケーションをメモリ内に格納して、該通信端末上で実行するためのメモリ容量を提供することを可能にするサーバデバイスに接続された通信端末においてメモリを管理するシステムであって、
該サーバデバイスからダウンロードされたアプリケーションクライアントによって要求されたメモリ容量の通常量および低減された量を決定するように構成された論理と、
全利用可能なメモリがアプリケーションクライアントによって要求されたメモリ容量の通常量よりも小さい場合、該アプリケーションクライアントへの該低減された量のメモリ容量の割り当てを試みるように構成された論理と、
全利用可能なメモリがアプリケーションクライアントによって要求されたメモリ容量の通常量よりも小さい場合、該アプリケーションクライアントに対して該低減された量のメモリ容量を作成する優先順位のダイナミックリストに従って、該メモリに含まれたデータをパージするように構成された論理と、
該アプリケーションクライアントに該低減された量のメモリ容量を割り当てるように構成された論理と、
該アプリケーションクライアントを該サーバデバイスから受け取るように構成された論理と
を含むシステム。
【請求項３５】
前記メモリの割り当てを試みるように構成された論理は、
前記プライベートヒープのコンパクト化が、前記アプリケーションクライアントに対して十分なメモリ容量を作成するかどうかを決定し、
該プライベートヒープのコンパクト化が、該アプリケーションクライアントに対して十分なメモリ容量を作成する場合、該プライベートヒープをコンパクトにして該メモリ容量を作成するようにさらに構成される、請求項３４に記載のシステム。
【請求項３６】
前記メモリの割り当てを試みるように構成された論理が、前記プライベートヒープのサイズを拡大して前記メモリ容量を作成するようにさらに構成される、請求項３４に記載のシステム。
【請求項３７】
前記メモリの割り当てを試みるように構成された論理は、前記システムヒープのコンパクト化が前記アプリケーションクライアントに対して十分なメモリ容量を作成する場合、該システムヒープをコンパクトにして前記メモリ容量を作成するようにさらに構成される、請求項３４に記載のシステム。
【請求項３８】
サーバデバイスに接続された通信端末のメモリにおいてダウンロードされたアプリケーションの現在のバージョンを保守するためのシステムであって、
該サーバデバイスによって支援された各複数のアプリケーションに対して現在のバージョンの指示を該サーバデバイスから該通信端末まで受け取るように構成された論理と、
該ダウンロードされたアプリケーションからバージョンパラメータを取り出すように構成された論理であって、該バージョンパラメータは、該ダウンロードされたアプリケーションのバージョン数を表す、論理と、
該バージョンパラメータが該現在のバージョン指示に整合するかどうかを決定するように構成された論理と、
該バージョンパラメータが該現在のバージョン指示との整合に失敗する場合、該ダウンロードされたアプリケーションの現在のバージョンをダウンロードするように構成された論理と
を含むシステム。
【請求項３９】
前記バージョンパラメータは、前記ダウンロードされたアプリケーションのためのユーアールエル（ＵＲＬ）アドレスに含まれる、請求項３８に記載のシステム。
【請求項４０】
前記ダウンロードされたアプリケーションが、前記現在のバージョン指示との比較のためにサービスの実行に対して始動される場合、前記バージョンパラメータを取り出すように構成された論理をさらに含む、請求項３８に記載のシステム。
【請求項４１】
前記バージョンパラメータが前記現在のバージョン指示との整合に失敗する場合、前記ダウンロードされたアプリケーションによって提供された任意のサービスを一時停止するように構成された論理をさらに含む、請求項３８に記載のシステム。
【請求項４２】
前記バージョンパラメータが前記現在のバージョン指示との整合に失敗する場合、メモリから前記ダウンロードされたアプリケーションをアンロードするように構成された論理と、
該ダウンロードされたアプリケーションの現在のバージョンを前記サーバデバイスからダウンロードするように構成された論理であって、該ダウンロードされたアプリケーションの現在のバージョンが該メモリ内に格納される、論理と
をさらに含む、請求項３８に記載のシステム。
【請求項４３】
通信端末がメモリへの格納のためにメモリ容量を提供することを可能にし、サーバデバイスからダウンロードされる成分の１以上の個々のサブセットを該通信端末上で実行させるサーバデバイスに接続された通信端末におけるメモリを管理する方法であって、
圧縮されたフォーマットで該サーバデバイスから第１のデータ成分を受け取る工程であって、該メモリ容量が該第１のデータ成分を格納するのに十分である場合、該第１のデータ成分が圧縮され、該メモリ容量が該第１のデータ成分を解凍されたフォーマットで格納するのに不十分である場合、該第１のデータ成分が該圧縮されたフォーマットで保持される、工程と、
アプリケーションクライアントによる実行のため必要とされる場合、該メモリ容量の、該圧縮された第１のデータ成分の１以上の個々のサブセットへの割り当てを試みる工程と、
該通信端末が該第１のデータ成分の１以上の個々のサブセットに対して不十分なメモリ容量を有する場合、該第１のデータ成分の１以上の個々のサブセットに対してメモリ容量を作成する優先順位のダイナミックリストに従って、該メモリに含まれるデータをパージする工程と、
該第１のデータ成分の該１以上の個々のサブセットに該メモリ容量を割り当てる工程と、
アプリケーションクライアントによる実行に対して要求される場合、圧縮されたフォーマットで以前に格納された場合、該第１のデータ成分の１以上の個々のサブセットを解凍する工程と、
該第１のデータ成分の該解凍された１以上の個々のサブセットを実行するように該アプリケーションクライントをインプリメントする工程と、
該アプリケーションクライアントによる実行の後で、該第１のデータ成分の１以上の個々のサブセットを再圧縮する工程と、
該通信端末のメモリ内の該第１のデータ成分の該再圧縮された１以上の個々のサブセットを格納する工程と
を含む方法。
【請求項４４】
通信端末がメモリへの格納のためにメモリ容量を提供することを可能にし、サーバデバイスからダウンロードされる第１のデータ成分の１以上の個々のサブセットを該通信端末上で実行させるサーバデバイスに接続された通信端末におけるメモリを管理するシステムであって、
圧縮されたデータフォーマットで該サーバデバイスから第１のデータ成分を受け取るように構成された論理であって、該メモリ容量が該第１のデータ成分を格納するのに十分である場合、該第１のデータ成分が解凍され、該メモリ容量が該第１のデータ成分を解凍されたフォーマットで格納するのに不十分である場合、該第１のデータ成分が該圧縮されたフォーマットで保持される、論理と、
アプリケーションクライアントによる実行のため必要とされる場合、該メモリ容量の、該圧縮された第１のデータ成分の１以上の個々のサブセットへの割り当てを試みるように構成された論理と、
該通信端末が該第１のデータ成分の１以上の個々のサブセットに対して不十分なメモリ容量を有する場合、該第１のデータ成分の１以上の個々のサブセットに対してメモリ容量を作成する優先順位のダイナミックリストに従って、該メモリに含まれるデータをパージするように構成された論理と、
該第１のデータ成分の該１以上のサブセットに該メモリ容量を割り当てるように構成された論理と、
アプリケーションクライアントによる実行に対して要求される場合、圧縮されたフォーマットで以前に格納された場合、該第１のデータ成分の１以上の個々のサブセットを解凍するように構成された論理と、
該第１のデータ成分の該解凍された１以上の個々のサブセットを実行するように該アプリケーションクライントをインプリメントするように構成された論理と、
該アプリケーションクライアントによる実行の後で、該第１のデータ成分の１以上の個々のサブセットを再圧縮するように構成された論理と、
該通信端末のメモリ内の該第１のデータ成分の該再圧縮された１以上の個々のサブセットを格納するように構成された論理と
を含むシステム。
【請求項４５】
通信端末がメモリへの格納のためにメモリ容量を提供することを可能にし、サーバデバイスからダウンロードされる複数のアプリケーションを該通信端末上で実行させる該サーバデバイスに接続された通信端末におけるメモリを管理する方法であって、
該サーバデバイスから第１のデータ成分を受け取る工程と、
該通信端末に接続されたローカル格納デバイスにおいて該第１のデータ成分の１以上の部分を格納する工程と、
該ローカル格納デバイスからメモリの一部に該第１のデータ成分の１以上の部分を転送する工程であって、該第１のデータ成分の１以上の部分は、アプリケーションクライアントによって実行される、工程と
を含む方法。
【請求項４６】
通信端末がメモリへの格納のためにメモリ容量を提供することを可能にし、サーバデバイスからダウンロードされる複数のアプリケーションを該通信端末上で実行させる該サーバデバイスに接続された通信端末におけるメモリを管理するシステムであって、
該サーバデバイスから第１のデータ成分を受け取るように構成された論理と、
該通信端末に接続されたローカル格納デバイスにおける該第１のデータ成分の１以上の部分を格納するように構成された論理と、
該ローカル格納デバイスからメモリの一部に該第１のデータ成分の１以上の部分を転送するように構成された論理であって、該第１のデータ成分の１以上の部分は、アプリケーションクライアントによって実行される、論理と
を含むシステム。
【請求項４７】
通信端末がメモリへの格納のためにメモリ容量を提供することを可能にし、サーバデバイスからダウンロードされる複数のアプリケーションを該通信端末上で実行させる該サーバデバイスに接続された通信端末におけるメモリを管理する方法であって、
該サーバデバイスから第１のデータ成分を受け取る工程と、
該メモリが該第１のデータ成分の１以上の成分を含むのに不十分である場合、該通信端末に接続されたローカル格納デバイスにおいて該第１のデータ成分の１以上の部分を格納する工程と、
該ローカル格納デバイスに第２のデータ成分を転送して、該第１のデータ成分の１以上の部分に対してメモリ容量を確立する工程と、
該ローカル格納デバイスから該第２のデータ成分によって空にされたメモリ部分に該第１のデータ成分の１以上の部分を転送する工程であって、該第１のデータ成分の１以上の部分がアプリケーションクライアントによって実行される、工程と
を含む方法。
【請求項４８】
前記ローカル格納デバイスは、前記通信端末に内部に接続されるハードディスクドライブである、請求項４７に記載の方法。
【請求項４９】
前記通信端末がメモリへの格納のためにメモリ容量を提供することを可能にし、前記サーバデバイスからダウンロードされる複数のアプリケーションを前記通信端末上で実行させる該サーバデバイスに接続された通信端末におけるメモリを管理する方法であって、
該サーバデバイスから第１のデータ成分を受け取るように構成された論理と、
該メモリが該第１のデータ成分の１以上を含むのに不十分な場合、該通信端末に接続されるローカル格納デバイスにおいて該第１のデータ成分の１以上の部分を格納するように構成された論理と、
該ローカル格納デバイスに第２のデータ成分を転送して該第１のデータ成分の１以上の部分に対してメモリ容量を確立するように構成された論理と、
該ローカル格納デバイスから該第２のデータ成分によって空にされたメモリの一部に該第１のデータ成分の１以上の部分を転送するように構成された論理であって、該第１のデータ成分の１以上の部分は、アプリケーションクライアントによって実行される、論理と
を含むシステム。
【請求項５０】
前記ローカル格納デバイスは、前記通信端末に内部に接続されるハードディスクドライブである、請求項４９に記載のシステム。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明は、一般には、テレビジョンシステム分野に関し、そしてさらに詳細に述べると、これは通信端末におけるメモリ管理およびアプリケーションバージョン化の分野に関する。
【０００２】
（背景）
歴史的には、テレビジョンシステムは、アナログのブロードキャストオーディオおよびビデオ信号から構成されていた。ケーブルテレビジョンシステムは、現在では、ブロードキャストを受信し、それらを他のプログラミングと一緒に、通常は、光ファイバケーブルおよび／または同軸ケーブルを含む陸線ネットワークを介して加入者に再転送する。最近のデジタル伝送技術の出現によって、今や、ケーブルテレビジョンシステムは、伝統的アナログブロードキャストビデオ以上のものを提供することが可能である。さらに、加入者とケーブルシステムのヘッドエンド間の双方向通信および先進の一方向通信が今や可能である。
【０００３】
高機能プログラミングを実現するには、別名、セットトップとして知られる家庭用通信デバイス端末（「ＨＣＴ」）が、ビデオサービスにアクセスし、加入者を多くのサービスの中を有用にナビゲートさせる重要なコンピューティングデバイスになった。伝統的なアナログのブロードキャストビデオ機能を支援すことに加え、デジタルＨＣＴ（または「ＤＨＣＴ」）は、今や、アナログでなく、むしろデジタルである、益々増えるサービスをもまた支援する。これらは基本的なブロードキャストではなく、むしろビデオオンデマンドなどの双方向通信である。これらは電子メールまたはウエブブラウザなどの基本ビデオではない。これらは消費者によって益々要求される主たる他のテレビジョンサービス、例えばオーディオとオーディオ／ビジュアルプログラミング、先進のナビゲート制御、衝動的な番組有料制御、およびオンライン取り引きを含む例に加えたすべてのものである。双方向サービスに加え、デジタルテレビジョンサービスを介して利用される、増加された帯域幅が、加入者をして百、または千さえのチャネルおよび／またはサービスへのアクセスを可能にさせた。このようにして、これらのより力強くかつ複合の特徴を提供するために、簡単な通常チャネル概念が、伝統的に提供されていたものを超えて拡張される必要がある。
【０００４】
各ＨＣＴおよびＤＨＣＴ（この後、まとめて「ＤＨＣＴ」）は、通常、ケーブルまたは衛星テレビジョンネットワークに接続される。ＤＨＣＴは、一般に、デジタルテレビジョンシステムの機能を加入者側に提供するのに必要なハードウエアおよびソフトウエアを含む。好ましくは、ＤＨＣＴによって実行される幾つかのソフトウエアはケーブルテレビジョンネットワークを介してダウンロードおよび／または更新される。各ＤＨＣＴは、通常、プロセッサ、通信コンポーネントおよびメモリを含み、テレビジョンまたはパーソナルコンピュータなどのほかのデイスプレイデバイスに接続される。多くの従来のＤＨＣＴはテレビジョンに外部に接続されるスタンドアロン型のデバイスであるが、ＤＨＣＴおよび／またはこの機能は、通常の当業者によって理解されるように、テレビジョンまたはパーソナルコンピュータに一体化され得る。
【０００５】
増々のサービスおよびアプリケーションが利用されるにつれて、制限されるクライアント資源を適切に管理することの重要性が増加してきた。ＤＨＣＴに含まれるメモリは、通常、有限であるため、任意の所与時間では、限られた数のサービスおよびアプリケーションだけがＤＨＣＴにダウンロードされて格納され得る。ＤＨＣＴのメモリがアプリケーションおよび他のデータで一杯になると、ＤＨＣＴはメモリ容量不足のため、ユーザの追加ファイルまたはアプリケーションをダウンロードすることを不可能にし得る。ユーザにとっては、このシナリオは、特定のサービスの拒否、またはさらに悪い場合には、メモリエラーによってＤＨＣＴの完全な失敗としての結果にし得る。ユーザに利用できるアプリケーションの数が増え続けると、従来のＤＨＣＴは、一旦、メモリが初めて一杯になった時から、多くのこれらのアプリケーションの実現を不可能にし得る。追加のＤＨＣＴメモリ費用は、メモリが常に有限であるかまたはメモリ条件の逸脱が生じるとかの任意の場合において、システムオペレータおよび加入者とって禁止的になり得る。
【０００６】
さらに、サービスおよびアプリケーションがケーブルテレビジョンシステムのシステムオペレータによって更新された場合、ＤＨＣＴに既に含まれるバージョンが古くさくて支援されないことになり得る。ケーブルシステムが短い時間において古いバージョンのアプリケーションを支援し得るが、いつかはこれらのアプリケーションは、ＤＨＣＴによって始動された時、ケーブルテレビジョンシステムのヘッドエンドとの不一致のため失敗し得る。結果として、一旦、従来のＤＨＣＴのメモリ容量が一杯になると、その後、このＤＨＣＴは、通常、メモリに含まれるアプリケーションに限定されることのみならず、これらのアプリケーションは、更新バージョンがケーブルテレビジョンシステムによってネットワークを介しリリースされる時の限定されたライフスパンを有し得る。
【０００７】
（発明の要旨）
簡単に記述すると、本発明の好ましい実施形態はサーバデバイスへの通信ポートを介して接続されるＤＨＣＴにおけるメモリ管理のシステムおよび方法を提供し、これは、このＤＨＣＴを、サーバデバイスからダウンロードされた複数のアプリケーションをＤＨＣＴ上で実行させる際、アプリケーションのメモリアクセスの優先制御およびさらなるメモリ逸脱情況の処理を可能にさせる。あるインプリメンテーションでは、アプリケーションをダウンロードする前に、ＤＨＣＴは、クライアント用アプリケーションがサーバデバイスからダウンロードされた後にこれを実行させるに必要なメモリ容量の大きさを決定する。ＤＨＣＴは、この後、メモリのプライベートヒープからクライアント用アプリケーションへのメモリ容量の割り付けを試みる。不成功の場合、ＤＨＣＴはメモリのシステムヒープからクライアント用アプリケーションへのメモリ容量の割り付けを試みる。メモリがシステムヒープから割り付けられない場合、ＤＨＣＴはクライアント用アプリケーションのためにメモリの中のメモリ容量を生成するために、優先順位の動的リストに従って、メモリに存在するデータをパージする。一旦、充分なメモリ容量が生成されると、これは、クライアント用アプリケーションがＤＨＣＴにダウンロードされた後、このクライアント用アプリケーションに割り付けられる。
【０００８】
さらに、このアプリケーションが実行して実際にサービスを提供している間、メモリに対する要求が、ＤＨＣＴ上で現実に利用可能域を越え得る。この場合、ＤＨＣＴは、上述と同じプロトコルに従い、このアプリケーションのためにメモリを利用させる。このプロセスは他のアプリケーションに不要またはより低い優先順位のメモリの解放を依頼し、そしてなお十分な空間がない場合、より高い優先順位のメモリの解放を依頼することを含み得る。最終には、現在、ユーザにサービスを提供してない他のアプリケーションはアンロードされ、ユーザが、現在双方向通信しているアプリケーションのメモリ要求を満足させ得る。
【０００９】
さらに、好ましい実施形態では、バージョンテーブルを周期的にサーバデバイス（ヘッドエンド）からまたダウンロードもし、アプリケーションを始動する毎に、これを参照して正しいバージョンが始動されているかを確認し、あるいはまた、ＤＨＣＴに古いバージョンをアンロードし、新バージョンのアプリケーションをダウンロードするように促す。
【００１０】
本発明の好ましい実施形態の一つの長所は、ＤＨＣＴの中の限られたメモリ問題を解決し、ＤＨＣＴにロードすべきメモリ容量を生成させ、かつ失敗またはクラシュなしに加入者の所望の新アプリケーションの実行を可能にさせることである。
【００１１】
本発明の好ましい実施形態の別の長所は、ダウンロードされるアプリケーションにメモリを利用させる場合、より高い優先順位のアプリケーションが、ＤＨＣＴから取り除かれる最後のアプリケーションであることを可能させることである。
【００１２】
本発明の別の長所は、メモリ容量が、ヘッドエンドサーバによって利用される更新バージョンのアプリケーションの組織的なダウンロードを行うことを通して適切に保守されることである。
【００１３】
本発明の他の長所は、次の図および詳細説明の吟味において、当業者とっては明白である。
【００１４】
本発明は次の図を参照するとより良く理解され得る。図におけるコンポーネントは本発明の原理を明瞭に図示することに着眼する代わりに拡大および強調することを必ずしも必要ない。図において、類似の参照番号はいくつかの図にわたって対応する部分を示す。
【００１５】
（好適な実施形態の詳細な説明）
図１は、ケーブルテレビジョンシステム１０のブロック図であり、これは衛星テレビジョン信号などのテレビジョン信号を受信するヘッドエンド１１を含み、そしてこの信号を、システム１０にわたって伝送するフォーマットに変換する。この伝送信号は、示されるように、例えば無線周波数（ＲＦ）信号または光ファイバケーブル１１によって伝送される光信号であり得る。光信号がヘッドエンド１１によって伝送される場合、一つ以上の光学的ノード１３は、その後に、光信号を同軸ケーブル１４などの他のメディアを介して経由するＲＦ信号に変換するためにシステム１０に含まれる。タップ（Ｔａｐ）１５は、ケーブル１７を経由してＤＨＣＴ１６、ケーブルを備えたテレビジョンセット、ビデオレコーダ、またはコンピュータなどの加入者機器用にＲＦ信号を分離するために、ケーブルシステム１０の中に備えられる。このようにして、ヘッドエンド１１はネットワーク２０を通して複数のＤＨＣＴ１６に接続される。
【００１６】
図２は、ＤＨＣＴ１６および他のシステム機器を図示するブロック図である。ＤＨＣＴ１６は、通常、加入者の居住所または職場内に置かれる。これはテレビジョンセットなどのデイスプレイ２１を有するデバイスに一体化され得るか、または、コンピュータかテレビジョンセットに含まれるデイスプレイなどのデイスプレイ２１、および加入者への表示または再生のためにテレビジョン信号を転送されるメデイアに接続されるスタンドアロン型ユニットであり得る。ＤＨＣＴ１６は、好ましくは、通信インタフェース２２を含み、これは、タップ１５からビデオ、オーディオ、グラフィックおよびデータ情報などのメデイアを含み得るＲＦ信号を受信するためのものであり、そしてヘッドエンド１１（図１）に逆伝送するために任意の逆の情報をタップ１５に供給すためのものである。ＤＨＣＴ１６はＤＨＣＴ１６の動作を制御するプロセッサ２４をさらに含み、そしてデイスプレイ２１を駆動するＲＦ出力システム２８などのビデオ出力ポート２８、表示されるべき特定のテレビジョンチャネルにチューニングしてヘッドエンド１１からの種々のタイプのメデイアに応じてデータの送受信を行うチューニングシステム２５を含む。このチューニングシステムは、あるインプリメンテーションでは、テレビジョン信号を受信するための、双方向の直交位相シフトキーイング（ＱＰＳＫ）データ通信の帯域外チューナおよび直交振幅変調のチューナを含む。さらに、ＤＨＣＴ１６は、加入者入力または他のデバイスからのコマンドなどの外部で発生する情報を受信する受信器２６を含む。ＤＨＣＴ１６は、他のデバイス対してデータを受信および／または送信するために、１以上の無線または有線インタフェース、ポートとも呼ばれるものをまた含んでいる。例えば、ＤＨＣＴは、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ）、イーサネット（Ｒ）（コンピュータの接続用）、ＩＥＥＥ−１３９４（娯楽センターにあるメデイアデバイス接続用）、シリアル、および／またはパラレルポートを特長とし得る。加入者入力は、例えば、コンピュータ、ボタンを有する送信器、または端末の外面に置かれたキーによって、あるいはハンドヘルドのリモート制御デバイス２７または加入者によって操作されるボタンを含むキーボードによって提供され得る。
【００１７】
あるインプリメンテーションでは、ＤＨＣＴ１６のメモリ部２９は、フラッシュメモリ３１および種々のアプリケーションの実行プログラムと関連データ成分およびＤＨＣＴによって実行されるモジュールを格納するダイナミックアクセスメモリ（ＤＲＡＭ）３２を含む。フラッシュメモリ３１およびＤＲＡＭメモリ３２の両方は、プロセッサ２４によって認識されるコマンドなどの構成データ用操作パラメータを格納するためにプロセッサ２４に接続される。
【００１８】
ＤＨＣＴ１６の基本機能は、フラッシュメモリ３１に含まれるオペレーティングシステム３３によって提供される。本明細書でアプリケーションとして参照される１以上のプログラムされたソフトウエアアプリケーションは、ＤＨＣＴ１６のコンピューテイング資源を利用することにより実行される。フラッシュメモリ３１またはＤＲＡＭメモリ３２に格納されているアプリケーションの実行プログラムはオペレーティングシステム３３の保護のもとでプロセッサ２４（例えば、中央処理ユニットまたはデジタルシグナルプロセッサ）によって実行される。アプリケーションプログラムによって入力として要求されるデータは、アプリケーションプログラムの実行過程中に必要とされるＤＲＡＭメモリ３２から、プロセッサ２４によってＤＲＡＭメモリ３２に格納し、および呼び出される。入力データは、第２のアプリケーションまたはＤＨＣＴ１６の内部または外部のいずれかの他の資源によって格納されるデータであり得るか、または、アプリケーションがソフトウエアアプリケーションプログラムとして作成された時、このアプリケーションによっておそらく期待され、この後に、このアプリケーションプログラムによって生成され得、この場合、このデータはフラッシュメモリ３０に格納される。データは、ＤＨＣＴ１６のネットワークインタフェース（即ち、ＱＡＭまたは帯域外チューナ）を経由してヘッドエンド１１から任意のＤＨＣＴ１６の通信ポートを経由するか、または、受信器２６を経由した加入者入力として受信され得る。アプリケーションプログラムによって発生されたデータは、アプリケーションプログラムの実行過程中に、プロセッサ２４によってＤＲＡＭメモリ３２に格納される。
【００１９】
２次アプリケーションによる消費に対して、第１のアプリケーションによって発生されたデータの利用度、配置および量は、メッセージによって通信される。メッセージは割り込みまたはポーリング機構などのオペレーティングシステムのサービスかまたはセマフォなどのデータ共有機構を介して通信される。
【００２０】
オペレーティングシステム３３は、ブロードキャストファイルシステム（ＢＦＳ）のクライアントモジュール４１を作動させる。ＢＦＳクライアント４１はヘッドエンド１１においてサーバ側上の類似のモジュール（図３のＢＦＳサーバ５５）との一定の通信状態にある。このＢＦＳシステム４１、５５はサーバグループからの種々のメデイアまたはデータをネットワーク１０に繋がっているＤＨＣＴ１６などのクライアントに伝送する機構を提供する。このデータは任意のタイプの情報を実際に含み得る。サーバおよびクライアントのいずれのアプリケーションも、デイスクオペレーティングシステムで見られるファイルシステムと同じ方法で、ＢＦＳを経由してデータにアクセスできる。
【００２１】
オペレーティングシステム３３はＤＨＣＴ１６のメモリを制御するメモリマネージャ４７もまた保守する。メモリマネージャ４７はＤＨＣＴ１６の種々のアプリケーションによって必要とされる実行可能なアプリケーションおよび他のデータ（即ち、プログラムデータファイル（図示せず）または構成ファイル（図示せず））を格納するメモリ資源の割り付け機能を行う。さらに、メモリマネージャ４７は、メモリ資源を最小にするか、または、アプリケーションがヘッドエンド１１からダウンロードされるのメモリ容量を利用可能にする必要がある場合に、完全に終了するコマンドをアプリケーションに発行する。
【００２２】
アプリケーションまたはモジュールの実行可能なソフトウエアプログラムは、フラッシュメモリ３１またはＤＲＡＭ３２に格納され得る。アプリケーションおよび／またはモジュールの１以上の実行可能なソフトウエアプログラムおよびこれらの各データ成分のすべてかまたは部分が、フラッシュメモリ３１に格納され得る。例えば、ナビゲータアプリケーションはフラッシュメモリ３１に含まれ、そしてこれは加入者がケーブルシステム１０上で利用可能なサービスにアクセスするナビゲーションの枠組みを提供する。あるインプリメンテーションにおいて、サービスの例は、テレビジョンと番組有料イベントを見ること、デジタル音楽を聴くこと、および双方向プログラムガイドを含み、そしてこれらのそれぞれは、別々のアプリケーションを通してフラッシュメモリ３１において制御される。ナビゲータ３５はユーザにＤＨＣＴの種々の設定へのアクセスをもまた可能にさせ、この設定はボリューム、視聴制限、ＶＣＲコマンドなどを含む。ナビゲータ３５は、さらに、加入者に種々のサービスを選択する能力を提供する責任がある。
【００２３】
ＷａｔｃｈＴＶ４２およびペイバービュー（ＰＰＶ）４４は、フラッシュメモリ３１の中にある常駐アプリケーションである。ＷａｔｃｈＴＶ４２はユーザに簡単に「テレビジョンを見る」ことを可能にさせ、一方、ＰＰＶは高級テレビジョンサービスのテレビ番組を可能にする。これらのアプリケーションは、これらがフラッシュメモリにあるため、常に加入者に利用され、そしてＤＨＣＴ１６が開始する毎に再ダウンロードされる必要がない。
【００２４】
フラッシュメモリ３１は、またプラットフォームライブラリ３６をも含む。プラットフォームライブラリ３６は、タイマーマネージャ、圧縮マネージャ、ＨＴＭＬパーサ、データベースマネージャ、部品ツールキット、ストリングマネージャおよび他のユーティリティ（図示せず）などの、アプリケーションに有用な機能の集合である。これらのユーティリティは、各アプリケーションがこれらのユーティリティを含む必要がないために、必要な場合にアプリケーションによってアクセスされる。プラットフォームライブラリ３６に対して図２で示されるように、サービスアプリケーションマネージャ（ＳＡＭ）３７が存在する。
【００２５】
サーバ５７およびクライアント３７のサービスアプリケーションマネージャ（ＳＡＭ）は、加入者がサービスにアクセスできるモデルを提供し、そしてこのサービスは、駆動するアプリケーションおよびこのサービスに特定のデータ内容などのパラメータから構成される。ＳＡＭのサーバ５６およびクライアント３７は、またシステム上のアプリケーションのライフサイクルをも処理し、これは、アプリケーションが提供するサービスの定義、初期化、始動、一時停止、およびアンインストール、そして必要な場合にＤＨＣＴ１６にアプリケーションをダウンロードすることを含む。ＳＡＭのクライアント３７（これからはＳＡＭ３７として参照される）は、加入者によって要求される場合とか新バージョンのアプリケーションがサーバから利用可能な場合に、新アプリケーションのダウンロードを実行するＳＡＭデーモンを含む。
【００２６】
多数のサービスは、異なったパラメータを有する同じアプリケーションコンポーネントを利用して定義され得る。非制限例として、ビデオプログラミングにチューニングするアプリケーションは、ＨＢＯを見るためのあるセットのパラメータ、およびＣＮＮを見るための別セットのパラメータでもって実行され得る。アプリケーションコンポーネント（ビデオに同調する）とあるパラメータ（ＨＢＯまたはＣＮＮ）の各関連は独自のサービスＩＤを有する特定サービスを表す。
【００２７】
種々のアプリケーションクライアントは、ＳＡＭ３７の要求でＢＦＳ経由してＤＲＡＭ３２にダウンロードされ得る。アプリケーションクライアントはＤＨＣＴ１６上で実行し、そして通常、グラフィカルユーザインタフェースを通して加入者にアプリケーションサービスを提供するアプリケーションの一部分である。ＤＲＡＭ３２に格納されているアプリケーションは、ＤＨＣＴ１６が開始する時にロードされるアプリケーションであり得るか、または、リモート制御２７などの入力デバイスを用いて加入者開始コマンドによってＤＨＣＴ１６にダウンロードされるアプリケーションである。図２で示されるような、この非制限例では、ＤＲＡＭ３２は、次のアプリケーションクライアント（この後、「アプリケーション」として参照）を含む。即ち、ビデオオンデマンドアプリケーション（ＶＯＤ）４３、電子メールアプリケーション４５、およびウエブブラウザアプリケーション４６である。本発明の実施形態において、これらのアプリケーションは限定されず、そして単に例として果たすことは当業者にとって明瞭である筈である。
【００２８】
図２で示されるアプリケーションおよびケーブルシステムオペレータによって提供される他のすべてのものは、加入者にサービスを提供することにおいてネットワーク上のトップレベルのソフトウエアエントリである。あるインプリメンテーションでは、ＤＨＣＴ１６上で実行するすべてのアプリケーションは、数個の指針を守ってナビゲータアプリケーション３５と共に動作する。第１に、アプリケーションは、サービスの提供、始動、および一時停止のために、ＳＡＭ３７を利用かつ実現させる必要がある。第２に、アプリケーションは、他のアプリケーションと一緒にＤＨＣＴ１６の資源を共用し、そしてＳＡＭ３７、オペレーティングシステム３３、およびＤＨＣＴ１６の資源マネージメント施策を守る必要がある。第３に、アプリケーションは、資源が利用できないすべての状態を処理する必要がある。第４に、アプリケーションがサービスを提供している間にサービス権を失うと、アプリケーションは提供しているサービスを一時停止する必要がある。ナビゲータ３５は、後になって許可されると、固有サービスアプリケーションの再始動を行う。最終的に、アプリケーションは、所定のユーザ加入者の入力キー（即ち、パワー、チャネル＋／−、ボリューム＋／−、など）へのアクセスを有しないように構成される必要がある。
【００２９】
図３はケーブルテレビジョンシステムのブロック図であり、これは、ケーブルテレビジョンシステムのヘッドエンドに位置し、選択されたコンポーネントおよびＤＨＣＴの中の選択されたコンポーネントの層図を含む。示されるインプリメンテーションにおいて、ヘッドエンド１１は、複数のアプリケーションサーバ５１、５１’、５１”を含み、これらはアプリケーションによって提供されるサービスを供給することおよびＤＨＣＴ１６によって必要とされる内容またはデータを提供することに応答する（下記でより詳細に説明される）。一連のアプリケーションサーバ５１は、１０ＢａｓｅＴまたは１００ＢａｓｅＴなどのイーサネット（Ｒ）接続５２を経由してデジタルネットワークシステム５３に接続される。アプリケーションサーバマネージャ（図示されず）は、システムヘッドエンド１１に属するすべてのアプリケーションサーバ５１のためのレジストリとして果たすことを含まれ得る。アプリケーションサーバマネージャのグラフィカルユーザインタフェース（ＧＵＩ）を通して、すべてのアプリケーションサーバ５１のＧＵＩはアクセスされ得る。
【００３０】
デジタルネットワークコントロールシステム（ＤＮＣＳ）５３は、ネットワークコンポーネントおよび加入者に提供されるブロードキャストサービスの完全なマネージメント、モニタリング、および制御を提供する。ＤＮＣＳ５３は、資源の定義、デジタルストレージメデイアのコマンドとコントロール（ＤＳＭ−ＣＣ）、ネットワーク２０におけるＤＨＣＴのユーザに対するネットワーク構成、および条件付きアクセスマネージメントを含む。アプリケーションサーバ５１は、イーサネット（Ｒ）５２を介し、ＤＨＣＳ５３に含まれるオペレションシステム５４を通してＳＡＭサーバ５６と通信する。アプリケーションサーバ５１はＳＡＭサーバ５６に登録し、ＳＡＭサーバ５６上にこのアプリケーションの導入を起こさせ、そしてＳＡＭサーバ５６は、サービスに関連する特定のアプリケーションクライアントの実行コードおよび恐らく１以上のデータ成分をネットワーク１０の種々のＤＨＣＴに配信するために、カルーセル（図示せず）に加えるように、ＢＦＳサーバ５５に指示する。ＳＡＭサーバ５６はまた、ネットワーク２０においての実行を導く各アプリケーションの種々の特長を提供する。アプリケーションを導入する準備として、ＳＡＭサーバ５６はサービスへの加入者に表示されるデイスプレイチャネル番号からのマッピングをもまた供給し、そして逆に、特定時間のあるチャネル上でのあるサービスおよび異なった時間のこのチャネル上の別サービスを有する機能を含む。ＳＡＭサーバ５６は、サービスに関連するデータを特定するためにＳＡＭサーバ５６上でのインタフェースをもさらに提供し、そしてＤＨＣＴ１６上のＳＡＭクライアント３６はこの情報を有効にアクセスするためのインタフェースを供給する。ＳＡＭサーバ５６は情報および構成データを含み、これにより、ＤＨＣＴ１６上のアプリケーションおよびサービスが、ＳＡＭサーバ５６からリモートで、信号メッセージによって始動および一時停止され得る。
【００３１】
図４および図５のさらなる参照によると、図３で示されたシステムによって実現されるようなアプリケーション６０のライフサイクルは、アプリケーションの開発、統合、試験、および検証から始って、その後、アプリケーションが工程６１で示されるように、加入者の利用のためにリリースされる。開発はヘッドエンド１１とＤＨＣＴ１６の実行可能な別々アプリケーションの生成およびインストール用アプリケーションパッケージを含む。ヘッドエンド１１およびＤＨＣＴ１６のコンポーネントを含んで完成されたアプリケーションは、すべてのＲＦコンポーネントを含み、端から端までのデジタルネットワーク上でテストされる。このアプリケーションは、これが製品仕様および加入者要求に整合するかを確実にする機能のためにテストされる。最終には、アプリケーションは、個々のサービスを提供しつつ、全体システムとのアプリケーションのやりとりをテストすることにより証明される。メモリリーク、資源マネージメント、ネットワークトラフィック衝突、そして潜伏期間などのコマンドは、アプリケーションが負荷の条件で正常に駆動しているかを確実にするために発行される。
【００３２】
工程６３に示されるように、アプリケーションのライフサイクル６０の次の工程は、アプリケーションサーバハードウエアプラットフォーム５１にインストールされて、ネットワーク２０に現に存在する一連のアプリケーションの中に含まれるアプリケーションを呼ぶ。非制限例では、第１のアプリケーションサーバ５１’（図３）はビデオオンデマンドであり得、第２のアプリケーションサーバ５１”（図３）はペイフォービュー（ｐａｙ　ｆｏｒ　ｖｉｅｗ）アプリケーションであり得る。
【００３３】
アプリケーションがインストールされた後、これは、工程６５に示されるように供給される。供給することは、アプリケーションのサービスを提供するに必要なシステム資源の予約および構成を含んだアプリケーションのサービスを定義するプロセスである。供給することはアプリケーションをＢＦＳサーバ５５（図３）に加えて、これをＳＡＭサーバ５６（図３）に登録することを含む。アプリケーションはＵＲＬで識別され、数個の属性によって特徴付けられる。ＵＲＬに含まれる１つ属性は、アプリケーションのすべてのサービスが一時停止された後に、このアプリケーションが常駐して留まるかまたは留まらないかであり、そして別の属性は、アプリケーションおよびサービス権に対し利用される条件付きアクセスであるかどうかである。供給することの間に挿入され得るさらなるＵＲＬパラメータは、ＤＨＣＴ１６が開始されそして追加的に送り出される時に、アプリケーションがロードされるものとして明記されるかどうかである。
【００３４】
アプリケーションサーバ５１（図３）は、セッションマネージャ、メッセージサーバ、条件付きアクセスサーバ、ＢＦＳ、およびＩＰゲートウエイ（ＢＦＳ（図３）を除いてコンポーネントは図示されない）などのアプリケーションインタフェースシステムコンポーネントを利用する。一旦、供給できる状態になると、アプリケーションサーバ５１はＳＡＭサーバ５６（図３）を利用して、長短な説明、オプションのロゴ、そしてサービスが許可されない場合の代替のサービスなどのサービスパラメータを提供することによって各サービスを登録する。さらに、サービスにサービスＩＤが与えられ、そしてこのサービスはＳＡＭサーバ５６を経由してチャネルに割り付けられる。
【００３５】
図４の工程６７に示されるように、アプリケーションのライフサイクルの次の工程は、アプリケーションの認可レベルの構成を行う。サービス認可は、一般には、アプリケーション依存型機構であるが、通常は、ヘッドエンド１１およびＤＨＣＴ１６のコンポーネントによって提供される条件付きアクセス機能に依存する。一旦、アプリケーションの認可レベルが構成されると、このアプリケーションはネットワークシステムに導入される。ＳＡＭ３７（図２）は、サービスが認可されているかどうかを問うためのインタフェースを供給する。サービスを提供するアプリケーションが、このサービスが供給可能であって、条件付きアクセス情報を特定している場合、ＳＡＭ３７（図２）は条件付きアクセスマネージャクライアント（図示せず）のためにサービス認可を決定するためにこの情報を利用する。このように構成されると、ＳＡＭ３７（図２）はアプリケーションにサービスが認可されるかどうかを尋ねる。なぜならば、このアプリケーションだけが、工程６５で割り付けされたサービスパラメータに基づいて、この質問に応える機能を有する。
【００３６】
図４の工程６９に従うと、アプリケーションに対する要求は、加入者がリモートコントロ−ル２７などの入力デバイを介してコマンドを入力する場合に、ＤＨＣＴ１６、特にナビゲータ３５から発生し得る。しかしながら、任意のアプリケーションクライアントまたはサーバはサービスに対する要求を開始し得ることに留意されたい。要求されたサービスは一連の存在するサービス（サービスＩＤによって識別される）の中に定義され得るか、またはそれは新しくかつ動的なサービスになり得、この場合、定義および始動要求は同時に生じる。工程６９での要求を受けると、ＳＡＭ３７は、工程７１に示されるように、ターゲットアプリケーションがフラッシュメモリ３１に常駐しているかまたは以前のダウンロードから既に格納されてるかを決定する。通常、ＤＨＣＴ１６がアプリケーションのバージョンを更新するか、または、ＤＨＣＴ１６が他のアプリケーションのためにメモリ容量を生成するためにアプリケーションを取り除く必要がある時まで、アプリケーションは、初期ダウンロード後のまま、ＤＲＡＭ３２に留まっている。
【００３７】
アプリケーションが既にＤＲＡＭ３２に格納されている場合、ＳＡＭ３７は、ＤＲＡＭ３２にあるアプリケーションが工程７３に示されように、実行に対して利用可能な最新バージョンであるかどうかを決定する。ＳＡＭ３７は、アプリケーションに、ＢＦＳ上で現在利用可能なアプリケーションのバージョンに等しいアプリケーションＵＲＬのバージョンを特定させることを可能にする。サービスが始動される毎に、ＳＡＭ３７はこのバージョンとＳＡＭサーバからロードされたＳＡＭ情報テーブルの中に受信されたバージョンと比較する。ＳＡＭ３７が、ＤＲＡＭ３２のアプリケーションのバージョンが最新のバージョンでないと決定すると、ＳＡＭ３７はＢＦＳサーバ５５から最新バージョンのものを取得する。アプリケーションのバージョン化のプロセス、即ち自動的にアプリケーションの最新バージョンを収得することは下記でより詳細に説明されそして図８において示される。
【００３８】
ＳＡＭ３７が、アプリケーションがＤＲＡＭ３２に含まれてないことを工程７１で決定すると、ＤＨＣＴ１６はアプリケーションをＢＦＳサーバ５５（図３）から一つ以上のデータファイルとしてダウンロードする必要がある。しかしながら、ＳＡＭ３７は工程７２で示されるように、ダウンロードされるアプリケーションのメモリ容量を割り付ける必要がある。ＳＡＭ３７はダウンロードされるアプリケーションのメモリ容量のみならず、このアプリケーションを実行する充分なメモリ容量を確保する必要があり、そしてその後アプリケーションの実行ソフトウエアプログラムおよび関連するデータ成分のためのメモリを割り付ける必要がある。工程７２におけるアプリケーションを格納および実行するメモリ割り付けは下記でより詳細に説明される。
【００３９】
充分なメモリ容量が、工程７２でアプリケーションのために予約された後、ＤＨＣＴ１６は、工程７４のようにＢＦＳサーバ５５（図３および上述のように）からこのアプリケーションをダウンロードする。ＳＡＭ３７は、オペレーティングシステム３３のストリームマネージャアプリケーションプログラムインタフェース（図示せず）を用いてダウンロードされるアプリケーションを整える。ダウンロードプロセスは、一時停止要求が始動をキャンセルできるように非同期である。正常な場合、ナビゲータ３５は「ダウンロード呼び込み」と表示し、加入者にサービスがダウンロードされていることを知らせ、そして加入者が別のサービスを好む場合、ダウンロード行為をキャンセルさせることを可能にする。アプリケーションはＢＦＳ４１、５５からダウンロードされた後、この初期化機能はオペレーティングシステム３３によって呼び出され、そしてアプリケーションは、工程７６で示されるように送出される。アプリケーションを送出することはアプリケーションの実行プログラムを駆動させる。送出されると、スレッドがアプリケーションのために生成され、この主な機能はオペレーティングシステム３３によって呼び出される。
【００４０】
アプリケーションが、工程７４および工程７６のそれぞれにおいて、ダウンロードおよび始動をかけられた後、サービスは図５の工程７８のように始動される準備になっている。ＳＡＭ３７は、アプリケーションクライアントおよび提供するサービスＩＤと始動されるサービスのサービスパラメータを特定する始動メッセージを伝達することによってアプリケーションをデイスプレイ２１（図２）に写し出す。始動すると、アプリケーションはそのサービスを提供し始め、そして工程８０で示されるようにＤＨＣＴ１６上で実行する。アプリケーションが実行している間、それはウィンドマネージャ３９、セッションマネージャ（図示せず）、そしてＤＨＣＴ１６へのアクセスを得るストリームマネージャ（図示せず）などのＤＨＣＴ１６のアプリケーションインタフェースコンポーネントおよびネットワーク資源を用いる。実行中、アプリケーションはサービス資源環境に従って動く必要があり、そして資源利用のすべての組み合わせを滑らかに（ｇｒａｃｅｆｕｌｌｙ）処理する必要がある。
【００４１】
サービスは、工程８２に示されるように、アプリケーションサーバ５１（図３）かまたはＤＨＣＴ１６のいずれかによって一時停止され得る。一時停止中、ＳＡＭ３７はまずサービスを終了する要求を受ける。通常、サービスを一時停止する要求は、特定のサービスＩＤを識別することによってナビゲータ３５から生じる。サービス要求の一時停止はＳＡＭ３７に伝達され、そしてＳＡＭ３７はサービスデータベース４０のサービスを現在提供しているすべてのアプリケーションをずっと追っている。アプリケーションが現在ダウンロードされている場合、このアプリケーションの一時停止要求がＳＡＭ３７によって受信されると、ＳＡＭ３７はこのダウンロードを終了させる。ＳＡＭ３７はアプリケーションに一時停止するサービスＩＤと共に一時停止メッセージを送る。アプリケーションはサービスを一時停止し、このサービスに特定の任意の資源利用を最小にする必要があり、しかしＳＡＭ３７は、この再始動されるサービスを見越して、アプリケーションがアプリケーションのある資源を保持すことを許可させ得る。資源を解放するアプリケーションの最小化は、アプリケーションをダウンロードするためのメモリマネージメントおよび資源割り付けに関して、下記で詳細に説明される（図６および図７を参照）。
【００４２】
アプリケーションの終了は、結果として、工程８４で示されるように、ＤＨＣＴ１６によってアプリケーションの実行を終わらせることである。ＤＨＣＴ１６において実行される別のアプリケーションの空間を作るために、終了は常にＳＡＭ３７によって開始され、そしてこれは下記でより詳細に説明される。終了は、すべての資源を解放するために、オペレーティングシステム３３からアプリケーションへの要求で始まる。アプリケーションがフラッシュメモリ３１（ナビゲータ３５は常駐アプリケーションの例である）に常駐していない場合、これはシャットダウン方法を実行しそしてＤＨＣＴ１６のＤＲＡＭ３２からこのコードをアンロードすることによって続けられる。
【００４３】
アプリケーション６０のライフサイクルの最終工程８８は、ケーブルテレビジョンシステム１０（図１）からのアプリケーションのアンインストールである。すべてのアプリケーションはケーブルテレビジョンシステム１０から取り除かれる。アプリケーションのアンインストールの間、すべての供給はなされなくなり、アプリケーションのコードおよびデータはＢＦＳサーバ５５から取り除かれ、アプリケーションは登録からはずされ、そしてアプリケーションサーバのコードはヘッドエンド１１から取り除かれる。
【００４４】
図４の工程７２で上述したように、ＤＲＡＭ３２のメモリはアプリケーションをダウンロードする前に、アプリケーションのために割り付けられる必要がある。図６および図７は、図２のＤＨＣＴ１６によって実現されるメモリマネージメントプロセスのフローチャート表現であり、これはアプリケーションをダウンロードさせて実行する充分なメモリ容量を割り付ける。工程９１に示されるように、ＤＨＣＴ１６はＤＲＡＭ３２の個々のアプリケーションを簡単に格納するのに必要なメモリ容量およびその上一度始動されたアプリケーションを実行するのに必要なメモリ容量を決定する。図４の工程６５で説明されたように、アプリケーションの供給の間、アプリケーションを実行するのに必要なＤＲＡＭ３２の量の表示はアプリケーションのＵＲＬで明示され得る。
【００４５】
工程９３で示されるように、ＳＡＭ３７は、メモリがアプリケーションのために割り付けられたことを確実にする必要がある。ＳＡＭダウンロードデーモン３４（図２）は、ＤＲＡＭ３２の割り付けのためにアプリケーションメモリ条件をメモリマネージャ４７（図２）に伝送する。ダウンロードされるアプリケーションの実行のためのメモリに関して、ある実施形態において、メモリマネージャ４７（図２）がＤＲＡＭ３２で実行されるアプリケーションの簡単な格納のメモリ容量を割り付けると同時に、メモリマネージャ４７（図２）は実行メモリ容量を割り付ける試みを行う。別の実施形態において、実行可能なアプリケーションがＤＲＡＭ３２にダウンロードされて格納された後、メモリマネージャ４７（図２）はアプリケーションの実行のためのメモリ容量を割り付ける試みを行う。
【００４６】
アプリケーションのためのメモリを割り付ける第１の試みは、ナビゲータ３５の用途に割り当てられた、ＤＲＡＭ３２にあるメモリの一部分であるプライベートヒープ（図示せず）から作られ得る。工程９５で、メモリマネージャ４７（図２）によって、ＢＦＳ上で実行可能なアプリケーションのサイズの利用できる容量の大きさと必要なメモリのＵＲＬ仕様を比較することによりプライベートヒープがアプリケーションを格納して実行するメモリ容量を有するかどうかが決定される。プライベートヒープがアプリケーションのための容量を有する場合、メモリマネージャ４７（図２）は、工程１１６（図７）のように、必要なメモリ容量をアプリケーションに割り付け、そしてこのアプリケーションをダウンロードするためにこの割り付けをＳＡＭ３７に報告する。ＳＡＭダウンロードデーモン３４（図２）はアプリケーションをダウンロードし、そしてアプリケーションのライフサイクルは上述の説明および図４と図５に示されるように進行する。
【００４７】
プライベートヒープがダウンロードされるアプリケーションを格納するメモリ容量を有しない場合、メモリマネージャ４７（図２）は、工程９７に示されるように、このプライベートヒープをコンパクト化することがアプリケーションのために充分なメモリ容量を生成するかどうかを決定する。メモリマネージャ４７（図２）がコンパクト化プロセスで性能を低下させないと決定する場合のみ、プライベートヒープのコンパクト化は起こる。メモリマネージャ４７（図２）は、工程９７から、プライベートヒープのコンパクト化がアプリケーションのために充分なメモリ容量を生成すると決定した場合、この後のみ、オペレーティングシステムが工程９９でヒープをコンパクト化するように依頼される。コンパクト化はオペレーティングシステムによって支援され、そしてこれはハンドルに基づくメモリマネージメントのしくみを実現する。コンパクト化している間、「ロックされている」かまたは使用中でないハンドルは、割り付けられるメモリがメモリの連続する部分に合致するようにメモリの中を動かされる。メモリコンパクト化アルゴリズムはオペレーティングシステム設計の当業者では周知である。
【００４８】
プライベートヒープをコンパクト化した後、メモリマネージャ４７（図２）は、プライベートヒープが工程１００でアプリケーションを格納し実行する充分な容量を有するかを再び決定する。そのような場合、メモリマネージャ４７（図２）は、工程１１６（図７）のように、必要なメモリ容量をアプリケーションに割り付け、そしてこのアプリケーションをダウンロードするためにこの割り付けをＳＡＭ３７に報告する。ＳＡＭダウンロードデーモン３４（図２）はアプリケーションをダウンロードし、そしてアプリケーションのライフサイクルは上述の説明および図４と図５に示されるように展開する。
【００４９】
メモリマネージャ４７（図２）は、工程９７で、プライベートヒープのコンパクト化がアプリケーションために充分なメモリ容量を生成しないか、または、工程１００で、コンパクト化がアプリケーションために充分なメモリ容量を生成するのに現実に失敗したと決定した場合、メモリマネージャ４７（図２）は、ダウンロードされるアプリケーションのために空間を作るために、プライベートヒープ容量（工程１０２）を成長させるかまたは拡大する１回の試みを行う。プライベートヒープを成長させることは、メモリマネージャ４７（図２）にオペレーティングシステム３３のメモリヒープ（図示されずそしてこれからは「システムヒープ」として参照される）からのメモリをプライベートヒープに割り付けるように要求する。メモリをプライベートヒープに割り付けた後、メモリマネージャ４７（図２）は、図７の工程１０４に示されるように、プライベートヒープが最終的にダウンロードされるアプリケーションを格納し実行するに充分大きいかどうかを再び決定する。そのような場合、メモリマネージャ４７（図２）は、工程１１６（図７）のように、必要なメモリ容量をアプリケーションに割り付け、そしてこのアプリケーションをダウンロードするためにこの割り付けをＳＡＭ３７に報告する。ＳＡＭダウンロードデーモン３４（図２）はアプリケーションをダウンロードし、そしてアプリケーションのライフサイクルは上述の説明および図４と図５に示されるように展開する。
【００５０】
プライベートヒープがまだダウンロードされるアプリケーションを格納する容量を有しない場合、メモリマネージャ４７（図２）は、工程１０６に示すように、システムヒープからメモリを割り付ける試みを行う。プライベートヒープを利用しない別の実施形態は、この工程で、メモリ割り付けアルゴリズムを開始させ得ることを留意されたい。好ましいの実施形態では、システムヒープへの割り付けはロックのままでは保つことができず、それによって他のアプリケーションに最終的に必要とされ得る資源を拘束のままで保つことができない。このようにして、メモリのシステムヒープに格納されているアプリケーションはメモリからパージされ、かつ速やかに解放される必要がある。結果として、メモリマネージャ４７（図２）は、工程９５および１００には類似の解析を行うが、工程１０８としてはアプリケーションのシステムヒープ容量に関してである。システムヒープがアプリケーションを格納し、駆動させるメモリ容量を有している場合、メモリマネージャ４７（図２）は、工程１１６（図７）のように、必要なメモリ容量をアプリケーションに割り付け、そしてこのアプリケーションをダウンロードするためにこの割り付けをＳＡＭ３７に報告する。ＳＡＭダウンロードデーモン３４（図２）はアプリケーションをダウンロードし、そしてアプリケーションのライフサイクルは上述の説明および図４と図５に示されるように展開する。
【００５１】
しかしながら、メモリマネージャ４７（図２）は、システムヒープがアプリケーションを格納する（そして潜在的に実行する）不十分なメモリ容量を有していると決定した場合、メモリマネージャ４７（図２）は、工程１１０のように、オペレーティングシステムにシステムヒープをコンパクト化するように依頼する。システム性能が低下しない場合のみ、システムヒープのコンパクト化が試みられる。システムヒープがコンパクト化された後、メモリマネージャ４７（図２）は、システムヒープが今や工程１１２においてアプリケーションのための充分なメモリを有すると決定した場合、メモリマネージャ４７（図２）は工程１１６に進み、システムヒープからのメモリをアプリケーションに割り付け、そして上述したようにアプリケーションのライフサイクルを続ける。システムヒープが工程１１０のコンパクト化の後、容量を有しない場合、メモリマネージャ４７（図２）は工程１１４に進み、そしてＤＲＡＭ３２のシステムヒープに既に含まれるデータをパージすることによってメモリ容量の割り付けを試みる。
【００５２】
メモリマネージャ４７は、ＤＲＡＭ３２に既に含まれるデータをパージし、そしてそれによってオペレーティングシステム３３によって支援される優先順位のリストに従ってメモリを解放する操作を始める。オペレーティングシステム３３は、割り付けを行う個々のアプリケーションによってセットされたように、メモリマネージャ４７に各メモリ割り付けのパージ優先順位を提供する。アプリケーションがＤＲＡＭ３２にダウンロードされて格納されると、それはシステムの優先順位の情報を含む。この優先順位情報はオペレーティングシステム３３に伝送され、そしてパージ優先順位（図示せず）のテーブルに格納される。優先順位のテーブルは、アプリケーションおよびこれらに関連するデータがＤＨＣＴ１６にダウンロードされる従って、オペレーティングシステム３３によって保守される優先順位の動的リストである。ある実施形態では、システムオペレータは、アプリケーションの供給プロセスの間、パージ優先順位パラメータをアプリケーションおよびアプリケーションを実行する必要な任意のデータファイルに付与し、これは最終的にＤＨＣＴ１６のオペレーティングシステムにある優先順位テーブルに含まれる。
【００５３】
メモリマネージャ４７が工程１１４に到達してＤＨＣＴ１６からデータを取り除く必要があると、メモリマネージャ４７は最も低い優先順位の、ＤＲＡＭ３２に含まれるアプリケーションまたはデータから始める。メモリマネージャ４７は、ＤＲＡＭ３２から最も低い優先順位のアプリケーションまたはデータを
取り除き、それによってヘッドエンド１１からダウンロードされるアプリケーションを格納する新規のメモリ容量を生成する。最も低い優先順位のアプリケーションまたはデータをパージした後、メモリマネージャ４７は工程１１０に戻り、そしてシステムヒープの再コンパクト化を試みる。メモリマネージャ４７は、工程１１２において、充分なメモリ容量が今やダウンロードされるアプリケーションのために存在することを決定すると、メモリマネージャ４７（図２）は、工程１１６（図７）のように、必要なメモリ容量をアプリケーションに割り付け、そしてこのアプリケーションをダウンロードするためにこの割り付けをＳＡＭ３７に報告する。ＳＡＭダウンロードデーモン３４（図２）はアプリケーションをダウンロードし、そしてアプリケーションのライフサイクルは上述の説明および図４と図５に示されるように展開する。
【００５４】
メモリマネージャ４７は、工程１１２において、システムヒープがアプリケーションを格納するには余りにもなお小さ過ぎると決定すると、それは再び工程１１４に進み、そして前にパージしたファイルの優先順位から次に最も低い優先順位のアプリケーションおよびデータをパージする。以前にダウンロードされることが出来なかったアプリケーションのために充分なメモリ容量が生成されるまで、メモリマネージャ４７は、システムヒープのコンパクト化によって続けられる、最も低い優先順位のアプリケーションおよびデータをパージする工程に従い続ける。メモリマネージャ４７が、ダウンロードされるアプリケーションのために充分なメモリ容量を生成すると、アプリケーションをダウンロードすることの開始のために、ＳＡＭ３７にある表示が伝達される。
【００５５】
上で述べたように、アプリケーションおよびデータが最初にパージされた優先順位は動的であり、最も重要なアプリケーションがＤＲＡＭ３２から取り除かれないことを確実にするために意図されている。非制限例として、開始時にロードするアプリケーションとして供給されるアプリケーションは、それらが常にＤＨＣＴ１６にダウンロードされるアプリケーションであるため、最も高い優先順位が与えられ得る。このタイプのアプリケーションは開始時に常にダウンロードされるので、基本的にはＤＨＣＴ１６に常駐しており、同じようにシステムオペレータがこのアプリケーションが常に加入者に利用されるべきであると決定されているので、それは、通常、一つの最も高い優先順位のものを負っている。さらに、例として、本日のテレビ番組情報を含む双方向番組（図示せず）のプログラムデータファイル（図示せず）は最も高い優先順位の一つを取得し得る。なぜならば、この情報がないと、加入者は見るテレビ番組を選択できず、これによって、ＤＨＣＴ１６のアプリケーションの一つをだめにすることになる。対照的に、将来の日のテレビ番組情報を含んでいるプログラムデータファイルはより低い優先順位を有し得る。なぜならば、ＤＨＣＴ１６は、必要とされる場合に、将来のこの情報をダウンロードし得る。
【００５６】
さらに、アプリケーション優先順位は、ＤＨＣＴのユーザにサービスを現在提供しているアプリケーションが、ＤＲＡＭで常駐であるが現在サービスを提供してない実行可能のものよりもより高い優先順位を有するように動的に調整される。アプリケーションは、また、サービス始動状態に依存するデータの優先順位をも変更し得る。
【００５７】
上記および図６と図７で説明したメモリ割り付けプロセスは、実行可能なアプリケーションを格納し実行するために開始のメモリを割り付けることのみならず、アプリケーションクライアントが、サービスを提供している間、必要とし得る追加のメモリを割り付けるためにも用いられる。例えば、電子メールのアプリケーション４５（図２）は、イメージ添付を提示することをダウンロードするために追加のメモリを割り付けることを必要とし得る。メモリマネージャ４７は、割り付けの特定の優先順位が与えられた、必要なメモリを割り付けるために、図６および図７と同じ方法で依頼される。このようにして、イメージ添付のためのメモリを割り付けるために、他のより低い優先順位データおよびアプリケーションさえもアンロードされる。このようにして、任意のアプリケーションは、実行中に、追加のメモリ資源を要求し、そしてメモリマネージャ４７に容量を取得するように要求し得る。さらに、本発明で説明されたメモリ割り付けプロセスの本質は、複数のアプリケーションがＤＨＣＴ１６などのメモリ拘束付環境において同時に複数のサービスの提供を可能にする。
同じ方法で、他のアプリケーションおよびデータファイルは変更される優先順位を付与され得る。この結果、ＤＨＣＴ１６のオペレーティングシステム３３は図８の実行工程１１４に対してリストにあるこれらの優先順位を編集する。充分なメモリ容量が最も低い優先順位のアプリケーションおよびデータファイルを取り除くことによって生成されるまで、メモリマネージャ４７は工程１１０、１１２および１１４を実行し続ける。
別の実施形態おいて、各アプリケーションは、この実行可能なソフトウエアプログラムがメモリの減少した量のデータでもって機能し得るかどうかについての仕様を含む。この仕様は、好ましいデータ割り付けサイズに加えて、一つ以上の減分のデータをさらに特定する。アプリケーションがダウンロードされ、そしてメモリの量がすべてのアプリケーションのデータ割り付け成分を収容するのに不充分であると、ダウンロードされたアプリケーションは、存在するアプリケーションの一つを減少した量のメモリ割り付けで強制して実行させるよりもより減少した量のデータ割り付けで強制的に駆動される。
他の実施形態において、アプリケーションのデータ成分は、圧縮フォーマットでヘッドエンド１１からＤＨＣＴ１６に伝送される。メモリ制限なしの通常の動作において、アプリケーションのデータ成分は解凍され、そして解凍データ状態でＤＲＡＭ３２に格納される。一旦、追加のアプリケーションがダウンロードされると、ＤＲＡＭ３２の量がすべてのアプリケーションのデータ成分を収容するのに不充分な場合、ＤＨＣＴ１６の一つ以上のアプリケーションのデータ割り付け成分はＤＲＡＭ３２において圧縮フォーマットで保持される。この後、１以上の特定サブセットのデータ成分が、実行過程の間、アプリケーションのソフトウエアプログラムへの入力であることが要求される場合、それぞれのサブセットのデータ成分は、それらを個々サブセット（全体データ成分を解凍するよりむしろ）に解凍する解凍器（図示せず）への入力であり、そして解凍器による解凍されたデータ出力は、その後、アプリケーションの実行可能なソフトウエアプログラムへの解凍されたフォーマットでの入力である。同じように、アプリケーションのデータ成分に割り付けられたメモリ部に格納される前に、アプリケーションの実行可能なソフトウエアプログラムの出力である特定のサブセットのデータが、メモリに格納される圧縮データを出力する圧縮器への入力である。
【００５８】
他の実施形態において、ＤＨＣＴ１６は、ＵＳＢまたはＩＥＥＥ−１３９４などの通信ポート（図示せず）を経由して、内部的にＤＨＣＴ１６に接続されるかまたは、外部的にＤＨＣＴ１６に接続されるかのいずれかで、ハードデイスクドライバなどのローカルストレージデバイス（図示せず）を含む。メモリ制限なしの通常の動作において、アプリケーションのデータ成分はメモリに格納される。メモリの量がアプリケーションのデータ割り付け成分のすべてを収容するのに不充分である場合、メモリ空間を空にするために、ＤＨＣＴ１６の１以上のアプリケーションの１以上の部分データがメモリからローカルストレージデバイスに伝送され、結果とそして、各データ成分をローカルストレージデバイスに格納することになる。アプリケーションがストレージデバイスに格納されたデータを要求し、この要求されたデータを格納する不充分なメモリが存在する場合、アプリケーションは、メモリの空間を生成するために、１以上のデータ成分からの第２の部分データをメモリからローカルストレージデバイスに伝送し格納する。このアプリケーションは、この後、要求されたデータをストレージデバイスからメモリの空き部分に伝送および格納する。
【００５９】
アプリケーションはＤＲＡＭ３２に格納するために、ＤＲＡＭ３２ではなくローカル格納デバイスにさらにダウンロードされ得る。アプリケーションが呼び出される場合いつでも、ＳＡＭ３７は、ターゲットアプリケーションが、ローカル格納デバイスまたはＤＨＣＴ１６のＤＲＡＭ３２において常駐するかどうかを決定する。ＳＡＭ３７は、所望されたアプリケーションがローカル格納デバイスに常駐するかどうかを決定する場合、アプリケーションは、ＤＲＡＭ３２に送出される。このプロセスは、実行されるアプリケーションまたは最も一般的に始動されるアプリケーションに対してＤＲＡＭ３２に保存すると同時に複数のアプリケーションを保持するために、ローカル格納デバイスのメモリリソースを利用する。
【００６０】
また、ＤＨＣＴ１６は、図５におけるステップ７３について上述したように、ＤＲＡＭ３２に格納された各アプリケーションが、ヘッドエンド１１であるサーバで利用可能なアプリケーションの最新のバージョンであることが規定どおりに確認される。図８は、図２におけるＤＨＣＴ１６によって実現されるアプリケーションバージョン化プロセスのフローチャートであり、ＤＨＣＴによって実行される各アプリケーションが、利用可能なアプリケーションおよびケーブルテレビシステムによって支援されたアプリケーションの最新のバージョンであることを確実にする。
【００６１】
ＳＡＭサーバ５６（図３）は、ＢＦＳ４１（図２）およびＢＦＳ５５（図３）上で現在利用可能な各アプリケーションに対する最新のバージョンの情報を含むサービスデータベース４０内のバージョン情報を含む。工程１２１に示されるように、ＳＡＭサーバ５６は、サービステーブル内の現在のバージョン情報を、各ＤＨＣＴ１６のＳＡＭ３７にネットワーク２０を介して放送させる。典型的には、アプリケーションがアプリケーションサーバ５１（図３）上で更新される度に、ネットワーク２０内でＤＨＣＴに転送されたサービステーブルにおいて更新される。サービステーブルを受け取ると、ＳＡＭ３７は、ＤＲＡＭ３２（図３）に格納されたアプリケーションが加入者コマンドによって始動される場合に使用するため、ＤＲＡＭ３２（図３）におけるサービスデータベース４０（図３）におけるバージョン情報を格納する。
【００６２】
アプリケーションがＤＲＡＭ３２にダウンロードされる度に、アプリケーションのＵＲＬは、アプリケーションのバージョンの情報を含む。非制限例では、ＵＲＬパラメータのフォーマットは、「ｖｅｒｓｉｏｎ＝＜ＭＤＴ　ｖｅｒｓｉｏｎ＞」であり得る。上述のように、ＳＡＭ３７は、全アプリケーションに関連付けられた現在のバージョンパラメータを受け取り、ダウンロードされたアプリケーションに関連するサービスデータベース４０における現在のバージョンパラメータを格納する。以後、アプリケーションによって提供されたサービスが加入者によって始動される場合、工程１２３のように、ＳＡＭ３７は、アプリケーションのサービスを始動する前に、サービスデータベース４０から始動されたアプリケーションに対する現在のバージョンパラメータを取り出す。工程１２５のように、ＳＡＭ３７は、サービスデータベース４０から取り出された現在のバージョンパラメータとＤＲＡＭ３２において実行可能なアプリケーションのバージョンとを比較し、工程１２７に示されるように、バージョンが整合するかどうか決定する。バージョンが整合する場合、アプリケーションは、上述のアプリケーションのライフサイクルで進む。工程１２９において、このバージョンが整合しない場合、ＳＡＭ３７は、ＤＲＡＭ３２に格納されたアプリケーションのより古いバージョンによって提供された任意のサービスを一時停止し、古いバージョン１３１をアンロードし、ＢＦＳ４１（図２）およびＢＦＳ５５（図３）から更新されたバージョンをダウンロードする。工程１３３のように、アプリケーションのより新しいバージョンをダウンロードした後、ＳＡＭ３７は、アプリケーションのライフサイクルのために上述のアプリケーションによって提供されるサービスを始動する。
【００６３】
ＳＡＭ３７は、チューナシステム２５の帯域外直交位相シフトキーイング（ＱＰＳＫ）チューナコンポーネントを使用して、ＢＦＳにわたってアプリケーションの更新されたバージョンをダウンロードすると同時にチューナシステム２５は、異なるサービスまたはアプリケーションにチューニングし得る。結果として、加入者がＤＲＡＭにおいて任意のアプリケーションを開始しようと試みる場合、ＤＨＣＴ１６は、アプリケーションの現在のバージョンを速やかに始動することを可能にし、ＤＨＣＴを強制的に待たせることなく、更新されたアプリケーションをダウンロードする。
【００６４】
上述のメモリ管理およびアプリケーションバージョン化プロセスは、論理機能を実現するための実行可能な命令の順序化されたリストを含むプログラムとして実現され得る。さらにプログラムは、命令実行システム、命令実行装置または命令実行デバイス（コンピュータベースのシステム、プロセッサを含むシステム、または他のシステム）、または命令実行システム、命令実行装置または命令実行システムからの命令をフェッチしその命令を実行し得る他のシステムによってまたはこれらと接続して使用するために、任意のコンピュータ読み出し可能媒体に組み込まれ得る。本明細書の文脈では、「コンピュータ読み出し可能媒体」は、命令実行システム、命令実行装置または命令実行デバイスによって、またはこれらと接続して使用するためにプログラムを含み、格納し、通信し、伝搬し、送信し得る任意の手段であり得る。例えば、コンピュータ読み出し可能媒体は、以下に限定されないが、電子、磁気、光、電磁気、赤外線、または半導体システム装置、デバイス、または伝播媒体であり得る。コンピュータ読み出し可能媒体のより詳細な例（完全ではないリスト）は、１以上のワイヤを有する電気接続（電子）と、ポータブルコンピュータディスケット（磁気）と、ランダムアクセスメモリ（ＲＡＭ）（磁気）と、読み出し専用メモリ（ＲＯＭ）（磁気）と、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭまたはフラッシュメモリ）（磁気）と、光ファイバ（光）と、ポータブルコンパクトディスク読み出し専用メモリ（ＣＤＲＯＭ）（光）とを含む。プログラムが、例えば紙または他の媒体の光スキャンによって電子的に取り込まれ、次いでコンパイルされ、解釈され、あるいは、必要ならば他の適切な方法によって処理され、次いでコンピュータメモリに格納され得るため、プログラムがプリントされると、コンピュータ読み出し可能媒体は、紙または他の適切な媒体であってもよいことに留意されたい。さらに、フローチャートにおける任意のプロセス記述またはブロックは、モジュール、セグメント、またはコードの部分を表すとして理解されるべきである。それらは、プロセスにおける特定の論理機能またはステップを実現するための１以上の実行可能な命令を含み、代替のインプリメンテーションが本発明の好適な実施形態の範囲内に含まれ、本発明の当業者に容易に理解されるように、含まれた機能性に応じて、上記で示され議論された順序（上述の機能性に応じて実質的に同時または逆の順序を含む）外でその機能が実行され得る。
【００６５】
本発明の上述の実施形態、特に任意の「好適な実施形態」は、インプリメンテーションの単なる可能な例に過ぎず、本発明の原理の明確な理解のために明示されるに過ぎないことを強調しておく。任意の改変および変更が本発明の原理の精神から実質的に逸脱することなく、本発明の上述の実施形態に対してなされ得る。このような改変および変更の全てが、開示の範囲および本発明の範囲内に含まれ上掲の請求の範囲によって保護されることが意図される。
【図面の簡単な説明】
【図１】
図１は、本発明の一つの実施形態に従ったケーブルテレビジョンシステムのブロック図である。
【図２】
図２は、図１で描かれている本発明の好ましい実施形態に従った、関連する装置の種々のメモリにおける選択されたＤＨＣＴコンポーネントおよびアプリケーションのブロック図である。
【図３】
図３は、ケーブルテレビジョンシステムのヘッドエンドの位置にある、選択されたコンポーネントおよびＤＨＣＴの中で選択された要素の層図を含む図１のケーブルテレビジョンシステムのブロック図である。
【図４】
図４は、図２で描かれるように、ＤＨＣＴでの実行のためにネットワークからインストールされたアプリケーションにおけるアプリケーションライフサイクルのフローチャートである。
【図５】
図５は、図２で描かれるように、ＤＨＣＴでの実行のためにネットワークからインストールされたアプリケーションにおけるアプリケーションライフサイクルのフローチャートである。
【図６】
図６は、アプリケーションをダウンロードして実行させるための充分なメモリ容量を割り付けるための、図２におけるＤＨＣＴによって実行されるメモリ管理プロセスのフローチャートである。
【図７】
図７は、アプリケーションをダウンロードして実行させるための充分なメモリ容量を割り付けるための、図２におけるＤＨＣＴによって実行されるメモリ管理プロセスのフローチャートである。
【図８】
図８は、ＤＨＣＴによって実行される各アプリケーションが利用できる最新バージョンでありそしてケーブルテレビジョンシステムによって支援されていることを確認するための、図２におけるＤＨＣＴによって実行されるアプリケーションバージョンプロセスのフローチャートである。
【図１】
2004511833.tif 000003
【図２】
2004511833.tif 000004
【図３】
2004511833.tif 000005
【図４】
2004511833.tif 000006
【図５】
2004511833.tif 000007
【図６】
2004511833.tif 000008
【図７】
2004511833.tif 000009
【図８】
2004511833.tif 000010
【国際公開パンフレット】
2004511833.tif 000011
2004511833.tif 000012
2004511833.tif 000013
2004511833.tif 000014
2004511833.tif 000015
2004511833.tif 000016
2004511833.tif 000017
2004511833.tif 000018
2004511833.tif 000019
2004511833.tif 000020
2004511833.tif 000021
2004511833.tif 000022
2004511833.tif 000023
2004511833.tif 000024
2004511833.tif 000025
2004511833.tif 000026
2004511833.tif 000027
2004511833.tif 000028
2004511833.tif 000029
2004511833.tif 000030
2004511833.tif 000031
2004511833.tif 000032
2004511833.tif 000033
2004511833.tif 000034
2004511833.tif 000035
2004511833.tif 000036
2004511833.tif 000037
2004511833.tif 000038
2004511833.tif 000039
2004511833.tif 000040
2004511833.tif 000041
2004511833.tif 000042
2004511833.tif 000043
2004511833.tif 000044
2004511833.tif 000045
2004511833.tif 000046
2004511833.tif 000047
2004511833.tif 000048
2004511833.tif 000049
2004511833.tif 000050
2004511833.tif 000051
2004511833.tif 000052
2004511833.tif 000053