(57)【要約】  アプリケーションが確立されたデータ接続を共有できるように、新しいアプリケーションによって識別された通信構成パラメータを、データ接続をすでに共有しているアプリケーションによって要求されたパラメータと比較する。新しいアプリケーションによって必要とされる（１つまたは複数の）専用構成パラメータとの競合がない場合、その新しいアプリケーションおよびデータ接続を使用している現在実行中のアプリケーションの各共有可能構成パラメータに合併規則を適用して、互いに許容できる構成を決定する。また、合併規則によって決定される折衷パラメータによって、すべてのアプリケーションがサポートされる程度の尺度をも決定する。新しいアプリケーションおよび実行中のアプリケーションの共有可能パラメータを最も良くサポートするデータ接続をその新しいアプリケーションに割り当てる。アプリケーションが終了するとき、残りのアプリケーションによって要求されたパラメータに合併規則を適用して、データ接続を再構成する。アプリケーションが構成パラメータの変更を要求するときにも同様のプロセスを使用する。
2010534040.tif 000002
【特許請求の範囲】
【請求項１】
専用および共有可能構成パラメータによって特徴づけられる複数のオープンデータ接続の１つを使用して複数のアプリケーションをサポートするための方法であって、
データ接続を要求している新しいアプリケーションによって指定された専用および共有可能構成パラメータを収集することと、
専用および共有可能パラメータに基づいて前記新しいアプリケーションに割り当てるための１つのオープンデータ接続を検討中の複数のオープンデータ接続の中から選択することと、
前記選択された１つのオープンデータ接続を前記アプリケーションに割り当てることと、を備える方法。
【請求項２】
前記新しいアプリケーションに割り当てるためのオープンデータ接続を検討中の前記複数のオープンデータ接続の中から連続的に選択することと、
各共有可能構成パラメータの合成パラメータ値を決定するために、前記新しいアプリケーションによって指定された各共有可能構成パラメータと、前記選択されたオープンデータ接続を使用している別のアプリケーションによって指定された各共有可能構成パラメータとに、パラメータ固有の合併規則を適用することと、
前記決定された合成値に基づいて前記選択されたオープンデータ接続に優先順位を割り当てることと、
検討中の複数のオープンデータ接続の中からオープンデータ接続を選択するステップと、合成パラメータ値を決定するために前記共有可能構成パラメータの各々にパラメータ固有の合併規則を適用するステップと、検討中の各オープンデータ接続が評価されるまで、前記選択されたオープンデータ接続に優先順位の値を割り当てるステップとを反復することと、
前記新しいアプリケーションに割り当てるための最高の割当て優先順位をもつ前記１つのオープンデータ接続を選択することと、
前記最高の割当て優先順位をもつ前記オープンデータ接続のために決定された前記合成パラメータ値を使用して前記割り当てられたオープンデータ接続を構成することと、をさらに備える請求項１の方法。
【請求項３】
選択されたデータ接続ごとに、前記新しいアプリケーションによって指定された専用構成パラメータが、前記選択されたデータ接続を使用している別のアプリケーションによって指定された専用構成パラメータと競合するかどうかを判断することと、
前記新しいアプリケーションによって要求された構成パラメータが、選択されたオープンデータ接続を使用している別のアプリケーションによって指定された専用パラメータと競合する、その選択されたオープンデータ接続を、検討から外すことと、
競合する専用要件の結果として、すべてのオープンデータ接続が検討から外された場合、新しいデータ接続を確立することと、をさらに備える請求項２の方法。
【請求項４】
１つのデータ接続を共有しているアプリケーションが終了するとき、前記１つのデータ接続を共有しているアプリケーションによって指定された共有可能構成パラメータに前記合併規則を再適用することと、
前記共有可能構成パラメータへの合併規則の前記再適用から得られた合成パラメータ値に基づいて前記１つのデータ接続を再構成することと、をさらに備える請求項２の方法。
【請求項５】
１つのデータ接続を共有している第１のアプリケーションから、１つまたは複数の共有可能構成パラメータ値を変更する要求を受信することと、
変更される合成構成パラメータ値を決定するために、前記１つまたは複数の共有可能構成パラメータ値と、前記１つのデータ接続を共有している各他のアプリケーションの対応する構成パラメータ値とに、合併規則を適用することと、
前記決定された変更される合成構成パラメータ値を使用して前記１つのデータ接続構成をアップデートすることと、をさらに備える請求項２の方法。
【請求項６】
１つのデータ接続を共有している第１のアプリケーションから、１つまたは複数の専用構成パラメータ値を変更する要求を受信することと、
前記変更される１つまたは複数の専用構成パラメータ値が、前記１つのデータ接続を使用している別のアプリケーションによって指定された対応する専用構成パラメータと競合するかどうかを判断することと、
変更される専用構成パラメータ値が、前記１つのデータ接続を使用している別のアプリケーションによって指定された対応する専用構成パラメータと競合すると判断された場合、１つまたは複数の専用構成パラメータ値を変更するための前記第１のアプリケーションからの前記要求を拒絶することと、をさらに備える請求項１の方法。
【請求項７】
前記決定された合成値に基づいて前記選択されたオープンデータ接続に割り当てられる前記優先順位が、前記決定された合成パラメータ値が前記選択されたオープンデータ接続を共有しているすべてのアプリケーションをサポートする程度を表す請求項２の方法。
【請求項８】
コンピューティングデバイスにおけるデータ接続を管理するための方法であって、
第１の合成構成パラメータを得るために、データ接続を要求している第１のアプリケーションによって指定された共有可能構成パラメータと、第１のオープンデータ接続を使用している第２のアプリケーションによって指定された対応する構成パラメータとに、パラメータ固有の合併規則を適用することと、
前記第１の合成構成パラメータを使用して前記第１のオープンデータ接続を構成することと、を備える方法。
【請求項９】
前記第１のオープンデータ接続の共有可能構成パラメータごとに、前記第１のアプリケーションと前記第２のアプリケーションとによって指定された前記共有可能構成パラメータにパラメータ固有の合併規則を適用するステップであって、各共有可能構成パラメータに適用される前記パラメータ固有の合併規則がメモリに記憶されている、適用するステップを反復することをさらに備える請求項８の方法。
【請求項１０】
前記第１の合成構成パラメータに基づいて前記第１のオープンデータ接続に第１の優先順位を割り当てることと、
第２の合成構成パラメータを得るために、前記データ接続を要求している前記第１のアプリケーションによって指定された前記共有可能構成パラメータと、第２のオープンデータ接続を使用している第３のアプリケーションによって指定された前記対応する構成パラメータとに、前記パラメータ固有の合併規則を適用することと、
前記第２の合成構成パラメータに基づいて前記第２のオープンデータ接続に第２の優先順位を割り当てることと、
前記第１の優先順位と第２の優先順位とに基づいて前記第１のオープンデータ接続と前記第２のオープンデータ接続との間で選択することと、
前記第１および第２のオープンデータ接続のうちの前記選択された１つを前記第１のアプリケーションに割り当てることと、
前記第１および第２の合成構成パラメータのうちの前記対応する１つに基づいて前記第１および第２のオープンデータ接続のうちの前記選択された１つを構成することと、をさらに備える請求項８の方法。
【請求項１１】
プロセッサと、
前記プロセッサに結合されたメモリと、を備えるモバイルデバイスであって、
前記プロセッサが、
データ接続を要求している新しいアプリケーションによって指定された専用および共有可能構成パラメータを収集することと、
専用および共有可能パラメータに基づいて前記新しいアプリケーションに割り当てるための１つのオープンデータ接続を検討中の複数のオープンデータ接続の中から選択することと、
前記選択された１つのオープンデータ接続を前記アプリケーションに割り当てることと、
を備えるステップを実施するためのプロセッサ実行可能命令を用いて構成されたモバイルデバイス。
【請求項１２】
前記プロセッサが、
前記新しいアプリケーションに割り当てるためのオープンデータ接続を検討中の前記複数のオープンデータ接続の中から連続的に選択することと、
各共有可能構成パラメータの合成パラメータ値を決定するために、前記新しいアプリケーションによって指定された各共有可能構成パラメータと、前記選択されたオープンデータ接続を使用している別のアプリケーションによって指定された各共有可能構成パラメータとに、パラメータ固有の合併規則を適用することと、
前記決定された合成値に基づいて前記選択されたオープンデータ接続に優先順位を割り当てることと、
検討中の複数のオープンデータ接続の中からオープンデータ接続を選択するステップと、合成パラメータ値を決定するために前記共有可能構成パラメータの各々にパラメータ固有の合併規則を適用するステップと、検討中の各オープンデータ接続が評価されるまで、前記選択されたオープンデータ接続に優先順位の値を割り当てるステップとを反復することと、
前記新しいアプリケーションに割り当てるための最高の割当て優先順位をもつ前記１つのオープンデータ接続を選択することと、
前記最高の割当て優先順位をもつ前記オープンデータ接続のために決定された前記合成パラメータ値を使用して前記割り当てられたオープンデータ接続を構成することと、をさらに備えるステップを実施するためのプロセッサ実行可能命令を用いて構成された請求項１１のモバイルデバイス。
【請求項１３】
前記プロセッサが、
選択されたデータ接続ごとに、前記新しいアプリケーションによって指定された専用構成パラメータが、前記選択されたデータ接続を使用している別のアプリケーションによって指定された専用構成パラメータと競合するかどうかを判断することと、
前記新しいアプリケーションによって要求された構成パラメータが、選択されたオープンデータ接続を使用している別のアプリケーションによって指定された専用パラメータと競合する、その選択されたオープンデータ接続を、検討から外すことと、
競合する専用要件の結果として、すべてのオープンデータ接続が検討から外された場合、新しいデータ接続を確立することと、をさらに備えるステップを実施するためのプロセッサ実行可能命令を用いて構成された請求項１２のモバイルデバイス。
【請求項１４】
前記プロセッサが、
１つのデータ接続を共有しているアプリケーションが終了するとき、前記１つのデータ接続を共有しているアプリケーションによって指定された共有可能構成パラメータに前記合併規則を再適用することと、
前記共有可能構成パラメータへの合併規則の前記再適用から得られた合成パラメータ値に基づいて前記１つのデータ接続を再構成することと、をさらに備えるステップを実施するためのプロセッサ実行可能命令を用いて構成された請求項１２のモバイルデバイス。
【請求項１５】
前記プロセッサが、
１つのデータ接続を共有している第１のアプリケーションから、１つまたは複数の共有可能構成パラメータ値を変更する要求を受信することと、
変更される合成構成パラメータ値を決定するために、前記１つまたは複数の共有可能構成パラメータ値と、前記１つのデータ接続を共有している各他のアプリケーションの対応する構成パラメータ値とに、合併規則を適用することと、
前記決定された変更される合成構成パラメータ値を使用して前記１つのデータ接続構成をアップデートすることと、をさらに備えるステップを実施するためのプロセッサ実行可能命令を用いて構成された請求項１２のモバイルデバイス。
【請求項１６】
前記プロセッサが、
１つのデータ接続を共有している第１のアプリケーションから、１つまたは複数の専用構成パラメータ値を変更する要求を受信することと、
前記変更される１つまたは複数の専用構成パラメータ値が、前記１つのデータ接続を使用している別のアプリケーションによって指定された対応する専用構成パラメータと競合するかどうかを判断することと、
変更される専用構成パラメータ値が、前記１つのデータ接続を使用している別のアプリケーションによって指定された対応する専用構成パラメータと競合すると判断された場合、１つまたは複数の専用構成パラメータ値を変更するための前記第１のアプリケーションからの前記要求を拒絶することと、をさらに備えるステップを実施するためのプロセッサ実行可能命令を用いて構成された請求項１１のモバイルデバイス。
【請求項１７】
前記決定された合成値に基づいて前記選択されたオープンデータ接続に割り当てられる前記優先順位が、前記決定された合成パラメータ値が前記選択されたオープンデータ接続を共有しているすべてのアプリケーションをサポートする程度を表すように、前記プロセッサがステップを実施するためのプロセッサ実行可能命令を用いて構成された請求項１２のモバイルデバイス。
【請求項１８】
プロセッサと、
前記プロセッサに結合されたメモリと、を備えるモバイルデバイスであって、
前記プロセッサが、
第１の合成構成パラメータを得るために、データ接続を要求している第１のアプリケーションによって指定された共有可能構成パラメータと、第１のオープンデータ接続を使用している第２のアプリケーションによって指定された対応する構成パラメータとに、パラメータ固有の合併規則を適用することと、
前記第１の合成構成パラメータを使用して前記第１のオープンデータ接続を構成することと、を備えるステップを実施するためのプロセッサ実行可能命令を用いて構成されたモバイルデバイス。
【請求項１９】
前記プロセッサが、前記第１のオープンデータ接続の共有可能構成パラメータごとに、前記第１のアプリケーションと前記第２のアプリケーションとによって指定された前記共有可能構成パラメータにパラメータ固有の合併規則を適用するステップであって、各共有可能構成パラメータに適用される前記パラメータ固有の合併規則がメモリに記憶されている、適用するステップを反復することをさらに備えるステップを実施するためのプロセッサ実行可能命令を用いて構成された請求項１８のモバイルデバイス。
【請求項２０】
前記プロセッサが、
前記第１の合成構成パラメータに基づいて前記第１のオープンデータ接続に第１の優先順位を割り当てることと、
第２の合成構成パラメータを得るために、前記データ接続を要求している前記第１のアプリケーションによって指定された前記共有可能構成パラメータと、第２のオープンデータ接続を使用している第３のアプリケーションによって指定された前記対応する構成パラメータとに、前記パラメータ固有の合併規則を適用することと、
前記第２の合成構成パラメータに基づいて前記第２のオープンデータ接続に第２の優先順位を割り当てることと、
前記第１の優先順位と第２の優先順位とに基づいて前記第１のオープンデータ接続と前記第２のオープンデータ接続との間で選択することと、
前記第１および第２のオープンデータ接続のうちの前記選択された１つを前記第１のアプリケーションに割り当てることと、
前記第１および第２の合成構成パラメータのうちの前記対応する１つに基づいて前記第１および第２のオープンデータ接続のうちの前記選択された１つを構成することと、をさらに備えるステップを実施するためのプロセッサ実行可能命令を用いて構成された請求項１８のモバイルデバイス。
【請求項２１】
データ接続を要求している新しいアプリケーションによって指定された専用および共有可能構成パラメータを収集する手段と、
専用および共有可能パラメータに基づいて前記新しいアプリケーションに割り当てるための１つのオープンデータ接続を検討中の複数のオープンデータ接続の中から選択する手段と、
前記選択された１つのオープンデータ接続を前記アプリケーションに割り当てる手段と、を備えるモバイルデバイス。
【請求項２２】
前記新しいアプリケーションに割り当てるためのオープンデータ接続を検討中の前記複数のオープンデータ接続の中から連続的に選択する手段と、
各共有可能構成パラメータの合成パラメータ値を決定するために、前記新しいアプリケーションによって指定された各共有可能構成パラメータと、前記選択されたオープンデータ接続を使用している別のアプリケーションによって指定された各共有可能構成パラメータとに、パラメータ固有の合併規則を適用する手段と、
前記決定された合成値に基づいて前記選択されたオープンデータ接続に優先順位を割り当てる手段と、
検討中の複数のオープンデータ接続の中からオープンデータ接続を選択するステップと、合成パラメータ値を決定するために前記共有可能構成パラメータの各々にパラメータ固有の合併規則を適用するステップと、検討中の各オープンデータ接続が評価されるまで、前記選択されたオープンデータ接続に優先順位の値を割り当てるステップとを反復する手段と、
前記新しいアプリケーションに割り当てるための最高の割当て優先順位をもつ前記１つのオープンデータ接続を選択する手段と、
前記最高の割当て優先順位をもつ前記オープンデータ接続のために決定された前記合成パラメータ値を使用して前記割り当てられたオープンデータ接続を構成する手段と、をさらに備える請求項２１のモバイルデバイス。
【請求項２３】
選択されたデータ接続ごとに、前記新しいアプリケーションによって指定された専用構成パラメータが、前記選択されたデータ接続を使用している別のアプリケーションによって指定された専用構成パラメータと競合するかどうかを判断する手段と、
前記新しいアプリケーションによって要求された構成パラメータが、選択されたオープンデータ接続を使用している別のアプリケーションによって指定された専用パラメータと競合する、その選択されたオープンデータ接続を、検討から外す手段と、
競合する専用要件の結果として、すべてのオープンデータ接続が検討から外された場合、新しいデータ接続を確立する手段と、をさらに備える請求項２２のモバイルデバイス。
【請求項２４】
１つのデータ接続を共有しているアプリケーションが終了するとき、前記１つのデータ接続を共有しているアプリケーションによって指定された共有可能構成パラメータに前記合併規則を再適用する手段と、
前記共有可能構成パラメータへの合併規則の前記再適用から得られた合成パラメータ値に基づいて前記１つのデータ接続を再構成する手段と、をさらに備える請求項２２のモバイルデバイス。
【請求項２５】
１つのデータ接続を共有している第１のアプリケーションから、１つまたは複数の共有可能構成パラメータ値を変更する要求を受信する手段と、
変更される合成構成パラメータ値を決定するために、前記１つまたは複数の共有可能構成パラメータ値と、前記１つのデータ接続を共有している各他のアプリケーションの対応する構成パラメータ値とに、合併規則を適用する手段と、
前記決定された変更される合成構成パラメータ値を使用して前記１つのデータ接続構成をアップデートする手段と、をさらに備える請求項２２のモバイルデバイス。
【請求項２６】
１つのデータ接続を共有している第１のアプリケーションから、１つまたは複数の専用構成パラメータ値を変更する要求を受信する手段と、
前記変更される１つまたは複数の専用構成パラメータ値が、前記１つのデータ接続を使用している別のアプリケーションによって指定された対応する専用構成パラメータと競合するかどうかを判断する手段と、
変更される専用構成パラメータ値が、前記１つのデータ接続を使用している別のアプリケーションによって指定された対応する専用構成パラメータと競合すると判断された場合、１つまたは複数の専用構成パラメータ値を変更するための前記第１のアプリケーションからの前記要求を拒絶する手段と、をさらに備える請求項２１のモバイルデバイス。
【請求項２７】
前記決定された合成値に基づいて前記選択されたオープンデータ接続に割り当てられる前記優先順位が、前記決定された合成パラメータ値が前記選択されたオープンデータ接続を共有しているすべてのアプリケーションをサポートする程度を表す請求項２２のモバイルデバイス。
【請求項２８】
コンピューティングデバイスにおけるデータ接続を管理するためのモバイルデバイスであって、
第１の合成構成パラメータを得るために、データ接続を要求している第１のアプリケーションによって指定された共有可能構成パラメータと、第１のオープンデータ接続を使用している第２のアプリケーションによって指定された対応する構成パラメータとに、パラメータ固有の合併規則を適用する手段と、
前記第１の合成構成パラメータを使用して前記第１のオープンデータ接続を構成する手段と、を備えるモバイルデバイス。
【請求項２９】
前記第１のオープンデータ接続の共有可能構成パラメータごとに、前記第１のアプリケーションと前記第２のアプリケーションとによって指定された前記共有可能構成パラメータにパラメータ固有の合併規則を適用するステップであって、各共有可能構成パラメータに適用される前記パラメータ固有の合併規則がメモリに記憶されている、適用するステップを反復する手段をさらに備える請求項２８のモバイルデバイス。
【請求項３０】
前記第１の合成構成パラメータに基づいて前記第１のオープンデータ接続に第１の優先順位を割り当てる手段と、
第２の合成構成パラメータを得るために、前記データ接続を要求している前記第１のアプリケーションによって指定された前記共有可能構成パラメータと、第２のオープンデータ接続を使用している第３のアプリケーションによって指定された前記対応する構成パラメータとに、前記パラメータ固有の合併規則を適用する手段と、
前記第２の合成構成パラメータに基づいて前記第２のオープンデータ接続に第２の優先順位を割り当てる手段と、
前記第１の優先順位と第２の優先順位とに基づいて前記第１のオープンデータ接続と前記第２のオープンデータ接続との間で選択する手段と、
前記第１および第２のオープンデータ接続のうちの前記選択された１つを前記第１のアプリケーションに割り当てる手段と、
前記第１および第２の合成構成パラメータのうちの前記対応する１つに基づいて前記第１および第２のオープンデータ接続のうちの前記選択された１つを構成する手段と、をさらに備える請求項２８の方法
【請求項３１】
データ接続を要求している新しいアプリケーションによって指定された専用および共有可能構成パラメータを収集することと、
専用および共有可能パラメータに基づいて前記新しいアプリケーションに割り当てるための１つのオープンデータ接続を検討中の複数のオープンデータ接続の中から選択することと、
前記選択された１つのオープンデータ接続を前記アプリケーションに割り当てることと、を備えるステップをモバイルデバイスのプロセッサが実施することを引き起こすプロセッサ実行可能ソフトウェア命令を記憶した有形記憶媒体。
【請求項３２】
前記新しいアプリケーションに割り当てるためのオープンデータ接続を検討中の前記複数のオープンデータ接続の中から連続的に選択することと、
各共有可能構成パラメータの合成パラメータ値を決定するために、前記新しいアプリケーションによって指定された各共有可能構成パラメータと、前記選択されたオープンデータ接続を使用している別のアプリケーションによって指定された各共有可能構成パラメータとに、パラメータ固有の合併規則を適用することと、
前記決定された合成値に基づいて前記選択されたオープンデータ接続に優先順位を割り当てることと、
検討中の複数のオープンデータ接続の中からオープンデータ接続を選択するステップと、合成パラメータ値を決定するために前記共有可能構成パラメータの各々にパラメータ固有の合併規則を適用するステップと、検討中の各オープンデータ接続が評価されるまで、前記選択されたオープンデータ接続に優先順位の値を割り当てるステップとを反復することと、
前記新しいアプリケーションに割り当てるための最高の割当て優先順位をもつ前記１つのオープンデータ接続を選択することと、
前記最高の割当て優先順位をもつ前記オープンデータ接続のために決定された前記合成パラメータ値を使用して前記割り当てられたオープンデータ接続を構成することと、をさらに備えるステップを実施するためのプロセッサ実行可能命令をさらに記憶した請求項３１の有形記憶媒体。
【請求項３３】
選択されたデータ接続ごとに、前記新しいアプリケーションによって指定された専用構成パラメータが、前記選択されたデータ接続を使用している別のアプリケーションによって指定された専用構成パラメータと競合するかどうかを判断することと、
前記新しいアプリケーションによって要求された構成パラメータが、選択されたオープンデータ接続を使用している別のアプリケーションによって指定された専用パラメータと競合する、その選択されたオープンデータ接続を、検討から外すことと、
競合する専用要件の結果として、すべてのオープンデータ接続が検討から外された場合、新しいデータ接続を確立することと、をさらに備えるステップを実施するためのプロセッサ実行可能命令をさらに記憶した請求項３２の有形記憶媒体。
【請求項３４】
１つのデータ接続を共有しているアプリケーションが終了するとき、前記１つのデータ接続を共有しているアプリケーションによって指定された共有可能構成パラメータに前記合併規則を再適用することと、
前記共有可能構成パラメータへの合併規則の前記再適用から得られた合成パラメータ値に基づいて前記１つのデータ接続を再構成することと、をさらに備えるステップを実施するためのプロセッサ実行可能命令をさらに記憶した請求項３２の有形記憶媒体。
【請求項３５】
１つのデータ接続を共有している第１のアプリケーションから、１つまたは複数の共有可能構成パラメータ値を変更する要求を受信することと、
変更される合成構成パラメータ値を決定するために、前記１つまたは複数の共有可能構成パラメータ値と、前記１つのデータ接続を共有している各他のアプリケーションの対応する構成パラメータ値とに、合併規則を適用することと、
前記決定された変更される合成構成パラメータ値を使用して前記１つのデータ接続構成をアップデートすることと、をさらに備えるステップを実施するためのプロセッサ実行可能命令をさらに記憶した請求項３２の有形記憶媒体。
【請求項３６】
１つのデータ接続を共有している第１のアプリケーションから、１つまたは複数の専用構成パラメータ値を変更する要求を受信することと、
前記変更される１つまたは複数の専用構成パラメータ値が、前記１つのデータ接続を使用している別のアプリケーションによって指定された対応する専用構成パラメータと競合するかどうかを判断することと、
変更される専用構成パラメータ値が、前記１つのデータ接続を使用している別のアプリケーションによって指定された対応する専用構成パラメータと競合すると判断された場合、１つまたは複数の専用構成パラメータ値を変更するための前記第１のアプリケーションからの前記要求を拒絶することと、をさらに備えるステップを実施するためのプロセッサ実行可能命令をさらに記憶した請求項３１の有形記憶媒体。
【請求項３７】
前記決定された合成値に基づいて前記選択されたオープンデータ接続に割り当てられる前記優先順位が、前記決定された合成パラメータ値が前記選択されたオープンデータ接続を共有しているすべてのアプリケーションをサポートする程度を表す請求項３２の有形記憶媒体。
【請求項３８】
第１の合成構成パラメータを得るために、データ接続を要求している第１のアプリケーションによって指定された共有可能構成パラメータと、第１のオープンデータ接続を使用している第２のアプリケーションによって指定された対応する構成パラメータとに、パラメータ固有の合併規則を適用することと、
前記第１の合成構成パラメータを使用して前記第１のオープンデータ接続を構成することと、を備えるステップをモバイルデバイスのプロセッサが実施することを引き起こすプロセッサ実行可能ソフトウェア命令を記憶した有形記憶媒体。
【請求項３９】
前記第１のオープンデータ接続の共有可能構成パラメータごとに、前記第１のアプリケーションと前記第２のアプリケーションとによって指定された前記共有可能構成パラメータにパラメータ固有の合併規則を適用するステップであって、各共有可能構成パラメータに適用される前記パラメータ固有の合併規則がメモリに記憶されている、適用するステップを反復することをさらに備えるステップを実施するためのプロセッサ実行可能命令をさらに記憶した請求項３８の有形記憶媒体。
【請求項４０】
前記第１の合成構成パラメータに基づいて前記第１のオープンデータ接続に第１の優先順位を割り当てることと、
第２の合成構成パラメータを得るために、前記データ接続を要求している前記第１のアプリケーションによって指定された前記共有可能構成パラメータと、第２のオープンデータ接続を使用している第３のアプリケーションによって指定された前記対応する構成パラメータとに、前記パラメータ固有の合併規則を適用することと、
前記第２の合成構成パラメータに基づいて前記第２のオープンデータ接続に第２の優先順位を割り当てることと、
前記第１の優先順位と第２の優先順位とに基づいて前記第１のオープンデータ接続と前記第２のオープンデータ接続との間で選択することと、
前記第１および第２のオープンデータ接続のうちの前記選択された１つを前記第１のアプリケーションに割り当てることと、
前記第１および第２の合成構成パラメータのうちの前記対応する１つに基づいて前記第１および第２のオープンデータ接続のうちの前記選択された１つを構成することと、をさらに備えるステップを実施するためのプロセッサ実行可能命令をさらに記憶した請求項３８の有形記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ワイヤレスデータネットワークに関し、より詳細には、ネットワークリソースを効率的に使用して複数の多様なデータアプリケーションをサポートすることに関する。
【０００２】
本出願は、全内容が参照により本明細書に組み込まれる、２００７年７月１６日に出願された「Ｓｕｐｐｏｒｔｉｎｇ  Ｍｕｌｔｉｐｌｅ  Ｄｉｖｅｒｓｉｆｉｅｄ  Ｄａｔａ  Ａｐｐｌｉｃａｔｉｏｎｓ  Ｗｉｔｈ  Ｅｆｆｉｃｉｅｎｔ  Ｕｓｅ  ｏｆ  Ｎｅｔｗｏｒｋ  Ｒｅｓｏｕｒｃｅｓ」と題する米国仮特許出願第６０／９５０，１１０号の優先権の利益を主張するものである。
【背景技術】
【０００３】
インターネットなどの通信ネットワークの使用および人気が常に拡大するにつれて、ワールドワイドウェブおよび電子メールサービスのような通信ネットワークサービスを享受するユーザの数はますます多くなっている。最近、そのようなネットワークを介してデータおよびメッセージを送信および受信するために、個人情報マネージャおよびハンドヘルドコンピュータなどの情報処理端末に加えて、データ入力機能をもつセルラー電話が広範囲に使用されるようになった。
【０００４】
セルラー電話はまた、より高性能になりつつあり、したがって多種多様なプログラムを実行することが可能である。多くのユーザが自分のセルラー電話をポータブルコンピュータとして使用しており、ゲーム、生産性ソフトウェア、音楽およびビデオプレーヤ、インスタントメッセージングプログラム、ＧＰＳプログラムならびに多数の他のプログラムなど、複数のアプリケーションを実行している。現在セルラー電話上で実行することが可能なプログラムの多様性はほとんど無限である。
【０００５】
セルラー電話上で実行される各アプリケーションは、異なる通信構成を必要とする。各構成は、アプリケーションのエクスポートされた挙動、およびそれが提供するサービスのタイプに依存する。たとえば、全地球測位システム（ＧＰＳ）アプリケーションは、シングルキャリア無線伝送技術（１ｘ  ＲＴＴ）システムが作動することのみを必要とし、Ｅｖｏｌｕｔｉｏｎ−Ｄａｔａ  Ｏｎｌｙ（ＥＶＤＯ）ネットワークサービス上では実行できない。同様に、ボイスオーバーＩＰ（ＶｏＩＰ）アプリケーションは、所要のサービス品質（ＱＯＳ）機能を提供することもできる高データ転送速度ネットワーク（たとえば、ＤｏＲｅｖ  Ａ、ＷＬＡＮまたはＨＳＰＤＡ）を必要とする。プッシュツートーク（ＰＴＴ）アプリケーションは、限られた信頼性をもつ最小遅延経路を得るように無線レイヤ（ＲＬＰ／ＲＬＣ）を構成する。実際には、アプリケーションのタイプごとに個別の専用データ接続／無線経路を設置することは、実行可能でもなく、コスト効果的でもない。
【発明の概要】
【０００６】
様々な実施形態は、限られた数の無線／ネットワークリソースを効率的に利用して多様なアプリケーションをサポートするための方法およびシステムを提供する。実施形態は、複数の多様なアプリケーションが通信接続を共有することによって所望のデータ接続サービスにアクセスできるようにする。様々な実施方法は、コンピューティングデバイス内で動作しているコンピューティングデバイス内の接続マネージャソフトウェアモジュール中で実施される。接続マネージャは、新しいアプリケーション、ならびにデータ接続を共有している複数のアプリケーションの各々のための、指定された専用および共有可能データ接続構成パラメータを収集する。データ接続ごとに、接続マネージャは、新しいアプリケーションによって指定された専用パラメータのいずれかが、各データ接続をすでに使用しているアプリケーションによって必要とされる専用パラメータと競合するかどうかを判断することができる。データ接続が、既存の専用パラメータと、新しいアプリケーションによって指定された専用パラメータとの間の競合を有する場合、そのデータ接続はさらなる検討から外される。専用パラメータの競合がデータ接続上に存在しない場合、接続マネージャは、共有可能構成パラメータの各々の合併規則に基づいて合成値を計算する。接続マネージャはまた、計算された合成値がデータ接続を使用しているアプリケーションを満足させる程度に基づいて、各データ接続に優先順位または品質の尺度を割り当てる。割り当てられた優先順位または品質の尺度に基づいて、接続マネージャは、新しいアプリケーションに割り当てるべき最適なデータ接続を選択し、計算された合成パラメータ値を使用してデータ接続を構成する。また、アプリケーションが終了するとき、およびアプリケーションが同様の方法を使用して変更されるデータ接続構成パラメータを要求するときにデータ接続構成はアップデートされる。
【０００７】
本明細書に組み込まれ、本明細書の一部をなす添付の図面は、本発明の例示的な実施形態を説明し、上記の概略的な説明および下記の詳細な説明とともに、本発明の特徴について説明するために役立つ。
【図面の簡単な説明】
【０００８】
【図１】ワイヤレスセルラーネットワークのシステムブロック図。
【図２Ａ】様々な実施形態での使用に適したデータ接続パラメータデータテーブルのデータ構造図。
【図２Ｂ】様々な実施形態での使用に適したデータ接続パラメータデータテーブルのデータ構造図。
【図３】共有データ接続を確立するのに適した一実施方法のプロセスフロー図。
【図４】アプリケーションが終了するときに共有データ接続を管理するのに適した一実施方法のプロセスフロー図。
【図５】データ接続を使用しているアプリケーションが変更される通信パラメータを要求するときにデータ接続を管理するのに適した一実施方法のプロセスフロー図。
【図６】データ接続を使用しているアプリケーションが通信パラメータの変更を要求するときにデータ接続を管理するのに適した代替実施方法のプロセスフロー図。
【図７】様々な実施形態での使用に適した例示的なコンピューティングデバイスの回路ブロック図。
【図８】様々な実施形態での使用に適した例示的なパーソナルコンピュータの回路ブロック図。
【発明を実施するための形態】
【０００９】
本明細書では、「例示的な」という用語は、本明細書では「例、事例、または例示として役立つこと」を意味するために使用する。本明細書で「例示的な」と説明されたいかなる実装形態も、必ずしも他の実装形態よりも好ましいまたは有利であると解釈されるべきではない。
【００１０】
本明細書で使用する「コンピューティングデバイス」、「モバイルデバイス」、および「ポータブルコンピューティングデバイス」という用語は、セルラー電話、個人情報端末（ＰＤＡ）、パームトップコンピュータ、ワイヤレス電子メール受信機およびセルラー受話器（たとえば、Ｂｌａｃｋｂｅｒｒｙ（登録商標）およびＴｒｅｏ（登録商標）デバイス）、マルチメディアインターネット対応セルラー電話（たとえば、ｉＰｈｏｎｅ（登録商標））、パーソナルコンピュータで使用するワイヤレスネットワークトランシーバカード、ならびに、プログラマブルプロセッサおよびメモリおよびワイヤレスネットワークに接続する機能を含む同様のパーソナル電子デバイスのうちのいずれか１つまたはすべてを指す。これらの用語はまた、有線およびワイヤレスのネットワークトランシーバ回路をもつ、ラップトップコンピュータまたはデスクトップコンピュータなどのパーソナルコンピュータを包含し、あるいはパーソナルコンピュータ上でまたはパーソナルコンピュータとともに実装することもできる様々な実施形態の説明において使用される。様々な実施形態の説明は、そのようなネットワークのセルタワーを含むセルラー電話ネットワークシステムを指すが、本発明の範囲および特許請求の範囲は、たとえば、ＷｉＦｉ、ＷｉＭａｘ、セルラー電話データネットワーク、近視野通信データリンク、および他のワイヤレスデータネットワーク通信技術などのワイヤレスネットワーク、ならびに、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）などの有線ネットワーク、およびインターネットを含む通信システムを包含する。
【００１１】
本明細書で使用する「データネットワーク接続」、「データ接続」、および「接続」という用語は、別のコンピューティングデバイスまたはネットワークへの通信リンクを確立するためにコンピューティングデバイスプロセッサが利用できるポートまたは回線を指すために互換的に使用される。通信リンクはコマンドおよびネットワーク構成情報を通信することもできるので、これらの用語は、どんなタイプの通信接続にも適用され、特定のタイプのデータ接続に限定されない。また、これらの用語は、有線およびワイヤレスのネットワークを含むどんなタイプの通信技術にも適用される。
【００１２】
多くのコンピューティングデバイスは、いくつかの構成パラメータによって特徴づけられる様々なデータネットワーク接続を用いて外部の有線およびワイヤレスのネットワークとのデータ接続を確立することができる。たとえば、コンピューティングデバイスは、セキュアな通信リンクを確立するためのセキュアソケットレイヤ（ＳＳＬ）プロトコルを利用してＷｉ−Ｆｉネットワークを介して、または特定のＱＯＳパラメータを利用してＥＶＤＯデータリンクを介して、データ接続を確立することができる。データ接続特性構成パラメータは、所望のサービスを示すためにデータ接続を使用するコンピューティングデバイス上で実行されている特定のアプリケーションによって要求される。これらのパラメータは、データネットワーク接続をセットアップするときにデータスタックおよびネットワークコントローラにパスされる。
【００１３】
多くの場合、アプリケーションはデータ接続を共有することが可能である。たとえば、最小のデータ接続要件をもつ電子メールアプリケーションは、ビデオストリームビューアなどのよりロバストなアプリケーションとのデータ接続を共有することが可能である。場合によっては、複数のロバストなアプリケーションの各々の特定の要件が競合しない場合、それらの複数のロバストなアプリケーションはデータ接続を共有することができる。複数のアプリケーション間でデータ接続を共有することにより、限られた数の使用可能なデータ接続をもつコンピューティングデバイス上でより多くのアプリケーションを同時に実行することが可能になる。
【００１４】
ワイヤレスデータネットワークは、たとえば、マルチメディアストリーミング（音声、ビデオなど）、ＧＰＳ、ＳＭＳ、ＶＯＩＰ、ＰＴＴなどを含む、多様なアプリケーションをサポートすることができる。一般に、各アプリケーションは異なるタイプのワイヤレスデータネットワーク接続を必要とする。ワイヤレスネットワークは、十分柔軟なので、種々のタイプのデータ接続オプションをサポートするように別様に構成できる。いくつかのそのようなデータ接続構成パラメータまたはオプションには、たとえば以下のものがある。
【００１５】
ＣＤＭＡ、ＵＭＴＳ、ロングタームエボリューション（ＬＴＥ）、ＷｉＦｉ、ＷｉＭＡＸなどを含む、様々なワイヤレスネットワーク技術、
ベアラモード（ＣＤＭＡ（１ｘ、ＥｖＤＯ、Ｄｏ  Ｒｅｖ  Ａ／Ｂ、Ｈｙｂｒｉｄなど）、ＵＭＴＳ（ＧＰＲＳ、ＥＤＧＥ、ＨＳＰＡ）、ＷＬＡＮ（ＩＥＥＥ８０２．１１ａ、ｂ、ｇなど）、ＷｉＭＡＸ（ＩＥＥＥ８０２．１６ｄ、８０２．１６ｅなど））、
無線ベアラ構成（たとえば、ＣＤＭＡのＲＬＰパラメータ、ＵＭＴＳのＲＬＣパラメータ）、
最大伝送単位（ＭＴＵ）、フレーミングタイプなどのパラメータを含む、リンクレイヤパラメータ、
データ転送速度、遅延、トラフィッククラス、信頼性などのパラメータを含む、サービス品質（ＱＯＳ）、
プロトコルヘッダ圧縮（ＲＯＨＣ、ＩＰＨＣ  ＶＪ、なし）、データ圧縮（ＣＣＰなど）などのパラメータを含む、ＩＰトラフィック処理、
インタラクティブ、リアルタイム、バックグラウンド、データなどを含む、トラフィッククラス、
ＩＰｖ４、ＩＰｖ６、およびモバイルＩＰ（ｖ４／ｖ６）を含む、ＩＰプロトコルタイプ、
ドメイン、サーバアクセス可能性などの、提供されるサービス、
暗号化を用いるまたは用いない、ＩＰＳｅｃ（ＥＳＰ、ＡＨなど）などの、セキュリティ、
ＣＨＡＰ、ＰＡＰ、ＥＡＰ−ＡＫＡ、ＥＡＰ−ＳＩＭなどを含む、（もしあれば）使用される認証プロトコル、および
非アクティビティタイマー、休止状態など、その他のパラメータ。たとえば、非アクティビティタイマーは、リソースが自動的に解放される前にリソース使用をどれくらい待つべきか、すなわち、未使用のデータ接続上で休止状態を開始するために使用できるパラメータを示す。
【００１６】
データネットワーク接続を構成するために利用可能な様々なプロトコル、設定およびオプションを、本明細書では一般にパラメータと呼び、このパラメータの各々は複数の値または選択項目を備えることができる。上記のリストが示すように、いくつかのパラメータは、ＣＤＭＡ、ＵＭＴＳ、ＷＩＦＩ、イーサネット（登録商標）などの値を有することができる技術タイプ、およびＣＨＡＰ、ＰＡＰなどの値を有することができる認証タイプなど、表記上の量子化できないオプションである。たとえば、ビデオアプリケーションは、パラメータ「ＩＰプロトコルバージョン」および「ＱＯＳ」に対して、それぞれ値「ＩＰｖ４」および「３２ｋｂｐｓ」を指定するデータ接続を要求することができる。アプリケーションが利用できる各パラメータは「専用」または「共有可能」のいずれかとすることができる。
【００１７】
２つ以上のアプリケーションがデータ接続を共有する能力は、それらのアプリケーションが、互換性のあるデータ接続パラメータを指定するかどうかに依存する。上記の例示的なパラメータのリストが示すように、いくつかのパラメータは、アプリケーションが、特定のパラメータを満たすデータ接続を用いてしか機能できないという点で「専用」であるが、他のパラメータは、アプリケーションが、許容できるパラメータ値で構成されたデータ接続を用いて機能できるという点で「共有可能」である。「専用」および「共有可能」という用語は、本明細書では、アプリケーションが折衷を許容する（すなわち、アプリケーションの要求するものとは異なる構成パラメータ設定または値を用いたデータ接続を許容する）ことができるデータ接続構成パラメータおよび許容することができないデータ接続構成パラメータについて説明するためにのみ使用する。すなわち、折衷できない構成パラメータを本明細書では「専用」と呼び、折衷できる構成パラメータを本明細書では「共有可能」と呼ぶ。同じ専用パラメータを指定する２つのアプリケーションは、その特定の専用パラメータを満たすデータ通信を共有することができるので、「専用」という用語は、データ接続が単一のアプリケーション専用でなければならないことを意味するものと解釈すべきではない。
【００１８】
「専用」データ接続構成パラメータは、要求アプリケーションが指定どおりに有しなければならない構成の詳細であり、折衷または変更すれば、必ず要求アプリケーションが失敗する。たとえば、ＣＤＭＡ技術データ接続を必要とするアプリケーションは、一般に、ＣＤＭＡ（たとえば、ＷＩＦＩ、ＬＡＮまたはＵＭＴＳ）以外のデータ接続では動作することができない。したがって、ネットワーク技術は「専用」データ接続構成パラメータの一例である。すなわち、２つのアプリケーションは、両方のアプリケーションがＣＤＭＡ互換である場合にのみそのようなＣＤＭＡデータ接続を共有することができる。たとえば、１つのアプリケーションはＣＤＭＡを必要とするが、別のアプリケーションはＷＩＦＩを必要とする場合、専用ネットワーク技術パラメータ上でのこの競合は、これらの２つのアプリケーションが同じデータ接続を共有できないことを意味する。これらの２つのアプリケーションが同時に実行されるためには、コンピューティングデバイスは２つの別個のデータ接続を確立しなければならない。専用構成パラメータの典型的な例には、ネットワーク技術、ベアラモード、無線ベアラ構成、およびＩＰプロトコルタイプ（たとえば、ＩＰｖ４対ＩＰｖ６）がある。
【００１９】
対照的に、「共有可能」データ接続構成パラメータは、要求アプリケーションが折衷または相違を許容し、なお機能することができる構成の詳細である。たとえば、アプリケーションがデータ伝送速度を共有可能パラメータとして指定する場合、そのアプリケーションは、より遅いまたはより速いデータ転送速度で機能することが可能である。したがって、データ接続要求において異なるデータ伝送速度を指定する２つのアプリケーションは、２つの指定された速度のうちのより大きい方に等しいデータ転送速度を有するデータ接続など、単一のデータ接続を共有することが可能である。典型的な共有可能構成パラメータの例には、ＭＴＵ、データ伝送速度、ＱｏＳ、および非アクティビティタイマーがある。
【００２０】
一部のアプリケーションは、他のアプリケーションが専用として取り扱ういくつかの構成パラメータで妥協することが可能なので、構成パラメータの専用性および共有可能性はアプリケーション固有である。たとえば、ＩＰプロトコルタイプ（すなわち、ＩＰｖ４対ＩＰｖ６）は典型的には専用パラメータであるが、いくつかのＩＰｖ６アプリケーションは、ＩＰトネリングによってＩＰｖ４に構成されたデータ接続上で機能することができる。別の例として、ＱｏＳは典型的には目標サービス品質を示すものとして共有可能であるが、ストリーミングビデオなどのいくつかのアプリケーションは、指定よりも小さいＱｏＳでは機能することができないことがある。
【００２１】
これまで、データ接続を必要とするアプリケーションがコンピューティングデバイス上で起動された場合、そのデバイスの要求された構成パラメータを満たす新しいデータ接続が開かれた。コンピューティングデバイスが新しいデータ接続を開くのに十分な通信リソース（たとえば、通信ポートまたはトランシーバ回路）を有しない場合、アプリケーションが起動に失敗するか、あるいは通信リソースを解放するために別のアプリケーションを終了または休止して新しいデータ接続を確立しなければならなかった。代替として、コンピューティングデバイスはアプリケーションを既存のデータネットワーク接続に接続することができた。しかしながら、その既存のデータネットワーク接続が非互換のパラメータを用いて構成されていた場合、アプリケーションの起動が失敗するか、あるいはデータ接続がパフォーマンスの劣化を受け、それによりオープンデータ接続を共有しているすべてのアプリケーションのパフォーマンスが影響を受けることがあった。ポータブルコンピューティングデバイスは一般に限られた通信リソースを有し、接続の非互換性によるアプリケーションの失敗はユーザをいらだたせるので、限られた通信リソースの中でアプリケーションを効率的に割り当てるための方法が必要である。
【００２２】
様々な実施形態は、アプリケーションを失敗させる可能性がある競合を回避しながら、複数のアプリケーションがデータ接続を共有できるようにするための方法を提供する。システムソフトウェアと協働してまたはその一部として動作するソフトウェア機能モジュールなど、ソフトウェア中に接続マネージャを設けることができる。接続マネージャは、データ接続を要求している新しいアプリケーションによって識別された構成パラメータを収集することができる。接続マネージャは、次いで、新しいアプリケーションをサポートする候補として検討中の各可能なデータ接続を評価することができる。検討中のオープンデータ接続ごとに、接続マネージャは、要求アプリケーションによって指定された各専用パラメータを評価して、データ接続を使用している他のアプリケーションとの競合があるかどうかを判断することができる。新しいアプリケーションの専用パラメータと、データ接続を使用している別のアプリケーションの対応する専用パラメータとの間に競合がある場合、そのデータ接続の候補はさらなる検討から外され（すなわち、新しいアプリケーションをサポートする候補として評価されているデータ接続のリストから取り除かれ）、次のデータ接続が評価される。アプリケーション専用構成パラメータ間での競合のこの評価は、オープンデータ接続ごとに実施される。すべてのオープンデータ接続を評価した後、検討中の接続がもうない（すなわち、あらゆるオープンデータ接続上に専用パラメータの競合がある）場合、利用できる十分な通信リソースがあれば、要求アプリケーションによって指定された構成パラメータを使用して新しいデータ接続が開かれる。別の接続を開くために利用できる十分なリソースがない場合、アプリケーションは初期化に失敗し、エラーが示される。検討用に残っているオープンデータ接続がある（すなわち、１つまたは複数のデータ接続が、新しい（すなわち、要求している）アプリケーションによって必要とされる専用パラメータとの競合を有しない）場合、新しいアプリケーションと、競合しないデータ接続を現在使用しているすべてのアプリケーションとの共有可能パラメータの各々を評価して、相互に許容できる構成を決定する。様々な実施形態は、データ接続を使用しているすべてのアプリケーションにとって許容できるパラメータの値または設定を生じる規則である「合併規則」を計算することによって、この評価を達成する。各構成パラメータは、このプロセスが共有可能パラメータごとに反復されるような対応する合併規則を有する。同時に、すべてのアプリケーションが折衷構成パラメータによってサポートされる程度の尺度が決定される。サポートのこの尺度をすべての構成パラメータにわたって合計するかまたは他の方法で組み合わせれば、各データ接続が、接続をすでに使用している他のアプリケーションとともに新しいアプリケーションにどのくらいうまく適応するかの尺度を得ることができる。最後に、新しいアプリケーションの共有可能パラメータを最も良くサポートする（すなわち、新しいアプリケーションおよびデータ接続を使用している他のアプリケーションの共有可能パラメータ要件に対する最適な適合を与える）データ接続を使用して、新しいアプリケーション用のデータ接続を提供し、パラメータ合併規則のアプリケーションによって決定された合成パラメータ値を使用してその接続を構成する。
【００２３】
様々な実施形態はまた、アプリケーションが終了する（したがって、もはやデータ接続を使用しない）ときにデータ接続が最適化された構成パラメータを使用し、それらの構成パラメータ要求を変更することを確実にするために、データ接続を管理する。データ接続を単独で使用している（すなわち、データ接続を他のアプリケーションと共有していない）アプリケーションが終了するとき、関連するデータ接続が閉じられ、それによって他のアプリケーションのために通信リソースを解放する。終了するアプリケーションがデータ接続を共有していた場合、構成パラメータが再評価されて、データ接続を使用している残りのアプリケーションのための共有可能パラメータの最適な折衷を決定し、それに応じてデータ接続が再構成される。共有データ接続を使用しているアプリケーションが構成パラメータの変更を要求するとき、構成パラメータは再評価されて、変更されたパラメータならびにデータ接続を使用している他のアプリケーションのすべての共有パラメータのための共有可能パラメータの最適な折衷を決定し、それに応じてデータ接続が再構成される。
【００２４】
様々な実施形態は、たとえばセルラーおよびＷＩＦＩデータ通信リンクを使用しているワイヤレスネットワークを含む様々な有線およびワイヤレスのネットワークにおいて使用できる。例として、図１に、モバイルハンドセット１５、２５、パーソナルコンピュータ１３、ラップトップコンピュータ２３、およびネットワークサーバ２２、２８、３２などの様々なコンピューティングデバイスと通信する、インターネット１２と、セルラーネットワークと、ＷＩＦＩネットワークと、ＬＡＮとを含む通信ネットワーク１０のブロック図を示す。図１に示すように、現代のコンピューティングデバイスは利用可能な多種多様なデータ通信リンクにアクセスすることができ、その主な限界は、コンピューティングデバイスに含まれるかまたはそれに接続される通信リソースである。
【００２５】
パーソナルコンピュータ１３、セルラー電話１５、およびラップトップコンピュータ２３などのコンピューティングデバイスは、図１に示すような様々なデータ接続に接続することができる。たとえば、パーソナルコンピュータ１３は、ダイヤルアップ、電話、ケーブルまたはローカルエリアネットワーク１４を介してインターネット１２にアクセスして、互いにインターネット通信などのデータメッセージを送信および受信することを選択できる。別の例として、セルラー電話１５および他のモバイルデバイスは、基地局１６へのワイヤレスデータ接続によってどんなセルラーネットワークにもアクセスすることができる。基地局１６は、インターネット１２へのデータ接続を提供するサーバ２２にデータコールをルーティングすることができるコールルータ１８など、セルラーネットワークインフラストラクチャに結合される。別の例として、ラップトップコンピュータ２３などのコンピューティングデバイスは、多数の様々なデータ接続によってネットワークに接続することができる。ラップトップ２３は、インターネット１２への接続を有するローカルエリアネットワークサーバ２８に結合されたローカルエリアネットワーク２６を介してインターネット１２にアクセスすることができるので、図１は３つのオプションを示している。また、ラップトップ２３は、ケーブル２４またはＰＣＭＣＩＡコネクタまたはプラグインエアカードセルラーネットワークトランシーバなどによってラップトップ２３に接続されたセルラー電話２５などのセルラー通信デバイスを介してセルラーネットワークにアクセスすることができる。この例では、セルラー電話２５またはエアカード（図示せず）は基地局１６へのセルラーデータコールを確立し、基地局１６はサーバ２２を介してインターネット１２へのデータ接続を確立する。さらに、ラップトップ２３は、インターネット１２にアクセスできるサーバ３２に接続されたＷｉＦｉ基地局３０とＷｉＦｉワイヤレストランシーバを介して通信することによってＷｉＦｉネットワークに接続することができる。明示的に示されていないが、セルラー電話１５、２５は、ＷｉＦｉ基地局３０へのワイヤレスデータ接続、ならびにローカルエリアネットワーク２６に接続されたラップトップ２３に接続されたデータケーブル２４など、ネットワークへのケーブル接続を確立するＷｉＦｉトランシーバを介してネットワークにアクセスすることもできる。したがって、コンピューティングデバイス１３、１５、２３、２５は、ネットワークにアクセスし、アプリケーションをサポートするために利用可能な多種多様なデータ接続を有することができる。
【００２６】
異なるコンピューティングデバイス間でデータを交換するためのネットワークに加えて、いくつかのコンピューティングデバイスアーキテクチャは、内部プロセスベースのデバイス、およびＧＰＳ受信機などのサービス提供回路、ならびに並列プロセッサ、内部データベースドライバ、サーバ、ならびに外部データおよびネットワーク接続と同様の方法で管理される内部データ接続を介して通信する他のプロセッサベースの回路を含む。したがって、様々な実施形態は内部と外部の両方のデータ接続に適用することができる。
【００２７】
データ接続を共有している複数のアプリケーション間での各共有パラメータの実行可能な折衷を決定するために、様々な実施形態は、本明細書で合併規則と呼ぶパラメータ固有のアルゴリズムを、アプリケーションの各々によって要求されるそれぞれのパラメータ値に適用する。合併規則は、ヒューリスティックでも定型的でもよいが、特定の共有可能パラメータ値をどのように組み合わせれば折衷またはスーパーセットのいずれかにすることができるかを規定する規則である。合併規則は、入力として共有可能パラメータの共有アプリケーションによって指定されたすべての値をとり、それらの値を計算論理にかけて合成値を与える。共有可能パラメータタイプごとに別々の合併規則を用意する。いくつかのパラメータタイプは複数の合併規則を有することもでき、異なる実装が状況に基づいてその複数の規則の中から選択することが可能である。複数のアプリケーションのパラメータ値要求に合併規則を適用すると、特定の共有可能パラメータの値またはオプション選択が生成される。合併規則は、アプリケーションの一部または全部が要求したものとは異なる値またはオプションを選択することができるが、合併規則が適切に作られていれば、選択された値は、その選択された値に基づいて構成されたデータ接続を使用しているアプリケーションの挙動に著しく影響を及ぼすことはない。各パラメータに別々の合併規則を適用すれば、パラメータ値の折衷セットが得られる。次いで、パラメータ値の合成セットを使用して、複数のアプリケーションによって共有されるデータ接続を構成する。
【００２８】
一例として、非アクティビティタイマーパラメータ用の合併規則は、＜指定値の中の最大値を合成値とする＞、Ｒ＝合成値、とすることができる。４つのアプリケーションがデータ接続を共有し、それぞれが特定のパラメータ値ｖを指定する状況では、この合併規則は、次のように言い換えられる。
【００２９】
Ｒ非アクティビティタイマー＝｛ｖ１，ｖ２，ｖ３，ｖ４｝＝ｖ１、ただしｖ１はＭＡＸ｛ｖ１，ｖ２，ｖ３，ｖ４｝
第２の例では、チャネル遅延パラメータ用の合併規則のうちの１つを、＜指定値の中の最小値を合成値とする＞、Ｒ＝合成値、とすることができる。この４つのアプリケーションの状況では、この合併規則は、次のように言い換えられる。
【００３０】
Ｒチャネル遅延＝｛ｖ１，ｖ２，ｖ３，ｖ４｝＝ｖ１、ただしｖ１はＭＩＮ｛ｖ１，ｖ２，ｖ３，ｖ４｝
データ接続を要求しているアプリケーションは、パラメータが要求される（サポートされていなければならない）か、任意選択である（サポートされていると良い）かを示すこともできる。あるパラメータがアプリケーションにとってどのくらい重要であるかを示すために他の同様の修飾子を追加することができる。任意選択のパラメータが指定されている場合、そのパラメータをヒントとして使用することができ、それをサポートするためのベストエフォートを行うことができる。たとえば、そのパラメータを無視すればアプリケーションが既存のデータ接続を共有できるようになる場合、このパラメータを無視することができる。一方、他の専用パラメータが既存のデータ接続と競合するので、とにかく新しいデータ接続を確立する必要がある場合は、構成中で任意選択のパラメータをサポートすることができる。以下で説明するように、構成アップデートのために修飾子を使用することもできる。修飾子が指定されていない場合、接続マネージャは、アプリケーションのために、どの共有可能パラメータをサポートすることが不可欠であるかの決定を自動的に行うことができる。
【００３１】
アプリケーションが利用できるデータ接続構成パラメータの例示的なデータ構造を図２Ａに示す。データテーブル４０中に示された値は、コンピューティングデバイスに実装できるデータ構造を示すために与えられた構成パラメータのサブセットを表す。データテーブル４０は、それぞれ列として表されたデータフィールドからなる行として表されたデータレコードのテーブルの構造とすることができる。図示の例では、第１のデータフィールドは、各々が複数のサポート値４４を有することができる構成パラメータ名４２と、パラメータが専用であるか、共有可能である（すなわち、折衷またはスーパーセット値によって満たされることが可能である）かを示す共有可能／専用指示４６（たとえば、フラグまたは２進値）とを含む。データレコードはまた、本明細書でより十分に説明するように、データ接続を共有しているアプリケーションによって要求される様々なパラメータ値の中で許容できる折衷を決定するための規則を提供する、合併規則フィールド４８を含むことができる。図２Ａに示す例では、合併規則の概要名（たとえば、「Ｍｉｎ」、「Ｍａｘ」および「Ｓｕｍ」）のみが示されているが、いくつかの実装形態では、合併規則自体をデータテーブル４０内に含めることができる。
【００３２】
アプリケーションは、データ接続を要求するとき、必要とする構成パラメータを指定することができる。この指定はデータテーブルの形式にすることができる。また、本明細書で説明するように、接続マネージャは、各アプリケーションによって要求された要求データパラメータをメモリ中のデータテーブルに記憶することができる。アプリケーションによって要求される可能性があるデータ接続構成パラメータのデータテーブル５０の一例を図２Ｂに示す。このテーブルは、一般にデータ接続用に指定される構成パラメータのサブセットのみを示している。要求パラメータデータテーブル５０中の各データレコードは、パラメータ名５２と、そのパラメータの要求される値または設定４４と、パラメータが任意選択であるかまたはアプリケーションによって必要とされるかどうかの指示５６とを含むことができる。
【００３３】
新しいアプリケーションが始動し、システムソフトウェアにデータ接続を要求するか、またはすでに実行中のアプリケーションが停止するとき、そのようなイベントは、既存のオープンデータ接続構成パラメータの変更を必要とすることがある。オープンデータ接続が複数のアプリケーション間で共有される場合、共有可能構成パラメータの各々について、対応するパラメータ合併規則を適用することによって、折衷または相互に許容できる構成を決定することができる。オープンデータ接続を共有しているすべてのアプリケーションによって要求される共有可能パラメータに合併規則を適用することによって得られた合成値を使用して、データ接続構成をアップデートすることができる。データ接続構成パラメータのアップデートは、「ローカルアップデート」または「リモートアップデート」のいずれかとすることができる。ローカルアップデートは、データ接続を介して通信している外部デバイスと連係する必要なしに、ローカル構成パラメータを変更することによって、コンピューティングデバイス自体のハードウェアまたはソフトウェアによって達成できる構成変更である。リモートアップデートは、１つまたは複数のネットワークエンティティとの連係を必要とする構成変更である。リモートアップデートの達成は、（１つまたは複数の）通信構成パラメータの変更を要求している１つまたは複数のネットワークエンティティに、１つまたは複数の無線（over the air）（ＯＴＡ）シグナリングメッセージを送信することを必要とする。ローカルアップデートはより単純であり、たいていの場合、常に成功する。ネットワークは要求を受信する必要があり、容認された場合は実施に多少の時間を必要とするので、リモートアップデートは多少の遅延を伴う。また、リモートアップデートは、１つまたは複数のネットワークエンティティが要求されたアップデートをサポートすることができない場合など、ネットワークによって拒絶されることもある。
【００３４】
ローカルアップデートの一例は、コンピューティングデバイスに限定された処理に関係する非アクティビティタイマーパラメータである。リモートアップデートの一例は、アップデートされたＱＯＳパラメータ値をもつ信号を送信および受信するために何らかの変更を調整することを通信リンクの他端上のトランシーバに要求するＱＯＳパラメータ（無線ベアラ上で要求されるデータ転送速度など）のアップデートである。ＱＯＳパラメータを変更する要求に応答して、たとえば、承認制御または契約理由により十分な無線リソースを割り当てることができない場合、ネットワークはアップデートを拒絶することができる。
【００３５】
リモートアップデートがネットワークによって拒絶された場合、実装固有の動作をとる必要がある。拒絶された構成パラメータが新しいアプリケーションによって必要とされるとみなされた場合（たとえば、図２Ｂ参照）、必要とされるデータ接続構成を提供することができないためにアプリケーションをサポートすることができないので、新しいアプリケーションの起動は失敗する。固有の動作はまた、アプリケーションが拒絶されたパラメータの代替値を要求することを選択できるように、アプリケーションに通知することを含んでもよい。さらに、代替値を提案することができない場合、動作は、アプリケーションをアクティブ化またはサポートすることができないことをユーザに通知することを含んでもよい。拒絶された構成パラメータが新しいアプリケーションによって任意選択であるとみなされた場合（たとえば、図２Ｂ参照）、アプリケーションは依然として所望の構成なしにデータ接続を使用することができる。この場合、アプリケーションが、同じパラメータの代替値を要求することを選択できるように、アプリケーションにリモートアップデート拒絶状況を通知することができる。代替として、リモートアップデート要求が拒絶され、データ接続の要求を放棄すると単に終了するように、アプリケーションを構成することができる。
【００３６】
要求パラメータおよび合併規則により、一部のアップデートをローカルで達成することが可能なので、ローカルアップデートとリモートアップデートとの間の区別は必ずしもパラメータに依存しない。たとえば、技術選好用の合併規則の１つは、＜指定された技術値の中の共通の技術を合成値とする＞、Ｒ＝合成値、である。これは、Ｒ非アクティビティタイマー＝｛ｖ１，ｖ２，ｖ３｝＝Ｒ、ただしＲは｛ｖ１、ｖ２、ｖ３｝の共通部分である、と言い換えられる。ｖ１がＡＮＹ＿ＷＷＡＮであり、ｖ２がＣＤＭＡまたはＥＶＤＯであり、ｖ３がＥＶＤＯである例示的な状況では、ＥＶＤＯが３つの要求の中で唯一の共通の値なので、合成値はＲ＝ＥＶＤＯになる。次いで第４のアプリケーションが、ｖ４＝ＵＭＴＳの技術パラメータ値をもつデータ接続を要求する場合、４つの要求の中で共通の値がないので、合成値はＲ＝０またはヌルになる。この場合、データ接続がすでにＥＶＤＯで確立されていた場合、このパラメータが要求と示されていると、第４のアプリケーションはこのデータ接続を共有することができない。この例を続けると、データ接続を共有している第３のアプリケーションが終了し、第４のアプリケーションが再始動されておらず、したがってパラメータ値がｖ１およびｖ２のみである場合、合併規則合成値はＣＤＭＡまたはＥＶＤＯになる。データ接続はすでにＥＶＤＯで確立されているので、新しい構成ではデータ接続は１ｘ／ＥＶＤＯハイブリッドモードで機能することが可能であり、柔軟性および効率の向上のために１ｘまたはＥＶＤＯの間を行ったり来たりすることができる。ネットワークからの協働は必要とされないので、この構成アップデートはローカルアップデートとして処理できる。
【００３７】
一実施形態では、その実施形態がどのように実装されるかに応じて、いくつかの共有可能パラメータタイプに対して複数の合併規則を実装することができる。複数の合併規則を可能にすることにより、接続マネージャは、様々な動作状況または設定に合わせて調整することが可能になる。たとえば、アプリケーションのデータを送信することができる速度（ビット／秒など）を規定するデータ転送速度パラメータタイプを考える。そのようなパラメータタイプは、次のような２つの異なる合併規則を備えることができる。すべてのアプリケーションデータ転送速度の合計を使用する（「ｓｕｍ」）、およびすべてのデータ転送速度の最大値を使用する（「ｍａｘ」）。（第３の規則は、最小データ転送速度をとる、とすることができることに留意されたい。）次いで、様々な動作、プログラミングまたは個人的な選択のオプションに依存する、コンピューティングデバイス中のファクタまたは状態に応じて、特定のアプリケーションが始動するとき、これらの２つの合併規則（すなわち、ｓｕｍまたはｍａｘ）のうちの一方を使用することができる。この例を終えるために、新しいアプリケーション１が６４ｋｂｐｓ（キロビット／秒）のデータ転送速度パラメータ値を有し、すでに実行中のアプリケーション２が１２８ｋｂｐｓのデータ転送速度パラメータ値を有する状況を考える。アプリケーション１が始動したときにｓｕｍ合併規則が選択された場合、合併規則を適用した結果は１９２ｋｂｐｓのデータ転送速度パラメータ値になる。一方、アプリケーション１が始動されたときにｍａｘ合併規則が選択された場合、その結果は１２８ｋｂｐｓのデータ転送速度パラメータになる。これらの両方の例では、アプリケーション１のために使用される通信チャネルで実装されるデータ転送速度は、そのアプリケーションによって要求されたデータ転送速度パラメータ値よりも大きくなることがある。複数の合併規則が利用可能である場合、どの規則を適用すべきかの選択は実装形態に依存する。また、特定の状況において適用されなければならない合併規則を選択するために構成可能なポリシーを使用することができる。
【００３８】
一実施形態では、接続マネージャは、図３に示すようにアプリケーションが始動するときにデータ接続を共有するための方法を実装する。データ接続を要求する新しいアプリケーションが始動すると（ステップ６０）、そのアプリケーションは、いくつかの通信構成パラメータを指定するデータ接続の要求を発信する。このデータ接続要求を、新しいアプリケーションによって要求された通信パラメータを収集する接続マネージャが受信する（ステップ６２）。専用と共有可能の両方の通信パラメータを含む、これらの要求される通信パラメータを、以下でより十分に説明するように、データ接続を構成する際に、共有可能パラメータ合併規則を計算するために使用できるように、システムによってアクセス可能なメモリに記憶する（ステップ６４）。この新しいアプリケーションが、データ接続を要求する最初のアプリケーションである場合（テスト６６）、接続マネージャは、単に新しいデータ接続を開始し（ステップ１０４）、新しいアプリケーションによって要求された構成パラメータを使用して、接続を構成する（ステップ１０６）。新しいデータ接続が確立された後、新しいアプリケーションによる通信が開始することができる（ステップ１０８）。
【００３９】
しかしながら、新しいアプリケーションが、データ接続を確立する最初のアプリケーションではない場合（すなわち、テスト６６＝「いいえ」）、接続マネージャは、検討中の各オープンデータ接続を評価して（ループ１−ステップ６８〜９０）、新しいアプリケーションが、オープンデータ接続を使用している他のアプリケーションの専用パラメータと競合しないかどうかを判断し（ループ２−ステップ７０〜７６）、競合する接続が検討から除外された後に残っている検討中の各データ接続について、新しいアプリケーションによって共有できるようにする競合しないデータ接続ごとの構成を判断する（ループ３−ステップ７８〜８６）ための一連の３つのループを実行することができる。
【００４０】
オープンデータ接続評価プロセスを開始するために、接続マネージャは、検討中の接続の中の候補として第１のオープンデータ接続を選択し（ステップ６８）、評価のために第１の要求される構成パラメータを選択する（ステップ７０）。ステップ７０において、選択された要求される構成パラメータを、選択されたデータ接続候補を現在共有している他のアプリケーションによって要求される対応する専用パラメータと比較して、パラメータが競合するかどうかを判断する（テスト７２）。新しいアプリケーションの専用パラメータが、選択されたオープンデータ接続候補をすでに使用しているアプリケーションの専用パラメータと競合する場合、これは、このデータ接続候補が新しいアプリケーションによって共有できないことを意味する。上述のように、新しいアプリケーションが、オープンデータ接続候補をすでに使用しているアプリケーションによって必要とされるパラメータと非互換である要求パラメータを要求するとき、専用パラメータの競合が生じる可能性がある。たとえば、オープンデータ接続候補が、現在実行中のアプリケーションによって要求されるようにＥＶＤＯ通信技術用に構成され、新しいアプリケーションが、データ接続をＣＤＭＡ通信技術用に構成することを要求する場合、これらの２つの要求パラメータは非互換であり、したがって競合が存在する（すなわち、テスト７２は「はい」になる）。専用パラメータが競合する場合（すなわち、テスト７２＝「はい」）、接続マネージャは、検討中の接続のリストから競合するオープンデータ接続を削除し（ステップ７３）、続いて、下記のテスト８８にジャンプすることによって、次のオープンデータ接続を候補として評価する。しかしながら、選択された専用パラメータが、オープンデータ接続候補をすでに使用しているアプリケーションによって要求される対応するパラメータと競合しない場合（すなわち、テスト７２＝「いいえ」）、構成マネージャは、評価すべき別の専用パラメータがあるかどうかを判断する（テスト７４）。評価すべき別の専用パラメータがある場合（すなわち、テスト７４＝「はい」）、接続マネージャは、評価のために次の専用パラメータを選択し（ステップ７６）、その後、選択された専用パラメータが、オープンデータ接続候補をすでに使用しているアプリケーションによって要求される専用パラメータと競合するかどうかを評価することに戻り、テスト７２に戻る。
【００４１】
すべての専用パラメータが評価された後（すなわち、テスト７４＝「いいえ」）、接続マネージャは、評価のために第１の共有可能パラメータを選択する（ステップ７８）。次いで、選択された要求される共有可能パラメータと、選択されたオープンデータ接続候補をすでに使用しているアプリケーションの対応するパラメータとを使用して、接続マネージャは、その特定のパラメータに関連する合併規則を計算する（ステップ８０）。上述のように、様々なアプリケーションの要求されるパラメータ値に合併規則を適用すると、オープンデータ接続候補が現在のアプリケーションおよび新しいアプリケーションによって共有できるようにする折衷またはスーパーセットパラメータ値が識別される。計算された合併規則合成値は、オープンデータ接続候補を構成する際に後で使用するためにメモリに記憶できる。さらに、合併規則の結果が、選択されたオープンデータ接続候補を共有するであろう新しいアプリケーションおよび現在実行中のアプリケーションのパラメータ要求を満たす程度に基づいて、オープンデータ接続候補に優先順位または品質値を割り当てる（ステップ８２）。後述のように、選択パラメータの合併規則合成値に基づいてオープンデータ接続候補に割り当てられた優先順位または品質は、共有可能パラメータのすべてに割り当てられた優先順位または品質値と組み合わせられて、新しいアプリケーションに割り当てるべき特定のオープンデータ接続を選択するために使用できる、選択されたオープンデータ接続候補の全体的なランキングまたは優先順位を決定する。次いで、接続マネージャは、評価すべき別の共有可能パラメータがあるかどうかを判断することによって次の共有可能パラメータに進み（テスト８４）、評価すべき別の共有可能パラメータがある場合、次の共有可能パラメータを選択し（ステップ８６）、その後、ステップ８０に戻り、対応する合併規則を選択パラメータに適用する。
【００４２】
共有可能パラメータのすべてが評価された後（すなわち、テスト８４＝「いいえ」）、接続マネージャは、候補として評価すべき検討中の別のオープンデータ接続があるかどうかを判断することによって、残っている検討中の次のオープンデータ接続に進み（テスト８８）、検討中の別のオープンデータ接続がある場合、データ接続候補として次のオープンデータ接続を選択し（テスト９０）、ステップ７０に戻り、評価のために第１の専用パラメータを選択することによって、このパラメータ評価プロセスを繰り返すことができる。
【００４３】
オープンデータ接続のすべてが評価され（すなわち、テスト８８＝「いいえ」）、競合する接続が検討から外された後、接続マネージャは、検討用に残っている共有可能オープンデータ接続があるかどうかを判断する（テスト９２）。少なくとも１つのデータ接続において専用パラメータ間に競合がなかった場合（すなわち、少なくとも１つのデータ接続についてテスト７２＝「いいえ」）、共有可能オープンデータ接続が存在する。オープンデータ接続の評価から、オープン接続が共有できることが判明した場合（すなわち、検討中の残っているオープンデータ接続がないので、テスト９２＝「いいえ」）、接続マネージャは、別のデータ接続を開くために十分な通信リソースがあるかどうかを判断する（テスト１０２）。十分なリソースがある場合（すなわち、テスト１０２＝「はい」）、接続マネージャは、続いて新しいデータ接続を開始し（ステップ１０４）、新しいアプリケーションによって要求される構成パラメータを使用して、新しい接続を構成する（ステップ１０６）。新しいデータ接続が確立された後、新しいアプリケーションによる通信が開始することができる（ステップ１０８）。しかしながら、別のデータ接続を開くために十分なリソースがない場合（すなわち、テスト１０２＝「いいえ」）、新しいアプリケーションの初期化は失敗し、システムがエラーメッセージを返す（ステップ１１０）。
【００４４】
オープンデータ接続の評価から、１つまたは複数のデータ接続が共有できることが判明した場合（検討中の残っている少なくとも１つのオープンデータ接続があるので、すなわち、テスト９２＝「はい」）、接続マネージャは、新しいアプリケーションに割り当てるための候補として最高の優先順位または品質値をもつオープンデータ接続を選択する（ステップ９４）。この選択は、ステップ８２において共有パラメータの各々について様々なオープンデータ接続の各々に割り当てられた優先順位または品質値に基づくことができる。次いで、ステップ８０において選択されたデータ接続について決定された共有パラメータ合成値のすべてを実装するために、選択されたオープンデータ接続の構成をアップデートする。このステップが首尾よく完了すれば、新しいアプリケーションは、選択されたオープンデータ接続の共有を開始できるようになる。
【００４５】
オープンデータ接続構成アップデートはネットワークノードに協働を要求する、すなわち、少なくとも１つのパラメータがリモートアップデートを伴うので、接続マネージャは、リモートアップデートが失敗した（すなわち、ネットワークによって拒絶された）か、または成功した（すなわち、ネットワークによって受容され、実施された）かをテストする（テスト９８）。リモートアップデートが成功した場合（すなわち、テスト９８＝「いいえ」）、新しいアプリケーションによる通信が開始することができる（ステップ１０８）。しかしながら、リモートアップデートが失敗した場合（すなわち、テスト９８＝「はい」）、新しいアプリケーションの初期化は失敗し、システムがエラーメッセージを返す（ステップ１１０）。アップデートされるすべての構成パラメータがローカルアップデートを伴う（すなわち、コンピューティングデバイス自体の中に実装される）場合、テスト９８をバイパスする。
【００４６】
図３は、共有可能パラメータの前に専用パラメータを評価する方法を示しているが、代替方法は、構成パラメータの各々を、それらが専用であるか共有可能であるかにかかわらず評価することができる。この代替実施形態は、第２のループと第３のループを組み合わせて、通信パラメータのすべてについての単一の再帰的分析にする。いずれかの専用パラメータが競合する場合（すなわち、テスト７２＝「はい」）、構成パラメータの評価は、その特定のオープンデータ接続候補について終了し、プロセスはジャンプして、ステップ８８に移動するなどにより、次のオープンデータ接続候補を検討する。この代替方法の欠点は、後続の構成パラメータが専用であり、競合することがわかった場合、共有可能パラメータに合併規則を適用する際に何らかの追加の処理が必要になることである。
【００４７】
アプリケーションが始動するときにデータ接続を共有するための代替実施方法の擬似コード実装形態は、以下の通りである。
【００４８】
１．新しいアプリケーションが始動するとき、それの指定された専用および共有可能パラメータを収集する。
【００４９】
２．以下のように、各利用可能な／確立されたデータ接続にわたってエニュメレートする。
【００５０】
ａ．指定された専用パラメータのいずれかが、このデータ接続によって使用される専用パラメータと競合するか？
ｉ．はいの場合、次の利用可能なデータ接続にスキップし、ステップ２ａに進む。
【００５１】
ｉｉ．いいえの場合、ステップ２ｂに進む。
【００５２】
ｂ．指定された各共有可能パラメータについて、
ｉ．新しい値と既存の値とを検討して、このパラメータの合併規則に基づいて新しい合成値を計算する。
【００５３】
ｉｉ．合成値をどのくらいうまくサポートすることができるかに基づいて、このデータ接続に優先順位を割り当てる／アップデートする。
【００５４】
ｃ．次のデータ接続を評価し、ステップ２ａに進む。
【００５５】
３．存在する場合、候補セットから最高の優先順位をもつデータ接続をとる。
【００５６】
ａ．要求されているすべての共有可能パラメータの新しい合成値に基づいてデータ接続の構成をアップデートする（ローカルまたはリモート）。
【００５７】
ｂ．リモートアップデートが要求パラメータに対して失敗した場合、アプリケーションにエラーを示す
４．候補データ接続セットが空の場合、十分なリソースが利用できるのであれば、新しいデータ接続を開始する。
【００５８】
ａ．アプリケーションによって指定された専用および共有可能パラメータを用いて新しいデータ接続を構成する。
【００５９】
ｂ．このアプリケーションによって指定された専用および共有可能パラメータを記憶する
これらの実施形態は、データ接続を共有しているアプリケーションが終了するときにオープンデータ接続構成をアップデートすることもできる。そうすることにより、オープンデータ接続を現在共有しているアプリケーションに対してデータ接続構成を最適化することが可能になり、ならびに別のアプリケーションがデータ接続を要求するときに合併規則を適用するプロセスが単純になる。
【００６０】
図４は、アプリケーションが終了するときにオープンデータ接続をアップデートするために一実施形態において実施される例示的なステップのプロセスフロー図である。データ接続を使用しているアプリケーションが終了するとき（ステップ１５０）、接続マネージャは、そのアプリケーションによって使用されたデータ接続を識別し（ステップ１５２）、その接続が複数のアプリケーションによって共有されているかどうかを判断する（テスト１５４）。データ接続が共有されていない場合（すなわち、テスト１５４＝「いいえ」）、接続マネージャは、その接続を閉じる（ステップ１５６）。データ接続が共有されている場合（すなわち、テスト１５４＝「はい」）、接続マネージャは、第１の共有可能パラメータを選択し（ステップ１５８）、オープンデータ接続を共有している残りのアプリケーションによって要求されるパラメータ値に、対応する合併規則を適用する（ステップ１６０）。接続マネージャが評価すべき別の共有パラメータあるかどうかを判断する（テスト１６２）ことによって、共有パラメータの各々についてこのプロセスを繰り返し、評価すべき別の共有パラメータある場合、次の共有パラメータを選択し（ステップ１６４）、その後、ステップ１６０に戻り、対応する合併規則を選択パラメータに適用する。共有パラメータのすべてがそのように評価された後（すなわち、テスト１６２＝「いいえ」）、合成パラメータ値を用いてデータ接続構成をアップデートする。一実施形態では、構成マネージャは、終了アプリケーションが接続から外された後、オープンデータ接続を使用している単一のアプリケーションのみが残っているかどうかをテストし、単一のアプリケーションのみが残っている場合、合併規則を適用するループをバイパスし、残りのアプリケーションによって要求されるパラメータを使用してデータ接続構成をアップデートすることに直接移動する。さらに、接続マネージャは、図３に関して上述したステップ９８と同様のステップを実施することによって、ステップ１６６の一部として実施されたリモートアップデートが成功したかどうかをテストする。
【００６１】
アプリケーションが終了するときにデータ接続構成を管理するための一実施方法の擬似コード実装形態は、以下の通りである。
【００６２】
１．すでに実行中のアプリケーションが終了するとき、
ａ．このアプリケーションによって使用されたデータ接続を識別する
ｂ．終了アプリケーションが始動されたときに、その終了アプリケーションによって指定された専用および共有可能パラメータを取り出す。
【００６３】
２．これがデータ接続を使用している唯一のアプリケーションである場合、データ接続を閉じる。
【００６４】
３．他のアプリケーションがデータ接続を共有している場合、
ａ．アプリケーションによって指定された各共有可能パラメータについて、
ｉ．終了アプリケーションによって指定された値を除くすべての指定された値を検討して、合併規則を使用してパラメータの合成値を計算する
ｉｉ．新しい合成値を用いてデータ接続を構成する（ローカルまたはリモート）。
【００６５】
実施形態は、接続を共有しているアプリケーションが構成パラメータの１つまたは複数の変更を要求するときにデータ接続構成をアップデートすることもでき、そのための例示的な方法が、図５に示すプロセスフロー図に示されている。アプリケーションが、１つまたは複数のデータ接続構成パラメータの変更または修正を要求するとき（ステップ２００）、接続マネージャは、その１つまたは複数の特定のパラメータが変更不能であるかどうかを判断する（テスト２０２）。選択された１つまたは複数のパラメータのいずれかが変更不能である場合（すなわち、テスト２０２＝「はい」）、変更要求は失敗し（ステップ２１２）、それをアプリケーションに拒絶または失敗通知で通信することができる。
【００６６】
変更が要求されたすべてのパラメータが変更可能である場合（すなわち、テスト２０２＝「いいえ」）、接続マネージャは、変更されるパラメータ値要求を収集する（ステップ２０４）。接続マネージャが評価のために第１の変更される専用パラメータを選択することによって開始するループにおいて、変更すべき各パラメータを評価する（ステップ２０６）。変更すべき専用パラメータがない場合、接続マネージャは、ステップ２２２にジャンプして、共有可能パラメータの評価を開始する。データ接続が共有されている（すなわち、変更を要求しているアプリケーションと少なくとも１つの他のアプリケーションとによって共有されている）場合（テスト２０８）、接続マネージャは、要求されたパラメータ変更が、データ接続を共有している他の（１つまたは複数の）アプリケーションによって要求される対応する専用パラメータと競合するかどうかを判断する（テスト２１０）。変更すべき選択された専用パラメータが、データ接続を使用している他のアプリケーションの要求されるパラメータ値と競合する場合（すなわち、テスト２１０＝「はい」）、変更要求は失敗し（ステップ２１２）、それをアプリケーションに拒絶または失敗通知で通信することができる。
【００６７】
変更すべき選択された専用パラメータが、データ接続を使用している他のアプリケーションの要求されるパラメータ値と競合しない場合（すなわち、テスト２１０＝「いいえ」）、選択された変更される専用パラメータに基づいてデータ接続構成をアップデートする（ステップ２１４）。また、１つまたは複数のパラメータを変更するアプリケーションに関連するデータ接続が、別のアプリケーションと共有されていない場合（すなわち、テスト２０８＝「いいえ」）、選択された変更される専用パラメータに基づいてデータ接続構成をアップデートすることができる（ステップ２１４）。アプリケーションの記憶されたパラメータ値要求も変更される専用パラメータを用いてアップデートする（ステップ２１６）。
【００６８】
別の変更される専用パラメータがあるかどうかをテストする（テスト２１８）ことによって、変更される専用パラメータの各々についてこのプロセスを繰り返し、別の変更される専用パラメータがある場合、次の変更される専用パラメータを選択し（ステップ２２０）、その後、ステップ２１０に戻り、パラメータ変更が、データ接続を共有している他の（１つまたは複数の）アプリケーションによって要求される対応するパラメータと競合するかどうかを判断する。
【００６９】
変更が要求されるすべての専用パラメータが評価された後（すなわち、テスト２１８＝「いいえ」）、接続マネージャは、変更するように要求された第１の共有可能パラメータを選択する（ステップ２２２）。データ接続が共有されている（すなわち、変更を要求しているアプリケーションと少なくとも１つの他のアプリケーションとによって共有されている）場合（テスト２２４）、接続マネージャは、選択された共有可能パラメータに関連する合併規則を、要求された変更されるパラメータと、データ接続を共有しているすべてのアプリケーションの要求パラメータとに適用する（ステップ２２８）。次いで、合併規則合成値を使用してデータ接続構成を変更する（ステップ２３０）。アプリケーションの記憶されたパラメータ値要求も変更される専用パラメータを用いてアップデートする（ステップ２３２）。
【００７０】
別の変更される共有可能パラメータがあるかどうかをテストする（テスト２３４）ことによって、変更される共有可能パラメータの各々についてこのプロセスを繰り返し、別の変更される共有可能パラメータがある場合、次の変更される共有可能パラメータを選択し（ステップ２３６）、その後、ステップ２２８に戻り、対応する合併規則を、選択された共有可能パラメータと、データ接続を共有している他の（１つまたは複数の）アプリケーションによって要求されるパラメータとに適用する。すべての共有可能パラメータが評価された後（すなわち、ステップ２３４＝「いいえ」）、変更プロセスは終了する（ステップ２３８）。
【００７１】
図６は、アプリケーションが構成パラメータの変更を要求するときにデータネットワーク接続構成をアップデートするための代替実施方法を示すプロセスフロー図である。図６に示す方法は、関係するデータ接続が共有されるか、または構成変更を要求しているアプリケーションのみによって使用されるかを判断するために予備テスト２５０が実施されることを除いて、図５に示した方法と同様である。データ接続が共有されている場合（すなわち、テスト２５０＝「はい」）、接続マネージャは、図５に関して上述したように評価および構成ステップ２０４〜２３８を進める。しかしながら、データ接続が共有されておらず、したがって（１つまたは複数の）構成パラメータの変更を要求しているアプリケーションのみによって使用される場合（すなわち、テスト２５０＝「いいえ」）、接続マネージャは、続いて、要求された変更される構成パラメータに基づいてデータ接続を変更する（ステップ２５２）。次いで、アプリケーションの記憶されたデータ接続パラメータ要求を、変更される構成パラメータを含むようにアップデートし（ステップ２５４）、その後、変更ルーチンは終了する（ステップ２３８）。
【００７２】
さらなる実施形態では、一実装形態は、要求パラメータのすべてが変更されるように、または要求パラメータのいずれも変更されないように、データ接続構成を変更することを選択することができる。そのような一実施形態では、たとえば、構成への要求された変更が要求されているかどうか、または多数のパラメータを伴うかどうかに関する予備決定を行うことができる。その変更が、任意選択であるかあるいは１つのみまたは数個のパラメータを伴う場合、オープンデータ接続を共有しているアプリケーションのデータ通信を中断することを回避するために、接続マネージャは構成を変更しないことを選択することができる。代替的に、その変更が、要求されているかまたは多数のパラメータを伴う場合、接続マネージャは、すべての合併規則を計算し、それに応じて構成におけるすべてのパラメータをアップデートすることを選択することができる。
【００７３】
アプリケーションが構成の変更を要求するときにデータ接続構成を管理するための実施方法の擬似コード実装形態は、以下の通りである。
【００７４】
１．すでに実行中のアプリケーションが、そのアプリケーションが以前に要求した構成を変更する場合、
ａ．新しい構成パラメータを分析する。
【００７５】
ｂ．パラメータのいずれも修正不能である場合、操作を拒絶する。
【００７６】
ｃ．変更のために残っているパラメータを収集する。
【００７７】
２．変更すべき各専用パラメータについて、
ａ．データ接続が共有されている場合、同じデータ接続を使用している他のアプリケーションと競合しない場合のみ、専用パラメータを変更し、他の場合は操作を拒絶する。
【００７８】
ｂ．データ接続がもっぱらこのアプリケーションのみによって使用されている場合、新しい専用パラメータに基づいて構成を変更する（ローカルおよびリモート）
ｃ．このアプリケーション用の新しい専用パラメータセットをアップデートする。
【００７９】
３．変更すべき各共有可能パラメータについて、
ａ．データ接続が共有されている場合、新しい値と既存の値とを検討し、このアプリケーションから前の値を除外して、このパラメータの合併規則に基づいて新しい合成値を計算する。
【００８０】
ｂ．データ接続がもっぱらこのアプリケーションのみによって使用されている場合、新しい合成値は、このアプリケーションによって指定されたパラメータ値と同じである。
【００８１】
ｃ．新しい合成値に基づいてデータ接続の構成を変更する（ローカルまたはリモート）
ｄ．このアプリケーション用の新しい共有可能パラメータセットをアップデートする。
【００８２】
様々な実施形態は、どんなタイプのアプリケーションでもサポートするように拡張でき、データアプリケーションに限定されない。また、上述のように、様々な実施形態は、有線およびワイヤレスネットワークを含む、任意のタイプのネットワークを使用しているデータ接続に利用できる。したがって、実施形態の説明の一部はワイヤレス通信に固有のパラメータを扱っているが、本発明の範囲および特許請求の範囲はワイヤレスネットワーク実装形態に限定されるべきではない。本明細書に記載した様々な構成パラメータは例示のためのものにすぎず、他の構成パラメータを使用することができ、各ネットワーク技術は、異なるパラメータ、または本明細書で説明したパラメータのサブセットのみを使用することができる。
【００８３】
上述の実施形態は、たとえば、セルラー電話、セルラー電話および／またはＷＩＦＩトランシーバをもつ個人情報端末（ＰＤＡ）、モバイル電子メール受信機、モバイルウェブアクセスデバイス、ならびに１つまたは複数のデータ接続に接続する将来開発される他のプロセサ搭載デバイスなど、様々なポータブルコンピューティングデバイスのいずれにも実施できる。一般に、そのようなポータブルコンピューティングデバイスは、図７に示す構成要素を共通に有する。たとえば、ポータブルコンピューティングデバイス２８は、内部メモリ２８２とディスプレイ２８３とに結合されたプロセッサ２８１を含むことができる。さらに、ポータブルコンピューティングデバイス２８は、ワイヤレスデータリンクに接続され、および／またはプロセッサ２８１に結合されたセルラー電話トランシーバ２８５に接続された、電磁放射を送信および受信するためのアンテナ２８４を有する。いくつかの実装形態では、セルラー電話通信に使用されるトランシーバ２８５ならびにプロセッサ２８１およびメモリ２８２の一部分を、ワイヤレスデータリンクを介してデータインターフェースを提供することから、エアインターフェースと呼ぶ。ポータブルコンピューティングデバイス２８は、一般に、ユーザ入力を受けるためのキーパッド２８６または小型キーボードおよびメニュー選択ボタンまたはロッカースイッチ２８７をも含む。プロセッサ２８１はさらに、プロセッサ２８１をパーソナルコンピュータ１３、２３などの外部コンピューティングデバイスまたは外部ローカルエリアネットワークに接続するための、ユニバーサルシリアルバス（ＵＳＢ）またはＦｉｒｅｗｉｒｅ（登録商標）コネクタソケットなどの有線ネットワークインターフェース２８８に接続できる。
【００８４】
プロセッサ２８１は、上述した様々な実施形態の機能を含む、様々な機能を実施するようにソフトウェア命令（アプリケーション）によって構成できる任意のプログラマブルマイクロプロセッサ、マイクロコンピュータあるいは１つまたは複数の多重プロセッサチップとすることができる。一部のポータブルコンピューティングデバイス２８では、１つのプロセッサがワイヤレス通信機能専用であり、１つのプロセッサが他のアプリケーションの実行専用であるような、多重プロセッサ２８１を設けることができる。一般に、ソフトウェアアプリケーションは、アクセスされ、プロセッサ２８１にロードされる前に内部メモリ２８２に記憶される。一部のポータブルコンピューティングデバイス２８では、プロセッサ２８１は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含むことができる。本明細書では、メモリという用語は、内部メモリ２８２と、プロセッサ２８１自体の中のメモリとを含む、プロセッサ２８１によってアクセス可能なすべてのメモリを指す。アプリケーションデータファイルは一般にメモリ２８２に記憶される。多くのポータブルコンピューティングデバイス２８では、メモリ２８２は、揮発性メモリ、もしくはフラッシュメモリなどの不揮発性メモリ、または両方の混合とすることができる。
【００８５】
上述の実施形態は、たとえば、図８に示すパーソナルコンピュータ１３など、様々なコンピューティングデバイスのいずれでも実施できる。そのようなパーソナルコンピュータ１３は、一般に、コンピュータハウジング２９０と、揮発性メモリ２９２に結合されたプロセッサ２９１と、ディスクドライブ２９３などの大容量不揮発性メモリとを含む。コンピュータ１３は、プロセッサ２９１に結合されたフロッピー（登録商標）ディスクドライブ２９４およびコンパクトディスク（ＣＤ）ドライブ２９５をも含むことができる。一般に、コンピュータデバイス１３は、キーボード２９６のようなユーザ入力デバイスと、ディスプレイ２９７とを含む。コンピュータデバイス１３は、データ接続を確立するため、またはＵＳＢもしくはＦｉｒｅｗｉｒｅ（登録商標）コネクタソケット（図示せず）、ならびにプロセッサ２９１をネットワークに結合するためのネットワーク接続回路（図示せず）など、外部メモリデバイスを受けるためのプロセッサ２９１に結合されたいくつかのコネクタポートをも含むことができる。ラップトップ構成２３では、コンピュータハウジング２９０は、コンピュータ技術分野においてよく知られているようにキーボード２９６とディスプレイ２９７とを含む。
【００８６】
上記の方法の説明およびプロセスフロー図は、単に説明のための例として与えたものであり、様々な実施形態のステップを提示された順序で実施しなければならないことを要求または暗示するものではない。当業者なら諒解するように、上記の実施形態におけるステップの順序は、どんな順序でも実施できる。
【００８７】
本発明に関しては、本方法は、ワイヤレスネットワークの（１つまたは複数の）部分を操作して、一連の機械可読命令を実行することによって実施できる。上記の実施形態を実施するために使用されるハードウェアは、当業者なら諒解するように、マイクロプロセッサユニット、マイクロコンピュータユニット、プログラマブル浮動小数点ゲートアレイ（ＦＰＧＡ）、および特定用途向け集積回路（ＡＳＩＣ）を含む、上記の方法に対応する方法ステップを実施するための命令のセットを実行するように構成された処理要素および記憶要素とすることができる。たとえば、動作部分は、ポータブルコンピュータ、セルラー電話、携帯情報端末、またはナビゲーションデバイスとすることができる。代替的に、いくつかのステップまたは方法は、所与の機能に固有の回路によって実施できる。
【００８８】
本明細書で開示した実施形態に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両者の組合せとして実装できることを当業者なら諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアで実装するかソフトウェアで実装するかは、システム全体に課せられた特定の適用および設計上の制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【００８９】
本明細書で開示する実施形態に関して説明した方法またはアルゴリズムのステップは、直接的にハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはそれら２つの組合せで実施できる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、不揮発性記憶装置（たとえば、従来の「ハードディスク」またはＲＡＩＤアレイ）、磁気テープ、取外し可能ディスク、光記憶デバイス（たとえば、ＣＤ−ＲＯＭ、ＤＶＤ、デジタル光テープ）、紙「パンチ」カード、または当技術分野で知られているかもしくは開発されるであろうデジタルおよびアナログ伝送媒体を含む他の適切なデータ記憶媒体のいずれでもよいプロセッサ可読データ記憶媒体またはメモリ回路中に常駐することができる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサに一体化することができる。プロセッサおよび記憶媒体はＡＳＩＣ中に常駐することができる。ＡＳＩＣは、ユーザ端末またはコンピューティングデバイス内に常駐することができる。代替として、プロセッサおよび記憶媒体は、ユーザ端末またはコンピューティングデバイス内に個別構成要素として常駐することもできる。さらに、一部の態様では、方法またはアルゴリズムのステップおよび／または動作は、コンピュータプログラム製品中に組み込むことができる機械可読媒体および／またはコンピュータ可読媒体上のコードおよび／または命令の１つまたは任意の組合せまたはセットとして存在することができる。
【００９０】
様々な実施形態の上記の説明は、当業者が本発明を行うまたは使用することを可能にするために提供される。これらの実施形態に対する様々な変更は、当業者には容易に明らかとなり、本明細書で規定された一般的な原理は、本発明の精神または範囲から逸脱することなく他の実施形態に適用できる。したがって、本発明は、本明細書に示した実施形態に限定されるものではなく、代わりに特許請求の範囲には、本明細書に開示された原理および新規な特徴と一致する最も広い範囲が与えられるべきである。
【図１】
2010534040.tif 000003
【図２Ａ】
2010534040.tif 000004
【図２Ｂ】
2010534040.tif 000005
【図３】
2010534040.tif 000006
【図４】
2010534040.tif 000007
【図５】
2010534040.tif 000008
【図６】
2010534040.tif 000009
【図７】
2010534040.tif 000010
【図８】
2010534040.tif 000011
【国際調査報告】
2010534040.tif 000012
2010534040.tif 000013
2010534040.tif 000014