(57)【特許請求の範囲】
【請求項１】
モバイルネットワークと結合されたモバイルデバイス上で動作するモバイルアプリケーションのサービス品質を決定するための方法であって、
前記モバイルネットワークを介してアプリケーションデータを送信中又は受信中の前記モバイルアプリケーションのネットワーク使用パターンをアプリケーションレイヤレベルにおいてリアルタイムに監視することと、
前記モバイルネットワークを介してテストデータを送信または受信することによって、前記モバイルネットワークを介して前記アプリケーションデータを送信中又は受信中の前記モバイルアプリケーションの前記ネットワーク使用パターンをリアルタイムにエミュレートすることと、
送信または受信されている前記テストデータを分析することによって、前記モバイルアプリケーションの前記サービス品質を決定することと、
を含む方法。
【請求項２】
前記モバイルデバイス上にインストールされた前記モバイルアプリケーションを識別することと、
前記モバイルデバイス上で起動されている前記モバイルアプリケーションを検出することと、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記モバイルアプリケーションの前記識別が、
前記モバイルネットワークを介して通信する前記モバイルアプリケーションの前記ネットワーク使用パターンに基づいて、前記モバイルアプリケーションを識別すること、
をさらに含む、請求項２に記載の方法。
【請求項４】
前記ネットワーク使用パターンの前記監視が、
前記モバイルアプリケーションが前記モバイルネットワークを介してアプリケーションデータを送信しているか、それとも受信しているかを検出すること、
をさらに含む、請求項１に記載の方法。
【請求項５】
前記ネットワーク使用パターンの前記エミュレートが、
前記モバイルアプリケーションが前記アプリケーションデータを送信または受信しているときに、同時に前記モバイルネットワークを介して前記テストデータを送信または受信すること、
をさらに含む、請求項４に記載の方法。
【請求項６】
前記ネットワーク使用パターンの前記エミュレートが、
前記モバイルアプリケーションが前記モバイルネットワークを介して前記アプリケーションデータを送信していると判定されたときに、同時に前記モバイルネットワークを介して前記テストデータを送信することと、
前記モバイルアプリケーションが前記モバイルネットワークを介して前記アプリケーションデータを受信していると判定されたときに、同時に前記モバイルネットワークを介して前記テストデータを受信することと、
をさらに含む、請求項４に記載の方法。
【請求項７】
前記ネットワーク使用パターンの前記エミュレートが、
事前定義された１組のデータを前記テストデータとしてロードすることと、
前記モバイルアプリケーションのネットワーク伝送メカニズムを使用して、前記事前定義された１組のデータをリモートの監視システムに送信すること、またはリモートの監視システムから受信することと、
をさらに含む、請求項１に記載の方法。
【請求項８】
前記ネットワーク使用パターンの前記エミュレートが、
前記モバイルネットワークを介して前記テストデータのサンプルを送信または受信することによって、前記ネットワーク使用パターンをエミュレートすることであって、前記テストデータの前記サンプルが、サンプルレートによって前記テストデータを減らすことによって生成される、エミュレートすること、
をさらに含む、請求項１に記載の方法。
【請求項９】
前記モバイルアプリケーションの前記サービス品質の前記決定が、
前記テストデータの前記サンプルの前記送信または受信から収集されたネットワーク性能測定値を前記サンプルレートを用いて乗算すること、
をさらに含む、請求項８に記載の方法。
【請求項１０】
前記モバイルアプリケーションの前記サービス品質の前記決定が、
前記テストデータの前記送信または受信から複数のネットワーク性能測定値を収集することと、
前記複数のネットワーク性能測定値に基づいて、前記モバイルアプリケーションの前記サービス品質を決定すること、
をさらに含む、請求項１に記載の方法。
【請求項１１】
前記モバイルアプリケーションの前記サービス品質の前記決定が、
送信および受信されている前記テストデータの前記テストデータの伝送パターンを評価することと、
前記伝送パターンに基づいて、前記モバイルネットワーク内で発生したネットワーク問題を識別することと、
をさらに含む、請求項１に記載の方法。
【請求項１２】
前記方法が、コンピューティングプロセッサによって実行されたときに、前記コンピューティングプロセッサに前記方法を実行させる１組の命令として機械可読媒体内に具現される、請求項１に記載の方法。
【請求項１３】
モバイルネットワークと結合されたモバイルデバイス上で動作するモバイルアプリケーションのサービス品質を決定するための方法であって、
ネットワーク伝送メカニズムを使用して前記モバイルネットワークからアプリケーションデータを受信中の前記モバイルアプリケーションをリアルタイムにエミュレートするための第１の要求を前記モバイルデバイスから受信することと、
前記ネットワーク伝送メカニズムを使用して、前記モバイルデバイスに第１の１組のテストデータを送信することと、
前記第１の１組のテストデータの前記送信に基づいた前記モバイルアプリケーションの前記サービス品質を前記モバイルデバイスから受信することと、
を含む方法。
【請求項１４】
前記ネットワーク伝送メカニズムを使用して前記モバイルネットワークに前記アプリケーションデータを送信中の前記モバイルアプリケーションをリアルタイムにエミュレートするための第２の要求を前記モバイルデバイスから受信することと、
前記ネットワーク伝送メカニズムを使用して、前記モバイルデバイスから第２の１組のテストデータを受信することと、
前記第２の１組のテストデータの前記受信に基づいた前記モバイルアプリケーションの前記サービス品質を前記モバイルデバイスから受信することと、
をさらに含む、請求項１３に記載の方法。
【請求項１５】
複数のモバイルデバイスから、前記複数のモバイルデバイスの各々の上で動作する前記モバイルアプリケーションの複数のサービス品質を受信することと、
前記複数のサービス品質に基づいて、前記複数のモバイルデバイス上で動作する前記モバイルアプリケーションの集約されたサービス品質を決定することと、
をさらに含む、請求項１４に記載の方法。
【請求項１６】
前記モバイルアプリケーションの前記サービス品質の前記決定が、
前記モバイルアプリケーションに関連するユーティリティ関数を選択することと、
前記第１の１組のテストデータの前記送信から複数のネットワーク性能測定値を収集することと、
前記複数のネットワーク性能測定値を前記ユーティリティ関数に入力することによって、前記サービス品質を計算することと、
をさらに含む、請求項１３に記載の方法。
【請求項１７】
モバイルデバイス上で動作するモバイルアプリケーションのサービス品質を決定するように構成されたシステムであって、
モバイルネットワークと接続された監視システムと、
前記モバイルネットワークを介してアプリケーションデータを送信中又は受信中の前記モバイルアプリケーションのネットワーク使用パターンをリアルタイムに監視するために前記モバイルデバイス上で動作する監視アプリケーションであって、前記ネットワーク使用パターンは、前記モバイルアプリケーションがアプリケーションデータを前記モバイルネットワークに送信しているか、それとも前記モバイルネットワークから受信しているかを示し、前記監視アプリケーションは、前記監視システムから第１の１組のテストデータを受信することによって、前記アプリケーションデータを受信中の前記モバイルアプリケーションをリアルタイムにエミュレートし、前記監視アプリケーションは、前記受信した第１の１組のテストデータを分析することによって、前記モバイルアプリケーションの前記サービス品質を決定する、監視アプリケーションと、
を備えるシステム。
【請求項１８】
前記監視システムが、前記第１の１組のテストデータを前記監視アプリケーションに送信し、第２の１組のテストデータを前記監視アプリケーションから受信することによって、前記アプリケーションデータを受信中の前記モバイルアプリケーションをリアルタイムにエミュレートし、前記監視システムが、前記第１の１組のテストデータと前記第２の１組のテストデータを分析することによって、前記モバイルアプリケーションの前記サービス品質を決定する、請求項１７に記載のシステム。
【請求項１９】
前記監視アプリケーションが、第３の１組のテストデータを前記監視システムに送信することによって、前記アプリケーションデータを送信中の前記モバイルアプリケーションをリアルタイムにエミュレートし、前記監視システムが、前記第３の１組のテストデータを分析することによって、前記モバイルアプリケーションの前記サービス品質を決定する、請求項１７に記載のシステム。
【請求項２０】
前記監視アプリケーションおよび前記監視システムと結合された監視キューであって、前記監視キューが、前記第１の１組のデータを記憶し、前記第１の１組のデータを前記モバイルアプリケーションと関連付ける、監視キュー
をさらに備える、請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、モバイル技術に関し、より詳細には、動的なモバイルアプリケーションサービス品質の監視および報告の方法およびシステムに関する。
【背景技術】
【０００２】
本明細書では別途指摘がない限り、本セクションで説明される手法は、本出願の特許請求の範囲に対する先行技術ではなく、本セクションに包含されることによって、先行技術であると認められることはない。
【０００３】
コンピュータネットワーキングの分野では、ネットワークリソースを要求するネットワークアプリケーションのできるだけ多くにサービスするように、限られた量のネットワークリソースを割り当てるための様々な手法が存在する。例えば、ネットワークアプリケーションは、一定量のネットワークスループットを要求することの他に、通信セッションに関連するいかなる潜在的な遅延、ジッタ、パケット紛失、またはビット誤り確率も一定レベルを下回ることの保証を要求することもできる。しばしば、ネットワークアプリケーションが適切に機能するには、要求の少なくともいくつかが満たされる必要がある。言い換えると、ネットワークアプリケーション（例えばビデオストリーミングアプリケーション）のために高いビットレートが利用可能であっても、高いレベルのジッタまたはビット誤りを有するなど、提供されるサービス品質が貧弱である場合には、ネットワークアプリケーションは、適切に動作するのにまだ失敗することがある。そのようなネットワークアプリケーションに対して高いレベルの性能およびサービス品質を保証するには、関連する通信セッションの限られた側面を検査するだけでは、性能およびサービス品質に影響を及ぼす問題を検出するのに、またはそれに対処するのに十分ではないことがある。
【発明の概要】
【０００４】
本開示の一実施形態は、一般に、モバイルネットワークと結合されたモバイルデバイス上で動作するモバイルアプリケーションのサービス品質を決定するための方法に関することができる。１つの例示的な方法は、モバイルネットワークを介して通信するモバイルアプリケーションのネットワーク使用パターン（network usage pattern）をアプリケーションレイヤレベルにおいて監視することと、モバイルネットワークを介してテストデータを送信または受信することによって、モバイルアプリケーションのネットワーク使用パターンをエミュレートすることと、送信または受信されているテストデータを分析することによって、モバイルアプリケーションのサービス品質を決定することとを含むことができる。
【０００５】
本開示の別の実施形態は、一般に、モバイルネットワークと結合されたモバイルデバイス上で動作するモバイルアプリケーションのサービス品質を決定するための方法に関することができる。１つの例示的な方法は、ネットワーク伝送メカニズムを使用してモバイルネットワークからアプリケーションデータを受信するモバイルアプリケーションをエミュレートするための第１の要求をモバイルデバイスから受信することと、ネットワーク伝送メカニズムを使用して、モバイルデバイスに第１の１組のテストデータを送信することと、第１の１組のテストデータの送信に基づいたモバイルアプリケーションのサービス品質をモバイルデバイスから受信することとを含むことができる。
【０００６】
本開示のまた別の実施形態は、一般に、モバイルデバイス上で動作するモバイルアプリケーションのサービス品質を決定するように構成されたシステムに関することができる。１つの例示的なシステムは、モバイルネットワークと接続された監視システムと、モバイルデバイス上で動作する監視アプリケーションとを含むことができる。１つの例示的な監視アプリケーションは、モバイルネットワークを介して通信するモバイルアプリケーションのネットワーク使用パターンを監視するように構成することができ、ネットワーク使用パターンは、モバイルアプリケーションがアプリケーションデータをモバイルネットワークに送信しているか、それともモバイルネットワークから受信しているかを示し、監視アプリケーションは、監視システムから第１の１組のテストデータを受信することによって、アプリケーションデータを受信中のモバイルアプリケーションをエミュレートし、監視アプリケーションは、受信した第１の１組のテストデータを分析することによって、モバイルアプリケーションのサービス品質を決定する。
【０００７】
上記の要約は、例示的なものにすぎず、いささかも限定的であることは意図していない。上で説明した例示的な態様、実施形態、および特徴に加えて、さらなる態様、実施形態、および特徴も、図面および以下の詳細な説明を参照することによって明らかになる。
【０００８】
本開示の上記および他の特徴は、添付の図面と併せて理解される、以下の説明および添付の特許請求の範囲からより十分に明らかになる。これらの図面は、本開示に従ったいくつかの実施形態を示しているにすぎず、したがって、本開示の範囲を限定するものと見なされるべきではない。本開示は、添付の図面の使用を通じて、さらなる特定性と詳細さで説明される。
【図面の簡単な説明】
【０００９】
【図１】本開示の少なくともいくつかの実施形態に従って描かれている、モバイルアプリケーションのサービス品質を決定するために、モバイル監視アプリケーションとアプリケーションエクスペリエンス監視システムを実施できる、動作環境を示すブロック図である。
【図２】本開示の少なくともいくつかの実施形態に従って描かれている、モバイル監視アプリケーションとアプリケーションエクスペリエンス監視システムによって利用できる、ネットワーク通信プロトコルスタックを示す図、及びモバイルアプリケーションのサービス品質を決定するシナリオを示す図である。
【図３】本開示の少なくともいくつかの実施形態に従って描かれている、モバイル監視アプリケーションによってモバイルアプリケーションサービス品質を決定するためのプロセスを示すフロー図である。
【図４】本開示の少なくともいくつかの実施形態に従って描かれている、アプリケーションエクスペリエンス監視システムによってモバイルアプリケーションサービス品質を受信するためのプロセスを示すフロー図である。
【発明を実施するための形態】
【００１０】
本開示の一実施形態によれば、モバイルネットワークと結合されたモバイルデバイス上で動作するモバイルアプリケーションのサービス品質を決定するための方法は、モバイルネットワークを介して通信するモバイルアプリケーションのネットワーク使用パターンをアプリケーションレイヤレベルにおいて監視することと、モバイルネットワークを介してテストデータを送信または受信することによって、モバイルアプリケーションのネットワーク使用パターンをエミュレートすることと、送信または受信されているテストデータを分析することによって、モバイルアプリケーションのサービス品質を決定することとを含む。
【００１１】
本開示の別の実施形態によれば、モバイルネットワークと結合されたモバイルデバイス上で動作するモバイルアプリケーションのサービス品質を決定するための方法は、モバイルネットワークを介して通信するモバイルアプリケーションのネットワーク使用パターンを受信することであって、ネットワーク使用パターンは、モバイルアプリケーションがアプリケーションデータをモバイルネットワークに送信しているか、それともモバイルネットワークから受信しているかを示し、モバイルアプリケーションがモバイルネットワークからアプリケーションデータを受信していると判定されたときに、モバイルデバイスに第１の１組のテストデータを送信することによって、モバイルアプリケーションのネットワーク使用パターンをエミュレートすることと、第１の１組のテストデータに対応する第２の１組のテストデータをモバイルデバイスから受信することと、第１の１組のテストデータと第２の１組のテストデータを分析することによって、モバイルアプリケーションのサービス品質を決定することとを含む。
【００１２】
本開示のさらなる一実施形態によれば、モバイルデバイス上で動作するモバイルアプリケーションのサービス品質を決定するように構成されたシステムは、モバイルネットワークと接続された監視システムと、モバイルネットワークを介して通信するモバイルアプリケーションのネットワーク使用パターンを監視するためにモバイルデバイス上で動作する監視アプリケーションであって、ネットワーク使用パターンは、モバイルアプリケーションがアプリケーションデータをモバイルネットワークに送信しているか、それともモバイルネットワークから受信しているかを示し、監視アプリケーションは、監視システムから第１の１組のテストデータを受信することによって、アプリケーションデータを受信中のモバイルアプリケーションをエミュレートし、監視アプリケーションは、受信した第１の１組のテストデータを分析することによって、モバイルアプリケーションのサービス品質を決定する、監視アプリケーションとを含む。
【００１３】
以下の詳細な説明では、詳細な説明の一部を形成する添付の図面を参照する。図面では、同様の記号は一般に、同様の構成要素を識別するが、前後の脈絡から別の指示がなされる場合はこの限りではない。詳細な説明、図面、および特許請求の範囲において説明される例示的な実施形態は、限定的であることは意図されていない。本明細書で提示される主題の主旨または範囲から逸脱することなく、他の実施形態も利用することができ、他の変更も行うことができる。一般的なものとして本明細書で説明され、図に示された本開示の態様は、多種多様な異なる構成を取るように配置し、置き換え、組み合わせ、および設計することができ、それらのすべてが明示的に企図されており、本開示の一部をなすことは容易に理解されよう。
【００１４】
本開示は、とりわけ、動的なモバイルアプリケーションサービス品質の監視および報告に関する方法、装置、コンピュータプログラム、およびシステムに関する。本開示の全体にわたって、「サービス品質」または「ＱｏＳ」という用語は、帯域幅、信号対雑音比、ビット誤り率、待ち時間、異なるネットワークセグメント（アクセスセグメント、メトロセグメント、コアセグメント）上でのパケット損失率、および他の性能測定値から見たネットワーク通信の品質の決定のことを広範に指すことができる。言い換えると、コンピューティングデバイス上で動作するアプリケーションのサービス品質は、そのようなアプリケーションに関連するネットワーク通信の品質に対応することができる。
【００１５】
例えば、モバイルアプリケーションは、通信データを送信するための広い帯域幅、高い信号対雑音比、低いビット誤り率、短い待ち時間、および／またはデータの送信もしくは受信についての低いパケット損失率が存在する場合は、高いサービス品質を有することができる。ボイスオーバＩＰ（ＶｏＩＰ）、オンラインビデオ、またはオンラインゲームなど、多くのリアルタイムストリーミングマルチメディアアプリケーションは、アプリケーションが望ましいユーザエクスペリエンスを提供するために、一定レベルのサービス品質を保証できるネットワークを必要とすることがある。さらに、ネットワークアプリケーションの観点から特定のネットワーク通信のサービス品質を決定することによって、多くの実際のまたは潜在的なネットワーク問題を迅速に識別または予測することができ、ひいては、問題が解決された後には、ネットワークアプリケーションのより良いサービス品質をもたらすことができる。
【００１６】
本開示の少なくともいくつかの実施形態によれば、モバイルネットワークと結合されたモバイルデバイス上で動作するモバイルアプリケーションのサービス品質を決定するためのプロセスが提示される。プロセスは、モバイルネットワークを介して通信するモバイルアプリケーションのネットワーク使用パターンをアプリケーションレイヤレベルにおいて監視するために実施することができる。プロセスは、モバイルネットワークを介してテストデータを送信または受信することによって、モバイルアプリケーションのネットワーク使用パターンをエミュレートすることができる。プロセスは、送信または受信されているテストデータを分析することによって、モバイルアプリケーションのサービス品質を決定することができる。
【００１７】
本開示の少なくともいくつかの実施形態によれば、モバイルデバイスなどのネットワーク通信デバイスは、モバイルネットワークを介したネットワーク通信を必要とする様々なモバイルアプリケーションを含む。ネットワーク通信中にモバイルアプリケーションが経験しているサービス品質を正確に決定するため、モバイル監視アプリケーション（ＭＭＡ）を、同じモバイルデバイス上にインストールして、動作させることができ、ＭＭＡは、同じモバイルネットワークを介してリモートのアプリケーションエクスペリエンス監視システム（ＡＥＭＳ）と通信することができる。ＭＭＡは、これらのモバイルアプリケーションのネットワーク使用パターンを監視することができ、同じまたは類似のネットワーク使用パターンを使用してＡＥＭＳと通信することによって、これらのモバイルアプリケーションをエミュレートすることができる。各モバイルアプリケーションについて、ＭＭＡは、モバイルアプリケーションが使用するのと同じネットワーキング伝送メカニズムを使用し、同じモバイルネットワークを介して、類似のタイプのデータ伝送を実行しているので、ＭＭＡ−ＡＥＭＳ通信に基づいて決定されるサービス品質は、モバイルアプリケーションが同時に経験しているサービス品質と相関を有し、それを反映することができる。したがって、動作中のモバイルアプリケーションと同時にリアルタイムに生成されたサービス品質をさらに評価して、モバイルアプリケーションが遭遇する実際のまたは潜在的なネットワーク問題を識別することができ、そのような情報を提供するために、モバイルアプリケーションに依存する必要はない。
【００１８】
図１は、本開示の少なくともいくつかの実施形態による、モバイルアプリケーションのサービス品質を決定するために、モバイル監視アプリケーションとアプリケーションエクスペリエンス監視システムを実施できる、動作環境を示すブロック図である。図１では、モバイルデバイス１１０は、モバイルネットワーク１２０を介してモバイルアプリケーションサーバ１５０と通信するように構成することができる。モバイルネットワーク１２０は、電気通信（Ｔｅｌｃｏ）サービスプロバイダ１３０が提供し、管理することができる。モバイルデバイス１１０は、とりわけ、モバイルオペレーティングシステム１１１、１つまたは複数のモバイルアプリケーション１１２、およびモバイル監視アプリケーション（ＭＭＡ）１１３など、複数のハードウェアコンポーネントまたはソフトウェアコンポーネントを含むことができる。
【００１９】
一つの実装では、ＭＭＡ  １１３は、モバイルアプリケーション１１２を監視し、アプリケーションエクスペリエンス監視システムＡＥＭＳ  １４０と対話するように構成することができる。ＡＥＭＳ  １４０は、とりわけ、サービス品質分析モジュール１４１と、１つまたは複数のコンピューティングプロセッサ１４２と、メモリ１４３とを含むことができる。ＭＭＡ  １１３とＡＥＭＳ  １４０は、同時に同じネットワーク伝送メカニズムを使用して同じモバイルネットワーク１２０を介してＭＭＡ  １１３とＡＥＭＳ  １４０の間でテストデータを交換することによって、モバイルアプリケーション１１２とモバイルアプリケーションサーバ１５０の間のデータ通信をエミュレートするように構成することができる。テストデータを分析して、モバイルアプリケーション１１２とモバイルアプリケーションサーバ１５０の間のネットワーク通信のサービス品質を導出することができる。サービス品質情報はさらに、潜在的なネットワーク通信問題を報告または検出するために使用することができ、モバイルアプリケーション１１２の性能を改善することができる。
【００２０】
一つの実装では、モバイルデバイス１１０は、ネットワーク環境において他のアプリケーションおよび／またはデバイスと通信することが可能なコンピューティングデバイスとして構成することができる。モバイルデバイス１１０は、携帯情報端末（ＰＤＡ）、セルフォン、およびスマートフォンなどの、しかしそれらに限定されない、モバイル、ハンドヘルド、および／またはポータブルコンピューティングデバイスとすることができる。モバイルデバイス１１０は、移動体通信用グローバルシステム（ＧＳＭ（登録商標））、符号分割多元接続（ＣＤＭＡ）、および時分割多元接続（ＴＤＭＡ）などの、しかしそれらに限定されない、様々なモバイル電気通信規格をサポートすることができる。モバイルデバイス１１０は、有線通信または無線通信をサポートするように構成された、タブレットコンピュータ、ラップトップコンピュータ、およびネットブックとすることもできる。例えば、モバイルデバイス１１０は、Ｔｅｌｃｏサービスプロバイダ１３０によって提供される３Ｇモバイル電気通信サービスを利用する、３Ｇ通信アダプタを有するように構成された、ラップトップコンピュータとすることができる。
【００２１】
一つの実装では、モバイルデバイス１１０は、モバイルＯＳとしても知られることがある、モバイルオペレーティングシステム１１１を有するように構成することができる。モバイルＯＳ  １１１は、モバイルデバイス１１０に機能を提供し、モバイルデバイス１１０のために通信規格をサポートする責任を負うことができる。モバイルＯＳ  １１１の例は、Ｓｙｍｂｉａｎ（登録商標）、ＲＩＭ  Ｂｌａｃｋｂｅｒｒｙ（登録商標）、Ａｐｐｌｅ  ｉＰｈｏｎｅ（登録商標）、Ｗｉｎｄｏｗｓ  Ｍｏｂｉｌｅ（登録商標）、およびＧｏｏｇｌｅ  Ａｎｄｒｏｉｄ（登録商標）を含むが、それらに限定されない。モバイルＯＳ  １１１は、モバイルデバイス１１０が基づくことができる多数のハードウェアコンポーネントに係わりなく、１つまたは複数のモバイルアプリケーション１１２とモバイル監視アプリケーション１１３とに共通のプログラミングプラットフォームも提供する。
【００２２】
一つの実装では、モバイルデバイス１１０は、１つまたは複数のモバイルアプリケーション１１２も含むことができる。モバイルアプリケーション１１２は、モバイルデバイス１１０のソフトウェア機能およびハードウェア機能を利用して、電話、電子メール、テキストメッセージング、ウェブブラウジングなどの、しかしそれらに限定されない、ネットワーキング機能、ならびに／またはオーディオ／ビデオ再生、マルチメディアキャプチャリングおよび編集、ゲームなどの、しかしそれらに限定されない、非ネットワーク機能を実行することができる。動作中、モバイルアプリケーション１１２は、モバイルネットワーク１２０を介してモバイルアプリケーションサーバ１５０と通信することができる。
【００２３】
一つの実装では、ネットワーク１２０は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネットなどのグローバルエリアネットワーク、ファイバチャネルファブリック、またはそのような相互接続の任意の組み合わせなどの、しかしそれらに限定されない、有線ネットワークとすることができる。ネットワーク１２０は、モバイルデバイスネットワーク（ＧＳＭ（登録商標）、ＣＤＭＡ、ＴＤＭＡ、その他）、ワイヤレスローカルエリアネットワーク（ＷＬＡＮ）、およびワイヤレスメトロポリタンエリアネットワーク（ＷＭＡＮ）などの、しかしそれらに限定されない、無線ネットワークとすることもできる。ＨＴＴＰ要求／応答、ワイヤレスアプリケーションプロトコル（ＷＡＰ）メッセージ、モバイル着信（ＭＴ）ショートメッセージサービス（ＳＭＳ）メッセージ、モバイル発信（ＭＯ）ＳＭＳメッセージ、または任意のタイプのネットワークメッセージなどの、ネットワーク通信は、ネットワーク１２０に接続されたデバイスの間でサポートすることができる。
【００２４】
一つの実装では、Ｔｅｌｃｏプロバイダ１３０は、地理的エリア内での電話およびデータ通信などの電気通信サービスを提供することができ、同時に、コモンキャリア、ワイヤレスキャリア、ＩＳＰ、および他のネットワーク事業者としてサービスすることができる。一つの実装では、モバイルデバイス１１０、モバイルアプリケーションサーバ１５０、およびＡＥＭＳ  １４０はすべて、それらがモバイルネットワーク１２０を介して互いに通信できるようにする、Ｔｅｌｃｏサービスプロバイダ１３０によって提供されるサービスに利用登録することができる。
【００２５】
一つの実装では、モバイルアプリケーションサーバ１５０は、モバイルネットワーク１２０に直接的に接続されることができ、またはＴｅｌｃｏサービスプロバイダ１３０を経由し、モバイルネットワーク１２０を介して間接的にアクセスされることができる。モバイルアプリケーションサーバ１５０は、特定のタイプのモバイルアプリケーション１１２に、電話、電子メール、またはテキストメッセージングサービスを提供することができる。モバイルアプリケーションサーバ１５０は、１つまたは複数のモバイルデバイス１１０にリアルタイムオーディオ／ビデオストリーミングサービスを提供する、ストリーミングサーバとしても動作することができる。モバイルアプリケーション１１２のサービス品質は、モバイルネットワーク１２０のスループット、モバイルアプリケーションサーバ１５０の性能、およびモバイルアプリケーション１１２を動作させるように構成されたモバイルデバイス１１０の性能に依存することができる。いくつかの状況では、Ｔｅｌｃｏサービスプロバイダ１３０は、モバイルネットワーク１２０のサービス品質を決定することができるが、複数のモバイルデバイス１１０によって実行される特定のモバイルアプリケーション１１２のサービス品質、または単一のモバイルデバイス１１０によって実行される複数のモバイルアプリケーション１１２のサービス品質を区別または評価できないことがある。
【００２６】
一実施形態では、モバイルネットワーク１２０を介してモバイルアプリケーションサーバ１５０と通信するモバイルアプリケーション１１２のサービス品質は、ＭＭＡ  １１３によって決定することができる。ＭＭＡ  １１３は、特定のモバイルデバイス１１０においてサポートされるモバイルアプリケーション１１２のタイプを決定すること、モバイルアプリケーション１１２の初期化および実行を検出すること、モバイルアプリケーション１１２のネットワーク使用パターンを監視すること、ならびに／またはサービス品質インジケータを確認するためにモバイルアプリケーション１１２をエミュレートすることなどの機能を実行するように構成することができる。ＭＭＡ  １１３についての詳細は、以下でさらに説明される。
【００２７】
一つの実装では、ＡＥＭＳ  １４０は、モバイルネットワーク１２０に接続されたサーバまたはルータとして構成することができ、１つまたは複数のモバイルデバイス１１０上で同時に動作する１つまたは複数のＭＭＡアプリケーション１１３と通信することができる。ＡＥＭＳ  １４０内のＱｏＳモジュール１４１は、ＭＭＡ  １１３から要求を受信し、テストデータをＭＭＡ  １１３に送信／から受信し、および／またはＭＭＡ  １１３をサポートする同じモバイルデバイス１１０上で動作するモバイルアプリケーション１１２のリアルタイムのサービス品質を決定することができる。サービス品質結果は、ステータス報告、機能増強、および／またはデバッグ目的で、報告することができる。ＡＥＭＳ  １４０およびＱｏＳモジュール１４１についての詳細は、以下でさらに説明される。
【００２８】
一つの実装では、ＡＥＭＳ  １４０内のコンピューティングプロセッサ１４２は、ＡＥＭＳ  １４０とさらにはＱｏＳ監視および報告を扱うＱｏＳモジュール１４１の全般的動作をサポートするために、プログラム可能命令を実行するように構成することができる。コンピューティングプロセッサ１４２は、モバイルネットワーク１２０に送信されるデータ、またはモバイルネットワーク１２０から受信されたデータを記憶するために、メモリ１４３を利用することができる。ネットワーク通信アダプタ（例えば、イーサネット（登録商標）アダプタ、ワイヤレスアダプタ、ファイバチャネルアダプタ、またはＧＳＭ（登録商標）ワイヤレスモジュール）などの追加のコンポーネントも、モバイルデバイス１１０およびＡＥＭＳ  １４０内において実装することができる。
【００２９】
一つの実装では、ＡＥＭＳ  １４０は、モバイルネットワーク１２０にアクセスする１つまたは複数のモバイルアプリケーション１１２に関して、モバイルネットワーク１２０の性能を詳細に分析するように構成することができる。代替として、ＡＥＭＳ  １４０は、モバイルアプリケーションサーバ１５０によってサポートされる１つまたは複数のモバイルアプリケーション１１２の性能を評価するために、モバイルアプリケーションサーバ１５０と統合することもできる。
【００３０】
図２Ａは、本開示の少なくともいくつかの実施形態による、モバイル監視アプリケーションとアプリケーションエクスペリエンス監視システムによって利用できる、ネットワーク通信プロトコルスタックを示している。図２Ａでは、モバイルデバイスプロトコルスタック２１０は、ネットワーク通信のために、モバイルアプリケーションまたはＭＭＡによって利用することができ、ネットワークルーティングプロトコルスタック２２０は、ネットワークルーティングシステムによって利用することができ、アプリケーションサーバプロトコルスタック２３０は、ネットワークアプリケーションサーバまたはＡＥＭＳによって実施することができる。３つのスタック内の各レイヤは、特定のネットワーク通信目的に役立てることができる。スタック内の異なるレイヤは、トップダウン順に表示されており、より低レベルのレイヤほど、ネットワーク通信の物理的実装に近く、より高レベルのレイヤほど、アプリケーション機能に近い。
【００３１】
説明のため、モバイルデバイスのモバイルＯＳ上で動作するモバイルアプリケーションは、ネットワーク通信メッセージをモバイルネットワークに送信し、モバイルネットワークから受信することができる。モバイルＯＳは、モバイルデバイスプロトコルスタック２１０に基づいて、ネットワーク通信メッセージを処理することができる。例えば、モバイルアプリケーションから発せられたメッセージは、ネットワークメッセージ２１５が送信される前に、モバイルデバイスプロトコルスタック２１０内のレイヤの各々によって符号化され、ネットワークメッセージ２１５をなすことができる。言い換えると、結果のネットワークメッセージ２１５は、レイヤの各々に関連する特定の情報を含むことができる。
【００３２】
構成された後、ネットワークメッセージ２１５は、１つまたは複数のデータパケットとしてルーティングすることができ、様々なネットワーク受信機、リピータ、ブリッジ、ルータを経由しながらモバイルネットワークを横断した後に、宛先に到着する。一般に、図１のＴｅｌｃｏサービスプロバイダ１３０によって実施されるネットワークルーティングアプリケーションなどのネットワークルーティングアプリケーションは、主として、データパケットをネットワーク送信元からネットワーク宛先に向かわせる責任を負うことができる。一つの実装では、ネットワークルーティングアプリケーションは、データパケットをルーティングする際に、ネットワークルーティングプロトコルスタック２２０の物理レイヤおよびアクセスレイヤに依存することができる。
【００３３】
ネットワークメッセージ２２５がサーバに到着した後、サーバのオペレーティングシステムは、アプリケーションサーバプロトコルスタック２３０に基づいてネットワークメッセージ２２５を復号し、モバイルアプリケーションから発せられたメッセージを抽出することができる。一つの実装では、アプリケーションサーバプロトコルスタック２３０のサーバアプリケーションレイヤと、モバイルデバイスプロトコルスタック２１０のモバイルアプリケーションレイヤは、モバイルアプリケーションとサーバアプリケーションが適切に通信できるように、互換性があるように構成することができる。
【００３４】
図２Ａに示されるように、Ｔｅｌｃｏサービスプロバイダは、様々なプロトコルスタックについての（例えば物理レイヤとアクセスレイヤのレベルに限定された）限られた理解をもつことがあるので、特定のモバイルアプリケーションのためのアプリケーションレイヤレベルにおけるネットワーク通信に関連するサービス品質を評価するのに必要な情報をもたないことがある。
【００３５】
図２Ｂは、本開示の少なくともいくつかの実施形態による、モバイルアプリケーションのサービス品質を決定するシナリオを示している。図２Ｂでは、ＭＭＡ  ２５２は、モバイルアプリケーション２５１とともに、モバイルデバイス２５０上で動作することができ、ＡＥＭＳ  ２６２は、モバイルネットワークと結合されるリモートサーバ２６０内で実施することができる。ＡＥＭＳ  ２６２は、ＭＭＡ  ２５２と通信するように構成することができる。ＭＭＡ  ２５２は、モバイルネットワークを利用するモバイルアプリケーション２５１を検出し、監視するように設計することができる。モバイルアプリケーション２５１は、モバイルアプリケーションサービスプロバイダ２６１と通信することができる。モバイルアプリケーション２５１とモバイルアプリケーションサービスプロバイダ２６１は、ＭＭＡ  ２５２および／またはＡＥＭＳ  ２６２の存在に気づいてもよく、または気づかなくてもよい。
【００３６】
一つの実装では、ひとたび起動されると、ＭＭＡ  ２５２は、バックグラウンドプロセスとして動作することができ、モバイルデバイス２５０上で動作する１つまたは複数のモバイルアプリケーションを継続的に検出し、監視することができる。ＭＭＡ  ２５２は、モバイルアプリケーション２５１の存在およびタイプ、モバイルアプリケーション２５１の初期化および実行、ならびに／またはネットワーク通信セッション中のモバイルアプリケーション２５１に関連するネットワーク使用パターンに関して、しかしそれらに限定されずに、モバイルアプリケーション２５１を監視することができる。例えば、ＭＭＡ  ２５２は、インストールされたモバイルアプリケーションを、それが動作中かどうかに係わらず、アプリケーション名またはマルチパーパスインターネットメールエクステンション（ＭＩＭＥ）タイプによって検出することができる。ＭＩＭＥ情報は、画像、音声、ビデオ、およびコンピュータプログラムなどの、しかしそれらに限定されない、ファイルタイプに対応することができる。ＭＭＡ  ２５２は、動作中のモバイルアプリケーションの名前について、モバイルデバイス２５０のモバイルＯＳに問い合わせることもできる。ＭＭＡ  ２５２は、モバイルアプリケーション２５１に関連するネットワーク使用パターン（例えば、モバイルアプリケーションによってダウンロードされているストリーミングデータが大量であることを示すネットワーク使用パターン）に基づいて、モバイルアプリケーション２５１のタイプ（例えばビデオストリーミングアプリケーション）を決定することができる。
【００３７】
一つの実装では、ＭＭＡ  ２５２および／またはＡＥＭＳ  ２６２によって監視できるモバイルアプリケーション２５１のタイプは、ＶｏＩＰ（例えばＳｋｙｐｅ（登録商標））、オーディオ／ビデオストリーミング、ＭＭＳ、ＧＰＳナビゲーション、ビデオ会議、ビデオアップローディング、電子メール受信、電子メール添付ファイル送信および／または受信、音楽ダウンロード／アップロード、オンラインゲーム、ならびにウェブブラウジングを含むが、それらに限定されない。これらのタイプのモバイルアプリケーションの場合、ネットワーク通信のサービス品質は、モバイルアプリケーションの機能およびユーザエクスペリエンスに大きな影響を及ぼすことがある。したがって、これらのモバイルアプリケーションを監視し、ネットワーク使用パターンを検出することによって、ＭＭＡ  ２５２は、類似のネットワーク使用パターンを利用して、これらのモバイルアプリケーションによって経験されるリアルタイムのサービス品質をエミュレートすることができる。さらに、ＭＭＡ  ２５２は、認識またはサポートされるすべての動作中のモバイルアプリケーションに対する監視機能およびエミュレーション機能を同時に実行することができ、個別的および／または総合的なサービス品質分析を提供することができる。
【００３８】
一つの実装では、モバイルアプリケーション２５１に関してＭＭＡ  ２５２によって検出されたネットワーク使用パターンは、モバイルアプリケーション２５１がアプリケーションデータ２４１をリモートのモバイルアプリケーションサービスプロバイダ２６１に送信していることを示すことができる。そのようなネットワーク使用パターンをエミュレートするため、ＭＭＡ  ２５２は、モバイルアプリケーション２５１によるアプリケーションデータ２４１の送信と同時に、モバイルアプリケーション２５１によって送信されるアプリケーションデータ２４１のタイプと類似することもまたは類似しないこともある、事前定義された１組のテストデータ２４６を、ＡＥＭＳ  ２６２に送信することができる。事前定義された１組のテストデータ２４６を受信すると、ＡＥＭＳ  ２６２は、ネットワークスループットの他、信号対雑音比、ビット誤り率、待ち時間、およびパケット損失率などの伝送品質も測定するために、受信データを分析することができ、アプリケーションデータ２４１を送信中のモバイルアプリケーション２５１のサービス品質を反映するサービス品質を決定することができる。
【００３９】
一つの実装では、ＭＭＡ  ２５２は、モバイルアプリケーション２５１がリモートのモバイルアプリケーションサービスプロバイダ２６１からアプリケーションデータ２４２を受信／ダウンロードしていることを示す、ネットワーク使用パターンを検出することができる。そのようなネットワーク使用パターンをエミュレートするため、ＭＭＡ  ２５２は最初に、事前定義された１組のテストデータを返送するようＡＥＭＳ  ２６２に要求するネットワークメッセージを、ＡＥＭＳ  ２６２に送信することができる。ネットワークメッセージは、ＭＭＡ  ２５２が監視しているモバイルアプリケーション２５１の名前またはタイプ、ＭＭＡ  ２５２によって検出されたネットワーク使用パターンのタイプの他、データ交換のために使用されるネットワーク伝送メカニズムを示すことができる。ネットワーク伝送メカニズムは、モバイルアプリケーション２５１がネットワーク通信のためにどのタイプのハードウェアおよび／またはソフトウェアを使用したかを示すことができる。この情報に基づいて、ＡＥＭＳ  ２６２は、アプリケーションデータダウンローディング２４２をエミュレートするのに適した事前定義された１組のテストデータを選択し、モバイルアプリケーションサービスプロバイダ２６１が同じモバイルネットワークを介してアプリケーションデータ２４２を送信するのと同じネットワーク伝送メカニズムを使用して、事前定義された１組のテストデータを送信することができる。
【００４０】
一つの実装では、ＡＥＭＳ  ２６２から事前定義された１組の監視データを受信すると、ＭＭＡ  ２５２は、上記のモバイルネットワーク通信中に導入されることがある誤りを検出するために、受信テストデータを評価することができる。ＭＭＡ  ２５２は、受信テストデータの内容についての知識を有する場合、受信テストデータを分析して、ビット誤り率、パケット損失率、または信号対雑音比を決定することが可能なことがある。例えば、２４２を介して送信されるアプリケーションデータがビデオストリームである場合、２４７を介して送信されるテストデータは、認識可能なテストビデオストリームとすることができ、ＭＭＡ  ２５２は、モバイルアプリケーション２５１によっておそらく経験され得るジッタまたは誤りを検出するために、テストビデオストリームを処理することができる。テストデータおよび検出された誤りに基づいて、これらのネットワーク性能測定値から、サービス品質値を導出することができる。その後、サービス品質値は、さらなる目的のために、ＡＥＭＳ  ２６２に送信することができる。
【００４１】
一つの実装では、複数のタイプの事前定義されたテストデータをＭＭＡ  ２５２に送信することができ、サービス品質インジケータを決定する際に、異なる監視アルゴリズムを適用して、テストデータを編集することができる。異なるモバイルアプリケーションは、異なる復号アルゴリズムまたはユーザ要件を有することがあるので、サービス品質インジケータの計算は、これらのモバイルアプリケーションに応じて異なることがある。加えて、ＭＭＡ  ２５２は、モバイルアプリケーションによく似た復号アルゴリズムまたは処理アルゴリズムを組み込むことによって、モバイルアプリケーション２５１をエミュレートすることもできる。そのような手法は、監視中およびエミュレーション中に、より多くの処理能力をモバイルデバイス２５０に要求することがある。
【００４２】
一つの実装では、ＭＭＡ  ２５２は、サービス品質分析目的で送信されたテストデータを記憶するために、１つまたは複数の監視キュー２５３を設定することができる。１つの監視キューは、特定のモバイルアプリケーションまたは特定のモバイルデバイスを監視するために構成することができる。異なるモバイルアプリケーションのための監視キュー２５３は、サービス品質の評価中に、まとめて分析することができる。例えば、あるモバイルアプリケーションが、サービス品質の低いネットワークサービスを経験している場合、ＭＭＡ  ２５２は、そのような問題がアプリケーションに特有であるのか、それともモバイルデバイスに特有であるのかを判定するために、他のモバイルアプリケーションの監視キュー２５３をチェックすることができる。代替として、ＡＥＭＳ  ２６２は、データ伝送およびサービス品質の評価のために、その環境内に監視キュー２５３を維持することができる。それぞれのモバイルデバイス２５０上で動作する１つまたは複数のＭＭＡ  ２５２と通信する場合、ＡＥＭＳ  ２６２は、ＭＭＡ  ２５２の各々のための監視キューを開始することができ、それによって、各ＭＭＡ  ２５２が独立したモバイルアプリケーションのエミュレーションを行えるようにする。
【００４３】
一つの実装では、特定のモバイルアプリケーションが監視される場合、ＭＭＡ  ２５２および／またはＡＥＭＳ  ２６２は、迅速なサービス品質計算および決定のためにモバイルアプリケーションに特別に適合させたユーティリティ関数（utility function）を実施することができる。ユーティリティ関数は、入力パラメータとしてネットワーク性能測定値を受け入れ、サービス品質出力としてサービス品質値を生成するように実施することができる。例えば、ユーティリティ関数は、帯域幅、パケット損失率、遅延、ジッタ、およびビット誤り率などの、しかしそれらに限定されない、入力パラメータを受け入れることができる。ユーティリティ関数の出力は、上記の入力パラメータによって明示されるネットワーク制約下で、モバイルアプリケーションがどれだけ良好に機能するかを示す、サービス品質インジケータとすることができる。
【００４４】
一つの実装では、モバイルアプリケーション２５１がモバイルデバイス２５０上で使用されなくなった場合、ＭＭＡ  ２５２は、それに応じて監視動作およびエミュレート動作を停止することができる。さらに、ＡＥＭＳ  ２６２サイドでのサービス品質の監視および分析を停止させるために、ネットワークメッセージをＡＥＭＳ  ２６２に送信することができる。代替として、ＭＭＡ  ２５２は、モバイルデバイス上に新たにインストールされたモバイルアプリケーションをサポートするために、ときどき更新されることができる。同様に、上記の手法は、ＡＥＭＳ  ２６２によって、モバイルアプリケーション２５１との通信中のモバイルアプリケーションサービスプロバイダ２６１をエミュレートするように適合させることもできる。ＡＥＭＳ  ２６２によって決定されるサービス品質は、同じく、モバイルアプリケーションサービスプロバイダ２６１によって経験されるサービス品質の正確なインジケータとすることができる。
【００４５】
したがって、ＭＭＡ  ２５２およびＡＥＭＳ  ２６２は、アプリケーションレイヤレベルにおいてモバイルアプリケーション２５１のネットワーク使用パターンをエミュレートすることができ、モバイルアプリケーション２５１およびそれぞれのモバイルアプリケーションサービスプロバイダ２６１と直接的に対話することなく、モバイルアプリケーション２５１のリアルタイムのサービス品質を決定できるようにすることができる。さらに、ＭＭＡ  ２５２は、モバイルアプリケーション２５１と同じネットワーク伝送メカニズムを利用することができる。例えば、モバイルアプリケーション２５１がＷｉＦｉアダプタを介してモバイルネットワークにアクセスする場合、ＭＭＡ  ２５２は、エミュレーション中に、同じＷｉＦｉアダプタにアクセスすることができる。そのような手法は、モバイルアプリケーション２５１によって送信されているリアルタイムのアプリケーションデータとよく類似した方法で、同時にテストデータを送信することができるので、有利である。このように、計算されたサービス品質値は、モバイルアプリケーション２５１によって経験されるモバイルネットワーク通信の品質を忠実に反映することができる。
【００４６】
図３は、本開示の少なくともいくつかの実施形態による、モバイル監視アプリケーションによってモバイルアプリケーションサービス品質を決定するための例示的なプロセス３０１のフロー図を示している。プロセス３０１は、ハードウェア（例えば、専用回路、専用ハードウェアロジック、プログラム可能ハードウェアロジックなど）、（処理デバイス上で実行できる命令などの）ソフトウェア、ファームウェア、またはそれらの組み合わせを含むことができる、処理ロジックによって実行することができる。一実施形態では、プロセス３０１のための機械実行可能命令は、メモリ内に記憶すること、プロセッサによって実行すること、および／または図１のモバイルデバイス１１０内で実施することができる。
【００４７】
プロセス３０１は、ブロック３１０「モバイルデバイス上にインストールされたモバイルアプリケーションを識別する」において開始することができる。ブロック３１０には、ブロック３２０「モバイルデバイス上で起動されているモバイルアプリケーションを検出する」が続くことができる。ブロック３２０には、ブロック３３０「モバイルネットワークを介して通信するモバイルアプリケーションのネットワーク使用パターンをアプリケーションレイヤレベルにおいて監視する」が続くことができる。ブロック３３０には、ブロック３４０「モバイルネットワークを介してテストデータを送信または受信することによって、モバイルアプリケーションのネットワーク使用パターンをエミュレートする」が続くことができる。ブロック３４０には、ブロック３５０「送信または受信されているテストデータを分析する」が続くことができる。ブロック３５０には、ブロック３６０「モバイルアプリケーションのサービス品質を決定する」が続くことができる。ブロックは逐次順で示されているが、これらのブロックは、並列で、および／または本明細書で説明された順序とは異なる順序で実行することもできる。また、様々なブロックは、所望の実装に基づいて、組み合わせてより少数のブロックにすること、さらなるブロックに分割すること、および／または除去することができる。
【００４８】
ブロック３１０において、ＭＭＡは、同じモバイルデバイス上にインストールされたモバイルアプリケーションを監視するために、モバイルデバイス上で動作していることができる。ＭＭＡは最初に、アプリケーション名、ファイルタイプ、またはネットワーク使用パターンなどに基づいて、モバイルデバイス上にインストールされたまたは動作しているモバイルアプリケーションを識別することができる。加えて、ＭＭＡは、新しいモバイルアプリケーションがインストールされているかどうか、または既存のモバイルアプリケーションがアップグレードもしくは除去されたかどうかを検出するために、モバイルデバイスのモバイルＯＳを継続的に監視することができる。ブロック３２０において、モバイルデバイス上でモバイルアプリケーションは起動されることができる。起動は、ユーザによって手動で、またはモバイルデバイスのモバイルＯＳによって自動的に実行することができる。一つの実装では、ＭＭＡは、実行中プロセスのリストをモバイルデバイスのオペレーティングシステムから継続的に引き出し、取り出すことによって、起動されたモバイルアプリケーションを検出することができる。ＭＭＡは、起動のインディケーションを求めて、あるモバイルアプリケーションのログファイルを継続的に引き出すこともできる。さらに、モバイルアプリケーションは、トリガを用いて実装することができ、その実行中ステータスについてＭＭＡに通知するために、ＭＭＡにメッセージを送信することができる。ＭＭＡが起動されているモバイルアプリケーションを検出すると、プロセス３０１は、ブロック３３０に進む。
【００４９】
ブロック３３０において、ＭＭＡは、モバイルネットワークを介して通信するモバイルアプリケーションのネットワーク使用パターンをアプリケーションレイヤレベルにおいて監視することができる。ネットワーク使用パターンは、モバイルアプリケーションがモバイルネットワークを介してアプリケーションデータを送信しているか、それとも受信しているかを示す。ネットワーク使用パターンは、データ通信に含まれるアプリケーションデータのタイプおよび量も示すことができる。一つの実装では、ＭＭＡは、モバイルアプリケーションがネットワーク通信のために使用するポートをリッスンし、評価のために、これらのポートを通過したアプリケーションデータをサンプリングまたはコピーすることができる。代替として、ＭＭＡは、そのような情報をモバイルデバイスのモバイルＯＳに要求することができる。
【００５０】
ブロック３４０において、ブロック３３０において監視および検出されたネットワーク使用パターンに基づいて、ＭＭＡは、モバイルアプリケーションと類似のネットワーク使用パターンを使用し、同じネットワーク伝送メカニズムを用いて、モバイルネットワークを介してテストデータを送信または受信することによって、モバイルアプリケーションをエミュレートすることができる。例えば、モバイルアプリケーションが特定のタイプのアプリケーションデータのダウンローディングを実行しているとＭＭＡが決定した場合、ＭＭＡは、そのタイプのアプリケーションデータに類似した事前定義された１組のテストデータを選択し、そのテストデータに対して類似のネットワークオペレーションを行う（このケースでは、事前定義されたテストデータをＡＥＭＳに要求し、同じまたは類似のネットワーク伝送メカニズムを使用して、ＡＥＭＳからのテストデータのダウンローディングを実行する）ことができる。代替として、モバイルアプリケーションがモバイルネットワークを介してアプリケーションデータをアップロードしていることをＭＭＡが検出した場合、ＭＭＡは、モバイルネットワークを介してＡＥＭＳと通信し、類似のタイプのテストデータをアップロードすることによって、ネットワーク使用パターンをエミュレートすることができる。
【００５１】
一つの実装では、ＭＭＡによって送信または受信されるテストデータは、モバイルアプリケーションによって要求されるリソースに加えて、さらなるネットワークリソースおよびモバイルデバイスリソースを必要とすることがあり、そのことが、ひいては、モバイルアプリケーションによって経験されるサービス品質に影響を及ぼすことがある。モバイルアプリケーションへの影響度を制限するため、ＭＭＡおよびＡＥＭＳは、データ通信のために、完全な１組のテストデータの代わりに、テストデータのサブサンプルを使用することができる。例えば、ＭＥＥＧ復号の場合、モバイルアプリケーションは、高品質ビデオを表示するために、大量のデータストリームを要求することがある。この場合、エミュレーション中に等量のテストデータを送信する代わりに、ＭＭＡは、利用可能な帯域幅の一部（例えば１％）を占有できるテストデータのサブサンプルを要求し、テストデータのサブサンプルの送信に基づいたサービス品質決定を行うことができる。
【００５２】
ブロック３５０において、ＭＭＡおよび／またはＡＥＭＳは、送信テストデータを分析することができる。ＭＭＡは、ＡＥＭＳから送信され、ＭＭＡによって受信されたテストデータに対して、データ分析を実行することができる。同様に、ＡＥＭＳは、ＭＭＡから送信され、ＡＥＭＳによって受信されたテストデータを分析することができる。一実施形態では、ＡＥＭＳは、最初にＡＥＭＳからＭＭＡに送信され、その後、ＭＭＡからＡＥＭＳに返送されたデータを分析することができる。データ分析を実行することによって、データ伝送ビットレート、信号対雑音比、ビット誤り率、待ち時間、モバイルネットワークの異なるネットワークセグメント（例えば、アクセスセグメント、メトロセグメント、およびコアセグメント）にわたってのパケット損失率などのネットワーク性能測定値を決定することができる。これらのネットワーク性能測定値は、アプリケーションレイヤレベルから収集され、分析されるので、モバイルアプリケーションの観点から、ネットワーク通信経路のセグメントまたは部分ではなく、完全なネットワーク通信経路のサービス品質の良好な概観を提供するために使用することができる。
【００５３】
一実施形態では、モバイルアプリケーションのエミュレーションのために使用されるテストデータが、帯域幅使用を低減するためにサンプリングされる場合、ＭＭＡまたはＡＥＭＳは、乗算によってネットワーク性能測定値を「復元」することができる。送信されたテストデータは、サンプルレート（例えば１％）に基づいて減らされているので、テストデータの１組のサブサンプルにおいて検出された値の実際の数値も、同じレートによって比例的に減らされていることがある。したがって、サンプリングされたテストデータから収集されたネットワーク性能測定値の一部または全部に、サンプルレートに反比例するレートを乗じることによって、「復元された」値を使用して、完全な１組のテストデータから収集された場合の性能測定値を推定することができる。例えば、サンプルレートが１％である場合、完全な１組のテストデータにおける誤りの数は、サンプリングされたデータの組から検出された不良数にレートの逆数（１／サンプルレート、すなわち、１／１％＝１００）を乗じることによって、推定することができる。この例では、サンプリングされたテストデータを用いてエミュレートしている最中に、誤りが１分当たりのグリッチ（glitches）で測定される場合、モバイルアプリケーションは、テストデータの１組のサブサンプルにおいて検出された１分当たりのグリッチ全てについて、完全な１組のテストデータにおいては、１分当たり１×１００＝１００グリッチを経験することがある。
【００５４】
一つの実装では、テストデータの特定のパターンを、ＡＥＭＳからＭＭＡに送信することができる。ＭＭＡによって受信されるテストデータの特定のパターンは、ネットワーク伝送問題またはネットワーク問題のせいで、元のテストデータのパターンとは異なることがある。その場合、受信テストデータは、データが所望の順序で送信されたことを保証するために、（例えば、再送を伴うＴＣＰを使用する）保証された配送チャネル上でＡＥＭＳに返送することができる。後で送信されるテストデータは、ＭＭＡによって最初に受信されたテストデータのパターンを維持しており、元のテストデータのパターンと比較するために使用することができる。さらに、異なるネットワーク問題は異なる誤りパターンを生成し得るので、既存のまたは潜在的なネットワーク問題を検出するために、受信パターンを潜在的な誤りパターンと相関させることができる。
【００５５】
ブロック３４０において送信され、ブロック３５０において分析されたテストデータに基づいて、ブロック３６０において、ＭＭＡまたはＡＥＭＳによって、サービス品質インジケータを決定することができる。サービス品質は、ＭＭＡとＡＥＭＳの間のネットワーク通信に基づいて生成されたものではあるが、モバイルアプリケーションによって経験されるサービス品質を反映するために使用することができる。一実施形態では、サービス品質は、モバイルアプリケーションに関連するユーティリティ関数を使用して計算することができる。ブロック３５０において収集されたネットワーク性能測定値は、ユーティリティ関数の入力パラメータとして役立てることができ、ユーティリティ関数から出力された結果は、特定のモバイルアプリケーションのサービス品質と見なされ、さらなる処理のために、ＡＥＭＳに配送することができる。
【００５６】
一実施形態では、１つまたは複数のＭＭＡから収集されたサービス品質結果は、ＡＥＭＳに送信し、データベース内に記憶することができる。収集された現在および履歴のサービス品質データは、ネットワーク性能報告を生成するために、さらに分析することができる。加えて、サービス品質データに基づいて、正確な履歴サービス品質の報告の支援を受けて、モバイルネットワークにアクセスするためのＴｅｌｃｏサービスプロバイダによって、競争力のある価格モデルを導出することができる。
【００５７】
図４は、本開示の少なくともいくつかの実施形態による、アプリケーションエクスペリエンス監視システムによってモバイルアプリケーションサービス品質を受信するための例示的なプロセス４０１のフロー図を示している。プロセス４０１は、ハードウェア（例えば、専用回路、専用ハードウェアロジック、プログラム可能ハードウェアロジックなど）、（処理デバイス上で実行できる命令などの）ソフトウェア、ファームウェア、またはそれらの組み合わせを含むことができる、処理ロジックによって実行することができる。一実施形態では、プロセス４０１のための機械実行可能命令は、図１のメモリ１４３内に記憶すること、図１のプロセッサ１４２によって実行すること、および／または図１のＡＥＭＳ  １４０内で実施することができる。
【００５８】
プロセス４０１は、ブロック４１０「モバイルネットワークと結合されたモバイルデバイス上で動作するモバイルアプリケーションをエミュレートするための要求をモバイルデバイスから受信する」において開始することができる。ブロック４１０には、判定ブロック４２０「要求に基づいて、モバイルアプリケーションがアプリケーションデータをモバイルネットワークに送信しているか、それともモバイルネットワークから受信しているかを判定する」が続くことができる。ブロック４２０の判定に基づいて、ブロック４２０には、ブロック４３０「第１の１組のテストデータをモバイルデバイスに送信する」が続くことができる。ブロック４３０には、ブロック４５０「第１の１組のテストデータの前記送信に基づいたモバイルアプリケーションの第１のサービス品質をモバイルデバイスから受信する」が続くことができる。同様に、ブロック４２０の判定に基づいて、ブロック４２０には、ブロック４４０「第２の１組のテストデータをモバイルデバイスから受信する」が続くことができる。ブロック４４０には、ブロック４６０「第２の１組のテストデータの前記受信に基づいたモバイルアプリケーションの第２のサービス品質をモバイルデバイスから受信する」が続くことができる。ブロック４５０またはブロック４６０のどちらにも、ブロック４７０「複数のモバイルデバイスから、モバイルデバイスの各々の上で動作するモバイルアプリケーションの複数のサービス品質を受信する」が続くことができる。ブロック４７０には、ブロック４８０「複数のサービス品質に基づいて、複数のモバイルデバイス上で動作するモバイルアプリケーションの集約されたサービス品質を決定する」が続くことができる。ブロックは逐次順で示されているが、これらのブロックは、並列で、および／または本明細書で説明された順序とは異なる順序で実行することもできる。また、様々なブロックは、所望の実施に基づいて、組み合わせてより少数のブロックにすること、さらなるブロックに分割すること、および／または除去することができる。
【００５９】
ブロック４１０において、ＡＥＭＳは、モバイルネットワークと結合されたモバイルデバイス上で動作するＭＭＡから要求を受信することができる。要求は、モバイルアプリケーションが経験している可能性のあるサービス品質を決定するために、実際のネットワーク負荷状態の下で動作しているモバイルアプリケーションのエミュレーションを開始するようにＭＭＡおよびＡＥＭＳをトリガすることができる。ブロック４２０において、ブロック４１０において受信された要求に基づいて、ＡＥＭＳは、モバイルアプリケーションがモバイルネットワークを介してアプリケーションデータを送信しているか、それとも受信しているかを判定することができる。ＡＥＭＳおよび／またはＭＭＡは、データ交換オペレーション中にモバイルアプリケーションによって利用されるネットワーク伝送メカニズムのタイプも決定することができる。モバイルアプリケーションがアプリケーションデータを受信していると判定された場合、プロセス４０１は、ブロック４３０に進むことができ、ブロック４３０において、ＡＥＭＳおよびＭＭＡは、ＡＥＭＳからモバイルデバイスに第１の１組のテストデータを送信することによって、モバイルアプリケーションのデータ受信動作をエミュレートすることができる。テストデータの送信は、モバイルアプリケーションによって使用されるのと同じネットワーク伝送メカニズムを利用して、モバイルアプリケーションがアプリケーションデータを受信するのと同時に実行することができる。
【００６０】
一つの実装では、ブロック４３０において、第１の１組のテストデータは、特定のタイプのモバイルアプリケーションに適合させた事前定義された１組のテストデータとすることができる。代替として、モバイルアプリケーションの受信プロセスをエミュレートするために、量が削減されたテストデータまたはサブサンプリングされた１組のデータを使用することができる。ＡＥＭＳが第１の１組のテストデータを転送し終わると、ＭＭＡは、受信した第１の１組のテストデータから何らかの性能測定値を収集することができる。ＭＭＡがテストデータについての高度な知識を有する場合、ＭＭＡは、ビデオストリーム上での１分当たりのグリッチの数などの測定値を決定するために、追加的な高レベルのサービス品質分析を実行することができる。さらに、ＡＥＭＳがテストデータの１組のサブサンプルを送信した場合、ＭＭＡは、テストデータの１組のサブサンプルから収集されたネットワーク性能測定値にサンプルレートの逆数を乗じることができる。その乗算結果をさらに使用して、サービス品質値を決定することができる。
【００６１】
言い換えると、サービス品質値は、ＡＥＭＳからの第１の１組のテストデータの上記の受信に基づいて、ＭＭＡによって生成することができる。ブロック４５０において、ＭＭＡは、生成されたサービス品質値をＡＥＭＳに送信することができる。したがって、その観点からは、ＡＥＭＳは、モバイルデバイスへの第１の１組のテストデータの上記の送信に基づいたモバイルアプリケーションの第１のサービス品質を、モバイルデバイスから受信することができる。そのようなサービス品質値は、モバイルネットワークを介してアプリケーションデータを受信している最中に経験されるモバイルアプリケーションのサービス品質を反映するために使用することができる。
【００６２】
一つの実装では、ブロック４２０における判定が、モバイルアプリケーションがモバイルネットワークにアプリケーションデータを送信していることを示す場合、プロセス４０１は、ブロック４４０に進むことができ、ブロック４４０において、ＭＭＡは、アプリケーションデータを送信中のモバイルアプリケーションと同じネットワーク伝送メカニズムを利用して、モバイルデバイスからＡＥＭＳに第２の１組のテストデータを送信することによって、モバイルアプリケーションをエミュレートすることができる。したがって、ブロック４４０において、ＡＥＭＳは、モバイルデバイスから第２の１組のテストデータを受信することができる。第２の１組のテストデータの送信に基づいて、ＭＭＡは、サービス品質値を決定することができ、そのようなサービス品質値をＡＥＭＳに送信することができる。したがって、ブロック４６０において、ＡＥＭＳは、第２の１組のテストデータの上記の受信に基づいたモバイルアプリケーションの第２のサービス品質を、モバイルデバイスから受信することができる。
【００６３】
一つの実装では、ブロック４７０において、ＡＥＭＳは、異なるモバイルデバイスから、特定のモバイルアプリケーションに関する複数のサービス品質を受信することができ、各サービス品質は、対応するモバイルデバイス上で動作する特定のモバイルアプリケーションを監視およびエミュレートするＭＭＡによって生成される。したがって、異なるモバイルデバイスから収集された複数のサービス品質値を、特定のモバイルアプリケーションに関して有意味に分析することができる。ブロック４８０において、複数のサービス品質値に基づいて、これらのモバイルデバイス上で同時に動作することができる、または一定の期間内に実行された特定のモバイルアプリケーションの集約されたサービス品質値を決定することができる。例えば、モバイルアプリケーションが、他のモバイルデバイスでは通常のまたは高いサービス品質を有するのに、モバイルデバイスのいくつかでは低いサービス品質値を受信している場合、潜在的なネットワーク問題は、モバイルデバイスまたはモバイルネットワークに関するものである可能性がある。対照的に、すべてのモバイルデバイスが、特定のモバイルアプリケーションに関して低いサービス品質を経験している場合、問題は、モバイルアプリケーションサーバまたはＡＥＭＳに関するものである可能性がある。したがって、集約されたサービス品質値を評価することによって、ＡＥＭＳおよびＭＭＡは、個々のサービス品質値の評価による方法では容易に検出できないネットワーク問題や、アプリケーションレイヤレベルのものではないサービス品質評価を識別できることがある。
【００６４】
システムの側面でのハードウェアの実装形態とソフトウェアの実装形態との間には、ほとんど相違が残されていない。ハードウェアまたはソフトウェアの使用は、一般に（いつもそうではないが、ある状況ではハードウェアとソフトウェアの間の選択が重要になり得るという点で）コスト対効果のトレードオフを表す設計上の選択である。本明細書に記載された、プロセスおよび／またはシステムおよび／または他の技術をもたらすことができる様々な達成手段があり（例えば、ハードウェア、ソフトウェア、および／またはファームウェア）、好ましい達成手段は、プロセスおよび／またはシステムおよび／または他の技術が導入される状況によって異なる。例えば、実装者が速度と正確性が最も重要であると決定すると、実装者は主にハードウェアおよび／またはファームウェアの構成を選択することができる。フレキシビリティが最も重要なら、実装者は主にソフトウェアの実装形態を選択することができる。または、さらに別の代替案として、実装者は、ハードウェア、ソフトウェア、および／またはファームウェアの何らかの組み合わせを選択することができる。
【００６５】
前述の詳細な説明では、ブロック図、フローチャート、および／または例の使用によって、装置および／またはプロセスの様々な実施形態を説明してきた。そのようなブロック図、フローチャート、および／または例が１つまたは複数の機能および／または動作を含む限りにおいて、そのようなブロック図、フローチャート、または例の中のそれぞれの機能および／または動作は、広範囲のハードウェア、ソフトウェア、ファームウェア、または実質上それらのすべての組み合わせにより、個別におよび／または集合的に実装可能であることが、当業者には理解されるであろう。ある実施形態では、本明細書に記載された主題のいくつかの部分は、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタルシグナルプロセッサ（ＤＳＰ）、ＡＲＭプロセッサ、ＣＰＵ、または他の集積化方式によって実装することができる。しかし、本明細書で開示された実施形態のいくつかの態様が、全体においてまたは一部において、１つまたは複数のコンピュータ上で動作する１つまたは複数のコンピュータプログラムとして（例えば、１つまたは複数のコンピュータシステム上で動作する１つまたは複数のプログラムとして）、１つまたは複数のプロセッサ上で動作する１つまたは複数のプログラムとして（例えば、１つまたは複数のマイクロプロセッサ上で動作する１つまたは複数のプログラムとして）、ファームウェアとして、あるいは実質上それらの任意の組み合わせとして、等価に集積回路に実装することができることを、当業者は認識するであろうし、電気回路の設計ならびに／またはソフトウェアおよび／もしくはファームウェアのコーディングが、本開示に照らして十分当業者の技能の範囲内であることを、当業者は認識するであろう。さらに、本明細書に記載された主題のメカニズムを様々な形式のプログラム製品として配布することができることを、当業者は理解するであろうし、本明細書に記載された主題の例示的な実施形態が、実際に配布を実行するために使用される信号伝達媒体の特定のタイプにかかわらず適用されることを、当業者は理解するであろう。信号伝達媒体の例には、フロッピー（登録商標）ディスク、ハードディスクドライブ、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、デジタルテープ、コンピュータメモリ、フラッシュメモリ、などの記録可能なタイプの媒体、ならびに、デジタル通信媒体および／またはアナログ通信媒体（例えば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど）の通信タイプの媒体が含まれるが、それらには限定されない。
【００６６】
本明細書で説明したやり方で装置および／またはプロセスを記載し、その後そのように記載された装置および／またはプロセスを、データ処理システムに統合するためにエンジニアリング方式を使用することは、当技術分野で一般的であることを当業者は認識するであろう。すなわち、本明細書に記載された装置および／またはプロセスの少なくとも一部を、妥当な数の実験によってデータ処理システムに統合することができる。通常のデータ処理システムは、一般に、システムユニットハウジング、ビデオディスプレイ装置、揮発性メモリおよび不揮発性メモリなどのメモリ、マイクロプロセッサおよびデジタル信号プロセッサなどのプロセッサ、オペレーティングシステムなどの計算実体、ドライバ、グラフィカルユーザインタフェース、およびアプリケーションプログラムのうちの１つもしくは複数、タッチパッドもしくはスクリーンなどの１つもしくは複数の相互作用装置、ならびに／またはフィードバックループおよびコントロールモータを含むコントロールシステム（例えば、位置検知用および／もしくは速度検知用フィードバック、コンポーネントの移動用および／もしくは数量の調整用コントロールモータ）を含むことを、当業者は理解するであろう。通常のデータ処理システムは、データコンピューティング／通信システムおよび／またはネットワークコンピューティング／通信システムの中に通常見られるコンポーネントなどの、市販の適切なコンポーネントを利用して実装することができる。
【００６７】
本明細書に記載された主題は、様々なコンポーネントをしばしば例示しており、これらのコンポーネントは、他の様々なコンポーネントに包含されるか、または他の様々なコンポーネントに接続される。そのように図示されたアーキテクチャは、単に例示にすぎず、実際には、同じ機能を実現する多くの他のアーキテクチャが実装可能であることが理解されよう。概念的な意味で、同じ機能を実現するコンポーネントの任意の構成は、所望の機能が実現されるように効果的に「関連付け」される。したがって、特定の機能を実現するために組み合わされた、本明細書における任意の２つのコンポーネントは、アーキテクチャまたは中間のコンポーネントにかかわらず、所望の機能が実現されるように、お互いに「関連付け」されていると見ることができる。同様に、そのように関連付けされた任意の２つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に接続」または「動作可能に結合」されていると見なすこともでき、そのように関連付け可能な任意の２つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に結合できる」と見なすこともできる。動作可能に結合できる場合の具体例には、物理的にかみ合わせ可能な、および／もしくは物理的に相互作用するコンポーネント、ならびに／またはワイヤレスに相互作用可能な、および／もしくはワイヤレスに相互作用するコンポーネント、ならびに／または論理的に相互作用する、および／もしくは論理的に相互作用可能なコンポーネントが含まれるが、それらに限定されない。
【００６８】
本明細書における実質的にすべての複数形および／または単数形の用語の使用に対して、当業者は、状況および／または用途に適切なように、複数形から単数形に、および／または単数形から複数形に変換することができる。様々な単数形／複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
【００６９】
通常、本明細書において、特に添付の特許請求の範囲（例えば、添付の特許請求の範囲の本体部）において使用される用語は、全体を通じて「オープンな（ｏｐｅｎ）」用語として意図されていることが、当業者には理解されよう（例えば、用語「含む（ｉｎｃｌｕｄｉｎｇ）」は、「含むがそれに限定されない（ｉｎｃｌｕｄｉｎｇ  ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきであり、用語「有する（ｈａｖｉｎｇ）」は、「少なくとも有する（ｈａｖｉｎｇ  ａｔ  ｌｅａｓｔ）」と解釈されるべきであり、用語「含む（ｉｎｃｌｕｄｅｓ）」は、「含むがそれに限定されない（ｉｎｃｌｕｄｅｓ  ｂｕｔ  ｉｓ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきである、など）。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。例えば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも１つの（ａｔ  ｌｅａｓｔ  ｏｎｅ）」および「１つまたは複数の（ｏｎｅ  ｏｒ  ｍｏｒｅ）」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「１つまたは複数の」または「少なくとも１つの」および「ａ」または「ａｎ」などの不定冠詞を含む場合であっても、不定冠詞「ａ」または「ａｎ」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に１つのそのような記載を含む発明に限定する、ということを示唆していると解釈されるべきではない（例えば、「ａ」および／または「ａｎ」は、通常、「少なくとも１つの」または「１つまたは複数の」を意味すると解釈されるべきである）。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、通常、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう（例えば、他の修飾語なしでの「２つの記載（ｔｗｏ  ｒｅｃｉｔａｔｉｏｎｓ）」の単なる記載は、通常、少なくとも２つの記載、または２つ以上の記載を意味する）。さらに、「Ａ、ＢおよびＣ、などの少なくとも１つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている（例えば、「Ａ、Ｂ、およびＣの少なくとも１つを有するシステム」は、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢを共に、ＡおよびＣを共に、ＢおよびＣを共に、ならびに／またはＡ、Ｂ、およびＣを共に、などを有するシステムを含むが、それに限定されない）。「Ａ、Ｂ、またはＣ、などの少なくとも１つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている（例えば、「Ａ、Ｂ、またはＣの少なくとも１つを有するシステム」は、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢを共に、ＡおよびＣを共に、ＢおよびＣを共に、ならびに／またはＡ、Ｂ、およびＣを共に、などを有するシステ���を含むが、それに限定されない）。２つ以上の代替用語を提示する事実上いかなる離接する語および／または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方（ｏｎｅ  ｏｆ  ｔｈｅ  ｔｅｒｍｓ）、当該用語のいずれか（ｅｉｔｈｅｒ  ｏｆ  ｔｈｅ  ｔｅｒｍｓ）、または両方の用語（ｂｏｔｈ  ｔｅｒｍｓ）を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。例えば、句「ＡまたはＢ」は、「Ａ」または「Ｂ」あるいは「ＡおよびＢ」の可能性を含むことが理解されよう。
【００７０】
本明細書では様々な態様および実施形態が開示されたが、他の態様および実施形態も当業者には明らかであろう。本明細書で開示された様々な態様および実施形態は、説明を目的としたものであって、限定する意図はなく、真の範囲および主旨は、以下の特許請求の範囲によって示される。
【図１】
0005483778.tif 000002
【図２】
0005483778.tif 000003
【図３】
0005483778.tif 000004
【図４】
0005483778.tif 000005