(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
本明細書に開示される技術は、ネットワークのノード装置に適用される設定変更(configuration changes)の管理に関するものである。ネットワークの個々のノードの動作は、ノードに保存された設定データ(configuration data)を設定する変更可能なパラメータと対応する値とのセットにより設定される。状況によって、ノードを管理するヘッドエンドシステムは、ノードの設定データの一部をその期待される設定から変更する必要があることがある。ノードおよび/またはノードが含まれるネットワークにおける制限により、変更を含む完全な設定を送信することは現実的ではない。そのため、必要な設定変更を1以上の命令として漸次ノードに送信することになる。
【0012】
また、時間とともに場合によっては他の装置によってノードに設定変更が加えられることにより、ヘッドエンドシステムが使用できるノードの期待されている設定がノードの実際の設定と異なっていることが、これらの変更をヘッドエンドシステムおよび/またはその他のコンピュータ装置によって用いられるノードに関する期待される設定に反映しない限り、ある。これにより、ヘッドエンドシステムにとってノードの実際の設定が明確ではない状態となることがある。また、ノードへの完全な設定の送信を阻害する制限により、ノードからの完全な設定の受信が阻害される。完全な設定は不明確であっても、変更が依存する設定の一部がノードに変更を加える前に確認されるならば、ノードに任意の設定変更を適用することは安全である。
【0013】
このため、コンピュータ装置は、例えば、ノード用の期待される設定ファイルとノード用の目標設定ファイルとの比較を行うことによって、ノードの設定に行われるべき変更を識別する。変更が識別されると、コンピュータ装置は、様々な考えられるパラメータとノード用の設定ファイルの対応する値との関係を特定するパラメータリファレンスを用いて、変更が依存する他のパラメータ(「影響を与えるパラメータ(governing parameters)」ともいう)を判断する。例えば、設定変更がノードにおけるサービスのオプションパラメータに関する場合、パラメータリファレンスは、そのオプションの設定が、まず、ノードにおいてそのサービスが有効化されていることを示すパラメータに依存することを示すことになる。
【0014】
影響を与えるパラメータを判断すると、期待される設定によって示される各影響を与えるパラメータの対応する値のチェックサムが計算される。その後、ノードに対してノードに設定された各影響を与えるパラメータの対応する値のチェックサムを計算するよう指示する命令が作成される。また、この命令は、ノードに対して、ノードによって計算されたチェックサムが命令によって指定された対応するチェックサムとマッチすることが確認されると、ノードの設定に識別された設定変更を行うよう指示をする。
【0015】
本明細書において、「期待される設定」は、ヘッドエンドシステムによって1以上のノードの現在の設定であると考えられるものを表すデータである。
【0016】
本明細書において、「目標設定」は、1以上のノードに適用されることになる設定を表すデータを指す。
【0017】
本開示を通じて、「設定」は「コンフィグ」とも呼ぶ。
【0018】
本明細書において、「差異パラメータ」は、期待される設定と目標設定の比較に基づき、これらの設定間で対応する値が異なるパラメータを指す。
【0019】
本明細書において、「影響を与えるパラメータ」は、差異パラメータが依存するパラメータを指す。
【0020】
以下、システムおよびその構成要素の概要を説明し、続いてその動作について説明する。
【0021】
図1に、各種の実施形態にかかるネットワーク化された環境100を示す。ネットワーク化された環境100は、コンピュータ装置103と、ヘッドエンドシステム106と、ノード107とを含む。コンピュータ装置103は、ネットワーク109aを介してヘッドエンドシステム106と通信し、ヘッドエンドシステム106は、ネットワーク109bを介してノード107と通信する。ネットワーク109a〜109bは、それぞれ、例えば、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、有線ネットワーク、無線ネットワーク、インターネット、イントラネット、エクストラネット、もしくはその他の適切なネットワークなど、またはこれらのネットワークの2つ以上の組み合わせを含む。例えば、このようなネットワークは、衛星ネットワーク、ケーブルネットワーク、イーサネット(登録商標)・ネットワーク、およびその他のタイプのネットワークを含んでもよい。
【0022】
コンピュータ装置103は、例えば、サーバコンピュータまたはその他の演算能力を備えるシステムを含んでもよい。代替的に、コンピュータ装置103は、例えば、1以上のサーバー列またはコンピュータ列またはその他の設定で配置された複数のコンピュータ装置を表してもよい。このようなコンピュータ装置は、一か所に設置されてもよいし、地理的に異なる多数の位置に分散して配置もよい。例えば、コンピュータ装置103は、ホスト型コンピューティングリソース、グリッド型コンピューティングリソース、および/またはその他の分散型コンピューティング配置を合わせて構成する複数のコンピュータ装置を表してもよい。場合によっては、コンピュータ装置103は、割り当てられた処理能力、ネットワーク、ストレージ、またはその他のコンピューティング関連リソースの容量が時間とともに変化する弾性コンピューティングリソースに対応してもよい。
【0023】
様々な用途および/またはその他の機能を、様々な実施形態に従ってコンピュータ装置103で実行することができる。また、コンピュータ装置103にアクセス可能なデータストア112には、各種のデータが保存される。データストア112が複数のデータストア112を表すものであってもよいことは、言うまでもない。データストア112に保存されたデータは、例えば、以下に説明する様々なアプリケーションおよび/または機能エンティティの動作と関連付けられる。
【0024】
コンピュータ装置103において実行される構成要素は、例えば、デルタジェネレータ121、および本明細書では詳細に説明しないそのほかのアプリケーション、サービス、処理、システム、エンジン、または機能を含む。デルタジェネレータ121は、適用される各設定変更が変更に依存する任意のパラメータの第1の有効値を有することを確認しつつ、1以上のノードに対する漸進的な設定変更を行うための命令を生成するために実行される。
【0025】
データストア112に保存されたデータは、例えば、期待される設定データ131、目標設定データ133、パラメータリファレンス135、命令データ137、およびその他考えられるデータを含む。期待される設定データ131は、保存された1以上のノード設定を含む。設定変更が任意のノード107に適用されたという通知が受信されると、当該任意のノード107に対応する設定も、現在の設定の状態を維持するためのこの変更に更新されてもよい。目標設定データ133は、様々なノードに適用されることが求められる1以上のノード設定を含む。任意のノードについての目標設定は、当初はノードの期待される設定に基づいてもよいが、パラメータおよび/またはパラメータの対応する値に対する1以上の変更を含んでいる。いくつかの実施例では、期待される設定データ131および/または目標設定データ133は、XML(拡張マークアップ言語)を用いてノードの設定に用いられるテーブル構造を定義しており、これによりテーブル構造はANSI(米国規格協会)規格C12.19規格に準拠するものとなる。
【0026】
パラメータリファレンス135は、考えられる各種のパラメータとこのパラメータに対応する各種の考えられる値の関係を指定する。ある実施例では、パラメータリファレンス135は、XMLを用いてノードの設定に用いられ、また各種の異なるテーブル構造を判断することができるパラメータとパラメータ値を示すとともに、考えられる各種のANSI規格C12.19テーブル構造を定義している。パラメータリファレンス135において表される定義から、特定の設定変更(例:パラメータ値の変更)に依存するパラメータが判断される。
【0027】
命令データ137は、1以上の命令のセットを含み、命令のセットは、それぞれ、示される影響を与えるパラメータ値が検証された後に1以上の設定変更を行うようノードに指示を出す。また、命令データ137は、命令のセットに関するメタデータを含むことができ、メタデータは、この命令を適用する1以上のノード107を識別し、命令を適用するべきまたは適用するべきではない条件、命令の適用の成功または不成功時に開始するべきアクション、および/またはその他の考えられるメタデータを含んでもよいことは理解されよう。パラメータの検証のために、命令は、ノードに設定された識別された各影響を与えるパラメータの対応する値のチェックサムを計算するようノード107に指示を出す。また、命令は、ノードに対して、ノードによって計算されたチェックサムが命令によって指定された対応するチェックサムとマッチすることが確認されると、ノードの設定に識別された設定変更を行うよう指示する。
【0028】
コマンドセンタやその他の種類のヘッドエンドシステムなどのヘッドエンドシステム106は、ノード107を管理しノードから受信した情報を処理するために用いることのできる1以上のコンピュータ装置を代表的なものである。ヘッドエンドシステム106において実行される様々な用途および機能の中でも、設定マネージャ161は、ネットワーク109bを介した各種のノード107の設定171の更新を容易にする。設定更新は、コンピュータ装置103から受信されたノード107の1以上に適用される命令データ137の1以上のセットに基づき指示される。
【0029】
各ノード107は、ネットワーク109bを介して命令を受信して、受信した命令を実行して現在設定を検証し、検証の結果に応じて設定に対する指示された変更を行うことができる任意のネットワーク対応機器を表す。ある実施例では、ノード107は、家やアパートなどの施設にある、ガス、水道、または電力などの公共資源(ユーティリティ)の消費量を測定するメータであってもよい。このようなメータは、アドバンスド・メータリング・インフラストラクチャ(AMI)や無線周波数(RF)ネットワークの一部とすることができる。ノードの他の例としては、ネットワークに取り付けられ、通信チャネル上で情報を送受信または転送することができる、ルータ、コレクタもしくは収集点、ホストコンピュータ、ハブ、またはその他の電子機器がある。
【0030】
ノード107は、本発明の実施例においてノードを機能させることができる複数の構成要素を含んでもよい。例えば、ノード107は、ノードを、ネットワーク109bなどのようなメッシュネットワークまたはその他のネットワークトポロジーにおける、類似のノード107および/もしくは他の装置と通信可能とすることができる無線機を含んでもよい。各ノード107の無線機は、無線機をコンピュータのように機能させることができるプログラマブルロジック制御装置(PLC)のような装置を含んでもよく、コンピュータ機能およびコマンド機能を実行し、本明細書に記載される本発明を実施することができる。また、ノード107は、他のノードとの通信に関する情報を保存する記憶媒体を含んでもよい。このような記憶媒体には、例えば、ノードの内部に設けられた、またはネットワークを介してノードがアクセス可能な、メモリ、フラッシュドライブ、CD−ROM、DVD、またはその他の記憶装置がある。また、ノード107は、計時を行う水晶発振器(すなわち、クロック)と、バックアップ電源となるバッテリーとを含んでもよい。ノード107には、バッテリーのみにより動作するものもある。
【0031】
次に、ネットワーク化された環境100の様々な構成要素の動作の概要を説明する。まず初めに、特定のノード107の設定を更新する命令を生成するために、デルタジェネレータ121は、ノード用の目標設定データ133とノード用の期待される設定データ131を取得する。
図2に、特定のノード107への命令データ137がデルタジェネレータ121によって生成可能な様々なデータソースの例となる図を示す。
図2に示す各種のデータはXMLを用いてフォーマットされているが、その他のバイナリまたはテキストデータフォーマットも可能である。ノード用の期待される設定データ131の一部を期待コンフィグで表し、ノード107用の目標設定データ133の一部を目標コンフィグで表す。そして、デルタジェネレータ121は、ノード用の期待されるコンフィグ(期待コンフィグ)とノード用の目標コンフィグとを比較する。
【0032】
この比較に基づいて、デルタジェネレータは、期待コンフィグと目標コンフィグとの間に差異があるかどうかを判断する。ここで、2つのコンフィグの間の違いは、「CONFIGURATION_TBL」というテーブルの「OPTION_2」パラメータの値のみである。期待コンフィグではこのパラメータの値は「1」であるが、目標コンフィグでのこのパラメータの値は「2」である。よって、このパラメータの値は、最終的にノード107のコンフィグ171において「2」に設定する必要がある。値が変更されることになるパラメータ(すなわち、「差異パラメータ」)に依存するパラメータがあるかどうか判断するために、デルタジェネレータはパラメータリファレンス135を参照する。
【0033】
図2に示すパラメータリファレンス135の抜粋では、差異パラメータ(すなわち、CONFIGURATION_TBLのOPTION_2)は、「UINT8」と示す符号なしの8ビットの整数である値を有するよう定義される。しかしながら、ノード107に設定されるCONFIGURATION_TBL内の差異パラメータの値がある位置は、当該テーブルの先に定義された他のパラメータ値に割り当てられたスペースに依存する。
図2に示す例示的パラメータリファレンス135は、CONFIGURATION_TBL内でOPTION_2を定義する前にテーブル要素「OPTION_1」を定義し、よってOPTION_2の位置はOPTION_1に割り当てられたスペースの後に隣接することになる。しかしながら、パラメータリファレンス135においてOPTION_1の定義に用いられる条件文(すなわち、IF THEN-ELSE)に基づき、OPTION_1に割り当てられたスペースは、「VERSION_TBL」というテーブルの「VERSION」パラメータの値に依存する。よって、VERSIONパラメータを「影響を与えるパラメータ」と呼ぶことができる。
【0034】
特に、パラメータリファレンス135によれば、VERSIONパラメータの値が「1」ならば、OPTION_1は、UINT8として識別される符号なしの8ビットの整数値のスペースに割り当てられる。よって、VERSIONのパラメータ値が「1」ならば、OPTION_2は、CONFIGURATION_TBL内のOPTION_1に割り当てられた最初の
8ビット(1バイト)の後に配置される。代替的に、VERSIONパラメータの値が「1」以外であるならば、OPTION_1は、「UINT16」として識別される符号なしの16ビットの整数のスペースに割り当てられる。よって、VERSIONのパラメータ値が「1」ではないならば、OPTION_2は、CONFIGURATION_TBL内のOPTION_1に割り当てられた最初の
16ビット(2バイト)の後に配置される。
【0035】
よって、パラメータリファレンスの試験に基づき、デルタジェネレータ121は、CONFIGURATON_TBLのOPTION_2のパラメータ値を変更するための影響を与えるパラメータはVERSION_TBLのVERSIONだけであると判断する。以上のように、デルタジェネレータ121による影響を与えるパラメータの識別を可能とする方法の1つとして考えられるのが、パラメータリファレンス135内の同テーブルで定義される条件文の主語であるパラメータを変更対象のパラメータとして識別することである。
【0036】
そのため、デルタジェネレータ121は、期待コンフィグからVERSIONパラメータの値を識別し、この値のチェックサムを計算する。チェックサムは、値の総和、CRC−16/32(巡回冗長検査)、MD−4/5、SHA−1/2/3(セキュア・ハッシュ・アルゴリズム)、および/またはその他考えられるものなど、各種の考えられるアルゴリズムを用いて計算することができることは理解されよう。いくつかの実施例では、特にパラメータ値が小さい場合、パラメータ値をチェックサム値として用いることができる。影響を与えるパラメータが追加的に識別される場合、デルタジェネレータ121は、残りの影響を与えるパラメータ値についてのチェックサムの計算を継続する。
【0037】
その後、デルタジェネレータ121は、特定のノード107のコンフィグ171に設定変更を適用するための命令のセットを用意することができる。命令は、どのように値を検証しどのような値であるべきかなどの、影響を与えるパラメータの値の確認方法を指定し、その後検証が成功(すなわち、対応するチェックサムがマッチ)した場合、1以上の差異パラメータを割り当てるべき値を指定する。
図2の例で説明したように、VERSION_TBL内のVERSIONの影響を与えるパラメータ値は、OPTION_2パラメータの値に変更を行う前に検証されなければならない。パラメータリファレンス135は、VERSIONパラメータ値がVERSION_TBLの第1の要素として配置される符号なしの8ビットの整数値(すなわち、UINT8)であることを指定し、このテーブルはテーブル識別子「1」によって識別される。
【0038】
デルタジェネレータ121は、ノード107にノードのパラメータリファレンス135が指定する位置の値がVERSIONパラメータに対応することを検証させることによって影響を与えるパラメータ値をまず検証する命令のセットを生成する。特に、命令データ137は、ノード(すなわち、VERSION_TBL)のテーブル「1」にオフセット「0」および長さ「1」で位置する値が「1」のチェックサムに対応することを検証することを指定する。この例では、命令の「オフセット」は、ここではVERSION_TBL(テーブル「1」としても識別される)である任意のテーブルの開始からのバイト数に相当し、オフセット「0」がテーブルの開始となる。命令の「長さ」は、パラメータの値に割り当てられたバイト数に相当し、ここでは1バイト(1バイトのUINT8タイプに相当)である。よって、命令は、ノードに見られるテーブル1の第1のバイト(オフセット0、長さ1)にある値のチェックサムが「1」に等しいことを検証するよう指定する。
【0039】
パラメータリファレンス135によって示されるように、ノードに見られる影響を与えるパラメータ値が検証される(すなわち、チェックサムがマッチする)と、命令の「書き込み」部が、ノードのCONFIGURATION_TBLのOPTION_2に対応する位置に「02」の値を書き込むことを指定する。ここで、命令は、書き込みがテーブル「2」(CONFIGURATION_TBLの識別子)のオフセット「1」、長さ「1」で発生するものであることを指定する。オフセット0がテーブルの第1のバイトを表すことから、オフセット「1」は書き込みがテーブルの第2のバイトから開始されるものであることを指定し、長さ「1」は1バイトがパラメータ値に割り当てられることを示す。命令を適用する対象のノードを識別するメタデータを含む命令が生成されると、命令をネットワーク109aを介してヘッドエンドシステム106へ送信することができる(
図1)。
【0040】
次に、
図3に示すように、ヘッドエンドシステム106は命令データ137を受信する。ヘッドエンドシステム106が命令を受信するノード107を識別すると、ヘッドエンドシステム106は、ネットワーク109b(
図1)を介して、ノードの指定位置に見られる値のチェックサムを判断しチェックサムの結果をヘッドエンドシステム106に返す命令をノードへ送信する。上述のとおり、この指定位置は、ノードに設定される影響を与えるパラメータの値の位置に相当する。
図3に示す例において、命令データ137は、ノード107がノードのテーブル「1」(すなわち、VERSION_TBL)、のオフセット「0」、長さ「1」に位置する値のチェックサムを判断するものであることを指定する。
【0041】
ヘッドエンドシステム106が、ノードから受信したチェックサムが命令で指定された(すなわち、期待コンフィグの影響を与えるパラメータ値から計算された)チェックサムとマッチすると判断すると、ヘッドエンドシステム106は、命令に基づいて、ノードに指定値をノードの指定位置に書き込むよう指示する。上述のとおり、命令に与えられる指定値は、目標コンフィグにみつかる差異パラメータの値に相当し、指定位置はノード107の差異パラメータの値に割り当てられる位置に相当する。
図3に示す例において、命令データ137の「書き込み」部は、テーブル「2」(CONFIGURATION_TBLの識別子)のオフセット「1」、長さ「1」に「02」の値を書き込むよう指定する。パラメータリファレンスによって示されるように、この位置は、ノードのCONFIGURATION_TBLのOPTION_2に相当する。
【0042】
いくつかの実施例では、ヘッドエンドシステム106は、実行対象の各書き込み動作および関連付けられた検証動作をノード107に送信することができ、ノード107は影響を与えるパラメータ値が設定変更を行う前にうまく検証されたかどうかを判断する。これらの実施形態では、ノード107は、設定変更の成功または失敗をヘッドエンドシステム106へ報告してもよい。
【0043】
次に
図4に、様々な実施形態にかかるデルタジェネレータ121の一部の動作の一例を示すフローチャートを示す。言うまでもなく、
図4のフローチャートは、本明細書で説明するデルタジェネレータ121の一部の動作を実施するために採用可能な多種多様な機能設定の一例を示すにすぎない。代替的に、
図4のフローチャートは、1以上の実施形態にかかるコンピュータ装置103(
図1)において実施される方法の要素の一例を示すものとしてみなすこともできる。
【0044】
まず、ブロック403において、デルタジェネレータ121は、ノード用の目標設定とノード用の期待される設定を取得する。コンフィグはXMLを用いてフォーマットされてもよいが、その他のバイナリまたはテキストデータフォーマットも可能である。次に、ブロック406において、デルタジェネレータ121は、期待コンフィグと目標コンフィグとの間で対応する値が異なるパラメータがあるかどうかを判断するが、このようなパラメータは差異パラメータと呼ぶことができる。例えば、期待コンフィグにおけるOPTION_2パラメータの値は「1」であり、目標コンフィグにおけるOPTION_2パラメータの値は「2」である。いくつかの実施例では、デルタジェネレータ121は、さらに、期待コンフィグと比較べて目標コンフィグに追加または除外されたパラメータがあるかどうかを判断することができる。例えば、目標コンフィグは、期待コンフィグに含まれない特定のテーブルにOPTION_3として識別されたパラメータの追加を含むことができる。ノードの考えられるパラメータとこれに割り当てられるノード内のスペースは、デルタジェネレータ121が参照可能なパラメータリファレンス135に示される。
【0045】
次に、ブロック409において、デルタジェネレータ121は、パラメータリファレンスの試験から特定または推測可能なように、ノードの差異パラメータがその他のパラメータに依存するか否かを判断する。依存性の性質は、ノードにおける差異パラメータの特定の位置が影響を与えるパラメータの値に依存するなど、様々な方法で表現される。デルタジェネレータが、影響を与えるパラメータを識別しない場合、デルタジェネレータ121の実行はブロック415へ進む。代替的に、1以上の影響を与えるパラメータが識別される場合、ブロック412において、デルタジェネレータ121は、各影響を与えるパラメータに対応する値のチェックサムを計算する。チェックサムは、値の総和、CRC−16/32、MD−4/5、SHA−1/2/3、および/またはその他考えられるものなど、各種の考えられるアルゴリズムを用いて計算することができることは理解されよう。いくつかの実施例では、特にパラメータ値が小さい場合、チェックサムがパラメータ値自体となるよう「計算」されてもよい。
【0046】
次に、ブロック415において、デルタジェネレータ121は、命令のセットを比較して設定変更をノード107の1以上の差異パラメータに適用することができる。命令は、まず影響を与えるパラメータの値を確認して、その後確認が成功または影響を与えるパラメータが損藍しない場合1以上の差異パラメータを割り当てる値を確認する方法を指定する。命令が生成されると、デルタジェネレータ121は、命令のセットを命令データ137に保存することができる、および/または命令をヘッドエンドシステム106に送信することができる。命令は、ノード用の目標設定だけでなくノード用の期待設定に基づいてよいため、ノード用の目標設定が同じであっても別のノードには別の命令のセットを用いることができる。その後、図に示すように、この部分のデルタジェネレータ121の実行は終了する。
【0047】
図5に、各種の実施形態にかかる設定マネージャ161の一部の動作の一例を示すフローチャートを示す。言うまでもなく、
図5のフローチャートは、本明細書で説明する設定マネージャ161の一部の動作を実施するために採用可能な多種多様な機能設定の一例を示すにすぎない。代替的に、
図5のフローチャートは、1以上の実施形態にかかるヘッドエンドシステム106(
図1)において実施される方法の要素の一例を示すものとしてみなすこともできる。
【0048】
ブロック503において、ヘッドエンドシステム106は、ノードに適用する設定変更の命令のセットを含む、命令データ137の少なくとも一部を取得する。次に、ブロック506において、設定マネージャ106は、ネットワーク109b(
図1)を介して、ノード内の指定位置に見られる値のチェックサムを判断してチェックサムの結果をヘッドエンドシステム106に返す命令をノードに送信する。上述のとおり、指定位置は、ノードに設定された影響を与えるパラメータの値の位置に相当する。
【0049】
そして、ブロック509において、設定マネージャ161は、ノード107から受信した影響を与えるパラメータ値のチェックサムが命令で示される影響を与えるパラメータ値のチェックサムとマッチするか否かを判断することによって、受信したチェックサムを検証する。影響を与えるパラメータ値のチェックサムがマッチしない場合、検証は失敗であり、設定マネージャ161のこの部分の実行を終了し、ノードへの設定変更は行われない。ある実施例では、設定マネージャ161は、ノードの設定変更の試みの失敗または成功を示す通知メッセージを生成する。通知メッセージは、設定変更が失敗した場合にはその理由を含むこともある。通知メッセージは、期待コンフィグデータ131の状態を維持するために、デルタジェネレータ121に送ることができる。例えば、失敗の理由の1つに、ノードに期待設定が存在しないことがある(すなわち、影響を与えるパラメータ値が期待されたものではなかった)。代替的に、影響を与えるパラメータの検証が成功である場合、ブロック512において、設定マネージャ161は、命令によって示されるほかに検証するべき影響を与えるパラメータがあるか否かを判断する。検証するべき影響を与えるパラメータがある場合、設定マネージャ161の実行は、ブロック506に戻って次の影響を与えるパラメータを検証する。
【0050】
それ以外の場合、命令で示される全ての影響を与えるパラメータが検証された場合、ブロック515において、設定マネージャ161は、命令に基づいて、変更対象のパラメータそれぞれについてノードの指定位置に指定値を書き込むようノード107に指示する。命令にある指定値は、目標コンフィグに見られる差異パラメータの値に相当し、指定位置は、ノード107の差異パラメータの値に割り当てられた位置に相当する。その後、図に示す通り、設定マネージャ161のこの部分の実行が終了する。
【0051】
図6Aおよび
図6Bに、それぞれ、本開示の実施形態にかかるコンピュータ装置103およびヘッドエンドシステム106を表すコンピュータ装置の模式的ブロック図を示す。各コンピュータ装置は、例えばローカルインターフェース609a/609bに接続されたプロセッサ603a/603bおよびメモリ606a/606bを有する少なくとも1の処理回路を含む。このため、各コンピュータ装置は、例えば、少なくとも1のサーバコンピュータまたは類似の装置を備えてもよい。ローカルインターフェース609a/609bは、例えば、アドレス/制御バスを有するデータバスまたはその他のバス構造を備えることができることは理解されよう。
【0052】
メモリ606a/606bには、プロセッサ603a/603bによって実行可能なデータと複数の構成要素の両方が格納される。特に、メモリ606a/606bに格納され、プロセッサ603a/603bによって実行可能なものは、デルタジェネレータ121または設定マネージャ161であり、その他のアプリケーションである場合もある。また、メモリ606a/606bには、データストアおよびそのほかのデータが格納されてもよい。また、オペレーティング・システムが、メモリ606a/606bに格納されてプロセッサ603a/603bにより実行可能であってもよい。
【0053】
その他、メモリ606a/606bに格納されてプロセッサ603a/603bにより実行可能なアプリケーションがあってもよいことは理解されよう。本明細書で説明する構成要素がソフトウェアの形で実施される場合、例えば、C言語、C++、C#、オブジェクティブC、Java(登録商標)、JavaScript(登録商標)、Perl、PHP、Visual Basic(登録商標)、Python(登録商標)、Ruby、Flash(登録商標)、またはその他のプログラム言語などの多数のプログラム言語から任意の言語を採用することができる。
【0054】
多数のソフトウェア要素が、メモリ606a/606bに格納されてプロセッサ603a/603bにより実行可能である。この点において、「実行可能」という語句は、最終的にプロセッサ603a/603bによって実行することが可能な形となったプログラムファイルを意味する。実行可能なプログラムの例としては、例えば、メモリ606a/606bのランダムアクセス部にロード可能およびプロセッサ603a/603bによって実行可能なフォーマットでマシンコードに翻訳可能なコンパイルされたプログラム、メモリ606a/606bのランダムアクセス部にロード可能およびプロセッサ603a/603bにより実行可能なオブジェクトコードなどの適切なフォーマットで表現できるソースコード、または別の実行可能なプログラムにより翻訳されてメモリ606a/606bのランダムアクセス部にプロセッサ603a/603bにより実行される命令を生成するソースコードがある。実行可能なプログラムは、例えば、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、ハードドライブ、半導体ドライブ、USBフラッシュドライブ、メモリカード、コンパクトディスク(CD)やデジタル多用途ディスク(DVD)などの光ディスク、磁気テープ、またはその他のメモリ要素などの、メモリ606a/606bの任意の部分または構成要素に格納することができる。
【0055】
本明細書において、メモリ606a/606bは、揮発性および不揮発性メモリならびにデータ記憶要素を含むものと定義される。揮発性要素は、電源喪失時にデータ値が保持されないものを指す。不揮発性要素は、電源喪失時もデータ値が保持されるものを指す。よって、メモリ606a/606bは、例えば、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、ハードディスクドライブ、半導体ドライブ、USBフラッシュドライブ、メモリカードリーダ経由でアクセスされるメモリカード、光ディスクドライブ経由でアクセスされる光ディスク、適切なテープドライブ経由でアクセスされる磁気テープ、および/もしくはその他のメモリ要素、これらのメモリ要素の2つ以上の組み合わせを備えてもよい。また、RAMは、例えば、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、または磁気ランダムアクセスメモリ(MRAM)、およびその他のこのような装置を備えてもよい。ROMは、例えば、プログラム可能なリードオンリーメモリ(PROM)、消去及びプログラム可能なリードオンリーメモリ(EPROM)、電気的に消去及びプログラム可能なリードオンリーメモリ(EEPROM)、またはその他類似のメモリ装置を備えてもよい。
【0056】
また、プロセッサ603a/603bは、複数のプロセッサ603a/603bおよび/または複数のプロセッサコアを表してもよく、メモリ606a/606bは、それぞれ並列処理回路で動作する複数のメモリ606a/606bを表してもよい。この場合、ローカルインターフェース609a/609bは、複数のプロセッサ603a/603bのうち2つの間、プロセッサ603a/603bのいずれかとメモリ606a/606bのいずれかとの間、またはメモリ606a/606bのうち2つの間などで、通信を容易にする適切なネットワークとすることができる。ローカルインターフェース609a/609bは、例えば負荷バランシングなど、この通信を調整するよう設定された追加的なシステムを備えてもよい。プロセッサ603a/603bは、電気的またはその他の利用可能な構造のものであってよい。
【0057】
本明細書に記載のデルタジェネレータ121、設定マネージャ161、およびその他の各種システムは、上述のように汎用ハードウェアによって実行可能なソフトウェアまたはコードとして具現化することができるが、代替的に専用ハードウェアまたはソフトウェア/汎用ハードウェアと専用ハードウェアの組み合わせで具現化されてもよい。専用ハードウェアで実現される場合、これらは、それぞれ、数多くの技術のいずれかまたは組み合わせを採用した回路または状態機械として実装することができる。こうした技術の例としては、1以上のデータ信号を与えると各種のロジック関数を実施するロジックゲートを有する個別ロジック回路、適切なロジックゲートを有する特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、またはその他の要素などがあるが、これに限定されない。このような技術は当業者には概ね周知のものであり、そのため本明細書では詳述しない。
【0058】
図4および
図5のフローチャートは、それぞれ、デルタジェネレータ121および設定マネージャ161の部分を実施した際の機能と動作を示す。ソフトウェアで具現化される場合、各ブロックは、指定されたロジック関数を実施するプログラム命令を設定するコードのモジュール、セグメント、または一部を表すことができる。プログラム命令は、プログラム言語またはマシンコードで記述された、コンピュータシステムまたはその他のシステムのプロセッサ603a/603bなどの適切な実行システムによって認識可能な数的命令を含む、人間が読み取れる命令文を含むソースコードの形で実現されてもよい。マシンコードは、ソースコード等から変換可能である。ハードウェアで具現化される場合、各ブロックは、指定されたロジック関数を実施する回路または多数の相互接続された回路を表すことができる。
【0059】
図4および
図5のフローチャートでは特定の実行順序を示しているが、言うまでもなく、実行順序は図に示したものとは異なっていてもよい。例えば、2つ以上のブロックの実行順序を、図に示した順序に対してスクランブルされてもよい。また、
図4および
図5では連続する2つ以上のブロックを、同時にまたは部分的に同時に実行してもよい。さらに、いくつかの実施形態では、
図4および
図5に示すブロックの1以上をスキップまたは省略してもよい。また、実用性、経理、性能測定の向上のため、またはトラブルシューティング支援などに、任意の数のカウンター、状態変数、警告セマフォ、またはメッセージを、本明細書で説明するロジックフローに追加することができる。言うまでもなく、こうした変化例も本開示の範囲に含まれる。
【0060】
また、デルタジェネレータ121および設定マネージャ161を含めて、本明細書に記載のソフトウェアまたはコードを含むロジックまたはアプリケーションは、例えば、コンピュータシステムまたはその他のシステムにおけるプロセッサ603a/603bなどの命令実行システムによってまたはこれと接続して用いられる非一時的なコンピュータ読取可能媒体に具現化されてもよい。この意味では、ロジックは、例えば、コンピュータ読取可能媒体から取り込んで命令実行システムによって実行することができる命令および宣言を含む、命令文を含んでもよい。本開示の文脈において、「コンピュータ読取可能媒体」は、命令実行システムによってまたはこれと接続して用いられる本明細書に記載のロジックまたはアプリケーションを含む、格納する、または維持することができる任意の媒体であってもよい。
【0061】
コンピュータ読取可能媒体は、例えば、磁気、光学、または半導体媒体など、多くの物理媒体から任意の1つを含むことができる。適切なコンピュータ読取可能媒体のより具体的な例としては、磁気テープ、磁気ハードドライブ、メモリカード、半導体ドライブ、USBフラッシュドライブ、または光ディスクがあるが、これに限らない。また、コンピュータ読取可能媒体は、例えばスタティックランダムアクセスメモリ(SRAM)やダイナミックランダムアクセスメモリ(DRAM)などのランダムアクセスメモリ(RAM)、または磁気ランダムアクセスメモリ(MRAM)であってもよい。また、コンピュータ読取可能媒体は、リードオンリーメモリ(ROM)、プログラム可能なリードオンリーメモリ(PROM)、消去及びプログラム可能なリードオンリーメモリ(EPROM)、電気的に消去及びプログラム可能なリードオンリーメモリ(EEPROM)、またはその他のタイプのメモリ装置であってもよい。
【0062】
さらに、デルタジェネレータ121および設定マネージャ161を含む、本明細書に記載のロジックまたはアプリケーションは、様々な方法で実施および設定することができる。例えば、記載の1以上のアプリケーションを、1つのアプリケーションのモジュールまたは要素として実施することができる。また、本明細書に記載の1以上のアプリケーションを、共用または独立したコンピュータ装置またはその組み合わせで実行することができる。例えば、本明細書に記載の複数のアプリケーションを、同じコンピュータ装置でまたは複数のコンピュータ装置で実行してもよい。加えて、言うまでもなく、「アプリケーション」、「サービス」、「システム」、「エンジン」、「モジュール」、等の語句は、置き替え可能であり、また限定を意図するものではない。
【0063】
「X、Y、またはZの少なくとも1」などの選言的言語は、特に明記されない限り、通常、項目や用語などが、X、Y、もしくはZ、またはその任意の組み合わせ(例:X、Y、および/またはZ)であってよいことを一般的に表す文脈で理解される。よって、このような選言的言語は、通常、ある実施形態がXの少なくとも1、Yの少なくとも1、またはZの少なくとも1を必要とすることを意図するものでも意味するものではない。
【0064】
上記の本開示の実施形態は、本開示の原理を明確に理解するために提示された、考えられる例にすぎないことを強調しておく。上記の実施形態に対する多くの変形例および変更例を実質的に本開示の主旨および原理から外れることなく行うことが可能である。このような変更例および変形例の全ては、本開示の範囲として本明細書に含まれ、添付の請求項の範囲により保護されるものとする。