(57)【特許請求の範囲】
【請求項１】
無線ネットワークのモバイル端末の上で動作する１以上のアプリケーションから、前記１以上のアプリケーションが生成する複数のパケットを受信し、前記１以上のアプリケーションの少なくとも１つが持つサービス品質（ＱｏＳ）パラメータに関する情報を受信し、前記モバイル端末がホストするデータ分類器と、
前記無線ネットワークを介して前記複数のパケットが送信される前に、前記１以上のアプリケーションの前記少なくとも１つが持つＱｏＳパラメータに関する前記情報に基づいて、前記複数のパケットの順序を変更し、前記データ分類器に連結されたトラフィックシェーパと、
前記トラフィックシェーパに連結されたデータ傍受器と
を備え、
前記データ傍受器は、前記モバイル端末の上で動作する別のアプリケーションから別の複数のパケットを受信し、前記別のアプリケーションは、前記１以上のアプリケーションとは別であり、前記別のアプリケーションのＱｏＳパラメータに関する情報を前記トラフィックシェーパに提供せず、
前記データ傍受器は、前記トラフィックシェーパに前記別の複数のパケットを転送する
装置。
【請求項２】
前記データ傍受器に連結されており、前記無線ネットワークから前記１以上のアプリケーションの少なくとも１つ用の複数のパケットを受信するデータ受信器をさらに備える請求項１に記載の装置。
【請求項３】
前記トラフィックシェーパ及び前記データ傍受器に連結されており、前記複数のパケットのそれぞれに対して、圧縮、伸張、暗号化、復号化、パケット化、パケット化解除のうち少なくとも１つを行うデータマニピュレータをさらに備える請求項１に記載の装置。
【請求項４】
前記データマニピュレータは、前記複数のパケットのそれぞれに対して、圧縮、伸張、暗号化、復号化、パケット化、パケット化解除のうち少なくとも１つを、前記１以上のアプリケーションの少なくとも１つの帯域幅利用と計算上のリソース消費量とに基づいて行う請求項３に記載の装置。
【請求項５】
前記データ分類器はさらに、前記複数のパケットのそれぞれを、前記１以上のアプリケーションの前記少なくとも１つが持つＱｏＳパラメータに関する前記情報に基づいて分類し、
前記トラフィックシェーパはさらに、前記順序を変更された複数のパケットを、前記１以上のアプリケーションの前記少なくとも１つが持つＱｏＳパラメータに関する前記情報に基づいて、１以上のパケットバーストに分類して、
前記装置は、
前記モバイル端末の送信器に前記１以上のパケットバーストを提供して、前記無線ネットワークを介して前記１以上のパケットバーストを送信し、前記トラフィックシェーパに連結されたデータ送信器をさらに備える請求項１から４のいずれか一項に記載の装置。
【請求項６】
前記トラフィックシェーパはさらに、前記モバイル端末のバッテリステータスの通知を受信する請求項１から５のいずれか一項に記載の装置。
【請求項７】
無線ネットワークのモバイル端末がホストする送信エンジンにより、前記モバイル端末の上で動作する複数のアプリケーションの少なくとも１つが生成し前記無線ネットワークを介して送信される複数の出力パケットを受信する段階と、
前記送信エンジンにより、前記複数のアプリケーションの前記少なくとも１つが持つサービス品質（ＱｏＳ）要件に関する情報を、前記複数のアプリケーションの前記少なくとも１つから受信する段階と、
前記送信エンジンにより、前記複数のアプリケーションの前記少なくとも１つが持つＱｏＳパラメータに関する前記情報に基づいて、前記複数の出力パケットの順序を変更する段階と、
前記モバイル端末の上で動作している別のアプリケーションのＱｏＳパラメータに関する情報を受信することなく、前記別のアプリケーションから別の複数の出力パケットを受信する段階と、
前記別の複数の出力パケットの少なくとも１つを調べて、前記別のアプリケーションに１以上のＱｏＳレベルを関連付ける段階と
を備える方法。
【請求項８】
前記複数のアプリケーションの前記少なくとも１つが持つＱｏＳパラメータに関する前記情報に基づいて、前記複数の出力パケットを１以上のパケットバーストに分類する段階と、
前記１以上のパケットバーストを前記無線ネットワークを介して送信するために、前記１以上のパケットパーストを前記無線ネットワークのドライバに提供する段階と
をさらに備える請求項７に記載の方法。
【請求項９】
前記複数のアプリケーションの前記少なくとも１つが持つＱｏＳパラメータに関する前記情報に基づいて、前記複数のアプリケーションの前記少なくとも１つが生成した前記複数の出力パケットをそれぞれ分類する段階をさらに備える請求項７又は８に記載の方法。
【請求項１０】
前記モバイル端末の利用可能な帯域幅および利用可能なバッテリ電力に関する通知を受信する段階と、
前記モバイル端末の前記利用可能な帯域幅が所定の帯域幅閾値未満であると判断されると、前記複数のアプリケーションの前記少なくとも１つが持つ送信データレートを低減させる段階と、
前記利用可能なバッテリ電力が所定の電力閾値未満であると判断されると、前記複数のアプリケーションの計算上のリソース利用率および前記送信データレートを低減させる段階と
をさらに備える請求項７から９のいずれか一項に記載の方法。
【請求項１１】
前記複数のアプリケーションの前記少なくとも１つ用の複数の入力パケットを受信する段階と、
前記複数の出力パケットのそれぞれを前記無線ネットワークを介して送信する前に、前記複数の出力パケットのそれぞれを圧縮、暗号化、およびパケット化する段階と、
前記複数の入力パケットのそれぞれを前記複数のアプリケーションの前記少なくとも１つに提供する前に、前記複数の入力パケットのそれぞれに、伸張、復号化、およびパケット化解除を行う段階と
をさらに備える請求項７から１０のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２００９年８月２４日に提出された中国出願第２００９１０１７０４７４．Ｘ号明細書と、２００９年８月２４日に提出された中国出願第２００９１０１７０４７５．４号明細書の優先権を主張している。これら２つの出願明細書の内容はここに参照として組み込まれる。
【０００２】
本開示は、概してモバイル通信に係り、特に、モバイル通信において、低電力で高速なアプリケーションサービス送信（low power and fast application service transmissions）に係る。
【背景技術】
【０００３】
モバイルコンピューティングが進化するにつれて、モバイル端末は、主に消費者コンテンツ（ダウンロード）から、さらには、顕著な量のコンテンツを生成する用途（アップロード）にシフトするようになってきている。異なるモバイルアプリケーションは、それぞれ異なるサービス品質（ＱｏＳ）パラメータを有しうる。例えばビデオ会議アプリケーションにおいては、データ送信が即座に、または略リアルタイムに行われることが好ましいが、ビデオストリーミングアプリケーションにおいては、キャッシュまたはバッファ機能のために、送信に一定の遅延量が許容されよう。ゲートウェイおよびルータ等のネットワークコンポーネントは、これらアプリケーションに対するパケット検閲を行い、異なるＱｏＳパラメータを差別化して、異なるモバイルアプリケーションに対するパケットの処理をそれぞれ異なるように行うことができる。しかし、モバイル端末側では、様々に異なるモバイルアプリケーションのＱｏＳパラメータは、送信スタックに良好に統合されていない場合がある。これは、多くのモバイル端末が、もともと有線ネットワークへ直接接続されるコンピュータ用に設計されているからであり、これは、無線アクセスネットワークにとって効率的でないし、節電機能も劣る。これら送信スタックの例には、オープンシステムインターコネクション（ＯＳＩ）モデル、および、トランスポート制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）モデルが含まれてよく、この中では、上位層のアプリケーションが生成したデータが、送信スタックの様々な下位層にカプセル化される。カプセル化のために、送信スタックの下位層（たとえばＩＰ層および／またはリンク層）は、異なるＱｏＳパラメータを有する異なるアプリケーションに対するパケットを差別化できないことがある。この結果、より高い優先度のパケットが、より低い優先度のパケットより遅れてネットワーク／アプリケーションに配信されることがある。この結果アプリケーションのＱｏＳが劣化することがある。
【０００４】
しかし今日のモバイル端末では、計算や送信は、２つの主要な電力消費源であることに変わりはないが、特にオンラインサービスを利用するモバイルアプリケーションを中心に、送信のほうが計算よりも電力利用に占める割合が高くなりうる。しかし、従来の送信スタックは、ＱｏＳを維持しつつ節電機能が完全に最適化されているものはない。この不整合により、無線アクセスネットワークのオンラインサービスにアクセスするときのユーザ体験が不満足なものとなったり、苛立たしいものとさえなったりする場合もある。モバイル端末のなかには、この問題を、各データ送信の直後に接続を切って節電することで軽減させようとしているものもある。しかし、頻繁に接続開始／接続停止することで、信号チャネルが混雑して、結果的に接続面で支障が出ることが考えられる。
【０００５】
アプリケーション的に透明なトラフィックシェープ法を利用して送信における消費電力を低減させる、という部分的な解決法も幾つか存在している。しかし、これらの方法は概して、送信スタックの下位層に対してのみ有効な場合が多い。さらには、これら方法は、モバイルアプリケーションが自身のＱｏＳパラメータを送信スタックの全ての層に伝達するようなメカニズムを提供することはできない。従って、これら解決法が提供する節電効果は通常限られたものとなっている。
【０００６】
既に、ソフトウェアベースの送信スタック（例えばＴＣＰオフロードエンジン（ＴＯＥ））から中央処理装置（ＣＰＵ）のワークロードを低減させるように設計されたハードウェアベースのネットワークスタック実装も開発されている。しかしながら、モバイル端末における送信データレートは、ソフトウェアベースの送信スタックがシステムの主要なボトルネックとなってしまうために、プロセッサ利用率を上げさせるに足るほどの高いものではない。従って、ソフトウェア送信スタックをハードウェアにより加速させるＴＯＥのような解決法も、モバイル端末に対しては効果的ではないと考えられる。
【０００７】
本開示の実施形態は、添付図面に、限定ではない例示により記載されるが、図面において、同様の参照番号が付された部材同士は同様の部材であることを示す。
【図面の簡単な説明】
【０００８】
【図１】様々な実施形態における無線通信システムの一例を示す。
【０００９】
【図２】様々な実施形態におけるモバイル端末の実施形態の一例を示すブロック図である。
【００１０】
【図３】様々な実施形態におけるＬＰ―ＦＡＳＴエンジンと、それと、モバイル端末上のモバイルアプリケーションおよび外部送信スタックとの間の相互作用を示すブロック図である。
【００１１】
【図４】様々な実施形態におけるバスインタフェースコントローラに連結されたデータマニピュレータの実施形態の一例を示すブロック図である。
【００１２】
【図５】様々な実施形態において出力データを処理するＬＰ−ＦＡＳＴエンジンの処理の一例における一部を示すフロー図である。
【００１３】
【図６】様々な実施形態において入力データを処理するＬＰ−ＦＡＳＴエンジンの処理の一例における一部を示すフロー図である。
【００１４】
【図７】本発明の様々な実施形態を実施する際に利用するコンピュータシステムの一例を示す。
【発明を実施するための形態】
【００１５】
以下の詳細な記載において、この一部を形成する添付図面を参照するが、図面には、例示として本発明が実施可能な実施形態の形で示されている。他の実施形態も利用可能であり、構造上または論理上の変更も、本発明の範囲を逸脱しない限り可能である。従って、以下の詳細な記載は限定的に捉えられるべきではなく、本発明における実施形態の範囲は添付請求項およびその均等物によって定義される。
【００１６】
様々な処理が複数の別個の処理として記載される場合があるが、これは本発明の実施形態の理解を助ける意図を有する。記載の順序は、これら処理が順序に依存することを示唆していると解釈されるべきではない。
【００１７】
「連結」および「接続」、および派生語が利用される場合がある。これらの用語は互いに類似語であることが意図されていない。特定の実施形態では、「接続」は、２以上のエレメントが直接物理的または電気的接触状態にあることを示している場合がある。「連結」も、２以上のエレメントが直接物理的または電気的接触状態にあることを示していても良い。しかし、「連結」はさらに、２以上のエレメントが直接接触状態にはないが、互いに協働または相互作用するような場合も含む場合がある。
【００１８】
記載の目的上、「Ａ／Ｂ」または「Ａおよび／またはＢ」という言い回しは、（Ａ）（Ｂ）または（ＡおよびＢ）を示している。記載の目的上、「Ａ、Ｂ、およびＣの少なくとも１つ」は、（Ａ）（Ｂ）（Ｃ）（ＡおよびＢ）（ＡおよびＣ）（ＢおよびＣ）または（Ａ、Ｂ、またはＣ）を示している。記載の目的上、「（Ａ）Ｂ」は、（Ｂ）または（ＡＢ）を示しており、すなわち、Ａがオプションのエレメントであることを示す。
【００１９】
「一実施形態では」「実施形態では」といった言い回しは、同じまたは異なる実施形態の１以上のことを示している場合がある。さらには、「備える」「有する」「含む」その他の類似語は、本発明の実施形態においては類似語として扱われる。
【００２０】
加えて、本発明の様々な実施形態で利用される「データ」と言う用語は、そうではないと明示しない限り、送信スタックが処理する前の、様々なアプリケーションにより生成されるデータ、または、送信スタックが処理した後の、様々なアプリケーションにより容易に消費可能な形態のデータのことを大まかに示している。本発明の様々な実施形態で利用される「パケット」と言う用語は、そうではないと明示しない限り、モバイルアプリケーションと無線ネットワークとの間の送信スタックの各段階で送信されるデータのことを大まかに示している。「パケット」は、その宛先に達する前に、モバイル端末の１以上のコンポーネントを介して移動することができ、モバイル端末のこれら１以上のコンポーネントにより修正されてよい。本発明の様々な実施形態で利用される「フロー」「データフロー」「ストリーム」または「データストリーム」といった用語も、そうではないと明示しない限り、互いに類似語である。
【００２１】
モバイル端末上で動作するモバイルアプリケーションは、一方向（例えばビデオストリーミング）または双方向（例えば音声認識に関する遠隔サービス）であってよい通信パターンに関与してよい。様々なモバイルアプリケーションの振る舞いは、その通信パターンに応じて異なっていてよい。モバイル端末において最適なユーザ経験を生成するためには、送信スタックが、モバイルアプリケーションのサービス特徴を認識することが肝要である。これらサービス特徴は、サービスタイプ、出力データ（モバイルアプリケーションが、無線ネットワークを介して送信するために生成するデータのこと）のタイプ、入力データ（モバイルアプリケーション用に、無線ネットワークから受信するデータのこと）のタイプ、データ操作フラグ、優先レベル、許容可能なレイテンシー、対象データレート等を含んでよく、これらは概してサービス品質（ＱｏＳ）パラメータと称される場合がある。
【００２２】
様々な実施形態においては、本開示において、低電力で高速なアプリケーションサービス送信（ＬＰ−ＦＡＳＴ）エンジンに、サービス認識、帯域幅認識、および消費電力認識した方法で、モバイル端末で動作するモバイルアプリケーションのＱｏＳを向上させて、消費電力を低減させる方法、装置、およびシステムが提供される。
【００２３】
図１は、様々な実施形態における無線通信システムの一例を示す。無線通信システム１００は、１１０、１２０、および１３０として概略されている１以上の無線通信ネットワークを含んでよい。特に、無線通信システム１００は、無線パーソナルエリアネットワーク（ＷＰＡＮ）１１０、無線ローカルエリアネットワーク（ＷＬＡＮ）１２０、および無線メトロポリタンエリアネットワーク（ＷＭＡＮ）１３０を含んでよい。図１には３つの無線通信ネットワークが示されているが、無線通信システム１００は、これ以上の、またはこれ以下の数の無線通信ネットワークを含んでもよい。例えば無線通信ネットワーク１００は、さらにＷＰＡＮ、ＷＬＡＮ、および／または、ＷＭＡＮを含んでもよい。ここに記載する方法および装置は、この点に限定はされない。
【００２４】
無線通信システム１００は、さらに、１４０、１４２、１４４、１４６、および１４８として概略される１以上のサブスクライバステーションを含んでよい。例えばサブスクライバステーション１４０、１４２、１４４、１４６、および１４８は、デスクトップコンピュータ、ラップトップコンピュータ、ハンドへルドコンピュータ、タブレットコンピュータ、携帯電話機、ページャ、オーディオおよび／またはビデオプレーヤ（例えばＭＰ３プレーヤまたはＤＶＤプレーヤ）、ゲームデバイス、ビデオカメラ、デジタルカメラ、ナビゲーションデバイス（ＧＰＳデバイス）、無線周辺機器（プリンタ、スキャナ、ヘッドセット、キーボード、マウス等）、医療機器（たとえば心拍モニタ、血圧モニタ等）、セットトップボックス、および／または、その他の適切な比較的静止した、可搬型の、または移動型の電子デバイスを含んでよい。図１は５つのサブスクライバステーションを示しているが、無線通信システム１００は、これより多い数の、またはこれより少ない数のサブスクライバステーションを含んでよい。
【００２５】
サブスクライバステーション１４０、１４２、１４４、１４６、および１４８は、拡散スペクトル変調（例えば、直接拡散符号分割多元接続（ＤＳ−ＣＤＭＡ））および／または周波数ホピング符号分割多重接続（ＦＨ−ＣＤＭＡ）、時分割多重化（ＴＤＭ）変調、周波数分割多重化（ＦＤＭ）変調、直交周波数分割接続（ＯＦＤＭ）変調、マルチキャリア変調（ＭＤＭ）、直交周波数分割多重接続（ＯＦＤＭＡ）、および／または、他の適切な変調技術を利用して、無線リンク経由で通信することができる。一例では、ステーション１４６（ハンドヘルドコンピュータ１４６とも称される場合がある）が、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ウルトラワイドバンド（ＵＷＢ）、および／または、無線周波数識別（ＲＦＩＤ）等の非常な低電力を必要とする適切な無線通信プロトコルに従って動作して、ＷＰＡＮ１１０を実装することができる。特に、サブスクライバステーション１４０、１４２、１４４、１４６、および１４８が、ステーション１４２（さらにはビデオカメラ１４２とも称される場合がある）、および／または、ステーション１４４（さらにはプリンタ１４４とも称される場合がある）等のＷＰＡＮ１１０に関するデバイスと、無線リンクを介して通信することができる。
【００２６】
別の例としては、ハンドヘルドコンピュータ１４６は、直接シーケンス・スペクトラム拡散（ＤＳＳＳ）変調および／または周波数ホッピング拡散スペクトル（ＦＨＳＳ）変調を利用して、ＷＬＡＮ１２０（例えば、米国電気電子学会（ＩＥＥＥ）の開発した８０２.１１ファミリーおよび／またはこの規格の変形例および進化形）を実装することができる。例えば、ハンドヘルドコンピュータ１４６は、プリンタ１４４、ステーション１４０（さらにはラップトップコンピュータ１４０と称される場合もある）、および／またはステーション１４８（さらにはスマートフォン１４８と称される場合もある）等のＷＬＡＮ１２０に関するデバイスと、無線リンク経由で通信することができる。ハンドヘルドコンピュータ１４６はさらに、無線リンク経由でアクセスポイント（ＡＰ）１５０と通信してもよい。ＡＰ１５０は、詳細を後述するルータ１５２に動作可能に連結されていてもよい。また、ＡＰ１５０およびルータ１５２は、単一のデバイス（例えば無線ルータ）に統合されていてもよい。
【００２７】
ハンドヘルドコンピュータ１４６は、ＯＦＤＭ変調を利用して、無線周波数信号を複数の小さなサブ信号に分割して、これらを同時にそれぞれ異なる周波数で送信する、というＯＦＤＭ変調を利用して、大量のデジタルデータを送信してもよい。特に、ハンドヘルドコンピュータ１４６は、ＷＭＡＮ１３０を実装するときにＯＦＤＭ変調を利用するとよい。例えば、ハンドヘルドコンピュータ１４６は、ＩＥＥＥが開発した規格の８０２．１６ファミリーに従って動作して、固定で、可搬型の、および／または、モバイルブロードバンド無線アクセス（ＢＷＡ）ネットワーク（例えばＩＥＥＥ規格８０２．１６−２００４、ＩＥＥＥ規格８０２．１６ｅ等）を提供して、基地局（１６０、１６２、および１６４として概略されている）と、無線リンク経由で通信してよい。
【００２８】
上述した例の一部は、ＩＥＥＥが開発した規格に則った説明をされたが、ここに開示する方法および装置は、他の特定の関連団体および／または規格開発組織（例えばワイヤレスフィデリティ（Ｗｉ−Ｆｉ）アライアンス、ＷｉＭＡＸフォーラム、赤外線データ境界（ＩｒＤＡ）、第三世代パートナーシッププロジェクト（３ＧＰＰ）等）が開発した数多くの仕様および／または規格に容易に適用することができる。ここに記載する方法および装置は、この点に限定はされない。
【００２９】
ＷＬＡＮ１２０およびＷＭＡＮ１３０は、インターネット、電話回線（たとえば公共交換電話回線（ＰＳＴＮ）、ローカルエリアネットワーク（ＬＡＮ）、ケーブルネットワーク、および／または別の無線ネットワーク）等の、共通に公共または私的なネットワーク１７０に対して、Ｅｔｈｅｒｎｅｔ（登録商標）、デジタル加入者ライン（ＤＳＬ）、電話回線、同軸ケーブル、および／または、任意の無線接続を介して、動作可能に連結されてよい。一例では、ＷＬＡＮ１２０は、ＡＰ１５０および／またはルータ１５２を介して、共通に公共または私的なネットワーク１７０に動作可能に連結されてよい。別の例では、ＷＭＡＮ１３０は、共通の公共または私的なネットワーク１７０に、基地局１６０、１６２、および／または１６４経由で動作可能に連結されてもよい。
【００３０】
無線通信システム１００は、他の適切な無線通信ネットワークを含むこともできる。例えば無線通信システム１００は、無線ワイドエリアネットワーク（ＷＷＡＮ）（不図示）を含んでよい。ハンドヘルドコンピュータ１４６は、他の無線通信プロトコルに従って動作して、ＷＷＡＮをサポートすることができる。特に、これら無線通信プロトコルは、アナログ、デジタル、および／または、デュアルモード通信システム技術（例えば、ＧＳＭ（Global System for mobile Communications）技術、ワイドバンド符号分割多重接続（ＷＣＤＭＡ）技術、ＧＰＲＳ（General Packet Radio Services）技術、ＥＤＧＥ（Enhanced Data GSM Environment）技術、ＵＭＴＳ（Universal Mobile telecommunications System）技術、ＨＳＰＡ（High Speed Packet Access）技術、ＬＴＥ（Long Time Evolution）技術、これら技術に基づく規格、これら規格の変形例および進化形、および／または、他の適切な無線通信規格等）に基づいているものであってよい。さらに無線通信システム１００は、無線メッシュネットワークを含んでよい。図１はＷＰＡＮ、ＷＬＡＮ、およびＷＭＡＮを示しているが、無線通信システム１００は、ＷＰＡＮ、ＷＬＡＮ、ＷＭＡＮ、ＷＷＡＮ、および／またはメッシュネットワークのその他の組み合わせを含んでもよい。ここに記載した方法および装置は、この点に限定はされない。
【００３１】
無線通信システム１００は、ネットワークインタフェースデバイスおよび周辺機器（例えばネットワークインタフェースカード（ＮＩＣ）、アクセスポイント（ＡＰ）、再配信ポイント、エンドポイント、ゲートウェイ、ブリッジ、ハブ等）等の、（不図示の）他のＷＰＡＮ、ＷＬＡＮ、ＷＭＡＮ、および／または、ＷＷＡＮデバイスを含むことで、携帯電話システム、衛星システム、個人通信システム（ＰＣＳ）、双方向無線システム、一方向ページャシステム、双方向ページャシステム、パーソナルコンピュータ（ＰＣ）システム、携帯情報端末（ＰＤＡ）システム、パーソナルコンピューティングアクセサリ（ＰＣＡ）システム、および／または、その他の任意の適切な通信システムを含んでよい。一定の例を記載してきたが、本開示の網羅範囲は、これらに限定はされない。
【００３２】
図２は、様々な実施形態におけるモバイル端末２００の実施形態の一例を示すブロック図である。様々な実施形態では、モバイル端末２００は、図１に示すサブスクライバステーション１４０、１４２、１４４、１４６、および１４８のうちのいずれかであってよい。
【００３３】
様々な実施形態では、モバイル端末２００は、モバイル端末２００がクライアントデバイスとしてポータブルに利用することができるようなサイズの本体を有してもよい。モバイル端末２００は、通信インタフェース２１０、プロセッサ２２０、低電力の高速アプリケーションサービス送信（ＬＰ−ＦＡＳＴ）エンジン２３０、およびメモリ２４０を含んでよい。図２は、バス２６０経由で互いに連結されたモバイル端末２００の各コンポーネントを示しているが、これらのコンポーネントは互いに、他の適切な直接または間接接続（例えばポイントツーポイント接続、または、ポイントツーマルチプルポイント接続）を介して動作可能に連結されてもよい。
【００３４】
簡潔に言うと、様々な実施形態では、通信インタフェース２１０（例えば無線周波数（ＲＦ）物理層（ＰＨＹ）サブシステム）は、受信器２１２、送信器２１４、およびアンテナ２１６を含んでよい。通信インタフェース２１０は、それぞれ受信器２１２および送信器２１４を介してデータを受信および／または送信してよい。アンテナ２１６は、ダイポールアンテナ、モノポールアンテナ、パッチアンテナ、ループアンテナ、マイクロストリップアンテナ、および／または、ＲＦ信号の送信に適した他の種類のアンテナ等の１以上の指向性または全方向性のアンテナを含んでよい。図２は単一のアンテナを示しているが、モバイル端末２００はこれ以上の数のアンテナを含むこともできる。例えばモバイル端末２００は、複数のアンテナを含んで、多入力多出力（ＭＩＭＯ）システムを実装することもできる。
【００３５】
図２は、特定のコンポーネントを示しているが、モバイル端末２００は、無線通信ネットワーク内で動作する他の適切なコンポーネントを含んでもよい。例えば、モバイル端末２００は、バス２６０に連結されたバスインタフェースコントローラを含んでもよい。さらに、図２には、ステーション２００内の別個のブロックとしてコンポーネントが示されているが、これらブロックのうちの幾つかが実行する機能は、単一の半導体回路内に集積されてもよく、または、２以上の別個の集積回路を利用して実装されていてもよい。例えば、受信器２１２および送信器２１４は、通信インタフェース２１０内の別個のブロックとして描かれているが、受信器２１２は送信器２１４（例えばトランシーバ）内に集積されていてもよい。
【００３６】
図３は、様々な実施形態におけるＬＰ―ＦＡＳＴエンジン３００と、それと、モバイル端末上のモバイルアプリケーションおよび外部送信スタックとの間の相互作用を示すブロック図である。一例では、ＬＰ−ＦＡＳＴエンジン３００は、図２に示すＬＰ−ＦＳＴエンジン２３０であってよい。
【００３７】
様々な実施形態では、ＬＰ−ＦＡＳＴエンジン３００は、データ分類器３１０、データマニピュレータ３２０、トラフィックシェーパ３３０、パケット傍受器３４０、データ送信器３５０、データ受信器３６０、および、インタフェース３７０（例えばバスインタフェースコントローラ、アプリケーションプログラミングインタフェース（ＡＰＩ）等）を含んでよい。図３は特定のコンポーネントを示しているが、ＬＰ―ＦＡＳＴエンジン３００は、無線通信ネットワーク内で動作する他の適切なコンポーネントを含んでもよい。図３は、ＬＰ−ＦＡＳＴエンジン３００の様々なコンポーネント間の特定の連結のみを示しているが、ＬＰ−ＦＡＳＴエンジン３００は、様々なコンポーネント間にさらなる異なる連結があってもよい。図３に示すコンポーネントはＬＰ−ＦＡＳＴエンジン３００内の別個のブロックとして記載されているが、これらブロックのうちの幾つかが実行する機能は、単一の半導体回路内に集積されてもよく、または、複数の集積回路にさらに分割されてもよい。さらに、これらコンポーネントのうちの幾つかは、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組み合わせにより実装されてよい。
【００３８】
様々な実施形態では、モバイル端末上で動作するモバイルアプリケーションは、ＬＰ−ＦＡＳＴエンジン３００（ＬＰ−ＦＡＳＴアプリケーション３０１と称される）を利用するために設計されたアプリケーション、および、ＬＰ−ＦＡＳＴエンジン３００を利用するためには設計されていないアプリケーション（非ＬＰ―ＦＡＳＴアプリケーション３０３と称される）を含んでよい。
【００３９】
インタフェース３７０がＡＰＩ（ＬＰ−ＦＡＳＴ  ＡＰＩとも称される）である実施形態では、ＡＰＩは、ＬＰ−ＦＡＳＴアプリケーション３０１に提供されて、ＬＰ−ＦＡＳＴエンジン３００と通信してよい。ＬＰ−ＦＡＳＴ  ＡＰＩは、ＬＰ−ＦＡＳＴアプリケーション３０１に、ＬＰ−ＦＡＳＴエンジン３００の様々なコンポーネントと通信させることができる。ＡＰＩは、ＬＰ−ＦＡＳＴアプリケーション３０１に、自身の振る舞いを、サービス操作とサービス記述という少なくとも２つの側面から制御させる。ＡＰＩのサービス操作の側面によって、ＬＰ−ＦＡＳＴアプリケーション３０１は、サービス生成、サービス開始、サービス修正、サービス停止等の処理を行うことができるようになる。ＡＰＩのサービス記述の側面によって、ＬＰ−ＦＡＳＴアプリケーション３０１は、任意のサービスについてのサービスパラメータを定義することができるようになる。典型的なサービスパラメータは、サービスタイプ、出力データタイプ、入力データタイプ、データ操作フラグ、優先レベル、最大許容可能なレイテンシー、最大データレート、または、その他、ＬＰ−ＦＡＳＴアプリケーション３０１のＱｏＳパラメータに関する情報を含んでよい。様々な実施形態では、ＡＰＩは、ＬＰ−ＦＡＳＴアプリケーション３０１に、ＱｏＳパラメータに関する情報をパケットレベルで特定させて、トラフィックシェーパ３３０に、流出ベースおよび流入ベース両方のＱｏＳ制御（both flow-based and in-flow QoS control）を行わせることができる。様々な実施形態では、ＡＰＩのパラメータのリストは、特定のモバイルプラットフォームに対して定義されてよく、または、ＬＰ−ＦＡＳＴアプリケーション３０１により動的に定義されてよい。上述したリストは、ＡＰＩのフォーマットまたはパラメータに対する限定として解釈されるべきではない。
【００４０】
様々な実施形態では、ＬＰ−ＦＡＳＴアプリケーション３０１は、ＬＰ−ＦＡＳＴエンジン３００の様々なコンポーネントと、インタフェース３７０経由で通信してよい。図３は、インタフェース３７０をバスインタフェースコントローラとして描いているが、様々な実施形態では、ＬＰ−ＦＡＳＴエンジン３００は、バスインタフェースコントローラを含んでも含まなくても構わない。様々な実施形態では、ＬＰ−ＦＡＳＴアプリケーション３０１は、ＬＰ−ＦＡＳＴエンジン３００と、例えば共有メモリといった他の種類の通信方法により通信することもできる。
【００４１】
様々な実施形態では、データ分類器３１０は、ＬＰ―ＦＡＳＴアプリケーション３０１がインタフェース３７０経由で、または他の手段で生成した出力アプリケーションデータを受信することができる。データ分類器３１０は、ＬＰ−ＦＡＳＴアプリケーション３０１のＱｏＳパラメータに関する情報に基づいて出力データを分類してよい。ＱｏＳパラメータに関する情報は、アプリケーションデータに埋め込まれていてもよいし、または、インタフェース３７０等の他の何らかのメカニズム経由で、データ分類器３１０にリレーされてもよい。データ分類器３１０は、１以上の分類基準に従って、１以上のサービスグループに、受信されたアプリケーションデータを分類および／またはカテゴライズしてよい。各サービスグループは、１以上のモバイルアプリケーションから１以上のデータストリームを含んでよい。データ分類器３１０は、当業者には公知な任意のパケット分類スキームまたはそれらの任意の組み合わせに基づいて、分類基準を構成してよい。一実施形態では、データ分類器３１０は、モバイルアプリケーションの加速スキームに基づいて分類基準を構成することができる。例えば、ビデオ会議アプリケーションおよびウェブ検索アプリケーションは、それぞれ異なるサービスグループに分類されてよく、ビデオストリーミングアプリケーションおよび音楽ストリーミングアプリケーションは、同じサービスグループに分類されてよい。別の実施形態では、データ分類器３１０は、ＬＰ−ＦＡＳＴアプリケーション３０１がアクセスを試みているサービスのクラスに基づいて分類基準を構成してよく、または、それぞれ異なるサービスタイプに対して重み付けを割り当ててよい。例えば、低レイテンシー要件のデータストリームには高い優先度を割り当てて、ベストエフォート型配信のデータストリームには低い優先度を割り当てる、等である。
【００４２】
様々な実施形態では、データマニピュレータ３２０は、入力および／または出力パケットまたは特定のモバイル用途に関連付けられたデータ操作フラグに従って、入力および／または出力パケット／データに様々な処理を行ってよい。これら処理には、圧縮、伸張、暗号化、復号化、パケット化、パケット化解除等が含まれてよい。これら処理を行うための専用データマニピュレータ３２０を有すると、メインプロセッサの利用および関連するメモリ処理が低減するので、モバイル端末の消費電力低減につながる。ＬＰ−ＦＡＳＴアプリケーション３０１は、例えば暗号化、復号化、圧縮、および伸張等の、データ操作フラグの全てまたは一部を、ＡＰＩ経由で設定することができる。様々な実施形態では、データ操作フラグはさらに、ＬＰ−ＦＡＳＴエンジン３００のコンポーネントによっても修正可能である。例えば、パケット化およびパケット化解除のためのデータ操作フラグが、データマニピュレータ３２０により設定されてよい。データマニピュレータ３２０は、個々のデータストリームおよび／または複数のデータストリームに対して、各処理を実行することができる。
【００４３】
様々な実施形態では、データマニピュレータ３２０は、これらの処理をコンテキスト認識した方法（サービス認識、帯域幅認識、および／または、消費電力認識を含む）により行うことができる。データマニピュレータ３２０は、これらの処理を、ＬＰ−ＦＡＳＴアプリケーション３０１のＱｏＳパラメータに関連する情報に基づいて行うことにより、サービスを認識して行うことができる。データマニピュレータ３２０は、これらの処理を、トラフィックシェーパ３３０から受信するネットワーク帯域幅ステータスフィードバックに従って行うことにより、帯域幅を認識して行うことができる。例えば、利用可能な帯域幅が所定の帯域幅の閾値未満である場合、データマニピュレータ３２０は、ｌＰ−ＦＡＳＴアプリケーション３０１の送信データレートを低減させることができる。データマニピュレータ３２０は、これらの処理を、外部電力モニタ（図３では不図示）から受信するフィードバックに従って行うことにより、消費電力を認識して行うことができる。例えば、給電レベルが所定の電力の閾値未満である場合、データマニピュレータ３２０は、計算上のリソース消費量と送信データレートとを両方とも低減させることができる。様々な実施形態では、データマニピュレータ３２０は、様々なデータストリームに対して、これら様々なデータストリーム銘々のＱｏＳレベルおよび優先度に従ってそれぞれ異なる調節を行うことができる。
【００４４】
図４は、様々な実施形態におけるバスインタフェースコントローラ４７０に連結されたデータマニピュレータ４２０の実施形態の一例を示すブロック図である。様々な実施形態では、データマニピュレータ４２０は、図３に図示されているデータマニピュレータ３２０であってよい。データマニピュレータ４２０は、データ分割モジュール４２１、データ圧縮モジュール４２２、データパケット化モジュール４２３、データ結合モジュール４２６、データ伸張モジュール４２７、データパケット化解除モジュール４２８、タスク管理モジュール４２４、および、タスクレジストリ４２５を含んでよい。図４には特定のコンポーネントが図示されているが、データマニピュレータ４２０は、その他の適切なコンポーネント（メモリ、バッファ、キャッシュ等の１以上の格納ユニットを含む）を含んでよい。さらに、これらコンポーネントの一部によい実行される機能は組み合わせたり、さらに分割したりすることもでき、これらコンポーネントの一部をソフトウェア、ハードウェア、またはこれらの組み合わせで実装することもできる。
【００４５】
様々な実施形態では、タスク管理モジュール４２４は、メインプロセッサ（図１には不図示）から、該メインプロセッサおよびＬＰ−ＦＡＳＴエンジン３００に連結されたバスインタフェースコントローラ４７０経由で、送信コマンドを受信してよい。送信コマンドには、ＬＰ−ＦＡＳＴアプリケーション３０１が生成した出力データに関する情報が含まれていてよく、これには、ＬＰ−ＦＡＳＴアプリケーション３０１が設定したデータ操作フラグが含まれてもよい。加えて、送信コマンドには、無線ネットワークから受信されるべき、ＬＰ−ＦＡＳＴアプリケーション３０１用の入力データに関する情報が含まれてもよい。タスク管理モジュール４２４は、送信コマンドをタスクレジストリ４２５に提供してよい。
【００４６】
様々な実施形態では、タスクレジストリ４２５は、タスク管理モジュール４２４から送信コマンドを受信して、ＬＰ−ＦＡＳＴアプリケーション３０１が生成した出力データに関する情報および／または受信されるべき入力データに関する情報を取得して、送信タスクを生成してよい。
【００４７】
様々な実施形態では、データ分類モジュール４２１は、タスク管理モジュール４２４経由で、生成されたタスクの検知または通知、および、出力データに関する情報の取得を行うことができる。データ分割モジュール４２１は、バスインタフェースコントローラ４７０経由で、ＬＰ−ＦＡＳＴアプリケーション３０１が生成した出力データを取得することができる。出力データのサイズに応じて、データ分割モジュール４２１は、出力データを、ネットワーク送信に適したサイズの１以上の出力パケットに分割してよい。様々な実施形態では、データ分割モジュール４２１は、さらに、１以上の出力データを単一の出力パケットにまとめることもできる。
【００４８】
様々な実施形態では、データパケット化モジュール４２３は、１以上の出力パケットを送信プロトコルに基づいてパケット化することもできる。一例では、データパケット化モジュール４２３は、出力データを、リアルタイムプロトコル（ＲＴＰ）、ユーザデータプロトコル（ＵＤＰ）、および／または、ＩＰに基づいてパケット化することができる。データパケット化モジュール４２３は、他のネットワーク送信プロトコルに基づいて出力パケットをパケット化してよい。パケット化されたデータは、送信器（例えば図３のデータ送信器３５０）に転送して、無線ネットワーク経由の送信に備えさせてよい。
【００４９】
様々な実施形態では、データパケット化解除モジュール４２８は、受信器（例えば図３のデータ受信器３６０）から受信した入力パケットのパケット化を解除して、パケット化を解除された入力パケットをデータ結合モジュール４２６に提供してよい。データパケット化解除モジュール４２８は、データ受信器３６０から、タスクレジストリ４２５に格納されている送信タスクに基づいて入力パケットを取得することができる。一例では、データパケット化解除モジュール４２８は、入力パケットを、ＵＤＰ／ＩＰに基づいてパケット化解除してよい。データパケット化解除モジュール４２８は、入力データをデータ結合モジュール４２６に転送する前に、ＲＴＰを使って、パケット化を解除された入力データの完成度をチェックしてよい。様々な実施形態では、データパケット化解除モジュール４２８は、他のネットワーク送信プロトコルに基づいて入力パケットのパケット化を解除することもできる。
【００５０】
様々な実施形態では、データ結合モジュール４２６は、入力パケットを、ＬＰ−ＦＡＳＴアプリケーション３０１が処理しやすいサイズの入力データに組み合わせ、および／または、分割することができる。データ結合モジュール４２６は、組み合わせられた入力データをＬＰ−ＦＡＳＴアプリケーション３０１にバスインタフェースコントローラ４７０経由で提供してよい。
【００５１】
様々な実施形態では、データ圧縮モジュール４２２は、出力パケットを圧縮して、圧縮した出力パケットをデータパケット化モジュール４２３に提供してよい。様々な実施形態では、データ伸張モジュール４２７は、入力パケットを伸張してから、該入力パケットをデータデータ結合モジュール４２６に提供してよい。様々な実施形態では、データ圧縮モジュール４２２は、データ分割モジュール４２１が出力データを分割する前に、出力データの圧縮を行うことができ、データ伸張モジュール４２７も同様に、データ結合モジュール４２６が入力データを組み合わせる前に、入力データの伸張を行うことができる。
【００５２】
様々な実施形態では、データマニピュレータ４２０はさらに、データ暗号化モジュールおよびデータ復号化モジュールを含んでよい（図４には不図示）。データ暗号化モジュールは、ＬＰ−ＦＡＳＴアプリケーション３０１が生成した出力データを暗号化することができ、データ復号化モジュールは、ＬＰ−ＦＡＳＴアプリケーション３０１用の入力データを復号化することができる。
【００５３】
様々な実施形態では、タスク管理モジュール４２４は、データマニピュレータ４２０が未使用送信チャネルを含んでいないかを、タスクレジストリ４２５のレコードに基づいて判断することができる。利用可能な送信チャネルがタスクレジストリ４２５内に見つかったら、タスク管理モジュール４２４は、データ分割モジュール４２１に、この送信チャネルを用いてバスコントローラインタフェース経由で出力データを取得するよう通知することができる。送信チャネルは、指向性または全方向性通信をサポートしているものであってよい。データマニピュレータ４２０は、１を越える数の送信チャネルを有してよい。データマニピュレータ４２０がサポートする送信チャネルの正確な数は、そのモバイル端末ごとに構成可能である。様々な実施形態では、タスク管理モジュール４２４は、１以上の送信チャネルが利用可能であるとメインプロセッサに通知する場合もある。メインプロセッサは、この通知を受信すると、ＬＰ−ＦＡＳＴアプリケーション３０１が生成する出力データを送信せよという旨の送信コマンドを発行することができる。利用可能な送信チャネルがない場合には、メインプロセッサは送信を保留し、または、出力データを、図３の外部送信スタック３０８等の外部送信スタック経由で送信してよい。
【００５４】
様々な実施形態では、バスインタフェースコントローラ４７０は、ＬＰ−ＦＡＳＴアプリケーション３０１が生成した出力データをデータマニピュレータ４２０に送信してよく、データマニピュレータ４２０からの入力データをＬＰ−ＦＡＳＴアプリケーション３０１に提供してよい。様々な実施形態では、バスインタフェースコントローラ４７０は、ＬＰ−ＦＡＳＴアプリケーション３０１が生成した出力データを、モバイル端末のメインプロセッサに関連付けられたデータ領域から取得してよく、メインプロセッサに関連付けられたデータ領域の入力データを送信することで、入力データをＬＰ−ＦＡＳＴアプリケーション３０１に提供することができる。
【００５５】
様々な実施形態では、バスインタフェースコントローラ４７０を、共有メモリ等のソン他の通信手段で置き換えることもできる。
【００５６】
様々な実施形態では、データマニピュレータ４２０は、バッファ、キャッシュ、その他、データマニピュレータ４２０の様々なコンポーネント間で（例えばデータ分割モジュール４２１およびデータパケット化モジュール４２３の間で）送信される情報の格納に適した他の種類のメモリを含んでよい。
【００５７】
図３を参照すると、パケット傍受器３４０は、外部送信スタック３０８に連結されていてよい。様々な実施形態では、外部送信スタック３０８は、ＴＣＰ／ＩＰに類似した層状のモデルに基づいたものであってよく、アプリケーション層３０４、トランスポート層３０５、ＩＰ層３０６、およびリンク層３０７を含んでよい。外部送信スタック３０８を、ＬＰ−ＦＡＳＴエンジン３００とともにモバイル端末２００上に共存させることで、モバイル端末２００を、ＬＰ−ＦＡＳＴエンジン３００を利用するよう設計されていないレガシーのモバイルアプリケーション（例えば非ＬＰ−ＦＡＳＴアプリケーション３０３）にも対応したものにすることができる。様々な実施形態では、リンク層３０７は、ネットワークインタフェースカード（ＮＩＣ）およびＮＩＣドライバを含んでよい。
【００５８】
様々な実施形態では、パケット傍受器３４０は、非ＬＰ−ＦＡＳＴアプリケーション３０３が生成した出力パケットを傍受してよい。様々な実施形態では、パケット傍受器３４０は、リンク層３０７のＮＩＣに連結されて、リンク層３０７から分離されたＮＩＣドライバとして動作してよい。パケット傍受器３４０は、非ＬＰ−ＦＡＳＴアプリケーション３０３からの出力パケットを、外部送信スタック３０８のルーティングテーブルを構成して傍受して、リンク層３０７の全ての他のＮＩＣドライバよりもパケット傍受器３４０を優先させるようにすることができる。パケット傍受器３４０は、傍受したパケットをトラフィックシェーパ３３０にルーティングしてよい。従って、非ＬＰ−ＦＡＳＴアプリケーション３０３が生成した出力パケット、および、ＬＰ−ＦＡＳＴアプリケーション３０１が生成した出力パケットが生成した出力パケットは両方とも、ＬＰ−ＦＡＳＴエンジン３００により管理、配信が行われる。これにより、非ＬＰ−ＦＡＳＴアプリケーション３０３が同じモバイル端末に存在することに起因した、ＬＰ−ＦＡＳＴアプリケーション３０１に対する負の影響を低減することができる。
【００５９】
様々な実施形態では、パケット傍受器３４０は、入力パケットをデータ受信器３６０から受信してよい。パケット傍受器３４０は、入力パケットがＬＰ−ＦＡＳＴアプリケーション３０１用のものか、非ＬＰ−ＦＡＳＴアプリケーション３０３用のものかを判断することができる。ＬＰ−ＦＡＳＴアプリケーション３０１用の入力パケットの場合には、パケット傍受器３４０は、これらパケットをデータマニピュレータ３２０にルーティングして、さらなる処理ひいてはＬＰ−ＦＡＳＴアプリケーション３０１への送信に備えさせる。非ＬＰ−ＦＡＳＴアプリケーション３０３用の入力パケットの場合には、パケット傍受器３４０は、これらパケットを外部送信スタック３０８に（例えばＩＰ層３０６に）ルーティングして、そこからこれらパケットを非ＬＰ−ＦＡＳＴアプリケーション３０３に配信させる。様々な実施形態では、パケット傍受器３４０は、ＬＰ−ＦＡＳＴアプリケーション３０１用の入力パケットと非ＬＰ−ＦＡＳＴアプリケーション３０３用の入力パケットとを、入力パケットの指定ポート番号により区別することができる。
【００６０】
様々な実施形態では、パケット傍受器３４０は、１以上の優先度設定を、ＬＰ−ＦＡＳＴアプリケーション３０１および比ＬＰ−ＦＡＳＴアプリケーション３０３の入力／出力パケットに適用して、銘々のＱｏＳを向上または維持することができる。
【００６１】
様々な実施形態では、トラフィックシェーパ３３０は、サービス認識、帯域幅認識、および消費電力認識した方法で、入力／出力パケットの順序を付け直すことができる。トラフィックシェーパ３３０は、ＬＰ−ＦＡＳＴアプリケーション３０１のＱｏＳに関する情報を、入力／出力パケットに埋め込まれた形で、または、データマニピュレータ３２０、データ分類器３１０経由で、および／または、ＬＰ−ＦＡＳＴアプリケーション３０１から直接バスインタフェースコントローラ３７０またはその他の手段を経由して受信することができる。トラフィックシェーパ３３０は、出力パケットを、データマニピュレータ３２０から（ＬＰ−ＦＡＳＴアプリケーション３０１について）、および、パケット傍受器３４０から（非ＬＰ−ＦＡＳＴアプリケーション３０３について）受信することができ、入力パケットをデータ傍受器３４０から受信することができる。トラフィックシェーパ３３０は、入力／出力パケットの配信順序を、ＬＰ−ＦＡＳＴアプリケーション３０１のＱｏＳに関する情報に基づいてやり直すことができる。例えば、トラフィックシェーパ３３０は、出力パケットの順序を変えて、より低いＱｏＳ要件を有するアプリケーションにより出力パケットが先に生成された場合であっても、より高いＱｏＳ要件を有するアプリケーションが生成した出力パケットを、より低いＱｏＳ要件を有するアプリケーションが生成した出力パケットよりも前に無線ネットワーク経由で配信するようにしてよい。同様に、トラフィックシェーパ３３０は、入力パケットの順序を変えて、より高いＱｏＳ要件を有するアプリケーション用の入力パケットを、より低いＱｏＳ要件を有するアプリケーション用の入力パケットよりも前に配信させてよい。
【００６２】
様々な実施形態では、関連するＱｏＳ情報を持たない非ＬＰ−ＦＡＳＴアプリケーション３０３にやりとりされるパケットについて、トラフィックシェーパ３３０は、これらのパケットを既知のプロトコルについて調べて、様々なＱｏＳレベルをこれらパケットに関連付けることができる。様々な実施形態では、トラフィックシェーパ３３０は、各個々のパケットを調べても調べなくてもよい。トラフィックシェーパ３３０は、これらパケットの１以上を選択的に調べて、これらパケットのストリームにＱｏＳレベルを関連付けることができる。様々な実施形態では、トラフィックシェーパ３３０は、非ＬＰ−ＦＡＳＴアプリケーション３０３への、またはここからの様々なパケットに、銘々のプロトコルに基づいて異なるＱｏＳレベルを選択的に関連付けたり、これらパケット全てに、ベストエフォートパケット型として同じＱｏＳレベルを関連付けたり、これら２つの組み合わせを関連付けたりしてもよい。
【００６３】
様々な実施形態では、トラフィックシェーパ３３０は、データ送信器３５０から帯域幅ステータス更新を、外部電力モニタから電力ステータス更新を受信してよい。トラフィックシェーパ３３０は、ＬＰ−ＦＡＳＴアプリケーション３０１のＱｏＳに関する情報、帯域幅情報および電力情報に基づいて、送信に備えるために、データ送信器３５０にパケットを送信する時間を遅らせることができる。様々な実施形態では、トラフィックシェーパ３３０は、入力／出力パケットの流出ベースおよび／または流入ベースのＱｏＳ制御を提供することができる。
【００６４】
一部のモバイル端末は、各データ送信の直後に節電のために接続を停止してよい。しかし、頻繁に接続開始／接続停止することで、信号チャネルが混雑して、結果的に接続面で支障が出ることが考えられる。様々な実施形態においては、トラフィックシェーパ３３０は、分散しているパケットをバーストにまとめて、送信器（例えば図２に示す送信器２１４）に、節電スリープモードにより長く、より定期的に入らせることができる。トラフィックシェーパ３３０は、頻繁に接続開始／接続停止するというオーバヘッドを低減させることで、ネットワークの混雑度合いひいては接続面での支障を低減させることができる。
【００６５】
様々な実施形態では、トラフィックシェーパ３３０はさらに、データ送信器３５０から、パケット送信についてのステータスフィードバック（例えば成功または失敗といったもの）を得ることもできる。トラフィックシェーパ３３０は、これら情報を経時的に収集して、これら情報を分析して、リアルタイム帯域幅情報を生成してよく、これらを定期的または要求に応じる形でデータマニピュレータ３２０に提供することができる。
【００６６】
様々な実施形態では、データ送信器３５０は、出力パケットを外部無線ネットワークデバイスドライバ３０２に提供することができる。外部無線ネットワークデバイスドライバ３０２は、ＷｉＦｉ、またはＩＥＥＥ８０２．１１規格（ＩＥＥＥ８０２．１１−２００７、２００７年３月２０日公開）、第三世代パートナーシッププロジェクト（３ＧＰＰ）、ＷｉＭＡＸ（World Interoperability for Microwave Access）等に基づいたものであってよい。外部無線ネットワークデバイスドライバ３０２は、ソフトウェアデバイスドライバまたはハードウェアデバイスドライバであってよい。様々な実施形態では、データ送信器３５０は、無線ネットワークのステータスを検知して、出力パケットの送信に失敗した場合には、出力パケットを再送信することができる。
【００６７】
様々な実施形態では、データ受信器３６０は、外部無線ネットワークデバイスドライバ３０２から入力パケットを受信することができる。データ受信器３６０は、入力パケットをパケット傍受器３４０に転送してよい。様々な実施形態では、データ受信器３６０は、入力パケットの送信器に対して、入力パケットのうち１以上を、ＬＰ−ＦＡＳＴエンジン３００の様々なコンポーネント（データマニピュレータ３２０をはじめとする）からのフィードバックに基づいて再送信するよう要求することができる。
【００６８】
様々な実施形態では、ＬＰ−ＦＡＳＴエンジン３００の様々なコンポーネント（データ分類器３１０、データマニピュレータ３２０、トラフィックシェーパ３３０、パケット傍受器３４０、データ送信器３５０、およびデータ受信器３６０等）を、ハードウェア、ソフトウェア、およびこれらの組み合わせで実装することができる。様々な実施形態では、ＬＰ−ＦＡＳＴエンジン３００の様々なコンポーネントを、モバイル端末２００上の仮想マシンとして実装することができる。
【００６９】
図５は、様々な実施形態において出力データを処理するＬＰ−ＦＡＳＴエンジン３００の処理の一例における一部を示すフロー図である。ＬＰ−ＦＡＳＴエンジン３００は、ＬＰ−ＦＡＳＴアプリケーション３０１がバスインタフェースコントローラ３７０またはその他の手段により生成した出力データを受信してよい（ブロック５１０）。データ分類器３１０は、受信した出力データを分類してよい（ブロック５２０）。データマニピュレータ３２０は、圧縮、伸張、暗号化、復号化、パケット化、よびパケット化解除等の処理を行ってよい（ブロック５３０）。パケット傍受器３４０は、非ＬＰ−ＦＡＳＴアプリケーション３０３が生成した出力データを傍受して、このデータをトラフィックシェーパ３３０に転送してよい（ブロック５６０）。トラフィックシェーパ３３０は、ＬＰ−ＦＡＳＴアプリケーション３０１および非ＬＰ−ＦＡＳＴアプリケーション３０３の両方が生成した出力データの順序を変え、再配置することができる（ブロック５４０）。データ送信器３５０は、再構成された出力データを、送信に備えさせるために無線ネットワークデバイス３０２に提供してよい（ブロック５５０）。
【００７０】
図６は、様々な実施形態において入力データを処理するＬＰ−ＦＡＳＴエンジン３００の処理の一例における一部を示すフロー図である。データ受信器３６０は、入力パケットを受信してよい（ブロック６１０）。パケット傍受器３４０は、入力パケット用のアプリケーションを判断する（ブロック６２０）。データが非ＬＰ−ＦＡＳＴアプリケーション３０３用であった場合には、パケット傍受器３４０は、外部送信スタック３０８にこの入力パケットを転送したり、提供したり、または利用可能としたりすることができ、これにより、入力パケットを非ＬＰ−ＦＡＳＴアプリケーション３０３に配信させてよい（ブロック６３０）。入力パケットがＬＰ−ＦＡＳＴアプリケーション３０１用である場合、パケット傍受器３４０は、入力パケットをデータマニピュレータ３２０に配信して、そこでデータマニピュレータ３２０は入力パケットに処理を行って、ＬＰ−ＦＡＳＴアプリケーション３０１で容易に許容される形式の入力データを生成することができる（ブロック６４０）。入力データは、バスインタフェースコントローラ３７０その他の手段により、ＬＰ−ＦＡＳＴアプリケーション３０１に提供されてよい（ブロック６５０）。
【００７１】
図７は、本発明の様々な実施形態を実施する際に利用するコンピュータシステムの一例を示す。図示されているように、コンピューティングシステム７００は、複数のプロセッサまたはプロセッサコア７０２、システムメモリ７０４、および通信インタフェース７１０を含んでよい。本願においては、請求項でもそうであるが、そうではないということがコンテキストから明らかな場合を除いて、「プロセッサ」および「プロセッサコア」等の用語は類義語とする。通信インタフェース７１０は、前述したように、ＬＰ−ＦＡＳＴエンジンの少なくとも一部を含んでよい。
【００７２】
加えて、コンピューティングシステム７００は、有形の非短期的な大容量記憶デバイス７０６（ディスク、ハードドライブ、ＣＤＲＯＭ等）、入出力デバイス７０８（キーボード、カーソル制御等）を含んでよい。これらエレメントはシステムバス７１２（１以上のバスを表す）を介して互いに連結されてよい。複数のバスを利用する場合、バス同士は１以上のバスブリッジにより橋絡されてよい（不図示）。
【００７３】
これらエレメントの各々は、当技術分野で公知の機能を実行してよい。特にシステムメモリ７０４および大容量ストレージ７０６を利用して、１以上のオペレーティングシステム、ドライバ、アプリケーション等を実装するワーキングコピーおよび永久コピーを格納することができ、これらは集合的に７２２で表す。
【００７４】
プログラミング命令の永久コピーは、工場または現場で、例えば、コンパクトディスク（ＣＤ）等の配信媒体（不図示）により、または通信インタフェース７１０経由で（不図示の配信サーバから）、永久ストレージ７０６に設けられてよい。つまり、エージェントプログラムの実装を有する１以上の配信媒体を利用して、エージェントおよびプログラムを様々なコンピューティングデバイスに配信することができる。
【００７５】
これらエレメント７０２−７１２の残りの構成は既知であり、さらなる説明は省く。
【００７６】
特定の実施形態について図示および記載してきたが、当業者であれば様々な変形例および均等例により、実際に図示および記載した実施形態を置き換えることができることを理解する。本願は、ここで説明する実施形態の全ての変形例および変更例を含むことを意図している。従って本発明の実施形態は、請求項およびその均等物によってのみ限定されるべきであることが明白に意図されている。
（項目１）
無線ネットワークを介して送信されるモバイル端末の上で動作する１以上のアプリケーションにより生成される出力データに関する情報を含む送信コマンドを前記モバイル端末のメインプロセッサから受信し、前記モバイル端末がホストするバスインタフェースコントローラと、
前記バスインタフェースコントローラに連結されて、送信チャネルが利用可能か判断して、前記メインプロセッサに前記送信チャネルの利用可能性を通知して、前記バスインタフェースコントローラから前記出力データを受信して、前記出力データに分割、圧縮、またはパケット化の少なくとも１つを行い複数の出力パケットを生成するデータマニピュレータモジュールと、
前記複数の出力パケットを受信して前記無線ネットワークを介して前記複数の出力パケットを送信し、前記データマニピュレータに連結されているデータ送信器とを備え、
前記メインプロセッサは、前記送信チャネルの利用可能性に関する前記通知に基づいて、前記送信コマンドを発行する装置。
（項目２）
前記１以上のアプリケーションの少なくとも１つ用の複数の入力パケットを受信するデータ受信器をさらに備え、
前記データマニピュレータはさらに、前記複数の入力パケットを少なくとも１つの入力データに組み込み、
前記バスインタフェースコントローラはさらに、前記少なくとも１つの入力データを前記１以上のアプリケーションの前記少なくとも１つに提供する項目２に記載の装置。
（項目３）
前記メインプロセッサは、少なくとも１つの送信チャネルが利用可能となるまでは前記送信コマンドを発行しない項目２に記載の装置。
（項目４）
前記データマニピュレータは、
前記バスインタフェースコントローラを介して前記送信コマンドを受信するタスク管理モジュールと、
前記タスク管理モジュールから前記送信コマンドを受信して、前記送信コマンドに含まれる前記出力データに関する前記情報に基づいて送信タスクを生成するタスクレジストリと、
前記出力データを、前記無線ネットワークを介した送信に適した前記複数の出力パケットに分割するデータ分割モジュールと、
前記複数の出力パケットのそれぞれをパケット化するデータパケット化モジュールと、
前記無線ネットワークを介して受信した複数の入力パケットのパケット化を解除するデータパケット化解除モジュールと、
データ受信器が受信する前記複数の入力パケットを、前記モバイル端末の上で動作する前記１以上のアプリケーションの少なくとも１つ用の少なくとも１つの入力データに組み込むデータ結合モジュールとをさらに有する項目１に記載の装置。
（項目５）
前記データマニピュレータは、
前記データ分割モジュールから前記複数の出力パケットを受信して、前記複数の出力パケットのそれぞれを圧縮するデータ圧縮モジュールと、
前記データパケット化解除モジュールから前記複数の入力パケットを受信して、前記複数の入力パケットのそれぞれを伸張するデータ伸張モジュールとをさらに有する項目４に記載の装置。
（項目６）
前記データマニピュレータモジュールは、
前記データ分割モジュールと前記データパケット化モジュールとの間で送信される情報を格納する格納ユニットをさらに有する項目４に記載の装置。
（項目７）
前記データ送信器はさらに、前記無線ネットワークのステータスを検知して、前記複数の出力パケットの１つの送信が失敗すると、前記複数の出力パケットの前記１つを再送信する項目１に記載の装置。
【図１】
0005354557.tif 000002
【図２】
0005354557.tif 000003
【図３】
0005354557.tif 000004
【図４】
0005354557.tif 000005
【図５】
0005354557.tif 000006
【図６】
0005354557.tif 000007
【図７】
0005354557.tif 000008