(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-09-26
(54)【発明の名称】リアルタイムデータを収集及び送信するシステム及び方法
(51)【国際特許分類】
H04L 47/6275 20220101AFI20220915BHJP
G16Y 40/30 20200101ALI20220915BHJP
【FI】
H04L47/6275
G16Y40/30
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022500776
(86)(22)【出願日】2019-07-23
(85)【翻訳文提出日】2022-01-06
(86)【国際出願番号】 US2019043017
(87)【国際公開番号】W WO2021015739
(87)【国際公開日】2021-01-28
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520155228
【氏名又は名称】ヒタチ ヴァンタラ エルエルシー
(74)【代理人】
【識別番号】110000279
【氏名又は名称】特許業務法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】モスト,デイビット ジョン
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA01
5K030HB17
5K030KA03
5K030LA03
5K030LC01
5K030MA13
(57)【要約】
本明細書において記述されている例示用の実装形態は、新しいデータを取得し、新しいデータを送信する又は新しいデータをキューに並べることの1つを実施する第1処理と、第1処理よりも低い優先度で実行される第2処理であって、キューに並べられたデータがリトライカウントを超過しているかどうかを判定すること、リトライカウントが閾値を超過していない場合にキューに並べられたデータを第3処理に転送すること、及びキューに並べられたデータがリトライカウントを超過している場合にキューに並べられたデータをエラー処理内に飛び出させることを含む第2処理と、キューに並べられたデータを第2処理から受け取った後に実行される第3処理であって、キューに並べられたデータを送信するために試みることを含む第3処理と、を含み得るIoT(Internet of Things)システムにおいてデータの送信を管理するシステムを含む。
【特許請求の範囲】
【請求項1】
方法であって、
新しいデータを取得すること、及び、
前記新しいデータを送信すること又は前記新しいデータをキューに並べることの1つを実施すること、
を含む第1処理と、
前記第1処理よりも低い優先度で実行される第2処理であって、 前記第2処理は、
キューに並べられたデータがリトライカウントを超過しているかどうかを判定すること、
前記リトライカウントが閾値を超過していない場合に前記キューに並べられたデータを第3処理に転送することし、及び、
前記キューに並べられたデータが前記リトライカウントを超過している場合に前記キューに並べられたデータをエラー処理内に飛び出させこと、
を含む第2処理と、
前記キューに並べられたデータを前記第2処理から受け取った後に実行される前記第3処理であって、
前記キューに並べられたデータを送信するために試みること
を含む第3処理と、
を含む方法。
【請求項2】
前記第2処理は、前記キューに並べられたデータを前記第3処理に転送した後に前記キューに並べられたデータを再びキューに並べることを更に含む、請求項1に記載の方法。
【請求項3】
前記キューに並べられたデータを前記第3処理に転送した後に前記キューに並べられたデータを再びキューに並べることは、
前記キューに並べられたデータのタイムスタンプを更新することと、
前記キューに並べられたデータの前記リトライカウントを減らすことと、
前記更新されたタイムスタンプ及び前記減らされたリトライカウントで前記キューに並べられたデータを再びキューに並べることと、
を含む、請求項2に記載の方法。
【請求項4】
前記キューに並べられたデータを前記エラー処理内に飛び出させることの後に次のキューに並べられたデータに対して前記第2処理を再実行することを更に含む、請求項1に記載の方法。
【請求項5】
前記新しいデータは、複数の異なる種類のセンサのうちの1つから受け取られ、前記第1処理、前記第2処理、及び前記第3処理は、前記新しいデータと関連する前記複数の異なる種類のセンサのうちの前記1つに基づいて稼働するように構成されている、請求項1に記載の方法。
【請求項6】
前記新しいデータをキューに並べることは、前記新しいデータのサイズに基づいて前記新しいデータについての前記リトライカウントを設定することを含む、請求項1に記載の方法。
【請求項7】
第2処理は、前記新しいデータのサイズに基づいて設定された保証されたリトライレートで実行される、請求項1に記載の方法。
【請求項8】
第2処理は、前記データのサイズに従って設定されたバッチカウントに従って実行される、請求項1に記載の方法。
【請求項9】
処理を実行するための命令を格納するコンピュータプログラムであって、
前記命令は、
新しいデータを取得することと、
前記新しいデータを送信する又は前記新しいデータをキューに並べることの1つを実施することと、
を含む第1処理と、
前記第1処理よりも低い優先度で実行される第2処理であって、
キューに並べられたデータがリトライカウントを超過しているかどうかを判定することと、
前記リトライカウントが閾値を超過していない場合に前記キューに並べられたデータを第3処理に転送することと、
前記キューに並べられたデータが前記リトライカウントを超過している場合に前記キューに並べられたデータをエラー処理内に飛び出させることと、
を含む第2処理と、
前記キューに並べられたデータを前記第2処理から受け取った後に実行される前記第3処理であって、
前記キューに並べられたデータを送信するために試みること、
を含む、コンピュータプログラム。
【請求項10】
前記第2処理は、前記キューに並べられたデータを前記第3処理に転送した後に前記キューに並べられたデータを再びキューに並べることを更に含む、請求項9に記載のコンピュータプログラム。
【請求項11】
前記キューに並べられたデータを前記第3処理に転送した後に前記キューに並べられたデータを再びキューに並べることは、
前記キューに並べられたデータのタイムスタンプを更新することと、
前記キューに並べられたデータの前記リトライカウントを減らすことと、
前記更新されたタイムスタンプ及び前記減らされたリトライカウントで前記キューに並べられたデータを再びキューに並べることと、
を含む、請求項10に記載のコンピュータプログラム。
【請求項12】
前記キューに並べられたデータを前記エラー処理内に飛び出させることの後に次のキューに並べられたデータに対して前記第2処理を再実行することを更に含む、請求項9に記載のコンピュータプログラム。
【請求項13】
前記新しいデータは、複数の異なる種別のセンサの1つから受け取られ、前記第1処理、前記第2処理、及び前記第3処理は、前記新しいデータと関連する前記複数の異なる種別のセンサの前記1つに基づいて稼働するように構成されている、請求項9に記載のコンピュータプログラム。
【請求項14】
前記新しいデータをキューに並べることは、前記新しいデータのサイズに基づいて前記新しいデータについての前記リトライカウントを設定することを含む、請求項9に記載のコンピュータプログラム。
【請求項15】
第2処理は、前記新しいデータのサイズに基づいて設定された保証されたリトライレートで実行される、請求項9に記載のコンピュータプログラム。
【請求項16】
第2処理は、前記データのサイズに従って設定されたバッチカウントに従って実行される、請求項9に記載のコンピュータプログラム。
【請求項17】
装置であって、
新しいデータを取得することと、
前記新しいデータを送信すること又は前記新しいデータをキューに並べることの1つを実施することと、
を含む第1処理と、
前記第1処理よりも低い優先度で実行される第2処理であって、
キューに並べられたデータがリトライカウントを超過しているかどうかを判定することと、
前記リトライカウントが閾値を超過していない場合に前記キューに並べられたデータを第3処理に転送することと、
前記キューに並べられたデータが前記リトライカウントを超過している場合に前記キューに並べられたデータをエラー処理内に飛び出させることと、
を含む第2処理と、
前記キューに並べられたデータを前記第2処理から受け取った後に実行される前記第3処理であって、
前記キューに並べられたデータを送信するために試みることを含む第3処理と、
を実行するように構成されたプロセッサを有する装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、IoT(Internet of Things)システムを対象とし、更に詳しくは、IoTシステムにおけるデータストリームの保存及び転送の促進を対象とする。
【背景技術】
【0002】
リアルタイムセンサデータを収集し、このようなデータを対応する送信先に送信する際には、IoTシステムに影響を及ぼす2つの要因が存在する。一の要因は、送信先においてデータの喪失が存在しないことを保証することである。他の要因は、データフロー経路を可能な限りスムーズな状態に維持することである。
【発明の概要】
【発明が解決しようとする課題】
【0003】
IoTシステムにおいて、望ましい実装形態に応じてクラウドシステム、分析システム、基礎をなすクライアント装置、などのような適切な送信先に転送することを要するエッジノードのような処理システムにセンサデータをリアルタイムでストリーミングしてもよい。しかしながら、帯域幅制限及び正しくルーティング及び送信するべきセンサデータの容量に起因して、大量のデータが同一時間フレーム内において受け取られ、且つ処理システムによって迅速に処理されることを要する場合には、特に、データフロー経路がリアルタイムで維持される場合、或いは、データが過度に大きく且つ送信するために集約的演算リソースを必要としている場合には、上述の2つの要因を保証することが困難になりうる。
【課題を解決するための手段】
【0004】
本明細書において記述されている例示用の実装形態は、IoTシステムにおけるデータ送信を促進するために、エッジシステム又はその他の処理システムにおける保存及び転送を促進するシステム及び方法を対象とする。本明細書において記述されている例示用の実装形態において、受け取られたデータは、データフロー経路が輻輳している際、送信先が利用不能である際、或いは、データが即座に送信されえないその他の状況においては、ローカルデータベースに保存される。次いで、例示用の実装形態は、リアルタイムデータフロー経路に影響を及ぼすことを回避するために、保存及び転送プロセスの利用を通じてその意図された送信先に送信されるように、保存されたデータを徐々にスレッド化してメインデータフロー内に戻す。
【0005】
本明細書において記述されているように、本明細書において記述されている例示用の実装形態は、新しいデータを取り込み、新しいデータを発信する又は新しいデータをキューするうちの1つを実施する第1処理を伴いうるIoT(Internet of Things)システムにおけるデータの送信を管理するシステムを伴う。このような処理を通じて、データは、送信されない(例えば、なんらかの理由により送信に失敗した)場合には、キューに並ばされ、これにより、送信先におけるデータの喪失を回避するために送信されていないデータの送信をリトライするチャンスをシステムに許容しつつ、送信先パイプラインが送信されうるデータを送信することを阻止しないように、例示用の実装形態が送信されていないデータをデータストリームから引き出すことを許容する。
【0006】
また、例示用の実装形態は、キューに並べられたデータがリトライカウントを超過しているかどうかを判定すること及びリトライカウントが閾値を超過していない場合にキューに並べられたデータを第3処理に転送することを含んでいる、第1処理よりも低い優先順位で実行される第2処理を含む。従って、データは、本明細書において記述されているように、更新されたリトライカウント及びタイムスタンプによって自動的に再びキューに並べられ得る。
【0007】
例示用の実装形態は、キューに並べられたデータがリトライカウントを超過している場合に、キューに並べられたデータをエラー処理に飛び出させることを更に含む。また、第3処理は、キューに並べられたデータを第2処理から受け取った後に実行することが可能であり、キューに並べられたデータを送信することを試みることを含む。このような例示用の実装形態を通じて、キューに並べられた送信されていないデータをデータ送信のメインストリーム内に戻すことができる。このような例示用の実装形態は、新しいデータ用の経路を封鎖すること、キューに並べられたデータを送信すること、次いで、封鎖を解除することを伴う関連技術の実装形態とは対照的である。その代わりに、本明細書において記述されている例示用の実装形態は、到来データのフローを妨げることなしにパイプラインを通じて送信されていないデータを正常に提供することを促進する漸進的なスレッド化処理でデータをメインストリームに追加する処理を含む。例示用の実装形態において、このような送信されていないデータがそのオリジナルの意図された送信先に正常に送信されると、このデータはキューから削除され得る。
【0008】
本開示の態様は、方法を含むことが可能であり、方法は、新しいデータを取り込むこと及び新しいデータを送信すること又は新しいデータをキューに並べることの1つを実施することを含む第1処理と、第1処理よりも低い優先順位において実行される第2処理と、を含むことが可能であり、第2処理は、キューに並べられたデータがリトライカウントを超過しているどうかを判定することと、リトライカウントが閾値を超過していない場合にキューに並べられたデータを第3処理に転送することと、キューに並べられたデータがリトライカウントを超過している場合にキューに並べられたデータをエラー処理に飛び出させることと、含んでおり、第3処理は、キューに並べられたデータを第2処理から受け取った後に実行され、第3処理、キューに並べられたデータを送信することを試みることを含んでいる。
【0009】
本開示の態様は、コンピュータプログラムを含むことが可能であり、コンピュータプログラムは、新しいデータを取り込むこと、及び新しいデータを送信すること又は新しいデータをキューに並べられることの1つを実施することを伴う第1処理の命令と、第1処理よりも低い優先順位において実行される第2処理の命令と、第2処理は、キューに並べられたデータがリトライカウントを超過しているかどうかを判定すること、リトライカウントが閾値を超過していない場合に、キューに並べられたデータを第3処理に転送すること、及びキューに並べられたデータがリトライカウントを超過している場合にキューに並べられたデータをエラー処理内に飛び出させることを含み、キューに並べられたデータを第2処理から受け取った後に実行される第3処理の命令と、を含むことが可能であり、第3処理は、キューに並べられたデータを送信するために試みることを含む。命令は、非一時的なコンピュータ可読媒体上に保存され得、1又は複数のプロセッサによって実行されるように構成し得る。
【0010】
本開示の態様は、システムを含むことが可能であり、システムは、新しいデータを取り込みこと、及び新しいデータを送信すること又は新しいデータをキューに並べることの1つを実施することを含む第1処理を実行する手段と、第1処理よりも低い優先順位において実行される第2処理を実行する手段と、第2処理は、列に並べられたデータがリトライカウントを超過しているかどうかを判定すること、リトライカウントが閾値を超過していない場合にキューに並べられたデータを第3処理に転送すること、及びキューに並べられたデータがリトライカウントを超過している場合にキューに並べられたデータをエラー処理内に飛び出させることを含み、キューに並べられたデータを第2処理から受け取った後に実行される第3処理を実行する手段と、を含むことが可能であり、第3処理は、キューに並べられたデータを送信するために試みることを含む。
【0011】
本開示の態様は、装置を含むことが可能であり、装置は、新しいデータを取り込むこと、及び新しいデータを送信すること又は新しいデータを列に並べることの1つを実施することを含む第1処理と、第1処理よりも低い優先順位において実行される第2処理と、第2処理は、列に並べられたデータがリトライカウントを超過しているかどうかを判定すること、リトライカウントが閾値を超過していない場合にキューに並べられたデータを第3処理に転送すること、キューに並べられたデータがリトライカウントを超過している場合にキューに並べられたデータをエラー処理内に飛び出させることを含み、キューに並べられたデータを第2処理から受け取った後に実行される第3処理と、を実行するように構成されたプロセッサを含むことが可能であり、第3処理は、キューに並べられたデータを送信するために試みることを含む。
【0012】
本明細書において記述されている例示用の実装形態を通じて、リアルタイムデータストリーム経路に対する混乱を回避し且つ影響を極小化しつつ、意図された送信先への送信に失敗した後においても、より古いデータをIoTシステムデータストリーム内に再度組み込むことができる。
【図面の簡単な説明】
【0013】
【
図1】
図1は、例示用の一実装形態に係るデータの保存及び転送処理の例示用の視覚化を示す。
【0014】
【
図2】
図2は、例示用の一実装形態に係る単一データ転送の一例を示す。
【0015】
【
図3】
図3は、例示用の一実装形態に係るバッチデータ転送の一例を示す。
【0016】
【
図4A】
図4Aは、例示用の一実装形態に係る例示用のフロー図を示す。
【
図4B】
図4Bは、例示用の一実装形態に係る例示用のフロー図を示す。
【
図4C】
図4Cは、例示用の一実装形態に係る例示用のフロー図を示す。
【0017】
【
図5A】
図5Aは、本明細書において記述されている例示用の実装形態を促進するために利用され得る管理情報の例を示す。
【
図5B】
図5Bは、本明細書において記述されている例示用の実装形態を促進するために利用され得る管理情報の例を示す。
【0018】
【
図6】
図6は、例示用の一実装形態に係る複数の装置及びエッジ/クラウド処理装置を含むシステムを示す。
【0019】
【
図7】
図7は、いくつかの例示用の実装形態における、使用するのに適した例示用のコンピュータデバイスを有する例示用の演算環境を示す。
【発明を実施するための形態】
【0020】
以下の詳細な説明は、本出願の図及び例示用の実装形態の更なる詳細を提供している。図間における冗長要素の参照符号及び説明は、わかりやすさを目的として省略されている。説明の全体を通じて使用されている用語は、例として提供されるものであり、従って、限定を意図したものではない。例えば、「自動的」という用語の使用は、本出願の実装形態を実施する当業者の望ましい実装形態に応じて、実装形態の特定の態様に対するユーザ又は管理者の制御を伴う完全に自動的な又は半自動的な実装形態を含んでもよい。選択は、ユーザインターフェイス又はその他の入力手段を通じてユーザによって実施することができ、或いは、望ましいアルゴリズムを通じて実装することができる。本明細書において記述されている例示用の実装形態は、単独で又は組合せにおいて利用することが可能であり、例示用の実装形態の機能は、望ましい実装形態に係る任意の手段を通じて実装することができる。
【0021】
本明細書において記述されている例示用の実装形態は、複数の出力場所にリアルタイムでストリーミングされる大量のデータを含むIoTシステムの保存及び転送エッジ/クラウドプロセスの促進を対象としている。このようなIoTシステムにおいて、しばしば、データを喪失することができず、且つ可能な場合には出力の送信先に送信することを要するという要件が存在している。このようなIoTシステムにおいて、ネットワーク接続問題、送信先のダウン、受信データの変形などに起因して、データの送信が、その送信先へ到達することから妨げられる可能性がある。しかしながら、受け取られたデータの一部分を送信することができない際には、システムは、このようなデータの送信がデータの一部分を送信する際の障害に起因して停止されないように、データのライブストリームを依然として受信してもよい。
【0022】
例示用の実装形態において、システムによって受け取られたデータメッセージは、優先システムを促進するためにタイムスタンプと関連付けられている。例示用の実装形態においては、新しいデータメッセージの取り込みがある際には、単一のデータメッセージが反復的に送信のためにリトライされないように、データメッセージに、システムに進入した時刻に基づいて優先度が割り当てられている。従って、システムが進行中のものを徐々に回復しうるように且つデータが正常に送信されることを許容しうるように、データメッセージがリトライされた後に遅延が存在している。
【0023】
図1は、例示用の一実装形態に係るデータの保存及び転送処理の例示用の視覚化を示している。
図1において、データストリーム及び処理は、説明の容易性を目的として車両とともにハイウェイとして示されており、それぞれの車両は、送信されるべきデータ(例えば、パケット、ファイル、メッセージ、など)を表している。
【0024】
IoTシステムにおいて、処理システム又はエッジシステムは、リアルタイムデータストリーム100を受け取る。保存及び転送データ処理の例示用の実装形態は、データを様々な送信先に送信するように構成されたエッジシステム又は処理システムにおいて実装することができる。このようなエッジシステム又は処理システムは、その意図されている送信先に到達することに失敗したデータを収集するように構成されている。送信先までのメインリアルタイムフロー経路は、IoTシステムのリアルタイム性に起因して、データ経路が輻輳する又はスムーズであるかどうかとは無関係に、データフローを継続的に受け取ってもよい。従って、本明細書において記述されている例示用の実装形態の保存及び転送データ処理は、リアルタイムデータフローに影響を及ぼすことなしにその意図されている送信先にスムーズに到達するように、収集されたデータをメインフローに戻すように構成されている。例示用の実装形態において、データフローは、ローカルトラフィック(保存されているデータ)がプライマリハイウェイトラフィック(メインリアルタイムデータフロー)に戻ることを許容するためにハイウェイメータリングゲートのように振る舞う。これによれば、例示用の実装形態の処理は、リトライカウントの許容された閾値内において送信元と送信先との間の切断に起因したデータ喪失を内部的に除去し、これにより、主要なリアルタイムデータフローに対する影響が極小化される。
【0025】
本明細書において記述されている例示用の実装形態において、保存及び転送処理は、キューに保存されるデータを管理するために、以下の管理情報を利用する。
【0026】
リトライカウントは、取得され且つエラー処理取扱のために構成されたエラー送信先に送信される前に、特定のキューに並べられたデータがキューからリアルタイムデータストリーム内に再度送信されることを要する回数を示している。リトライカウントは、データが失効する且つエラー処理によって取り扱われる際を追跡するために、データポイントがリトライされるごとに減らされる。
【0027】
リトライレートは、キューからリアルタイムストリーム内に戻るそれぞれの送信の間において待機する時間量であり、これは、概念的には、ハイウェイメータリング青信号インターバルと同様に機能する。
【0028】
バッチカウントは、それぞれのリトライの試みにおいてキューから送信するためのデータメッセージの最大数を示しており、これは、概念的には、ハイウェイメータリングゲートにおける青信号当たりの自動車の数と同様に機能する。
【0029】
試行タイムスタンプは、キュー内のキューに並べられたデータのそれぞれのリトライの試みごとに更新されるタイムスタンプである。このフィールドは、システムが、システム内において受け取られた時刻に基づいて優先度をソートすることを許容している。新しいデータが樹脂品された際に、試行タイムスタンプのフィールドは、現在の時刻に設定される。
【0030】
図1に示されているように、保存及び転送処理は、処理が、ハイウェイがトラフィック内にマージために試みている自動車を取り扱う方法とどうようにデータを取り扱う点で、ハイウェイシステムのものに概念的に類似している。到来するリアルタイムデータは、システムに進入するメインハイウェイ上の2つの自動車として視覚化することができる。このストリームは、阻止されない場合に、システムを通じて前進するのに伴って、データをその意図された送信先に継続的に送信するする。101では、データポイントが送信すること又はその意図された送信先に到達することに失敗した際には、データは、データをキューに並べ、同一のリアルタイムデータストリームを介して後の送信をリトライすることとなる保存及び転送プロセスに転送される。
【0031】
102で示されているように、このようなデータは、リアルタイムデータストリームに再度進入することを試みるためにキューに並べられている。データポイントが失効していない場合に、データは、リアルタイムストリームに再度進入するために、その意図されている送信先に到達することを試みるために保存及び転送処理に再度キューに並べられる。
【0032】
103では、リトライカウントがゼロに到達している場合には、データは、キューからの失効に起因してハイウェイを離脱する。それぞれのデータポイントは、いつデータポイントが失効するかを指示するリトライカウントを含む。リトライカウントがゼロに到達した際に、データポイントは、キューから取得され、望ましい実装形態に従って設定されたエラーキュー又はエラー取扱処理などの設定されたエラー送信先に送信される。リトライカウントは、放出される前にデータポイントがキュー内において保存され得る期間をユーザが操作することを許容するための閾値ゲートとして機能する。望ましい実装形態に従って設定されるリトライカウントに応じて、キューのサイズが調節され、それに従って割り当てられる。
【0033】
列に並べられたメッセージを取り扱い、リアルタイムデータストリームに送信する際には、望ましい実装形態に従って利用されうる2つの設定が存在することが可能であり、これらは、単一データ転送及びバッチデータ転送であり得る。
【0034】
図2は、例示用の一実装形態に係る単一データ転送の一例を示している。単一データ転送に設定されている際には、保存及び転送処理は、メッセージを一度に1つずつそのキューから送信する。
図2に示されている例において、DPは、データポイントを表し、受け取られ又はキューに並べられるのに伴うそれぞれのデータポイントを強調するために使用され、RCは、残りのリトライカウントを表し、0までカウントダウンされる現在のDPのリトライカウントを表すために使用されている。取り込みレートは、新しいデータがキューに並べられるために受け取られ、保存及び転送処理を介して送信される現時点のレートである。
図2に示されているように、以下の設定が保存及び転送処理に構成されている。
【0035】
取り込みレート-1DP/秒
【0036】
リトライレート-1DP/秒
【0037】
リトライカウント-2
【0038】
バッチカウント-1
【0039】
時間間隔が1秒(s)-2s-3s-...-nsと進むのに伴って、キューの視覚化は、到来データがキューに追加される方法と、リトライされたデータがキュー内においてより低い優先度に移動される方法と、を示している。それぞれの時間間隔において、システムは、現在のキューを検索し、試行タイムスタンプフィールドの昇順によって並べて、リトライされるべき第1DPを選択する。DPのそれぞれのリトライの試みの際に、保存及び転送処理は、予め保存されているDPがより高い優先度でリトライされることを許容するために、現在の時刻で試行タイムスタンプフィールドを更新することにより、RCを減らし、DPをキューの最下位に移動されてる。DPがキューから取り出されるたびに、システムは、RC値をチェックし、これがゼロに等しい(即ち、残りのリトライの試みが存在しておらず、且つ、失効している)場合には、データはエラー取扱場所(例えば、エラートピックキュー)に送信される。その後に、キューの最上位の次の値が即座にリトライされ、同一のプロセスに従う。DPが有効なRCを有する場合には、そのDPをその意図されている送信先に送信されることをリトライすることをサービスに通知するために、アラートがシステムに送信される。キューを容易化するバッファ内に新しいデータをキューに並べる際に、試行タイムスタンプを現在の時刻に設定することにより、キューに並べられたデータは現在のシステムの最下位の優先度でスタックの最下位に追加される。
【0040】
図3は、例示用の一実装形態によるバッチデータ転送の一例を示している。バッチデータ転送のために設定されている際には、保存及び転送処理は、一度に最大数n個のメッセージを送信する。
図3において、DPは、データポイントを表し、受け取られ又は列に並べられるのに伴ってそれぞれのデータポイントを強調するために使用され、RCは、残りのリトライカウントを表し、0までカウントダウンされる現時点のDPのリトライカウントを表すために使用される。取り込みレートは、新しいデータがキューに並べられるために受け取られ、保存及び転送処理を介して送信される現在のレートである。
図3に示されているように、以下の設定が保存及び転送処理に構成されている。
【0041】
取り込みレート-1DP/秒
【0042】
リトライレート-1DP/秒
【0043】
リトライカウント-2
【0044】
バッチカウント-2
【0045】
時間間隔が1秒(s)-2s-3s-...-nsと進むのに伴って、キューの視覚化は、到来データがキューに追加される方法と、リトライされたデータがキュー内においてより低い優先度に移動される方法と、を示している。それぞれの時間間隔ごとに、システムは、現時点のキューを検索し、試行タイムスタンプフィールドの昇順によって並べられ、リトライされるべきDPのバッチカウント数のトップの組を選択する。DPのそれぞれの組のリトライの際に、RCは、それぞれのデータポイントごとに減らされ、予め保存されたDPが相より高い優先度でリトライされることを許容するために、現在の時刻で試行タイムスタンプフィールドを更新することにより、DPがキューの最下位に移動されている。DPの組がキューから取り出されるたびに、システムは、それぞれのRC値をチェックし、いずれかがゼロに等しい(即ち、残りのリトライの試みが存在しておらず、且つ、失効している)場合には、これらの特定のDPは、エラー取扱場所(我々のケースの場合には、エラートピックキュー)に送信される。その後に、有効なRCを有する残りのDPが存在している場合には、これらのDPのその意図された宛先へのディスパッチをリトライすることをサービスに通知するために、アラートがシステムに送信される。残りのDPが存在していない場合には、同一の処理により、キューの最上位における次のバッチが即座にリトライされる。新しいデータを保存及び転送処理でキューに並べる際に、これは、試行タイムスタンプを現在の時刻に設定することにより、現在のシステムの最下位の優先度でスタックの最下位に追加される。
【0046】
図4A及び
図4Cは、例示用の一実装形態に係る例示用のフロー図を示している。具体的には、
図4Aは、新しいデータの取り込み取得を管理する第1処理を示しており、これは、401においてデータが受信された際に実行される。402において、第1処理は、データが送信先に送信されうるかどうかを判定するために新しいデータを取り込んでいる。ディスパッチされうる場合(Yes)には、フローは、望ましい実装形態に従って、データを対応する送信先に送信するために403に進み、そうではない場合(No)には、フローは、データをデータベース又は一時的ストレージ内においてキューに並べるために404に進む。更には、404のフローは、望ましい実装形態に応じて、第1処理に、保存及び転送機能を促進する第2処理をトリガさせることを含み得る。
【0047】
図4Bは、例示用の一実装形態による保存及び転送機能を促進する第2処理を示している。例示用の実装形態において、保存及び転送処理は、410においてトリガイベントが発生した際に実行される。このようなトリガイベントは、望ましい実装形態によれば、期間が経過した際、第1処理がリトライレートを保証するために第2処理を起動した際、エラー取扱処理が実行された際、などを含み得る。第1処理及び第2処理がスレッド化された処理である例示用の実装形態においては、第2処理は、新しいデータの取得が保存及び転送処理の実行よりも優先されることを保証するために、第1処理スよりも低い優先度で起動される。
【0048】
411において、第2処理は、残っているキューに並べられたデータが存在するかどうかを判定するためにデータベースのデータをチェックする。412において、このようなキューに並べられたデータが存在しているかどうかについての判定が行われる。存在していない場合(No)には、第2処理は終了し、さもなければ(Yes)、フローは、413に進む。413において、列に並べられたデータに関連するリトライカウントが超過していないか(例えば、データが失効していない)どうかについての判定が行われる。上述の例示用の実装形態において、リトライカウントは、キューに並べられたデータが送信を完了させることに失敗するたびにリトライカウントを減らすという形態において実装されており、この場合に、リトライカウントは、カウントがゼロに低下した際に超過したものと判定される。しかしながら、当業者は、列に並べられたデータが送信を完了させることに失敗するたびにリトライカウントを増分するような実装形態に変更することも可能であり、この場合には、リトライカウントは、カウントが特定の閾値に到達した際に超過したものと判定される。任意のこのような実装形態は望ましい実装形態に従って利用することができる。リトライカウントを超過した場合(Yes)には、フローは、キューに並べられたデータをデータベースからエラープロセス内に飛び出させることにより、エラー取扱い処理を実行するために、415に進み、これにより、キューに並べられデータをデータベースから除去する。このようなエラー処理は、飛び出されたデータを削除し、データの送信に失敗したことを通知するためのメッセージを飛び出されたデータの送信元に返送するように、或いは、さもなければ、望ましい実装形態に従って、構成されたスレッド処理の形態を有することができる。また、望ましい実装形態に応じて、415におけるエラー取扱処理の実行は、キューに並べられたデータがリトライカウントの超過に起因してオリジナルの反復において送信されなかったことに伴って、第2処理を再度実行するための410用のトリガとして機能することもできる。このようにして、リトライカウントを超過していない少なくともいくつかのキューに並べられたデータが少なくとも1回処理され得るまで、第2処理が常に反復されることを保証するためにエラー取扱処理415が実行された後に、次のキューに並べられたデータに対して作用するように第2処理は再実行され得る。
【0049】
リトライカウントを超過していない場合(No)には、フローは、キューに並べられたデータについての離脱処理である
図4Cに示されている第3処理を実行するために414に進む。416において、フローは、キューに並べられたデータに関連するリトライカウントを減らすために416に進み、次いで、417において更新済みのタイムスタンプによってデータを再びキューに並べる。
【0050】
図4Cは、例示用の一実装形態に係る離脱処理414を促進する第3処理の一例を示している。第3処理414は、キューに並べられたデータが受け取られた際に420でトリガされる。421において、第3処理は、データをリアルタイムデータストリームを通じて送信することを試みる。送信が成功した場合(Yes)には、キューに並べられたデータが、422においてシステムから送信され、この際に、第3処理は、キューからデータを削除する。例示用の実装形態において、
図4A~
図4Cの処理は、第3処理がデータを送信するために試みている間に416及び417における第2処理のフローが同時に第2処理によって実行され得るように、スレッドとして実行され得る。従って、第3処理は、送信された場合にも第2処理によって再びキューに並べられたデータを反映するように、正常に送信されたらキューからのデータの削除を取扱うように構成されている。
【0051】
図5A及び
図5Bは、本明細書において記述されている例示用の実装形態を促進するために利用されうる管理情報の例を示す。具体的には、
図5Aは、例示用の実装形態に係るシステムがセンサの異なる種別を管理するための例示用の管理情報を示す。本明細書における例示用の実装形態において、IoTシステムは、データの異なるサイズなどと関連し得る異なる種類のセンサを管理してもよい。
図5Aにおいて示されているように、管理情報は、センサ種類、データサイズ、リトライカウント、バッチフラグ、及び保証されたレートを含み得る。センサ種類は、受け取られたデータと関連するセンサの種類を示す。センサ種類は、ソースセンサアレイに基づいて、データのサイズにより、或いは、さもなければ望ましい実装形態に従って、判定することができる。データサイズは、センサ種類と関連するデータメッセージのサイズを示す。リトライカウントは、センサ種類のデータメッセージについて設定されたリトライカウントを示す。リトライカウントは、望ましい実装形態を促進ためにデータサイズに従って設定することができる(例えば、より小さなデータに対してより大きなリトライカウント、相より大きなデータに対してより小さなリトライカウント、など)。バッチカウントフラグは、センサデータの種類がバッチとして送信されうるかどうかを示すことができる。
【0052】
例示用の実施形態において、
図5Aの管理情報及びキュー内に保存されているセンサデータの種類に基づいて、システムの第1、第2、及び第3処理は、このようなキューに並べられたデータの取り扱いを相応して促進するように設定を構成することができる。例えば、キューに並べられたデータのすべてがバッチ送信が可能になっているセンサ種類と関連付けられている場合(Yes)には、処理、バッチカウントにおいてメッセージを送信ように構成することができる(例えば、50MBなどのサイズが送信されるまでバッチ内のデータメッセージを送信することを試みる)。保証レートは、データのサイズに基づいて設定することができる(例えば、レートは、送信されるデータのサイズに基づいて、トライの回数x/秒において設定され、この場合に、より小さなデータは、より大きなデータよりもより頻繁にリトライすることができる)。
【0053】
図5Bは、例示用の一実装形態に係るデータベースキュー内において保存されているデータに関する例示用の管理情報を示す。データは、データメッセージID、送信元、送信先、データサイズ、センサ種類、及びリトライカウントを示すメタデータと関連し得る。データメッセージIDは、システムに取り込まれる際にデータと関連付けられる識別子である。望ましい実装形態に応じて、データメッセージIDは、データの取り込みが発生した際にシステムによって提供されるタイムスタンプであり得る。このようにして、データメッセージIDは、データメッセージがデータベース内に再びキューに並べられるたびに新しいタイムスタンプによって更新することができる。ソースは、データメッセージのソースを示し、望ましい実装形態に従って任意の形態(例えば、IPアドレス、センサID、など)であり得る。システムがデータに対するエラー処理を必要としている際には、メッセージが送信先への送信に失敗したことを示すために、データメッセージは送信先に送信され得る。送信先は、データメッセージの出力の送信先を示すことが可能であり、望ましい実装形態による任意の形態(例えば、IPアドレス、など)であり得る。データサイズは、データメッセージのサイズを示し得る。センサ種類は、受信されたセンサデータの種類を示し得る。リトライカウントは、データメッセージに関連するリトライカウントである。
【0054】
図6は、例示用の一実装形態に係る複数の装置及びエッジ/クラウド処理装置を含むシステムを示す。1又は複数の装置又は装置システム601-1、601-2、601-3、及び601-4は、ネットワーク600に通信可能に接続され、センサデータのようなデータを受け取り、データをその対応する送信先に送信するように構成されているエッジ/クラウド処理装置602にセンサデータをストリーミングする。エッジ/クラウド処理装置602は、データベース603を管理し、データベース603は、送信されるべきキューに並べられたデータを管理する。このような装置又は装置システムは、クーラー、エアコンディショナ、サーバー、などの静止型装置又は機器のみならず、自動車、トラック、クレーン、などのモバイル装置又は機器のみならず、ライブストリーミングデータを送信し得る任意のその他の装置を含むことができる。このような装置は、センサデータを保守計画装置602に提供するセンサを含み得る。
【0055】
図7は、
図6に示されているエッジ/クラウド処理装置602などのいくつかの例示用の実装形態において使用するのに適した例示用のコンピュータデバイスを有する例示用の演算環境を示す。演算環境700内のコンピュータデバイス705は、1又は複数の処理ユニット、コア、又はプロセッサ710、メモリ715(例えば、RAM、ROM、等)、内部ストレージ720(例えば、磁気、光、ソリッドステートストレージ、及び/又は有機的なもの)、及び/又はI/Oインターフェイス725を含むことが可能であり、これらの任意のものは、情報を通信するべく通信メカニズム又はバス730上において接続されることが可能であり、或いは、コンピュータデバイス705内において埋め込むこともできる。また、I/Oインターフェイス725は、望ましい実装形態に応じて、カメラから画像を受け取るように、又はプロジェクタ又はディスプレイに画像を提供するように構成されている。
【0056】
コンピュータデバイス705は、入力/ユーザインターフェイス735及び出力デバイス/インターフェイス740に通信可能に接続することができる。入力/ユーザインターフェイス735及び出力デバイス/インターフェイス740の一方又は両方は、有線又は無線インターフェイスであることが可能であり、着脱可能であってよい。入力/ユーザインターフェイス735は、入力を提供するために使用され得る物理的又は仮想的である任意のデバイス、コンポーネント、センサ、又はインターフェイスを含んでもよい(例えば、ボタン、タッチスクリーンインターフェイス、キーボード、ポインティング/カーソル制御、マイクロフォン、カメラ、ブライユ、モーションセンサ、光学リーダー等)。出力デバイス/インターフェイス740は、ディスプレイ、テレビ、モニタ、プリンタ、スピーカ、ブライユ等を含んでもよい。いくつかの例示用の実装形態において、入力/ユーザインターフェイス735及び出力デバイス/インターフェイス740は、コンピュータデバイス705と共に埋め込まれることが可能あり、或いは、これに物理的に接続することもできる。その他の例示用の実装形態において、その他のコンピュータデバイスは、コンピュータデバイス705用の入力/ユーザインターフェイス735及び出力デバイス/インターフェイス740として機能していてもよく、或いは、この機能を提供するようにしてもよい。
【0057】
コンピュータデバイス705の例は、限定を伴うことなしに、高度なモバイルデバイス(例えば、スマートフォン、車両及びその他の機械内のデバイス、人間及び動物によって携帯されるデバイス等)、モバイルデバイス(例えば、タブレット、ノートブック、ラップトップ、パーソナルコンピュータ、携帯型テレビ、ラジオ等)、及び移動性を目的として設計されてはいないデバイスを含んでもよい(例えば、デスクトップコンピュータ、その他のコンピュータ、情報キオスク、その内部に埋め込まれた/それに結合された1又は複数のプロセッサを有するテレビ、ラジオ等)。
【0058】
コンピュータデバイス705は、同一又は異なる構成の1又は複数のコンピュータデバイスを含む任意の数のネットワーク接続されたコンポーネント、デバイス、及びシステムと通信するために外部ストレージ745及びネットワーク750に(例えば、I/Oインターフェイス725を介して)通信自在に結合することができる。コンピュータデバイス705又は任意の接続されているコンピュータデバイスは、サーバー、クライアント、シンサーバー、汎用機械、特殊目的機械、又は別のラベルとして機能することが可能であり、これらのサービスを提供することが可能であり、或いは、これらと呼称することができる。
【0059】
I/Oインターフェイス725は、限定を伴うことなしに、情報を演算環境700内の少なくともすべての接続されたコンポーネント、デバイス、及びネットワークに、又はこれらから情報を通信するための任意の通信又はI/Oプロトコル又は規格(例えば、Ethernet、802.11x、ユニバーサルシステムバス、WiMax、モデム、セルラーネットワークプエロトコル等)を使用した有線及び/又は無線インターフェイスを含むことができる。ネットワーク750は、任意のネットワーク又はネットワークの組合せであってよい(例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、電話ネットワーク、セルラーネットワーク、衛星ネットワーク等)。
【0060】
コンピュータデバイス705は、一時的媒体及び非一時的媒体を含むコンピュータ使用可能又はコンピュータ可読媒体を使用すること、且つ/又は、これを使用して通信することができる。一時的媒体は、送信媒体(例えば、金属ケーブル、光ファイバ)、信号、搬送波等を含む。非一時的媒体は、磁気媒体(例えば、ディスク及びテープ)、光媒体(例えば、CD-ROM、デジタルビデオディスク、Blu-ray(登録商標)ディスク)、半導体媒体(例えば、RAM、ROM、フラッシュメモリ、半導体ストレージ)、及びその他の不揮発性ストレージ又はメモリを含む。
【0061】
コンピュータデバイス705は、いくつかの例示用の演算環境において技術、方法、アプリケーション、処理、又はコンピュータ実行可能命令を実装するために使用することができる。コンピュータ実行可能命令は、一時的媒体から取得することが可能であり、つ、非一時的媒体上において保存することが可能であり、これらから取得することができる。実行可能命令は、任意のプログラミング、スクリプティング、及び機械言語(例えば、C、C++、C#、Java(登録商標)、Visual Basic、Python、Perl、JavaScript(登録商標)、及びその他のもの)の1又は複数に由来するものであり得る。
【0062】
プロセッサ(複数も含む)710は、ネイティブ又は仮想環境において任意のオペレーティングシステム(OS)(図示せず)下において稼働することができる。論理ユニット760、アプリケーションプログラミングインターフェイス(API)ユニット765、入力ユニット770、出力ユニット775、並びに、互いに、OSと、その他のアプリケーション(図示されてはいない)と通信するための異なるユニット用のユニット間通信メカニズム795を含む1又は複数のアプリケーションを配備することができる。記述されているユニット及び要素は、設計、機能、構成、又は実装形態において変化することが可能であり、提供されている説明に限定されるものではない。プロセッサ710は、中央処理ユニット(CPU)などのハードウェアプロセッサの形態又はハードウェア及びソフトウェアユニットの組合せにおけるものであってよい。
【0063】
いくつかの例示用の実装形態において、情報又は実行命令がAPIユニット765によって受け取られた際には、これを1又は複数のその他のユニット(例えば、論理ユニット760、入力ユニット770、出力ユニット775)に通信してもよい。いくつかの例において、論理ユニット760は、上述のいくつかの例示用の実装形態において、ユニットの間における情報フローを制御し、APIユニット765、入力ユニット770、出力ユニット775によって提供されるサービスを制御するように構成してもよい。例えば、1又は複数のプロセス又は実装形態のフローは、論理ユニット760単独、又はAPIユニット765との関連により制御されてもよい。入力ユニット770は、例示用の実装形態において記述されている計算のための入力を得るように構成されていてもよく、出力ユニット775は、例示用の実装形態において記述されている計算に基づいて出力を提供するように構成されていてもよい。
【0064】
メモリ715は、例示用の実装形態を促進するために、
図5A及び
図5Bに示されている管理情報を保存するように構成することができる。データベース602は、望ましい実装形態に係る例示用の実装形態を促進するために、メモリ715及び/又は内部ストレージ720のみならず、ストレージシステムの形態における外部ストレージ745のいくつかの組合せにより、促進することができる。
【0065】
プロセッサ710は、新しいデータを取り込むこと及び新しいデータを送信する又は新しいデータをキューに並べることの1つを実行することを含み
図4Aに示されている第1処理と、キューに並べられたデータがリトライカウントを超過しているかどうかを判定すること、リトライカウントが閾値を超過していない場合にキューに並べられたデータを第3処理に渡すこと、及びキューに並べられたデータがリトライカウントを超過している場合にキューに並べられたデータをエラー処理内に飛び出させることを含む
図4Bに示されている第1処理よりも低い優先度において実行される第2処理と、
図4Cに示されるように、キューに並べられたデータを第2処理から受け取った後に実行される第3処理と、を実行するように構成することが可能であり、第3処理は、キューに並べられたデータを送信するために試みることを含む。第1処理、第2処理、及び第3処理がスレッドとして実行されている例示用の実装形態においては、第2処理は、データが送信される際に、到来する新しいデータをキューに並べられているデータよりも優先するように、第1処理よりも低い優先度で定期的に起動することができる(例えば、第1処理は、リアルタイムで連続的に稼働し、第2処理は、2~3秒ごとに実行される)。
【0066】
例示用の一実装形態において、第2処理は、417において示されているようにキューに並べられたデータを第3処理に転送した後にキューに並べられたデータを再びキューに並べることを更に含むことが可能であり、この場合に、第3処理は、第3処理がデータを正常に送信した場合に、再びキューに並べられたデータを削除すること及び
図5Bの管理情報からのエントリを削除することの責任を担っている。このように、第2及び第3処理を同時に実行することができる。例示用の一実装形態において、キューに並べられたデータを第3処理に転送した後のキューに並べられたデータを再びキューに並べることは、キューに並べられたデータ416についてのリトライカウントを減じることと、417において更新されたタイムスタンプ及び減じられたリトライカウントとを有するキューに並べられたデータを再びキューに並べることと、を含むことができる。このように、管理情報は、
図4Cの第3処理からの試みられた送信プロセスと同時に
図5Bにおいて更新され得る。
【0067】
例示用の一実装形態において、プロセッサ710は、キューに並べられたデータをエラー処理内に飛び出させた後に次のキューに並べられたデータに対して第2処理を再実行するように構成することができる。このような例示用の一実装形態において、第2処理が起動され、第2処理の実行からエラー取扱い処理415のみが起動された場合には、これにより、第2処理が起動された際に離脱処理414がキューに並べられたデータのいくつかに対して実行されることを保証するために第2処理プロセスを反復することができる。
【0068】
図5Aに示されているように、新しいデータは複数の異なる種類のセンサの1つから受け取ることが可能であり、これにおいて、第1処理、第2処理、及び第3処理は、望ましい実装形態に従って、リトライカウント、送信されるべきデータのサイズ、などを調節することを通じて新しいデータと関連する複数の異なる種類のセンサの1つに基づいて稼働するように構成されている。このような例示用の実装形態においては、様々なサイズであり、様々な種類のセンサからのデータは、プロセッサ710によって処理されることが可能であり、保存及び転送処理によって促進されるように均一である必要はない。
【0069】
例示用の実装形態において、プロセッサ710は、新しいデータのサイズに基づいて新しいデータについてのリトライカウントを設定することにより、新しいデータ404のキューに並べることを促進することができる。リトライカウントは、データのサイズに基づいてリトライカウント(例えば、相対的に小さなデータに相対的に大きなリトライカウント)を割り当てる
図5Aに示されている管理情報に従って設定され得る。
【0070】
望ましい実装形態に応じて、第2処理は、新しいデータのサイズに基づいて設定された保証されたリトライレートで実行され得る。例えば、第2処理は、キュー内のデータメッセージのそれぞれのサイズが所定のサイズを超過していない場合には、1秒あたりに1つのメッセージの割合で定期的に実行され得、望ましい実装形態に従って上方に又は下方に調節され得る。
【0071】
望ましい実装形態に応じて、第2処理は、データのサイズに従って設定されたバッチカウントに従って実行され得る。例えば、第2処理は、設定された数のメッセージ又はデータの合計サイズが送信される時点まで可能な限り多くのメッセージの送信を試みるために定期的に実行され得、これは、より小さなデータの場合により大きくすることが可能であり、或いは、より大きなデータの場合にはより小さくすることが可能であり、或いは、さもなければ、望ましい実装形態に従って決定することもできる。
【0072】
詳細な説明のいくつかの部分は、コンピュータ内の動作のアルゴリズム及びシンボリック表現の観点において提示されている。これらのアルゴリズムの説明及びシンボリックな表現は、そのイノベーションのエッセンスを当業者に伝達するためにデータ処理技術分野における当業者によって使用されている手段である。アルゴリズムは、望ましい最終状態又は結果をもたらす一連の定義されたステップである。例示用の実装形態において、実行されるステップは、有体の結果を実現するべく有体の量の物理的操作を必要としている。
【0073】
説明から明らかであるように、そうではない旨が具体的に記述されていない限り、本説明の全体を通じて、「処理」、「演算」、「計算」、「判定」、「表示」、又はこれらに類似したものなどの用語を利用した説明は、コンピュータシステムのレジスタ及びメモリ内の物理的(電子的)量をコンピュータシステムのメモリ又はレジスタ又はその他の情報ストレージ、送信、又は表示装置内の物理的量として同様に表されているその他のデータに操作及び変換するコンピュータシステム又はその他の情報処理装置のアクション及びプロセスを含みうることを理解されたい。
【0074】
また、例示用の実装形態は、本明細書の動作を実行する装置にも関係してもよい。この装置は、必要とされる目的のために具体的に構築されていてもよく、或いは、これは、1又は複数のコンピュータプログラムによって選択的に起動又は再構成される1又は複数の汎用コンピュータを含むこともできる。このようなコンピュータプログラムは、コンピュータ可読ストレージ媒体又はコンピュータ信号媒体などのコンピュータ可読媒体内において保存することができる。コンピュータ可読ストレージ媒体は、限定を伴うことなしに、光ディスク、磁気ディスク、読み出し専用メモリ、ランダムアクセスメモリ、半導体装置及びドライブ、又は電子情報を保存するのに適した任意のその他のタイプの有体の又は一時的ではない媒体などの有体の媒体を伴うことができる。コンピュータ可読信号媒体は、搬送波などの媒体を含んでもよい。本明細書において提示されているアルゴリズム及び表示は、任意の特定のコンピュータ又はその他の装置に本質的に関係付けられているものではない。コンピュータプログラムは、望ましい実装形態の動作を実行する命令を伴う純粋なソフトウェア実装形態を伴うことができる。
【0075】
様々な汎用システムが、本明細書の例によるプログラム及びモジュールと共に使用されてもよく、或いは、望ましい方法ステップを実行するべくより専門的な装置を構築することが便利であると判明する場合もある。これに加えて、例示用の実装形態は、任意の特定のプログラミング言語を参照して記述されてはいない。様々なプログラミング言語が本明細書において記述されている例示用の実装形態の教示を実装するべく使用されうることを理解されたい。プログラミング言語の命令は、例えば、中央処理ユニット(CPU)、プロセッサ、又はコントローラなどの1つ又は複数の処理装置によって実行することができる。
【0076】
当技術分野において既知のように、上述の動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアのいくつかの組合せによって実行することができる。例示用の実装形態の様々な態様は、回路及び論理装置(ハードウェア)を使用して実行されうる一方で、その他の態様は、機械可読媒体上において保存されている命令(ソフトウェア)を使用して実装されていてもよく、これらの命令は、プロセッサによって実行された場合に、プロセッサが本出願の実装形態を実行するための方法を実行するようにすることになろう。更には、本出願のいくつかの例示用の実装形態は、ハードウェアにおいてのみ実行されてもよく、その他の例示用の実装形態は、ソフトウェアにおいてのみ実行されてもよい。更には、記述されている様々な機能は、単一ユニット内において実行されることが可能であり、或いは、任意のいくつかの方法においていくつかのコンポーネントに跨って分散させることもできる。ソフトウェアによって実行される際には、方法は、コンピュータ可読媒体上において保存されている命令に基づいて、汎用コンピュータなどのプロセッサによって実行することができる。適宜、命令は、圧縮及び/又は暗号化されたフォーマットにおいて媒体上において保存することができる。
【0077】
更には、本出願のその他の実装形態については、本出願の教示の仕様及び実施の検討から当業者に明らかとなろう。記述されている例示用の実装形態の様々な態様及び/又はコンポーネントは、単独で又は任意の組合せにおいて使用することができる。仕様及び例示用の実装形態は、例としてのみ見なされることを意図したものであり、本出願の真の範囲及び精神は、添付の請求項によって示されているとおりである。
【国際調査報告】