(57)【要約】【課題】通信システムにおけるデバイスへのソフトウェアアップグレード通知の引き渡しに関する方法【解決手段】無線通信環境においてユニキャスト及びマルチキャスト通信技術を利用するユーザーデバイスに対してソフトウェアアップグレード通知を提供するのを容易にするシステム及び方法が説明される。ダウンロードを試みるか又はその通知を受信する前に所定のソフトウェア更新が前記ユーザーデバイスに関連するかどうかに関する決定を行うのを可能にすることによって帯域幅及び電力消費量が最小化される。さらに、バージョン番号及びソフトウェアアイデンティティの評価は、ユニキャストソフトウェア確認プロトコル又はマルチキャストソフトウェア確認プロトコルを採用するかどうかを決定するのを容易にする。ソフトウェアアップグレード情報は、予め決められた期間だけマルチキャストチャネルを通じて送信することもでき、その後にユーザーデバイスはユニキャスト確認プロトコルを開始してソフトウェアアップグレード情報を受信することができる。【選択図】図３
2009517926.tif 000002
【特許請求の範囲】
【請求項１】
無線通信環境においてソフトウェアアップグレード通知を提供する方法であって、
ソフトウェアバージョン情報をサーバーから受信することと、
ソフトウェアアップグレードがユーザーデバイスにとって利用可能であるかどうかを決定するための確認プロトコルを実行することと、
ソフトウェアアップグレード通知を受信するためのアクセスプロトコルを実行すること、とを具備する、方法。
【請求項２】
前記確認プロトコルは、サーバーと少なくとも１つのユーザーデバイスとの間におけるマルチキャスト接続を通じて実行されるプッシュ確認プロトコルである請求項１に記載の方法。
【請求項３】
マルチキャストチャネルを通じてソフトウェアアップグレード通知を送信することをさらに具備する請求項２に記載の方法。
【請求項４】
マルチキャストデータチャネルを通じて前記ソフトウェアバージョン情報を受信することをさらに具備する請求項２に記載の方法。
【請求項５】
前記通知において前記バージョン情報とともに受信されたソフトウェアＩＤが前記ユーザーデバイスに対応するかどうかを評価して前記受信されたソフトウェアバージョン情報が前記ユーザーデバイスに関連するかどうかを決定することをさらに具備する請求項４に記載の方法。
【請求項６】
前記ユーザーデバイスと前記サーバーとの間におけるポイントツーポイント接続を生成すること及びプル確認プロトコルを実行することをさらに具備する請求項１に記載の方法。
【請求項７】
前記ソフトウェアアップグレード情報を前記サーバーから要求することをさらに具備する請求項６に記載の方法。
【請求項８】
前記ソフトウェアバージョン情報を具備するサーバー応答を受信することをさらに具備する請求項７に記載の方法。
【請求項９】
前記サーバー応答内のバージョン番号が前記ユーザーデバイスに格納されたソフトウェアと関連づけられたバージョン番号よりも大きい場合はソフトウェアアップグレード通知を受信することをさらに具備する請求項８に記載の方法。
【請求項１０】
前記アクセスプロトコルは、定期的アクセスプロトコル、ユーザー開始アクセスプロトコル、トランザクションに基づくアクセスプロトコル、及びリリース時開始プロトコルのうちの少なくとも１つである請求項１に記載の方法。
【請求項１１】
前記アクセスプロトコルは、トークンに基づく手法をさらに具備し、クライアントトークン値が、マルチキャストチャネルにおいて定期的にアドバタイズされるサーバートークン値と比較される請求項１に記載の方法。
【請求項１２】
前記クライアントトークン値が有効でない場合は、プル確認プロトコルを実行することと、クライアントトークンを生成することと、前記クライアントトークン値を前記サーバートークン値と同じに設定すること、とをさらに具備する請求項１１に記載の方法。
【請求項１３】
前記クライアントトークン値は、前記サーバートークン値よりも大きいか又は等しいかどうかを決定することをさらに具備する請求項１１に記載の方法。
【請求項１４】
前記クライアントトークン値が前記サーバートークン値と等しいか又はより大きい場合は前記クライアントデバイスは最新のソフトウェアを有することを肯定応答することをさらに具備する請求項１３に記載の方法。
【請求項１５】
前記クライアントトークン値が前記サーバートークン値（モジュロｎ）よりも大きくなくさらに等しくない場合は、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にあるかどうかを決定することであって、サーバーは、ｍ（正の整数）の直近のサーバートークン値と関連づけられたソフトウェアアップグレード通知を送信し、ｎは、最大トークン値であること、をさらに具備する請求項１３に記載の方法。
【請求項１６】
前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にある場合は、プッシュ確認プロトコルを実行することと、前記クライアントトークン値を前記サーバートークン値と同じに設定すること、とをさらに具備する請求項１５に記載の方法。
【請求項１７】
前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にない場合は、プル確認プロトコルを実行することと、前記クライアントトークン値を前記サーバートークン値と同じに設定すること、とをさらに具備する請求項１５に記載の方法。
【請求項１８】
プッシュ確認プロトコルを予め決められた期間だけ実行し、プル確認プロトコルを後続させることによって前記ソフトウェアアップグレード通知を提供することをさらに具備する請求項１に記載の方法。
【請求項１９】
無線通信環境においてマルチキャスト及びユニキャスト接続を通じて通信するユーザーデバイスにソフトウェアアップグレード通知を提供するのを容易にする装置であって、
ソフトウェアバージョン情報を受信する受信機と、
確認プロトコル及びアクセスプロトコルを実行してソフトウェアアップグレード通知を入手するプロセッサと、を具備する、装置。
【請求項２０】
前記プロセッサは、トークンに基づくプロトコルを採用し、クライアントトークンがマルチキャストチャネルで定期的にアドバタイズされるサーバートークン値と比較され、前記クライアントトークンが前記ユーザーデバイスにおいて有効であるかどうかを決定する請求項１９に記載の装置。
【請求項２１】
前記プロセッサは、前記クライアントトークン値が有効でない場合は、プル確認プロトコルを実行し、クライアントトークンを生成し、前記クライアントトークン値を前記ソフトウェアバージョン情報とともに受信されたサーバートークン値と同じに設定する請求項２０に記載の装置。
【請求項２２】
前記プロセッサは、クライアントトークン値がサーバートークン値よりも大きいか又は等しいかどうかを決定する請求項１９に記載の装置。
【請求項２３】
前記プロセッサは、前記クライアントトークン値が前記サーバートークン値（モジュロｎ）よりも大きくなくさらに等しくない場合は、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にあるかどうかを決定し、サーバーは、ｍ（正の整数）の直近のサーバートークン値と関連づけられたソフトウェアアップグレード通知を送信し、ｎは、最大トークン値である請求項２２に記載の装置。
【請求項２４】
前記プロセッサは、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にある場合は、プッシュ確認プロトコルを実行し、前記クライアントトークン値を前記サーバートークン値と同じに設定する請求項２３に記載の装置。
【請求項２５】
前記プロセッサは、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にない場合は、プル確認プロトコルを実行し、前記クライアントトークン値を前記サーバートークン値と同じに設定する請求項２３に記載の装置。
【請求項２６】
プッシュ確認プロトコルを予め決められた期間だけ実行し、プル確認プロトコルを後続させることによって前記ソフトウェアアップグレード通知を提供することをさらに具備する請求項１９に記載の装置。
【請求項２７】
マルチキャスト及びユニキャスト接続の両方を通じてソフトウェアバージョン情報をサーバーから受信するための手段と、
ソフトウェアアップグレードがユーザーデバイスにとって利用可能であるかどうかを決定するための確認プロトコルを実行するための手段と、
ソフトウェアアップグレード通知を受信するためのアクセスプロトコルを実行するための手段と、を具備する無線通信装置。
【請求項２８】
前記アクセスプロトコルは、定期的アクセスプロトコル、ユーザー開始アクセスプロトコル、トランザクションに基づくアクセスプロトコル、及びリリース時開始プロトコルのうちの少なくとも１つである請求項２７に記載の装置。
【請求項２９】
トークンに基づくアクセスプロトコルを採用してクライアントトークンが前記ユーザーデバイスにおいて有効であるかどうかを決定するための手段をさらに具備する請求項２７に記載の装置。
【請求項３０】
前記クライアント値が存在しない場合は、ユニキャスト確認プロトコルを実行するための手段と、クライアントトークンを生成するための手段と、前記クライアントトークン値をサーバートークン値と同じに設定するための手段と、をさらに具備する請求項２９に記載の装置。
【請求項３１】
前記クライアントトークンが有効である場合は、クライアントトークン値がサーバートークン値よりも大きいか又は等しいかどうかを決定するための手段をさらに具備する請求項２９に記載の装置。
【請求項３２】
前記クライアントトークン値が前記サーバートークン値（モジュロｎ）よりも大きくなくさらに等しくない場合は、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にあるかどうかを決定するための手段であって、サーバーは、ｍ（正の整数）の直近のサーバートークン値と関連づけられたソフトウェアアップグレード通知を送信し、ｎは、最大トークン値である手段、をさらに具備する請求項３１に記載の装置。
【請求項３３】
前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にある場合は、マルチキャスト確認プロトコルを実行するための手段と、前記クライアントトークン値を前記サーバートークン値と同じに設定するための手段と、をさらに具備する請求項３２に記載の装置。
【請求項３４】
前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にない場合は、ユニキャスト確認プロトコルを実行するための手段と、前記クライアントトークン値を前記サーバートークン値と同じに設定するための手段と、をさらに具備する請求項３２に記載の装置。
【請求項３５】
マルチキャスト確認プロトコルを予め決められた期間だけ実行するための手段を採用し、ユニキャスト確認プロトコルを実行するための手段を後続
させることによって前記ソフトウェアアップグレード通知を提供するための手段をさらに具備する請求項２７に記載の装置。
【請求項３６】
コンピュータによって読み取り可能な媒体であって、
ソフトウェアバージョン情報を具備するオーバーヘッドメッセージをサーバーから受信するためのコンピュータによって実行可能な命令と、
ソフトウェアアップグレードがユーザーデバイスにとって利用可能であるかどうかを決定するための確認プロトコルを実行するためのコンピュータによって実行可能な命令と、
ソフトウェアアップグレード通知を受信するためのアクセスプロトコルを実行するためのコンピュータによって実行可能な命令と、を具備するコンピュータプログラムを有する、コンピュータによって読み取り可能な媒体。
【請求項３７】
前記確認プロトコルは、サーバーと少なくとも１つのユーザーデバイスとの間におけるマルチキャスト接続を通じて実行されるプッシュ確認プロトコルである請求項３６に記載のコンピュータによって読み取り可能な媒体。
【請求項３８】
マルチキャストデータチャネルを通じて前記ソフトウェアバージョン情報を受信するための命令と、前記バージョン情報とともに受信されたソフトウェアＩＤが前記ユーザーデバイスに関連するかどうかを決定するための命令と、をさらに具備する請求項３７に記載のコンピュータによって読み取り可能な媒体。
【請求項３９】
前記ユーザーデバイスと前記サーバーとの間においてポイントツーポイント接続を生成してプル確認プロトコルを実行するための命令と、前記ソフトウェアアップグレード情報を前記サーバーに要求するための命令と、前記ソフトウェアバージョン情報を具備するサーバー応答を受信するための命令と、前記サーバー応答内のバージョン番号が前記ユーザーデバイスに格納されたソフトウェアと関連づけられたバージョン番号よりも大きい場合にソフトウェアアップグレード通信を受信するための命令と、をさらに具備する請求項３６に記載のコンピュータによって読み取り可能な媒体。
【請求項４０】
前記アクセスプロトコルは、定期的アクセスプロトコル、ユーザー開始アクセスプロトコル、トランザクションに基づくアクセスプロトコル、及びリリース時開始プロトコルのうちの少なくとも１つである請求項３６に記載のコンピュータによって読み取り可能な媒体。
【請求項４１】
トークンに基づくアクセスプロトコルを採用し、前記ユーザーデバイスにおいてクライアントトークンが有効であるかどうかを決定するための命令をさらに具備する請求項３６に記載のコンピュータによって読み取り可能な媒体。
【請求項４２】
前記クライアント値が有効でない場合は、プル確認プロトコルを実行するための命令と、クライアントトークンを生成するための命令と、前記クライアントトークン値をサーバートークン値と同じに設定するための命令と、をさらに具備する請求項４１に記載のコンピュータによって読み取り可能な媒体。
【請求項４３】
前記クライアントトークンが有効である場合は、クライアントトークン値がサーバートークン値よりも大きいか又は等しいかどうかを決定するための命令をさらに具備する請求項４１に記載のコンピュータによって読み取り可能な媒体。
【請求項４４】
前記クライアントトークン値が前記サーバートークン値（モジュロｎ）よりも大きくなくさらに等しくない場合は、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にあるかどうかを決定するための命令であって、サーバーは、ｍ（正の整数）の直近のサーバートークン値と関連づけられたソフトウェアアップグレード通知を送信し、ｎは、最大トークン値である命令、をさらに具備する請求項４３に記載のコンピュータによって読み取り可能な媒体。
【請求項４５】
前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にある場合は、プッシュ確認プロトコルを実行するための命令と、前記クライアントトークン値を前記サーバートークン値と同じに設定するための命令と、をさらに具備する請求項４４に記載のコンピュータによって読み取り可能な媒体。
【請求項４６】
前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にない場合は、プル確認プロトコルを実行するための命令と、前記クライアントトークン値を前記サーバートークン値と同じに設定するための命令と、をさらに具備する請求項４４に記載のコンピュータによって読み取り可能な媒体。
【請求項４７】
プッシュ確認プロトコルを予め決められた期間だけ実行し、プル確認プロトコルを後続させることによって前記ソフトウェアアップグレード通知を提供するための命令をさらに具備する請求項３６に記載のコンピュータによって読み取り可能な媒体。
【請求項４８】
プロセッサであって、
無線通信環境においてスループットを向上させるための命令であって、  
ソフトウェアバージョン情報を有するオーバーヘッドメッセージをサーバーから受信することと、
ソフトウェアアップグレードがユーザーデバイスにとって利用可能であるかどうかを決定するための確認プロトコルを実行することと、
ソフトウェアアップグレード通知を受信するためのアクセスプロトコルを実行すること、とを具備する命令、を実行するプロセッサ。
【請求項４９】
前記確認プロトコルは、サーバーと少なくとも１つのユーザーデバイスとの間におけるマルチキャストチャネルを通じて実行されるマルチキャスト確認プロトコルである請求項４８に記載のプロセッサ。
【請求項５０】
前記命令は、ポイントツーポイント接続を通じてユニキャスト確認プロトコルをさらに実行し、ソフトウェアバージョン情報を前記サーバーに要求し、前記ソフトウェアバージョン情報を具備するサーバー応答を受信し、前記サーバー応答内のバージョン番号が前記ユーザーデバイスに格納されたソフトウェアと関連づけられたバージョン番号よりも大きい場合にソフトウェアアップグレード通知を受信する請求項４８に記載のプロセッサ。
【請求項５１】
前記命令は、トークンに基づくアクセスプロトコルを実装することと、前記ユーザーデバイスにおいてクライアントトークンが有効であるかどうかを決定すること、とをさらに具備する請求項４８に記載のプロセッサ。
【請求項５２】
前記命令は、前記クライアント値が有効でない場合は、ユニキャスト確認プロトコルを実行することと、クライアントトークンを生成することと、前記クライアントトークン値をサーバートークン値と同じに設定すること、とをさらに具備する請求項５１に記載のプロセッサ。
【請求項５３】
前記命令は、前記クライアントトークンが有効である場合は、クライアントトークン値がサーバートークン値よりも大きいか又は等しいかどうかを決定することをさらに具備する請求項５１に記載のプロセッサ。
【請求項５４】
前記命令は、前記クライアントトークン値が前記サーバートークン値（モジュロｎ）よりも大きくなくさらに等しくない場合は、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にあるかどうかを決定することであって、サーバーは、ｍ（正の整数）の直近のサーバートークン値と関連づけられたソフトウェアアップグレード通知を送信し、ｎは、最大トークン値であること、をさらに具備する請求項５３に記載のプロセッサ。
【請求項５５】
前記命令は、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にある場合は、マルチキャスト確認プロトコルを実行することと、前記クライアントトークン値を前記サーバートークン値と同じに設定すること、とをさらに具備する請求項５４に記載のプロセッサ。
【請求項５６】
前記命令は、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にない場合は、ユニキャスト確認プロトコルを実行することと、前記クライアントトークン値を前記サーバートークン値と同じに設定すること、とをさらに具備する請求項５４に記載のプロセッサ。
【請求項５７】
前記命令は、マルチキャスト確認プロトコルを予め決められた期間だけ実行することによって前記ソフトウェアアップグレード通知を提供することと、前記予め決められた期間が経過後に前記ユーザーデバイスがユニキャスト確認プロトコルを開始するのを可能にすること、とをさらに具備する請求項４８に記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
３５Ｕ．Ｓ．Ｃ．§１１９に基づく優先権の主張
本特許出願は、“METHODS AND APPARATUS DELIVERY OF SOFTWARE UPGRADE NOTIFICATION TO DEVICES IN COMMUNICATION SYSTEMS”（通信システムにおけるデバイスへのソフトウェアアップグレード通知の引き渡しに関する方法及び装置）という題名を有し、本明細書において参照されることによってその全体が本明細書に組み入れられている米国仮特許出願一連番号 ６０／７３９，８７３(出願日:  ２００５年１１月２３日)に対する優先権を主張するものである。
【０００２】
以下の説明は、一般的には、無線通信に関するものである。以下の説明は、より具体的には、無線通信環境においてユニキャスト及びマルチキャストネットワークを採用するデバイスに関するソフトウェアアップグレード通知を容易にすることに関するものである。
【背景技術】
【０００３】
無線通信システムは、世界中の大多数の人々が通信する上での非常に有力な手段になっている。無線通信デバイスは、消費者のニーズを満たすこと及びポータビリティと利便性を向上させることを目的としてますます小型化しかつ強力になってきている。携帯電話等のモバイルデバイスにおける処理電力の増大が、無線ネットワーク送信システムに対する要求の増大に結びついている。該システムは、典型的には、該システムを通じて通信する携帯電話ほど簡単には更新されない。モバイルデバイスの能力が拡大するのに従い、無線デバイスの新しい能力及び改良された能力を完全に利用するのを容易にするような形で旧式の無線ネットワークシステムを維持するのが困難になる可能性がある。
【０００４】
（例えば、周波数分割、時分割、及び符号分割技術を採用する）典型的無線通信ネットワークは、カバレッジエリアを提供する１つ以上の基地局と、前記カバレッジエリア内においてデータを送信及び受信することができる１つ以上のモバイル（例えば、無線）端末と、を含む。典型的基地局は、ブロードキャスト、マルチキャスト、及び／又はユニキャストサービスに関する複数のデータストリームを同時に送信することができ、データストリームは、モバイル端末にとっての独立した受信対象であることができるデータの流れである。該基地局のカバレッジエリア内のモバイル端末は、複合ストリームによって搬送される１つの、２つ以上の又はすべてのデータストリームを受信することに関心を有することができる。同様に、モバイル端末は、基地局又は他のモバイル端末にデータを送信することができる。基地局とモバイル端末との間又はモバイル端末間における該通信は、チャネル変動及び／又は干渉電力の変動に起因して劣化する可能性がある。
【０００５】
ソフトウェアアップグレード確認は、有線通信環境においては、例えばソフトウェアアプリケーションのリリース時点で、又はユーザーが開始することによって、例えばアプリケーションが指定されたサーバーへのユニキャスト接続を確立して利用可能なソフトウェアアップグレードが存在するかどうか確認するときに、実行することができる。しかしながら、今日のモバイルデバイスは、無線ネットワークを通じてソフトウェアをダウンロードすることが可能であり、ソフトウェアアップグレード通知を受けるためにシステムにハードワイヤ接続する必要がない。従って、該無線ネットワークシステムにおけるスループットを向上させるシステム及び／又は方法が必要である。
【発明の開示】
【発明の概要】
【０００６】
以下は、１つ以上の実施形態についての基本的な理解を可能にするためにこれらの実施形態の単純化された要約を示すものである。この要約は、すべての企図されている実施形態を広範囲にわたって概説したものではなく、全実施形態の主要な又は極めて重要な要素を識別すること及びいずれかの又はすべての実施形態の適用範囲を詳細に説明することのいずれも意図されていない。以下の説明の唯一の目的は、後述される発明を実施するための最良の形態の準備段階として１つ以上の実施形態の幾つかの概念を単純な形で提示することである。
【０００７】
本明細書において提示される様々な側面は、マルチキャスト（ブロードキャスト）ネットワーク及びユニキャストネットワークを利用するデバイス内のアプリケーションに関するソフトウェアアップグレード通知を提供することに関するものである。これらの２つの型のネットワーク（マルチキャスト及びユニキャスト）は、有線又は無線であることができる。前記アプリケーションの一例は、利用可能な２つの型のネットワーク、すなわち（１）マルチキャスト（ブロードキャスト）ネットワークとしての順方向リンク専用（ＦＬＯ）及び（ｉｉ）ユニキャストネットワークとしてのＣＤＭＡ  １ｘＥＶ−ＤＯ、を有する順方向リンク専用（ＦＬＯ）システムである。典型的には、ソフトウェアアップグレードは、頻繁には行われない。しかしながら、ソフトウェアは、特長の向上、バグのフィックス、セキュリティ侵害等の極めて重要な理由でアップグレードされることがあるため、デバイスはソフトウェアアップグレードに関して最新の状態を維持する必要がある。本明細書において提示される側面は、無線ネットワーク内のデバイスへのあらゆる型の頻繁な、頻繁でない及び／又は極めて重要な情報の引き渡しに対して適用することができる。様々な側面は、消費資源及びサーバー負荷を最小限にし、ソフトウェアアップグレード通知を素早くデバイスに引き渡し、前記デバイスが前記ネットワークに接続されるときに常にソフトウェアアップグレード通知に関して最新の状態であることができるようにするのを容易にする。
【０００８】
一側面により、無線通信環境においてソフトウェアアップグレード通知を提供する方法は、ソフトウェアバージョン情報をサーバーから受信することと、ソフトウェアアップグレードがユーザーデバイスにとって利用可能であるかを決定するための確認プロトコルを実行することと、ソフトウェアアップグレード通知を受信するためのアクセスプロトコルを実行すること、とを具備することができる。前記方法は、マルチキャストチャネルを通じてソフトウェアアップグレード通知を送信することをさらに具備することができる。前記確認プロトコルは、サーバーと少なくとも１つのユーザーデバイスとの間におけるマルチキャスト接続を通じて実行される“プッシュ”確認プロトコルであることができ、マルチキャストデータチャネルを通じて前記ソフトウェアバージョン情報を受信することと、前記バージョン情報とともに受信されたソフトウェアＩＤが前記ユーザーデバイスに対応するかどうかを評価して前記受信されたソフトウェアバージョン情報が前記ユーザーデバイスに関連するかどうかを決定すること、とを具備することができる。前記確認プロトコルは、前記ユーザーとの間におけるポイントツーポイント接続を生成することと、前記ソフトウェアアップグレード情報を前記サーバーに要求することと、前記ソフトウェアバージョン情報を具備するサーバー応答を受信することと、前記サーバー応答内のバージョン番号が前記ユーザーデバイスに格納されたソフトウェアと関連づけられたバージョン番号よりも大きい場合にソフトウェアアップグレード通信を受信すること、とを具備する“プル”確認プロトコルであることもできる。前記方法は、トークンに基づくアクセスプロトコルを採用して前記ユーザーデバイスにおいてクライアントトークンが有効であるかどうかを決定することと、前記クライアント値が有効でない場合はプル確認プロトコルを実行することと、クライアントトークンを生成することと、前記クライアントトークン値をサーバートークン値と同じに設定することと、前記クライアントトークンが有効である場合はクライアントトークン値がサーバートークン値（モジュロｎ）よりも大きいか又は等しいかどうかを決定すること、とをさらに具備することができる。さらに、前記方法は、前記クライアントトークン値が前記サーバートークン値（モジュロｎ）よりも大きくなくさらに等しくない場合は、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にあるかどうかを決定し、前記サーバーは、ｍ（正の整数）の直近のサーバートークン値と関連づけられたソフトウェアアップグレード通知を送信し、ｎは、最大トークン値であること、を具備することができる。前記方法は、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間である場合はプッシュ確認プロトコルを実行すること及び前記クライアントトークン値を前記サーバートークン値と同じに設定することと、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にない場合はプル確認プロトコルを実行すること及び前記クライアントトークン値を前記サーバートークン値と同じに設定すること、とをさらに具備することができる。
【０００９】
他の側面により、無線通信環境においてマルチキャスト及びユニキャスト接続を通じて通信するユーザーデバイスにソフトウェアアップグレード通知を提供するのを容易にする装置は、ソフトウェアバージョン情報を受信する受信機と、確認プロトコル及びアクセスプロトコルを実行してソフトウェアアップグレード通知を入手するプロセッサと、を具備することができる。前記プロセッサは、前記方法に関して上述されるように、プッシュ及びプル確認プロトコルのいずれか又は両方を実行することができる。例えば、前記プロセッサは、前記ユーザーデバイスにおいてクライアントトークンが有効であるかどうかを決定することができ、前記クライアントトークン値をサーバートークン値等と比較していずれの確認プロトコルを利用するかを決定することができる。さらに、前記ソフトウェアアップグレード通知は、プッシュ確認プロトコルを予め決められた期間だけ使用し、その後にプル確認プロトコルを後続させることによって実行することができる。
【００１０】
他の側面により、無線通信装置は、マルチキャスト及びユニキャスト接続の両方を通じてサーバーからソフトウェアバージョン情報を受信するための手段と、ソフトウェアアップグレードがユーザーデバイスにとって利用可能であるかどうかを決定するための確認プロトコルを実行するための手段と、ソフトウェアアップグレード通知を受信するためのアクセスプロトコルを実行するための手段と、を具備することができる。前記装置は、トークンに基づくアクセスプロトコルを採用して前記ユーザーデバイス内においてクライアントトークンが有効であるかどうかを決定するための手段と、前記クライアント値が有効でない場合はユニキャスト確認プロトコルを実行するための手段と、クライアントトークンを生成するための手段と、前記クライアント値をサーバートークン値と同じに設定するための手段と、をさらに具備することができる。前記装置は、前記クライアントトークンが有効である場合は、クライアントトークン値がサーバートークン値（モジュロｎ）よりも大きいか又は等しいかどうかを決定するための手段と、前記クライアントトークン値が前記サーバートークン値（モジュロｎ）よりも大きくなくさらに等しくない場合は、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｍ）と前記サーバートークン値−１（モジュロｎ）の間にあるかどうかを決定するための手段であって、前記サーバーは、ｍ（正の整数）の直近のサーバートークン値と関連づけられたソフトウェアアップグレード通知を送信し、ｎは、最大トークン値である手段と、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にある場合はマルチキャスト確認プロトコルを実行するための手段及び前記クライアントトークン値を前記サーバートークン値と同じに設定するための手段と、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にない場合はユニキャスト確認プロトコルを実行するための手段及び前記クライアントトークン値を前記サーバートークン値と同じに設定するための手段と、をさらに具備することができる。さらに加えて、前記装置は、マルチキャスト確認プロトコルを予め決められた期間だけ実行するための手段を採用し、ユニキャスト確認プロトコルを実行するための手段を後続させることによって前記ソフトウェアアップグレード通知を提供するための手段を具備することができる。
【００１１】
さらに他の側面は、ソフトウェアバージョン情報を具備するオーバーヘッドメッセージをサーバーから受信するためのコンピュータによって実行可能な命令と、ソフトウェアアップグレードがユーザーデバイスにとって利用可能であるかどうかを決定するための確認プロトコルを実行するためのコンピュータによって実行可能な命令と、ソフトウェアアップグレード通知を受信するためのアクセスプロトコルを実行するためのコンピュータによって実行可能な命令と、を具備するコンピュータプログラムを有するコンピュータによって読み取り可能な媒体に関するものである。前記確認プロトコルは、マルチキャスト確認プロトコル及び／又はユニキャスト確認プロトコルであることができる。前記コンピュータによって読み取り可能な媒体は、いずれの確認プロトコルを実行すべきであるかを決定するための命令をさらに有することができ、クライアントトークン値を解析するための命令と、前記クライアントトークン値をサーバートークン値と比較するための命令と、を含む。
【００１２】
さらなる側面は、無線通信環境においてスループットを向上させるための命令を実行するプロセッサに関するものであり、前記命令は、ソフトウェアバージョン情報を有するオーバーヘッドメッセージをサーバーから受信することと、ソフトウェアアップグレードがユーザーデバイスにとって利用可能であるかどうかを決定するための確認プロトコルを実行することと、ソフトウェアアップグレード通知を受信するためのアクセスプロトコルを実行すること、とを具備する。前記確認プロトコルは、クライアントトークン値及びサーバートークン値に関する一連の決定に従い、マルチキャスト確認プロトコル及びユニキャスト確認プロトコルのいずれか又は両方であることができる。さらに、ソフトウェアアップグレード通知は、マルチキャストプロトコルを予め決められた期間だけ用いることによってユーザーデバイスに提供することができ、その後は、前記ユーザーデバイスは、ユニキャストプロトコルを開始してアップグレード通知情報を入手することができる。
【００１３】
上記の目的及び関連する目的を完遂させた場合における前記１つ以上の実施形態は、以下において十分に説明され、請求項において特に強調される特長を具備する。以下の発明を実施するための最良の形態及び添付図面は、前記１つ以上の実施形態の一定の例示的側面を詳述するものである。しかしながら、これらの側面は、様々な実施形態の原理を採用することができる様々な方法のうちのほんのわずかを示しており、前記説明される実施形態は、これらのすべての側面及びその同等の側面を含むことが意図されている。
【発明を実施するための最良の形態】
【００１４】
次に、図面を参照して様々な実施形態が説明され、同一のものについては図面全体に渡って同一の参照符号を付すこととする。以下の説明では、説明の目的上、１つ以上の実施形態について徹底的に理解できるようにするために数多くの具体的な詳細が示される。しかしながら、該実施形態は、これらの具体的な詳細なしで実践できることが明確であろう。その他の事例においては、１つ以上の実施形態に関する説明を容易にするためによく知られた構造及びデバイスがブロック図形で示される。
【００１５】
本出願において用いられる「構成要素」、「システム」等の用語は、コンピュータに関連するエンティティ、ハードウェア、ソフトウェア、実行中のソフトウェア、ファームウェア、ミドルウェア、マイクロコード、及び／又はそのいずれかの組み合わせを指すことが意図される。例えば、構成要素は、プロセッサ上で実行中のプロセス、プロセッサ、オブジェクト、エクセキュータブル（ｅｘｅｃｕｔａｂｌｅ）、実行スレッド、プログラム、及び／又はコンピュータであることができるが、これらに限定されない。プロセス及び／又は実行スレッド内には１つ以上の構成要素が常駐することができ、構成要素は、１つのコンピュータに局在化する及び／又は２つ以上のコンピュータ間で分散させることができる。さらに、これらの構成要素は、様々なデータ構造が格納されている様々なコンピュータ読み取り可能媒体から実行可能である。これらの構成要素は、ローカル及び／又は遠隔プロセスによって、例えば１つ以上のデータパケット（例えば、ローカルシステム又は分散されたシステム内の他の構成要素と及び／又はインターネット等のネットワークを通じて信号を用いてその他のシステムと対話中の構成要素からのデータ）を有する信号に従って通信することができる。さらに、当業者によって理解されることになるように、本明細書において説明されるシステムの構成要素は、説明される様々な側面、最終目標、利点等を達成させるのを容易にするために再配置すること及び／又は追加の構成要素によって補完することが可能であり、さらに所定の図において示される精密な構成に限定されない。
【００１６】
さらに、本明細書においては、様々な実施形態が加入者局と関連させて説明される。加入者局は、システム、加入者ユニット、移動局、モバイル、遠隔局、アクセスポイント、遠隔端末、アクセス端末、ユーザー端末、ユーザーエージェント、ユーザーデバイス、又はユーザー装置と呼ぶことも可能である。加入者局は、携帯電話、コードレスフォン、セッション開始プロトコル（ＳＩＰ）フォン、無線ローカルループ（ＷＬＬ）局、パーソナルデジタルアシスタント（ＰＤＡ）、無線接続能力を有するハンドヘルドデバイス、又は無線モデムに接続されたその他の処理装置であることができる。
【００１７】
さらに、本明細書において説明される様々な側面又は特長は、標準的なプログラミング及び／又はエンジニアリング技術を用いて製造方法、製造装置、又は製造品として実装することができる。本明細書において用いられる「製造品」という表現は、コンピュータによって読み取り可能なデバイス、キャリヤ、又は媒体を包含することが意図されている。例えば、コンピュータによって読み取り可能な媒体は、磁気記憶装置（例えば、ハードディスク、フロッピー（登録商標）ディスク、磁気ストリップ）と、光学ディスク（例えば、コンパクトディスク（ＣＤ）、デジタルバーサタイルディスク（ＤＶＤ））と、スマートカードと、フラッシュメモリデバイス（例えば、カード、スティック、キードライブ）と、を含むことができるが、これらに限定されない。さらに、本明細書において説明される様々な記憶媒体は、情報を格納するための１つ以上のデバイス及び／又はその他の機械によって読み取り可能な媒体を表すことができる。“機械によって読み取り可能な媒体”という表現は、限定することなしに、無線チャネルと、命令及び／又はデータを格納、内蔵、及び／又は搬送することができるその他の様々な媒体と、を含むことができる。
【００１８】
今度は図１に関して、無線ネットワーク通信システム１００は、本明細書において提示される様々な実施形態に従って示される。システム１００は、１つ以上のセクターにおいて互いに及び／又は１つ以上のモバイルデバイスとの間で無線通信信号を受信する、送信する、繰り返す等の１つ以上の基地局１０２を具備することが可能である。各基地局１０２は、送信機チェーンと、受信機チェーンと、を具備することができ、当業者によって明確に理解されるように、これらのチェーンの各々は、信号の送信及び受信と関連づけられた複数の構成要素（例えば、プロセッサ、変調器、マルチプレクサ、復調器、デマルチプレクサ、アンテナ等）を具備することができる。モバイルデバイス１０４は、例えば、携帯電話、スマートフォン、ラップトップ、ハンドヘルド通信デバイス、ハンドヘルド計算デバイス、衛星無線、全地球測位システム、ＰＤＡ、及び／又は無線ネットワーク１００を通じて通信するためのその他の適切なデバイスであることができる。システム１００は、後続する図に関して説明されるように、無線通信環境においてソフトウェアのアップグレードをユーザーデバイスに通知するのを容易にするために本明細書において説明される様々な側面と関係させて採用することができる。
【００１９】
本明細書において提示される様々な側面により、以下の例は、非常に多数のユーザーデバイスがソフトウェアアップグレード通知アプリケーションを採用し、非常に多数のソフトウェアクラスに関する更新通知を希望するシナリオに関するものである。ある１つのソフトウェアバージョンが２つのコンポーネントＸ及びＹを具備し、このためソフトウェアのクラスはＳＯＦＴＷＡＲＥ＿ＩＤ（Ｘ）として説明され、ソフトウェアの一連番号は（Ｙ）によって定義されるとする。異なるオペレーティングシステム（ＯＳ）型、異なるネットワークプロバイダ、及び異なるデバイス型に依存してアプリケーションの複数のクラスのソフトウェアが存在する可能性がある。従って、Ｘは、あらゆるレベルの階層、例えばＸ＝ａ，ｂ，ｃを具備することができ、ここで、“ａ”は、ＯＳ＿ｔｙｐｅ  ＩＤ、“ｂ”は、ネットワークプロバイダＩＤ、及び“ｃ”は、デバイス型ＩＤである。一連番号（Ｙ）（例えば、バージョン３、バージョン５．２等）は、所定のＳＯＦＴＷＡＲＥ＿ＩＤに関して利用可能な新しいソフトウェアが存在するときに増やされる。
【００２０】
ソフトウェアアップグレード通知に関して、デバイスの観点から２つの設計要因を考慮することができる。すなわち、（１）情報を入手する方法及び（２）情報を入手する時間である。アップグレード情報が入手される方法は、“確認”プロトコルの実行に関連し、そのタイミングは、アクセスプロトコルの実行に関連する。本明細書において説明されるように、１つ以上の確認プロトコルを複数のアクセスプロトコルのうちのいずれかと組み合わせることができる。この方法により、本明細書において提示されるシステム及び装置は、長時間の帯域幅を消費するソフトウェアアップグレードブロードキャストの必要性を低減させその一方でネットワーク上のユーザーデバイスへのソフトウェアアップグレードの提供を容易にすることによってネットワーク資源を保存することができる。
【００２１】
図２乃至５に関して、ソフトウェアアップグレードをユーザーデバイスに通知することに関連する方法が例示される。本明細書において説明される方法は、ＦＤＭＡ環境、ＯＦＤＭＡ環境、ＣＤＭＡ環境、ＷＣＤＭＡ環境、ＴＤＭＡ環境、ＳＤＭＡ環境、又はその他のあらゆる適切な無線環境において実行することができる。説明を単純化する目的上、これらの方法は、一連の行為として示されて説明されている一方で、幾つかの行為は、１つ以上の実施形態により、本明細書において示されて説明されているのとは異なる順序で及び／又はその他の行為と同時並行して生じることができるため、これらの方法は行為の順序によって制限されないことが理解及び評価されるべきである。例えば、方法は、代わりに例えば状態図内におけるように一連の相関状態又はイベントとして表すことが可能であることを当業者は理解及び評価するであろう。さらに１つ以上の側面により方法を実装するためにすべての例示されている行為が要求されるわけではない。
【００２２】
図２は、１つ以上の側面により、無線通信環境においてソフトウェアアップグレードがユーザーデバイスにとって利用可能であるかどうかを決定するために“プッシュ”確認プロトコルを実行するための方法２００を示す。本明細書において用いられる“アップグレード”及び“更新”は、同義であり、ユーザーデバイス上に現在存在する特定のソフトウェアのバージョンよりも新しいバージョンを表す互換可能な表現であることが意図されている。“プッシュ”は、“１つを数多くにブロードキャストする”、すなわちマルチキャストブロードキャストシステムを表すことが意図される。従って、プッシュメカニズムは、情報がサーバーから複数のデバイスにプッシュされるブロードキャスト（マルチキャスト）ネットワークを利用する。（例えば、以下において図３に関して詳述されるような）“プル”メカニズムにおいては、デバイスは、サーバーとのポイントツーポイント通信を個々に開始させ、サーバーは、ユニキャストネットワークを用いて対応する（例えばデバイスは、サーバーから情報を“プル”する）。
【００２３】
方法２００により、ユーザーデバイスは、２０２において、専用マルチキャストデータチャネルを通じてサーバーからソフトウェアバージョン情報を受信することができる。サーバーは、ソフトウェアクラス全体に関するソフトウェアバージョンに関する直近の一連番号をデータチャネルにおいて継続的に送信することができる。様々な側面により一連番号及び／又はバージョン情報の範囲を詳述するためにＳＯＦＴＷＡＲＥ＿ＩＤを利用することができる。例えば、ＳＯＦＴＷＡＲＥ＿ＩＤは、メッセージの“アドレス”として採用することができ、該デバイスのみが、特定のＳＯＦＴＷＡＲＥ＿ＩＤに“アドレッシング”されたメッセージを受信する。従って、２０４において、特定のＳＯＦＴＷＡＲＥ＿ＩＤを有するデバイスは、データチャネルにチューニング（ｔｕｎｅ  ｉｎ）し、そのＳＯＦＴＷＡＲＥ＿ＩＤに対応する最新の一連番号を見つけるまでデータチャネル上の信号を評価する。２０６において、データチャネルにおいてアドバタイズされた最新の一連番号がデバイスの現在のソフトウェア一連番号よりも大きいかどうかに関する決定が行われる。より大きい場合は、ソフトウェアアップグレード通知をユーザーデバイスに引き渡すべきである。２０８において、ユーザーデバイスは、次にアクセスプロトコルを実行してソフトウェアアップグレードを入手することができる。
【００２４】
図３は、１つ以上の側面により、無線通信環境においてソフトウェアアップグレードがユーザーデバイスにとって利用可能であるかどうかを決定するために“プル”確認プロトコルを実行する方法３００を示す。プル確認プロトコルは、サーバーとユーザーデバイスとの間におけるポイントツーポイント通信リンクを具備する。デバイスは、３０２においてサーバーへのポイントツーポイント（ユニキャスト）接続を個々に構築することができる。デバイスは、３０４において、ソフトウェアアップグレード情報をサーバーから“プル”するために該情報に関する要求メッセージを送信することができる。要求メッセージは、デバイスのＳＯＦＴＷＡＲＥ＿ＩＤと、デバイスにおける直近のソフトウェアバージョンを示す一連番号と、を含むことができる。３０６において、デバイスは、応答メッセージをサーバーから受信することができる。一側面により、応答メッセージは、３０４においてデバイスによって提供された特定のＳＯＦＴＷＡＲＥ＿ＩＤに関する特定のソフトウェアアプリケーションと関連づけられた最新の一連番号を具備することができる。該場合においては、デバイスは、（例えば、応答メッセージにおいて受信された一連番号がデバイスの現在のソフトウェアの一連番号よりも大きいかどうかを決定することによって）ソフトウェアアップグレードが必要であるかどうかを決定することができる。他の側面により、サーバーは、最新のソフトウェア一連番号がデバイスの示された一連番号よりも大きいかどうかを決定することができ、及び３０６において応答メッセージでソフトウェアアップグレード通知を送信することができる（例えば、“アップグレードが必要”又は“アップグレードが不要”等）。いずれの場合も、３０８において、デバイスは、アップグレード通知を受信することができる。
【００２５】
方法２００及び３００は、複数のアクセス方法のうちのいずれとも組み合わせることができる。例えば、定期的アクセス方法を採用することができ、デバイスは、ソフトウェアアップグレードを利用可能であるかどうかを定期的に確認する。各ソフトウェアクラスに関して、確認期間（例えば、１日、５日、７日、３０日等）が関連づけられ、異なるソフトウェアクラスに関して異なることができる。他のアクセス方法により、デバイスは、アプリケーションがリリースされるごとにアップグレードの有無を確認することができる。さらに他の側面により、ユーザーは、ソフトウェア確認を開始するのを許可することができる。さらに他の側面は、トランザクションに基づくアクセスプロトコルに関連し、デバイスは、デバイスとサーバーとの間におけるトランザクションに基づいて確認プロトコルを実行する。さらなる側面は、図４においてさらに詳細に後述されるように、最新のシステム状態情報を搬送するために“オーバーヘッド”チャネルと呼ばれる専用マルチキャストチャネルを採用する“トークン”アクセス方法に関連する。
【００２６】
図４は、１つ以上の側面により、ユーザーデバイスがソフトウェアアップグレード通知を受信するのを許可することを容易にする方法４００を示す。方法４００は、トークンに基づく手法であり、クライアントトークン値が、マルチキャストチャネルにおいて定期的にアドバタイズされるサーバートークン値と比較される。４０２において、デバイスは、サーバーが最新のソフトウェアバージョン又は一連番号、デバイスＩＤ情報等を含むことができるオーバーヘッド情報を継続的に送信するオーバーヘッドチャネルにチューニングし、オーバーヘッドメッセージを受信することができる。デバイスは、定期的にオーバーヘッドチャネルにチューニングすることができる。オーバーヘッドチャネルは、その他のデータチャネルとは対照的に、アプリケーションの動作に関してより少量であるが極めて重要な情報を含む。従って、ユーザーデバイスがこのチャネルにチューニングしてオーバーヘッドを読み取るために必要な資源は、デバイスの観点からは相対的に少ない。４０４において、クライアントトークン（ＣＬＩ＿ＴＯＫＥＮ）が存在するかどうかに関する決定を行うことができる。一側面により、デバイスは、整数ＣＬＩ＿ＴＯＫＥＮ値（例えば、１バイトの整数値又はその他の何らかの適切な値）をローカルで維持する。最初は、ＣＬＩ＿ＴＯＫＥＮは存在していない。しかしながら、オーバーヘッドメッセージを受信した時点で、４０４において決定されるようにデバイス内にＣＬＩ＿ＴＯＫＥＮが存在していない場合は、デバイスは、４０６において、ソフトウェアアップグレードの有無の確認を行う。さらに、４０６において、デバイスは、ＣＬＩ＿ＴＯＫＥＮを生成し、オーバーヘッドチャネル内のＳＶＲ＿ＴＯＫＥＮと同じに設定することができる。
【００２７】
サーバーは、整数ＳＶＲ＿ＴＯＫＥＮ値（例えば、１バイト又はその他の何らかの適切な値）を維持する。限定することなしに、１バイト例により、ＳＶＲ＿ＴＯＫＥＮ値は、新しいソフトウェアアップグレードのリリース時に０から１モジュロ２５６だけ増加させることができる。ＳＶＲ＿ＴＯＫＥＮ値は、ＯＶＥＲＨＥＡＤチャネルで継続的にアドバタイズすることができる。４０４においてＣＬＩ＿ＴＯＫＥＮが存在する場合は、デバイスは、４０８において、ＣＬＩ＿ＴＯＫＥＮがＳＶＲ＿ＴＯＫＥＮと等しいかどうかに関する決定を行うことができる。ＣＬＩ＿ＴＯＫＥＮ値がＳＶＲ＿ＴＯＫＥＮ値よりも小さい場合は、デバイスは、ソフトウェアアップグレードの有無の確認を行い、４１２においてＣＬＩ＿ＴＯＫＥＮ値がＳＶＲ＿ＴＯＫＥＮ値に設定される。ＣＬＩ＿ＴＯＫＥＮ値がＳＶＲ＿ＴＯＫＥＮ値よりも大きいか又は等しい場合は、デバイスは、４１０において示されるように、最新のソフトウェアアップバージョンを有しており、更新は不要である。さらに、ＳＶＲ＿ＴＯＫＥＮは、２５６だけ増加後にラップアラウンドすることができる。従って、ＣＬＩ＿ＴＯＫＥＮ値は、例えばデバイスが長期間ネットワークに接続されていないときにはラップアラウンドされたＳＶＲ＿ＴＯＫＥＮと等しい場合がある。このシナリオに対処するために、何らかの予め決められた期間（例えば、３０日、４５日、９０日等）にわたってオーバーヘッドメッセージが取得されていない場合は格納されているＣＬＩ＿ＴＯＫＥＮを消去することができる。この継続期間は、ＳＶＲ＿ＴＯＫＥＮラップアラウンドに関して要求される推定期間よりも実質的に短く設定することができる。
【００２８】
図５は、様々な側面により、トークンアクセスプロトコルをプッシュ確認方法及びプル確認プロトコルの各々と組み合わせて実行するのを容易にする方法５００を示す。方法４００と同様に、方法５００も、トークンに基づくプロトコルを利用し、クライアントトークン値が、マルチキャストチャネルにおいて定期的にアドバタイズされるサーバートークン値と比較される。例えば、サーバーは、上述されるように全ソフトウェアクラスに関するすべての最新の一連番号を送信する代わりに、２つのＳＶＲ＿ＴＯＫＥＮ間の増分的変更情報をデータチャネルで送信することができる。例えば、ＳＶＲ＿ＴＯＫＥＮ＝３であるソフトウェアクラスＡ及びＢに関して２つの新しいアップグレードが存在する場合は、サーバーは、自己のＳＶＲ＿ＴＯＫＥＮを（例えば４に）増加させ、ＳＶＲ＿ＴＯＫＥＮを（例えば、図３に関して上述されるのと同様の方法で）オーバーヘッドチャネルでアドバタイズすることができる。次に、サーバーは、データチャネルにおいて２つのソフトウェアアップグレード通知メッセージを送信することができる。メッセージのフォーマットは、複数のフィールドを具備することができる。例えば、“ＳＶＲ＿ＴＯＫＥＮ”は、ソフトウェアアップグレードと関連づけられた値を具備することができる。“ＮＵＭ＿ＲＥＣＯＲＤ”は、所定のＳＶＲ＿ＴＯＫＥＮにおいて追加されるソフトウェアアップグレード通知数を定義することができる。“ＲＥＣＯＲＤ＿ＩＤ”は、ＮＵＭ＿ＲＥＣＯＲＤソフトウェアアップグレード通知間で一意で割り当てることができる。“ＳＯＦＴＷＡＲＥ＿ＩＤ”は、上述されるように定義することができる。“ＬＡＴＥＳＴ＿ＳＱＮ＿ＮＵＭ”は、ＳＯＦＴＷＡＲＥ＿ＩＤに関する最新の一連番号を定義することができる。各メッセージのＮＵＭ＿ＲＥＣＯＲＤ及びＲＥＣＯＲＤ＿ＩＤを利用することによって、デバイスは、どれだけの数のソフトウェアアップグレード通知を回収すべきであるか及びアップグレード通知を探すことをいつ停止すべきかを決定することができる。
【００２９】
従って、方法５００は、５０２において開始し、ユーザーデバイスは、オーバーヘッドメッセージを受信することができる。５０４において、ＣＬＩ＿ＴＯＫＥＮが存在するかどうかに関する決定を行うことができる。ＣＬＩ＿ＴＯＫＥＮが存在しない場合は、プル確認プロトコルを実行することができ、５０６において、ＣＬＩ＿ＴＯＫＥＮを生成してＳＶＲ＿ＴＯＫＥＮと同じに設定することができる。５０４においてクライアントトークンが有効である場合は、５０８において、クライアントトークン値がサーバートークン値（モジュロｎ）よりも大きいか又は等しいかに関する決定を行うことができ、ここで、ｎは、最大トークン数である。クライアントトークン値がサーバートークン値よりも大きいか又は等しい場合は、デバイスは最新状態であり、対象となるソフトウェアの最新バージョンを有するため、５１０において示されるように、措置を講じる必要がない。
【００３０】
クライアントトークン値がサーバートークン値よりも小さい場合は、５１２において、（例えば、サーバートラフィック値が最大値ｎからゼロにラップアラウンドするシナリオに対処するために）クライアントトークン値がサーバートークン値（モジュロｎ）よりも大きくなくさらに等しくない場合は、クライアントトークン値がサーバートークン値−ｍ（モジュロｎ）とサーバートークン値−１（モジュロｎ）の間にあるかどうかに関する決定を行うことができ、サーバーは、ｍ（正の整数）の直近のサーバートークン値と関連づけられたソフトウェアアップグレード通知を送信する。例えば、サーバーは、ｍの直近のトークン値と関連づけられたソフトウェアアップグレード通知を継続的に及び／又は定期的に送信することができる。例えば、ｍは、予め設定された数、例えば３、にして、サーバーが３つの直近のサーバートークン値と関連づけられたソフトウェアアップグレード通知を継続的に及び／又は定期的に送信できるようにすることができる。さらに加えて又は代替として、ｍは、動的に定義してオーバーヘッドメッセージ内に含めることができる。他の例により、ｎが単一のバイトによって表される整数値（例えば８ビット値）であるシナリオにおいては、ｎは、２５５の最大値を有することができ、クライアント値が２５５に達したときにラップアラウンド状態が発生することが可能であり、サーバートークンは、０（例えば、又は２５５よりも小さいその他の何らかの値）にラップアラウンドしている。該シナリオにおいては、クライアントデバイスがソフトウェアアップグレード通知を受ける資格を有する場合であっても、クライアントトークン値は、サーバートークン値よりも大きくみえることがある。このラップアラウンド問題を軽減するために、サーバーがＳＶＲ＿ＴＯＫＥＮ−ｍ（モジュロ２５５）乃至ＳＶＲ＿ＴＯＫＥＮ−１（モジュロ２５５）（例えば直近のサーバートークン）の範囲内のアップグレード数と関連づけられているマルチキャストソフトウェアアップグレード通知を送信する場合は、プッシュ確認プロトコルを開始する前に、クライアントトークン値が値“ＳＶＲ＿ＴＯＫＥＮ−ｍ（モジュロ２５５）”と“ＳＶＲ＿ＴＯＫＥＮ−１（モジュロ２５５）”との間に入るようにするために判定基準を設けることができる。上例は、例示的性質を有していてラップアラウンド状態に対処するためのメカニズムについての理解を容易にすることが意図されていること、及びｎはあらゆる適切な整数（例えば、５１２、１０００、１０２４）であることができ、最大の単バイト整数値と関連づけられた２５５の値に限定されないことが理解されるであろう。
【００３１】
５１２において条件が真である場合は、５１４において、プッシュ確認プロトコルを実装することができ、その後に、クライアントトークン値をサーバートークン値と同じに設定することができる。５１２において条件が真でない場合は、５１６において、プル確認プロトコルを実装することができ、その後に、クライアントトークン値をサーバートークン値と同じに設定することができる。方法４００と同様に、オーバーヘッドメッセージが予め定義されているある期間（例えば、１５日、３１日、６０日等）にわたって取得されていない場合は、格納されているクライアントトークンを消去することができる。この継続期間は、ＳＶＲ＿ＴＯＫＥＮラップアラウンドに関して要求される推定期間よりも実質的に短く設定することができる。
【００３２】
以下の説明は、方法４００及び５００の幾つかの変形を提示する。例えば、サーバーは、予め定義された期間後にデータチャネルでの増分的ソフトウェアアップグレード情報の送信を停止することができる。この場合は、デバイスは、データチャネルでのソフトウェアアップグレード通知を受信できない場合はプル確認方法を利用することができる。他の例により、サーバーは、最新のＳＶＲ＿ＴＯＫＥＮとＳＶＲ＿ＴＯＫＥＮ−１との間の増分的変更を送信するのではなく、最新のＳＶＲ＿ＴＯＫＥＮとＳＶＲ＿ＴＯＫＥＮ−Ｍと間の差を説明する変更値を送信することができる。この場合は、Ｍのトークン変更数が存在することができ、データチャネルを通じて対応するソフトウェアアップグレード情報を送信することができる。ＣＬＩ＿ＴＯＫＥＮがＳＶＲ＿ＴＯＫＥＮ−ＭとＳＶＲ＿ＴＯＫＥＮの間にある場合は（ラップアラウンド事例を含む）、デバイスは、プッシュ確認プロトコルを利用することができる。その他の場合は、デバイスは、プル確認プロトコルを利用することができる。
【００３３】
さらに他の側面により、ソフトウェアアップグレードは次の２つのダウンロード方法、すなわち、（１）ポイントツーポイント及び（２）マルチキャスト、が存在する。ポイントツーポイント実装に関しては、ユーザーによる承認後に、各デバイスは、サーバーとのポイントツーポイント接続を生成し、更新されたソフトウェアアプリケーションをダウンロードすることができる。マルチキャストに関しては、サーバーは、アップグレードされたアプリケーションを所定の期間（例えば、１週間、３０日等）だけマルチキャストすることができる。従って、ダウンロードプロトコルに依存して、データチャネル内のソフトウェアアップグレード通知メッセージは、追加のフィールドを有することができる。例えば、ポイントツーポイントダウンロードメカニズムが利用される場合は “ＮＯＴＩＦＩＣＡＴＩＯＮ＿ＤＥＬＡＹ”フィールドをメッセージに追加することができる。デバイスは、０乃至ＮＯＴＩＦＩＣＡＴＩＯＮ＿ＤＥＬＡＹの値の間の無作為の数を生成することができ、選択された無作為の時間後にソフトウェアアップグレードの必要性をユーザーに通知することができる。このパラメータは、アップグレード通知レコードを同時にデバイスに引き渡すのを容易にする。ユーザーによる許可後に自動ダウンロードメカニズムが採用された場合は、一気に行われるダウンロード要求がダウンロードサイトに押し寄せる可能性がある。さらに、アプリケーションアップデートダウンロードに関してマルチキャストが用いられる場合は“ＣＯＮＴＡＣＴ＿ＷＩＮＤＯＷ”フィールドをメッセージに追加し、アップグレードされたアプリケーションをダウンロードするためにいつブロードキャストチャネルにチューニングすべきかを示すことができる。
【００３４】
図６は、様々な側面により１つ以上の確認プロトコルを実行することができるソフトウェアアップグレード通知シナリオ６００を示す。該シナリオにより、図において３から４への矢印によって示されるように、サーバートークンが３から４にアップグレードされている。ソフトウェアクラスＡ及びＢに関して２つの新しいアップグレードが存在し、サーバーはオーバーヘッドチャネルでＳＶＲ＿ＴＯＫＥＮをアドバタイズできると想定することができる。これで、サーバーは、クライアントトークン値が３に等しい場合はプッシュ確認プロトコルを利用し、２つのソフトウェアアップグレード通知メッセージをデータチャネルで送信することができる。クライアントは、クライアントトークン値が３に等しくない場合はプル確認プロトコルを用いてアップグレード通知を要求することができる。
【００３５】
図７は、システム７００におけるトークンアクセスを用いたプッシュ方法７０２、プル方法７０４、及び混成確認方法７０６の概念的概要を示す。
【００３６】
様々な側面により、プッシュ確認プロトコル及びプル確認プロトコルの両方を用いる混成手法が説明される。ソフトウェアアップグレードイベントが頻繁に起こらない場合は、直近の増分的変更のみに関連するブロードキャストデータ量は相対的に少なく、このことはブロードキャスト資源を保存することができる。さらに、混成プロトコルは、瞬間的アップグレード通知をネットワークに接続されたデバイスに引き渡す。さらに、ＳＶＲ＿ＴＯＫＥＮ変更間の期間は大きくなる見込みである。従って、ほとんどのデバイスは、ＳＶＲ＿ＴＯＫＥＮ値と同期化することができ、多くのデバイスのうちの幾つかのみがプルメカニズムを最新状態にすることを要求することができ、このことは、ユニキャスト資源を保存する。
【００３７】
前回のアップグレードと比較した場合におけるアップグレードの重要性に依存し、各ソフトウェアアップグレードに関連して複数レベルのソフトウェアアップグレード緊急性（ＵＲＧＥＮＣＹ＿ＬＥＶＥＬ）が存在する。ソフトウェアアップグレード緊急性情報のレベルも通知メッセージに追加することができる。例えば、レベル１から３までに関して、レベル１は極めて重要にすることができ、レベル２はある程度重要にすることができ、レベル３はオプションにすることができる。例えば、アプリケーションにレベル１のラベルが付されているときには、デバイスは、該アプリケーションから離れ、デバイスが悪影響を受けないように保護するためにユーザーが新しいソフトウェアアップグレードをダウンロードするように強制することができる。
【００３８】
図８は、典型的無線通信システム８００を示す。無線通信システム８００は、簡潔にすることを目的として、１つの基地局及び１つの端末のみを描く。しかしながら、システムは、２つ以上の基地局及び／又は２つ以上の端末を含むことができ、追加の基地局及び／又は端末は、後述される典型的基地局及び端末と実質的に類似していること又は異なることができることが理解されるべきである。さらに、基地局及び／又は端末は、両者間の無線通信を容易にするために本明細書において説明されるシステム（図１、６、７、及び９乃至１２）及び／又は方法（図２乃至５）を採用できることが理解されるべきである。
【００３９】
次に図８に関して、ダウンリンクでのアクセスポイント８０５において、送信（ＴＸ）データプロセッサ８１０は、トラフィックデータを受信、フォーマット化、符号化、インターリービング、及び変調（又はシンボルマッピング）して変調シンボル（“データシンボル”）を提供する。シンボル変調器８１５は、データシンボル及びパイロットシンボルを受信及び処理し、シンボルストリームを提供する。シンボル変調器８２０は、データ及びパイロットシンボルを多重化し、これらのシンボルを送信機ユニット（ＴＭＴＲ）８２０に提供する。各送信シンボルは、データシンボル、パイロットシンボル、又はゼロの信号値であることができる。パイロットシンボルは、各シンボル期間に連続的に送信することができる。パイロットシンボルは、周波数分割多重化（ＦＤＭ）、直交周波数分割多重化（ＯＦＤＭ）、時分割多重化（ＴＤＭ）、周波数分割多重化（ＦＤＭ）、又は符号分割多重化（ＣＤＭ）することができる。
【００４０】
ＴＭＴＲ８２０は、シンボルストリームを受信して１つ以上のアナログ信号に変換し、該アナログ信号をさらにコンディショニング（例えば、増幅、フィルタリング、及び周波数アップコンバージョン）して無線チャネルでの送信に適したダウンリンク信号を生成する。ダウンリンク信号は、アンテナ８２５を通じて端末に送信される。端末８３０において、アンテナ８３５は、ダウンリンク信号を受信し、受信された信号を受信機ユニット（ＲＣＶＲ）８４０に提供する。受信機ユニット８４０は、受信された信号をコンディショニング（例えば、フィルタリング、増幅、及び周波数ダウンコンバージョン）し、コンディショニングされた信号をデジタル化してサンプルを入手する。シンボル復調器８４５は、受信されたパイロットシンボルを復調してチャネル推定のためにプロセッサ８５０に提供する。シンボル復調器８４５は、ダウンリンクに関する周波数応答推定をプロセッサ８５０からさらに受信し、受信されたデータシンボルに関するデータ復調を行って（送信されたデータシンボルの推定である）データシンボル推定を入手し、データシンボル推定をＲＸデータプロセッサ８５５に提供し、ＲＸデータプロセッサ８５５は、データシンボル推定を復調（すなわち、シンボルデマッピング）、デインターリービング、及び復号して送信されたトラフィックデータを復元する。シンボル復調器８４５及びＲＸデータプロセッサ８５５による処理は、アクセスポイント８０５におけるシンボル変調器８１５及びＴＸデータプロセッサ８１０によるそれぞれの処理を補完するものである。
【００４１】
アップリンクにおいて、ＴＸデータプロセッサ８６０は、トラフィックデータを処理してデータシンボルを提供する。シンボル変調器８６５は、データシンボルを受信してパイロットシンボルと多重化し、変調を行い、シンボルストリームを提供する。次に、送信機ユニット８７０は、シンボルストリームを受信及び処理してアップリンク信号を生成し、アップリンク信号は、アンテナ８３５によってアクセスポイント８０５に送信される。
【００４２】
アクセスポイント８０５において、端末８３０からのアップリンク信号は、アンテナ８２５によって受信され受信機ユニット８７５によって処理されてサンプルが入手される。次に、シンボル復調器８８０は、サンプルを処理し、アップリンクに関する受信されたパイロットシンボル及びデータシンボル推定を提供する。ＲＸデータプロセッサ８８５は、データシンボル推定を処理し、端末８３０によって送信されたトラフィックデータを復元する。プロセッサ８９０は、アップリンクにおいて送信中の各アクティブ端末に関するチャネル推定を行う。複数の端末が、アップリンクにおいて各々の割り当てられた組のパイロットサブバンドで同時並行してパイロットを送信することができ、パイロットサブバンドの組は、インターレーシングすることができる。
【００４３】
プロセッサ８９０及び８５０は、アクセスポイント８０５及び端末８３０のそれぞれにおける動作を指示（例えば、制御、調整、管理）する。各々のプロセッサ８９０及び８５０は、プログラムコード及びデータを格納するメモリユニット（示されていない）と関連づけることができる。プロセッサ８９０及び８５０は、アップリンク及びダウンリンクに関する周波数及びインパルス応答推定をそれぞれ導き出すための計算を行うこともできる。
【００４４】
多元接続システム（例えば、ＦＤＭＡ、ＯＦＤＭＡ、ＣＤＭＡ、ＴＤＭＡ等）に関して、複数の端末がアップリンクにおいて同時並行して送信することができる。該システムに関しては、パイロットサブバンドを異なる端末間で共有することができる。チャネル推定技術は、各端末に関するパイロットサブバンドが動作帯域全体（可能なことに帯域エッジを除く）にわたる場合に用いることができる。該パイロットサブバンド構造は、各端末に関する周波数ダイバーシティを入手する上で望ましい。本明細書において説明されるこれらの技術は、様々な手段によって実装することができる。例えば、これらの技術は、ハードウェア内において、ソフトウェア内において、又はその組合せ内において実装することができる。ハードウェア実装の場合は、チャネル推定に関して用いられる処理ユニットは、本明細書において説明されている機能を果たすように設計された１つ以上の特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）、デジタル信号処理デバイス（ＤＳＰＤ）、プログラマブル論理デバイス（ＰＬＤ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、その他の電子装置、又はその組合せ内に実装することができる。ソフトウェアに関しては、実装は、本明細書において説明されている機能を実行するモジュール（例えば、手順、関数等）を通じて行うことができる。ソフトウェアコードは、メモリユニットに格納してプロセッサ８９０及び８５０によって実行することができる。
【００４５】
図９は、様々な側面により、マルチメディアコンテンツフローを生成してデータネットワーク全体に転送するために動作する転送システムを具備する通信ネットワーク９００を示す。例えば、転送システムは、ブロードキャスト配信のためにサーバーネットワークから無線アクセスネットワークにコンテンツクリップを転送する際に用いるのに適する。ネットワーク９００は、サーバー９０２と、マルチキャストネットワーク９０６と、無線アクセスネットワーク９０８と、を具備する。ネットワーク９００は、携帯電話９１２を具備するデバイス９１０と、パーソナルデジタルアシスタント（ＰＤＡ）９１４と、ノート型コンピュータ９１６と、を同様に含む。デバイス９１０は、転送システムの１つ以上の側面において用いるのに適するデバイスのほんの一部を示す。図９には３つのデバイスが示されるが、実質上あらゆる数のデバイス、又はあらゆる数の型のデバイスが転送システムにおいて用いるのに適することが注目されるべきである。
【００４６】
サーバー９０２は、ネットワーク９００におけるユーザーへの配信用コンテンツを提供するために動作する。コンテンツは、映像、音声、マルチメディアコンテンツ、クリップ、リアルタイム及び非リアルタイムのコンテンツ、スクリプト、プログラム、データ又はその他のあらゆる型の適切なコンテンツを具備する。サーバー９０２は、配信を目的としてマルチキャストネットワーク９０６及び／又はユニキャストネットワーク９０８にコンテンツを提供する。例えば、サーバー９０２は、あらゆる適切な型の有線及び／又は無線通信リンクを具備する通信リンク９１８を介してユニキャストネットワーク９０８と通信する。
【００４７】
ネットワーク９００は、ユーザーへの引き渡しを目的としてコンテンツを配信するために動作する有線及び無線ネットワークの組合せを具備する。サーバー９０２は、リンク９２０を介してマルチキャストネットワーク９０６と通信する。リンク９２０は、あらゆる適切な型の有線及び／又は無線通信リンクを具備する。マルチキャストネットワーク９０６は、高質のコンテンツをブロードキャストするように設計された有線及び無線ネットワークのあらゆる組合せを具備する。例えば、マルチキャストネットワーク９０６は、複数の最適化された通信チャネルを通じて高質のコンテンツを選択されたデバイスに引き渡すように最適化されている専用の独占ネットワークであることができる。
【００４８】
１つ以上の側面においては、転送システムは、サーバー９０２からマルチキャストネットワーク９０６及びユニキャストネットワーク９０８を通じてデバイス９１０にコンテンツを引き渡すために動作する。例えば、コンテンツフローは、マルチキャストネットワーク９０６を用いての配信のためにサーバー９０２によって提供された非リアルタイムのコンテンツクリップを具備することができる。一側面においては、サーバー９０２は、マルチキャストネットワーク９０６と交渉してコンテンツクリップと関連づけられた１つ以上のパラメータを決定するために動作する。マルチキャストネットワーク９０６は、コンテンツクリップを受信した時点で、デバイス９１０のうちの１つ以上による受信を目的としてネットワーク９００を通じてコンテンツクリップをブロードキャスト／マルチキャストする。デバイス９１０のうちのいずれも、コンテンツクリップを受信し、デバイスユーザーによるのちの閲覧のためにキャッシュに一時的に保存する権限を付与することができる。
【００４９】
例えば、デバイス９１０は、ネットワーク９００を通じてブロードキャストするようにスケジューリングされているコンテンツのリストを表示するプログラムガイドを提供するために動作するクライアントプログラム９３２を具備する。デバイスユーザーは、リアルタイムで提供するために特定のコンテンツを受信するか又はのちに観るためにキャッシュ９３４に格納することを選択することができる。例えば、コンテンツクリップは、夕方の時間中におけるブロードキャストに関してスケジューリングすることができ、デバイス９１２は、ブロードキャストを受信するために及びデバイスユーザーが翌日にコンテンツクリップを観ることができるようにキャッシュ９３４に一時的に保存するために動作する。典型的には、コンテンツは、加入サービスの一環としてブロードキャストされ、受信デバイスは、ブロードキャストを受信するためのキーを提供するか又は自己認証することが必要になる場合がある。
【００５０】
図１０は、コンテンツ引き渡しシステムにおいて用いるのに適したコンテンツプロバイダサーバー１０００の様々な側面を示す。例えば、サーバー１０００は、図９のサーバー９０２として用いることができる。サーバー１０００は、すべてが内部データバス１０１２に結合された処理論理１００２と、資源及びインタフェース１００４と、トランシーバ論理１０１０と、を具備する。サーバー１０００は、同じくデータバス１０１２に結合された起動論理１０１４と、ＰＧ１００６と、ＰＧレコード論理１００８と、をさらに具備する。１つ以上の側面においては、処理論理１００２は、ＣＰＵ、プロセッサ、ゲートアレイ、ハードウェア論理、メモリ素子、仮想機械、ソフトウェア、及び／又はハードウェアとソフトウェアの組合せを具備する。従って、処理論理１００２は、一般的には、機械によって読み取り可能な命令を実行するための論理と、内部データバス１０１２を介してサーバー１０００の１つ以上のその他の機能素子を制御するための論理と、を具備する。
【００５１】
資源及びインタフェース１００４は、サーバー１０００が内部システム及び外部システムと通信することを可能にするハードウェア及び／又はソフトウェアを具備する。例えば、内部システムは、大量記憶システム、メモリ、表示ドライバ、モデム、又はその他の内部デバイス資源を含むことができる。外部システムは、ユーザーインタフェースデバイス、プリンタ、ディスクドライブ、又はその他のローカルデバイス又はシステムを含むことができる。トランシーバ論理１０１０は、サーバー１０００が通信チャネル１０１６を用いて遠隔デバイス又はシステムとデータ及び／又はその他の情報を送信及び受信するのを可能にするために動作するハードウェア論理及び／又はソフトウェアを具備する。例えば、一側面においては、通信チャネル１０１６は、サーバー１０００がデータネットワークと通信するのを可能にするためのあらゆる適切な型の通信リンクを具備する。
【００５２】
起動論理１０１４は、ＣＰＵ、プロセッサ、ゲートアレイ、ハードウェア論理、メモリ素子、仮想機械、ソフトウェア、及び／又はハードウェアとソフトウェアの組合せを具備する。起動論理１０１４は、サーバー及び／又はデバイスを起動して該サーバー及び／又は該データがＰＧ１００６において説明されるコンテンツ及び／又はサービスを選択及び受信するのを可能にするために動作する。一側面においては、起動論理１０１４は、起動プロセス中にサーバー及び／又はデバイスにクライアントプログラム１０２０を送信する。クライアントプログラム１０２０は、ＰＧ１００６を受信するため及び利用可能なコンテンツ又はサービスに関する情報をデバイスユーザーに表示するためにサーバー及び／又はデバイスにおいて実行する。従って、起動論理１０１４は、クライアント１０２０によってデバイス上で提供するためにサーバー及び／又はデバイスを認証し、クライアント１０２０をダウンロードし、ＰＧ１００６をダウンロードするために動作する。
【００５３】
ＰＧ１００６は、デバイスが受信するために提供可能なコンテンツ及び／又はサービスについて説明するあらゆる適切なフォーマットの情報を具備する。例えば、ＰＧ１００６は、サーバー１０００のローカルメモリ内に格納することができ、情報、例えばコンテンツ又はサービス識別子、スケジューリング情報、価格設定、及び／又はその他のあらゆる型の関連情報、を具備することができる。一側面においては、ＰＧ１００６は、利用可能なコンテンツ又はサービスに対する変更が行われるのに応じて処理論理１００２によって更新される１つ以上の識別可能な部分を含む。
【００５４】
ＰＧレコード１００８は、ＰＧ１００６の変更を識別及び／又は説明する通知メッセージを生成するために動作するハードウェア及び／又はソフトウェアを具備する。例えば、処理論理１００２がＰＧ１００６を更新すると、ＰＧレコード論理１００８に該変更が通知される。ＰＧレコード論理１００８は、サーバーに送信される１つ以上の通知メッセージを生成する。これらのサーバーは、サーバー１０００とともに起動させておくことができ、このためＰＧ１００６の変更を速やかにこれらのサーバーに通知することができる。
【００５５】
様々な側面において、コンテンツ引き渡し通知メッセージの一部として、メッセージ内において識別されるＰＧの一部分がいつブロードキャストされるかを示すブロードキャストインジケータが提供される。例えば、一側面においては、ブロードキャストインジケータは、該部分がブロードキャストされることを示す１ビットと、ブロードキャストが起きる時間を示す時間インジケータと、を具備する。従って、ＰＧレコードのローカルコピーを更新することを希望するサーバー及び／又はデバイスは、ＰＧレコードの更新された部分を受信するために指定された時間にブロードキャストの有無を聞く（ｌｉｓｔｅｎ）ことができる。一側面においては、コンテンツ引き渡し通知システムは、コンピュータによって読み取り可能な媒体上に格納されたプログラム命令を具備し、これらの命令は、プロセッサ、例えば処理論理１００２、によって実行されたときに、本明細書において説明されるサーバー１０００の機能を提供する。例えば、プログラム命令は、コンピュータによって読み取り可能な媒体、例えばフロッピーディスク、ＣＤＲＯＭ、メモリカード、ＦＬＡＳＨメモリデバイス、ＲＡＭ、ＲＯＭ、又は資源１００４を通じてサーバー１０００とインタフェースするその他のあらゆる型のメモリデバイス又はコンピュータによって読み取り可能な媒体、からサーバー１０００内にローディングすることができる。他の側面においては、命令は、トランシーバ論理１０１０を通じてサーバー１０００にインタフェースする外部デバイス又はネットワーク資源からサーバー１０００内にダウンロードすることができる。プログラム命令は、処理論理１００２によって実行されたときに、本明細書において説明されるガイド状態通知システムの１つ以上の側面を提供する。
【００５６】
図１１は、１つ以上の側面により、コンテンツ引き渡しシステムにおいて用いるのに適したサーバー又はデバイス１１００を示す。例えば、サーバー１１００は、図９に示されるサーバー９０２又はデバイス９１０であることができる。サーバー１１００は、すべてがデータバス１１０８に結合された処理論理１１０２と、資源及びインタフェース１１０４と、トランシーバ論理１１０６と、を具備する。サーバー１１００は、同じくデータバス１１０８に結合されたクライアント１１１０と、プログラム論理１１１４と、ＰＧ論理１１１２と、をさらに具備する。１つ以上の側面においては、処理論理１１０２は、ＣＰＵ、プロセッサ、ゲートアレイ、ハードウェア論理、メモリ素子、仮想機械、ソフトウェア、及び／又はハードウェアとソフトウェアの組合せを具備する。従って、処理論理１１０２は、一般的には、機械によって読み取り可能な命令を実行するように及び内部データバス１１０８を介してサーバー１１００の１つ以上のその他の機能素子を制御するように構成された論理を具備する。
【００５７】
資源及びインタフェース１１０４は、サーバー１１００が内部及び外部のシステムと通信することを可能にするハードウェア及び／又はソフトウェアを具備する。例えば、内部システムは、大量記憶システム、メモリ、表示ドライバ、モデム、又はその他の内部デバイス資源を含むことができる。外部システムは、ユーザーインタフェースデバイス、プリンタ、ディスクドライブ、又はその他のローカルデバイス又はシステムを含むことができる。トランシーバ論理１１０６は、サーバー１１００が通信チャネル１１１４を通じて外部デバイス又はシステムとデータ及び／又はその他の情報を送信及び受信するのを可能にするために動作するハードウェア及び／又はソフトウェアを具備する。例えば、通信チャネル１１１４は、ネットワーク通信リンク、無線通信リンク、又はその他の型の通信リンクを具備することができる。
【００５８】
動作中において、サーバー及び／又はデバイス１１００は、利用可能なコンテンツ又はサービスをデータネットワークを通じて受信できるようにするために起動される。例えば、一側面においては、サーバー及び／又はデバイス１１００は、起動プロセス中にコンテンツプロバイダに対して自己の身元を示す。起動プロセスの一部として、サーバー及び／又はデバイス１１００は、ＰＧ論理１１１２によってＰＧレコードを受信して格納する。ＰＧ１１１２は、サーバー１１００が受信するために提供可能なコンテンツ又はサービスを識別する情報を含む。クライアント１１１０は、資源及びインタフェース１１０４を用いてサーバー及び／又はデバイス１１００におけるＰＧ論理１１１２内の情報を提供するために動作する。例えば、クライアント１１１０は、デバイスの一部である表示画面上においてＰＧ論理１１１２内の情報を提供する。クライアント１１１０は、デバイスユーザーがコンテンツ又はサービスを選択できるようにするために資源及びインタフェースを通じてのユーザー入力も受信する。
【００５９】
幾つかの側面においては、サーバー１１００は、トランシーバ１１０６を通じて通知メッセージを受信する。例えば、メッセージは、サーバー１１００にブロードキャスト又はユニキャストし、トランシーバ論理１１０６によって受信することができる。ＰＧ通知メッセージは、ＰＧ論理１１１２におけるＰＧレコードの更新を識別する。一側面においては、クライアント１１１０は、ＰＧ通知メッセージを処理し、ＰＧ論理１１１２におけるローカルコピーを更新する必要があるかどうかを決定する。例えば、一側面においては、通知メッセージは、部分識別子と、開始時間と、終了時間と、バージョン番号と、を含む。サーバー１１００は、ＰＧ通知メッセージ内の情報を既存のＰＧ論理１１１２におけるローカルで格納された情報と比較するために動作する。サーバー１１００が、ＰＧ論理１１１２におけるローカルコピーの１つ以上の部分を更新する必要があることをＰＧ通知メッセージから決定した場合は、サーバー１１００は、ＰＧの更新された部分を幾つかの方法のうちの１つによって受信するために動作する。例えば、ＰＧの更新された部分は、ＰＧ通知メッセージ内において示される時間にブロードキャストされ、このため、トランシーバ論理１１０６は、ブロードキャストを受信すること及び更新された部分をサーバー１１００に渡すことができ、サーバー１１００は、ＰＧ論理１１１２におけるローカルコピーを更新する。
【００６０】
その他の側面においては、サーバー１１００は、受信されたＰＧ更新通知メッセージに基づいてＰＧのいずれの部分を更新する必要があるかを決定し、ＰＧの希望される更新された部分を入手するための要求をＣＰサーバーに送信する。例えば、該要求は、あらゆる適切なフォーマットを用いてフォーマット化すること及び情報、例えば要求中のサーバーの識別子、部分の識別子、バージョン番号、及び／又はその他のあらゆる適切な情報、を具備することができる。一側面においては、サーバー１１００は、ＰＧ通知システムの１つ以上の側面における以下の機能のうちの１つ以上を果たす。以下の機能は、該側面の適用範囲内において変更、再編、修正、追加、削除、又はその他の形で調整できることが注目されるべきである。サーバーは、コンテンツ又はサービスを受信するためにコンテンツプロバイダシステムとともに動作するために起動させることができる。起動プロセスの一部として、クライアント及びＰＧがサーバーに送信される。ローカルで格納されているＰＧの１つ以上の部分を更新する必要があるかどうかを決定するために１つ以上のＰＧ通知メッセージをサーバーによって受信して使用することができる。一側面においては、ローカルで格納されているＰＧの１つ以上の部分を更新する必要があるとサーバーが決定した場合は、サーバーは、配信システムからのブロードキャストを聞き、ローカルコピーを更新する必要があるＰＧの更新された部分を入手する。他の側面においては、サーバーは、必要とするＰＧの更新された部分を入手するために１つ以上の要求メッセージをＣＰに送信する。ＣＰは、要求に応じて、ＰＧの更新された部分をサーバーに送信する。サーバーは、ＰＧの受信された更新された部分を用いてＰＧのローカルコピーを更新する。
【００６１】
さらに他の側面により、コンテンツ引き渡しシステムは、コンピュータによって読み取り可能な媒体に格納されているプログラム命令を具備し、該プログラム命令は、プロセッサ、例えば処理論理１１０２、によって実行されたときに、本明細書において説明されるコンテンツ引き渡し通知システムの機能を提供する。例えば、コンピュータによって読み取り可能な媒体、例えばフロッピーディスク、ＣＤＲＯＭ、メモリカード、ＦＬＡＳＨメモリデバイス、ＲＡＭ、ＲＯＭ、又は資源及びインタフェース１１０４を通じてサーバー１１００とインタフェースするその他のあらゆる型のメモリデバイス又はコンピュータによって読み取り可能な媒体、からサーバー１１００内にローディングすることができる。他の側面においては、命令は、トランシーバ論理１１０６を通じてサーバー１１００にインタフェースするネットワーク資源からサーバー１１００内にダウンロードすることができる。命令は、処理論理１１０２によって実行されたときに、本明細書において説明されるコンテンツ引き渡しシステムの１つ以上の側面を提供する。サーバー１１００は、ほんの１つの実装を表しているにすぎないこと及び該側面の適用範囲内においてその他の実装が可能であることが注目されるべきである。
【００６２】
図１２は、様々な側面により、無線通信環境において確認プロトコル及びアクセスプロトコルを実行するのを容易にする装置１２００を示す。装置１２００は、ソフトウェアバージョン情報、例えば１つのクラスのソフトウェアと関連づけられた一連番号及び／又はソフトウェアＩＤ、を受信するための手段１２０２を具備することができる。装置は、一定の条件（例えば、図２及び３に関して上述される条件）に依存して、プッシュ確認プロトコル又はプル確認プロトコルのいずれか、又は両方を実行することができる確認プロトコルを実行するための手段１２０４をさらに具備する。装置１２００は、アップグレード通知が要求されるかどうかを決定するのを容易にするためにアクセスプロトコルを実行するための手段をさらに具備する。アクセスプロトコルを実行するための手段１２０６は、予め決められた間隔で実行される定期的プロトコル、ソフトウェアがリリースされるごとに実行されるリリース時開始プロトコル、ユーザーコマンドに応じて実行されるユーザー開始プロトコル、クライアントとサーバーとの間におけるトランザクション時に開始されるトランザクションに基づくプロトコル等を実行することができる。さらに、アクセスプロトコルを実行するための手段１２０６は、図４及び５に関して詳細に説明されているようなトークンアクセスプロトコルを実行することができる。この方法により、装置１２００は、ユーザーデバイス上のソフトウェアが最新状態であるかどうか又はデバイスに関するソフトウェアアップグレード通知が要求されているかどうかを決定するのを容易にすることができる。
【００６３】
ソフトウェア実装に関して、本明細書において説明される技術は、本明細書において説明されている機能を実行するモジュール（例えば、手順、関数等）とともに実装することができる。ソフトウェアコードは、メモリユニットに格納してプロセッサによって実行することができる。メモリユニットは、プロセッサ内に実装すること又はプロセッサの外部において実装することができ、プロセッサの外部において実装する場合は、当業において知られる様々な手段を介してプロセッサと通信可能な形で結合させることが可能である。
【００６４】
上述されていることは、１つ以上の実施形態の例を含む。当然のことであるが、上記の実施形態を説明することを目的として構成要素又は方法の考えられるあらゆる組み合わせを説明することは可能ではないが、様々な実施形態のさらに数多くの組み合わせ及び置換が可能であることを当業者は認識するであろう。従って、説明される実施形態は、添付された請求項の精神及び適用範囲内にあるあらゆる変更、修正及び変形を包含することが意図されている。さらに、発明を実施するための最良の形態又は請求項の範囲において「含む」という表現が用いられている限りにおいて、該表現は、「具備する」いう表現が請求項において移行語として採用されたときの解釈と同様の包含性を有することが意図されている。
【図面の簡単な説明】
【００６５】
【図１】本明細書において提示される様々な側面による無線ネットワーク通信システムを示した図である。
【図２】１つ以上の側面により、無線通信環境において“プッシュ”確認プロトコルを実行してソフトウェアアップグレードがユーザーデバイスにとって利用可能であるかどうかを決定するための方法を示した図である。
【図３】１つ以上の側面により、無線通信環境において“プル”確認プロトコルを実行してソフトウェアアップグレードがユーザーデバイスにとって利用可能であるかどうかを決定するための方法を示した図である。
【図４】１つ以上の側面により、ユーザーデバイスがソフトウェアアップグレード通知を受信することを許可するのを容易にする方法を示した図である。
【図５】様々な側面により、プッシュ確認方法及びプル確認方法のうちの各々と組み合わせてトークンアクセスプロトコルを実行するのを容易にする方法を示した図である。
【図６】様々な側面による、１つ以上の確認プロトコルを実行することができるソフトウェアアップグレード通知シナリオを示した図である。
【図７】トークンアクセスを用いるプッシュ方法、プル方法、及び混成確認方法のシステム概念図である。
【図８】本明細書において説明される様々なシステム及び方法と関係して採用することができる無線ネットワーク環境を示した図である。
【図９】様々な側面により、マルチメディアコンテンツフローを生成してデータネットワーク全体を通じて転送するために動作する転送システムを具備する通信ネットワークを示した図である。
【図１０】コンテンツ引き渡しシステムにおいて用いるのに適したコンテンツプロバイダサーバーの様々な側面を示した図である。
【図１１】１つ以上の側面による、コンテンツ引き渡しシステムにおいて用いるのに適したサーバー又はデバイスを示した図である。
【図１２】様々な側面による、無線通信環境において確認プロトコル及びアクセスプロトコルを実行するのを容易にする装置を示した図である。
【図１】
2009517926.tif 000003
【図２】
2009517926.tif 000004
【図３】
2009517926.tif 000005
【図４】
2009517926.tif 000006
【図５】
2009517926.tif 000007
【図６】
2009517926.tif 000008
【図７】
2009517926.tif 000009
【図８】
2009517926.tif 000010
【図９】
2009517926.tif 000011
【図１０】
2009517926.tif 000012
【図１１】
2009517926.tif 000013
【図１２】
2009517926.tif 000014
【手続補正書】
【提出日】平成20年2月13日(2008.2.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
無線通信環境においてソフトウェアアップグレード通知を提供する方法であって、
ソフトウェアバージョン情報をサーバーから受信することと、
ソフトウェアアップグレードがユーザーデバイスにとって利用可能であるかどうかを決定するための確認プロトコルを実行することと、
ソフトウェアアップグレード通知を受信するためのアクセスプロトコルを実行することと、
ユーザーデバイスにおいて、アクセスプロトコルを実行してソフトウェアアップグレードを入手すること、とを具備する、方法。
【請求項２】
前記確認プロトコルは、サーバーと少なくとも１つのユーザーデバイスとの間におけるマルチキャスト接続を通じて実行されるプッシュ確認プロトコルである請求項１に記載の方法。
【請求項３】
マルチキャストチャネルを通じてソフトウェアアップグレード通知を送信することをさらに具備する請求項２に記載の方法。
【請求項４】
マルチキャストデータチャネルを通じて前記ソフトウェアバージョン情報を受信することをさらに具備する請求項２に記載の方法。
【請求項５】
前記通知において前記バージョン情報とともに受信されたソフトウェアＩＤが前記ユーザーデバイスに対応するかどうかを評価して前記受信されたソフトウェアバージョン情報が前記ユーザーデバイスに関連するかどうかを決定することをさらに具備する請求項４に記載の方法。
【請求項６】
前記ユーザーデバイスと前記サーバーとの間におけるポイントツーポイント接続を生成すること及びプル確認プロトコルを実行することをさらに具備する請求項１に記載の方法。
【請求項７】
前記ソフトウェアアップグレード情報を前記サーバーから要求することをさらに具備する請求項６に記載の方法。
【請求項８】
前記ソフトウェアバージョン情報を具備するサーバー応答を受信することをさらに具備する請求項７に記載の方法。
【請求項９】
前記サーバー応答内のバージョン番号が前記ユーザーデバイスに格納されたソフトウェアと関連づけられたバージョン番号よりも大きい場合はソフトウェアアップグレード通知を受信することをさらに具備する請求項８に記載の方法。
【請求項１０】
前記アクセスプロトコルは、定期的アクセスプロトコル、ユーザー開始アクセスプロトコル、トランザクションに基づくアクセスプロトコル、及びリリース時開始プロトコルのうちの少なくとも１つである請求項１に記載の方法。
【請求項１１】
前記アクセスプロトコルは、トークンに基づく手法をさらに具備し、クライアントトークン値が、マルチキャストチャネルにおいて定期的にアドバタイズされるサーバートークン値と比較される請求項１に記載の方法。
【請求項１２】
前記クライアントトークン値が有効でない場合は、プル確認プロトコルを実行することと、クライアントトークンを生成することと、前記クライアントトークン値を前記サーバートークン値と同じに設定すること、とをさらに具備する請求項１１に記載の方法。
【請求項１３】
前記クライアントトークン値は、前記サーバートークン値よりも大きいか又は等しいかどうかを決定することをさらに具備する請求項１１に記載の方法。
【請求項１４】
前記クライアントトークン値が前記サーバートークン値と等しいか又はより大きい場合は前記クライアントデバイスは最新のソフトウェアを有することを肯定応答することをさらに具備する請求項１３に記載の方法。
【請求項１５】
前記クライアントトークン値が前記サーバートークン値（モジュロｎ）よりも大きくなくさらに等しくない場合は、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にあるかどうかを決定することであって、サーバーは、ｍ（正の整数）の直近のサーバートークン値と関連づけられたソフトウェアアップグレード通知を送信し、ｎは、最大トークン値であること、をさらに具備する請求項１３に記載の方法。
【請求項１６】
前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にある場合は、プッシュ確認プロトコルを実行することと、前記クライアントトークン値を前記サーバートークン値と同じに設定すること、とをさらに具備する請求項１５に記載の方法。
【請求項１７】
前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にない場合は、プル確認プロトコルを実行することと、前記クライアントトークン値を前記サーバートークン値と同じに設定すること、とをさらに具備する請求項１５に記載の方法。
【請求項１８】
プッシュ確認プロトコルを予め決められた期間だけ実行し、プル確認プロトコルを後続させることによって前記ソフトウェアアップグレード通知を提供することをさらに具備する請求項１に記載の方法。
【請求項１９】
無線通信環境においてマルチキャスト及びユニキャスト接続を通じて通信するユーザーデバイスにソフトウェアアップグレード通知を提供するのを容易にする装置であって、
ソフトウェアバージョン情報を受信する受信機と、
確認プロトコル及びアクセスプロトコルを実行するプロセッサであって、前記アクセスプロトコルはソフトウェアアップグレード通知を入手するのに用いられ、さらにソフトウェアアップグレードを入手するためにユーザーデバイスによって実行可能であるプロセッサと、を具備する装置。
【請求項２０】
前記プロセッサは、トークンに基づくプロトコルを採用し、クライアントトークンがマルチキャストチャネルで定期的にアドバタイズされるサーバートークン値と比較され、前記クライアントトークンが前記ユーザーデバイスにおいて有効であるかどうかを決定する請求項１９に記載の装置。
【請求項２１】
前記プロセッサは、前記クライアントトークン値が有効でない場合は、プル確認プロトコルを実行し、クライアントトークンを生成し、前記クライアントトークン値を前記ソフトウェアバージョン情報とともに受信されたサーバートークン値と同じに設定する請求項２０に記載の装置。
【請求項２２】
前記プロセッサは、クライアントトークン値がサーバートークン値よりも大きいか又は等しいかどうかを決定する請求項１９に記載の装置。
【請求項２３】
前記プロセッサは、前記クライアントトークン値が前記サーバートークン値（モジュロｎ）よりも大きくなくさらに等しくない場合は、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にあるかどうかを決定し、サーバーは、ｍ（正の整数）の直近のサーバートークン値と関連づけられたソフトウェアアップグレード通知を送信し、ｎは、最大トークン値である請求項２２に記載の装置。
【請求項２４】
前記プロセッサは、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にある場合は、プッシュ確認プロトコルを実行し、前記クライアントトークン値を前記サーバートークン値と同じに設定する請求項２３に記載の装置。
【請求項２５】
前記プロセッサは、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にない場合は、プル確認プロトコルを実行し、前記クライアントトークン値を前記サーバートークン値と同じに設定する請求項２３に記載の装置。
【請求項２６】
プッシュ確認プロトコルを予め決められた期間だけ実行し、プル確認プロトコルを後続させることによって前記ソフトウェアアップグレード通知を提供することをさらに具備する請求項１９に記載の装置。
【請求項２７】
マルチキャスト及びユニキャスト接続の両方を通じてソフトウェアバージョン情報をサーバーから受信するための手段と、
ソフトウェアアップグレードがユーザーデバイスにとって利用可能であるかどうかを決定するための確認プロトコルを実行するための手段と、
ソフトウェアアップグレード通知を受信するためにアクセスプロトコルを実行するための手段と、
ユーザーデバイスにおいて、前記アクセスプロトコルを実行して前記ソフトウェアアップグレードを入手すること、とを具備する、方法。
【請求項２８】
前記アクセスプロトコルは、定期的アクセスプロトコル、ユーザー開始アクセスプロトコル、トランザクションに基づくアクセスプロトコル、及びリリース時開始プロトコルのうちの少なくとも１つである請求項２７に記載の装置。
【請求項２９】
トークンに基づくアクセスプロトコルを採用してクライアントトークンが前記ユーザーデバイスにおいて有効であるかどうかを決定するための手段をさらに具備する請求項２７に記載の装置。
【請求項３０】
前記クライアント値が存在しない場合は、ユニキャスト確認プロトコルを実行するための手段と、クライアントトークンを生成するための手段と、前記クライアントトークン値をサーバートークン値と同じに設定するための手段と、をさらに具備する請求項２９に記載の装置。
【請求項３１】
前記クライアントトークンが有効である場合は、クライアントトークン値がサーバートークン値よりも大きいか又は等しいかどうかを決定するための手段をさらに具備する請求項２９に記載の装置。
【請求項３２】
前記クライアントトークン値が前記サーバートークン値（モジュロｎ）よりも大きくなくさらに等しくない場合は、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にあるかどうかを決定するための手段であって、サーバーは、ｍ（正の整数）の直近のサーバートークン値と関連づけられたソフトウェアアップグレード通知を送信し、ｎは、最大トークン値である手段、をさらに具備する請求項３１に記載の装置。
【請求項３３】
前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にある場合は、マルチキャスト確認プロトコルを実行するための手段と、前記クライアントトークン値を前記サーバートークン値と同じに設定するための手段と、をさらに具備する請求項３２に記載の装置。
【請求項３４】
前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にない場合は、ユニキャスト確認プロトコルを実行するための手段と、前記クライアントトークン値を前記サーバートークン値と同じに設定するための手段と、をさらに具備する請求項３２に記載の装置。
【請求項３５】
マルチキャスト確認プロトコルを予め決められた期間だけ実行するための手段を採用し、ユニキャスト確認プロトコルを実行するための手段を後続
させることによって前記ソフトウェアアップグレード通知を提供するための手段をさらに具備する請求項２７に記載の装置。
【請求項３６】
コンピュータによって読み取り可能な媒体であって、
ソフトウェアバージョン情報を具備するオーバーヘッドメッセージをサーバーから受信し、
ソフトウェアアップグレードがユーザーデバイスにとって利用可能であるかどうかを決定するための確認プロトコルを実行し、
ソフトウェアアップグレード通知を受信するためのアクセスプロトコルを実行し、
ユーザーデバイスにおいて、前記アクセスプロトコルを実行して前記ソフトウェアアップグレードを入手するための、コンピュータによって実行可能な命令を具備するコンピュータプログラムを有する、コンピュータによって読み取り可能な媒体。
【請求項３７】
前記確認プロトコルは、サーバーと少なくとも１つのユーザーデバイスとの間におけるマルチキャスト接続を通じて実行されるプッシュ確認プロトコルである請求項３６に記載のコンピュータによって読み取り可能な媒体。
【請求項３８】
マルチキャストデータチャネルを通じて前記ソフトウェアバージョン情報を受信し、前記バージョン情報とともに受信されたソフトウェアＩＤが前記ユーザーデバイスに関連するかどうかを決定するための命令をさらに具備する請求項３７に記載のコンピュータによって読み取り可能な媒体。
【請求項３９】
前記ユーザーデバイスと前記サーバーとの間においてポイントツーポイント接続を生成してプル確認プロトコルを実行し、前記ソフトウェアアップグレード情報を前記サーバーに要求し、前記ソフトウェアバージョン情報を具備するサーバー応答を受信し、前記サーバー応答内のバージョン番号が前記ユーザーデバイスに格納されたソフトウェアと関連づけられたバージョン番号よりも大きい場合にソフトウェアアップグレード通信を受信するための命令と、をさらに具備する請求項３６に記載のコンピュータによって読み取り可能な媒体。
【請求項４０】
前記アクセスプロトコルは、定期的アクセスプロトコル、ユーザー開始アクセスプロトコル、トランザクションに基づくアクセスプロトコル、及びリリース時開始プロトコルのうちの少なくとも１つである請求項３６に記載のコンピュータによって読み取り可能な媒体。
【請求項４１】
トークンに基づくアクセスプロトコルを採用し、前記ユーザーデバイスにおいてクライアントトークンが有効であるかどうかを決定するための命令をさらに具備する請求項３６に記載のコンピュータによって読み取り可能な媒体。
【請求項４２】
前記クライアント値が有効でない場合は、プル確認プロトコルを実行し、クライアントトークンを生成し、前記クライアントトークン値をサーバートークン値と同じに設定するための命令をさらに具備する請求項４１に記載のコンピュータによって読み取り可能な媒体。
【請求項４３】
前記クライアントトークンが有効である場合は、クライアントトークン値がサーバートークン値よりも大きいか又は等しいかどうかを決定するための命令をさらに具備する請求項４１に記載のコンピュータによって読み取り可能な媒体。
【請求項４４】
前記クライアントトークン値が前記サーバートークン値（モジュロｎ）よりも大きくなくさらに等しくない場合は、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にあるかどうかを決定するための命令であって、サーバーは、ｍ（正の整数）の直近のサーバートークン値と関連づけられたソフトウェアアップグレード通知を送信し、ｎは、最大トークン値である命令、をさらに具備する請求項４３に記載のコンピュータによって読み取り可能な媒体。
【請求項４５】
前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にある場合は、プッシュ確認プロトコルを実行し、前記クライアントトークン値を前記サーバートークン値と同じに設定するための命令と、をさらに具備する請求項４４に記載のコンピュータによって読み取り可能な媒体。
【請求項４６】
前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にない場合は、プル確認プロトコルを実行し、前記クライアントトークン値を前記サーバートークン値と同じに設定するための命令と、をさらに具備する請求項４４に記載のコンピュータによって読み取り可能な媒体。
【請求項４７】
プッシュ確認プロトコルを予め決められた期間だけ実行し、プル確認プロトコルを後続させることによって前記ソフトウェアアップグレード通知を提供するための命令をさらに具備する請求項３６に記載のコンピュータによって読み取り可能な媒体。
【請求項４８】
無線通信環境においてスループットを向上させるための命令を実行するプロセッサであって、前記命令は、
ソフトウェアバージョン情報を有するオーバーヘッドメッセージをサーバーから受信することと、
ソフトウェアアップグレードがユーザーデバイスにとって利用可能であるかどうかを決定するための確認プロトコルを実行することと、
ソフトウェアアップグレード通知を受信するためのアクセスプロトコルを実行することと、
ユーザーデバイスにおいて、前記アクセスプロトコルを実行して前記サーバアップグレードを入手すること、とを具備するプロセッサ。
【請求項４９】
前記確認プロトコルは、サーバーと少なくとも１つのユーザーデバイスとの間におけるマルチキャストチャネルを通じて実行されるマルチキャスト確認プロトコルである請求項４８に記載のプロセッサ。
【請求項５０】
前記命令は、ポイントツーポイント接続を通じてユニキャスト確認プロトコルをさらに実行し、ソフトウェアバージョン情報を前記サーバーに要求し、前記ソフトウェアバージョン情報を具備するサーバー応答を受信し、前記サーバー応答内のバージョン番号が前記ユーザーデバイスに格納されたソフトウェアと関連づけられたバージョン番号よりも大きい場合にソフトウェアアップグレード通知を受信する請求項４８に記載のプロセッサ。
【請求項５１】
前記命令は、トークンに基づくアクセスプロトコルを実装することと、前記ユーザーデバイスにおいてクライアントトークンが有効であるかどうかを決定すること、とをさらに具備する請求項４８に記載のプロセッサ。
【請求項５２】
前記命令は、前記クライアント値が有効でない場合は、ユニキャスト確認プロトコルを実行することと、クライアントトークンを生成することと、前記クライアントトークン値をサーバートークン値と同じに設定すること、とをさらに具備する請求項５１に記載のプロセッサ。
【請求項５３】
前記命令は、前記クライアントトークンが有効である場合は、クライアントトークン値がサーバートークン値よりも大きいか又は等しいかどうかを決定することをさらに具備する請求項５１に記載のプロセッサ。
【請求項５４】
前記命令は、前記クライアントトークン値が前記サーバートークン値（モジュロｎ）よりも大きくなくさらに等しくない場合は、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にあるかどうかを決定することであって、サーバーは、ｍ（正の整数）の直近のサーバートークン値と関連づけられたソフトウェアアップグレード通知を送信し、ｎは、最大トークン値であること、をさらに具備する請求項５３に記載のプロセッサ。
【請求項５５】
前記命令は、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にある場合は、マルチキャスト確認プロトコルを実行することと、前記クライアントトークン値を前記サーバートークン値と同じに設定すること、とをさらに具備する請求項５４に記載のプロセッサ。
【請求項５６】
前記命令は、前記クライアントトークン値が前記サーバートークン値−ｍ（モジュロｎ）と前記サーバートークン値−１（モジュロｎ）の間にない場合は、ユニキャスト確認プロトコルを実行することと、前記クライアントトークン値を前記サーバートークン値と同じに設定すること、とをさらに具備する請求項５４に記載のプロセッサ。
【請求項５７】
前記命令は、マルチキャスト確認プロトコルを予め決められた期間だけ実行することによって前記ソフトウェアアップグレード通知を提供することと、前記予め決められた期間が経過後に前記ユーザーデバイスがユニキャスト確認プロトコルを開始するのを可能にすること、とをさらに具備する請求項４８に記載のプロセッサ。
【国際調査報告】
2009517926.tif 000015
2009517926.tif 000016
2009517926.tif 000017