(58)【調査した分野】(Int.Cl.,DB名)
ビームフォーミング参照信号(BFRS)を受信する動作を更に含み、前記のビームフォーミングを実行することが、前記参照信号を使用して最良のビーム対を選択し、前記参照信号を送信するネットワークコントローラに前記最良のビーム対を伝達することを含む、請求項1から請求項3のいずれかに記載の方法。
プログラムが記録されたコンピュータ読み取り可能な記憶媒体であって、前記プログラムが、請求項1から請求項14のいずれかに記載の方法をコンピュータに実行させる、コンピュータ読み取り可能な記憶媒体。
【発明を実施するための形態】
【0009】
下記の説明では、本明細書の一部を形成する添付図面に対して参照が行われ、実施され得る特定の実施例が例示として示される。これらの実施例は、当業者が本明細書に開示された主題を実施することができるように十分に詳細に記載されているとともに、本開示の範囲から逸脱することなく、他の実施例を利用することができ、構造的、論理的及び電気的変更を行うことができる、ということが理解されるべきである。したがって、例示的な実施例の下記の説明は、限定的な意味で解釈されるべきではなく、本開示の範囲は、添付の請求項によって定義される。
【0010】
本明細書で説明される機能又はアルゴリズムは、一実施例において、ソフトウェアで、又はソフトウェアと人間が実施する手順との組み合わせで、実装され得る。ソフトウェアは、ローカルの若しくはネットワーク接続された、1つ若しくは複数の非一時的メモリ又は他のタイプのハードウェアベースの記憶装置などの、コンピュータ読み取り可能な媒体又はコンピュータ読み取り可能な記憶装置に記憶されたコンピュータ実行可能命令から構成されてもよい。さらに、そのような機能は、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせであり得るモジュールに対応する。複数の機能が、必要に応じて1つ又は複数のモジュールで実行されてもよく、説明された実施例は単なる実例である。ソフトウェアは、デジタル信号プロセッサ、特定用途向け集積回路(application-specific integrated circuit、ASIC)、マイクロプロセッサ、又はパーソナルコンピュータ、サーバ、若しくは他のコンピュータシステムなどのコンピュータシステム上で動作する他のタイプのプロセッサ上で実行されてもよい。
【0011】
ミリメートル
波帯域(mmWave)における伝播は、マイクロ波帯域よりもはるかに困難であり、その結果、マイクロ波帯域よりもmmWave帯域において、より厳しいリンクバジェットになる。より多くのアンテナアレイを送信機及び受信機に装備することは、mmWaveの余分な経路損失をビームフォーミングによって補償する、実行可能な解決策である。
【0012】
アンテナのサイズはキャリア周波数に反比例するので、これらの高周波帯域を使用すると、アンテナのサイズが大幅に縮小される。これにより、ネットワーク側と端末側の両方で、より多くの送受信アンテナアレイを採用することができる。
【0013】
ハイブリッドアンテナアーキテクチャは、ハードウェアの複雑さ、消費電力、並びにシステムの性能及びカバレッジをトレードオフするために使用される可能性が高い。ハイブリッドアンテナアーキテクチャは、典型的には、アナログ(位相シフタ)及びデジタル(ベースバンドプリコーダ)ビームフォーミング部品を含む。
【0014】
基地局は、1つ又は複数の無線周波数(RF)チェーンを含むことができ、各RFチェーンは、アナログ位相シフタ及びアンテナアレイに接続される。UE受信機は、受信機のアナログ位相シフタ、及びアンテナアレイに接続された1つ又は複数のRFチェーンを含み得る。
【0015】
共用アレイ及びサブアレイという、異なる種類のアナログビームフォーミングアーキテクチャが存在する。
図1は、共用アレイを有する1つのハイブリッドビームフォーミングアーキテクチャ100の一例を示す。アーキテクチャ100は、ベースバンドビームフォーミング送信機102及びベースバンドビームフォーミング受信機104を含む。1つの例示的な実施例において、ベースバンドビームフォーミング送信機102は、ベースバンドビームフォーミング送信手段として実装されることができる。別の例示的な実施例では、ベースバンドビームフォーミング受信機104は、ベースバンドビームフォーミング受信手段として実装されることができる。ベースバンドビームフォーミング送信機102は、複数のプリコーダ106A〜106Bを含む。プリコーダ106A〜106Bは、情報ストリームを重み付けすることによって送信ダイバーシティを利用するように動作する。例示的な実施例において、プリコーダ106A〜106Bの各々は、プリコーディング手段として実装され得る。次いで、デジタル/アナログ変換器(Digital-to-Analog converters、DAC)108A、108Bは、プリコーディングされたデジタル信号をアナログ信号に変換して、送信機共用アレイ110に送信するように動作する。例示的な実施例において、DAC108A、108Bの各々は、デジタル/アナログ変換手段として実装されることができる。別の例示的な実施例では、送信機共用アレイ110は、送信機共用アレイ手段として実装されることができる。次いで、受信機共用アレイ112は、送信された信号を受信し、1つ又は複数のアナログ/デジタル変換器(analog-to-digital converters、ADC)114A、114Bは、受信信号をデジタルに変換する。例示的な実施例において、受信機共用アレイ112は、受信機共用アレイ手段として実装されることができる。別の例示的な実施例では、ADC114A、114Bの各々は、アナログ/デジタル変換手段として実装されることができる。最後に、
1つ又は複数の等化器116A、116Bは、デジタル信号を等化す
る。例示的な実施例において、等化器116A、116Bの各々は、等化手段として実装されることができる。
【0016】
図2は、サブアレイを有する別のハイブリッドビームフォーミングアーキテクチャ200の一例を示す。このアーキテクチャ200は、位相シフタの数を減らし、送信側のRFコンバイナの必要性を省くことによって、
図1のハイブリッドビームフォーミングアーキテクチャ100のより複雑さの低いバージョンを提供する。しかしながら、アーキテクチャ200の残りの部分は、
図1の共用ハイブリッドビームフォーミングアーキテクチャ100と同じである。アーキテクチャ200は、ベースバンドビームフォーミング送信機202及びベースバンドビームフォーミング受信機204を含む。1つの例示的な実施例において、ベースバンドビームフォーミング送信機202は、ベースバンドビームフォーミング送信手段として実装されることができる。別の例示的な実施例では、ベースバンドビームフォーミング受信機204は、ベースバンドビームフォーミング受信手段として実装されことができる。ベースバンドビームフォーミング送信機202は、複数のプリコーダ206A〜206Bを含む。プリコーダ206A〜206Bは、情報ストリームを重み付けすることによって送信ダイバーシティを利用するように動作する。例示的な実施例において、プリコーダ206A〜206Bの各々は、プリコーディング手段として実装されことができる。次いで、デジタル/アナログ変換器(DAC)208A、208Bは、プリコーディングされたデジタル信号をアナログ信号に変換して送信機サブアレイ210に送信するように動作する。例示的な実施例において、DAC208A、208Bの各々は、デジタル/アナログ変換手段として実装されことができる。別の例示的な実施例では、送信機サブアレイ210は、送信機
サブアレイ手段として実装されことができる。次いで、受信機サブアレイ212は、送信された信号を受信し、1つ又は複数のアナログ/デジタル変換器(ADC)214A、214Bは、受信信号をデジタルに変換する。例示的な実施例において、受信機サブアレイ212は、受信機サブアレイ手段として実装されことができる。別の例示的な実施例では、ADC214A、214Bの各々は、アナログ/デジタル変換手段として実装されことができる。最後に、1つ又は複数の等化器216A、216Bがデジタル信号を等化する。例示的な実施例において、等化器216A、216Bの各々は、等化手段として実装されことができる。
【0017】
図3は、コントローラ300からUE302への送信/受信がダウンリンク(DL)送信/受信と呼ばれ、UE304からコントローラ300への送信/受信がアップリンク(UL)送信/受信と呼ばれる方法を描写する。
【0018】
第3世代パートナーシッププロジェクト(Third Generation Partnership Project、3GPP)ロングタームエボリューション(LTE)準拠の通信システムなどの最新の無線通信システムでは、複数のセル、又は進化型NodeB(evolved NodeB、eNB)(ノードB(NodeB)、基地局(base station、BS)、基地端末局、通信コントローラ、ネットワークコントローラ、コントローラ、アクセスポイント(access point、AP)などとも呼ばれる)は、各セルが複数の送信アンテナを有するセルのクラスタに配置されることができる。さらに、各セル又はeNBは、ある期間にわたる公平性、比例公平性、ラウンドロビンなどの優先度メトリックに基づいて、複数のユーザ(一般に、ユーザ装置(User Equipment、UE)、移動局、ユーザ、加入者、端末などとも呼ばれる)にサービスを提供し得る。セル、送信ポイント、及びeNBという用語は、交換可能に使用されてもよいことに注意が必要である。セル、送信ポイント、及びeNBの間の区別は、必要に応じて行われることになる。
【0019】
直交周波数分割多重(Orthogonal frequency-division multiplexing、OFDM)システムでは、周波数帯域幅は、周波数領域において複数のサブキャリアに分割される。時間領域では、1つのサブフレームが複数のOFDMシンボルに分割される。OFDMシンボルは、複数の経路遅延に起因する符号間干渉を回避するためのサイクリックプレフィックスを有することができる。1つのリソースエレメント(resource element、RE)は、1つのサブキャリアと1つのOFDMシンボル内の時間−周波数リソースによって定義される。参照信号、及び、データチャネル、例えば物理ダウンリンク共有チャネル(physical downlink shared channel、PDSCH)、及び制御チャネル、例えば物理ダウンリンク制御チャネル(physical downlink control channel、PDCCH)のような他の信号は、時間−周波数領域における異なるリソースエレメントにおいて、直交して多重化されている。さらに、信号は、変調されて、リソースエレメントにマッピングされる。各OFDMシンボルごとに逆フーリエ変換を使用して、周波数領域の信号は時間領域の信号に変換され、符号間干渉を回避するためのサイクリックプレフィックスを付加されて送信される。
【0020】
各リソースブロック(resource block、RB)は、複数のREを含む。
図4は、例示的な実施例による例示的なリソースブロック400を例示する図である。リソースブロック400は、いくつかの異なるリソースエレメント、例えばリソースエレメント402を含む。各リソースブロック400の場合、各サブフレームにおいて0から13までラベル付けされた14個のOFDMシンボルが存在する。各サブフレームにおけるシンボル0〜6は偶数スロットに対応し、各サブフレームにおけるシンボル7〜13は奇数スロットに対応する。図では、全体で7つのOFBMシンボルしか示されていない(404)。同様に、各リソースブロック400には12個のサブキャリア(406)があり、したがって、この例ではRBに132個のREがある。各サブフレームには複数のRBがあり、その数は帯域幅(bandwidth、BW)に依存し得る。
【0021】
図5は、例示的な実施例による例示的なデータパケット500A、500Bを示す図である。物理層においてeNBからUEにデータパケット500Aを伝送するデータチャネルは、物理ダウンリンク共有チャネル(physical downlink shared channel、PDSCH)502及び511と呼ばれ、物理層においてUEからeNBにデータパケット500Bを伝送するデータチャネルは、物理アップリンク共有チャネル(physical uplink shared channel、PUSCH)504及び505と呼ばれる。eNBからUEに伝送される対応する物理制御チャネルは、対応するPDSCH502及び511、並びに/又はPUSCH504及び505が周波数領域内のどこにあるか、そしてどのようにPDSCH502及び511、並びに/又はPUSCH504及び505が伝送されるかを示し、
それらは、物理ダウンリンク制御チャネル(physical downlink control channel、PDCCH)
501、及び510と呼ばれる。
図5において、PDCCH501は、PDSCH502又はPUSCH504に対するシグナリングを示すことができる。
【0022】
UEは、特に複数のアンテナの場合の、チャネル状態を測定する。PMI/CQI/RI、及び他のフィードバックは、参照信号の測定に基づくことができる。PMIはプリコーディング行列インジケータ、CQIはチャネル品質インジケータ、そしてRIはプリコーディング行列のランクインジケータである。UEのために構成された複数の参照信号リソースが存在してもよい。各参照信号リソースに対して、eNBによって割り当てられた特定の時間−周波数リソース及びスクランブリングコードが存在する。
【0023】
通常、eNBは、第1のeNBによってなされた決定が第2のeNBに影響を及ぼす可能性があるように、互いに近接して配置されてもよい。例えば、eNBは、UEにサービスを提供するとき、そのUEに向かうビームを形成するために、eNBの送信アンテナアレイを使用することができる。これは、第1のeNBが、特定の時間−周波数リソースにおいて第1のUEにサービスを提供することを決定した場合、第1のeNBがそのUEを指向するビームを形成し得る、ことを意味し得る。しかしながら、指向されたビームは、第2のeNBのカバレッジエリアに広がり、第2のeNBによってサービスされるUEに干渉を引き起こすことがある。スモールセル無線通信システムの場合のセル間干渉(inter-cell interference、ICI)は、通常、ラージセル無線通信システムにおいて見られるノイズ制限セルシナリオとは異なる、干渉制限セルシナリオと呼ばれる。
【0024】
例示的な実施例において、eNodeBは、1つ又は複数のセルを制御することができる。複数の遠隔無線ユニットは、ファイバケーブルによってeNodeBの同じベースバンドユニットに接続されることができ、ベースバンドユニットと遠隔無線ユニットとの間の待ち時間は非常に小さい。したがって、同じベースバンドユニットは、複数のセルの調整された送信/受信を処理することができる。例えば、eNodeBは、UEに対する複数のセルの送信を調整することができ、それはセル間協調(coordinated multiple point、CoMP)送信と呼ばれる。eNodeBは、同様に、UEからの複数のセルの受信を調整することができ、それはCoMP受信と呼ばれる。この場合、同じeNodeBを有するこれらのセル間のバックホールリンクは高速バックホールであり、UEに対して異なるセル内で送信されるPDSCHのスケジューリングは、同じeNodeB内で容易に調整されることができる。
【0025】
LTEのような典型的なシステム設計では、データ送信を受信するために使用される制御情報を含むPDCCHチャネルが最初に送信され、直ちに対応するデータ送信が続く。PDCCH信号を受信すると、UEは制御信号のベースバンド処理、すなわち制御メッセージの復調及び復号を開始する。ベースバンド処理は終了までに時間がかかるので、UEは、制御信号処理が終了する前に、データ送信信号を受信しなければならない。これは、UEが受信信号をとにかくバッファリングするので、典型的な低周波数帯域システムにとって問題ではない。
【0026】
制御メッセージの復号遅延は、高周波数帯域の大きな経路損失特性に起因して、mmWaveシステム設計に重大な問題を課す。データ信号を適切に受信するために、UEは、正しいアナログ受信ビームフォーミングを適用する必要があり、それはeNodeB送信機において使用されるアナログ送信ビームフォーミングに適合する。一度制御メッセージが復号されると、スケジューリングされたデータ伝送に関する情報、例えばランク、PMIなどが利用可能であり、その場合に、UEは、データ送信に対応するアナログ送信ビームを把握し、一致するアナログ受信ビームフォーミングを適用して信号を受信することができる。しかしながら、制御メッセージの復号遅延に起因して、mmWave通信では、UEは、データ信号の受信が開始される前に、送信ビームフォーミングに適合するアナログ受信ビームフォーミングを適用することができない。たとえUEバッファが受信信号を有していても、制御メッセージの復号結果が利用可能になるまで、アナログ送信及び受信ビームフォーミングの不一致のために、信号は使いものにならないことになる。その後、UEは、制御メッセージの復号結果に従って、適合するアナログ受信ビームフォーミングを適用することだけができる。
【0027】
図6は、例示的な実施例による制御伝送領域(例えば、PDCCH)及びデータ伝送領域(例えば、PDSCH)を描写する図である。図からわかるように、制御伝送領域600が最初に受信され、続いてデータ伝送領域602が受信される。PDSCH受信ビームフォーミングは、時刻604で準備ができているかもしれないが、PDCCH復調及び復号結果は、時刻606まで準備ができていない。
【0028】
例示的な実施例において、制御伝送領域600(例えば、PDCCH)及びデータ伝送領域602(例えば、PDSCH)をサブ領域に分割する装置並びに方法が提供される。各制御サブ領域は、対応するデータ伝送サブ領域に関するデータ伝送をスケジューリングする。制御メッセージとスケジューリングされたデータの伝送の間にギャップが導入されるので、UEは、制御メッセージの復号を終了し、対応するデータ伝送の受信の開始前に、適合するアナログ受信ビームフォーミングを適用することができる。言い換えると、UEは、対応するサブ領域のスケジューリングと伝送との間に導入された遅延ギャップのおかげで、対応する制御サブ領域復号結果に従って受信アナログビームフォーミングを準備して(arm)、データサブ領域伝送を受信することができる。
【0029】
図7は、例示的な実施例による分割された制御伝送領域、及び分割されたデータ伝送領域を描写する図である。ここで、制御伝送領域700は、サブ領域702Aとサブ領域702Bとに分割され、一方データ伝送領域704は、サブ領域706Aとサブ領域706Bとに分割されている。したがって、システムは、データ伝送領域のサブ領域706Aの受信ビームフォーミングが時刻710において準備ができる前に、時刻708においてサブ領域702Aを復調しかつ復号することができる。同様に、システムは、データ伝送領域のサブ領域706Bの受信ビームフォーミングが時刻714において準備ができる前に、時刻712においてサブ領域702Bを復調しかつ復号することができる。
【0030】
代わりの例示的な実施例において、データ伝送タイムラインの始めから開始するデータ伝送にスケジューリング制限を課す装置及び方法が提供される。このシナリオでデータ伝送をスケジューリングされるべきUEは、データ信号の受信のために、デフォルトのアナログ受信ビームフォーミング、例えば、ランク、PMI、アナログ送信ビームフォーミングなどを含むUEの最新の報告の推薦に対応するアナログ送信ビームフォーミングを適用する。これに対応して、ネットワークは、同様に、これらの特定のスケジュールされたUEのためのデータ伝送において、デフォルトのアナログ送信ビームフォーミング、ランク、及びPMIを適用する。
【0031】
例示的な実施例において、データ伝送の開始には遅延が課される一方、データ伝送タイムラインの後側部分から開始するデータ伝送の部分(例えば、PDSCH)には制限は課されない。
図8は、例示的な実施例によるデータ伝送の開始部分の遅延を例示する図である。ここでは、制御伝送領域802の第1の部分800の復調及び復号が最初に実行され、それは時刻804において終了し、一方制御伝送領域802の第2の部分806の復調及び復号が2番目に実行され、それは時刻808において終了する。データ伝送は時刻810において開始するが、しかしながら、スケジューリング制限が伝送時間間隔(TTI
1)812に適用され、これにより、TTI
1のビームフォーミングがデフォルトパラメータ(下記でより詳細に説明される)を利用するようになる。TTI
2 814の場合、制御伝送領域802の第2の部分806は時刻808において復調されかつ復号されるので、時刻816におけるTTI
2のビームフォーミングは、復調されかつ復号された第2の部分806から収集された実際のパラメータを使用して実行されることができる。残りのデータ伝送領域818にはスケジューリング制限は適用されない。
【0032】
例示的な実施例において、
図7と
図8の両方に関して上述した特徴の組み合わせが使用される。
図9は、例示的な実施例によるmmWave通信における着信データ伝送を処理するための方法900を例示するフロー図である。mmWave通信は、制御伝送部分及びデータ伝送部分を含み得る。動作902において、データ伝送の前側部分に対してスケジューリング制限を適用するべきかどうかが判定される。しない場合、動作904において、
図7に関して上述された処理が使用され、具体的には、制御伝送部分及びデータ伝送部分がサブ領域に分割され、データ伝送部分の対応するサブ領域のビームフォーミングに先立って、制御伝送部分のサブ領域の復号及び復調が実行される。動作902において、スケジューリング制限がデータ伝送の前側部分に適用されるべきであると判定された場合、その場合に、動作906において、スケジューリング制限がデータ伝送の前側部分に適用される。
【0033】
図10は、例示的な実施例による制御伝送部分及びデータ伝送部分をサブ領域に分割すること(
図9の動作904)をより詳細に例示するフロー図である。動作1000において、mmWave通信の制御伝送部分が受信される。動作1002において、制御伝送部分は、複数の制御伝送部分サブ領域に分割され、各サブ領域は、データ伝送部分の対応するサブ領域に関するデータ伝送をスケジューリングする。次に、各制御伝送部分サブ領域について、ループが開始される。動作1004において、UEは、制御伝送部分サブ領域を復調しかつ復号する。動作1006において、UEは、復調されかつ復号された制御伝送部分サブ領域に従って、受信アナログアンテナビームフォーミング(receive analog antenna beamforming)を準備する(arms)。動作1008において、UEは、データ伝送部分の対応するサブ領域に対する受信ビームフォーミングを実行する。動作1010において、それ以上の制御伝送部分サブ領域があるかどうかが判定される。そうである場合、次に、処理は、次の制御伝送部分サブ領域のために、動作1004にループする。そうでなければ、処理は終了する。
【0034】
ループの各実行の態様は、並行して実行されてもよく、したがって、動作1004〜1010は、描写されているような厳密な順序で正確に実行される必要はない、ということに注意が必要である。例えば、UEが1つの制御伝送部分サブ領域について動作1006及び1008を実行している間に、UEは、後続の制御伝送部分サブ領域に対して、同時に動作1004を実行してもよい(又は、既に実行している可能性がある)。
【0035】
図11は、例示的な実施例によるスケジューリング制限をデータ伝送の前側部分に適用すること(
図9の動作906)をより詳細に例示するフロー図である。動作1100において、mmWave通信の制御伝送部分が受信される。動作1102において、スケジューリング制限が、制御伝送部分の前側部分に割り当てられることができる。これらのスケジューリング制限は、データ伝送部分の対応する前側部分に対して実行されるべきビームフォーミングのための遅延時間を示すことができる。動作1104において、制御伝送部分の前側部分及び後側部分の両方の復調並びに復号が開始される。動作1106において、mmWave通信のデータ伝送部分が受信される。動作1108において、データ伝送部分の前側部分のビームフォーミングが、データ伝送部分のこの前側部分が制御伝送部分の対応する前側部分のスケジューリング制限に依存するため、デフォルトパラメータを使用して実行される。これらのパラメータは、例えば、ビームフォーミングのための、UEの最後に報告されたパラメータに対応することができる。動作1110において、mmWave通信の制御伝送部分の後側部分の復調及び復号が完了される。動作1112において、データ伝送部分の後側部分のビームフォーミングは、mmWave通信の制御伝送部分の後側部分の復調及び復号から得られたパラメータを使用して実行される。
【0036】
データ伝送部分のうちのどの部分を“前側部分”(したがって、遅延を適用する)として分類するかについての判定は、復調及び復号におけるUEの実際の性能に基づくことができる。例えば、UEの性能メトリックを追跡して、制御伝送部分の一部分を復調及び復号するのに要する平均時間量を判定することができる。その場合、前側部分として分類される(したがって、ビームフォーミングの間デフォルトパラメータの対象となる)データ伝送部分の量を最小限に抑えながら、この平均時間量(恐らくいくつかのパディングを伴う)に基づいて、前側部分(遅延される)と後側部分(遅延されない)との間の線引きが設定されることができ、復調されかつ復号された対応する制御伝送部分の情報からのパラメータを用いてデータ伝送部分の後側部分がビームフォーミングされることを保証することができる。
図8に戻って参照するとわかるように、時刻808の後でビームフォーミングされるようにスケジューリングされた任意のTTIは、それに適用されるスケジューリング制限を有していないかもしれない。時刻808は、上述のように、平均復調及び復号時間に基づいて先験的に決定されてもよい。代替的に、時刻808は、実行時に動的に決定されることができ、その結果、制御伝送部分の特定の部分が復調されかつ復号されたと判定された場合、データ伝送部分の対応する部分は、スケジューリング制限なしでビームフォーミングされるとともに、データ伝送部分の任意の後続の部分も、同様に、スケジューリング制限なしでビームフォーミングされる。
【0037】
下記の図は、本明細書において開示される装置及び方法を実施するために使用され得る処理システムの図である。特定の装置は、示されたコンポーネントの全て、又はコンポーネントのサブセットのみを利用してもよく、統合のレベルは、装置ごとに異なり得る。
【0038】
特定の実施例は、本明細書では、論理回路、又は多数のコンポーネント、モジュール、若しくは機構を含むものとして説明される。モジュールは、ソフトウェアモジュール(例えば、機械読み取り可能な媒体上に具現化されたコード)、又はハードウェアモジュールのいずれかを構成することができる。“ハードウェアモジュール”は、特定の動作を実行することができる有形のユニットであり、特定の物理的方法で構成されるか又は配置されることができる。様々な例示的な実施例において、1つ又は複数のコンピュータシステム(例えば、スタンドアロンコンピュータシステム、クライアントコンピュータシステム、若しくはサーバコンピュータシステム)、又はコンピュータシステムの1つ又は複数のハードウェアモジュール(例えば、プロセッサ若しくはプロセッサのグループ)は、本明細書において説明される特定の動作を実行するように動作するハードウェアモジュールとしてソフトウェア(例えば、アプリケーション若しくはアプリケーション部分)により構成されてもよい。
【0039】
いくつかの実施例において、ハードウェアモジュールは、機械的に、電子的に、又はそれらの任意の適切な組み合わせで、実装され得る。例えば、ハードウェアモジュールは、特定の動作を実行するように恒久的に構成された専用の回路又は論理回路を含み得る。例えば、ハードウェアモジュールは、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)又は特定用途向け集積回路(application specific integrated circuit、ASIC)などの専用プロセッサであってもよい。ハードウェアモジュールは、同様に、特定の動作を実行するようにソフトウェアにより一時的に構成されるプログラマブルロジック又は回路を含み得る。例えば、ハードウェアモジュールは、汎用プロセッサ又は他のプログラム可能プロセッサにより実行されるソフトウェアを含み得る。一度このようなソフトウェアにより構成されると、ハードウェアモジュールは、構成された機能を実行するために独自に調整された特定の機械(又は機械の特定のコンポーネント)になり、もはや汎用プロセッサではなくなる。機械的にハードウェアモジュールを、専用及び恒久的に構成された回路に、又は一時的に構成された回路(例えば、ソフトウェアにより構成された)に実装する決定は、コスト及び時間の考慮によって決められ得ることが理解されることになる。
【0040】
したがって、“ハードウェアモジュール”という語句は、特定の方法で動作するか、又は本明細書において説明される特定の動作を実行するように、物理的に構築されるか、永続的に構成される(例えば、回路接続される)か、又は一時的に構成される(例えば、プログラムされる)実体であるような、有形の実体を含むと理解されるべきである。本明細書において使用されるように、“ハードウェア実装モジュール”は、ハードウェアモジュールのことを指す。ハードウェアモジュールが一時的に構成される(例えば、プログラムされる)実施例を考慮すると、各ハードウェアモジュールは、時間における任意の1つの時点において構成されるか又はインスタンス化される必要はない。例えば、ハードウェアモジュールが、ソフトウェアにより専用プロセッサとなるように構成された汎用プロセッサを含む場合、汎用プロセッサは、異なる時間に、それぞれ異なる専用プロセッサ(例えば、異なるハードウェアモジュールを含む)として構成されてもよい。したがって、ソフトウェアは、例えば、特定のプロセッサ又は複数のプロセッサを、特定の時間に特定のハードウェアモジュールを構成し、異なる時間に異なるハードウェアモジュールを構成するように設定する。
【0041】
ハードウェアモジュールは、他のハードウェアモジュールに情報を提供し、他のハードウェアモジュールから情報を受け取ることができる。したがって、説明されたハードウェアモジュールは、通信可能に結合されているとみなされ得る。複数のハードウェアモジュールが同時に存在する場合、通信は、ハードウェアモジュールのうちの2つ以上の間の信号伝送によって(例えば、適切な回路及びバスを介して)達成され得る。複数のハードウェアモジュールが異なる時間に構成されるか又はインスタンス化される実施例において、そのようなハードウェアモジュール間の通信は、例えば、複数のハードウェアモジュールがアクセスするメモリ構造内の情報の記憶及び検索によって達成され得る。例えば、1つのハードウェアモジュールは、動作を実行し、通信可能に結合されたメモリ装置にその動作の出力を記憶することができる。さらなるハードウェアモジュールは、その場合、メモリ装置にアクセスして、記憶された出力を取り出して処理することができる。ハードウェアモジュールは、同様に、入力又は出力装置との通信を開始し得るとともに、リソース(例えば、情報の集合)に作用することができる。
【0042】
本明細書において説明される例示的方法の様々な動作は、関連する動作を実行するように、一時的に(例えば、ソフトウェアによって)構成されるか、又は永続的に構成される1つ又は複数のプロセッサによって、少なくとも部分的に実行され得る。一時的又は永続的に構成されようと、そのようなプロセッサは、本明細書において説明される1つ若しくは複数の動作又は機能を実行するように動作するプロセッサ実装型モジュールを構成することができる。本明細書において使用されるように、“プロセッサ実装型モジュール”は、1つ又は複数のプロセッサを使用して実装されるハードウェアモジュールのことを指す。
【0043】
同様に、本明細書において説明される方法は、ハードウェアの一例である特定のプロセッサ又は複数のプロセッサによって、少なくとも部分的にプロセッサ実装されることができる。例えば、方法の動作のうちの少なくとも一部分は、1つ若しくは複数のプロセッサ又はプロセッサ実装型モジュールによって実行され得る。さらに、1つ又は複数のプロセッサは、同様に、“クラウドコンピューティング”環境における関連動作、又は“ソフトウエアアズアサービス(software as a service、SaaS)”としての関連動作の実行をサポートするように動作することができる。例えば、動作のうちの少なくともいくつかは、これらの動作が、ネットワーク(例えば、インターネット)を介して、及び1つ又は複数の適切なインタフェース(例えば、アプリケーションプログラムインタフェース(application program interface、API))を介してアクセス可能であるように、(プロセッサを含む機械の例としての)コンピュータのグループによって実行されることができる。
【0044】
特定の動作の実行は、単一の機械内に存在するだけでなく、複数の機械にまたがって配置されたプロセッサの間で分散され得る。いくつかの例示的な実施例において、プロセッサ又はプロセッサ実装型モジュールは、単一の地理的位置(例えば、家庭環境、オフィス環境、又はサーバファーム内)に配置されてもよい。他の例示的な実施例では、プロセッサ又はプロセッサ実装型モジュールは、いくつかの地理的位置にまたがって分散されてもよい。
【0045】
機械とソフトウェアのアーキテクチャ
図1〜
図11に関連して説明されたモジュール、方法、アプリケーションなどは、いくつかの実施例では、機械及び関連するソフトウェアアーキテクチャの環境に実装される。下記のセクションは、開示された実施例での使用に適した代表的な(複数の)ソフトウェアアーキテクチャ及び(複数の)機械(例えば、ハードウェア)アーキテクチャを説明する。
【0046】
ソフトウェアアーキテクチャは、ハードウェアアーキテクチャと共に使用され、特定の目的に合わせて調整された装置及び機械を生成する。例えば、特定のソフトウェアアーキテクチャと結合された特定のハードウェアアーキテクチャは、携帯電話、タブレットデバイスなどのような、モバイルデバイスを作成することになる。わずかに異なるハードウェア及びソフトウェアアーキテクチャは、“物のインターネット”における使用のためのスマートデバイスをもたらし得る一方、さらに別の組み合わせは、クラウドコンピューティングアーキテクチャ内で使用するためのサーバコンピュータを生成する。当業者は、本明細書に含まれる開示と異なる文脈で本発明の主題をどのように実施するかを容易に理解することができるので、そのようなソフトウェア及びハードウェアアーキテクチャの全ての組み合わせがここに示されるわけではない。
【0047】
ソフトウェアアーキテクチャ
図12は、本明細書で説明される様々なハードウェアアーキテクチャと共に使用されることができる代表的なソフトウェアアーキテクチャ1202を例示するブロック
図1200である。
図12は、ソフトウェアアーキテクチャ1202の単なる非限定的な例に過ぎず、本明細書において説明される機能を容易にするために他の多くのアーキテクチャが実装され得る、ということが理解されることになる。ソフトウェアアーキテクチャ1202は、とりわけ、プロセッサ1310、メモリ/ストレージ1330、及びI/Oコンポーネント1350を含む、
図13の機械1300のようなハードウェア上で実行されてもよい。代表的なハードウェアレイヤ1204が例示されており、例えば、
図13の機械1300を表すことができる。代表的なハードウェアレイヤ1204は、関連する実行可能命令1208を有する1つ又は複数の処理ユニット1206を含む。実行可能命令1208は、
図1〜
図9の方法、モジュールなどの実装を含むソフトウェアアーキテクチャ1202の実行可能命令を表す。ハードウェアレイヤ1204は、同様に、実行可能命令1208を同様に有するメモリ及び/又はストレージモジュール1210を含む。ハードウェアレイヤ1204は、同様に、機械1300の一部分として示される他のハードウェアのような、ハードウェアレイヤ1204のうちの任意の他のハードウェアを表す他のハードウェア1212を含み得る。
【0048】
図12の例示的なアーキテクチャでは、ソフトウェアアーキテクチャ1202は、各レイヤが特定の機能を提供するレイヤのスタックとして概念化されることができる。例えば、ソフトウェアアーキテクチャ1202は、オペレーティングシステム1214、ライブラリ1216、フレームワーク/ミドルウェア1218、アプリケーション1220、及びプレゼンテーションレイヤ1244などのレイヤを含み得る。動作上、レイヤ内のアプリケーション1220及び/又は他のコンポーネントは、ソフトウェアスタックを介してアプリケーションプログラミングインタフェース(API)コール1224を呼び出し、APIコール1224に応じるメッセージ1226として例示される応答、戻り値などを受け取ることができる。図示のレイヤは本質的に代表的であり、全てのソフトウェアアーキテクチャ1202が全てのレイヤを有するわけではない。例えば、一部分のモバイルオペレーティングシステム又は特殊目的オペレーティングシステムは、フレームワーク/ミドルウェア1218を提供しないかもしれず、一方他のものは、そのようなレイヤを提供し得る。他のソフトウェアアーキテクチャは、追加のレイヤ又は異なるレイヤを含み得る。
【0049】
オペレーティングシステム1214は、ハードウェアリソースを管理し、共通サービスを提供することができる。オペレーティングシステム1214は、例えば、カーネル1228、サービス1230、及びドライバ1232を含み得る。カーネル1228は、ハードウェアレイヤと他のソフトウェアレイヤとの間の抽象化レイヤとして機能することができる。例えば、カーネル1228は、メモリ管理、プロセッサ管理(例えば、スケジューリング)、コンポーネント管理、ネットワーキング、セキュリティ設定などを担当することができる。サービス1230は、他のソフトウェアレイヤに他の共通サービスを提供することができる。ドライバ1232は、基礎的なハードウェアを制御するか、又は基礎的なハードウェアとインタフェースする役割を果たすことができる。例えば、ドライバ1232は、ハードウェア構成に応じて、ディスプレイドライバ、カメラドライバ、ブルートゥース(登録商標)ドライバ、フラッシュメモリドライバ、シリアル通信ドライバ(例えば、ユニバーサルシリアルバス(Universal Serial Bus、USB)ドライバ)、Wi−Fi(登録商標)ドライバ、オーディオドライバ、電力管理ドライバなどを含み得る。
【0050】
ライブラリ1216は、アプリケーション1220、並びに/又は他のコンポーネント及び/若しくはレイヤによって利用され得る共通インフラストラクチャを提供することができる。ライブラリ1216は、通常、他のソフトウェアモジュールが基礎的なオペレーティングシステム1214の機能(例えば、カーネル1228、サービス1230、及び/又はドライバ1232)と直接的にインタフェースするよりも容易なやり方でタスクを実行することを可能にする、機能を提供する。ライブラリ1216は、メモリ割り当て関数、文字列操作関数、数学関数などの関数を提供することができるシステムライブラリ1234(例えば、C標準ライブラリ)を含み得る。さらに、ライブラリ1216は、メディアライブラリ(例えば、MPEG4、H.264、MP3、AAC、AMR、JPG、PNGなどの様々なメディアフォーマットの提示及び操作をサポートするライブラリ)、グラフィックスライブラリ(例えば、ディスプレイ上のグラフィックコンテンツにおける2D及び3Dをレンダリングするために使用され得るOpenGLフレームワーク)、データベースライブラリ(例えば、様々なリレーショナルデータベース機能を提供することができるSQLite)、webライブラリ(例えば、webブラウジング機能を提供することができるWebKit)のようなAPIライブラリ1236を含み得る。ライブラリ1216は、同様に、アプリケーション1220及び他のソフトウェアコンポーネント/モジュールに多くの他のAPIを提供するための多種多様な他のライブラリ1238を含むことができる。
【0051】
フレームワーク/ミドルウェア1218(時にはミドルウェアとも呼ばれる)は、アプリケーション1220及び/又は他のソフトウェアコンポーネント/モジュールによって利用され得るより高いレベルの共通インフラストラクチャを提供することができる。例えば、フレームワーク/ミドルウェア1218は、様々なグラフィックユーザインタフェース(graphic user interface、GUI)機能、高レベルリソース管理、高レベルロケーションサービスなどを提供することができる。フレームワーク/ミドルウェア1218は、アプリケーション1220及び/又は他のソフトウェアコンポーネント/モジュールによって利用され得る広範な他のAPIを提供することができ、それらのうちのいくつかは、特定のオペレーティングシステム1214又はプラットフォームに固有であり得る。
【0052】
アプリケーション1220は、ビルトインアプリケーション1240及び/又はサードパーティアプリケーション1242を含む。代表的なビルトインアプリケーション1240の例は、下記に限定されるものではないが、連絡先アプリケーション、ブラウザアプリケーション、ブックリーダアプリケーション、ロケーションアプリケーション、メディアアプリケーション、メッセージングアプリケーション、及び/又はゲームアプリケーションを含み得る。サードパーティアプリケーション1242は、ビルトインアプリケーション1240のうちのいずれか、及び他のアプリケーションの幅広い品揃えを含み得る。特定の例では、サードパーティアプリケーション1242(例えば、特定のプラットフォームのベンダ以外のエンティティによってAndroid(商標)又はiOS(商標)ソフトウェア開発キット(software development kit、SDK)を使用して開発されたアプリケーション)は、iOS(商標)、Android(商標)、Windows(登録商標) Phone、又は他のモバイルオペレーティングシステムなどのモバイルオペレーティングシステム上で動作するモバイルソフトウェアであってもよい。この例では、サードパーティアプリケーション1242は、オペレーティングシステム1214などのモバイルオペレーティングシステムによって提供されるAPIコール1224を呼び出して、本明細書において説明される機能を容易にすることができる。
【0053】
アプリケーション1220は、ビルトインオペレーティングシステム機能(例えば、カーネル1228、サービス1230、及び/又はドライバ1232)、ライブラリ(例えば、システムライブラリ1234、APIライブラリ1236、及び他のライブラリ1238)、並びにフレームワーク/ミドルウェア1218を使用して、システムのユーザと対話するユーザインタフェースを作成することができる。代替的に、又は追加的に、いくつかのシステムにおいて、ユーザとの対話は、プレゼンテーションレイヤ1244のようなプレゼンテーションレイヤを介して行われてもよい。これらのシステムでは、アプリケーション/モジュールの“論理回路”は、ユーザと対話するアプリケーション/モジュールの態様から分離されることができる。
【0054】
一部のソフトウェアアーキテクチャは仮想機械を利用する。
図12の例において、これは仮想機械1248によって示されている。仮想機械は、まるでアプリケーション/モジュールがハードウェア機械(例えば、
図13の機械1300のような)上で実行しているかのように、アプリケーション/モジュールが実行できるソフトウェア環境を作成する。仮想機械1248は、ホストオペレーティングシステム(
図12におけるオペレーティングシステム1214)によってホストされるとともに、通常は、必ずしもそうではないが、仮想機械1248の動作及びホストオペレーティングシステム(すなわち、オペレーティングシステム1214)とのインタフェースを管理する仮想機械モニタ1246を有する。ソフトウェアアーキテクチャ1202は、オペレーティングシステム1250、ライブラリ1252、フレームワーク/ミドルウェア1254、アプリケーション1256、及び/又はプレゼンテーションレイヤ1258のような仮想機械1248内で実行される。仮想機械1248内で実行されるソフトウェアアーキテクチャのこれらのレイヤは、先に説明された対応するレイヤと同じであってもよいし、異なっていてもよい。
【0055】
例示的な機械アーキテクチャ及び機械読み取り可能な媒体
図13は、機械読み取り可能な媒体(例えば、機械読み取り可能な記憶媒体)から命令1316を読み取り、本明細書で説明される方法論のうちの1つ又は複数を実行することができる、いくつかの例示的な実施例による機械1300の構成要素を例示するブロック図である。具体的には、
図13は、コンピュータシステムの例示的な形態における機械1300の図表示を示し、その内部では、機械1300に本明細書で説明される方法論のうちの1つ又は複数を実行させるための命令1316(例えば、ソフトウェア、プログラム、アプリケーション、アプレット、app、又は他の実行可能コード)が実行されることができる。例えば、命令1316は、機械1300に
図9及び
図10の流れ図を実行させることができる。さらに、又は代替的に、命令1316は、
図1〜
図11のモジュールなどを実装することができる。命令1316は、一般的なプログラムされていない機械1300を、説明され図示された機能を説明された方法で実行するようにプログラムされた特定の機械に変換する。代替の実施例では、機械1300は、スタンドアロン装置として動作するか、又は他の機械に結合(例えば、ネットワーク接続)されてもよい。ネットワーク化された配置では、機械1300は、サーバ−クライアントネットワーク環境内のサーバマシン若しくはクライアントマシンとして、又はピアツーピア(若しくは分散型)ネットワーク環境内のピアマシンとして動作することができる。機械1300は、下記に限定されるものではないが、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(personal computer、PC)、タブレットコンピュータ、ラップトップコンピュータ、ネットブック、セットトップボックス(set-top box、STB)、パーソナルデジタルアシスタント(personal digital assistant、PDA)、エンターテイメントメディアシステム、携帯電話、スマートフォン、モバイルデバイス、ウェアラブルデバイス(例えば、スマートウォッチ)、スマートホームデバイス(例えば、スマートアプライアンス)、他のスマートデバイス、ウェブアプライアンス、ネットワークルータ、ネットワークスイッチ、ネットワークブリッジ、又は機械1300がとるべき動作を指定する命令1316を順次若しくは他の方法で実行することができる任意の機械を含み得る。さらに、単一の機械1300のみが例示される一方、用語“機械”は、同様に、本明細書で説明される方法論のうちの1つ又は複数を実行するために、命令1316を個々に又は共同して実行する機械1300の集合を含むと解釈されるべきである。
【0056】
機械1300は、バス1302などを介して互いに通信するように構成され得るプロセッサ1310、メモリ/ストレージ1330、及びI/Oコンポーネント1350を含み得る。例示的な実施例において、プロセッサ1310、(例えば、中央処理装置(central processing unit、CPU)、縮小命令セットコンピューティング(reduced instruction set computing、RISC)プロセッサ、複合命令セットコンピューティング(complex instruction set computing、CISC)プロセッサ、グラフィックス処理ユニット(graphics processing unit、GPU)、デジタル信号プロセッサ(digital signal processor、DSP)、特定用途向け集積回路(application specific integrated circuit、ASIC)、無線周波数集積回路(radio-frequency integrated circuit、RFIC)、別のプロセッサ、又はそれらの任意の適切な組み合わせ)は、例えば、命令1316を実行することができるプロセッサ1312及びプロセッサ1314を含み得る。用語“プロセッサ”は、同時に命令1316を実行することができる2つ以上の独立したプロセッサ1312、1314(“コア”と呼ばれることもある)を含み得るマルチコアプロセッサ1312、1314を含むことが意図される。
図13は、複数のプロセッサ1310を示しているが、機械1300は、単一のコアを有する単一のプロセッサ1312、1314、複数のコアを有する単一のプロセッサ1312、1314(例えば、マルチコアプロセッサ1312、1314)、単一のコアを有する複数のプロセッサ1312、1314、複数のコアを有する複数のプロセッサ1312、1314、又はそれらの任意の組み合わせを含み得る。
【0057】
メモリ/ストレージ1330は、両方ともバス1302などを介してプロセッサ1310にアクセス可能な、メインメモリ又は他のメモリストレージなどのメモリ1332と、ストレージユニット1336とを含み得る。ストレージユニット1336及びメモリ1332は、本明細書で説明される方法論又は機能のうちの任意の1つ又は複数を具現化する命令1316を記憶する。命令1316は、同様に、機械1300による命令1316の実行中に、プロセッサ1310のうちの少なくとも1つの中(例えば、プロセッサ1312、1314のキャッシュメモリ内)に、又はそれらの任意の適切な組み合わせの中に、完全に、又は部分的に存在し得る。したがって、メモリ1332、ストレージユニット1336、及びプロセッサ1310のメモリは、機械読み取り可能な媒体の実例である。
【0058】
本明細書で使用されるように、“機械読み取り可能な媒体”は、命令1316及びデータを一時的又は永続的に記憶することができる装置を意味し、下記に限定されるものではないが、ランダムアクセスメモリ(random-access memory、RAM)、読み取り専用メモリ(read-only memory、ROM)、バッファメモリ、フラッシュメモリ、光学媒体、磁気媒体、キャッシュメモリ、他のタイプのストレージ(例えば、消去可能なプログラム可能な読み出し専用メモリ(erasable programmable read-only memory、EEPROM))、及び/又はそれらの任意の適切な組み合わせを含み得る。“機械読み取り可能な媒体”という用語は、命令1316を記憶することができる単一の媒体又は複数の媒体(例えば、集中型若しくは分散型データベース、又は関連するキャッシュ及びサーバ)を含むと解釈されるべきである。“機械読み取り可能な媒体”という用語は、同様に、機械(例えば、機械1300)による実行のための命令(例えば、命令1316)を記憶することができる任意の媒体又は複数の媒体の組み合わせを含むと解釈されるべきであり、その結果、命令1316は、機械1300のうちの1つ又は複数のプロセッサ(例えば、プロセッサ1310)によって実行されると、本明細書において説明された方法論のうちの任意の1つ又は複数を機械1300に実行させる。したがって、“機械読み取り可能な媒体”は、単一のストレージ機器又はストレージ装置、並びに、複数のストレージ機器又はストレージ装置を含む“クラウドベース”のストレージシステム又はストレージネットワークのことを指す。“機械読み取り可能な媒体”という用語は、信号そのものを除外している。
【0059】
I/Oコンポーネント1350は、入力を受信し、出力を提供し、出力を生成し、情報を送信し、情報を交換し、測定値を獲得するなどのための多種多様なコンポーネントを含み得る。特定の機械1300に含まれる特定のI/Oコンポーネント1350は、機械1300のタイプに依存することになる。例えば、携帯電話などのポータブルマシンは、タッチ入力装置又は他のそのような入力機構を含む可能性が高く、一方ヘッドレスサーバマシンは、そのようなタッチ入力装置を含まない可能性が高いであろう。I/Oコンポーネント1350は、
図13に示されていない多くの他のコンポーネントを含み得る、ということが認識されることになる。I/Oコンポーネント1350は、下記の説明を簡略化するために、機能性に従ってグループ分けされているだけであり、グループ分けは決して限定的ではない。様々な例示的な実施例において、I/Oコンポーネント1350は、出力コンポーネント1352、及び入力コンポーネント1354を含み得る。出力コンポーネント1352は、視覚コンポーネント(例えば、プラズマディスプレイパネル(plasma display panel、PDP)、発光ダイオード(light emitting diode、LED)ディスプレイ、液晶ディスプレイ(liquid crystal display、LCD)、プロジェクタ、又はブラウン管(cathode ray tube、CRT)のような表示装置)、音響コンポーネント(例えば、スピーカ)、触覚コンポーネント(例えば、振動モータ、抵抗感機構(resistance mechanisms))、他の信号発生器などを含み得る。入力コンポーネント1354は、英数字入力コンポーネント(例えば、キーボード、英数字入力を受け取るように構成されたタッチスクリーン、写真光学式キーボード、又は他の英数字入力コンポーネント)、ポインティングベースの入力コンポーネント(例えば、マウス、タッチパッド、トラックボール、ジョイスティック、モーションセンサ、又は他のポインティング器具)、触覚入力コンポーネント(例えば、物理的ボタン、タッチ若しくはタッチジェスチャの位置及び/又は力を提供するタッチスクリーン、あるいは他の触覚入力コンポーネント)、オーディオ入力コンポーネント(例えば、マイクロフォン)などを含み得る。
【0060】
さらなる例示的な実施形態において、I/Oコンポーネント1350は、幅広い他のコンポーネントの中で、バイオメトリックコンポーネント1356、モーションコンポーネント1358、環境コンポーネント1360、又はポジションコンポーネント1362を含み得る。例えば、バイオメトリックコンポーネント1356は、表情(手の表情、顔の表情、声の表情、ボディジェスチャ、又は視標追跡)を検出するためのコンポーネント、生体信号(例えば、血圧、心拍数、体温、発汗、又は脳波)を測定するためのコンポーネント、人物を識別する(例えば、音声識別、網膜識別、顔面識別、指紋識別、又は脳波記録に基づく識別)ためのコンポーネントなどを含み得る。モーションコンポーネント1358は、加速度センサコンポーネント(例えば、加速度計)、重力センサコンポーネント、回転センサコンポーネント(例えば、ジャイロスコープ)などを含み得る。環境コンポーネント1360は、例えば、照明センサコンポーネント(例えば、光度計)、温度センサコンポーネント(例えば、周囲温度を検出する1つ又は複数の温度計)と、湿度センサコンポーネント、圧力センサコンポーネント(例えば、気圧計)、音響センサコンポーネント(例えば、背景雑音を検出する1つ又は複数のマイクロフォン)、近接センサコンポーネント(例えば、近くの対象物を検出する赤外線センサ)、ガスセンサ(例えば、安全のために有害ガスの濃度を検出するための、又は大気中の汚染物質を測定するためのガス検出センサ)、又は周囲の物理的環境に対応する指示値、測定値、若しくは信号を提供することができる他のコンポーネントを含み得る。ポジションコンポーネント1362は、位置センサコンポーネント(例えば、全地球測位システム(Global Position System、GPS)受信機コンポーネント)、高度センサコンポーネント(例えば、高度が導出され得る空気圧を検出する高度計又は気圧計)、方位センサコンポーネント(例えば、磁力計)などを含み得る。
【0061】
通信は、多種多様な技術を用いて実施され得る。I/Oコンポーネント1350は、それぞれ結合1382及び結合1372を介して、機械1300をネットワーク1380又は装置1370に結合するように動作可能な通信コンポーネント1364を含み得る。例えば、通信コンポーネント1364は、ネットワークインタフェースコンポーネント、又はネットワーク1380とインタフェースするための他の適切な装置を含み得る。さらなる実例において、通信コンポーネント1364は、有線通信コンポーネント、無線通信コンポーネント、セルラ通信コンポーネント、近距離無線通信(near field communication、NFC)コンポーネント、Bluetooth(登録商標)コンポーネント(例えば、Bluetooth(登録商標)Low Energy)、Wi−Fi(登録商標)コンポーネント、及び他の様式を介した通信を提供するための他の通信コンポーネントを含み得る。装置1370は、別の機械、又は多種多様な周辺装置(例えば、ユニバーサルシリアルバス(USB)を介して結合された周辺装置)のいずれかであってもよい。
【0062】
さらに、通信コンポーネント1364は、識別子を検出し得るか、又は識別子を検出するように動作可能なコンポーネントを含み得る。例えば、通信コンポーネント1364は、無線周波数識別(radio frequency identification、RFID)タグ読取装置コンポーネント、NFCスマートタグ検出コンポーネント、光学読取装置コンポーネント(例えば、ユニバーサルプロダクトコード(Universal Product Code、UPC)バーコードなどの1次元バーコード、クイックレスポンス(QR)コードなどの多次元バーコード、Aztecコード、Data Matrix、Dataglyph、MaxiCode、PDF417、Ultraコード、UCC RSS−2Dバーコード、そして他の光学コードを検出する光学センサ)、又は音響検出コンポーネント(例えば、タグ付きオーディオ信号を識別するためのマイクロフォン)を含み得る。さらに、インターネットプロトコル(IP)ジオロケーションによる位置、Wi−Fi(登録商標)信号の三角測量による位置、特定の位置を示すことができるNFCビーコン信号を検出することによる位置などのような、様々な情報が通信コンポーネント1364を介して導き出されることができる。
【0063】
伝送媒体
様々な例示的な実施例において、ネットワーク1380の1つ又は複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(virtual private network、VPN)、ローカルエリアネットワーク(local area network、LAN)、無線LAN(wireless LAN、WLAN)、広域ネットワーク(wide area network、WAN)、無線WAN(ireless WAN、WWAN)、メトロポリタンエリアネットワーク(metropolitan area network、MAN)、インターネット、インターネットの一部、公衆交換電話網(public switched telephone network、PSTN)の一部、単純従来型電話サービス(plain old telephone service、POTS)ネットワーク、携帯電話ネットワーク、無線ネットワーク、Wi−Fi(登録商標)ネットワーク、別のタイプのネットワーク、又はそのようなネットワークの2つ以上の組み合わせであり得る。例えば、ネットワーク1380、又はネットワーク1380の一部は、無線又はセルラネットワークを含み得るとともに、結合1382は、符号分割多元接続(Code Division Multiple Access、CDMA)接続、グローバル移動体通信システム(Global System for Mobile communications、GSM)接続、又は他のタイプのセルラ若しくは無線結合であり得る。この例において、結合1382は、シングルキャリア無線伝送技術(1xRTT)、最適化された進化データ(Evolution-Data Optimized、EVDO)技術、汎用パケット無線サービス(General Packet Radio Service、GPRS)技術、GSM進化型高速データレート(Enhanced Data rates for GSM Evolution、EDGE)技術、3Gを含む第3世代パートナーシッププロジェクト(3GPP)、第4世代無線(4G)ネットワーク、ユニバーサルモバイルテレコミュニケーションシステム(Universal Mobile Telecommunications System、UMTS)、高速パケットアクセス(High Speed Packet Access、HSPA)、ワールドワイド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス(WiMAX)、ロングタームエボリューション(LTE)標準、様々な標準設定組織によって定義された他のもの、他の長距離プロトコル、又は他のデータ転送技術のような様々なタイプのデータ転送技術のうちの任意のものを実装することができる。
【0064】
命令1316は、ネットワーク1380を介して、伝送媒体を使用してネットワークインタフェース装置(例えば、通信コンポーネント1364に含まれるネットワークインタフェースコンポーネント)を介して、及び多数の周知の転送プロトコル(例えば、ハイパーテキスト転送プロトコル(HTTP))のうちの任意の1つを利用して、送信又は受信され得る。同様に、命令1316は、伝送媒体を使用して装置1370への結合1392(例えば、ピアツーピア結合)を介して、送信又は受信されることができる。“伝送媒体”という用語は、機械1300による実行のための命令1316を記憶、符号化、若しくは搬送することができる任意の無形媒体を含むとともに、そのようなソフトウェアの通信を容易にするデジタル若しくはアナログ通信信号又は他の無形媒体を含むものと解釈されるべきである。
【0065】
専門用語
本明細書を通して、複数のインスタンスは、単一のインスタンスとして記述された構成要素、動作、又は構造を実装することができる。1つ又は複数の方法の個々の動作が別々の動作として図示され説明されているが、個々の動作のうちの1つ又は複数が同時に実行されてもよく、動作が図示された順序で実行される必要はない。例示的な構成において別々の構成要素として提示される構造及び機能は、結合された構造又は構成要素として実装されることができる。同様に、単一の構成要素として提示される構造及び機能は、別個の構成要素として実装されることができる。これら及び他の変形、修正、追加、及び改良が、本明細書の主題の範囲内に含まれる。
【0066】
本発明の主題の概要が特定の例示的な実施例を参照して説明されているが、本開示の実施例のより広い範囲から逸脱することなく、これらの実施例に対する様々な修正及び変更が行われることができる。本発明の主題のそのような実施例は、便宜上のためだけに、そして実際に複数のものが開示されている場合には、この出願の範囲を任意の単一の開示又は発明概念に自発的に限定することなく、本明細書では用語「発明」によって個々に又は集合的に言及されることができる。
【0067】
本明細書に例示される実施例は、当業者が開示された教示を実施することができるように、十分に詳細に説明される。本開示の範囲から逸脱することなく、構造的及び論理的な置換並びに変更が行われ得るように、他の実施例が使用されることができるとともに、そこから導出されることができる。したがって、詳細な説明は、限定的な意味で解釈されるべきではなく、様々な実施例の範囲は、添付の請求項と、そのような請求項が権利を与えられる等価物の全範囲とによってのみ規定される。
【0068】
本明細書で使用されるように、“又は”という用語は、包括的又は排他的な意味で解釈され得る。さらに、複数のインスタンスが、本明細書で説明されるリソース、動作、又は構造に対して単一のインスタンスとして提供されることができる。さらに、様々なリソース、動作、モジュール、エンジン、及びデータストア間の境界は、いくぶん恣意的であり、特定の動作は、特定の例示的な構成の状況において例示されている。機能の他の割り当てが想定されており、本開示の様々な実施例の範囲内に含まれ得る。一般に、例示的な構成において別個のリソースとして提示される構造及び機能は、結合された構造又はリソースとして実装されることができる。同様に、単一のリソースとして提示される構造及び機能は、別個のリソースとして実装されることができる。これら及び他の変形、修正、追加、及び改良は、添付の請求項によって表される本開示の実施例の範囲内に含まれる。したがって、明細書及び図面は、限定的ではなく例示的なものとみなされるべきである。