IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特表2024-537762データ・サーバを介するネットワーク・クロック管理
<>
  • 特表-データ・サーバを介するネットワーク・クロック管理 図1
  • 特表-データ・サーバを介するネットワーク・クロック管理 図2
  • 特表-データ・サーバを介するネットワーク・クロック管理 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-16
(54)【発明の名称】データ・サーバを介するネットワーク・クロック管理
(51)【国際特許分類】
   H04L 7/00 20060101AFI20241008BHJP
【FI】
H04L7/00 810
H04L7/00 990
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024519036
(86)(22)【出願日】2022-09-12
(85)【翻訳文提出日】2024-03-27
(86)【国際出願番号】 EP2022075302
(87)【国際公開番号】W WO2023046516
(87)【国際公開日】2023-03-30
(31)【優先権主張番号】17/486,901
(32)【優先日】2021-09-27
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】ヒューストン、ジョン
(72)【発明者】
【氏名】グエンダート、スティーブン、ロバート
(72)【発明者】
【氏名】クラブツリー、ドナルド
【テーマコード(参考)】
5K047
【Fターム(参考)】
5K047AA03
5K047AA18
5K047KK03
(57)【要約】
データ・サーバの内部時間が、ネットワークの複数のデバイスの各々の各時間に対して比較される。ネットワークは、厳密な時刻同期を必要とすることがある。データ・サーバは、複数の高性能発振器を利用して内部時間を維持する。データ・サーバは、比較された時間を分析し、ネットワークの別のデバイスによって維持されている時間がしきい値を超えてずれていることを検出する。別のデバイスによって維持されている時間がしきい値を超えてずれていることを検出することに応答して、改善アクションが実行される。
【特許請求の範囲】
【請求項1】
ネットワーク上のデータ・サーバの内部時間を、前記ネットワーク上の複数のデバイスの各々の各時間に対して比較することであって、前記データ・サーバが、複数の高性能発振器を利用して前記内部時間を維持する、前記比較することと、
前記比較された時間を分析することによって、前記ネットワークの別のデバイスによって維持されている時間がしきい値を超えてずれていることを検出することと、
前記別のデバイスによって維持されている前記時間が前記しきい値を超えてずれていることを検出することに応答して、改善アクションを実行することと
を含む、コンピュータ実装方法。
【請求項2】
前記別のデバイスが、前記ネットワークの時間サーバである、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記データ・サーバが、それぞれ複数の高性能発振器を利用して各内部時間を維持する複数のデータ・サーバのうちの1つであり、
前記時間サーバの前記時間が前記しきい値を超えてずれていることを前記検出することが、前記時間サーバの前記時間を前記複数のデータ・サーバのすべての平均内部時間に対して比較することを含み、
前記改善アクションが、前記時間サーバの前記時間が前記平均内部時間から前記しきい値を超えてずれていることを検出することに応答して、前記ネットワークに、前記時間サーバの前記時間ではなく前記複数のデータ・サーバのすべての前記平均内部時間を利用させることを含む、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記改善アクションが自律的に実行される、請求項3に記載のコンピュータ実装方法。
【請求項5】
前記データ・サーバが、それぞれ複数の高性能発振器を利用して各内部時間を維持する複数のデータ・サーバのうちの1つであり、
前記別のデバイスの前記時間が前記しきい値を超えてずれていることを前記検出することが、前記別のデバイスの前記時間を前記複数のデータ・サーバのすべての平均内部時間に対して比較することを含み、前記方法が、
誤っているクロック信号をスイッチまで追跡することによって、前記ネットワークの前記スイッチが、前記別のデバイスが前記しきい値を超えてずれることの原因であるということを識別することをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記改善アクションが、
通知を管理者に送信することと、
ベスト・マスタ・クロック・アルゴリズムを呼び出すことと
を含む、請求項5に記載のコンピュータ実装方法。
【請求項7】
前記ネットワークが、高精度時間プロトコルを利用して前記複数の内部デバイスの内部時間を同期させる、請求項1に記載のコンピュータ実装方法。
【請求項8】
前記改善アクションが、ベスト・マスタ・クロック・アルゴリズムを呼び出すことを含む、請求項7に記載のコンピュータ実装方法。
【請求項9】
前記別のデバイスが、前記ネットワークの別のデータ・サーバであり、
前記改善アクションが、前記データ・サーバを自律的に使用中止にすることを含む、請求項1に記載のコンピュータ実装方法。
【請求項10】
前記複数の高性能発振器が、少なくとも±100万分の2まで正確であるようにそれぞれ指定された少なくとも4つの発振器を含み、
前記データ・サーバが、ソフトウェアを前記複数の高性能発振器と共に使用して、前記内部時間を1日に2ミリ秒を超えてずれないよう維持するように構成される、請求項1に記載のコンピュータ実装方法。
【請求項11】
前記ネットワークが、地理的に分散され、2つのクラスタ化されたサブネットワークを含み、
前記データ・サーバが、前記2つのクラスタ化されたサブネットワークのうちの第1のサブネットワークでの複数のデータ・サーバのうちの1つであり、前記第1の複数のデータ・サーバのうちの各データ・サーバが、各複数の高性能発振器を利用して各内部時間を維持し、
前記別のデバイスが、前記第1のクラスタ化されたサブネットワークの時間サーバであり、
前記第1のクラスタ化されたサブネットワークの前記時間サーバの前記時間が前記しきい値を超えてずれていることを前記検出することが、前記第1のクラスタ化されたサブネットワークの前記時間サーバの前記時間を、前記複数のデータ・サーバのすべての平均内部時間に対して比較することを含み、前記方法が、
前記2つのクラスタ化されたサブネットワークのうちの第2のサブネットワークの時間サーバの内部時間を、前記複数のデータ・サーバのすべての前記平均内部時間に対して比較することと、
前記第2のクラスタ化されたサブネットワークの前記時間サーバが、前記第1のクラスタ化されたサブネットワークの前記時間サーバがずれた方法に実質的に類似する前記方法でずれたということを検出することと、
前記時間サーバが実質的に類似する方法でずれていることを検出することの結果として、前記第1および第2のクラスタ化されたサブネットワークの両方での前記時間サーバのクロック・ソースが危殆化されていることを検出することと
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項12】
前記データ・サーバが、それぞれ複数の高性能発振器を利用して各内部時間を維持する複数のデータ・サーバのうちの1つであり、
前記別のデバイスの前記時間が前記しきい値を超えてずれていることを前記検出することが、前記別のデバイスの前記時間を前記複数のデータ・サーバのすべての平均内部時間に対して比較することを含み、
前記別のデバイスが、前記複数のデータ・サーバのうちの別のデータ・サーバを含み、
前記改善アクションが、前記別のデータ・サーバの高性能発振器が誤っていることを識別することに応答して、前記高性能発振器を使用中止にすることを含む、請求項1に記載のコンピュータ実装方法。
【請求項13】
複数のデバイスのネットワーク上のデータ・サーバであって、前記データ・サーバが、
複数の高性能発振器と、
プロセッサと、
前記プロセッサと通信するメモリとを備え、前記メモリが命令を含み、前記命令が、前記プロセッサによって実行された場合に、前記プロセッサに、
前記データ・サーバの内部時間を、前記ネットワーク上の前記複数のデバイスの各々の各時間に対して比較することであって、前記データ・サーバが、前記複数の高性能発振器を利用して前記内部時間を維持する、前記比較することと、
前記比較された時間を分析することによって、前記ネットワークの別のデバイスによって維持されている時間がしきい値を超えてずれていることを検出することと、
前記別のデバイスによって維持されている前記時間が前記しきい値を超えてずれていることを検出することに応答して、改善アクションを実行することと
を実行させる、データ・サーバ。
【請求項14】
前記別のデバイスが、前記ネットワークの時間サーバである、請求項13に記載のデータ・サーバ。
【請求項15】
前記データ・サーバが、それぞれ複数の高性能発振器を利用して各内部時間を維持する前記ネットワーク上の複数のデータ・サーバのうちの1つであり、
前記時間サーバの前記時間が前記しきい値を超えてずれていることを前記検出することが、前記時間サーバの前記時間を前記複数のデータ・サーバのすべての平均内部時間に対して比較することを含み、
前記改善アクションが、前記時間サーバの前記時間が前記平均内部時間から前記しきい値を超えてずれていることを検出することに応答して、前記ネットワークに、前記時間サーバの前記時間ではなく前記複数のデータ・サーバのすべての前記平均内部時間を利用させることを含む、請求項13に記載のデータ・サーバ。
【請求項16】
前記データ・サーバが、それぞれ複数の高性能発振器を利用して各内部時間を維持する前記ネットワーク上の複数のデータ・サーバのうちの1つであり、
前記別のデバイスの前記時間が前記しきい値を超えてずれていることを前記検出することが、前記別のデバイスの前記時間を前記複数のデータ・サーバのすべての平均内部時間に対して比較することを含み、前記メモリが追加の命令を含み、前記追加の命令が、前記プロセッサによって実行された場合に、前記プロセッサに、
誤っているクロック信号をスイッチまで追跡することによって、前記ネットワークの前記スイッチが、前記別のデバイスが前記しきい値を超えてずれることの原因であるということを識別することを実行させる、請求項13に記載のデータ・サーバ。
【請求項17】
前記改善アクションが、ベスト・マスタ・クロック・アルゴリズムを呼び出すことを含む、請求項13に記載のデータ・サーバ。
【請求項18】
前記データ・サーバが、それぞれ複数の高性能発振器を利用して各内部時間を維持する前記ネットワーク上の複数のデータ・サーバのうちの1つであり、
前記別のデバイスの前記時間が前記しきい値を超えてずれていることを前記検出することが、前記別のデバイスの前記時間を前記複数のデータ・サーバのすべての平均内部時間に対して比較することを含み、
前記別のデバイスが、前記複数のデータ・サーバのうちの別のデータ・サーバを含み、
前記改善アクションが、前記別のデータ・サーバの高性能発振器が誤っていることを識別することに応答して、前記高性能発振器を使用中止にすることを含む、請求項13に記載のデータ・サーバ。
【請求項19】
前記複数の高性能発振器が、少なくとも±100万分の2まで正確であるようにそれぞれ指定された少なくとも4つの発振器を含み、
前記メモリが、前記複数の高性能発振器と共に、前記データ・サーバの前記内部時間の精度を改善し、前記内部時間を1日に2ミリ秒を超えてずれないよう維持するように構成されたソフトウェア・アプリケーションを含む、請求項13に記載のデータ・サーバ。
【請求項20】
プログラム命令が具現化されているコンピュータ可読ストレージ媒体を備えているコンピュータ・プログラム製品であって、前記プログラム命令が、コンピュータによって実行可能であり、前記コンピュータに、
前記データ・サーバの内部時間を、前記ネットワーク上の前記複数のデバイスの各々の各時間に対して比較することであって、前記データ・サーバが、前記複数の高性能発振器を利用して前記内部時間を維持する、前記比較することと、
前記比較された時間を分析することによって、前記ネットワークの別のデバイスによって維持されている時間がしきい値を超えてずれていることを検出することと、
前記別のデバイスによって維持されている前記時間が前記しきい値を超えてずれていることを検出することに応答して、改善アクションを実行することと
を実行させる、コンピュータ・プログラム製品。
【請求項21】
複数の高性能発振器をそれぞれ利用して、高精度時間プロトコル(PTP)を利用するネットワークの一部として各内部時間を維持する複数のデータ・サーバの平均内部時間を、前記ネットワークの他のデバイスに対して比較することと、
前記比較された時間を分析することによって、前記ネットワークの別のデバイスによって維持されている時間が、前記複数のデータ・サーバのすべての前記平均内部時間から、しきい値を超えてずれていることを検出することと、
前記ネットワークの前記別のデバイスによって維持されている前記時間が前記しきい値を超えてずれていることを検出することを識別することに応答して、改善アクションを実行することと
を含む、コンピュータ実装方法。
【請求項22】
前記別のデバイスが、前記ネットワークの時間サーバである、請求項21に記載のコンピュータ実装方法。
【請求項23】
前記改善アクションが、前記別のデバイスが前記時間サーバであることを検出することに応答して、前記ネットワークに、前記時間サーバの前記時間ではなく前記複数のデータ・サーバのすべての前記平均内部時間を利用させることを含む、請求項22に記載のコンピュータ実装方法。
【請求項24】
前記方法が、クロック信号をスイッチまで追跡することによって、前記ネットワークの前記スイッチが、前記別のデバイスが前記しきい値を超えてずれることの原因であるということを識別することをさらに含む、請求項21に記載のコンピュータ実装方法。
【請求項25】
前記別のデバイスが、前記複数のデータ・サーバのうちの別のデータ・サーバを含み、
前記改善アクションが、前記別のデータ・サーバの高性能発振器が誤っていることを識別することに応答して、前記高性能発振器を使用中止にすることを含む、請求項21に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク・クロック管理に関する。
【背景技術】
【0002】
組織を支援するために使用される最新のコンピューティング・デバイスは、多くの場合、組織がさまざまな規制を満たし、さまざまな規格を満たすことができるようにするために、さまざまな方法で動作することが期待される。これらの規格および規制は、ロギング挙動または時間挙動などの、数多くの異なる計算変数に関連することがある。例えば、金融機関は、多くの場合、外部クロックと比較して(例えば、協定世界時(UTC:coordinated universal time)と比較して)計算機器の厳密な時刻同期を維持することが要求される。金融機関が、(機器が、規制が許可するよりも速く、または遅くなるように「ずれている」ような)これらの時刻同期要件から外れた機器を使用する場合、金融機関は、相当な費用に直面することがある。例えば、金融機関の粗利益に正比例するように、費用が計上されることがある。
【0003】
そのため組織は、多くの場合、そのような規制および規格を満たすように個別または集合的に構成されたコンピューティング・デバイスおよびネットワーク・インフラストラクチャを探し求める。詳細には、組織は、さまざまな技術を使用して、現在の高性能のコンピューティング・アーキテクチャにおいて必要とされる程度まで、各デバイスでの時刻(TOD:time of day)クロックが同期されることを可能にすることがある。例えば、金融機関は、基準クロックから時間を読み取ってこの時間をネットワーク内のさまざまなデバイスに配布する1つまたは複数の時間サーバを使用して、これらのデバイスの各々が正しい時間を利用している可能性を改善することがある(例えば、その後、各デバイスが、受信された時間をデバイスの各TODとして使用するようにする)。時間サーバは、この基準クロックを、全地球測位システム(GPS:global positioning system)信号から頻繁に受信する。
【発明の概要】
【0004】
本開示の態様は、ネットワーク上の複数のコンピューティング・デバイスのクロック管理に関連する方法、システム、およびコンピュータ・プログラム製品に関連する。例えば、この方法は、ネットワーク上の複数のデバイスの各時間に対してネットワークのデータ・サーバの内部時間を比較することを含む。データ・サーバは、複数の高性能発振器を利用して内部時間を維持する。この方法は、比較された時間を分析するデータ・サーバによって、ネットワークの別のデバイスによって維持されている時間がしきい値を超えてずれていることを検出することをさらに含む。この方法は、別のデバイスによって維持されている時間がしきい値を超えてずれていることを検出することに応答して、改善アクションを実行することも含む。上記の方法を実行するように構成されたシステムおよびコンピュータ製品も開示される。
【0005】
本開示は、複数の高性能発振器をそれぞれ利用して各内部時間を維持する複数のデータ・サーバの平均内部時間を、複数のデバイスに対して比較することを含む方法も含み、複数のデバイスおよび複数のデータ・サーバが、両方とも、高精度時間プロトコル(PTP:precision time protocol)を利用するネットワークの一部である。この方法は、比較された時間を分析することによって、ネットワークの別のデバイスによって維持されている時間が、複数のデータ・サーバのすべての平均内部時間から、しきい値を超えてずれていることを検出することも含む。この方法は、ネットワークの別のデバイスによって維持されている時間がしきい値を超えてずれていることを検出することを識別することに応答して、改善アクションを実行することも含む。
【0006】
上記の概要は、本開示の各実施形態例もすべての実装も説明するよう意図されていない。
【0007】
本出願に含まれている図面は、本明細書に組み込まれ、本明細書の一部を形成する。各図面は、本開示の実施形態を示し、説明と共に、本開示の原理を説明するのに役立つ。各図面は、特定の実施形態の単なる例であり、本開示を制限していない。
【図面の簡単な説明】
【0008】
図1】コントローラが、ネットワークの複数のコンピューティング・デバイスに格納されて利用されるように時間を管理し得る例示的なシステムの概念図を示す図である。
図2図1のコントローラの例示的なコンポーネントの概念ボックス図を示す図である。
図3図1のコントローラが、ネットワークの複数のコンピューティング・デバイス上で利用されるように時間を管理できるようにする、例示的なフローチャートを示す図である。
【発明を実施するための形態】
【0009】
本発明は、さまざまな変更および代替の形態を受け入れるが、その詳細が、図面において例として示されており、詳細に説明される。しかし、本発明を説明されている特定の実施形態に限定することが意図されていないということが、理解されるべきである。反対に、本発明の思想および範囲に含まれるすべての変更、同等のもの、および代替手段を対象にすることが意図されている。
【0010】
本開示の態様は、ネットワークのコンピューティング・デバイスのクロックを管理することに関連しており、一方、本開示のさらに特定の態様は、複数の高性能発振器を使用する1つまたは複数のデータ・サーバの内部時間を、ローカル・ネットワークまたはリモート・ネットワークの他のデバイスの時間と比較し、これらのデータ・サーバと相対的にクロックのずれが発生しているネットワークの1つまたは複数のデバイスを識別することに応答して、改善アクションを識別し、探し出し、および実行することに関連している。本開示はそのような適用に必ずしも限定されないが、この文脈を使用するさまざまな実施例の説明を通じて、本開示のさまざまな態様が理解されよう。
【0011】
背景技術で説明されたように、多くの組織は、組織のコンピューティング・デバイス(以下では、総称的に「デバイス」と呼ばれるコンピューティング・デバイス)全体にわたって時刻同期を維持することに関してさまざまな規制および規格を満たすことが要求される(またはそうでなければ、満たす傾向がある)。この時刻同期の規制は、多くの場合、世界基準(例えば、他の組織を基準にした規格または規制機関を基準にした規格あるいはその両方)に関するものであり、デバイスが互いに対して同期されたクロックを有するかどうかだけでなく、これらの外部の実体に対しても同期されるかどうかが重要なことになるようにする。そのような規制を満たすために、組織は、通常、(おそらく信頼できる)基準クロックから時間を収集し、その後、この時間をネットワークの他のデバイスに配布するタスク専用の1つまたは複数のサーバを使用する。時間を収集し、ネットワーク全体に配布することに(専用ではなくても)割り当てられたそのようなサーバは、本明細書では時間サーバと呼ばれる。時間サーバは、本明細書において説明されるように、「データ・サーバ」とは異なる実体であり、ここで、データ・サーバは、データを格納し、組織のために計算動作を実行するように構成された(一次の時間配布デバイスであることを託されない)コンピューティング・デバイスである。一般的に言えば、データ・サーバは、組織のメインフレームまたはPCデータ・サーバであると理解されてよい。
【0012】
そのような従来のアーキテクチャは、通常、期待されたように動作するさまざまなネットワーク・コンポーネント(例えば、ネットワーク・スイッチ)に依存している。例えば、組織のネットワークのネットワーク・スイッチが(時間サーバから送信された時間信号を遅延させることによるか、時間サーバから送信された時間信号を変更することによるか、または当業者によって理解されるような何らかの他のエラーによるかにかかわらず)故障し始めた場合、時間サーバからクロック情報を受信するためにそのネットワーク・スイッチに依存している一部のコンピューティング・デバイスは、これらの故障したコンポーネントの結果として、真の時間からずれることがある。
【0013】
一部の従来アーキテクチャは、互いに相対的なずれがないように、すべてのデバイスが概して互いに同期されることを保証するためのさまざまな努力を行うことによって、この問題を解決しようとする。例えば、一部の従来のアーキテクチャは、さらに別の次世代(YANG:Yet Another Next Generation)モデルを使用してすべてのデバイスが同期されることを保証する同期プログラムなどと共に、ネットワーク全体で高精度時間プロトコル(PTP)を利用する。追加的または代替的に、一部の従来のアーキテクチャは、サーバ間の1つまたは複数の物理データ・リンクを経由して送信されるSTPメッセージを介して単一の視点の時間を関係のあるタイプ1ハイパーバイザに提示するサーバ全体の機能である、サーバ時間プロトコル(STP:server time protocol)を利用して、ネットワーク全体に送信されるメッセージの忠実度を改善することがある。さらに別の例としては、ネットワーク時間プロトコル(NTP:network time protocol)をクロック同期に利用する従来のアーキテクチャが挙げられる。そのような技術を(単独であるか、または前述の手順のうちの1つまたは複数と共にであるかにかかわらず)このように使用する従来のアーキテクチャは、すべてのデバイスが互いに相対的に同期されることを保証することにおいて、実際に効果的であることがある。
【0014】
しかし、従来のアーキテクチャは、個々のデバイスがずれることを引き起こす特定の故障したデバイスを識別できないことがある。当業者によって理解されるであろうように、特定の障害点を識別することが有益である数多くの理由が存在する。例えば、障害点を識別できないことは、ネットワーク内の同期の努力が役に立たなくなるまで故障したデバイスの数が増加するなどの場合に、時間と共に従来のアーキテクチャを故障の影響を受けやすくすることがある。別の例の場合、障害点を識別できないことは、(例えば、どのコンポーネントが交換/修理される必要があるかが不明であるため)従来のアーキテクチャが最終的な故障から回復することを実質的により困難にすることがある。特に、故障の後に、(欠陥のあるデバイスが不明である)従来の手法は、個々のコンポーネントが交換され、その後、ネットワークがテストされる(これによって問題が解決しない場合、別のコンポーネントが交換され、ネットワークが再テストされる、などの)、広範囲に及ぶ「試行錯誤」の方法を含むことがある。
【0015】
さらに、そのような従来のネットワーク内の同期の努力が、ネットワークのすべてのデバイスを互いに相対的に同期させることに成功した場合でも、外部クロックを基準にして要求されたとおりに、これらのデバイスが同期されることが保証されない可能性がある。例えば、従来のアーキテクチャの従来の同期の努力にとって、時間サーバ自体が故障しているかどうか、または破損した時間ソースを受信しているかどうかを検出することは、困難であるか、または不可能である可能性がある。例えば、悪意のあるアクターが、時間サーバによって使用される基準クロック信号に(例えば、GPS信号などに、または一部の従来のアーキテクチャの場合は、PTP信号にさえ)成り済ました場合、従来の同期の努力は、時間サーバによって受信されて配布された時間が、UTCなどの外部の(例えば、真の/実際の)時間を基準にして同期されていないということを、技術的に検出することができない可能性がある。
【0016】
場合によっては、ネットワークは、ネットワークの少なくとも1つのコンピューティング・デバイス内の内部時間を維持するように構成された単一の高品質の発振器を含めることによって、これを解決しようとすることがある。しかし、そのようなデバイスは、内部時間が外部時間に一致しない場合に、何かが間違っているということを決定するように構成され得るが、このデバイスは、故障がこのデバイス自体での故障であるか、または外部デバイスでの故障であるかを判定することができない。
【0017】
本開示の態様は、従来のコンピューティング・アーキテクチャのこれらの技術的問題を解決するか、またはそうでなければ、これらの技術的問題に対処することができる。例えば、上記の技術的問題は、データ・サーバの内部時間を維持するように構成された複数の高性能発振器(例えば、発振器は、発振器がそれ自身の構築時に±約100万分の2に指定されている結果として高性能である)を含んでいるデータ・サーバを使用して解決される。そのようなデータ・サーバは、(例えば、1日に2ミリ秒を超えてずれないように)内部時間を維持するために、複数の高性能発振器と共に機能するソフトウェアをさらに含んでよい。本開示の態様は、1つまたは複数のそのようなデータ・サーバの内部時刻(TOD)時間を、さまざまなデバイスの内部TOD時間と比較し、ずれているデバイス(本明細書において使用されるとき、「ずれている」は、コンピューティング・デバイスが、しきい値を超える非公称量(non-nominal amount)だけ望ましい時間より進んでいるか、または遅れていることに関連しており、修正を正当化する)を検出すること、およびそのような検出に応答して、改善アクションを実行することに関連する。メモリに格納された命令を実行するプロセッシング・ユニットを含んでいるコンピューティング・デバイスが、この機能を提供してよく、このコンピューティング・デバイスは、本明細書ではコントローラと呼ばれる。コントローラは、さまざまなデバイスのさまざまな内部時間を、本明細書において説明されるような複数の高性能発振器を利用する1つまたは複数のデータ・サーバと比較することによって、コンピューティング環境内のいずれかのデバイスがずれていることを検出し、さらに、このずれが欠陥のあるデバイスによって引き起こされたか、または受信基準クロックに関連するエラー/攻撃によって引き起こされたかを識別するように構成されてよい。
【0018】
例えば、図1は、コントローラ110が、データ・サーバ120A、時間サーバ120B、および他のデバイス120Cの内部時間のずれを監視し、管理する、環境100を示している(データ・サーバ120A、時間サーバ120B、および他のデバイス120Cは、本明細書では集合的に「デバイス120」と呼ばれる)。コントローラ110は、命令を含んでいるメモリに通信可能に結合されたプロセッサを含んでいる図2のコンピューティング・システム200などの、コンピューティング・デバイスを含んでよく、これらの命令は、プロセッサによって実行された場合に、コントローラ110に、以下で説明される1つまたは複数の動作を実行させる。例えば、コントローラ110は、ネットワーク140上の任意のデバイス120の時間のずれを監視し、管理してよい。本明細書において説明されるように、ネットワーク140上のすべてのデバイス120は、UTCなどの真の時間と同期されるべきである(これは、そうでなければ、ネットワーク140の全体が外部時間と同期されるべきであるというような表現であってよい)。
【0019】
各データ・サーバ120Aは、本明細書において説明されるように、各データ・サーバ120Aの内部時間を維持するように構成された複数の高性能発振器122を含む。例えば、高性能発振器122は、±100万分の1.5~100万分の10の範囲内で正確であるように指定されてよい。データ・サーバ120Aは、少なくとも2つ、多くて8つの高性能発振器122を含むが、データ・サーバ120Aは、説明の目的で、4つの高性能発振器122を含んでいるとして主に説明される。各発振器122は、データ・サーバ120Aの内部時間を個別に追跡し続けるように構成されてよく、各データ・サーバ120Aの最終的なTODは、これらの発振器122の各々の平均時間(例えば、これらの各時間の平均値、中央値、最頻値)である。このようにして、各追加の高性能発振器122は、正しい時間が何かを決定することにおける追加の「票」を提供してよく、より多くの発振器122が存在するほど、時刻同期の努力がより堅牢になるようにする(ただし、各データ・サーバ120Aがより高価にもなる)。
【0020】
一部の実施例では、データ・サーバ120Aは、ソフトウェアをさらに利用して内部時間を安定させる。この安定させることは、高性能発振器122単独によって可能にされるずれよりも良好に、約2桁または3桁、ずれを減らし、毎日のずれが、1日当たり5ミリ秒~0.01ミリ秒の範囲以下になるようにすることを含んでよい。
【0021】
図に示されているように、多数の時間サーバ120Bがネットワーク140上に存在するが、他の例示的なネットワーク140では、単一の時間サーバ120Bによってサービスが提供されてよい。時間サーバ120Bは、基準クロックから時間を受信するか、または読み取り、その後、この時間をネットワーク140の一部またはすべてのデバイス120に配布するように構成される。時間サーバ120Bは、(例えば、時間サーバ120Bが、一部の能力において図2に関して説明されるようなインターフェース210、プロセッサ220、およびメモリ230を含むように)図2のコンピューティング・システム200に類似するコンポーネントを含むコンピューティング・デバイスである。時間サーバ120は、高性能発振器122を必ずしも含まないと理解されてよい。
【0022】
比較すると、データ・サーバ120Aは、ネットワーク140内で、基準クロック信号を受信し、ネットワーク140全体に配布するデフォルトのタスクに使用されない(例えば、ネットワーク140の初期化時に、データ・サーバ120Aには、基準クロックから時間を収集し、クロック信号をネットワーク140のデバイス120に配布する初期タスクが割り当てられないようにする)。むしろ、データ・サーバ120Aは、メインフレーム・コンピューティング・デバイスまたはPCデータ・サーバであると理解されてよい。そのため、データ・サーバ120Aは、(例えば、データ・サーバ120Aが、組織の中央データ・リポジトリの一部になるように)ネットワーク140を利用している組織のための主要な計算動作に使用されると理解されてよい。
【0023】
他のデバイス120Cは、ネットワーク140内のデータ・サーバ120Aと共に同期されるが、時間サーバ120Bではなく、また、データ・サーバ120Aよりもずれを受けやすい、ネットワーク140のコンピューティング・デバイスを含む。例えば、他のデバイス120Cは、いかなる高性能発振器122も含まないか、またはおそらく単一の高性能発振器122を含むか、またはそうでなければ、データ・サーバ120Aと同程度にずれに耐性を持つように構成されない、サーバを含んでよい。一部の実施例では、他のデバイス120Cは、メインフレーム・コンピューティング・デバイスまたはPCデータ・サーバである。データ・サーバ120Aおよび他のデバイス120Cは、両方とも、(例えば、両方とも、図2に関して説明されるような一部の能力におけるインターフェース210、プロセッサ220、およびメモリ230を含むように)図2のコンピューティング・システム200に類似するコンポーネントを含むコンピューティング・デバイスである。
【0024】
一部の例では、コントローラ110は、図1に示されているように、デバイス120から分離しており、コントローラ110が、デバイス120に対して物理的に分離しているコンピューティング・デバイスの一部としてネットワーク140の時刻同期を管理するようにする。他の実施例(図示されていない)では、コントローラ110は、デバイス120のうちの1つまたは複数に(例えば、おそらく分散システムとして)統合されてよい。例えば、コントローラ110は、1つのデータ・サーバ120Aに統合されてよく、またはコントローラ110は、個別のインスタンスとしてデータ・サーバ120Aの各々または多くに統合されてよく、あるいはその両方であってよい。
【0025】
本明細書において説明されるように、時間サーバ120Bは、基準クロック信号をデータ・サーバ120Aおよび他のデバイス120Cに送信する。時間サーバ120Bは、複数のスイッチ130を使用して、ネットワーク140を介して基準クロック信号をデータ・サーバ120Aおよび他のデバイス120Cに送信する。スイッチ130は、開放型システム相互接続(OSI:open systems interconnection)モデルの1つまたは複数の層上のパケット交換などの技術によってデバイス120を接続するネットワーク・スイッチである。
【0026】
ネットワーク140は、1つまたは複数のコンピュータ通信ネットワークを含んでよい。例示的なネットワーク140は、インターネット、ローカル・エリア・ネットワーク(LAN:local area network)、広域ネットワーク(WAN:wide area network)、ワイヤレスLAN(WLAN)などのワイヤレス・ネットワークなどを含むことができる。ネットワーク140は、銅伝送ケーブル、光伝送ファイバ、ワイヤレス送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。しかし、時間サーバ120Bとデバイス120の間にあるネットワーク140の接続は、本明細書において説明されるように、データ同期に必要とされる高速データ送信の能力があるような接続のみを利用してよい。例えば、デバイス120およびスイッチ130の各々は、LANを経由して、これらのデバイス120のために働く各時間サーバ120Bに接続されてよい。各コンピューティング・デバイス/処理デバイス(例えば、コントローラ110、データ・サーバ120A、時間サーバ120B、他のデバイス120C)内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワーク140から、またはネットワーク140を介して、あるいはその両方によって、メッセージまたは命令あるいはその両方を受信し、これらのメッセージまたは命令あるいはその両方を、格納または実行などのために、各コンピューティング・デバイス/処理デバイスの各メモリまたはプロセッサに転送してよい。
【0027】
ネットワーク140は、図1では例示の目的で単一の実体として示されているが、他の例示的なネットワーク140では、複数のプライベート・ネットワークまたはパブリック・ネットワークあるいはその両方を含んでよく、本明細書において説明されるように、これらのネットワークを経由してコントローラ110が時間を管理してよい。例えば、場合によっては、ネットワーク140は、2つのクラスタ化されたサブネットワークを含んでよく、これらのサブネットワーク内で、デバイス120が、各LANを介して接続され、これらの2つのクラスタ化されたサブネットワークが地理的に分散されているときでも、WANなどを介してさらに接続される。詳細には、2つのクラスタ化されたサブネットワークは、例えば、異なる建物、異なる都市、またはそうでなければ、100,000キロメートル離れた領域に位置してよい。この例では、2つの地理的に分散されてクラスタ化されたサブネットワークの各々は、少なくとも1つの時間サーバ120Bおよび少なくとも1つのデータ・サーバ120Aを含み、コントローラ110(1つのコントローラ110であるか、またはコントローラ110の異なる複数のインスタンスであるかにかかわらない)は、2つの地理的に分散されてクラスタ化されサブネットワーク内のデバイス120の時刻同期および時間のずれを管理する。
【0028】
コントローラ110は、ネットワーク140の少なくとも1つのデバイス120によって維持されている時間が、少なくとも1つのデータ・サーバ120Aによって維持されている時間から、しきい値を超えて離れていることを検出する。例えば、しきい値は、50マイクロ秒、100マイクロ秒、または200マイクロ秒であってよく、コントローラ110は、デバイス120のうちの1つのTODクロックの時間が、単一のデータ・サーバ120Aによって維持されている時間から51マイクロ秒、111マイクロ秒、または201マイクロ秒(それぞれ)離れており、したがって、各しきい値を超えていることを検出してよい。これらの特定のしきい値数は、説明の目的で提供されているが、当業者は、そのような数値、がネットワーク140の組織に関連する規制、およびネットワーク140のデバイス120の仕様/能力に大きく依存するということを理解するであろう(例えば、より厳密な許容誤差の能力があるデバイス120がより小さいしきい値を有することができ、または「より低い」規制に縛られている組織が、とりわけより大きいしきい値を有することができ、あるいはその両方であることができるようにする)。したがって、当業者は、デバイス120によって維持される得る時刻同期より大きく、かつ組織に適用できるさまざまな規制または規格あるいはその両方によって定義されたずれの許容できる制限に近づいてもいる(または欠陥である可能性がある)ずれを識別する任意のユーザ定義されたしきい値が、本開示と合致しているということを理解するであろう。
【0029】
コントローラ110は、しきい値を超えるこのずれを検出することに応答して、改善アクションを実行する。改善アクションは、ベスト・マスタ・クロック・アルゴリズムを呼び出すこと、STPリンクを呼び出すこと、クロック信号を、時間サーバ120Bによってネットワーク140全体に伝搬されることから、1つまたは複数のデータ・サーバ120Aによってデバイス120へネットワーク140全体に伝搬されることに変更すること、時間のずれを管理者に通知すること(例えば、どのデバイス120がどれくらいの量だけずれたかを識別することを含む)、1つまたは複数の故障した発振器122を使用中止にすることなどを含んでよい。
【0030】
一部の例では、コントローラ110は、デバイス120の時間を単一のデータ・サーバ120Aに対して比較してよい。例えば、ローカル・ネットワーク140は、単一のデータ・サーバ120Aを含むことができ、コントローラ110は、デバイス120のいずれかが、この単一のデータ・サーバ120Aの内部時間からしきい値時間量を超えて離れたことを検出することに応答して、本明細書において説明されるように改善アクションを実行してよい。例えば、コントローラ110は、時間サーバ120Bの時間が単一のデータ・サーバ120Aと異なることを検出することの結果として、時間サーバ120Bが故障している(または正しくない基準信号を受信した)ことを検出することができる。
【0031】
他の例では、(例えば、単一の部屋内または単一の建物内の)1つのLAN上の単一のネットワーク140は、多数のデータ・サーバ120Aを含んでよく、コントローラ110は、個別のデバイス120の時間を複数のデータ・サーバ120Aの平均時間に対して比較してよい。コントローラ110は、平均値、中央値、最頻値、または何らかの他の統計的手法を計算することなどの、任意の数の統計的手法によって、複数のデータ・サーバ120Aの平均時間を計算してよい。例えば、コントローラ110は、ネットワーク140のLANの1つの時間サーバ120Bの時間を、そのネットワーク140のLANの一部またはすべてのデータ・サーバ120Aに対して比較してよい。
【0032】
コントローラ110は、デバイス120の内部時間を、設定されたスケジュールで、または条件が満たされたことに応答して、あるいはその両方で、データ・サーバ120Aの時間と比較してよい。例えば、コントローラ110は、デバイス120の各々の内部時間を、30分ごとに1回、1時間ごとに1回、12時間ごとに1回、1日ごとに1回、数日ごとに1回などに、データ・サーバ120Aの平均時間に対して比較してよい。コントローラ110は、デバイス120の時間を、可能性のあるずれをより早く捉えるために、より高い頻度でデータ・サーバ120Aの時間に対して比較してよく、一方、コントローラ110は、より少ない計算リソースを使用するように、より低い頻度で比較してよい。一部の実施例では、コントローラ110は、リソースの利用がしきい値を下回ることに応答して(例えば、ネットワーク140の処理、メモリ、または帯域幅、あるいはその組み合わせの利用率があるパーセンテージを下回り、使用するための余剰計算リソースが存在することを示すことに応答して)、デバイス120の時間をデータ・サーバ120Aの時間に対して比較するように構成されてよい。追加的または代替的に、コントローラ110は、ずれを示す何か(例えば、1つまたは複数のデバイス120のずれと相関性があるエラー、警告、または条件)が検出されることに応答して、デバイス120の時間をデータ・サーバ120Aの時間と比較するように構成されてよい。
【0033】
コントローラ110は、自律的に改善アクションを実行してよい。詳細には、コントローラ110は、人間からの介入なしで、本明細書において説明されるように改善アクションを実行してよい。さらに、コントローラ110は、デバイス120のうちの1つまたは複数の時間がずれていることを検出したときに、そのような検出から1ミリ秒または1秒以内など、ほぼ直ちに改善アクションを実行してよい。いずれかのデバイス120がずれていることを検出することに応答して、改善アクションを自律的に、ほぼ直ちに実行するように構成されることによって、このコントローラ110の態様は、デバイス120が正しい時間を利用する可能性を改善することができる(いずれかのデバイス120が、長時間の間、正しい時間を利用していないことの結果として、これらのデバイス120を使用している組織が罰金などを払う必要がある可能性を減らすことができる)。
【0034】
本明細書において説明されるように、一部の例では、コントローラ110は、ネットワーク140の時間サーバ120Bによって維持されているか、または受信されたか、あるいはその両方である時間が、複数のデータ・サーバ120の平均時間から、しきい値を超えて離れていることを検出する。そのような検出に応答して、コントローラ110は改善アクションを実行する。例えば、コントローラ110は、管理者に通知し、環境100のデバイス120に、(ずれている時間サーバ120Bからのクロック信号ではなく)複数のデータ・サーバ120の平均時間であるクロック信号を受信させてもよい。このようにして、時間サーバ120Bの時間が複数のデータ・サーバ120Aの平均時間と相対的にずれていることを検出することに応答して、コントローラは、デバイス120に、複数のデータ・サーバ120Aの平均内部時間を利用させる。
【0035】
特定の例では、コントローラ110は、1つの地理的位置のデバイス120を、異なる地理的位置のデータ・サーバ120Aに対して比較してよい。例えば、コントローラ110は、1つの地理的位置のデータ・サーバ120Aを、第2の地理的位置のデータ・サーバ120Aに対して比較してよい。代替的または追加的に、コントローラ110は、第1の位置のデバイス120が、その第1の位置のデータ・サーバ120Aと相対的にどのくらいずれているかを比較し、その後、そのずれを、第2の位置のデバイス120がその第2の位置のデータ・サーバと相対的にどのくらいずれているかに対して比較してよい。このようにして、本開示の態様は、Graphically Dispersed Parallel Sysplex(GDPS)などの、広範囲にわたって分散されたネットワークの厳密な時刻同期を可能にするように構成されてよい。
【0036】
他の例では、コントローラ110は、1つの位置での第1の時間サーバ120Bの時間を、第2の位置の時間サーバ120Bおよびデータ・サーバ120Aの両方に対して比較してよい。詳細には、コントローラ110は、第1の位置での時間サーバ120Bが正しくない時間を有することを検出してよく、この正しくない時間を、第1の位置から地理的に分散された第2の位置での時間サーバ120Bの時間に対して比較してよい。コントローラ110が、これらの2つの時間サーバ120Bが、両方とも、互いからしきい値以内(例えば、互いから100または1000マイクロ秒以内)である正しくない時間を有するということを検出した場合、コントローラ110は、この問題が、時間サーバ120B自体ではなく、時間ソースにある可能性が高いという結論を下してよい。このようにして、本開示の態様は、例えば、悪意のある第三者が、(例えば、GPSスプーフィングによって)GPS信号などの時間ソースを改ざんしているようであるということを決定するように構成されてよい。そのような決定に応答して、コントローラ110は、少なくとも管理者が2つの位置の状態を検証できるまで、両方の位置のデバイス120に、時間サーバ120Bではなくデータ・サーバ120Aの時間を代わりに使用させてよい。
【0037】
コントローラ110は、1つのデータ・サーバ120Aが他のデータ・サーバ120Aと相対的にずれているかどうかを検出するように構成される。コントローラ110が、1つのデータ・サーバ120Aが他のデータ・サーバ120Aと相対的にずれていることを検出した場合、コントローラ110は、このずれているデータ・サーバ120Aの各発振器122の性能を分析してよい。多くの場合、誤っており、データ・サーバ120Aがずれることを引き起こしている、ずれているデータ・サーバ120Aの少なくとも1つの発振器122を、コントローラ110は、識別する。誤っている1つまたは複数の発振器122を検出することに応答して、コントローラ110は、これらの誤っている発振器122をずれているデータ・サーバ120A内で使用中止にする自律的アクションを実行してよい。コントローラ110は、管理者にさらに通知するか、または(すでに)ずれているデータ・サーバ120Aの交換用発振器122を要求するか、あるいはその両方を実行してよい。
【0038】
追加的または代替的に、コントローラ110は、データ・サーバ120Aがずれていたことを検出することに応答して(例えば、誤っている発振器122に応答して)、データ・サーバ120Aを使用中止にしてよい。他の例では、コントローラ110は、このすでにずれているデータ・サーバ120Aがずれていたことを検出することに応答して(または1つの発振器122を使用中止にすることに応答して、あるいはその両方に応答して)、このすでにずれているデータ・サーバ120Aを、データ・サーバ120Aではなく新しい他のデバイス120Cとして扱ってよい。言い換えると、コントローラ110は、このすでにずれているデータ・サーバ120Aが、他のデータ・サーバ120A(例えば、それぞれ±2ppmに指定された4つの正常に機能している発振器122)に沿った性能を有するということが確認されるように、このすでにずれているデータ・サーバ120Aが完全に使用可能にされて修理されるまで、他のデバイス120Cを、このすでにずれているデータ・サーバ120Aに対して比較しなくてよい。
【0039】
コントローラ110は、1つの他のデバイス120Cがいつずれるかを検出するように構成されてよい。コントローラ110が、1つの他のデバイス120Cがずれていることを検出することに応答して、コントローラ110は、いずれかのさらなる他のデバイス120Cがずれているかどうかをチェックしてよい。さらなる他のデバイス120Cがずれている場合、コントローラ110は、これらの他のデバイス120C間でずれを比較し、これらのずれが類似しているかどうかを調べてよい。コントローラ110が、2つ以上の他のデバイス120Cが類似する量だけずれているということを決定した場合、コントローラ110は、これらの他のデバイス120Cが時間サーバ120Bからクロック信号を受信した経路の共通性を識別してよい。例えば、コントローラ110は、40個の他のデバイス120Cを含んでいるネットワーク140内で、8つの他のデバイス120Cに実質的に同一のずれが発生しているということ、およびさらに、これらの8つの他のデバイス120Cのすべてが共通のスイッチ130を共有しているということを決定してよい。共通のスイッチ130がすべてのずれている他のデバイス120Cに関与しているというこの決定に応答して、コントローラ110は、すでにずれている他のデバイス120Cへのクロック信号の経路を変更する(例えば、問題のあるスイッチ130を回避する新しい経路を通る)改善アクションを実行してよい。コントローラ110は、管理者に、故障しているように見えるスイッチ130を通知してもよい。
【0040】
他の例では、コントローラ110は、(1つの他のデバイス120Cがずれていることを検出することに応答して)すべての他のデバイス120Cを分析するときに、この1つの他のデバイス120C以外に、さらなる他のデバイス120Cがずれていない(または類似する方法でずれていない)ということを決定してよい。そのような決定に応答して、コントローラ110は、この問題を管理者に報告すること、ベスト・マスタ・クロック・アルゴリズムを呼び出すこと、ずれている他のデバイス120Cを、隣接するデバイス120から時間を受信するように切り替えることなどのうちの1つまたは複数を含む改善アクションを実行してよい。
【0041】
前述したように、コントローラ110は、メモリに格納された命令を実行し、本明細書に記載された技術を実行するように構成されたプロセッサを含んでいるコンピューティング・デバイスの一部であってよい。例えば、図2は、コントローラ110のそのようなコンピューティング・システム200の概念ボックス図である。コントローラ110は、説明の目的で(例えば、単一の筐体内の)単一の実体として示されているが、他の例では、コントローラ110は、(例えば、2つ以上の個別の筐体内の)2つ以上の個別の物理的システムを含んでよい。コントローラ110は、インターフェース210、プロセッサ220、およびメモリ230を含んでよい。コントローラ110は、任意の数または量のインターフェース210、プロセッサ220、またはメモリ230、あるいはその組み合わせを含んでよい。
【0042】
コントローラ110は、コントローラ110が、コントローラ110の外部にあるデバイスと通信する(例えば、データをデバイスに送信し、デバイスによって送信されたデータを受信して利用する)ことを可能にするコンポーネントを含んでよい。例えば、コントローラ110は、コントローラ110およびコントローラ110内のコンポーネント(例えば、プロセッサ220など)が、コントローラ110の外部の実体と通信することを可能にするように構成されたインターフェース210を含んでよい。詳細には、インターフェース210は、コントローラ110のコンポーネントがデバイス120、スイッチ130などと情報をやりとりすることを可能にするように構成されてよい。インターフェース210は、情報を送信および受信することができる、イーサネット(登録商標)・カードまたは任意の他の種類のインターフェース・デバイスあるいはその両方などの、1つまたは複数のネットワーク・インターフェース・カードを含んでよい。特定の必要性に従って、説明された機能を実行するために、さまざまな数のインターフェースが使用されてよい。
【0043】
本明細書において説明されるように、コントローラ110は、コンピューティング・ネットワーク内の時刻同期を管理するように構成されてよい。コントローラ110は、このようにして時間を管理するために、プロセッサ220を利用してよい。プロセッサ220は、例えば、マイクロプロセッサ、デジタル信号プロセッサ(DSP:digital signal processors)、特定用途向け集積回路(ASIC:application specific integrated circuits)、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate array)、または同等の個別の、もしくは統合された論理回路、あるいはその組み合わせを含んでよい。プロセッサ220のうちの2つ以上は、一緒に機能して、いずれかのデバイス120がずれているかどうかを識別し、それに応じて、改善アクションを実行するように構成されてよい。
【0044】
プロセッサ220は、コントローラ110のメモリ230に格納された命令232に従って、環境100内のデバイス120の時間を管理してよい。メモリ230は、コンピュータ可読ストレージ媒体またはコンピュータ可読ストレージ・デバイスを含んでよい。一部の例では、メモリ230は、短期メモリまたは長期メモリのうちの1つまたは複数を含む。メモリ230は、例えば、ランダム・アクセス・メモリ(RAM:random access memories)、ダイナミック・ランダム・アクセス・メモリ(DRAM:dynamic random-access memories)、スタティック・ランダム・アクセス・メモリ(SRAM:static random-access memories)、磁気ハード・ディスク、光ディスク、フロッピー(登録商標)ディスク、フラッシュ・メモリ、電気的にプログラム可能なメモリ(EPROM)、電気的に消去可能かつプログラム可能なメモリ(EEPROM)の形態などを含んでよい。
【0045】
命令232に加えて、一部の例では、本明細書において説明されるように、時間のずれおよび同期を管理するためにプロセッサ220によって使用されるような、収集されたか、または事前に決定されたデータまたは技術などが、メモリ230内に格納される。例えば、メモリは時間データ234含んでもよく、時間データ234はさまざまなしきい値およびスケジュールを含んでよく、コントローラ110は、これらのしきい値およびスケジュールで、デバイス120の内部時間を監視する。メモリ230は、データ・サーバ・データ236、時間サーバ・データ238、および他のデバイス・データ240を含んでもよい。データ・サーバ・データ236は、データ・サーバ120Aの過去または現在あるいはその両方の時間データを含んでよく、一方、時間サーバ・データ238は、時間サーバ120Bの過去または現在あるいはその両方の時間データを含んでよく、他のデバイス・データ240は、他のデバイス120Cの過去または現在あるいはその両方の時間データを含む。
【0046】
メモリ230は、機械学習技術242をさらに含んでよく、コントローラ110は、機械学習技術242を使用して、時間の経過に伴って本明細書において説明されるように時間の同期およびずれを管理するプロセスを改善してよい。機械学習技術242は、データセットに対して教師ありトレーニング、教師なしトレーニング、または半教師ありトレーニングを実行することによって生成されるアルゴリズムまたはモデル、およびその後、生成されたアルゴリズムまたはモデルを適用して、本明細書において説明されるように時刻同期またはずれを監視することを含むことができる。例えば、コントローラ110は、機械学習技術242を使用して、特定の種類のデバイス120の特定のずれしきい値が、ずれをより示すか、または次のスケジュールのスキャンの前に問題のあるずれをもたらす可能性がより高いか、あるいはその両方であるということを決定してよい。別の例の場合、コントローラ110は、機械学習技術242を使用して、特定の種類の改善アクションが、時間と共にずれを減らすことにおいてより良いまたはより悪いということを決定してよい。コントローラ110は、時間のずれを減らす能力がルールの更新に基づいて向上するか、または低下するかに基づいて、時間と共にルールを強化してよい。例えば、コントローラ110は、改善アクションを必要としたずれの量が増えているまたは減っているかどうかを追跡し、それに応じて未来のアクションを変更するか、または安定させてよい。
【0047】
機械学習技術242は、決定木学習、相関ルール学習、人工ニューラル・ネットワーク、深層学習、帰納的論理プログラミング、サポート・ベクター・マシン、クラスタ化、ベイジアン・ネットワーク、強化学習、表現学習、類似性/メトリック・トレーニング、スパース辞書学習、遺伝的アルゴリズム、ルールベース学習、または他の機械学習技術、あるいはその組み合わせを含むことができるが、これらに限定されない。
【0048】
例えば、機械学習技術242は、K最近傍手法(KNN:K-nearest neighbor)、学習ベクトル量子化(LVQ:learning vector quantization)、自己組織化マップ(SOM:self-organizing map)、ロジスティック回帰、最小2乗回帰(OLSR:ordinary least squares regression)、線形回帰、段階的回帰、多変量適応的回帰スプライン(MARS:multivariate adaptive regression spline)、リッジ回帰、ラッソ回帰(LASSO:least absolute shrinkage and selection operator)、弾性ネット、最小角回帰(LARS:least-angle regression)、確率的分類器、単純ベイズ分類器、2値分類器、線形分類器、階層的分類器、正準相関分析(CCA:canonical correlation analysis)、因子分析、独立成分分析(ICA:independent component analysis)、線形判別分析(LDA:linear discriminant analysis)、多次元尺度構成法(MDS:multidimensional scaling)、非負メトリック因数分解(NMF:non-negative metric factorization)、部分最小二乗回帰(PLSR:partial least squares regression)、主成分分析(PCA:principal component analysis)、主成分回帰(PCR:principal component regression)、サモン・マッピング、t分布型確率的近傍埋め込み法(t-SNE:t-distributed stochastic neighbor embedding)、ブートストラップ・アグリゲーティング、アンサンブル平均、勾配ブースティング決定木(GBRT:gradient boosted decision tree)、勾配ブースティング・マシン(GBM:gradient boosting machine)、帰納的バイアス・アルゴリズム、Q学習、SARSA(state-action-reward-state-action)、時間差(TD:temporal difference)学習、アプリオリ・アルゴリズム、等価クラス変換(ECLAT:equivalence class transformation)アルゴリズム、ガウス過程回帰、遺伝子発現プログラミング、データ処理のグループ法(GMDH:group method of data handling)、帰納的論理プログラミング、例題に基づく学習、ロジスティック・モデル・ツリー、情報ファジー・ネットワーク(IFN:information fuzzy network)、隠れマルコフ・モデル、ガウス単純ベイズ、多項単純ベイズ、平均化1依存推定器(AODE:averaged one-dependence estimators)、ベイジアン・ネットワーク(BN:Bayesian network)、分類および回帰木(CART:classification and regression tree)、カイ二乗自動相互作用検出(CHAID:chi-squared automatic interaction detection)、期待値最大化アルゴリズム、フィードフォワード・ニューラル・ネットワーク、論理学習マシン、自己組織化マップ、単一リンケージ・クラスタリング、ファジー・クラスタリング、階層的クラスタリング、ボルツマン・マシン、畳み込みニューラル・ネットワーク、回帰型ニューラル・ネットワーク、階層的時間記憶(HTM:hierarchical temporal memory)、または他の機械学習アルゴリズム、あるいはその組み合わせという例示的技術のうちの1つまたは複数を利用することができる。
【0049】
コントローラ110は、これらのコンポーネントを使用して、本明細書において説明されるように時間の同期およびずれを管理してよい。一部の実施例では、コントローラ110は、図3に示されたフローチャート300に従って、デバイス120の時刻同期を管理する。図3のフローチャート300は、例示の目的で図1に関して説明されるが、他の例では、図3のフローチャート300を実行するために他のシステムおよびメッセージが使用されてよいということが理解されるべきである。さらに、一部の実施例では、コントローラ110は、図3のフローチャート300と異なる方法を実行するか、またはコントローラ110は、異なる順序で、より多いステップまたはより少ないステップなどを使用して、同様の方法を実行する。
【0050】
フローチャート300は、コントローラ110がネットワーク140のデバイス120の内部時間(例えば、TOD)を監視することから開始する(302)。コントローラ110は、すべてのデータ・サーバ120Aが互いから厳密な許容誤差/しきい値以内にあるように、データ・サーバ120Aが互いに一致しているかどうかを判定してよい(304)。コントローラ110が、いずれかのデータ・サーバ120Aがしきい値の外側にあるということを決定した場合(304からの「いいえ」の分岐)、コントローラ110は、いずれかの発振器122が誤っているかどうかを識別しようとしてよい(306)。次に、コントローラ110は、誤っている発振器122を使用中止にするか、誤っているデータ・サーバ120Aを使用中止にするか、交換用発振器122を要求するか、管理者に通知するか、誤っているデータ・サーバ120Aを他のデバイス120Cとして扱うか、または同様のことを実行する、改善アクションを実行してよい(308)。
【0051】
コントローラ110が、すべてのデータ・サーバ120Aが一致しているということを決定した場合(304からの「はい」の分岐)、コントローラ110は、他のデバイス120Cがしきい値以内で一致しているかどうかを判定する(310)。他のデバイス120Cが一致している場合(310からの「はい」の分岐)、コントローラ110は、(例えば、次のスケジュールされた時間に)デバイス120の時間の監視を続ける。他のデバイス120Cが一致しない場合(310からの「いいえ」の分岐)、コントローラ110は、ローカルに発生したずれを、地理的に分散されたデバイス120(例えば、共有されたWANの他のデバイス120)に発生したずれに対して比較してよい(312)。
【0052】
コントローラ110は、地理的に分散されたデバイス120に、類似するずれが発生しているかどうかを検証してよい(314)。例えば、コントローラ110は、第1の時間サーバ120Bによってサービスを提供されている第1の地理的位置のすべての他のデバイス120Cに、第1の大きさのずれが発生しており、第2の時間サーバ120Bによってサービスを提供されている第2の地理的位置のすべての他のデバイス120Cに、第2の大きさのずれが発生しており、第1のずれおよび第2のずれが実質的に類似しているということを決定してよい(314からの「はい」の分岐)。
【0053】
当業者は、偶然である可能性が低く、むしろ、2つのずれが、両方とも同じ(悪意のある可能性がある)正しくない基準クロックを受信したことの結果である可能性がより高いほど2つのずれが近接する場合に、ずれが実質的に類似していると理解されるということを、理解するであろう。そのような決定を行う価値がある正確な値は、コンポーネントの精度または可能性のある攻撃の精度あるいはその両方などの状況に応じて変化する可能性があるが、実質的に類似するとして識別される例示的なしきい値は、互いから0.01秒以内であってよい。この決定に応答して、コントローラ110は、地理的に分散されたずれに対する改善アクションを実行してよい(316)。改善アクションは、時間ソースが成り済まされているように見えることを管理者に通知すること、特定のネットワーク140の時間ソースを、時間サーバ120Bの収集された基準時間ではなく、データ・サーバ120Aの(n平均)時間になるように変更することなどを含んでよい。この改善アクションの実行後に、コントローラ110は、デバイス120の監視に戻ってよい(302)。
【0054】
コントローラ110が、地理的に分散された位置に、類似するずれが発生していないということを決定した場合(314からの「いいえ」の分岐)、コントローラ110は、クロック信号を追跡し、ローカル・コンポーネントのエラーを識別してよい(318)。コンポーネントは、スイッチ130、他のデバイス120C、または時間サーバ120B、あるいはその組み合わせを含んでよい。例えば、多数の他のデバイス120Cがすべてずれており、すべて各スイッチ130を共有している場合、コントローラ110は、各スイッチ130にエラーがあるということを識別してよく、クロック信号を、この各スイッチ130を通らずに、これらの他のデバイス120Cにルーティングするという改善アクションを実行してよい(320)。コントローラ110が、単一の時間サーバ120Bによってサービスを提供されている多数の他のデバイス120Cがずれているということを決定した場合、コントローラ110は、本明細書において説明されるように、これらの他のデバイス120Cに、代わりにデータ・サーバ120Aからクロック信号を受信させる(または適用できる場合、これらの他のデバイス120Cが、ネットワーク140の別の時間サーバ120Bによってサービスを提供されることを引き起こす)という改善アクションを実行してよい(320)。代替として、コントローラ110が、単一の他のデバイス120Cがずれていたということを決定した場合、コントローラ110は、STPを実行すること、またはこの単一の他のデバイス120Cに、近くのデバイス120から時間を受信させること、あるいはその両方の改善アクションを実行してよい(320)。
【0055】
本開示のさまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に制限されない。説明された実施形態の範囲および思想から逸脱しない多くの変更および変形が、当業者にとって明らかであろう。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。
【0056】
本発明は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいる1つまたは複数のコンピュータ可読ストレージ媒体を含んでよい。
【0057】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー・ディスク、命令が記録されているパンチカードまたは溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、電波または他の自由に伝搬する電磁波、導波管または他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの、それ自体が一過性の信号であると解釈されるべきではない。
【0058】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、またはワイヤレス・ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0059】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態状況データ、集積回路のための構成データ、あるいはSmalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールドプログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行し、電子回路をカスタマイズしてよい。
【0060】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【0061】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
【0062】
コンピュータ可読プログラム命令は、コンピュータ上、他のプログラム可能な装置上、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成する他のデバイス上で実行させる。
【0063】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、1つのステップとして実現されるか、同時に実行されるか、時間的に部分的または完全に重複する方法で実質的に同時に実行されるか、あるいは場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、あるいは専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも留意されたい。
【0064】
本開示の態様に関連する例示的な項を以下に示す。
【0065】
第1項は、それぞれネットワーク上にある複数のデバイスのデータ・サーバによって、データ・サーバの内部時間を複数のデバイスの各々の各時間に対して比較することであって、データ・サーバが、複数の高性能発振器を利用して内部時間を維持する、比較することと、比較された時間を分析するデータ・サーバによって、ネットワークの別のデバイスによって維持されている時間がしきい値を超えてずれていることを検出することと、別のデバイスによって維持されている時間がしきい値を超えてずれていることを検出することに応答して、改善アクションを実行することとを含む、コンピュータ実装方法に関連している。
【0066】
第2項は、第1項のコンピュータ実装方法に関連しており、複数の高性能発振器が、少なくとも±100万分の2まで正確であるようにそれぞれ指定された少なくとも4つの発振器を含み、データ・サーバが、ソフトウェアを複数の高性能発振器と共に使用して、内部時間を1日に2ミリ秒を超えてずれないよう維持するように構成される。
【0067】
第3項は、第1項または第2項のいずれかのコンピュータ実装方法に関連しており、改善アクションが自律的に実行される。
【0068】
第4項は、第1項~第3項のいずれかのコンピュータ実装方法に関連しており、データ・サーバが、それぞれ複数の高性能発振器を利用して各内部時間を維持する複数のデータ・サーバのうちの1つである。
【0069】
第5項は、第1項~第4項のいずれかのコンピュータ実装方法に関連しており、改善アクションが、通知を管理者に送信することを含む。
【0070】
第6項は、第1項~第5項のいずれかのコンピュータ実装方法に関連しており、ネットワークが、高精度時間プロトコルを利用して複数の内部デバイスの内部時間を同期させる。
【0071】
第7項は、第6項のコンピュータ実装方法に関連しており、改善アクションが、ベスト・マスタ・クロック・アルゴリズムを呼び出すことを含む。
【0072】
第8項は、第1項~第6項のいずれかのコンピュータ実装方法に関連しており、別のデバイスが、ネットワークの時間サーバである。
【0073】
第9項は、第8項のコンピュータ実装方法に関連しており、時間サーバの時間がしきい値を超えてずれていることを検出することが、時間サーバの時間を複数のデータ・サーバのすべての平均内部時間に対して比較することを含み、改善アクションが、時間サーバの時間が平均内部時間からしきい値を超えてずれていることを検出することに応答して、ネットワークに、時間サーバの時間ではなく複数のデータ・サーバのすべての平均内部時間を利用させることを含む。
【0074】
第10項は、第1項~第6項のいずれかのコンピュータ実装方法に関連しており、別のデバイスの時間がしきい値を超えてずれていることを検出することが、別のデバイスの時間を複数のデータ・サーバのすべての平均内部時間に対して比較することを含み、この方法は、クロック信号をスイッチまで追跡することによって、ネットワークのスイッチが、別のデバイスがしきい値を超えてずれることの原因であるということを識別することをさらに含む。
【0075】
第11項は、第1項~第6項のいずれかのコンピュータ実装方法に関連しており、別のデバイスが、ネットワークの別のデータ・サーバであり、改善アクションが、データ・サーバを自律的に使用中止にすることを含む。
【0076】
第12項は、第1項~第6項のいずれかのコンピュータ実装方法に関連しており、ネットワークが、地理的に分散され、2つのクラスタ化されたサブネットワークを含み、データ・サーバが、2つのクラスタ化されたサブネットワークのうちの第1のサブネットワークでの複数のデータ・サーバのうちの1つであり、第1の複数のデータ・サーバのうちの各データ・サーバが、各複数の高性能発振器を利用して各内部時間を維持し、別のデバイスが、第1のクラスタ化されたサブネットワークの時間サーバであり、第1のクラスタ化されたサブネットワークの時間サーバの時間がしきい値を超えてずれていることを検出することが、第1のクラスタ化されたサブネットワークの時間サーバの時間を、複数のデータ・サーバのすべての平均内部時間に対して比較することを含み、この方法は、2つのクラスタ化されたサブネットワークのうちの第2のサブネットワークの時間サーバの内部時間を、複数のデータ・サーバのすべての平均内部時間に対して比較することと、第2のクラスタ化されたサブネットワークの時間サーバが、第1のクラスタ化されたサブネットワークの時間サーバがずれた方法に実質的に類似する方法でずれたということを検出することと、時間サーバが実質的に類似する方法でずれていることを検出することの結果として、第1および第2のクラスタ化されたサブネットワークの両方での時間サーバのクロック・ソースが危殆化されている(compromised)ことを検出することとをさらに含む。
【0077】
第13項は、第1項~第6項のいずれかのコンピュータ実装方法に関連しており、別のデバイスの時間がしきい値を超えてずれていることを検出することが、別のデバイスの時間を複数のデータ・サーバのすべての平均内部時間に対して比較することを含み、別のデバイスが、複数のデータ・サーバのうちの別のデータ・サーバを含み、改善アクションが、別のデータ・サーバの高性能発振器が誤っていることを識別することに応答して、この高性能発振器を使用中止にすることを含む。
図1
図2
図3
【手続補正書】
【提出日】2024-04-04
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ネットワーク上のデータ・サーバの内部時間を、前記ネットワーク上の複数のデバイスの各々の各時間に対して比較することであって、前記データ・サーバが、複数の高性能発振器を利用して前記内部時間を維持する、前記比較することと、
比較された前記時間を分析することによって、前記ネットワークの別のデバイスによって維持されている時間がしきい値を超えてずれていることを検出することと、
前記別のデバイスによって維持されている前記時間が前記しきい値を超えてずれていることを検出することに応答して、改善アクションを実行することと
を含む、コンピュータ実装方法。
【請求項2】
前記別のデバイスが、前記ネットワークの時間サーバである、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記データ・サーバが、それぞれ複数の高性能発振器を利用して各内部時間を維持する複数のデータ・サーバのうちの1つであり、
前記時間サーバの前記時間が前記しきい値を超えてずれていることを前記検出することが、前記時間サーバの前記時間を前記複数のデータ・サーバのすべての平均内部時間に対して比較することを含み、
前記改善アクションが、前記時間サーバの前記時間が前記平均内部時間から前記しきい値を超えてずれていることを検出することに応答して、前記ネットワークに、前記時間サーバの前記時間ではなく前記複数のデータ・サーバのすべての前記平均内部時間を利用させることを含む、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記改善アクションが自律的に実行される、請求項3に記載のコンピュータ実装方法。
【請求項5】
前記データ・サーバが、それぞれ複数の高性能発振器を利用して各内部時間を維持する複数のデータ・サーバのうちの1つであり、
前記別のデバイスの前記時間が前記しきい値を超えてずれていることを前記検出することが、前記別のデバイスの前記時間を前記複数のデータ・サーバのすべての平均内部時間に対して比較することを含み、前記方法が、
誤っているクロック信号をスイッチまで追跡することによって、前記ネットワークの前記スイッチが、前記別のデバイスが前記しきい値を超えてずれることの原因であるということを識別することをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記改善アクションが、
通知を管理者に送信することと、
ベスト・マスタ・クロック・アルゴリズムを呼び出すことと
を含む、請求項5に記載のコンピュータ実装方法。
【請求項7】
前記ネットワークが、高精度時間プロトコルを利用して前記複数のデバイスの内部時間を同期させる、請求項1に記載のコンピュータ実装方法。
【請求項8】
前記改善アクションが、ベスト・マスタ・クロック・アルゴリズムを呼び出すことを含む、請求項7に記載のコンピュータ実装方法。
【請求項9】
前記別のデバイスが、前記ネットワークの別のデータ・サーバであり、
前記改善アクションが、前記データ・サーバを自律的に使用中止にすることを含む、請求項1に記載のコンピュータ実装方法。
【請求項10】
前記複数の高性能発振器が、少なくとも±100万分の2まで正確であるようにそれぞれ指定された少なくとも4つの発振器を含み、
前記データ・サーバが、ソフトウェアを前記複数の高性能発振器と共に使用して、前記内部時間を1日に2ミリ秒を超えてずれないよう維持するように構成される、請求項1に記載のコンピュータ実装方法。
【請求項11】
前記ネットワークが、地理的に分散され、2つのクラスタ化されたサブネットワークを含み、
前記データ・サーバが、前記2つのクラスタ化されたサブネットワークのうちの第1のサブネットワークでの複数のデータ・サーバのうちの1つであり、前記第1のサブネットワークでの前記複数のデータ・サーバのうちの各データ・サーバが、各複数の高性能発振器を利用して各内部時間を維持し、
前記別のデバイスが、前記第1サブネットワークの時間サーバであり、
前記第1のサブネットワークの前記時間サーバの前記時間が前記しきい値を超えてずれていることを前記検出することが、前記第1のサブネットワークの前記時間サーバの前記時間を、前記複数のデータ・サーバのすべての平均内部時間に対して比較することを含み、前記方法が、
前記2つのクラスタ化されたサブネットワークのうちの第2のサブネットワークの時間サーバの内部時間を、前記複数のデータ・サーバのすべての前記平均内部時間に対して比較することと、
前記第2サブネットワークの前記時間サーバが、前記第1サブネットワークの前記時間サーバがずれた方法に実質的に類似する前記方法でずれたということを検出することと、
前記時間サーバが実質的に類似する方法でずれていることを検出することの結果として、前記第1および第2サブネットワークの両方での前記時間サーバのクロック・ソースが危殆化されていることを検出することと
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項12】
前記データ・サーバが、それぞれ複数の高性能発振器を利用して各内部時間を維持する複数のデータ・サーバのうちの1つであり、
前記別のデバイスの前記時間が前記しきい値を超えてずれていることを前記検出することが、前記別のデバイスの前記時間を前記複数のデータ・サーバのすべての平均内部時間に対して比較することを含み、
前記別のデバイスが、前記複数のデータ・サーバのうちの別のデータ・サーバを含み、
前記改善アクションが、前記別のデータ・サーバの高性能発振器が誤っていることを識別することに応答して、前記高性能発振器を使用中止にすることを含む、請求項1に記載のコンピュータ実装方法。
【請求項13】
複数のデバイスのネットワーク上のデータ・サーバであって、前記データ・サーバが、
複数の高性能発振器と、
プロセッサと、
前記プロセッサと通信するメモリとを備え、前記メモリが命令を含み、前記命令が、前記プロセッサによって実行された場合に、前記プロセッサに、
前記データ・サーバの内部時間を、前記ネットワーク上の前記複数のデバイスの各々の各時間に対して比較することであって、前記データ・サーバが、前記複数の高性能発振器を利用して前記内部時間を維持する、前記比較することと、
前記比較された時間を分析することによって、前記ネットワークの別のデバイスによって維持されている時間がしきい値を超えてずれていることを検出することと、
前記別のデバイスによって維持されている前記時間が前記しきい値を超えてずれていることを検出することに応答して、改善アクションを実行することと
を実行させる、データ・サーバ。
【請求項14】
前記別のデバイスが、前記ネットワークの時間サーバである、請求項13に記載のデータ・サーバ。
【請求項15】
前記データ・サーバが、それぞれ複数の高性能発振器を利用して各内部時間を維持する前記ネットワーク上の複数のデータ・サーバのうちの1つであり、
前記時間サーバの前記時間が前記しきい値を超えてずれていることを前記検出することが、前記時間サーバの前記時間を前記複数のデータ・サーバのすべての平均内部時間に対して比較することを含み、
前記改善アクションが、前記時間サーバの前記時間が前記平均内部時間から前記しきい値を超えてずれていることを検出することに応答して、前記ネットワークに、前記時間サーバの前記時間ではなく前記複数のデータ・サーバのすべての前記平均内部時間を利用させることを含む、請求項13に記載のデータ・サーバ。
【請求項16】
前記データ・サーバが、それぞれ複数の高性能発振器を利用して各内部時間を維持する前記ネットワーク上の複数のデータ・サーバのうちの1つであり、
前記別のデバイスの前記時間が前記しきい値を超えてずれていることを前記検出することが、前記別のデバイスの前記時間を前記複数のデータ・サーバのすべての平均内部時間に対して比較することを含み、前記メモリが追加の命令を含み、前記追加の命令が、前記プロセッサによって実行された場合に、前記プロセッサに、
誤っているクロック信号をスイッチまで追跡することによって、前記ネットワークの前記スイッチが、前記別のデバイスが前記しきい値を超えてずれることの原因であるということを識別することを実行させる、請求項13に記載のデータ・サーバ。
【請求項17】
前記改善アクションが、ベスト・マスタ・クロック・アルゴリズムを呼び出すことを含む、請求項13に記載のデータ・サーバ。
【請求項18】
前記データ・サーバが、それぞれ複数の高性能発振器を利用して各内部時間を維持する前記ネットワーク上の複数のデータ・サーバのうちの1つであり、
前記別のデバイスの前記時間が前記しきい値を超えてずれていることを前記検出することが、前記別のデバイスの前記時間を前記複数のデータ・サーバのすべての平均内部時間に対して比較することを含み、
前記別のデバイスが、前記複数のデータ・サーバのうちの別のデータ・サーバを含み、
前記改善アクションが、前記別のデータ・サーバの高性能発振器が誤っていることを識別することに応答して、前記高性能発振器を使用中止にすることを含む、請求項13に記載のデータ・サーバ。
【請求項19】
前記複数の高性能発振器が、少なくとも±100万分の2まで正確であるようにそれぞれ指定された少なくとも4つの発振器を含み、
前記メモリが、前記複数の高性能発振器と共に、前記データ・サーバの前記内部時間の精度を改善し、前記内部時間を1日に2ミリ秒を超えてずれないよう維持するように構成されたソフトウェア・アプリケーションを含む、請求項13に記載のデータ・サーバ。
【請求項20】
コンピュータ・プログラムであって前記コンピュータに、
前記データ・サーバの内部時間を、前記ネットワーク上の前記複数のデバイスの各々の各時間に対して比較することであって、前記データ・サーバが、前記複数の高性能発振器を利用して前記内部時間を維持する、前記比較することと、
前記比較された時間を分析することによって、前記ネットワークの別のデバイスによって維持されている時間がしきい値を超えてずれていることを検出することと、
前記別のデバイスによって維持されている前記時間が前記しきい値を超えてずれていることを検出することに応答して、改善アクションを実行することと
を実行させるためのコンピュータ・プログラム
【請求項21】
複数の高性能発振器をそれぞれ利用して、高精度時間プロトコル(PTP)を利用するネットワークの一部として各内部時間を維持する複数のデータ・サーバの平均内部時間を、前記ネットワークの他のデバイスに対して比較することと、
前記比較された時間を分析することによって、前記ネットワークの別のデバイスによって維持されている時間が、前記複数のデータ・サーバのすべての前記平均内部時間から、しきい値を超えてずれていることを検出することと、
前記ネットワークの前記別のデバイスによって維持されている前記時間が前記しきい値を超えてずれていることを検出することを識別することに応答して、改善アクションを実行することと
を含む、コンピュータ実装方法。
【請求項22】
前記別のデバイスが、前記ネットワークの時間サーバである、請求項21に記載のコンピュータ実装方法。
【請求項23】
前記改善アクションが、前記別のデバイスが前記時間サーバであることを検出することに応答して、前記ネットワークに、前記時間サーバの前記時間ではなく前記複数のデータ・サーバのすべての前記平均内部時間を利用させることを含む、請求項22に記載のコンピュータ実装方法。
【請求項24】
前記方法が、クロック信号をスイッチまで追跡することによって、前記ネットワークの前記スイッチが、前記別のデバイスが前記しきい値を超えてずれることの原因であるということを識別することをさらに含む、請求項21に記載のコンピュータ実装方法。
【請求項25】
前記別のデバイスが、前記複数のデータ・サーバのうちの別のデータ・サーバを含み、
前記改善アクションが、前記別のデータ・サーバの高性能発振器が誤っていることを識別することに応答して、前記高性能発振器を使用中止にすることを含む、請求項21に記載のコンピュータ実装方法。
【国際調査報告】