(57)【特許請求の範囲】
【請求項１】
コンピューティングデバイス内のアプリケーションのためのネットワーク接続を選択するための方法であって、ネットワークアクセス要求で受信されたネットワーク選択ポリシーパラメータに最もよく一致するインターフェースを選択するために、複数のプロセッサの間で階層的インターフェース選択手順を実行するステップを備え、前記ステップが、
第1のプロセッサ上で走るアプリケーションからネットワーク選択ポリシーパラメータを含むネットワークアクセスのためのアプリケーション要求を第1のプロセッサ内で受信するステップと、
プロキシインターフェースを介して第1のプロセッサに結合された1つまたは複数の2次プロセッサに、前記ネットワーク選択ポリシーパラメータを含む、ネットワークインターフェース選択要求を転送するステップと、
2次プロセッサから前記2次プロセッサに結合された3次プロセッサに、前記ネットワーク選択ポリシーパラメータを含む、前記ネットワークインターフェース選択要求を転送するステップと、
前記3次プロセッサ上で利用可能なネットワークインターフェースがいかによく前記ネットワーク選択ポリシーパラメータを満たすかを評価するステップと、
前記3次プロセッサ上での評価に基づいて、3次プロセッサを介して利用可能な最も良いネットワークインターフェースを選択するステップと、
1つが利用可能である場合に、選択された3次プロセッサを介して利用可能な最も良いネットワークインターフェースに関する情報を前記2次プロセッサに送信するステップと、
前記2次プロセッサ上で利用可能なネットワークインターフェースがいかによく前記ネットワーク選択ポリシーパラメータを満たすかを評価するステップと、
前記3次プロセッサから受信した情報および前記2次プロセッサ上での評価に基づいて、2次プロセッサを介して利用可能な最も良いネットワークインターフェースを選択するステップと、
1つが利用可能である場合に、選択された2次プロセッサを介して利用可能な最も良いネットワークインターフェースに関する情報を前記第1のプロセッサに送信するステップと、
前記第1のプロセッサ上で利用可能なネットワークインターフェースがいかによく前記ネットワーク選択ポリシーパラメータを満たすかを評価するステップと、
前記2次プロセッサから受信した情報および前記第1のプロセッサ上での評価に基づいて、前記アプリケーション要求に対する最も良いネットワークインターフェースを選択するステップと
を備える方法。
【請求項２】
ネットワークアクセス要求で受信されたネットワーク選択ポリシーパラメータに最もよく一致するインターフェースを選択するために、複数のプロセッサの間で階層的インターフェース選択手順を実行するステップがさらに、前記選択された最も良いネットワークインターフェースのネットワーク構成を開始するステップを備える、請求項1に記載の方法。
【請求項３】
アプリケーションまたは接続マネージャが、前記選択された最も良いネットワークインターフェースのネットワーク構成を開始する、請求項2に記載の方法。
【請求項４】
前記選択された最も良いネットワークインターフェースのネットワーク構成を開始するステップが、
前記選択された最も良いネットワークインターフェースが前記第1のプロセッサ上または異なるプロセッサ上で利用可能なインターフェースであるかどうかを判断するステップと、
前記選択された最も良いネットワークインターフェースが前記第1のプロセッサ上で利用可能なインターフェースである場合に、標準ネットワーク構成を開始するステップと、
前記選択された最も良いネットワーク接続が前記異なるプロセッサ上で利用可能である場合に、前記選択された最も良いネットワーク接続へのデータ経路を自動的に接続するステップと
を備える、請求項2に記載の方法。
【請求項５】
前記選択された最も良いネットワーク接続が前記異なるプロセッサ上で利用可能である場合に、前記選択された最も良いネットワーク接続へのデータ経路をセットアップするステップが、
前記異なるプロセッサ上の対応するインターフェースに前記第1のプロセッサのプロキシインターフェースを結合させるステップと、
前記選択された最も良いネットワークインターフェースに前記対応するインターフェースを結合させるステップと
を備える、請求項4に記載の方法。
【請求項６】
前記異なるプロセッサ上の対応するインターフェースに前記第1のプロセッサのプロキシインターフェースを結合させるステップが、前記プロキシインターフェースおよび前記異なるプロセッサ上の前記対応するインターフェースの間の複数のプロセッサにわたる一連のインターフェースを結合させるステップを備える、請求項5に記載の方法。
【請求項７】
前記プロキシインターフェースが周辺デバイスによって使用される、請求項5に記載の方法。
【請求項８】
前記周辺デバイスがラップトップコンピュータである、請求項7に記載の方法。
【請求項９】
前記第1のおよび各2次プロセッサ上で利用可能な各ネットワークインターフェースがいかによく前記ネットワーク選択ポリシーパラメータを満たすかを評価するステップが、インターフェース一致指標Iを計算するステップを備え、
最も良いネットワークインターフェースを選択するステップが、最大インターフェース一致指標Iをもつネットワークインターフェースを選択するステップを備える、
請求項1に記載の方法。
【請求項１０】
前記3次のプロセッサ上の前記選択された最も良いネットワークインターフェースに前記2次プロセッサを結合させるステップをさらに備える、請求項9に記載の方法。
【請求項１１】
前記3次プロセッサが、前記2次プロセッサと確立された別のプロキシインターフェースをもつ、請求項10に記載の方法。
【請求項１２】
プロセッサと、
前記プロセッサに結合されたメモリと、
前記プロセッサに結合され、ワイヤレス通信ネットワークから信号を受信するように構成された、ワイヤレス受信機と
を備え、
前記プロセッサが、ネットワークアクセス要求で受信されたネットワーク選択ポリシーパラメータに最もよく一致するインターフェースを選択するために、複数のプロセッサの間で階層的インターフェース選択手順を実行するステップを備える動作を実行するためのプロセッサ実行可能命令で構成され、前記ステップが、
第1のプロセッサ上で走るアプリケーションからネットワーク選択ポリシーパラメータを含むネットワークアクセスのためのアプリケーション要求を前記第1のプロセッサ内で受信するステップと、
プロキシインターフェースを介して前記第1のプロセッサに結合された1つまたは複数の2次プロセッサに、前記ネットワーク選択ポリシーパラメータを含む、ネットワークインターフェース選択要求を転送するステップと、
2次プロセッサから前記2次プロセッサに結合された3次プロセッサに、前記ネットワーク選択ポリシーパラメータを含む、前記ネットワークインターフェース選択要求を転送するステップと、
前記3次プロセッサ上で利用可能なネットワークインターフェースがいかによく前記ネットワーク選択ポリシーパラメータを満たすかを評価するステップと、
前記3次プロセッサ上での評価に基づいて、3次プロセッサを介して利用可能な最も良いネットワークインターフェースを選択するステップと、
1つが利用可能である場合に、選択された3次プロセッサを介して利用可能な最も良いネットワークインターフェースに関する情報を前記2次プロセッサに送信するステップと、
前記2次プロセッサ上で利用可能なネットワークインターフェースがいかによく前記ネットワーク選択ポリシーパラメータを満たすかを評価するステップと、
前記3次プロセッサから受信した情報および前記2次プロセッサ上での評価に基づいて、2次プロセッサを介して利用可能な最も良いネットワークインターフェースを選択するステップと、
1つが利用可能である場合に、選択された2次プロセッサを介して利用可能な最も良いネットワークインターフェースに関する情報を前記第1のプロセッサに送信するステップと、
前記第1のプロセッサ上で利用可能なネットワークインターフェースがいかによく前記ネットワーク選択ポリシーパラメータを満たすかを評価するステップと、
前記2次プロセッサから受信した情報および前記第1のプロセッサ上での評価に基づいて、前記アプリケーション要求に対する最も良いネットワークインターフェースを選択するステップと
を備えるような動作を実行するためのプロセッサ実行可能命令で前記プロセッサが構成される、モバイルデバイス。
【請求項１３】
ネットワークアクセス要求で受信されたネットワーク選択ポリシーパラメータに最もよく一致するインターフェースを選択するために、複数のプロセッサの間で階層的インターフェース選択手順を実行するステップがさらに、前記選択された最も良いネットワークインターフェースのネットワーク構成を開始するステップを備えるような動作を実行するためのプロセッサ実行可能命令で前記プロセッサが構成される、請求項12に記載のモバイルデバイス。
【請求項１４】
アプリケーションまたは接続マネージャが前記選択された最も良いネットワークインターフェースのネットワーク構成を開始するような動作を実行するためのプロセッサ実行可能命令で前記プロセッサが構成される、請求項13に記載のモバイルデバイス。
【請求項１５】
前記選択された最も良いネットワークインターフェースのネットワーク構成を開始するステップが、
前記選択された最も良いネットワークインターフェースが前記第1のプロセッサ上または異なるプロセッサ上で利用可能なインターフェースであるかどうかを判断するステップと、
前記選択された最も良いネットワークインターフェースが前記第1のプロセッサ上で利用可能なインターフェースである場合に、標準ネットワーク構成を開始するステップと、
前記選択された最も良いネットワーク接続が前記異なるプロセッサ上で利用可能である場合に、前記選択された最も良いネットワーク接続へのデータ経路を自動的に接続するステップと
を備えるような動作を実行するためのプロセッサ実行可能命令で前記プロセッサが構成される、請求項13に記載のモバイルデバイス。
【請求項１６】
前記選択された最も良いネットワーク接続が前記異なるプロセッサ上で利用可能である場合に、前記選択された最も良いネットワーク接続へのデータ経路をセットアップするステップが、
前記異なるプロセッサ上の対応するインターフェースに前記第1のプロセッサのプロキシインターフェースを結合させるステップと、
前記選択された最も良いネットワークインターフェースに前記対応するインターフェースを結合させるステップと
を備えるような動作を実行するためのプロセッサ実行可能命令で前記プロセッサが構成された、請求項15に記載のモバイルデバイス。
【請求項１７】
前記異なるプロセッサ上の対応するインターフェースに前記第1のプロセッサのプロキシインターフェースを結合させるステップが、前記プロキシインターフェースおよび前記異なるプロセッサ上の前記対応するインターフェースの間の複数のプロセッサにわたる一連のインターフェースを結合させるステップを備えるような動作を実行するためのプロセッサ実行可能命令で前記プロセッサが構成された、請求項16に記載のモバイルデバイス。
【請求項１８】
前記プロキシインターフェースが周辺デバイスによって使用されるような動作を実行するためのプロセッサ実行可能命令で前記プロセッサが構成された、請求項16に記載のモバイルデバイス。
【請求項１９】
前記周辺デバイスがラップトップコンピュータである、請求項18に記載のモバイルデバイス。
【請求項２０】
前記第1のおよび各2次プロセッサ上で利用可能な各ネットワークインターフェースがいかによく前記ネットワーク選択ポリシーパラメータを満たすかを評価するステップが、インターフェース一致指標Iを計算するステップを備え、
最も良いネットワークインターフェースを選択するステップが、最大インターフェース一致指標Iをもつネットワークインターフェースを選択するステップを備える
ような動作を実行するためのプロセッサ実行可能命令で前記プロセッサが構成された、請求項12に記載のモバイルデバイス。
【請求項２１】
前記3次プロセッサ上の前記選択された最も良いネットワークインターフェースに前記2次プロセッサを結合させるステップをさらに備える動作を実行するためのプロセッサ実行可能命令で前記プロセッサが構成された、請求項20に記載のモバイルデバイス。
【請求項２２】
前記3次プロセッサが、前記2次プロセッサと確立された別のプロキシインターフェースをもつ、請求項21に記載のモバイルデバイス。
【請求項２３】
ネットワークアクセス要求で受信されたネットワーク選択ポリシーパラメータに最もよく一致するインターフェースを選択するために、複数のプロセッサの間で階層的インターフェース選択手順を実行するための手段を備え、前記手段が、
第1のプロセッサ上で走るアプリケーションからネットワーク選択ポリシーパラメータを含むネットワークアクセスのアプリケーション要求を第1のプロセッサ内で受信するための手段と、
プロキシインターフェースを介して前記第1のプロセッサに結合された1つまたは複数の2次プロセッサに、前記ネットワーク選択ポリシーパラメータを含む、ネットワークインターフェース選択要求を転送するための手段と、
2次プロセッサから前記2次プロセッサに結合された3次プロセッサに、前記ネットワーク選択ポリシーパラメータを含む、前記ネットワークインターフェース選択要求を転送するための手段と、
前記3次プロセッサ上で利用可能なネットワークインターフェースがいかによく前記ネットワーク選択ポリシーパラメータを満たすかを評価するための手段と、
前記3次プロセッサ上での評価に基づいて、3次プロセッサを介して利用可能な最も良いネットワークインターフェースを選択するための手段と、
1つが利用可能である場合に、選択された3次プロセッサを介して利用可能な最も良いネットワークインターフェースに関する情報を前記2次プロセッサに送信するための手段と、
前記2次プロセッサ上で利用可能なネットワークインターフェースがいかによく前記ネットワーク選択ポリシーパラメータを満たすかを評価するための手段と、
前記3次プロセッサから受信した情報および前記2次プロセッサ上での評価に基づいて、2次プロセッサを介して利用可能な最も良いネットワークインターフェースを選択するための手段と、
1つが利用可能である場合に、選択された2次プロセッサを介して利用可能な最も良いネットワークインターフェースに関する情報を前記第1のプロセッサに送信するための手段と、
前記第1のプロセッサ上で利用可能なネットワークインターフェースがいかによく前記ネットワーク選択ポリシーパラメータを満たすかを評価するための手段と、
前記2次プロセッサから受信した情報および前記第1のプロセッサ上での評価に基づいて、前記アプリケーション要求に対する最も良いネットワークインターフェースを選択するための手段と
を備える、モバイルデバイス。
【請求項２４】
ネットワークアクセス要求で受信されたネットワーク選択ポリシーパラメータに最もよく一致するインターフェースを選択するために、複数のプロセッサの間で階層的インターフェース選択手順を実行するための手段がさらに、前記選択された最も良いネットワークインターフェースのネットワーク構成を開始するための手段を備える、請求項23に記載のモバイルデバイス。
【請求項２５】
アプリケーションまたは接続マネージャが、前記選択された最も良いネットワークインターフェースのネットワーク構成を開始する、請求項24に記載のモバイルデバイス。
【請求項２６】
前記選択された最も良いネットワークインターフェースのネットワーク構成を開始するための手段が、
前記選択された最も良いネットワークインターフェースが前記第1のプロセッサ上または異なるプロセッサ上で利用可能なインターフェースであるかどうかを判断するための手段と、
前記選択された最も良いネットワークインターフェースが前記第1のプロセッサ上で利用可能なインターフェースである場合に、標準ネットワーク構成を開始するための手段と、
前記選択された最も良いネットワーク接続が前記異なるプロセッサ上で利用可能である場合に、前記選択された最も良いネットワーク接続へのデータ経路を自動的に接続するための手段と
を備える、請求項24に記載のモバイルデバイス。
【請求項２７】
前記選択された最も良いネットワーク接続が前記異なるプロセッサ上で利用可能である場合に、前記選択された最も良いネットワーク接続へのデータ経路をセットアップするための手段が、
前記異なるプロセッサ上の対応するインターフェースに前記第1のプロセッサのプロキシインターフェースを結合させるための手段と、
前記選択された最も良いネットワークインターフェースに前記対応するインターフェースを結合させるための手段と
を備える、請求項26に記載のモバイルデバイス。
【請求項２８】
前記異なるプロセッサ上の対応するインターフェースに前記第1のプロセッサのプロキシインターフェースを結合させるステップが、前記プロキシインターフェースおよび前記異なるプロセッサ上の前記対応するインターフェースの間の複数のプロセッサにわたる一連のインターフェースを結合させるステップを備えるような動作を実行するためのプロセッサ実行可能命令で前記プロセッサが構成された、請求項27に記載のモバイルデバイス。
【請求項２９】
前記プロキシインターフェースが周辺デバイスによって使用される、請求項27に記載のモバイルデバイス。
【請求項３０】
前記周辺デバイスがラップトップコンピュータである、請求項29に記載のモバイルデバイス。
【請求項３１】
前記第1のおよび各2次プロセッサ上で利用可能な各ネットワークインターフェースがいかによく前記ネットワーク選択ポリシーパラメータを満たすかを評価するための手段が、インターフェース一致指標Iを計算するための手段を備え、
最も良いネットワークインターフェースを選択するための手段が、最大インターフェース一致指標Iをもつネットワークインターフェースを選択するための手段を備える、
請求項23に記載のモバイルデバイス。
【請求項３２】
前記3次のプロセッサ上の前記選択された最も良いネットワークインターフェースに前記2次プロセッサを結合させるための手段をさらに備える、請求項31に記載のモバイルデバイス。
【請求項３３】
前記3次プロセッサが、前記2次プロセッサと確立された別のプロキシインターフェースをもつ、請求項32に記載のモバイルデバイス。
【請求項３４】
ネットワークアクセス要求で受信されたネットワーク選択ポリシーパラメータに最もよく一致するインターフェースを選択するために、複数のプロセッサの間で階層的インターフェース選択手順を実行するステップを備える動作をプロセッサに実行させるように構成されたプロセッサ実行可能命令を記録したプロセッサ可読記録媒体において、前記ステップが、
第1のプロセッサ上で走るアプリケーションからネットワーク選択ポリシーパラメータを含むネットワークアクセスのアプリケーション要求を第1のプロセッサ内で受信するステップと、
プロキシインターフェースを介して第1のプロセッサに結合された1つまたは複数の2次プロセッサに、前記ネットワーク選択ポリシーパラメータを含む、ネットワークインターフェース選択要求を転送するステップと、
2次プロセッサから前記2次プロセッサに結合された3次プロセッサに、前記ネットワーク選択ポリシーパラメータを含む、前記ネットワークインターフェース選択要求を転送するステップと、
前記3次プロセッサ上で利用可能なネットワークインターフェースがいかによく前記ネットワーク選択ポリシーパラメータを満たすかを評価するステップと、
前記3次プロセッサ上での評価に基づいて、3次プロセッサを介して利用可能な最も良いネットワークインターフェースを選択するステップと、
1つが利用可能である場合に、選択された3次プロセッサを介して利用可能な最も良いネットワークインターフェースに関する情報を前記2次プロセッサに送信するステップと、
前記2次プロセッサ上で利用可能なネットワークインターフェースがいかによく前記ネットワーク選択ポリシーパラメータを満たすかを評価するステップと、
前記3次プロセッサから受信した情報および前記2次プロセッサ上での評価に基づいて、2次プロセッサを介して利用可能な最も良いネットワークインターフェースを選択するステップと、
1つが利用可能である場合に、選択された2次プロセッサを介して利用可能な最も良いネットワークインターフェースに関する情報を前記第1のプロセッサに送信するステップと、
前記第1のプロセッサ上で利用可能なネットワークインターフェースがいかによく前記ネットワーク選択ポリシーパラメータを満たすかを評価するステップと、
前記2次プロセッサから受信した情報および前記第1のプロセッサ上での評価に基づいて、前記アプリケーション要求に対する最も良いネットワークインターフェースを選択するステップと
を備えるような動作をプロセッサに実行させるように、前記記録されたプロセッサ実行可能命令が構成される、プロセッサ可読記録媒体。
【請求項３５】
ネットワークアクセス要求で受信されたネットワーク選択ポリシーパラメータに最もよく一致するインターフェースを選択するために、複数のプロセッサの間で階層的インターフェース選択手順を実行するステップがさらに、前記選択された最も良いネットワークインターフェースのネットワーク構成を開始するステップを備えるような動作をプロセッサに実行させるように、前記記録されたプロセッサ実行可能命令が構成される、請求項34に記載のプロセッサ可読記録媒体。
【請求項３６】
アプリケーションまたは接続マネージャが前記選択された最も良いネットワークインターフェースのネットワーク構成を開始するように、動作をプロセッサに実行させるように、前記記録されたプロセッサ実行可能命令が構成される、請求項35に記載のプロセッサ可読記録媒体。
【請求項３７】
前記選択された最も良いネットワークインターフェースのネットワーク構成を開始するステップが、
前記選択された最も良いネットワークインターフェースが前記第1のプロセッサ上または異なるプロセッサ上で利用可能なインターフェースであるかどうかを判断するステップと、
前記選択された最も良いネットワークインターフェースが前記第1のプロセッサ上で利用可能なインターフェースである場合に、標準ネットワーク構成を開始するステップと、
前記選択された最も良いネットワーク接続が前記異なるプロセッサ上で利用可能である場合に、前記選択された最も良いネットワーク接続へのデータ経路を自動的に接続するステップと
を備えるような動作をプロセッサに実行させるように、前記記録されたプロセッサ実行可能命令が構成される、請求項35に記載のプロセッサ可読記録媒体。
【請求項３８】
前記選択された最も良いネットワーク接続が前記異なるプロセッサ上で利用可能である場合に、前記選択された最も良いネットワーク接続へのデータ経路をセットアップするステップが、
前記異なるプロセッサ上の対応するインターフェースに前記第1のプロセッサのプロキシインターフェースを結合させるステップと、
前記選択された最も良いネットワークインターフェースに前記対応するインターフェースを結合させるステップと
を備えるような動作をプロセッサに実行させるように、前記記録されたプロセッサ実行可能命令が構成される、請求項37に記載のプロセッサ可読記録媒体。
【請求項３９】
前記異なるプロセッサ上の対応するインターフェースに前記第1のプロセッサのプロキシインターフェースを結合させるステップが、前記プロキシインターフェースおよび前記異なるプロセッサ上の前記対応するインターフェースの間の複数のプロセッサにわたる一連のインターフェースを結合させるステップを備えるような動作をプロセッサに実行させるように、前記記録されたプロセッサ実行可能命令が構成される、請求項38に記載のプロセッサ可読記録媒体。
【請求項４０】
前記プロキシインターフェースが周辺デバイスによって使用されるような動作をプロセッサに実行させるように、前記記録されたプロセッサ実行可能命令が構成される、請求項38に記載のプロセッサ可読記録媒体。
【請求項４１】
前記周辺デバイスがラップトップコンピュータであるような動作をプロセッサに実行させるように、前記記録されたプロセッサ実行可能命令が構成される、請求項40に記載のプロセッサ可読記録媒体。
【請求項４２】
前記第1のおよび各2次プロセッサ上で利用可能な各ネットワークインターフェースがいかによく前記ネットワーク選択ポリシーパラメータを満たすかを評価するステップが、インターフェース一致指標Iを計算するステップを備え、
最も良いネットワークインターフェースを選択するステップが、最大インターフェース一致指標Iをもつネットワークインターフェースを選択するステップを備える
ような動作をプロセッサに実行させるように、前記記録されたプロセッサ実行可能命令が構成される、請求項34に記載のプロセッサ可読記録媒体。
【請求項４３】
前記3次プロセッサ上で前記選択された最も良いネットワークインターフェースに前記2次プロセッサを結合させるステップをさらに備える動作をプロセッサに実行させるように、前記記録されたプロセッサ実行可能命令が構成される、請求項42に記載のプロセッサ可読記録媒体。
【請求項４４】
前記3次プロセッサが前記2次プロセッサと確立された別のプロキシインターフェースをもつような動作をプロセッサに実行させるように、前記記録されたプロセッサ実行可能命令が構成される、請求項43に記載のプロセッサ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本願は、その内容全体が参照により本明細書に組み込まれる、2010年1月22日に出願した米国仮特許出願第61/297,338号、名称「Hierarchical Routing and Interface Selection for Multi-processor Multimode Network Devices」の優先権を主張する。
【０００２】
本発明は、概してコンピューティングデバイスにおけるネットワーキングに関し、より詳細には、マルチプロセッサマルチモードネットワークデバイスにおいてネットワークインターフェースを選択するための方法およびデバイスに関する。
【背景技術】
【０００３】
歴史的に、データカード、携帯電話、ワイヤレスドングルなどのワイヤレス通信デバイスは、ユーザインターフェースの処理能力を提供するためモデムとアプリケーションの両方として動作する単一のプロセッサを使用し、構築されている。結果として、基本アーキテクチャは単一の代替のみを提供したので、アプリケーションをサポートするための特定のネットワークインターフェースを選択する必要はなかった。しかしながら、ネットワーク速度が増すにつれて、またモバイルコンピューティングデバイスでの実行に応じられるアプリケーションのポートフォリオが拡張するにつれて、ネットワーク接続を管理するための従来のアーキテクチャは、不十分になった。
【０００４】
大部分の現代のワイヤレス通信デバイスは現在、別個のアプリケーションプロセッサを採用する。この別個のアプリケーションプロセッサは、スマートフォンなど、モバイルマルチメディアコンピューティングデバイス上で使用するためにますます普及している高度アプリケーションの増加した中央プロセッサユニットの計算要求を処理する必要がある。したがって、アプリケーションプロセッサおよび少なくとも1つのモデムプロセッサを特徴とするワイヤレス通信デバイスは、スマートフォン、携帯情報端末(PDA)、ネットブックなど、今や非常に一般的である。
【０００５】
新しいワイヤレス技術は進化し続けるので、従来型のワイヤレス通信デバイスは、シームレスユーザローミングおよび複数の通信ネットワークにわたるモビリティをサポートするために、様々なタイプのネットワーク技術を含むことが予想される。異なるワイヤレス技術が、より速い開発および製品統合を可能にするためのマルチモデムデバイスアーキテクチャを含む、いくつかの異なるやり方で統合可能である。したがって、ワイヤレス通信デバイスは、そのようなデバイスで使用するためのアプリケーションの開発を複雑にする、モデムプロセッサの数およびそれらの様々な相互接続に関してますます複雑になっている。
【発明の概要】
【課題を解決するための手段】
【０００６】
実施形態は、コンピューティングデバイス内のアプリケーションのネットワーク接続を選択するシステムおよび方法を含む。様々な実施形態が、ネットワークアクセス要求に応答して最も良いネットワークインターフェースを選択するために、いくつかのプロセッサの間に階層的手順を含む。
【０００７】
さらなる実施形態は、アプリケーションからネットワークアクセス要求を受信し、そのネットワークアクセス要求をプロキシインターフェースを介して第2のまたは遠隔のプロセッサに転送する、第1のまたはローカルのプロセッサを含む。各第2のもしくは遠隔のプロセッサは、そのネットワークアクセス要求を最もよく満たすネットワークインターフェースを選択し、第1のプロセッサにこのネットワークインターフェースの情報を返すことができる。第1のプロセッサは、最も良いネットワークインターフェースを全体的に判断するために、それ自体のインターフェースおよび任意の2次プロセッサによって選択されるインターフェースを評価することができる。
【０００８】
さらなる実施形態は、そのネットワークアクセス要求を3次プロセッサに転送する2次プロセッサを含む。3次プロセッサは、2次プロセッサと同様に、そのネットワークアクセス要求を最もよく満たすネットワークインターフェースを選択し、1つまたは複数の2次プロセッサにこのネットワークインターフェースの情報を返すことができる。2次プロセッサは、その2次プロセッサの選択プロセス中に3次プロセッサから返された情報を考慮することができる。この階層的選択プロセスは、プロセッサの複数のレベルにわたって拡張され得る。
【０００９】
さらなる実施形態は、ローカルプロセッサおよび選択された最も良い総合ネットワークインターフェースの間のネットワーク構成を開始するステップを含み得る。接続セットアップが、アプリケーションもしくはマネージャによって開始され得る、または自動的に開始され得る。ローカルプロセッサおよび選択された最も良いネットワークインターフェースの間で得られるデータ経路は、複数のプロセッサにわたるインターフェースのチェーンでもよい。
【００１０】
本明細書に組み込まれ、本明細書の一部を成す、添付の図面は、本発明の例示的実施形態を説明し、上記の一般的な説明および下記の詳細な説明とともに、本発明の特徴を説明する役割をする。
【図面の簡単な説明】
【００１１】
【図１】様々な実施形態とともに使用するのに好適なコンピューティングアーキテクチャのシステムアーキテクチャ図である。
【図２】様々な実施形態とともに使用するのに好適なアプリケーションプロセッサおよび1つまたは複数のモデムプロセッサを含む、コンピューティングデバイスの代替構成のシステムおよびソフトウェアアーキテクチャ図である。
【図３】様々な実施形態とともに使用するのに好適なアプリケーションプロセッサおよび1つまたは複数のモデムプロセッサを含む、コンピューティングデバイスの代替構成のシステムおよびソフトウェアアーキテクチャ図である。
【図４】様々な実施形態とともに使用するのに好適なアプリケーションプロセッサおよび1つまたは複数のモデムプロセッサを含む、コンピューティングデバイスの代替構成のシステムおよびソフトウェアアーキテクチャ図である。
【図５】様々な実施形態とともに使用するのに好適なアプリケーションプロセッサおよび1つまたは複数のモデムプロセッサを含む、コンピューティングデバイスの代替構成のシステムおよびソフトウェアアーキテクチャ図である。
【図６】様々な実施形態とともに使用するのに好適なアプリケーションプロセッサおよび1つまたは複数のモデムプロセッサを含む、コンピューティングデバイスの代替構成のシステムおよびソフトウェアアーキテクチャ図である。
【図７】様々な実施形態とともに使用するのに好適なアプリケーションプロセッサおよび1つまたは複数のモデムプロセッサを含む、コンピューティングデバイスの代替構成のシステムおよびソフトウェアアーキテクチャ図である。
【図８Ａ】アプリケーションインターフェース要求に応答してネットワークインターフェースを選択するための実施方法のプロセスフロー図である。
【図８Ｂ】図8Aに示す方法の一部のプロセスフロー図である。
【図９】アプリケーションプロセッサからのネットワークインターフェース情報要求に応答するための実施方法のプロセスフロー図である。
【図１０】一実施形態において使用するのに好適なモバイルデバイスの構成要素ブロック図である。
【図１１】一実施形態において使用するのに好適な構成中のモバイルデバイスに結合されたパーソナルコンピュータの構成要素ブロック図である。
【発明を実施するための形態】
【００１２】
様々な実施形態が、添付の図面を参照して詳細に説明される。可能な場合には必ず、同じ参照番号は、図面全体にわたって同じまたは同様の部分を指すために使用されることになる。特定の例および実装に行われる参照は、説明を目的とし、本発明の範囲または本特許請求の範囲を限定するものではない。
【００１３】
「例示的な」という言葉は、「一例、実例または例として」を意味するために本明細書で使用される。「例示的」として本明細書で説明する実施形態は、必ずしも他の実施形態よりも好ましいまたは有利であると解釈されない。
【００１４】
本明細書で使用する「モバイルデバイス」および「コンピューティングデバイス」という用語は、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、個人情報端末(PDAの)、パームトップコンピュータ、ワイヤレス電子メール受信機(Blackberry(登録商標)およびTreo(登録商標)デバイスなど)、マルチメディアインターネット対応携帯電話(Blackberry Storm(登録商標)など)、グローバルポジショニングシステム(GPS)受信機、ワイヤレスゲームコントローラ、ならびに、プログラマブルプロセッサ、メモリ、および1つもしくは複数のネットワークインターフェースを含む同様のパーソナル電子デバイスのいずれか1つまたはすべてを指す。
【００１５】
新しいワイヤレス技術は進化し続けているので、従来型のワイヤレス通信デバイスが、シームレスユーザローミングおよび複数の通信ネットワークにわたるモビリティをサポートするために、様々なタイプのネットワーク技術を含むことが予想される。異なるワイヤレス技術が、より速い開発および製品統合を可能にするためのマルチモデムデバイスアーキテクチャを含む、いくつかの異なるやり方で統合され得る。したがって、ワイヤレス通信デバイスは、ますます複雑になっていて、そのようなデバイスで使用するためのアプリケーションの開発を複雑にする。現在のアプリケーション設計技法およびソフトウェアアーキテクチャを使用し、アプリケーション開発者は、特定のアプリケーションネットワーキング要件に最適な接続を提供することができる複数のモデムインターフェースを追い続ける困難な課題に直面している。さらに、新しい通信技術またはモデムの追加など、コンピューティングデバイスのアーキテクチャへの変更は、大量のアプリケーションの書直しおよびテストを必要とし得る。これは、アプリケーションに多数の通信サービスを提供するために、異なるネットワーク技術に依存するネットワーキングアプリケーションに特に当てはまる。
【００１６】
モデムおよび将来のコンピューティングデバイスで起こり得る複雑性が、3つのモデムプロセッサ(すなわち、モデムプロセッサ1、2、3)に接続されたアプリケーションプロセッサ10を含むコンピューティングデバイスアーキテクチャを示す、図1で説明される。モデムプロセッサ1、2、3の各々は、内部モデムを含むことができ、2次モデム1、2、3などの2次モデムに接続され得る。周辺デバイス1、2、3などの様々な周辺デバイスは、たとえば、周辺デバイス1で見られるようなアプリケーションプロセッサ10に、モデムプロセッサ1に接続された周辺デバイス2で見られるようなモデムプロセッサに、あるいは、2次モデム3に接続された周辺デバイス3などの2次モデムになど、様々な接続を介してコンピューティングデバイスに接続され得る。アプリケーションプロセッサ10へのモデムプロセッサの結合のそのような柔軟性は、構築されることになる多種多様な異なる種類のコンピュータアーキテクチャを可能にする。したがって、アプリケーション開発者は、ネットワーク接続性を要求しているアプリケーションのために実装され得るすべての可能なコンピュータアーキテクチャを予期することはできない。
【００１７】
様々な実施形態は、ネットワーク接続の実際の近接性を抽出する階層的ルーティングレイヤを提供することによって、上記の現在の方法の欠陥を解決し、現在および将来のワイヤレス通信デバイスのアプリケーションの開発を単純化する。確立された実際の接続の詳細またはコンピューティングデバイスの構成に対処するあるいはかかわる必要なしに、特定のタイプのネットワーク接続を要求および受信することができるように、様々な実施形態を使用し、アプリケーションが構成され得る。
【００１８】
様々な実施形態で、コンピューティングデバイスのハードウェアアーキテクチャおよびプロセッサトポロジは、アプリケーションから隠されている。アプリケーションの観点からすると、アプリケーションは、同じアプリケーションプログラミングインターフェース(API)を使用し、たとえば単一モデムコンピューティングデバイス内で一般的な、現在のポリシーに基づくネットワークアクセスルーティング方法で同じインターフェース行動を仮定するネットワーク接続にアクセスすることができる。ネットワーキングアプリケーションの観点からすると、本アプリケーションは、特定のネットワークに接続し、そのネットワークインターフェースに関連するソケットにデータを読み込む/書き込むネットワークインターフェースを管理する。階層的ルーティングレイヤが、コンピューティングデバイス内のプロセッサ(すなわち、アプリケーションプロセッサ、および1つまたは複数のモデムプロセッサ)の各々のソフトウェアアーキテクチャ内で提供される。
【００１９】
階層的ルーティングレイヤは、プロキシネットワークインターフェースを使用するそのアプリケーションからモデムのネットワーク接続性の実際の近接性を抽出する。各デバイスプロセッサ上の階層的ルーティングレイヤは、協働して、特定のアプリケーションネットワーク要求に最も良いネットワークインターフェースを識別する。階層的ルーティングレイヤはまた、そのネットワークインターフェースがアプリケーションホストプロセッサに、別のプロセッサ(モデムプロセッサなど)に、または、中間プロセッサを介した別のプロセッサにさえも提供されるかどうかにかかわらず、単純な形でネットワークインターフェースへのアプリケーション要求の接続を可能にする。
【００２０】
「プロキシネットワークインターフェース」は、メインアプリケーションプロセッサ上にあるアプリケーションであり、別のプロセッサ上にある実ネットワークインターフェースを表す。各々が2次プロセッサ上の異なる実インターフェースを表す、1つまたは複数のプロキシインターフェースが存在し得る。一般的には、プロキシインターフェースは、同インターネットプロトコル(IP)構成を繰り返し、対応する実ネットワークインターフェースによってサポートされるのと同じネットワーク動作を可能にする。
【００２１】
参照しやすいように、アプリケーションが実行されるプロセッサは、そのプロセッサがそのアプリケーションの観点からローカルであるので、本明細書では「ローカルプロセッサ」と呼ぶ。したがって、ネットワークインターフェースがそのアプリケーションと同じプロセッサ上にあるとき、そのネットワークインターフェースは、そのローカルプロセッサ上で利用可能であると言われる。
【００２２】
様々な実施形態で、アプリケーションがあるネットワークタイプ(通信ネットワーク技術など)への接続を要求するとき、そのアプリケーションプロセッサ上のルーティングレイヤが、そのアプリケーションの要求に最も合ったインターフェースを選択するために、階層的インターフェース選択手順を実行する。図8および9を参照して以下でより十分に説明する、このインターフェース選択手順は、そのアプリケーションの識別されたネットワークパラメータに最も良い一致を提供する複数のプロセッサ上で利用可能な複数のインターフェースの間から1つのインターフェースをそのアプリケーションプロセッサが返せるようにする。
【００２３】
選択された最も良いインターフェースへのアプリケーションの接続は、その選択されたインターフェースがローカルかまたは別のプロセッサ上で利用可能かに依存する。このネットワーク接続性がローカルプロセッサから直接アクセス可能である(すなわち、そのネットワークインターフェースがそのアプリケーションと同じプロセッサ上にある)場合、実ネットワークインターフェースへのハンドルがそのアプリケーションに返される。ネットワーク接続性が異なるプロセッサからアクセス可能である、すなわち、インターフェースが異なるプロセッサ上にある、場合、プロキシインターフェースへのハンドルがそのアプリケーションに返される。そのネットワーク接続性は遠隔プロセッサで利用可能であるが、このプロキシインターフェースは、アプリケーションが最初に要求した同じ物理ネットワークを表し、それに接続する。言い換えれば、ネットワークがローカルプロセッサを介して接続される場合、アプリケーションは実ネットワークインターフェースに直接接続する。しかし、ネットワークが遠隔プロセッサを介して接続される場合、アプリケーションはプロキシインターフェースに接続することになる。いずれの場合も、アプリケーションはネットワーク接続性の実際の位置に気づかず、接続の近接性を必ずしも知らなくても、それに提供されるネットワークインターフェースを使用し続ける。
【００２４】
よく知られているように、プロセッサは、2つのタイプのインターフェース、RmタイプのインターフェースおよびUmタイプのインターフェース、をもち得る。Umタイプのインターフェースは、インターネットまたは他のローカルもしくはグローバルサービスドメインに接続性を提供するワイヤレスWAN/LAN/MANネットワークなどのワイヤレスネットワークに接続する。Rmタイプのインターフェースは、異なるタイプの相互接続を介して周辺デバイスに接続するインターフェースである。そのようなRmタイプの相互接続は、ユニバーサルシリアルバス(USB)、シリアル周辺インターフェース(SPI)、万能非同期送受信機(UART)、セキュアデジタル入力出力(SDIO:Secure Digital Input Output)などのシリアルワイヤード接続、ブルートゥース(BT)インターフェースなどのシリアルワイヤレス接続、または、共用メモリでもよい。Rmタイプインターフェースはまた、BT PANおよびWiFiなどの他のワイヤレス接続性にも使用され得る。Rmインターフェースは、ネットワーク接続性を、ユニバーサル集積回路カード(UICC)、ラップトップ、他の共同ホストプロセッサなどの周辺デバイスに拡張するために使用可能である。複数のRmインターフェースが、ネットワークアドレス変換(NAT)またはIPルーティング機構を使用するひとつのUmタイプインターフェースによってサービスされ得るが、各Rmインターフェースは、IP構成を取得するために、一意のUmインターフェースに接続する。UmタイプインターフェースがRmタイプインターフェースに排他的に接続される場合、それらのインターフェースは、パケットルーティングモジュールを介するパケットのルーティングではなくて効率的なパケット転送のために互いにブリッジされ得る。
【００２５】
プロキシインターフェースは、Rmインターフェースに接続することができ、したがって、接続するモデムプロセッサへの周辺デバイスとして生じる。インターフェースの他方の側で、プロキシインターフェースは、アクティブおよび使用可能なIP構成にサービスするUmタイプインターフェースとして生じ得る。これらのプロキシインターフェースは、ローカルプロセッサで実行するアプリケーションによって直接に、または、ラップトップもしくは別のモデムなどのローカルプロセッサの外部の別の周辺デバイスによって、使用され得る。したがって、様々な実施形態で、コンピューティングデバイス内にプロセッサトポロジのネットワーク全体を構築することが可能である。このプロセッサトポロジは、異なるネットワーク技術にアクセスするために、任意の数の周辺デバイスが任意の数の利用可能なモデムプロセッサに接続できるようにすることができる。プロセッサトポロジはまた、任意の数のモデム/アプリケーションプロセッサが直列または並列の形で一緒に接続されることを可能にする。それによって、アプリケーションは、遠隔プロセッサを介してアクセス可能なワイヤレスネットワークへのアクセス権を有しながら、コンピューティングデバイス内の任意のプロセッサ(モデムプロセッサまたはアプリケーションプロセッサのいずれか)上で走ることができる。
【００２６】
このようにして、様々な実施形態が、アプリケーション開発をさらに複雑にすることまたはアプリケーションが特定のデバイス構成のために開発されることを必要とすることなしに、図2〜7に示すデバイスアーキテクチャ構成のいずれかでネットワークインターフェースをアプリケーションが要求および取得できるようにする。
【００２７】
図2〜7を参照すると、様々な実施形態が、コンピューティングデバイス内のアプリケーションプロセッサおよび各モデムプロセッサのソフトウェアプロトコルスタック20内に含まれるルーティングレイヤ22の形態で実装され得る。
【００２８】
図2は、ラップトップコンピュータ12などの端末が相互接続24によってモデムプロセッサ1に結合される実装のためのコンピュータハードウェアおよびソフトウェアアーキテクチャを示す。このアーキテクチャで、相互接続24は、ワイヤレスローカルエリアネットワーク/ワイヤレスミディアムエリアネットワーク(WLAM/WMAN)32にアクセスするためのワイヤレス(Um)インターフェース28に結合するインターフェースブリッジ27を提供することができる実(Rm)インターフェース26を介してモデムプロセッサ1に接続され得る。モデムプロセッサ1はまた、ワイヤレスワイドエリアネットワーク(WWAN)34にアクセスする第2のワイヤレス(Um)インターフェース30を含み得る。図2〜7に示すインターフェースは、USB、SPI、UART、SDIO、BT、共用メモリおよびUICCを含む、任意の知られているシグナリングまたはデータインターフェースでもよい。
【００２９】
図3は、モデムプロセッサ1に結合されたアプリケーションプロセッサ10を含む実装のためのコンピュータハードウェアおよびソフトウェアアーキテクチャを示す。この実施形態で、アプリケーションプロセッサ10は、ローカル実(Rm)インターフェース40、ワイヤレスインターフェース42、およびプロキシインターフェース44を含む。モデムプロセッサ1との接続は、相互接続46によるモデムプロセッサ1データインターフェース26へのプロキシインターフェース44を介する。データインターフェース26は、ワイヤレスインターフェース30にインターフェースブリッジ29を提供することができる。
【００３０】
図4は、ラップトップコンピュータ12への相互接続24の追加をもつ図3に示すものと同様の実装のためのコンピュータハードウェアおよびソフトウェアアーキテクチャを示す。インターフェースブリッジ41は、実インターフェース40をプロキシインターフェース44に接続することができる。図5は、モデムプロセッサ1が複数のインターフェースブリッジ29、49、およびアプリケーションプロセッサ10のプロキシインターフェース44、48への複数の相互接続46、47を含む図4に示すものと同様の実装のためのコンピュータハードウェアおよびソフトウェアアーキテクチャを示す。
【００３１】
図6は、アプリケーションプロセッサ10が4つのモデムプロセッサ(すなわち、モデムプロセッサ1〜4)に結合される実装のためのコンピュータハードウェアおよびソフトウェアアーキテクチャを示す。このアーキテクチャで、アプリケーションプロセッサ10は、モデムプロセッサ1およびモデムプロセッサ3に直接接続される。モデムプロセッサ2は相互接続によってモデムプロセッサ1に接続され、モデムプロセッサ4は相互接続によってモデムプロセッサ3に接続される。このようにして、アプリケーションプロセッサ10は、それぞれモデムプロセッサ1および3を介するプロキシ接続によってモデムプロセッサ2、4と接続のみすることができる。
【００３２】
図7は、モデムプロセッサ3がアプリケーションプロセッサ10との2つの接続52、54を含むことを加えた図6に示すものと同様の実装のためのコンピュータハードウェアおよびソフトウェアアーキテクチャを示す。この実装形態で、アプリケーション(「app1」)50は、モデムプロセッサ3上でホストされる。この構成では、プロキシ接続52は、アプリケーションプロセッサ10によって提供されるインターフェースに接続するためのモデムプロセッサ3上で提供される。
【００３３】
ローカルプロセッサ上のアプリケーションがネットワークインターフェースを要求するとき、そのローカルプロセッサ上のルーティングレイヤ22は、階層的ルーティングアルゴリズムを実装して、そのアプリケーションに返されることになる特定のネットワークインターフェースを選択することができる。階層的ルーティングアルゴリズムは、コンピューティングデバイス内の各プロセッサのルーティングレイヤ内の階層的ルーティングモジュール(HRM)の形態で実装され得る。プロセッサルーティングレイヤの各々でHRMによって階層的ルーティングアルゴリズム内で実行され得る例示的な動作が、以下で説明する図8A、8Bおよび9に示される。
【００３４】
図8Aは、ローカルプロセッサ(すなわち、ネットワーク接続を要求するアプリケーションをホストするプロセッサ)内で実行され得る階層的ルーティングアルゴリズムの例示的方法100を示す。プロセッサは、特定のネットワークへの接続のアプリケーション要求の受信に応答して、階層的ルーティングアルゴリズムを開始することができる、ステップ102。アプリケーションのネットワーク接続要求は、技術選択(セルラー、WiFi、ブルートゥースなど)、データ速度要件、サービス品質(QOS)、所望のネットワーク能力などのネットワーク選択ポリシーパラメータを含み得る。ステップ104で、ローカルプロセッサが、そのプロセッサの構成を評価し、そのローカルプロセッサに直接接続された利用可能なプロセッサのリスト{Pr}を列挙することができる。ステップ106で、ローカルプロセッサは、ローカルプロセッサそれ自体上に利用可能なネットワークインターフェースのリストを列挙することができる。このリストは、実インターフェース{Ir}およびプロキシインターフェース{Ip}のリストを含むことができる。ループスパニングステップ108から112で、ローカルプロセッサは、利用可能なプロセッサのリスト{Pr}内の各プロセッサxについて、{Ipx}と呼ばれる、直接接続された各遠隔プロセッサ上のインターフェースを表すすべてのプロキシインターフェースのリストを列挙することができる。言い換えれば、ステップ108で、ローカルプロセッサは、評価のための利用可能な直接接続されたプロセッサのうちの特定の1つ((x))を選択し、ステップ110でインターフェースを表すすべてのプロキシインターフェースのそのプロセッサのリスト{Ipx}を列挙し、最後のプロセッサxが評価されるまで(すなわち、判断ステップ112=「はい」まで)これらの動作を繰り返すことができる。
【００３５】
ループスパニングステップ114から122で、ローカルプロセッサは、そのアプリケーションに最も良いインターフェースを選択するために使用可能な各被接続プロセッサからネットワークインターフェース適合性情報を取得することができる。具体的には、ステップ114で、ローカルプロセッサは、評価のための利用可能な直接接続されたプロセッサのうちの1つ((x))を選択することができる。ステップ116で、ローカルプロセッサは、すべてのネットワーク選択ポリシーパラメータを含む、インターフェース選択要求を{Ipx}内のプロキシインターフェースの1つ((g))を介してその選択されたプロセッサxに転送することができる。選択されたプロキシインターフェースは、現在利用可能な任意のインターフェースでもよい(すなわち、プロキシインターフェースがセット{Ipx}からランダムに選択され得る)。ローカルプロセッサに結合されたプロセッサが存在しない(すなわち、利用可能なプロセッサのリスト{Pr}が空集合である)場合、ステップ116および118は飛ばされて進むことになる。ステップ118で、ローカルプロセッサは、そのプロセッサで利用可能なネットワーク選択ポリシーパラメータに最もよく一致するインターフェースに関する選択されたプロセッサxの情報から受信し返すことになる。この情報は次を含み得る:対応するプロキシインターフェースMpi(セット{Ipx}の中のインターフェースの1つである)にマップされたインターフェース識別子である最もよく一致するインターフェースMiと、そのネットワークインターフェースが要求されるネットワークポリシーをいかによくサポートし得るかを示す整数値でもよい、一致指標I。一実施形態では、識別されたネットワークインターフェースがネットワーク選択ポリシーパラメータによく一致すればするほど、一致指標Iの値は高くなる。一致指標値を提供することは、既存のネットワーク状態でそのアプリケーションのネットワークポリシーパラメータに最もよく一致する複数のモデムプロセッサによって利用可能な複数のネットワークインターフェースの中から利用可能なネットワークインターフェースを識別することを容易にする。
【００３６】
ステップ118でローカルプロセッサにリポートして返される情報は、図9を参照しながら下記に説明するように、同様のルーティングレイヤルーティングアルゴリズムにおいて、選択されたプロセッサxによって生成され得る。ステップ118でローカルプロセッサにリポートして返される情報は、ステップ120で4つのタプル[x, Mpi, Mi, I]としてローカルプロセッサルーティングレイヤによって記憶され得る。この4つのタプル[x, Mpi, Mi, I]値は、選択されたプロセッサxが一致指標IをもつプロキシインターフェースMpiを介して所望のネットワーク接続性を提供することができ、遠隔プロセッサx上のインターフェースMiが、この接続性を提供するために、使用されることになることを示す。
【００３７】
判断ステップ122で、ローカルプロセッサは、選択されたプロセッサがリスト{Pr}内の最後のプロセッサであるかどうかを判断する。評価すべき別のプロセッサが存在する(すなわち、ステップ122=「いいえ」)場合、プロセッサはステップ114に戻ってリスト{Pr}内の次のプロセッサxを選択することができる。
【００３８】
すべてのプロセッサが評価された(すなわち、判断ステップ122=「はい」)場合、プロセッサは、ループスパニングステップ124から130で各実インターフェース(すなわち、リスト{Ir}内のローカルプロセッサで利用可能なインターフェース)を評価することができる。具体的には、ステップ124で、ローカルプロセッサが、そのローカルプロセッサに接続された実インターフェースのリスト{Ir}内で1つの(h)インターフェースを選択することができる。ステップ126で、ネットワーク選択ポリシーパラメータが、選択されたインターフェースh特性に対して評価されて、その選択されたインターフェースについての一致指標I値を判断する。所望のネットワーク能力およびネットワークポリシーパラメータに対するローカルインターフェースの評価が、当業者によく知られている様々な方法のいずれかを使用して達成可能である。ローカルインターフェースがインターフェース選択要求を満たす度合いに関する情報が、4つのタプル[0, Null, h, I]値で記憶され得る。この4つのタプル[0, Null, h, I]は、そのローカルプロセッサ(値「0」によって示される)が、一致指標値1をもつ実インターフェースhとの所望のネットワーク接続性をサポートすることができることを示す。判断ステップ130で、ローカルプロセッサが、選択されたローカルインターフェースhがリスト{Ir}内で最後のローカルインターフェースであるかどうかを判断する。評価すべき別のローカルインターフェースが存在する(すなわち、判断ステップ130=「いいえ」)場合、プロセッサはステップ124に戻ってリスト{Ir}内の次のローカルインターフェースhを選択することができる。
【００３９】
すべてのローカルインターフェースが評価された(すなわち、判断ステップ130=「はい」)場合、ローカルプロセッサは、記憶された4つのタプル値を評価して、ステップ132で使用するために選択される最も高い一致指標Iをもつインターフェースを識別する。その選択されたインターフェースの4つのタプル内の情報は、ステップ132の一部としてメモリから再コールされる。
【００４０】
判断ステップ134で、ローカルプロセッサは、そのプロセッサID(すなわち、4つのタプルの第1の値)が選択されたインターフェースがローカルであることを示す「0」に等しいかどうかを判断することなどによって、選択されたインターフェースが遠隔またはローカルインターフェースであるかどうかを判断する。選択されたインターフェースがローカルインターフェースである(すなわち、判断ステップ134=「はい」)場合、選択されたインターフェースのネットワーク構成がステップ136でネットワーク定義済みの方式で開始される。
【００４１】
選択されたインターフェースが遠隔インターフェースである(すなわち、判断ステップ134=「いいえ」であり、プロセッサIDが「0」以外の値である)場合、プロキシインターフェースMpiがステップ138で遠隔プロセッサと関連付けるように構成される。プロキシインターフェースMpiのこの構成は、プロキシインターフェースを構成すること、および遠隔プロセッサ(すなわち、遠隔モデム)の選択されたインターフェースへの接続を確立することによって、達成され得る。
【００４２】
様々な実施形態が、ステップ138でプロキシインターフェースMpiおよび選択されたインターフェースMiの間の接続セットアップを開始するための異なる方法を実装することができる。第1の方法で、アプリケーションまたは接続マネージャが、接続セットアップを開始することができる。階層的ルーティングモジュール(HRM)によって返される選択されたインターフェースMiに基づいて、アプリケーションまたは接続マネージャが、ネットワーク接続要求を発行することができる。インターフェースの構成は、このプロセスの一部として発生し得る。第2の方法で、最もよく一致するインターフェースが利用可能になるとすぐにまたは別のトリガ事象に基づいて、接続セットアップが自動的に行われ得る。その後、インターフェースの構成が次いで起こる。
【００４３】
どちらの場合も、接続セットアップおよび構成プロセスは、図8Bにさらに示すように、ステップ138で進むことができる。接続セットアップが始まった後に、プロキシインターフェースMpiに対応する遠隔プロセッサ上のインターフェースが、ステップ152で遠隔プロセッサ上の対応するRmインターフェースに結合するプロキシインターフェースMpiによって構成され得る。ステップ154で、このRmインターフェースは、実インターフェースまたは別のプロキシインターフェースでもよい、同遠隔プロセッサ上のUmインターフェースに結合する。Umインターフェースが実である(すなわち、判断ステップ156=「実」)場合、遠隔プロセッサはステップ158でインターフェース構成情報をローカルプロセッサに送信することができ、そのローカルプロセッサ上のプロキシインターフェースMpiが、ステップ160で、遠隔プロセッサによってそのローカルプロセッサに送信される構成情報に基づいて構成され得る。このことが、ステップ136で、ネットワーク接続セットアップを完了することになる。
【００４４】
図8Bに示すように、この構成プロセスは、階層的でもよく、複数の接続されたプロセッサのチェーンに沿って繰り返され得る。このようにして、プロキシインターフェースMpiがプロキシUmインターフェースに結合する(すなわち、判断ステップ156=「プロキシ」)場合、本プロセスは、次のプロセッサxへの次のインターフェースを選択するために、図8Aのステップ114に戻ることによって、繰り返され得る。選択されたインターフェースが次いで、ステップ152から156を繰り返すことによって、別のUmインターフェースに結合するプロキシUmインターフェース(すなわち、別の遠隔プロセッサの対応するRmインターフェース)とこのようにして結合され得る。結合インターフェースのこのチェーンは、実物理ネットワークへの接続性を提供し、それによってデータ経路セットアップを完了することができる実Umインターフェースが到達されるまで、継続することができる。実Umインターフェースが結合された(すなわち、判断ステップ156=「実」)後は、各遠隔プロセッサが、ステップ158でインターフェース構成情報を前の「ローカル」プロセッサに送信することができ、そして、ローカルプロセッサ上のプロキシインターフェースMpiは、インターフェース構成情報の送信およびインターフェースのチェーン中のすべてのプロキシインターフェースが構成されるまで継続する各プロキシインターフェースの構成のプロセスをもつ、ステップ160で、構成情報に基づいて構成され得る。このことが、ステップ136で、ネットワーク接続セットアップを完了することになる。その後、アプリケーションから送信されるすべてのパケットは、このデータ経路内に確立されたインターフェースのチェーンを通って伝わることができる。
【００４５】
同基本的階層的ルーティングアルゴリズムは、ルーティングレイヤ内の各プロセッサ上に実装され得る。この実施形態は、コンピュータアーキテクチャ内で互いに接続されたプロセッサの任意のネットワークをサポートし、そのプロセッサのうちのいずれか1つで走るアプリケーションが任意のモデムを介して任意のネットワークにアクセスすることを可能にすることになる。それによって、ネットワーク選択要求がステップ114で次のプロセッサに転送されるとき、同基本アルゴリズムは、次の(すなわち、遠隔の)プロセッサ上のローカルおよびプロキシインターフェースのセットを介して再び実行される。インターフェース選択要求が、プロキシインターフェースgに接続されたRmリンクを介して到達することになる。Rmインターフェースは、その要求をルーティングレイヤに転送し、階層的ルーティングアルゴリズムを呼び出すことになる。Rmインターフェースの観点からすると、このプロセスは、いかにしてインターフェースが単一モデムデバイス(たとえば図2)または2つのプロセッサデバイス(たとえば図3)内の周辺接続性をサポートするかである。同ルーティングインターフェース選択アルゴリズムが各プロセス上で繰り返されるとき、ネットワークインターフェースは、コンピューティングデバイスアーキテクチャを介してプロセッサからプロセッサに再帰的様式(または、他の木の走査方法)で進むことができる。
【００４６】
アプリケーションは、図2〜7に示すコンピュータアーキテクチャなどのコンピューティングデバイスアーキテクチャ内の任意のプロセッサ上で走ることができるので、様々な実施形態が、そのインターフェースの要求がローカルアプリケーションからまたは接続されたプロセッサから受信されるかどうかにかかわらず(すなわち、そのプロセッサがローカルプロセッサか接続されたプロセッサかにかかわらず)最も良いネットワークインターフェースを選択する同基本プロセスを実装するルーティングレイヤを使用し、実装され得る。これは、前記のステップ116でローカルプロセッサによって転送されたインターフェース選択要求に応答するために、遠隔プロセッサx上で実装され得る例示的な方法200を示す、図9に示される。
【００４７】
図9を参照すると、ステップ202でのポリシーパラメータをもつインターフェース選択要求の受信に応答して、遠隔プロセッサが、ステップ204で、そのプロセッサの構成を評価し、その遠隔プロセッサに直接接続された利用可能なプロセッサのリスト{Pr}を列挙することができる。遠隔プロセッサに利用可能なプロセッサのこのリストは、そこからインターフェース選択要求が受信されるプロセッサを含まないことになる。ステップ206で、遠隔プロセッサは、その遠隔プロセッサ上に利用可能なネットワークインターフェースのリストを列挙することができる。このリストは、実インターフェース{Ir}、およびその遠隔プロセッサ上で利用可能なプロキシインターフェース{Ip}のリストを含むことができる。ループスパニングステップ208から212で、遠隔プロセッサは、利用可能なプロセッサのリスト{Pr}内の各プロセッサxについて、{Ipx}と呼ばれる、直接接続された(すなわち、2倍に遠隔の)各遠隔プロセッサ上のインターフェースを表すすべてのプロキシインターフェースのリスト列挙することができる。言い換えれば、ステップ208で、遠隔プロセッサは、評価のための利用可能な直接接続された2倍に遠隔のプロセッサのうちの特定の1つ((x))を選択し、ステップ210でインターフェースを表すすべてのプロキシインターフェースのそのプロセッサについてのリスト{Ipx}を列挙し、最後の2倍に遠隔のプロセッサxが評価される(すなわち、判断ステップ212=「はい」)までこれらの動作を繰り返すことができる。
【００４８】
ループスパニングステップ214から222で、遠隔プロセッサは、そのインターフェース選択要求に応答する最も良いインターフェースを選択するために使用可能な各接続された2倍に遠隔のプロセッサからネットワークインターフェース適合性情報を取得することができる。具体的には、ステップ214で、遠隔プロセッサは、インターフェース適合性情報を受信するための評価のための利用可能な直接接続された2倍に遠隔のプロセッサのうちの1つ((x))を選択することができる。ステップ216で、遠隔プロセッサは、すべてのネットワーク選択ポリシーパラメータを含む、インターフェース選択要求を{Ipx}内のプロキシインターフェースの1つ((g))を介して、選択された2倍に遠隔なプロセッサxに転送することができる。選択されるプロキシインターフェースは、現在利用可能な任意のインターフェースでもよい(すなわち、プロキシインターフェースは、セット{Ipx}からランダムに選択され得る)。遠隔プロセッサに結合された2倍遠隔なプロセッサが存在しない、すなわち、利用可能なプロセッサのリスト{Pr}が空集合である、場合、ステップ216は飛ばされて進むことになる。ステップ218で、遠隔プロセッサは、そのプロセッサで利用可能なネットワーク選択ポリシーパラメータに最もよく一致するインターフェースに関する情報を選択された2倍に遠隔のプロセッサxから受信し戻すことになる。この情報は次を含み得る:対応するプロキシインターフェースMpi(セット{Ipx}の中のインターフェースの1つである)にマップされたインターフェース識別子である最もよく一致するインターフェースMiと、そのネットワークインターフェースが要求されるネットワークポリシーをいかによくサポートし得るかを示す整数値でもよい、一致指標I。ステップ218で遠隔プロセッサにリポートして返される情報は、ステップ220で4つのタプル[x, Mpi, Mi, I]として遠隔プロセッサルーティングレイヤによって記憶され得る。判断ステップ222で、遠隔プロセッサは、選択された2倍に遠隔のプロセッサがリスト{Pr}内の最後のプロセッサであるかどうかを判断する。評価すべき別の2倍に遠隔のプロセッサが存在する(すなわち、判断ステップ222=「いいえ」)場合、プロセッサはステップ214に戻ってリスト{Pr
}内の次のプロセッサxを選択することができる。
【００４９】
すべての2倍に遠隔のプロセッサが評価された(すなわち、判断ステップ222=「はい」)場合、遠隔プロセッサは、ループスパニングステップ224から230で各実インターフェース(すなわち、リスト{Ir}内の遠隔プロセッサにおいて利用可能なインターフェース)を評価することができる。具体的には、ステップ224で、遠隔プロセッサが、その遠隔プロセッサに接続された実インターフェースのリスト{Ir}内で1つの(h)インターフェースを選択することができる。ステップ226で、ネットワーク選択ポリシーパラメータが、選択されたインターフェースh特性に対して評価されて、その選択されたインターフェースについての一致指標I値を判断する。所望のネットワーク能力およびネットワークポリシーパラメータに対するローカルインターフェースの評価が、当業者によく知られている様々な方法のいずれかを使用して達成され得る。ローカルインターフェースがいかによくインターフェース選択要求を満たすかに関する情報が、4つのタプル[0, Null, h, I]値で記憶され得る。この4つのタプル[0, Null, h, I]は、遠隔プロセッサ(値「0」によって示される)が一致指標値Iとしての実インターフェースhとの所望のネットワーク接続性をサポートすることができることを示す。
【００５０】
判断ステップ230で、遠隔プロセッサは、選択されたローカルインターフェースhがリスト{Ir}内の最後のローカルインターフェースであるかどうかを判断する。評価すべき別のローカルインターフェースが存在する(すなわち、判断ステップ230=「いいえ」)場合、遠隔プロセッサはステップ224に戻ってリスト{Ir}内の次のローカルインターフェースh  を選択することができる。
【００５１】
すべてのローカルインターフェースが評価された(すなわち、判断ステップ230=「はい」)とき、遠隔プロセッサは、記憶された4つのタプル値を評価して、ステップ232で選択される最も高い一致指標Iをもつインターフェースを識別する。ステップ234で、遠隔プロセッサが、ローカルプロセッサ(すなわち、インターフェース選択要求を発行したプロセッサ)に、プロキシインターフェース識別子Mpiおよびインターフェース一致指標Iを含む、インターフェース選択情報を返す。選択されたインターフェースがローカルである(すなわち、遠隔プロセッサ上にある)場合、インターフェース識別子hがプロキシインターフェース識別子Mpiとして返される。
【００５２】
前述のようにコンピューティングデバイス内にあるまたはそれに接続されたすべてのプロセッサ上の同様のルーティングレイヤモジュールを使用するアーキテクチャを作る分散型階層的判断で様々な実施形態を実装することによって、それらの様々な実施形態は、プロセッサの任意の数の異なるレイヤをもつコンピューティングデバイスと使用され得る。さらに、1つのコンピューティングデバイスアーキテクチャのために書かれたアプリケーションが、コードへの変更または構成互換性のテストの必要なしに、さらに多くの複雑なマルチプロセッサアーキテクチャをもつコンピューティングデバイスに実装され得る。加えて、それらの様々な実施形態は、どのプロセッサがネットワーク接続要求を発行するアプリケーションをホストするかにかかわらず、同じ動作をする。
【００５３】
様々な実施形態手順は、階層的であり、コンピュータのアーキテクチャ内のすべてのプロセッサに及び得る。一般に、階層的ルーティングアルゴリズムは、プロセスが正しく機能することを可能にしながら、デバイストポロジが図1に示すような樹状構造として表されて任意の複雑さのレベルを含むことを可能にする。上記の実施形態の説明は、プロセッサのポーリングが、インターフェースからインターフェースに、および結合されたプロセッサから結合されたプロセッサに移動し、逐次的方法で進行する、実装を仮定する。しかしながら、これは、どのようにプロセッサが照会され得るかのほんの一例であり、任意の数の他の方法が使用され得る。たとえば、付加プロセッサが並行して使用可能なインターフェースのそれら自体の評価を実施し、完了したときに結果を返報するように、インターフェース選択要求は、ローカルプロセッサによって、すべての付加プロセッサに並行して発行され得る。図6および7に示すような複雑なコンピュータアーキテクチャに適し得る別の実施形態では、階層的ルーティングアルゴリズムが、本明細書に記載の基本手順を逸脱することなしに、いくつかの木の走査アルゴリズムのうちの1つを使用し、実装され得る。
【００５４】
様々な実施形態は、アプリケーションがメインアプリケーションプロセッサ上ではなく様々なモデムプロセッサ上で走ることができる実装をサポートする。このことは、いくつかの理由で生じ得る。1つには、アプリケーションが、アプリケーションプロセッサにここで接続されている特定のモデムプロセッサのために開発およびテストされた場合がある。他のプロセッサが、追加のネットワーク接続性をサポートするために、時間とともに追加されたとき、アプリケーションがその特定のモデムプロセッサ上で走り続けられるようにすることで、新しいプロセッサ環境上の既存のアプリケーションを再統合する必要性を回避することができる。加えて、特有の無線機能性は、あるモデムプロセッサ上で利用可能であるのみのことも、または特定のモデムプロセッサを介してより最適にアクセス可能であることもある。さらに、インターフェース管理および構成のためのモデムプロセッサ上で走る必要があるシステムアプリケーションは、アプリケーションプロセッサではなくてモデムのプロセッサ上でホストされ得る。
【００５５】
あるシナリオでは、モデムプロセッサ上で走るアプリケーションが、他のモデムプロセッサによって提供される無線接続性を使用することを望むことがある。様々な実施形態の階層的ルーティングアルゴリズムが、そのようなシナリオを解決するために、使用され得る。図7に示すように、モデムプロセッサ3上で動作するアプリケーション50(「app1」)は、モデムプロセッサ2を介して接続されるワイヤレスネットワークを使用することを望むことがある。この例では、モデムプロセッサ3およびモデムプロセッサ2の間に直接接続は存在しない。要求されたネットワークアクセスをapp1に提供するために、そのアプリケーションプロセッサに接続して返す、別のプロキシインターフェースが追加され得る。それ以上に、その接続は、周辺デバイスがアプリケーションプロセッサに接続するのと同様の方法でセットアップされ得る。本システム内のモデムプロセッサのすべてが一義的にインデックスを付される限り、階層的ルーティングアルゴリズムは、それがモデムプロセッサ3上で動作しているとしても、アプリケーション50の適当なインターフェースを見つけるために、修正なしで実行され得る。
【００５６】
階層的意思決定アーキテクチャで本実施形態を実装することによって、コンピューティングデバイス内の各プロセッサは、要求されたネットワーク接続のローカルな最も良い接続されたインターフェースのそれ自体の判断を行い、そのローカルな最も良い接続特性をその要求を行うアプリケーションまたはその要求を転送するプロセッサ(すなわち、次に高いレイヤのプロセッサ)に中継することができる。この分散型意思決定は、図6を参照して例として説明され得る。図6に示すコンピュータアーキテクチャで、アプリケーションプロセッサ10は、それぞれが別のモデムプロセッサに接続された(すなわち、モデムプロセッサ1はモデムプロセッサ2に接続され、モデムプロセッサ3はモデムプロセッサ4に接続された)、2つのモデムプロセッサ(すなわち、モデムプロセッサ1およびモデムプロセッサ3)に結合される。各プロセッサで階層的ルーティングアルゴリズムを実装するステップは、それぞれがその最も良い利用可能なインターフェースを識別することができるように、各プロセッサへのインターフェース選択要求パラメータの転送を生じる。したがって、インターフェース選択要求に応答して、モデムプロセッサ2は、Umインターフェース62が特定の一致指標値IをもつWWAN36にアクセスするためのインターフェース要求を満たすことができることをモデムプロセッサ1に証明することができる。同様に、モデムプロセッサ1はWWAN34にアクセスするためのそれ自体のローカルUmインターフェース28を評価して、その一致指標値Iを判断し、アプリケーションプロセッサ10に報告する2つのインターフェースのうちの良い方を選択するために、その値をモデムプロセッサ2上のインターフェース62の受信された一致指標Iと比較することになる。同様に、モデムプロセッサ4は、アプリケーションプロセッサ10に報告するためにそのローカルインターフェース66およびプロキシインターフェース72のより良い方を選択することになるモデムプロセッサ3にWWAN36にアクセスするためのインターフェース72の一致指標値Iを提供することになる。このようにして、アプリケーションプロセッサ10は、プロキシインターフェース44を介してモデムプロセッサ1から受信された一致指標I、プロキシインターフェース42を介してモデムプロセッサ3から受
信された一致指標I、およびローカルインターフェース40の中からアプリケーション要求に応答して最も良いインターフェースを選択することができる。
【００５７】
データ経路の構成およびセットアップはまた、階層的方式に従うことができる。たとえば、再び図6を参照して、モデムプロセッサ2のUmインターフェース62がアプリケーションプロセッサ10からのアプリケーション要求に応答して最も良いインターフェースとして選択された場合、接続セットアップおよび構成動作が開始することができる。接続セットアップ動作は、アプリケーションによってまたは自動的に開始され得るが、どちらにしても、プロキシインターフェース44およびその対応するRmインターフェース26は、アプリケーションプロセッサおよびモデムプロセッサ1の間で送信される情報に基づいて構成され得る。構成プロセスは、選択されたUmインターフェース62へのデータ経路を確立するために、インターフェースのチェーンに沿って繰り返され得る。したがって、プロキシインターフェース44は、次にインターフェース30と結合し得るRmインターフェース26と結合することができる。インターフェース30はプロキシであり、実インターフェースではないので、インターフェース30は、選択されたUmインターフェース62と結合し得るRmインターフェース60と結合することができる。選択されたUmインターフェース62は、実物理ネットワークへの接続を提供することができ、それによって、データ経路を完了することができる。
【００５８】
加えて、インターフェースチェーンが、1つの要求側プロセッサから所望のネットワークもしくはリソースへの実インターフェースをもつ別のプロセッサに逆方向で同様の様式で確立され得る。それによって、インターフェースの1つのチェーン内の第2のプロセッサが、インターフェースの第2のチェーンの一部として第2のプロセッサと確立された異なるプロキシインターフェース接続を既にもち得る第3のプロセッサとのプロキシインターフェース接続を確立することができる。そのような状況で、第2および第3のプロセッサの間の両方のプロキシインターフェース接続は、同様のまたは異なるネットワーク選択ポリシーパラメータを指定する異なる開始プロセッサによって開始されたインターフェースの各チェーンをもつ、図8A、8B、および9に関して上記で説明するのと同じ動作を使用して確立され得る。
【００５９】
本実施形態は、無数のコンピューティングアーキテクチャおよびアプリケーションシナリオに適用可能であり、したがって、例示的実施形態の上記の説明に限定されない。さらに、各プロセッサ内でサポートされる必要があるプロキシインターフェースおよび実(Rm)インターフェースの数は、システムによって異なることになり、静的にまたは動的に構成され得る。一実施形態では、静的構成テーブルが、立上げプロセス中にモデムに入力可能であり、モデムプロセッサは、そのような構成情報に基づいて、所望の数のインターフェースを作成することができる。代替実施形態では、Rmインターフェースが、動的に必要に応じて作成され得る。プロキシおよびUmインターフェースは通常は、特定のコンピュータデバイス内で利用可能な起こり得る接続性オプションのすべてを表すように前もって作成される。
【００６０】
アプリケーションはネットワーク接続の近接性に気づかないにもかかわらず、アプリケーションは、接続が複数のプロセッサに及ぶ場合、追加遅延を観測することができる。これに対応するために、実施形態は、プロセッサ間通信遅延を可能な限り低減することによって、影響を最小限に抑えることができる。
【００６１】
様々な実施形態をサポートするために、シグナリング機構またはシグナリングチャネルは、インターフェース選択要求の送信およびその結果を返す受信のための異なるプロセッサの様々な階層的ルーティングモジュールまたはルーティングレイヤの間の通信をサポートする必要がある。QMIメッセージングプロトコルなど、任意の適当なシグナリング機構またはシグナリングチャネルが、この目的のために使用され得る。そのシグナリング機構は、USBインターフェース内で提供されるような、シグナリング機構およびIPトラフィックを介するデータ送信を介して生じるシグナリングをもつ、同じ物理相互接続を介して達成され得ることに留意されたい。
【００６２】
本明細書で説明する様々な実施形態手順は、同コンピューティングデバイス内で変わり得る異なるプロセッサの間で使用される相互接続のタイプにかかわらず機能すべきである。したがって、本実施形態は、任意の特定のコンピューティングアーキテクチャ、プロセッサ間通信プロトコルもしくは接続、またはワイヤレス通信技術に縛られず、限定されない。
【００６３】
さらなる実施形態では、最も良いインターフェース選択決定またはインターフェース一致指標値および4つのタプルは、その後のアプリケーションネットワークアクセス要求をサポートするために、アプリケーションプロセッサ10のメモリに記憶され得る。この実施形態は、最後に階層的ルーティングアルゴリズムが達成されて以来、デバイス構成、ネットワーク特性、またはネットワーク選択ポリシーパラメータへの変更が何ら生じなかったときに、処理時間を節約するのに有用になり得る。この実施形態では、本アプリケーションプロセッサは、ネットワーク選択ポリシーパラメータを前に完了されたネットワーク選択からのパラメータと比較して、それらが同じか判断し、記憶された選択されたインターフェース構成情報に従ってネットワーク接続を構成することができる。
【００６４】
様々な実施形態との使用に適した代表的なモバイルデバイス300は、図10に示す構成要素を共有することになる。たとえば、例示的ワイヤレス受信機300は、内部メモリ302に結合されたアプリケーションプロセッサ301およびディスプレイ303を含み得る。加えて、モバイルデバイス300は、アプリケーションプロセッサ301に結合された1つまたは複数のワイヤレス送受信機310、312、314、316に接続された電磁放射を送信および受信するアンテナ304をもち得る。上記で説明したように、いくつかのモデムプロセッサは、アプリケーションプロセッサ301、プロセッサ310および314に結合されたプロセッサ312、316について図示するように、それぞれ、アプリケーションプロセッサ301に間接的に結合され得る。ワイヤレスモバイルデバイス300は通常はまた、ユーザ入力を受信するためのキーパッド306または小型キーボードおよびメニュー選択ボタンまたはロッカスイッチ307も含む。ワイヤレスモバイルデバイス300はまた、外部ネットワークおよびラップトップコンピュータ12などの他のコンピューティングデバイスに接続するための、USBまたはFireWire(登録商標)コネクタソケットなど、ワイヤードネットワークインターフェース318も含み得る。
【００６５】
上記の本発明の様々な態様は、ラップトップコンピュータ400などの様々なモバイルコンピューティングデバイスのいずれかに実装され得る。一般的には、そのようなコンピューティングデバイスは、図11に示す構成要素を共有することになる。たとえば、ラップトップコンピュータ400は、すべてケースまたはハウジング406内に含まれた、内部メモリ403(ハードディスクメモリなど)に結合されたプロセッサ402、および、液晶ディスプレイ(LCD)などのディスプレイ409を含み得る。ラップトップコンピュータ400は通常は、プロセッサ402に結合されたキーボード408内のポインティングデバイス407を含むことになる。プロセッサ401はさらに、そのワイヤードネットワークインターフェース318に接続された、ワイヤレスモバイルデバイス300(上記の)になど、ケーブル410を介して外部モデムまたはプロセッサとプロセッサ410を相互接続するための、USBまたはFireWire(登録商標)コネクタソケットなどのワイヤードネットワークインターフェース404に接続され得る。加えて、ラップトップコンピュータ400は、アンテナ412を介するなどして、ワイヤレスネットワーク通信を確立する内部モデム405を含み得る。この内部ワイヤレス通信モデム405は、プロセッサ401およびモデム405の間の接続が内部相互接続24である、図2に示すアーキテクチャに従って、構成され得る。
【００６６】
様々なプロセッサ301、310、312、314、316、401は、本明細書に記載の様々な実施形態の機能を含む様々な機能を実行するようにソフトウェア命令(アプリケーション)によって構成され得る、任意のプログラム可能なマイクロプロセッサ、マイクロコンピュータ、または1つもしくは複数の複数の多重プロセッサチップでもよい。いくつかのモバイルデバイスでは、ワイヤレス通信機能専用の1つのプロセッサおよび他のアプリケーションを走らせる専用の1つのプロセッサなど、多重プロセッサ301、310、312、314、316、401が提供され得る。一般的には、ソフトウェアアプリケーションは、それらがアクセスされ、プロセッサ301にロードされる前に、内部メモリ302、402内に記憶され得る。いくつかのモバイルデバイスでは、プロセッサ301、310、312、314、316、401は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含み得る。多数のコンピューティングデバイス300、400では、内部メモリ302、402は、フラッシュメモリなど、揮発性または非揮発性メモリ、あるいはその両方の組合せでもよい。本明細書では、メモリの一般的参照は、内部メモリ302、402、ワイヤレス受信機300、400に差し込まれた取外し可能メモリ、およびプロセッサ301、310、312、314、316、401自体の中のメモリを含む、プロセッサ301、310、312、314、316、401によってアクセス可能なすべてのメモリを指す。
【００６７】
様々な実施形態が、コンピューティングデバイスにいくつかの利益を提供する。任意のコンピュータアーキテクチャまたはプロセッサトポロジが、階層的ルーティングアルゴリズムの単一の分散型実装を使用し、サポートされ得る。アプリケーションは、コンピューティングデバイス内の任意のプロセッサ上に存在可能であり、アプリケーションがネットワーク無線の近接性を知ることを必要とせずに、任意の他のプロセッサを介してネットワークにアクセスすることができ得る。既存のアプリケーションは、新しい新生のネットワーク技術およびコンピューティングデバイスアーキテクチャに適合するために、変更、書直しまたは再統合される必要はない。デバイス製造業者は、既存のネットワークおよび通信アプリケーションに著しく影響を及ぼすことなく、新しいモデムを追加することによって、追加のネットワーク能力を加えることができる。異なる製造業者からのプロセッサが、より速いデバイス統合および新しい通信技術のより速い市場投入までの時間の実施のために、互いに結合および合成され得る。これらのすべての利益は、複雑なコンピューティングデバイス内でネットワークインターフェースを把握し、管理する必要性からアプリケーション開発者を解放することによって可能にされるアプリケーション開発時間の著しい節約に加えたものである。
【００６８】
上記の方法の説明およびプロセスフロー図は、単に説明に役立つ例として提供され、様々な実施形態のステップが提示された順番で実行されなければならないことを求めるまたは暗示するものではない。当業者なら諒解するように、上記の実施形態におけるステップの順番は、任意の順番で実行可能である。「その後」、「次いで」、「次」などの言葉は、前記ステップの順番を限定するものではなく、これらの言葉は読者に本方法の説明を案内するために単に使用される。さらに、たとえば、冠詞「1つの(a、an)」または「その(the)」などの単数形での請求要素の参照は、その要素を単数に限定するものとして解釈されるべきではない。
【００６９】
本明細書で開示する実施形態に関して説明する、様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得る。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的構成要素、ブロック、モジュール、回路、およびステップが、概してそれらの機能に関して上記で説明されている。そのような機能がハードウェアまたはソフトウェアとして実装されるかどうかは、特定のアプリケーションおよび全体的なシステムに課せられた設計制約に依存する。当業者は、各特定のアプリケーションについて様々なやり方で記載された機能を実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱をもたらすものとして解釈されるべきではない。
【００７０】
本明細書で開示される態様に関して記載される様々な例示的論理、論理ブロック、モジュールおよび回路を実装するために使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または、本明細書に記載の機能を実行するように設計されたそれらの任意の組合せで実装または実行され得る。汎用プロセッサは、マイクロプロセッサでもよいが、代替として、そのプロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械でもよい。プロセッサはまた、たとえばDSPおよびマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアに結合した1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成など、コンピューティングデバイスの組合せとして実装され得る。代替的に、いくつかのステップまたは方法が、所与の機能に固有の回路によって実行され得る。
【００７１】
1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装することができる。ハードウェアでの実装の場合、その機能性は、ワイヤレス受信機/送受信機またはモバイルデバイスにおいて使用するのに好適であり得るワイヤレス信号処理回路の回路構成内に実装され得る。そのようなワイヤレス信号処理回路は、様々な実施形態において説明する信号測定および計算のステップを達成するための回路を含み得る。ソフトウェアで実装した場合、これらの機能は、プロセッサ可読媒体上の1つまたは複数の命令またはコードを介して記憶または送信され得る。本明細書で開示する方法またはアルゴリズムのステップは、プロセッサ可読記憶媒体上に存在し得るプロセッサ実行可能ソフトウェアモジュール内で実施可能である。記憶媒体は、プロセッサまたはコンピュータによってアクセスされ得る任意の使用可能な有形記憶媒体とすることができる。限定ではなく、例として、そのようなプロセッサ可読媒体は、RAM、ROM、EEPROM、CD-ROM、または他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを記憶するために使用可能であり、プロセッサまたはコンピュータによってアクセスされ得るその他の任意の媒体を含むことができる。本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フレキシブルディスク、およびブルーレイディスクを含み、ディスク(disk)は通常、磁気的にデータを再生し、ディスク(disc)は、レーザで光学的にデータを再生する。上記の組合せも、プロセッサ可読媒体の範囲内に含まれるべきである。加えて、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込み可能な、機械可読記憶媒体および/またはプロセッサ可読記憶媒体上のコードおよび/または命令の1つまたは任意の組合せもしくはセットとして存在することができる。
【００７２】
開示される実施形態の上記の説明は、当業者が本発明を作成または使用できるようにするために、提供される。これらの実施形態への様々な修正が当業者には容易に明らかになることになり、本明細書に定義する一般原理は、本発明の趣旨および範囲を逸脱することなしに他の実施形態に適用され得る。したがって、本発明は、本明細書に示す実施形態に限定されるものではなく、以下の特許請求の範囲および本明細書で開示する原理および新規の特徴に一致する最大の範囲を与えられるものである。
【符号の説明】
【００７３】
1  モデムプロセッサ
2  モデムプロセッサ
3  モデムプロセッサ
4  モデムプロセッサ
10  アプリケーションプロセッサ
12  ラップトップコンピュータ
20  ソフトウェアプロトコルスタック
22  ルーティングレイヤ
24  相互接続
26  データインターフェース
27  インターフェースブリッジ
28  ワイヤレス(Um)インターフェース
29  インターフェースブリッジ
30  第2のワイヤレス(Um)インターフェース
32  ワイヤレスローカルエリアネットワーク/ワイヤレスミディアムエリアネットワーク(WLAM/WMAN)
34  ワイヤレスワイドエリアネットワーク(WWAN)
40  ローカル実(Rm)インターフェース
41  インターフェースブリッジ
42  ワイヤレスインターフェース
44  プロキシインターフェース
46  相互接続
47  相互接続
48  プロキシインターフェース
49  インターフェースブリッジ
52  プロキシ接続
54  接続
【図１】
0005619182.tif 000002
【図２】
0005619182.tif 000003
【図３】
0005619182.tif 000004
【図４】
0005619182.tif 000005
【図５】
0005619182.tif 000006
【図６】
0005619182.tif 000007
【図７】
0005619182.tif 000008
【図８Ａ】
0005619182.tif 000009
【図８Ｂ】
0005619182.tif 000010
【図９】
0005619182.tif 000011
【図１０】
0005619182.tif 000012
【図１１】
0005619182.tif 000013