JP2015535970A - 複数のサーバノードを有する物理的セキュリティシステム - Google Patents

複数のサーバノードを有する物理的セキュリティシステム Download PDF

Info

Publication number
JP2015535970A
JP2015535970A JP2015530252A JP2015530252A JP2015535970A JP 2015535970 A JP2015535970 A JP 2015535970A JP 2015530252 A JP2015530252 A JP 2015530252A JP 2015530252 A JP2015530252 A JP 2015530252A JP 2015535970 A JP2015535970 A JP 2015535970A
Authority
JP
Japan
Prior art keywords
node
server
nodes
cluster
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015530252A
Other languages
English (en)
Other versions
JP6500289B2 (ja
JP2015535970A5 (ja
Inventor
ライアン リー
ライアン リー
ショーン マーラット
ショーン マーラット
マシュー アダム
マシュー アダム
ロス ワイトマン
ロス ワイトマン
グレッグ マゴラン
グレッグ マゴラン
アンドリュー マーツ
アンドリュー マーツ
Original Assignee
アビジロン コーポレイション
アビジロン コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アビジロン コーポレイション, アビジロン コーポレイション filed Critical アビジロン コーポレイション
Publication of JP2015535970A publication Critical patent/JP2015535970A/ja
Publication of JP2015535970A5 publication Critical patent/JP2015535970A5/ja
Application granted granted Critical
Publication of JP6500289B2 publication Critical patent/JP6500289B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6272Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2823Reporting information sensed by appliance or service execution status of appliance services in a home automation network
    • H04L12/2825Reporting to a device located outside the home and the home network
    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B13/00Burglar, theft or intruder alarms
    • G08B13/18Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength
    • G08B13/189Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength using passive radiation detection systems
    • G08B13/194Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength using passive radiation detection systems using image scanning and comparing systems
    • G08B13/196Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength using passive radiation detection systems using image scanning and comparing systems using television cameras
    • G08B13/19697Arrangements wherein non-video detectors generate an alarm themselves

Abstract

複数のサーバノードを有する物理的セキュリティシステムは、分散ネットワークとして構築することができる。ネットワークにおけるノード間でデータを送信するために、第1ノードは、第2ノードを識別するノード識別子にアクセスすることができ、第1及び第2ノードの双方が、サーバクラスタの少なくとも一部を形成し、第1ノードは、データを第2ノードに送信することができる。ノード識別子は、当該サーバクラスタにおける全てのサーバノードを識別し且つ該全てのサーバノードによってアクセス可能なクラスタメンバーシップ情報の少なくとも一部を形成する。システムユーザ間でビューを共有する能力及び無人ディスプレイをユーザが制御する能力のような機能は、分散ネットワーク、連合ネットワーク、又は別の種類のネットワーク上に実装することができる。【選択図】図1

Description

(関連出願の相互参照)
本出願は、その全体が引用により本明細書に組み入れられる2012年9月7日出願の同一出願人による米国特許出願第13/607,447号明細書の同時係属出願である。
本開示は、複数のサーバノードを有する物理的セキュリティシステムに関する。
物理的セキュリティシステムは、許可されていない人が、建物、設備、又はコンフィデンシャル情報などの施設に物理的にアクセスするのを防ぐための手段を実装するシステムである。物理的セキュリティシステムの実施例は、施設及び施設に近接したものを監視するためにカメラが使用されるシステムのような監視システム、建物へのアクセスを制御するためにRFIDカードを使用するシステムのようなアクセス制御システム、家庭用盗難警報システムのような侵入検出システム、及び前述のシステムの組合せを含む。
米国特許出願連番第13/607,447号公報
物理的セキュリティシステムは、コンピュータを組み込むことが多い。この種類の物理的セキュリティシステムが増えるにつれて、本システムを作動させるのに必要とされるコンピュータパワーも増大する。例えば、監視システムにおけるカメラの数が増えるにつれて、追加されるビデオを格納でき且つ多数のカメラの同時使用及び管理を可能にするために、コンピュータパワーの必要量も増大する。従って、物理的セキュリティシステムが増えるにつれて生じる問題に対処するよう、研究及び開発が継続的に行われている。
第1の態様によれば、複数のサーバノードを含む物理的セキュリティシステムにおいてデータを共有する方法が提供される。本方法は、サーバノードのうちの1つのサーバノード(「第1ノード」)を使用して、サーバノードのうちの別のサーバノード(「第2ノード」)を識別するノード識別子にアクセスするステップを含み、第1及び第2ノードは、サーバクラスタの少なくとも一部を含み、ノード識別子は、サーバクラスタにおける全てのサーバノードを識別し且つ該全てのサーバノードによってアクセス可能なクラスタメンバーシップ情報の少なくとも一部を含み、本方法は更に、第1ノードからのデータを第2ノードに送信するステップを含む。
サーバクラスタは少なくとも3つのサーバノードを含むことができる。
サーバノードは、カメラ、ネットワークビデオレコーダ、及びアクセス制御サーバを含むことができる。
本方法は、第2ノードを使用して、第1ノードを識別するノード識別子にアクセスするステップと、第2ノードからの付加的なデータを第1ノードに送信するステップと、を更に含むことができる。
クラスタメンバーシップ情報は、サーバクラスタにおけるサーバノードの各々を一意的に識別するノード識別子と、サーバノードが属するサーバクラスタを一意的に識別するクラスタ識別子と、を含むことができる。
サーバクラスタにおけるサーバノードの各々は、クラスタメンバーシップ情報の固有のバージョンを永続的にローカルに格納することができる。
本方法は更に、サーバクラスタにおけるサーバノードの1つ(「リブートサーバノード」)をリブートするステップと、リブートされたサーバノードがオンラインに戻ると、リブートされたサーバノードを使用して、(i)サーバクラスタを識別するクラスタ識別子にアクセスし、(ii)サーバクラスタに自動的に再参加する、ことを含む方法を実行するステップと、を含むことができる。
本方法は更に、新しいサーバノードをサーバクラスタに追加するステップを含むことができ、該追加するステップが、新しいサーバノード上に格納されたクラスタメンバーシップ情報のバージョンを、既にサーバクラスタの一部であるサーバノード(「メンバーシップ制御ノード」)の1つ上に格納されたクラスタメンバーシップ情報のバージョンと交換するステップと、新しいサーバノード上に格納されたクラスタメンバーシップ情報のバージョンを、新しいサーバノードがクラスタに加入する前にクラスタにおけるサーバノードの全て上に格納されたクラスタメンバーシップ情報のバージョンに同期するステップと、を含む方法を実行することによって行われる。
データを送信するステップは、第1ノードを使用して、ノード識別子から第2ノードの通信エンドポイントを探すステップと、第1ノードからのデータを通信エンドポイントに送信するステップと、を含むことができる。
通信エンドポイント及びノード識別子は、サーバクラスタにおけるサーバノードの全てに対するノード識別子を対応する通信エンドポイントに関係付けるネットワークマップへのエントリを含むことができ、サーバクラスタにおけるサーバノードの各々は、ネットワークマップのノード固有のバージョンを永続的にローカルに格納することができる。
このネットワークマップにより、サーバクラスタにおけるサーバノードの各々は、中央サーバを使用することなくサーバクラスタにおけるサーバノードの何れかの他のノードにデータを送信できるようになる。
データは第1ノード上にローカルに格納することができ、本方法は更に、第1ノードを使用してデータを修正するステップを含むことができ、第1ノードからのデータを第2ノードに送信するステップは、第1ノードがデータを修正した後に第1及び第2ノード上のデータを同期するステップの一部を構成する。
データは、カジュアリティバージョニング機構を使用して生成されたバージョン情報を含むことができ、データの異なるバージョンは、第1及び第2ノードに格納することができ、データを同期するステップは、第1及び第2ノード上に格納されたバージョン情報を比較して、第1及び第2ノードの双方に対してバージョン情報が最新であることを示すデータを採用するステップを含むことができる。
データは、第1ノードのノード識別子、第1ノードのハートビート状態情報、第1ノードのアプリケーション状態情報、及びバージョン情報を含むことができ、データを送信するステップは、クラスタにおけるサーバノードのペア間でデータ交換を実行するゴシッププロトコルを使用して、サーバクラスタにおけるサーバノードの全てにデータを配布するステップを含むことができる。
データは、サーバクラスタにおけるサーバノードの全てに定期的に配布することができる。
データは、第1ノードがクラスタに加入した時に第2ノードに送信することができる。
サーバクラスタにおけるサーバノードの何れかによって修正することができるエントリが追加されたドメインは、サーバクラスタにおけるノードの各々にローカルに格納することができ、本方法は更に、サーバノードのどれがエントリのうちの最新の修正されたエントリを有するかをバージョン情報が示すように、カジュアリティバージョニング機構を使用してバージョン情報を生成するステップを含むことができる。
アプリケーション状態情報は、ドメインにおけるエントリの全てをハッシュすることによって生成されたトップレベルハッシュを含むことができる。
本方法は更に、第2ノードを使用して、トップレベルハッシュを、第2ノード上にローカルに格納された対応するドメインのバージョンをハッシュすることによって生成されたトップレベルハッシュと比較するステップと、トップレベルハッシュが異なる場合、バージョン情報を使用して第1及び第2ノード双方でドメインを同期するステップと、を含むことができる。
第1ノードによってのみ修正することができるステータスエントリは、第1ノード上にローカルに格納することができ、バージョン情報は、ステータスエントリを修正する時は必ず第1ノードが増分するバージョン番号を含むことができる。
アプリケーション状態情報は、ステータスエントリを識別するステータスエンティティ識別子及びバージョン番号を有するステータスエンティティペアを含むことができる。
本方法は更に、第2ノードを使用して、第1ノードから受信されたバージョン番号を、第2ノード上にローカルに格納された対応するステータスエントリのバージョン番号と比較するステップと、バージョン番号が異なる場合、第2ノード上にローカルに格納されたステータスエントリを第1ノード上にローカルに格納されたステータスエントリによって更新するステップと、を含むことができる。
ステータスエントリを更新するステップは、ステータスエントリと同時に修正された第1ノード上にローカルに格納された付加的なステータスエントリを第1ノードから第2ノードに送信するステップを含むことができる。
第1及び第2ノードは、第1ノードがデータを全体的に順序付けられた方式でグループにおけるサーバノードの全てに送信することができるクラスタにおけるサーバノードのグループの少なくとも一部を含むことができ、データを送信するステップは、第1ノードがグループにおけるサーバノードの全てにデータを送信するステップを含むことができる。
データは、物理的セキュリティシステムのランタイム中に生成された非永続的データを含むことができる。
データはまた、サーバクラスタにおけるサーバノードのうちの別のサーバノードから第1ノードを介して第2ノードにストリーミングされるストリーミングビデオを含むことができる。
別の態様によれば、物理的セキュリティシステムにおいてデータを共有するためのシステムが提供され、本システムは、第1ノード及び第2ノードを有する複数のサーバノードを備え、第1ノードが、コンピュータ可読媒体に通信可能に接続されたプロセッサを含み、該コンピュータ可読媒体は、方法をプロセッサに実行させるようにするステートメント及び命令を符号化しており、上記方法が、第2ノードを識別するノード識別子にアクセスするステップを含み、該第1及び第2ノードは、サーバクラスタの少なくとも一部を含み、ノード識別子は、サーバクラスタにおけるサーバノードの全てを識別し且つ該全てのサーボノードによってアクセス可能なクラスタメンバーシップ情報の少なくとも一部を含み、上記方法が更に、データを第2ノードに送信するステップを含む。
別の態様によれば、複数のサーバノードを含む物理的セキュリティシステムにおいてデータを共有する方法をプロセッサに実行させるためのステートメント及び命令を符号化した非一時的コンピュータ可読媒体が提供され、上記方法が、サーバノードのうちの1つのサーバノード(「第1ノード」)を使用して、サーバノードのうちの別のサーバノード(「第2ノード」)を識別するノード識別子にアクセスするステップを含み、第1及び第2ノードは、サーバクラスタの少なくとも一部を含み、ノード識別子は、サーバクラスタにおける全てのサーバノードを識別し且つ該全てのサーバノードによってアクセス可能なクラスタメンバーシップ情報の少なくとも一部を含み、上記方法が更に、第1ノードからのデータを第2ノードに送信するステップを含む。
別の態様によれば、複数のサーバノードを含む物理的セキュリティシステムにおいて無人ディスプレイと対話するための方法が提供され、本方法は、無人ディスプレイと通信可能なサーバノードのうちの1つのサーバノード(「第2ノード」)から、クライアントディスプレイと通信可能なサーバノードのうちの別のサーバノード(「第1ノード」)に、無人ディスプレイ上に表示されたビューを示すビュー状態データを送信するステップと、クライアントディスプレイ上に無人ディスプレイ上に表示されたビューの少なくとも一部を表示するステップと、を含む。1つの態様において、サーバノードのどれもが中央ゲートウェイサーバではなく、代替の態様において、サーバノードの少なくとも1つが中央ゲートウェイサーバである。
本方法は更に、第1ノードから第2ノードに無人ディスプレイのビューを変更するためのメッセージを送信するステップと、第1ノードから第2ノードに送信されたメッセージに従って、無人ディスプレイを更新するステップと、を含むことができる。
第1及び第2ノード並びに複数のサーバノードのうちの少なくとも別のサーバノードは、サーバクラスタを含むことができ、第1及び第2ノードは、第2ノードがビュー状態データを全体的に順序付けられた方式でグループにおける全ての他のサーバノードに送信できるクラスタにおけるサーバノードのグループの少なくとも一部を含むことができ、ビュー状態データを送信するステップは、第2ノードがグループにおける他のサーバノードの全てにデータを送信するステップを含むことができる。
第1及び第2ノード並びに複数のサーバノードのうちの少なくとも別のサーバノードは、サーバクラスタを含むことができ、第1及び第2ノードは、第1ノードが無人ディスプレイの状態を変更するためのメッセージを全体的に順序付けられた方式でグループにおける全ての他のサーバノードに送信できるクラスタにおけるサーバノードのグループの少なくとも一部を含むことができ、第1ノードは、無人ディスプレイの状態を変更するためのメッセージをグループにおける他のサーバノードの全てに送信することができる。
本方法は更に、無人ディスプレイのビューが制御できるという通知を第2ノードから第1ノードに送信するステップを更に含むことができる。
通知を送信するステップは、クラスタにおけるサーバノードのペア間でデータ交換を実行するゴシッププロトコルを使用して、サーバクラスタにおけるサーバノードの全てに通知を配布するステップを含むことができる。
本方法は、無人ディスプレイの状態を制御ディスプレイに送信する前に、第2ノードを使用して第1ノードを識別するノード識別子にアクセスするステップを含むことができ、第1及び第2ノードは、サーバクラスタの少なくとも一部を含み、ノード識別子は、サーバクラスタにおける全てのサーバノードを識別し且つ該全てのサーバノードによってアクセス可能なクラスタメンバーシップ情報の少なくとも一部を含む。
クラスタメンバーシップ情報は、サーバクラスタにおけるサーバノードの各々を一意的に識別するノード識別子と、サーバノードが属するサーバクラスタを一意的に識別するクラスタ識別子を含むことができる。
サーバクラスタにおけるサーバノードの各々は、クラスタメンバーシップ情報の固有のバージョンを永続的にローカルに格納することができる。
別の態様によれば、クライアントディスプレイと、無人ディスプレイと、複数のサーバノードとを備えた物理的セキュリティシステムが提供され、サーバノードのうちの1つのサーバノード(「第1ノード」)は、クライアントディスプレイと通信可能であり、サーバノードのうちの別のサーバノード(「第2ノード」)は、無人ディスプレイと通信可能であり、第2ノードは、第2ディスプレイ上に表示されたビューを示すビュー状態データを第1ノードに送信するよう構成され、第1ノードは、第2ディスプレイ上に表示されたビューの少なくとも一部分をクライアントディスプレイ上に表示するよう構成される。1つの態様において、サーバノードのどれもが中央ゲートウェイサーバではなく、代替の態様において、サーバノードの少なくとも1つが中央ゲートウェイサーバである。
別の態様によれば、クライアントディスプレイを有するクライアントと、無人ディスプレイと、複数のサーバノードとを備えた物理的セキュリティシステムが提供され、サーバノードのうちの1つのサーバノード(「第1ノード」)は、クライアントと通信可能であり、サーバノードのうちの別のサーバノード(「第2ノード」)は、無人ディスプレイと通信可能であり、第2ノードは、第2ディスプレイ上に表示されたビューを示すビュー状態データを第1ノードに送信するよう構成され、クライアント及び第1ノードは、第2ディスプレイ上に表示されたビューの少なくとも一部分をクライアントディスプレイ上に表示するよう構成される。1つの態様において、サーバノードのどれもが中央ゲートウェイサーバではなく、代替の態様において、サーバノードの少なくとも1つが中央ゲートウェイサーバである。
無人ディスプレイは、第2ノードに直接接続することができ、又は、例えば無人クライアント又はワークステーションを介して第2ノードに間接的に接続することができる。
別の態様によれば、複数のサーバノードを含む物理的セキュリティシステムにおいて無人ディスプレイと対話するための方法をプロセッサに実行させるためのステートメント及び命令を符号化した非一時的コンピュータ可読媒体が提供され、本方法は、無人ディスプレイと通信可能なサーバノードのうちの1つのサーバノード(「第2ノード」)からクライアントディスプレイと通信可能なサーバノードのうちの別のサーバノード(「第1サーバ」)に、無人ディスプレイ上に表示されたビューを示すビュー状態データを送信するステップと、クライアントディスプレイ上に、無人ディスプレイ上に表示されたビューの少なくとも一部分を表示するステップと、を含む。
別の態様によれば、複数のサーバノードを含む物理的セキュリティシステムを使用してビューを共有(「共有ビュー」)する方法が提供され、本方法は、第1クライアントからサーバノードのうちの1つのサーバノード(「第1ノード」)に、第1クライアントによって表示された共有ビューを表すビュー状態データを送信するステップと、第1ノードからビュー状態データを第2クライアントにサーバノードのうちの別のサーバノード(「第2ノード」)を介して送信するステップと、共有ビューを表示するためにビュー状態データを使用して第2クライアントのディスプレイを更新するステップと、第2クライアントにおける共有ビューの変更に応答して、第2クライアントによって表示された共有ビューを表す更新されたビュー状態データを第2クライアントから第2ノードに送信するステップと、更新されたビュー状態データを第2ノードから第1ノードを介して第1クライアントに送信するステップと、第1クライアントのディスプレイを更新して、更新されたビュー状態データを使用して共有ビューを表示するステップと、を含む。1つの態様において、サーバノードのどれもが中央ゲートウェイサーバではなく、代替の態様において、ノードの少なくとも1つが中央ゲートウェイサーバである。
第1及び第2ノード並びに複数のサーバノードのうちの少なくとも別のサーバノードは、サーバクラスタを含むことができ、第1及び第2ノードは、第1ノードがビュー状態データを全体的に順序付けられた方式でグループの全ての他のサーバノードに送信できるクラスタにおけるサーバノードのグループの少なくとも一部を含むことができ、ビュー状態データを送信するステップは、第1ノードがデータをグループにおける他のサーバノードの全てに送信するステップを含むことができる。
第1及び第2ノード並びに複数のサーバノードのうちの少なくとも別のサーバノードは、サーバクラスタを含むことができ、第1及び第2ノードは、第2ノードが更新されたビュー状態データを全体的に順序付けられた方式でグループの全ての他のサーバノードに送信できるクラスタにおけるサーバノードのグループの少なくとも一部を含むことができ、更新されたビュー状態データを送信するステップは、第2ノードが更新されたビュー状態データをグループにおける他のサーバノードの全てに送信するステップを含むことができる。
本方法は、第2クライアントのディスプレイ上に共有ビューを表示する前に、第1クライアントから第1及び第2ノードを介して第2クライアントに、第1クライアントによって表示された共有ビューを第2クライアントと共有できるという通知を送信するステップを含むことができる。
第1及び第2ノード並びに複数のサーバノードのうちの少なくとも別のサーバノードは、サーバクラスタを含むことができ、第1及び第2ノードは、第1ノードが通知を全体的に順序付けられた方式でグループにおける他のサーバノードの全てに送信できるクラスタにおけるサーバノードのグループの少なくとも一部を含むことができ、通知を送信するステップは、第1ノードが通知をグループにおける他のサーバノードの全てに送信するステップを含むことができる。
本方法は、第1ノードが状態データを第2クライアントに第2ノードを介して送信する前に、第1ノードを使用して第2ノードを識別するノード識別子にアクセスするステップを含むことができ、第1及び第2ノードは、サーバクラスタの少なくとも一部を含み、ノード識別子は、サーバクラスタにおける全てのサーバノードを識別し且つ該全てのサーバノードによってアクセス可能なクラスタメンバーシップ情報の少なくとも一部を含む。
クラスタメンバーシップ情報は、サーバクラスタにおけるサーバノードの各々を一意的に識別するノード識別子と、サーバノードが属するサーバクラスタを一意的に識別するクラスタ識別子と、を含むことができる。
サーバクラスタにおけるサーバノードの各々は、クラスタメンバーシップ情報の固有のバージョンを永続的にローカルに格納することができる。
別の態様によれば、ディスプレイを有する第1クライアントと、ディスプレイを有する第2クライアントと、複数のサーバノードとを備えた物理的セキュリティシステムが提供され、サーバノードのうちの1つのサーバノード(「第1ノード」)は、第1ディスプレイと通信可能であり、サーバノードのうちの別のサーバノード(「第2ノード」)は、第2ディスプレイと通信可能であり、第1及び第2クライアント及び第1及び第2ノードは、第1クライアントから第1ノードに、第1クライアントのディスプレイ上に表示された共有ビューを表すビュー状態データを送信し、ビュー状態データを第1ノードから第2クライアントに第2ノードを介して送信し、共有ビューを表示するためにビュー状態データを使用して第2クライアントのディスプレイを更新し、第2クライアントにおける共有ビューの変更に応答して、第2クライアントのディスプレイ上に表示された共有ビューを表す更新されたビュー状態データを第2クライアントから第2ノードに送信し、更新されたビュー状態データを第2ノードから第1クライアントに第1ノードを介して送信し、更新されたビュー状態データを使用して共有ビューを表示するために第1クライアントのディスプレイを更新する、よう構成される。1つの態様において、サーバノードのどれもが中央ゲートウェイサーバではなく、代替の態様において、サーバノードの少なくとも1つがゲートウェイサーバである。
別の態様によれば、複数のサーバノードを含む物理的セキュリティシステムを使用してビューを共有する(「共有ビュー」)ための方法をプロセッサに実行させるためのステートメント及び命令を符号化した非一時的コンピュータ可読媒体が提供され、本方法は、第1クライアントからサーバノードのうちの1つのサーバノード(「第1ノード」)に第1クライアントによって表示された共有ビューを表すビュー状態データを送信するステップと、ビュー状態データを第1ノードから第2クライアントにサーバノードのうちの別のサーバノード(「第2ノード」)を介して送信するステップと、共有ビューを表示するためにビュー状態データを使用して第2クライアントのディスプレイを更新するステップと、第2クライアントにおける共有ビューの変更に応答して、第2クライアントによって表示された共有ビューを表す更新されたビュー状態データを第2クライアントから第2ノードに送信するステップと、更新されたビュー状態データを第2ノードから第1ノードを介して第1クライアントに送信するステップと、共有ビューを表示するために更新されたビュー状態データを使用して第1クライアントのディスプレイを更新するステップと、を含む。
この概要は、必ずしも全ての態様の全範囲を記載したものではない。他の態様、特徴及び利点は、特定の実施形態の以下の説明を精査すると当業者に明らかになるであろう。
添付図面において、1又はそれ以上の例示的な実施形態が例証されている。
1つの実施形態による、分散型物理的セキュリティシステムを示すブロック図である。 図1のシステムによって使用されるプロトコル群を示すブロック図である。 図1のシステムが異なるシステムユーザ間で設定をどのように共有するかを示すUMLシーケンス図である。 図1のシステムが異なるシステムユーザ間で状態をどのように共有するかを示すUMLシーケンス図である。 図1のシステムが異なるシステムユーザ間でビューをどのように共有するかを示すUMLシーケンス図である。 図1のシステムが異なるシステムユーザ間でストリームをどのように共有するかを示すUMLシーケンス図である。 図1のシステムのユーザが見るビューを示す図である。 別の実施形態による、物理的セキュリティシステムにおいてデータを共有する方法を示す図である。 別の実施形態による、クラスタに自動的に再加入するための方法を示す図である。 図1のシステムが無人ビューをシステムユーザとどのように共有するかを示すUMLシーケンス図である。 別の実施形態による複数のサーバノードを含む物理的セキュリティシステムにおいて無人ディスプレイと対話するための方法を示す図である。 別の実施形態による複数のサーバノードを含む物理的セキュリティシステムを使用してビューを共有する方法を示す図である。
「上部」、「下部」、「上向き」、「下向き」、「垂直に」、及び「水平に」などの方向を示す用語は、単に相対的な基準を提供する目的で以下の説明において使用されており、何れかの製品が使用時にどのように位置付けられるか又は組立体又は環境に対して装着されるかに対しての何らかの制限を示唆するものではない。加えて、本明細書で使用される「couple(結合する)」及び「coupled(結合される)」、「couples(結合する)」、及び「coupling(結合)」などの変形形態は、別途指示のない限り、間接的及び直接的接続を含むものとする。例えば、第1デバイスが第2デバイスに結合される場合、当該結合は、直接接続によるか又は他のデバイス及び接続を介した間接的接続によるものとすることができる。同様に、第1デバイスが第2デバイスに通信可能に接続される場合、通信は、直接接続によるか又は他のデバイス及び接続を介した間接的接続によるものとすることができる。
監視システムが特定数のカメラを含むようになると、ストレージ容量及び処理能力の限界に起因して単一のサーバを使用して監視システムを稼働させることは、実現が困難であるか、又は不可能になる。従って、カメラの数の増加に対処するために、システムに付加的なサーバが追加される。このことは、幾つかの問題を生じることになる。
例えば、監視システムのユーザは、ユーザがカメラ又はサーバにそれぞれ直接接続されていない場合でも、別のユーザが見ているもの(ユーザの「ビュー」)及びシステムのカメラを使用して取り込まれ又はシステムのサーバ上に格納されるストリームビデオを見ることができることを望む場合がある。同様に、ユーザは、システムのどこかで発生しているユーザ状態(例えば、システムの別のユーザが現在システムにログインされているかどうか)及びシステム事象(例えば、警報が起動されたかどうか)に対して、ユーザが直接接続されていないサーバ上でこれらが発生した場合でも、これらにアクセスできることを望む場合がある。追加のサーバを付加することによってスケールアウトされる従来の監視システムでは、この機能を提供するための一般的な方法は、中央ゲートウェイサーバをシステムに追加することである。中央ゲートウェイサーバは、システム事象、ユーザ状態、ビュー、及びビデオを中央ゲートウェイサーバ自体を介してシステムにおける1つのサーバから別のサーバへルーティングし、これによって、ユーザが直接接続されている特定のサーバに関係なく、ユーザは、これらの事象、状態、ビュー、及びビデオにアクセスし又は見ることが可能になる。しかしながら、中央ゲートウェイサーバを使用することで、中央ゲートウェイサーバが故障した場合に、事象、状態、ビュー、及びビデオをもはや共有することができないので、監視システムに単一障害点をもたらすことになる。また、サーバがシステムに追加され、該サーバは中央ゲートウェイサーバ機能の提供の専用となるので、中央ゲートウェイサーバの使用は、監視システムのコストアップになる。
ユーザはまた、システムにおける複数のサーバにわたって同期されるべき共通設定(例えば、ユーザ名、パスワード、アクセス権、その他の形式のユーザアクセス情報)を必要とする場合がある。追加のサーバを付加することによってスケールアウトされる従来の監視システムでは、この機能は、1つのサーバから他方のサーバにマニュアルで設定をエクスポートすることによるか、又は必要に応じて他のサーバが通信するこれらの設定の全てを格納する中央管理サーバを使用して、これらの設定を検索することによって提供される。設定をマニュアルでエクスポートすることは、比較的大きな同期遅延、使用及びセットアップの難しさに起因して、及び大きな同期遅延がシステムの冗長性を損なうので、問題がある。上述したように、中央管理サーバの使用は、中央ゲートウェイサーバを使用するのと同じ問題が生じやすい。
本明細書で記載される実施形態の幾つかは、上述したゲートウェイ又は管理サーバのような中央サーバに頼ることなく、システムにおける2又はそれ以上のサーバノード間でビュー、ビデオ、システム事象、ユーザ状態、及びユーザ設定のようなデータを自動的に共有することができる監視システムのような分散型物理的セキュリティシステムに向けられる。これらの実施形態は、ユーザが、ネットワークビデオレコーダ、カメラ、及びサーバのようなサーバノードにクライアントを介して接続するピアツーピア監視システムに向けられる。サーバノードは、クラスタにおいてグループ化され、クラスタ内の各サーバノードがクラスタ内の他のサーバノードとデータを共有することができる。このデータを共有するために、サーバノードの各々は、データが、ビュー、ビデオ、システム事象、ユーザ状態、又はユーザ設定を表すかどうかに応じて、異なる方法でサーバノード間でデータを共有するプロトコル群に基づいてデータを交換するサービスを実行する。図1から10は、これらの実施形態を示す。
代替の実施形態において、異なるサーバノード間でビューを共有するのに使用される技術の幾つかは、連合ネットワーク(すなわち、中央サーバを含むネットワーク)及び図1から9に示したようなピアツーピアネットワークに適用可能である。図10及び11は、これらの実施形態を示す。
ここで図1を参照すると、1つの実施形態による、監視システム100の形式の分散型物理的セキュリティシステムが示されている。システム100は、3つのクライアント102a−c(第1クライアント102aから第3クライアント102c、総称して「クライアント102」)と、6つのサーバ104a−f(第1サーバ104aから第6サーバ104f、総称して「サーバ104」)と、3つのサーバノードカメラ106a−c(第1ノードカメラ106aから第3ノードカメラ106c、総称して「ノードカメラ106」)と、5つの非ノードカメラ114と、を含む。
ノードカメラ106及びサーバ104の各々は、互いに通信可能に接続されたプロセッサ110及びメモリ112を含み、メモリ112は、本明細書で記載される方法の何れかの実施形態をプロセッサ110に実行させるステートメント及び命令が符号化されている。サーバ104及びノードカメラ106は、3つのクラスタ108a−c(総称して「クラスタ108」)にグループ化され、第1〜第3サーバ104a−cが、互いに通信可能に接続されて第1クラスタ108aを形成し、第4〜第6サーバ104d−fが互いに通信可能に接続されて第2クラスタ108bを形成し、3つのノードカメラ106が互いに通信可能に接続されて第3クラスタ108cを形成する。第1〜第3サーバ104a−cは、第1クラスタ108aの「メンバ」と呼ばれ、第4〜第6サーバ104d−fは、第2クラスタ108bの「メンバ」と呼ばれ、第1〜第3ノードカメラ106a−cは、第3クラスタ108cの「メンバ」と呼ばれる。
サーバ104及びノードカメラ106の各々は、各々が、そのクラスタ108の他のメンバの存在を認識して、データをクラスタ108の他のメンバに送信することができるので「サーバノード」であるが、対照的に、非ノードカメラ114は、直接接続されているサーバ104a、b、c、d、fだけを認識するので、サーバノードではない。図示の実施形態において、サーバノードは、クラスタ108のサーバノードの全てを列挙するクラスタメンバーシップ情報にアクセスできることに基づき、クラスタ108の他のメンバの全てを認識する。クラスタメンバーシップ情報は、サーバノードの各々に永続的及びローカルに格納され、これにより、サーバノードの各々が、システム100の作動中にリブートした時に、そのクラスタ108に自動的に再加入するのが可能になる。以下における「ノード」の言及は、別途指示のない限り、「サーバノード」の言及である。
図示の実施形態において、クラスタ108のどれもがクラスタ内の通信に参加していないが、代替の実施形態(図示せず)では、様々なクラスタ108のメンバが、互いにデータを共有することができる。図示の実施形態において、サーバ14は、商用オフザシェルフサーバであり、カメラ106、114は、カナダ バンクーバ所在のAvigilon(商標)コーポレーション製であるが、代替の実施形態において、他の好適な種類のサーバ108及びカメラ106、114を使用することができる。
第1クライアント102aは、クラスタ108a、bのメンバである第1及び第4サーバ104a、dに通信可能に接続されることによって、第1及び第2クラスタ108a、bに通信可能に接続され、第2クライアント102bは、クラスタ108のメンバである第2及び第4サーバ104b、d及び第1ノードカメラ106aに通信可能に接続されることによって、3つのクラスタ108全てに通信可能に接続され、第3クライアント102cは、クラスタ108b、cのメンバである第5サーバ104e及び第2ノードカメラ106bに通信可能に接続されることによって、第2及び第3クラスタ108b、cに通信可能に接続される。以下で詳細に説明するように、クラスタ108a−cの何れかの所与のクラスタにおいて、ノードの各々は、プロトコル群200(図2に図示)に従ってノードが互いに通信できるようにするサービスを実行して、これにより、何れか1つのノードは、データがビュー、ビデオ、システム事象、ユーザ状態、ユーザ設定、又は別のデータの種類であるかに関係なく、分散コンピュータを使用して、すなわち中央サーバを使用することなく当該データを何れかの他のノードと共有することが可能になる。ノードの各々は、同じクラスタ108の一部を形成するノード全てを識別するクラスタメンバーシップ情報にアクセスすることができ、このクラスタメンバーシップ情報にアクセスすることによって、データは、クラスタ108のノード全ての間で共有し同期させることができる。
図2は、システム100のノードによって利用されるプロトコル群200のブロック図を示す。プロトコル群200は、3つの層に分割され、表1に要約するように、以下のプロトコルを含む。
表1:プロトコル群200の要約
Figure 2015535970

Figure 2015535970
プロトコル群200におけるプロトコルの各々の機能及び動作の説明は以下の通りである。
トランスポート層
トランスポート層は、オープンシステム相互接続(OSI)モデルの層4に対応し、ノード間の信頼できるデータ転送サービスを、クラスタサポート層、データ同期層、及びアプリケーション層に提供する役割を担う。システム100におけるトランスポート層は、UDP202及びTCP/HTTP204プロトコルを含む。
クラスタサポート層
クラスタサポート層は、ノードを発見する、ノードの存在を検証する、ノードの活動度をチェックする、ノードがクラスタ108のうちの1つのクラスタのメンバであるかどうかを判定する、及びノード間のデータをルーティングする方法を決定するのに使用されるプロトコルを含む。
発見プロトコル206
発見プロトコル206は、構造化情報標準促進協会(OASIS)によって公開されたWS発見プロトコルのバージョン1.1に基づいており、当該プロトコルの全体は、本明細書に引用により組み入れられる。図示の実施形態において、公開された規格において使用されるXMLフォーマッティングは、Google(商標)Protobuf符号化に置き換えられる。
発見プロトコル206により、システム100における何れかのノードが、プローブメッセージを他のノードにマルチキャストして他のノードが応答するのを待機することによって、システム100における他のノードを識別することが可能となる。ノードは、代替として、システム100に加入する時にハローメッセージをブロードキャストして、他のノードが最初にプローブメッセージをマルチキャストする必要もなく、他のノードにその存在を警告することができる。プローブとハローメッセージの両方がOASISによって公開されたWS発見プロトコルでモデル化される。
ゴシッププロトコル208
ゴシッププロトコル208は、クラスタ108におけるノードのペア間でデータ交換をランダムに実行することによって、当該クラスタ108のノードのうちの1つからノードの全てにデータを配布するエピデミックプロトコルである。ゴシッププロトコル208は、各ノードに対するハートビートカウントの形式で「ハートビート状態」データを交換することによって活動度を伝達し、これにより、ノードは、クラスタ108におけるノードの1つが予想外に(例えば、サーバクラッシュに起因して)離れたタイミングを決定することが可能になる。ゴシッププロトコル208は、一貫性プロトコル216によって使用されるトップレベルハッシュのような「アプリケーション状態」データ及びステータスプロトコル218によって使用されるステータスエンティティ識別子及びこれらのバージョン番号を伝達して、以下で詳細に説明されるように、ノード間のデータを同期するタイミングを決定する。ゴシッププロトコル208を使用して拡散されるデータは、最終的には、定期的ノード対ノード交換を介して、クラスタ108におけるノードの全てに拡散する。
ゴシッププロトコル208を使用したクラスタ108の何れか2つのノード間のデータ交換は、以下のように、同じクラスタ108における第1ノード(「ノードA」)から第2ノード(「ノードB」)への2つの遠隔手続き呼び出し(RPC)を実行することを含む。
1.ノードAは、ノードAが認識するクラスタ108におけるノード全てに対するダイジェストのリストを含む、グリーティング要求メッセージをノードBに送信する。各ノードでは、ダイジェストは、当該ノードのハートビート状態又はアプリケーション状態の何れかが変化する度に増分される一意のノード識別子及びバージョン情報を含む。バージョン情報は、例えば、1次元バージョン番号又は多次元バージョンベクトルとすることができる。バージョンベクトルを使用することで、ダイジェストは、ノードが受けた状態変化の履歴を要約することが可能となる。
2.ノードBは、以下を含むグリーティング応答メッセージをノードAに送信する。
(a)ノードBがノードAから情報の受信を望み、ノードBがグリーティング要求メッセージにおいて送信されたバージョン情報から決定するノードのダイジェストのリスト;
(b)クラスタ108の一部を形成することをノードAが認識していないノードのダイジェストのリスト;
(c)期限が切れた情報を有するノードに対してノードAを最新にするハートビート及びアプリケーション状態の1つ又は両方のリスト;及び、
(d)ノードAはクラスタ108の一部を形成すると信頼されるが、ノードBがクラスタ108から取り除かれていることを認識しているノードのリスト。
3.ノードAは、クロージャ要求メッセージをノードBに送信し、ここでノードAは以下を送信する。
(a)ノードAがノードBからのより多くの情報を受信することを望むノードのダイジェストのリスト(例えば、ノードAは、ノードBがグリーティング応答メッセージをノードAに送信するまで、ノードAが認識しないノードについての情報を要求することができる);
(b)期限が切れた情報を有するノードに対してノードBを最新にする状態のリスト;及び
(c)ノードBはクラスタ108の一部を形成すると信頼されるが、ノードAがクラスタ108から取り除かれていることを認識しているノードのリスト。
4.次に、ノードBは、クロージャ応答メッセージをノードAに送信し、ここでノードBは以下を送信する。
(a)クロージャ要求におけるノードAの要求に応答して、期限が切れたノードに対してノードAを最新にする状態のリスト;及び
(b)グリーティング応答以降にクラスタ108から取り除かれたノードのリスト。
ノードA及びBがRPCを交換した後、ノードA及びBは、同一のアクティブノードリストを有し、これらリストは、RPCの前について認知しており且つクラスタ108から取り除かれていないクラスタ108におけるノード全てについてハートビート状態及びアプリケーション状態の最新バージョンを含む。
ノードプロトコル210
ノードプロトコル210は、システム100における何れかの他のノードとの通信を許可するネットワークマップを各ノードに提供する、各ノードに対するシステム100のネットワークトポロジーのビューを生成する役割を担う。幾つかの実施形態において、ネットワークマップは、ルーティングテーブルである。ネットワークマップは、アドレス(IP/FQDN)、ポート番号、及びプロトコルである通信エンドポイントを参照して、これによってノードを接続するIPネットワークを通じてノードに到達することができる。
ノードプロトコル210は以下の3つの方法でこれを行う。
1.以下に説明するような「ポーク交換」を介して。
2.ノードがシステム100に加入又は離脱した時にノードプロトコル210に通知する発見プロトコル206を介して。ノードがシステム100に加入した時に、「ポーク交換」が当該ノードによって実行される。
3.ユーザ入力に応答してマニュアルで。
ポーク交換は、ノードについてのネットワークマップを生成する目的で、以下のRPCを定期的に実行することを含む。
1.ポーク要求、ここではノードAが、ノードAセルフビュー及びノードAによってビューされるノードAに既知の他のノードのリストをノードBに送信し、これに続いて、ノードBが、この情報に照らしてノードBのネットワークマップを更新する。
2.ポーク応答、ここではノードBが、ノードBセルフビュー及びノードBによってビューされるノードBに既知の他のノードのリストをノードAに送信し、これに続いて、ノードAが、この情報に照らしてノードAのネットワークマップを更新する。
RPCは、TCP/HTTPプロトコル204上で実行される。
帯域幅使用量を低減するために、ノード情報は、最後に交換されて以降に変更された場合にだけ、ノードAとBの間で交換される。
発見プロトコル206は、ノードの通信エンドポイントをアドバタイズするが、ノードが通信エンドポイントを使用して到達可能であることを保証しないので、ポーク交換は、ノードがシステム100に加入したことをノードプロトコル210に通知した後に実行される。例えば、エンドポイントは、ファイヤウォールに起因して使用できない可能性がある。発見プロトコル206を使用して識別されたノードに対してポーク交換を実行することで、通信エンドポイントが実際に使用可能であるかどうかが確認される。
ノードプロトコル210はまた、アドバタイズされたUDP通信エンドポイントが到達可能であるかどうかを確認することもできるが、但し、図示の実施形態におけるノードプロトコル210は、UDPプロトコル202上でポーク交換を実施するものではない。
クラスタ108における何れかの所与のノードでは、ネットワークマップは、ノード識別子を、同じクラスタ108におけるノードの各々に対する通信エンドポイントに関係付ける。従って、ノードプロトコル210と通信するプロトコルスタック200における他のプロトコルは、当該ノードのノード識別子を使用することによってクラスタ108の何れかの他のノードにもメッセージを配信することができる。
メンバーシッププロトコル212
メンバーシッププロトコル212は、クラスタ108の各ノードが、クラスタ108におけるノード全てのクラスタメンバーシップ情報を維持するのを保証する役割を担い、ノードがRPCを介してクラスタ108に加入及び離脱するのを可能にする。クラスタメンバーシップ情報は、ステータスプロトコル218を使用してクラスタ108のノード間で共有される。クラスタ108における各ノードは、クラスタメンバーシップ情報の固有のバージョンを維持し、ステータスプロトコル218からクラスタ108における他のノードによって保持されるクラスタメンバーシップ情報を学習する。以下で詳細に説明するように、1つのノード上に格納されて最近更新されたクラスタメンバーシップ情報のバージョンは、クラスタ108の他のメンバと未だ同期していない可能性があるので、2つの異なるノードによって保持されるクラスタメンバーシップ情報のバージョンが一致しないことがある。
各ノードでは、クラスタメンバーシップ情報は以下を含む。
1.クラスタ108のノード全てのメンバーシップリスト、ここではノードの各々が以下によって表される。
(a)システム100におけるノード全ての間で一意であるノード識別子;
(b)ノードの状態、以下のうちの何れか1つ:
(i)発見:ノードはクラスタ108のメンバであるが、ブートされて以降にクラスタ108の他のメンバと同期されていない;
(ii)加入:ノードはクラスタ108への加入処理中である;
(iii)同期:ノードは、同期、一貫性、及びステータスプロトコル214、216、218を使用して加入したクラスタ108とデータを同期する処理中である;
(iv)有効:ノードは、クラスタメンバーシップ情報の同期を完了しており、クラスタ108の有効ノードである;及び
(v)タイムアウト:ノードが応答しなくなり、もはやクラスタ108のアクティブメンバではない(ノードは、ユーザによって取り除かれるまでクラスタ108のメンバのままである);
(c)セッショントークン;
(d)ノードがクラスタ108に加入した時のクラスタメンバーシップ情報のバージョン番号;及び
(e)最後に変更された時のクラスタメンバーシップ情報のバージョン番号。
2.クラスタ108から取り除かれているノード全てを列挙するグレーブストーンリスト、ここでは各取り除かれたノードは、以下により表される:
(a)ノードのノード識別子;及び
(b)ノードが取り除かれた時の当該ノードのクラスタメンバーシップ情報のバージョン。
図示の実施形態において、ノードは常に、少なくとも自己を含むクラスタ108のメンバであり、1つのノードのクラスタ108は、「シングルトンクラスタ」と呼ばれる。更に、図示の実施形態において、メンバーシップ情報は、上述したようにメンバーシップリスト及びグレーブストーンリストを含み、代替の実施形態(図示せず)では、メンバーシップ情報を異なるように構成することができ、例えば、1つのこのような代替の実施形態において、メンバーシップ情報にはグレーブストーンリストが無く、別のこのような実施形態において、ノードの状態を上述したものとは異なるように記述することができる。
ノードAが新しいサーバノードとして動作する必要があり、ノードBを含むクラスタ108に加入する必要がある時には、ノードAはノードBと通信して以下のことを行う。
1.ノードAは、ノードBにクラスタシークレットを送信し、ここで図示の実施形態において、このクラスタシークレットは、ノードBが別のノードをクラスタ108に加入させる前に要求するキーである。クライアント102の1つは、クラスタシークレットをノードAに提供する。ノードBがクラスタ108へのノードAのアクセスを制御すると、ノードBは「メンバーシップ制御ノード」として機能する。
2.ノードA及びBはそれぞれのメンバーシップ情報を交換する。ノードA及びノードBのメンバーシップ情報のバージョンは、ノードAのノード識別子と、ノードAが加入しているクラスタ108のノード全てのノード識別子とを含むよう更新される。
3.ノードAの状態は、ノードAがクラスタに加入した時に「加入」に変更される。
4.加入時には、ノードAの状態は、データがノードAと今加入したクラスタ108との間で交換される時に「同期」に変わる。ノードBはまた、ステータスプロトコル218を使用してクラスタ108の他のノード全てに格納されたメンバーシップ情報のバージョンを更新する。ノードAとノードAが加入しているクラスタ108のメンバの全てに格納されたメンバーシップ情報のバージョンを更新する処理は、これらのノードの全てに格納されたメンバーシップ情報のバージョンの「同期」と呼ばれる。
5.同期が完了した後、ノードAの状態は有効に変わる。
データ同期層
データ同期層は、異なる順序付け保証及び性能トレードオフによってクラスタにおけるノード間にデータを送信できるようにするプロトコルを含む。データ同期層におけるプロトコルは、トランスポート層及びクラスタサポート層におけるプロトコルを直接使用する。
同期プロトコル214
同期プロトコル214は、ノードAがメッセージを送信する順序など、ノードAが制御することができる順序でメッセージがノードBに届くように、システム100においてノードAからノードBにメッセージ形式でデータを送信するのに使用される。同期プロトコル214を使用してデータを転送するサービスは、専用の高優先順位I/Oサービススレッド上で実行される。
図示の実施形態において、同期プロトコル214は、その全てが引用により本明細書に組み入れられる、Agarwal DA、MoserLE、Melliar−Smith PM、Budhia RK、「トーテムマルチリング順序付け及びトポロジーメンテナンスプロトコル(The Totem Multiple−Ring Ordering and Topology Maintenance Protocol)」、コンピュータシステムでのACMトランザクション、93〜132ページ、1998年において記載されるように、トーテムプロトコルとして知られる仮想同期の実施構成に基づいている。同期プロトコル214では、ノードは、以下の本明細書において「同期リング」と呼ばれるグループにグループ化され、何れかの同期リング上のノードは、全体的に順序付けられたメッセージを同じリング上の他のノードに送信することができる。同期プロトコル214は、以下のようにトーテムプロトコルを修正する。

1.同期プロトコル214は、サービス識別子とリング識別子の両方を使用して、同期リングを識別する。サービス識別子は、所与の同期リングの全インスタンスを識別するが、リング識別子は、所与の同期リングの特定のインスタンスを識別する。例えば、ノードが同期リングに加入又は離脱する度に、当該リングのリング識別子が変わることになるが、そのサービス識別子は変わらない。サービス識別子は、ノードが、同じサービス識別子を共有するノードのグループ(すなわち、同じ同期リングに属するノードのグループ)に全体的に順序付けられたメッセージをマルチキャストするのを可能にする。
2.トーテムプロトコルでは、ノードがメッセージを送信していない場合には、ノードによって見出される同期リングは、ノードがメッセージングを開始した時点で収束する最終リング構成を反映していない。同期プロトコル214は、ノードが互いにプローブメッセージを送信して、非プローブメッセージの送信の前に同期リングを収束させるようにすることができる。
3.トーテムプロトコルだけにより、順序付けられたメッセージを同期リングの一部を形成する全てのノードに送信することができる。対照的に、同期プロトコル214は、システム100における全ての到達可能なノードにブロードキャストし、宛先ノード識別子のリストを使用してシステム100において複数のノードの各々にユニキャストし、また、当該ノード識別子を使用してシステム100において単一ノードにユニキャストするためのインタフェースを提供することによって、同期プロトコル214からネットワーク層を取り出すディスパッチモジュールを使用する。ディスパッチモジュールはまた、サービス識別子によるメッセージフィルタリング及びルーティングを使用して、同じIPポート上でサービスの多重化に対応する。ノードからの発信メッセージは、マルチキャストでない限り同じサービス識別子を有するノードのサブセットに送信される。
4.同期プロトコル214は、フラグメントメッセージ及びユーザペイロードチャンキング及びコアレシングを使用して、約1,500バイトの最大送信ユニットサイズから発生する問題に対処する。
5.同期プロトコル214は、同期リングに加入するためにトーテムプロトコルで使用されるメッセージノードである加入メッセージをノードが使用する方法を修正する。
(a)同期リングにおいて動作ノードの現在のセットにおいてノードが最低ノード識別子を有する場合にのみ、加入メッセージがノードによって送信される。
(b)動作セットにおいて最低ノード識別子を持たないノードは、動作セットにおける最低ノード識別子を有するノードに加入メッセージをユニキャストする。
(c)加入メッセージは、サービス識別子を含み、対応する同期リングの一部ではないノードは応答しない。
トーテムプロトコルに対して、これらの修正は、同期リングに加入するためにノードによって使用される集約帯域幅を低減するのを助ける。
6.同期プロトコル214は、幾つかの種類のネットワーク間違い設定に起因して、同期リングに加入できないノードを検出しブラックリストに載せる。例えば、他のノードにメッセージを送信できるがメッセージを受信できないノードは、本実施形態における他の全てのメッセージが要請されることに起因して、他のノードにはプローブメッセージしか送信しないように見え、従って、ブラックリストに載せられる。
7.同期プロトコル214は、メッセージのペイロード暗号化及び認証確認を実行する。
8.同期プロトコル214は、各ノードがトーテムプロトコルで使用されるトークンを保持できる時間を制限し、図示の実施形態において、各ノードは、15msの間トークンを保持することができる。
9.同期プロトコル214は、TCPフレンドリー輻輳回避アルゴリズムを実施する。
以下に更に詳細に説明するように、システム100は、共有ビュー及び協調アプリケーション222並びに共有事象及び警報アプリケーション224に対する同期プロトコルを使用し、これらのアプリケーション222におけるクラスタ108のメンバ間で共有されるデータは、非永続的であり、有利には迅速且つ既知の順序で共有される。
一貫性プロトコル216
一貫性プロトコル216は、クラスタ108のノード全てにわたって自動的且つ定期的にデータを共有するのに使用され、一貫性プロトコル216を使用して共有されるデータが、最終的にはクラスタ108におけるノード全てで同期されるようにする。一貫性プロトコル216を使用して共有されるデータの種類は、以下の共有設定アプリケーション226及び共有ユーザオブジェクトアプリケーション228を説明する段落において詳細に説明する。一貫性プロトコル216によって共有されるデータは、ノードの各々のデータベース内に格納され、データベースにおける各エントリは、キーが一意に値を識別し、該キーが互いに独立しているキー値ペアを含む。一貫性プロトコル216は、異なるノードが異なるデータベースで実行できる並行修正を解決する間に、ノード全体にわたってデータを同期する。以下で詳細に説明するように、一貫性プロトコル216は、最初にデータベースが同期されていないことを通知され、次にどの特定のデータベースエントリが同期されていないかを発見して、第3に、最新で同期され、更に維持されているエントリのバージョンが何であるかを発見することによって、これを達成する。
データベースに対して変更された時点を決定する並行修正を解決するために、クラスタ108に加入する各ノードには、当該ノードがデータに対して変更を行った時間を記録して、クラスタ108における他のノードによって同じデータに変更が行われる前又は後に変更が行われたかどうかを判定するのに使用されるカジュアリティバージョニング機構が割り当てられる。本実施形態において、ノードの各々は、カジュアリティバージョニング機構としてインターバルツリークロック(ITC)を使用する。しかしながら、他の実施形態において、ベクトルクロック及びバージョンベクトルのような他のバージョニング機構を使用することができる。システム100はまた、ネットワーク時間プロトコルを使用して異なるノード間で同期されるユニバーサル時間クロック(UTC)を実装し、2又はそれ以上のノードのITCが同一である時に変更が行われる順序を決定する。ITCは、2008年のPrinci.Distri.Sys.,Lecture Notes in Comp.Sci.,vol.5401、259−274ページのP.Almeida、C.Baquero、及びV.Fonteの「インターバルツリークロック:動的システムのための論理的クロック」において詳細に記載されており、この全体が引用により本明細書に組み入れられる。
一貫性プロトコル216がノード間で同期するディレクトリは、ブランチに分割され、ブランチの各々は、事象一貫性ドメイン(ECD)と呼ばれる。一貫性プロトコル216は、他のECDとは関係なくECDの各々を同期する。ECD内の各データベースエントリは、事象一貫性エントリ(ECE)と呼ばれる。各ECEは、キー、ECEが修正される時は常に両方が更新されるITC及びUTCからのタイムスタンプ、例えばMurmurhash関数を使用して生成するECEのハッシュ値、データ自体、並びにECEが削除された場合及び削除された時に追加されるグレーブストーンを含む。
ハッシュ値は、2つの異なるノードが同一であるかどうかを判定するために2つの異なるノードでの対応するECD及びECEを比較するのに使用される。2つの対応するECDが比較された時、これらのECDに対する「トップレベル」ハッシュが比較される。所与のノードでのECDに対するトップレベルハッシュは、当該ECD内のECEの全てをハッシュすることによって生成される。トップレベルハッシュが一致した場合、ECDは同一であるが、一致しなかった場合、一貫性プロトコル216は、ECDが異なるものと判定する。ECDのどの特定のECEが異なるかを判定するために、ノードの両方でのECEの連続して減少する範囲からハッシュが取られる。ハッシュが取られる間隔は、最終的には、2つのノード間で異なるECEが分離及び識別されるのに十分な程度に小さくなる。例えば、ECD間隔のハッシュ値を決定し比較するために、双方向スキップリストを使用することができる。
一貫性プロトコル216を使用して通信する2つのノードは、以下のRPCを使用することができる。
1.エントリ設定:エントリ設定は、新しい又は更新されたECEをノードに送信し、これを適切なECDに挿入する。
2.エントリ取得:エントリ取得は、キー又はキーの範囲をノードに送信し、これら1又はそれ以上のキーに対応するECEを戻す。
3.エントリ同期:エントリ同期は、キー又はキーの範囲をノードに送信し、次いで、2つのノードがECEの連続して減少する範囲のハッシュを比較して、上述したように、どのECEが2つのノード間で異なるかを判定する。ECEが異なる場合、ノードはこれらのECEを統合して、ITCタイムスタンプを比較することによって同じECEがノードに格納され、ITCタイムスタンプが一致した場合には、ノードが、ECEに関連付けられるUTCタイムスタンプを比較する。これらのタイムスタンプは、ECEのバージョン情報によって示される最新の修正されたECEを2つのノードが採用可能にするバージョン情報として機能する。
ノードがECEを変更する時には、当該ノードは通常、同期エントリを呼び出して、ECEが変更されたことをクラスタ108における他のノードに通知する。クラスタ108におけるノードの幾つかが利用できない(例えば、これらがオフラインである)場合には、同期エントリの代わりにゴシッププロトコル208が使用され、オンラインに戻った時に利用できないノードに対してトップレベルハッシュを伝達する。上記のクラスタ108におけるゴシッププロトコル208を説明する段落において示唆されるように、ノードの各々は、ゴシッププロトコル208を使用して、ノード識別子、バージョン情報、及びハートビート状態と共に他のノードに拡散されるトップレベルハッシュを保持する。別のノードがこのハッシュを受信すると、当該別のノードは、受信したトップレベルハッシュをノード固有のトップレベルハッシュと比較する。トップレベルハッシュが同一である場合には、両方のノードのECEが一致しており、同一でない場合には、ECEは異なっている。
ECEが異なる場合、このことが同期エントリを使用して、又はゴシッププロトコル208を使用して判定されるかに関わらず、同期エントリを実行するノード又はトップレベルハッシュを受信するノードは、ECEを同期する。
ステータスプロトコル218
上述したように、ゴシッププロトコル208は、クラスタ108全体にわたって、クラスタ108におけるノードに対するステータスエンティティ識別子とそれらのバージョン番号(「ステータスエンティティペア」)を共有する。例示的なステータスエンティティ識別子は、例えば、ノードがどのくらいのストレージを利用できるか、どのデバイス(非ノードカメラ114など)が当該ノードに接続されているか、どのクライアント102が当該ノードに接続されているか、及びクラスタメンバーシップ情報のような、ステータスエントリの形式のステータスデータの異なる種類を表す。ノードの1つが、ゴシッププロトコル208を介してこのデータを受信すると、このノードは、ステータスエンティティペアのバージョン番号を、ローカルに格納している対応するステータスエントリのバージョン番号と比較する。バージョン番号が異なる場合、ステータスプロトコル218は、ステータスエンティティペアが発生するノードとのRPC(「同期RPC」)を開始して、対応するステータスエントリを更新する。
ステータスプロトコル218を使用して同期されたステータスエントリは、経路及びノード識別子の双方によって一意的に識別される。一貫性プロトコル216を使用して同期されるデータとは異なり、ステータスエントリが記述するノードは、ステータスエントリ又はステータスエンティティペアを修正することが許された唯一のノードである。従って、一貫性プロトコル216を使用して同期されるECD及びECEとは異なり、ノードAにローカルに格納されたノードAのステータスエントリのバージョンは常に、当該ステータスエントリの最新バージョンである。
ノードAが複数のステータスエントリを同時に修正する場合、ステータスプロトコル218は、ノードBが同期RPCを呼び出したときに、修正されたステータスエントリの全てを同時にノードBに同期する。従って、同時に変更されたエントリは、分析のためにノードBに同時に送信されることになるので、互いに依存する可能性がある。対照的に、一貫性プロトコル216を使用して同期されたECEの各々は、他のECEとは独立して同期され、よって、ノードBが何れかの特定の順序でエントリを受信することに頼ることができないので、ECEは、互いに依存することはできない。
適用
システム100におけるノードの各々は、上述したプロトコル群200を実装したサービスを実行する。図示の実施形態では、1つのサービスがプロトコル202−218の各々に使用されており、他の実施形態(図示せず)では、より多い又はより少ないサービスを用いてプロトコル群200を実装することができる。ノードの各々は、プロトコル群200自体を実装し、この結果、システム100は分散され、何れかの単一のノードの故障に対して脆弱ではなくなり、このことは、中央サーバを使用する従来の物理的なセキュリティシステムとは対照的である。例えば、ノードの1つがシステム100において故障した場合(「故障ノード」)、残りのノードの各々ではステータスプロトコル218を実行するサービス(「ステータスサービス」)は、故障ノードのハートビート状態を監視することによって故障ノードがオフラインであることを判定して、他のノードの各々でノード及びメンバーシッププロトコル210、212を実行するサービス(「ノードサービス」及び「メンバーシップサービス」それぞれ)にこの故障を伝達する。同期及び一貫性プロトコル214、216(「同期サービス」及び「一貫性サービス」それぞれ)を実装する各ノードのサービスは、その後、故障ノードがオンラインに戻りそのクラスタ108に再加入するまで、故障ノードとのデータの共有を停止する。
以下は、システム100が実施することができる様々なアプリケーション220〜230について説明している。アプリケーション220〜230は、図8に示したデータを共有するための例示的な方法800の様々な実施形態として実施することができる。方法800は、ブロック802で始まり、ブロック804に進んで、ここでシステム100における第1ノードが、システム100における別のノードを識別するノード識別子にアクセスする。第1及び第2ノードの双方は、同じサーバクラスタ108のメンバである。第1ノードがアクセスするノード識別子は、クラスタ108のメンバの全てを識別するクラスタメンバーシップ情報の一部である。クラスタメンバーシップ情報は、クラスタ108のメンバ全てによってアクセス可能である。図示の実施形態において、クラスタ108のメンバの各々は、固有のバージョンのクラスタメンバーシップ情報を永続的且つローカルに格納するが、他の実施形態(図示せず)では、クラスタメンバーシップ情報は、ノードからリモート及び中央拠点の一方又は両方で格納することができる。第2ノードに対するノード識別子にアクセスした後、ブロック806において、第1ノードがデータを第2ノードに送信し、続いてブロック808において、方法800が終了する。例えば、上述のノードサービスを使用した時に、第1ノード上で実行される同期及び一貫性サービスは、第2ノードのノード識別子を使用することによって、及び第2ノードの通信エンドポイントを当該ノード識別子に関連付ける責務をノードサービスに委ねることによって、データを第2ノードに送信することができる。ブロック806において第1ノードからのデータを第2ノードに送信するステップは、データがゴシッププロトコル208に従って交換される時のような双方向データ交換の一部を含むことができる。
共有設定アプリケーション226及び共有ユーザオブジェクトアプリケーション228
システム100の動作中、永続的に格納される情報は、クラスタ108のノード間で転送される。共有設定及び共有ユーザオブジェクトアプリケーション226、228がノード間で共有するこのリアルタイム情報の実施例は、起動警報のようなシステム事象に応じて実施される規則のような共有設定、及びユーザ名、パスワード、及びテーマのようなユーザオブジェクトである。この種類のデータ(「一貫性データ」)は、一貫性プロトコル216を使用してノード間で共有され、一般的には、一貫性データは、リアルタイムで又は全順序付けで共有する必要はなく、ノードの各々によって永続的に格納されるデータである。しかしながら、代替の実施形態(図示せず)では、一貫性データは非永続的に格納することができる。
図3は、ユーザ設定の形式の一貫性データが第1ユーザ302a及び第2ユーザ302b(総称して「ユーザ302」)の間で共有されるUMLシーケンス図300を示す。ユーザ302、第1及び第2クライアント102a、b、並びに第1及び第2サーバ104a、b(この実施例では、第1及び第2ノードである)は、図300におけるオブジェクトである。サーバ104a、bは同じクラスタ108aの一部を形成する。クライアント102a、bが通信する相手となるサーバ104a、bが、互いに直接接続されていないので、2つのサーバ104a、b間及びひいては2つのユーザ302間でデータを転送するために、一貫性プロトコル216を使用する。図示の実施形態は、共有設定を記載しているが、代替の実施形態(図示せず)では、ユーザ302は、同様にユーザオブジェクトを共有することができる。
図300は、2つのフレーム332a、bを有する。第1フレーム332aでは、第1ユーザ302aは、設定パネルを開く(メッセージ304)よう第1クライアント102aに命令し、続いて、クライアント102aが設定オープンビュー()手順を実行して(メッセージ306)、設定を第1サーバ104aに転送する。同時に、第2ユーザ302bは、同様に第2クライアント102bに命令する(メッセージ308及び310)。第2フレーム332bでは、ユーザ302は、これらの設定を同時に編集する。第1ユーザ302aは、第1クライアント102aにUI編集設定()(メッセージ312)を実行させることによってその設定を編集し、これに次いで、第1クライアント102aが、第1サーバ104aに設定更新ビュー()(メッセージ314)を実行させることによって第1サーバ104a上に格納された設定を更新する。次に、第1サーバ104aは、一貫性設定エントリ()を実行して(メッセージ316)、設定エントリ手順を実行し、第1ユーザ302aによって入力された設定を第2サーバ104bに転送する。次いで、第2サーバ104bは、設定通知ビュー更新()を呼び出す(メッセージ318)ことによって第2クライアント102bに転送された設定を送信し、続いて、第2クライアント102bが第2ユーザ302bを更新する(メッセージ320)。同時に、第2ユーザ302bは、同様に設定を修正して、一貫性プロトコル216を使用してこれらの設定を第1サーバ104aに送信する(メッセージ322、324、326、328、及び330)。サーバ104a、bの各々は、サーバ104a、bの何れかがリブートした場合にサーバ104a、b間でユーザ設定を再同期する必要がないように、ユーザ設定を永続的に格納する。
共有事象及び警報アプリケーション224
システム100の動作中、ランタイム中に生成されたリアルタイム情報は、クラスタ108のノード間で転送される。共有事象及び警報アプリケーション224がノード間で共有するこのリアルタイム情報の実施例は、警報状態(すなわち、警報がシステム200のどこかで起動されているかどうか)、検出されている動き、デバイス(ノードカメラ106のうちの1つなど)がデジタルデータをシステム100の残りの部分に送信しているかどうか、デバイス(動き検出器など)がシステム100に接続されているかどうか、デバイスが現在記録中であるかどうか、警報が発生したか又はユーザ302によって肯定応答されているかどうか、ユーザ302の1人がシステム100に対して監査を実行しているかどうか、サーバ104の1つがエラーを生じているかどうか、システムに接続されたデバイスがエラーを生じているかどうか、販売時点情報管理テキストトランザクションが発生したかどうかのようなシステム事象、及び設定/データが変更されたかどうか、現在の記録状態、タイムラインが更新されているかどうか、及びデータベース問い合わせ結果などのサーバノードからクライアントへの通知である。本実施形態において、同期プロトコル214を使用してノード間で転送されたデータは、「同期データ」と呼ばれ、ランタイムで生成され、ノードによって永続的にセーブされない。
図4は、警報通知が同期プロトコル214を使用してサーバ104間で共有されるUMLシーケンス図400を示す。図400におけるオブジェクトは、非ノードカメラ114の1つ、第1クラスタ108aにおける3つのサーバ104、及び第1クラスタ108aにおけるサーバの1つ104cに接続されている第2クライアント102bである。
図400の最初の3つのフレーム402にて、サーバ104の各々は、「サーバ状態」と名付けられた同期リングに加入して、サーバ104の何れか1つの状態を他のサーバ104の何れかに伝達することができ、図示の実施形態では、伝達されることになる状態は「警報状態起動」であり、これは、サーバ108の1つに関する警報が、非ノードカメラ114が検出した事象によって起動されたことを意味する。フレーム404において、第2サーバ104bは、警報アプリケーションに対する「マスタ」に選ばれ、これは、非ノードカメラ114からの入力が警報状態起動状態への遷移条件を満足するかどうかを判定し、また、警報状態起動状態への遷移のためのメッセージもまた同期リングにおける他のサーバ104a、cに送信するのが第2サーバ104bであることを意味する。
第2ユーザ302bは、サーバ104がサーバ状態同期リングに加入した後に、第3サーバ104cにログインする(メッセージ406)。ユーザ302bがログインした後、第3サーバ104cは、「クライアント通知」と名付けられた別の同期リングに加入し、以下で更に詳細に説明するように、このリングを使用して、ユーザ302bにシステム状態を伝達し、他方、サーバ104間でのみ通信するのにサーバ状態同期リングを使用する。非ノードカメラ114は、ドア又は窓が開いているという通知などのデジタル入力を第1サーバ104aに送信し(メッセージ410)、続いて、第1サーバ104aは、このデジタル入力がシステム100において警報を起動するかどうかを判定するのに使用される規則セットを満足たすかどうかを確認する(メッセージ412)。図示の実施形態において、第1サーバ104aが、警報を起動すべきであると判定し、これに応じて警報起動()を呼び出して(メッセージ414)、状態を変更するよう第2サーバ104bに警告する。次いで、第2サーバ104は、状態を警報状態起動に遷移して(メッセージ416)、状態を警報状態起動(フレーム418)に変更するよう他の2つのサーバ104a、cに対して命令するメッセージをサーバ状態同期リングに送信する。他のサーバ104a、cに命令した後、第2サーバ104bは、警報起動通知()を実行して(メッセージ420)、これにより第2サーバ104bがまた、クライアント通知同期リング(フレーム422)に加入し、メッセージをクライアント状態同期リングに送って、クライアント状態同期リングの他のサーバである第3サーバ104cが「警報起動通知」状態に遷移するようにする(フレーム424)。第3サーバ104cがこの状態に変わると、第3サーバ104cは、警報が起動されたことを第2クライアント102bに直接通知して、このメッセージを第2ユーザ302bに中継し、第2ユーザ302bが警報を肯定応答するのを待機する(メッセージ426)。第2ユーザ302bが警報を肯定応答すると、第2サーバ104bは、これに応じて状態を「警報状態肯定応答」に変更し(メッセージ428)、次いで、メッセージをサーバ状態同期リングに送信して、他の2つのサーバ104a、cがこれに応じて同様に状態を変更する(フレーム430)ようになる。続いて、第2サーバ104bは、状態を「警報肯定応答済み通知」に変更し(メッセージ432)、メッセージをクライアント通知同期リングを介して第3サーバ104cに送信し、これに応じて状態を変更させるようにする(フレーム434)。次に、第3サーバ104cは、システム100が警報に肯定応答したことをクライアント102cに通知して(メッセージ436)、このメッセージを第2ユーザ302bに中継する(メッセージ438)。
第2サーバ104bが障害を起こし、同期リングのマスタとして動作できない代替の実施形態(図示せず)では、システム100が、サーバ104から別のサーバを自動的に選んで、リングのマスタとして動作させる。同期リングのマスタは、同期リングがノード間で警報通知を共有するのに使用される時にリング上の他のノードの全てに状態を変更させることが可能な唯一のサーバ104である。
図7は、図4の概略図400に従って警報状態を肯定応答する時にユーザ302に提示される例示的な図700を示している。図700は、非ノードカメラ114からのリアルタイムストリーミングビデオを示すビデオパネル702a−c(総称して「パネル702」)と、非ノードカメラ114が記録しているものの結果として警報が起動されたことを示す警報704と、起動された警報を肯定応答するために第2ユーザ302bがクリックする肯定応答ボタン706と、を含む。
共有ビュー及び協調アプリケーション222
システム100のユーザ302はまた、互いのビュー700を共有し、ビュー700を共有している間、システム100上で互いにメッセージを送信し互いと通信を行うことなどによって協調する必要がある可能性がある。従って、この共有ビュー及び協調アプリケーション222は、ユーザ302が、ユーザメッセージ及び共有要求など、ビュー状態及びサーバとクライアント間の通知のようなデータを共有することを可能にする。この種類のデータは、リアルタイムで共有される同期データである。
図5は、同期プロトコル214を使用してビュー700がユーザ302間で共有されるUMLシーケンス図500を示す。図500は、6つのオブジェクト、すなわち、第1及び第2ユーザ302a、b、第1及び第2ユーザ302a、bがそれぞれに接続される第1及び第2クライアント102a、b、並びに第1及び第2クライアント102a、bがそれぞれ接続される第1及び第2サーバ104a、bを含む。
第1ユーザ302aは、第1クライアント102aを介して第1サーバ104aにログインして(メッセージ502)、続いて第1サーバ104aがクライアント通知同期リングに加入する(フレーム504)。同様に、第2ユーザ302bが第2クライアント102bを介して第2サーバ104bにログインし(メッセージ506)、続いて第2サーバ104bもクライアント通知同期リングに加入する(フレーム508)。
次いで、第1ユーザ302aは、第1ユーザ302aがビュー700を共有したい旨を第1クライアント102aに知らせる。第1ユーザ302aは、共有ボタンをクリックすることによってこれを行い(メッセージ510)、これにより第1クライアント102aが、第1サーバ104a上で共有されるビュー700(「共有ビュー700」)を開くようにする(メッセージ512)。第1サーバ104aは、共有ビューセッションを作成し(メッセージ514)、次に、セッション識別子を第1クライアント102aに送信する(メッセージ516)。
1つのフレーム518にて、クライアント102の各々は、共有ビュー700を共有するのを可能にする同期リングに加入する。第1サーバ104aは、フレーム520にて共有ビュー1同期リングに加入する。同時に、第1クライアント106aは、第1サーバ104aにユーザリスト及びセッション識別子を送ることによって第1ユーザ302aのビュー700を共有できることを同期プロトコル214を介して他のサーバ104bに知らせるように、第1サーバ104aに命令する(メッセージ522)。第1サーバ104aは、メッセージをクライアント通知同期リングを介して第2サーバ104bに送信することによってこれを行い、第2サーバ104を通知ビューセッション状態に変更させる(フレーム524)ようにする。通知ビューセッション状態では、第2サーバ104bにより、第2クライアント16bが第1ユーザ302aのビュー700を共有するよう第2ユーザ302bに指示(メッセージ526及び528)し、第2ユーザ302bの肯定応答が第2サーバ104に中継される(メッセージ530及び532)。続いて、第2サーバ104bは、第1ユーザ302aのビュー700を共有するのに使用される共有ビュー1同期リングに加入する(フレーム534)。
第2フレーム519において、ユーザ106は各々、共有ビュー700を更新し、この更新が、互いに自動的に共有される。第1ユーザ302aは、共有ビュー700の第1パネル702aにズームインして(メッセージ536)、第1クライアント102aは、第1ユーザ302aが第1パネル702aにどのようにズームインしたかを第1サーバ104aに中継する(メッセージ538)。第1サーバ104aは、共有ビュー1同期リングに沿ってズーム詳細事項を送ることにより、このズーム詳細事項を第2サーバ104bと共有する(フレーム540)。これに応じて、第2サーバ104bは、第2クライアント106b上に表示される共有ビュー700を更新して(メッセージ542)、更新された共有ビュー700が、第2ユーザ302bに表示される(メッセージ544)。同時に、第2ユーザ302bは、共有ビュー700において第2パネル702bをパンして(メッセージ546)、第2クライアント102bは、第2ユーザ302bがこのパネル702bをどのようにパンしたかを第2サーバ104bに中継する(メッセージ548)。次に、第2サーバ104bは、共有ビュー1同期リングを使用してパン詳細事項を送ることによって、このパン詳細事項を第1サーバ104aと共有する(フレーム550)。これに応じて、第1サーバ104aは、第1クライアント106b上に表示される共有ビュー700を更新して(メッセージ552)、次いで、更新された共有ビュー700が第1ユーザ302aに表示される(メッセージ556)。
第2フレーム519の後、第1ユーザ302aは、そのビュー700を閉じて(メッセージ556)、第1サーバ104aに中継される(メッセージ558)。この結果、第1サーバ104aは、共有ビュー1同期リングをから離れる(メッセージ及びフレーム560)。第2ユーザ302bは、同様に、そのビュー700を閉じて、これにより第2サーバ104bが共有ビュー1同期リングから離れるようになる(メッセージ562及び564、及びメッセージ及びフレーム566)。
図5の実施例では、ユーザ302が共有ビュー700をパン及びズームする。代替の実施形態(図示せず)では、ユーザ302は、他の方法で共有ビュー700を修正することができる。例えば、ユーザ302は各々、パネル702のレイアウトを変更すること、ビデオが生で又は再生モード(この場合、ユーザ302はまた、ビデオを一時停止、再生、又は進めることができる)で表示されるかどうかを選択すること、及び改訂履歴のようなユーザオブジェクトに関する情報と共に、マップ又はウェブページのようなユーザオブジェクトを表示することができる。これらの代替の実施形態において、同期リングを使用して同期される追加の状態情報の実施例は、ビデオが、再生、一時停止、又は進められているかどうか、並びにユーザオブジェクトの改訂履歴を含む。
上記の説明は、図1のピアツーピア物理的セキュリティシステム100における共有ビュー及び協調アプリケーション222の実施構成に焦点を当てたが、より一般的には、このアプリケーション222は、中央ゲートウェイサーバを含む連合システムのような複数のサーバ104を有する物理的セキュリティシステムにおいて実施することができる。このより一般的な実施形態の実施例が図12に示され、複数のサーバノードを含む物理的セキュリティシステムを使用してビューを共有するための例示的な方法1200を示している。方法1200は、ブロック1202で始まってブロック1204に進み、ここで、第1クライアント(第1クライアント102aなど)によって表示されたビュー(共有されることになるビューである)を表すビュー状態データが、第1クライアントから第1サーバノード(メッセージ538を介して送信される第1サーバ104a及びビュー状態データなど)に送信される。ブロック1206において、ビュー状態データが第1サーバノードから第2クライアント(第2クライアント102bなど)に第2サーバノード(第2サーバ104b及びフレーム540及びメッセージ542を介して送信されるビュー状態データなど)を介して中継される。次いで、ブロック1208において、第2クライアントは、ビュー状態データを使用してディスプレイを更新して、共有ビューを(メッセージ544などを介して)表示する。第2クライアントにてユーザとの対話から生じる変更など、第2クライアントでの共有ビューの変更に応答して(メッセージ546などを介して)、ブロック1210において、更新されたビュー状態データが第2クライアントから第2サーバノードに(メッセージ548などを介して)送信される。更新されたビュー状態データは、第2クライアントによって表示された共有ビューを表す。ブロック1212において、更新されたビュー状態データは、第2サーバノードから第1クライアントに第1サーバノードを介して送信され(フレーム550及びメッセージ552などを介して)、次いで、ブロック1214において、第1クライアントのディスプレイが更新され、更新されたビュー状態データを使用して第2クライアントにて修正された共有ビューを表示する(メッセージ554などを介して)。ブロック1216にて、方法1200は終了する。中央ゲートウェイサーバを使用する連合システムに対応する時のような代替の実施形態において、ビュー状態データの全ては、当該中央サーバを介してルーティングすることができる。
無人ビュー共有アプリケーション225
システム100のユーザ302はまた、ユーザ302が直接制御しない(すなわち、ユーザ302が他のサーバ104を介して制御する)サーバ104の1つに直接又は間接的に接続されたディスプレイ上でビューを閲覧し制御できる必要がある(このディスプレイは、「無人ディスプレイ」であり、無人ディスプレイ上のビューは「無人ビュー」である)。例えば、無人ディスプレイは、ユーザ302の前方の壁に据え付けて、クラスタ108におけるサーバ104の1つを介してサーバクラスタ108に接続することができ、ユーザ302は、クラスタ108における他のサーバ104を介してサーバクラスタ108に接続することができる。図10に関して以下に説明するように、無人ビュー共有アプリケーション225は、ユーザ302の誰も無人ビューを制御するサーバ104に直接接続されていないにも関わらず、ユーザ302が無人ビューを閲覧及び制御するのを可能にする。この機能を可能にするために、サーバ104間で交換されるビューデータは、リアルタイムで共有される同期データである。
図10は、同期プロトコル214を使用して無人ビューが第1ユーザ302aと共有されるUMLシーケンス図1000を示す。図1000は、6つのオブジェクト、すなわち、第1ユーザ302a、第1ユーザ302aが接続され第1ユーザ302aが対話するディスプレイ(「クライアントディスプレイ」)を含む第1クライアント102a、第1及び第2サーバ104a、b、第2サーバ104b及び無人ディスプレイの双方に接続されたクライアント102の無人ディスプレイのようなハードウェア上で実行される監視インスタンス1004、及び監視インスタンス1004をセットアップするアドミニストレータ1002を含む。他の実施形態(図示せず)では、無人ディスプレイは、第2サーバ104bに直接接続することができ、監視インスタンス1004は、第2サーバ104b上で実行することができる。
図10において、アドミニストレータ1002が監視インスタンス1004を作成し(メッセージ1006)、次いで、監視インスタンス1004が、第2サーバ104bに自動的にログインする(メッセージ1008及び1010)。監視インスタンス1004は、第2サーバ104上で共有ビューオープン(ビュー状態)を呼び出すことによって、無人ビューを第2サーバ104bが利用できるようにし、ここでビュー状態は、無人ビューを示すビュー状態データである(メッセージ1012)。これに続いて、第2サーバ104bが共有ビューセッション作成()を実行することによって、共有ビューセッションを作成し(メッセージ1014)、対応するセッション識別子を監視インスタンスに送信する(メッセージ1016)。セッション識別子を受信した後、監視インスタンス1004は、共有ビュー1同期リングに加入し(フレーム1018)、この共有ビュー1同期リングを用いて、共有ビュー1同期リングのメンバでもあるクラスタ108における他のサーバ104との間でビュー状態データを送信する。
共有ビュー1同期リングに加入した後で、監視インスタンス1020は、無人ビューを閲覧及び制御できるという通知をクラスタ108における他のサーバ104に公開する。監視インスタンス1020は、第2サーバ104b上でレジスタモニタ(セッションID)を呼び出すことによってこれを行い(メッセージ1018)、これにより、無人ビューに関係するセッション識別子をビューディレクトリに登録させる(フレーム1022)。ビューディレクトリは、一貫性プロトコル216を使用してクラスタ108における他のサーバ104と共有される。
ビューディレクトリがクラスタ108における他のサーバ104に配布されると、他のサーバ104は、ビューディレクトリにアクセスして、どの無人ビューが閲覧及び制御できるかを判定することができる。第1サーバ104aがビューディレクトリを受信した後に、第1ユーザ302aは、第1クライアント102aを介して第1サーバ104aにログインして、これによりクラスタ108へのアクセス(メッセージ1024)及びビューディレクトリを取得する。第1ユーザ102aは、UIディスプレイモニタ(セッションID)を呼び出すことによって無人ビューを表示するよう第1クライアント102aに命令し(メッセージ1026)、これにより第1クライアント102aは、無人ビューを開くための命令と共に無人ビューのセッション識別子を第1サーバ104aに送信する(メッセージ1028)。第1サーバ104aは、第1クライアント102aの命令を肯定応答して(メッセージ1030)、次いで、共有ビュー1同期リングに加入(フレーム1032)し、無人ディスプレイの現在のビューを記述するビュー状態データを自動的に受信し(メッセージ1034)、無人ビューに対する何らかの後続の変更に関して自動的に通知を受けるようにする。
続いて、第1ユーザ302aは、クライアントディスプレイ上に表示された無人ビューのパネルの1つをパンして(メッセージ1036)、第1クライアント102aは、共有ビュー更新(動作=パン、パネルID=2)を呼び出すことによって、パン動作及びパンされる特定のパネルのアイデンティティを第1サーバ104aに中継する(メッセージ1038)。第1サーバ104aは、更新されたビュー状態データを、共有ビュー1同期リングのメンバであるサーバ104全てに送信して(フレーム1040)、サーバ104の全てが無人ビューの更新されたバージョンを再生できるようにする。第2サーバ104bは、この更新されたビュー状態データを受信して、通知共有ビュー更新(動作=パン、パラメータ、パネルID=2)を呼び出すことによってこれを監視インスタンス1004に中継する(メッセージ1042)。監視インスタンス1004は、無人ディスプレイを更新して、第1ユーザ302aによって修正された無人ビューを表示する(メッセージ1044)。
図10の実施例では、第1ユーザ302aが、無人ビューのパネルの1つをパンする。代替の実施形態(図示せず)では、第1ユーザ302aは、他の方法で無人ビューを修正することができる。例えば、第1ユーザ302aは、無人ビューのパネルの何れか1つ又はそれ以上のパネルのレイアウトを変更すること、ビデオが生で又は再生モード(この場合、第1ユーザ302aはまた、ビデオを一時停止、再生、又は進めることができる)で表示されるかどうかを選択すること、及び改訂履歴のようなユーザオブジェクトに関する情報と共にマップ又はウェブページのようなユーザオブジェクトを表示することができる。これらの代替の実施形態において、同期リングを使用して同期される付加的な状態情報の実施例は、ビデオが、再生、停止、又は進められているかどうか、並びにユーザオブジェクトの改訂履歴を含む。
別の代替の実施形態(図示せず)では、無人ビュー共有アプリケーション225を使用して、n×mの無人ディスプレイのマトリクス配列を含む集約ディスプレイを作成することができる。例えば、n=m=2であり、結果として4つの無人ディスプレイが存在する場合、第1ユーザ302aは、無人ディスプレイの4つ全てを同時に制御して、1つの大きな仮想ディスプレイを作成することができる。無人ビューの各々がビデオの1つの四分円になるように単一のビデオを拡大することができ、これによってビデオを4つの無人ディスプレイにわたって拡大及び表示することができる。この実施形態において、無人ディスプレイのための監視インスタンス1004は、1から4つのサーバ104の何れかを介してサーバクラスタ108と通信することができる。
図10は、第1ユーザ302aだけを示しているが、代替の実施形態(図示せず)では、ユーザ302のうちの1よりも多くが、共有ビュー1同期リングに加入することによって無人ビューを閲覧及び制御することができる。無人ディスプレイのn×mマトリクス配列を含む集約ディスプレイの上記の実施例では、集約ディスプレイは、ユーザ302の複数人が同時に見るように部屋に設置することができ、ユーザ302の各々は、無人ビューの各々を制御する能力を有している。
上記の説明は、図1のピアツーピア物理的セキュリティシステム100における無人ビュー共有アプリケーション225の実施構成に焦点を当てているが、より一般的には、このアプリケーション225は、中央ゲートウェイサーバを含む連合システムのような複数のサーバ104を有する物理的セキュリティシステムにおいて実施することができる。このより一般的な実施形態の実施例が図11に示されており、図11は、複数のサーバノードを含む物理的セキュリティシステムにおいて無人ディスプレイと対話するための例示的な方法1100を示している。本方法は、ブロック1102で始まってブロック1104に進み、ここで無人ディスプレイと通信する第2サーバノード(第2サーバ104bなど)が、第1サーバノード(第1サーバ104aなど)に無人ビューを示すビュー状態データを(図10のフレーム1020及び1032の同期リングなどを介して)送信する。方法1100はブロック1106に進み、無人ビューの少なくとも一部分が、クライアントディスプレイに表示され(図10のメッセージ1034から生じたクライアントディスプレイの更新など)、これに続いて、方法1100はブロック1108で終了する。中央ゲートウェイサーバを使用する連合システムに対応する時のような代替の実施形態において、ビュー状態データの全ては、当該中央サーバを介してルーティングすることができる。
クラスタストリームアプリケーション220
ユーザ302とそのカメラ106、114の間のポイントツーポイント接続が利用できない場合には、ユーザ302の1人はまた、カメラ106、114のうちの1つからビデオをストリーミングする必要がある可能性があり、クラスタストリームアプリケーション220によってこの機能が可能となる。図6は、ビデオが、第1及び第2サーバ104a、b及び第1クライアント102aを介して非ノードカメラ114から第1ユーザ302aにストリーミングされるUMLシーケンス図500を示す。UML図は、5つのオブジェクト、すなわち、第1ユーザ302a、第1クライアント102a、第1及び第2サーバ104a、b、及び非ノードカメラ114を有する。第1クライアント102aは、第1サーバ104aと直接通信できるが、第2サーバ104bとは直接通信することはできない。しかしながら、第1及び第2サーバ104a、bは、互いに直接通信することができる。加えて、第2サーバ104b及び非ノードカメラ114は、互いに直接通信でき、第1サーバ104a及び非ノードカメラ114は直接通信できない。
第2サーバ104bは、最初に、ビデオが非ノードカメラ114から第2サーバ104bにストリーミングされるように非ノードカメラ114とのセッションを確立する。第2サーバ104bは、最初に、非ノードカメラ114とのリアルタイムストリーミングプロトコル(RTSP)セッションをセットアップして(メッセージ602及び604)、ビデオを送信するよう非ノードカメラ114に対し命令する(メッセージ606及び608)。非ノードカメラ114は、続いて、ストリーミングを開始する(メッセージ610)。
第1ユーザ302aは、第1クライアント102aとの接続を確立して(メッセージ612)、ストリーミングビデオを表示するウィンドウを開くよう、第1クライアント102aに命令する(メッセージ614)。次いで、第1クライアント102aは、ルックアップルート()を呼び出して、どのサーバ104に接続するかを決定し(メッセージ616)、第1クライアント102aは第2サーバ104bに直接接続できないので、第1サーバ104aとのRTSP接続をセットアップする(メッセージ618)。次に、第1サーバ104bは、ルックアップルート()を呼び出して、リアルタイムビデオにアクセスするためにどのノードに接続するかを決定して、第2サーバ104bと接続すべきであるとを判定する(メッセージ620)。次いで、第1サーバ104aは、第2サーバ104bとのRTSP接続をセットアップして(メッセージ622)、第2サーバ104bは、セッション識別子を第1サーバ104aに戻す(メッセージ624)。第1サーバ104aは、セッション識別子を第1クライアント102aに中継する(メッセージ626)。このセッション識別子を使用して、第1クライアント102aは、RTSPビデオの再生を開始するよう第2サーバ104bに命令し(メッセージ628から634)、続いて、第2サーバ104bは、第2サーバ104bを介して第1ユーザ302aに、次いで第1サーバ104aに、次に第1クライアント102aにビデオをストリーミングする(メッセージ636から640)。
図6では、クラスタ108におけるサーバ104の1つに接続された非ノードカメラ114の1つから、同じクラスタ108における他のサーバ104にビデオをルーティングしているが、代替の実施形態(図示せず)では、クラスタ108におけるノードカメラ106の1つから同じクラスタ108における他のノードカメラ106を介してビデオをルーティングすることもできる。
リブート
本実施形態において、クラスタメンバーシップ情報は、ノードの各々に永続的にローカルに格納される。ノードの1つがリブートした時には、リブートの前にメンバであったクラスタ108に自動的に再加入する。これは、図9に示した例示的な方法900において示されている。ブロック806を実行した後、クラスタ108におけるノードの1つがリブートする(ブロック902)。リブートすると、このノードは、リブートの前にメンバだったクラスタ108を識別する永続的に格納されたクラスタメンバーシップ情報にアクセスして(ブロック904)、その後、このクラスタ108に再加入する(ブロック906)した後、ブロック808に戻る。リブートに続いて、クラスタ108にノードを自動的に再加入することは、サーバの何れか1つ又はそれ以上の再始動に続くシステム100の回復を助ける点で有利である。ノードの各々が一貫性情報を永続的に格納するので、クラスタ108への再加入時には、ノードが最後にクラスタ108から離れて以降に変更された一貫性情報だけが再同期され、これによって帯域幅が節減される。
特定の例示的な実施形態が図示されたが、図示していない代替の実施形態も実施可能である。例えば、図示の実施形態では、ノードカメラ106及び非ノードカメラ114は互いに区別されるが、代替の実施形態(図示せず)では、単一のカメラをノードカメラ及び非ノードカメラに同時にすることができる。例えば、図1では、第1カメラ106aが、第3クラスタ108cのメンバであるノードであるが、第1カメラ106aが第5サーバ104aに直接結合されているが、第3クラスタ108cのクラスタメンバーシップ情報だけを保有する場合、第1カメラ106aは、第5サーバ104eの観点から非ノードカメラ114として同時に動作している間、第3クラスタ108cのメンバのままになる。
前述の実施形態において使用されるプロセッサは、例えば、マイクロプロセッサ、マイクロコントローラ、プログラマブル論理コントローラ、フィールドプログラマブルゲートアレイ、又は特定用途向け集積回路とすることができる。コンピュータ可読媒体の実施例は、非一時的であり、CD−ROM及びDVDのようなディスクベースの媒体、ハードドライブ及び他の形式の磁気ディスク記憶装置のような磁気媒体、フラッシュ媒体のような半導体ベースの媒体、ランダムアクセスメモリ、及び読出し専用メモリを含む。
本明細書で記載される何れかの態様又は実施形態の何れかの部分は、本明細書で記載される何れかの他の態様又は実施形態の何れかの部分と共に実施又は結合できることが意図される。
便宜上、上記の例示的な実施形態は、様々な相互接続された機能的ブロックとして説明している。しかしながら、これは必須ではなく、これらの機能的ブロックが、曖昧な境界で単一の論理デバイス、プログラム又は動作に等価に集約される場合もある。何れにしても、機能的ブロックは、単独で、又はハードウェア又はソフトウェアの他の要素と組み合わせて実施することができる。
上記では、特定の実施形態を説明してきたが、代替の実施形態が可能であり本明細書に含まれるものとする点を理解されたい。図示していない前述の実施形態の修正及び調整が可能であることは、当業者には明らかであろう。
100 監視システム
102a 102b 102c クライアント
104a 104b 104c 104d 104e 104f サーバ
106a 106b 106c ノードカメラ
108a 108b 108c クラスタ
110 プロセッサ
112 メモリ
114 非ノードカメラ

Claims (57)

  1. 複数のサーバノードを含む物理的セキュリティシステムにおいてデータを共有する方法であって、
    (a)前記サーバノードのうちの1つのサーバノード(「第1ノード」)を使用して、前記サーバノードのうちの別のサーバノード(「第2ノード」)を識別するノード識別子にアクセスするステップを含み、
    前記第1及び第2ノードがサーバクラスタの少なくとも一部を含み、前記ノード識別子が、前記サーバクラスタにおける全てのサーバノードを識別し且つ該全てのサーバノードによってアクセス可能なクラスタメンバーシップ情報の少なくとも一部を含み、
    更に、
    (b)前記第1ノードからのデータを前記第2ノードに送信するステップと、
    を含む、方法。
  2. 前記サーバクラスタが、少なくとも3つのサーバノードを含む、請求項1に記載の方法。
  3. 前記サーバノードが、カメラ、ネットワークビデオレコーダ、及びアクセス制御サーバを含む、請求項1に記載の方法。
  4. (a)前記第2ノードを使用して、前記第1ノードを識別するノード識別子にアクセスするステップと、
    (b)前記第2ノードからの付加的なデータを前記第1ノードに送信するステップと、
    を更に含む、請求項1に記載の方法。
  5. 前記クラスタメンバーシップ情報が、
    (a)前記サーバクラスタにおける前記サーバノードの各々を一意的に識別するノード識別子と、
    (b)前記サーバノードが属するサーバクラスタを一意的に識別するクラスタ識別子と、
    を含む、請求項1に記載の方法。
  6. 前記サーバクラスタにおける前記サーバノードの各々が、前記クラスタメンバーシップ情報の固有のバージョンを永続的にローカルに格納する、請求項5に記載の方法。
  7. (a)前記サーバクラスタにおける前記サーバノードの1つ(「リブートサーバノード」)をリブートするステップと、
    (b)前記リブートされたサーバノードがオンラインに戻ると、前記リブートされたサーバノードを使用して、
    (i)前記サーバクラスタを識別する前記クラスタ識別子にアクセスしと、
    (ii)前記サーバクラスタに自動的に再加入する、
    ことを含む方法を実行するステップと、
    を含む、請求項6に記載の方法。
  8. 新しいサーバノードを前記サーバクラスタに追加するステップを更に含み、該追加ステップが、
    (a)前記新しいサーバノード上に格納されたクラスタメンバーシップ情報のバージョンを、既に前記サーバクラスタの一部である前記サーバノードの1つ(「メンバーシップ制御ノード」)上に格納されたクラスタメンバーシップ情報のバージョンと交換するステップと、
    (b)前記新しいサーバノード上に格納されたクラスタメンバーシップ情報のバージョンを、前記新しいサーバノードが前記クラスタに加入する前に前記クラスタにおけるサーバノードの全て上に格納されたクラスタメンバーシップ情報のバージョンに同期するステップと、
    を含む方法を実行することによって行う、請求項6に記載の方法。
  9. 前記データを送信するステップが、
    (a)前記第1ノードを使用して、前記ノード識別子から前記第2ノードの通信エンドポイントを探すステップと、
    (b)前記第1ノードからのデータを前記通信エンドポイントに送信するステップと、
    を含む、請求項6に記載の方法。
  10. 前記通信エンドポイント及び前記ノード識別子が、前記サーバクラスタにおけるサーバノードの全てに対するノード識別子を対応する通信エンドポイントに関係付けるネットワークマップへのエントリを含み、前記サーバクラスタにおける前記サーバノードの各々が、前記ネットワークマップの固有のバージョンを永続的にローカルに格納する、請求項9に記載の方法。
  11. 前記ネットワークマップにより、前記サーバクラスタにおける前記サーバノードの各々が、中央サーバを使用することなく前記サーバクラスタにおけるサーバノードの何れかの他のノードに前記データを送信できるようになる、請求項10に記載の方法。
  12. 前記データが前記第1ノード上にローカルに格納され、本方法が更に、前記第1ノードを使用して前記データを修正するステップを含み、前記第1ノードからのデータを前記第2ノードに送信するステップが、前記第1ノードが前記データを修正した後に前記第1ノード及び第2ノード上のデータを同期するステップの一部を構成する、請求項6に記載の方法。
  13. 前記データが、カジュアリティバージョニング機構を使用して生成されたバージョン情報を含み、前記データの異なるバージョンが、前記第1及び第2ノード上に格納され、前記データを同期するステップが、前記第1及び第2ノード上に格納されたバージョン情報を比較して、前記第1及び第2ノードの双方に対してバージョン情報が最新であることを示すデータを採用するステップを含む、請求項12に記載の方法。
  14. 前記データが、前記第1ノードのノード識別子、前記第1ノードのハートビート状態情報、前記第1ノードのアプリケーション状態情報、及びバージョン情報を含み、前記データを送信するステップが、前記クラスタにおける前記サーバノードのペア間でデータ交換を実行するゴシッププロトコルを使用して、前記サーバクラスタにおけるサーバノードの全てに前記データを配布するステップを含む、請求項6に記載の方法。
  15. 前記データが、前記サーバクラスタにおけるサーバノードの全てに定期的に配布される、請求項14に記載の方法。
  16. 前記データは、前記第1ノードが前記クラスタに加入した時に前記第2ノードに送信される、請求項14に記載の方法。
  17. 前記サーバクラスタにおけるサーバノードの何れかによって修正することができるエントリが追加されたドメインが、前記サーバクラスタにおけるノードの各々にローカルに格納され、本方法が更に、前記サーバノードのどれが前記エントリのうちの最新の修正されたエントリを有するかを前記バージョン情報が示すように、カジュアリティバージョニング機構を使用して前記バージョン情報を生成するステップを含む、請求項14に記載の方法。
  18. 前記アプリケーション状態情報が、前記ドメインにおけるエントリの全てをハッシュすることによって生成されたトップレベルハッシュを含む、請求項17に記載の方法。
  19. (a)前記第2ノードを使用して、前記トップレベルハッシュを、前記第2ノード上にローカルに格納された対応するドメインのバージョンをハッシュすることによって生成されたトップレベルハッシュと比較するステップと、
    (b)前記トップレベルハッシュが異なる場合、前記バージョン情報を使用して前記第1及び第2ノードの双方で前記ドメインを同期するステップと、
    を更に含む、請求項18に記載の方法。
  20. 前記第1ノードによってのみ修正することができるステータスエントリが、前記第1ノード上にローカルに格納され、前記バージョン情報が、前記ステータスエントリを修正する時は必ず前記第1ノードが増分するバージョン番号を含む、請求項14に記載の方法。
  21. 前記アプリケーション状態情報が、前記ステータスエントリを識別するステータスエンティティ識別子及び前記バージョン番号を有するステータスエンティティペアを含む、請求項20に記載の方法。
  22. (a)前記第2ノードを使用して、前記第1ノードから受信されたバージョン番号を、前記第2ノード上にローカルに格納された対応するステータスエントリのバージョン番号と比較するステップと、
    (b)前記バージョン番号が異なる場合、前記第2ノード上にローカルに格納されたステータスエントリを、前記第1ノード上にローカルに格納されたステータスエントリによって更新するステップと、
    を更に含む、請求項21に記載の方法。
  23. 前記ステータスエントリを更新するステップが、前記ステータスエントリと同時に修正された前記第1ノード上にローカルに格納された付加的なステータスエントリを前記第1ノードから前記第2ノードに送信するステップを含む、請求項22に記載の方法。
  24. 前記第1及び第2ノードが、前記第1ノードが前記データを全体的に順序付けられた方式で前記グループにおけるサーバノードの全てに送信できる前記クラスタにおけるサーバノードのグループの少なくとも一部を含み、前記データを送信するステップが、前記第1ノードが前記グループにおけるサーバノードの全てに前記データを送信するステップを含む、請求項6に記載の方法。
  25. 前記データが、前記物理的セキュリティシステムのランタイム中に生成された非永続的データを含む、請求項24に記載の方法。
  26. 前記データが、前記サーバクラスタにおけるサーバノードのうちの別のサーバノードから前記第1ノードを介して前記第2ノードにストリーミングされるストリーミングビデオを含む、請求項6に記載の方法。
  27. 第1ノード及び第2ノードを有する複数のサーバノードを備えた物理的セキュリティシステムであって、前記第1ノードが、コンピュータ可読媒体に通信可能に接続されたプロセッサを含み、前記コンピュータ可読媒体は、方法を前記プロセッサに実行させるようにするステートメント及び命令を符号化しており、
    (a)前記第2ノードを識別するノード識別子にアクセスする処理であって、前記第1及び第2ノードが、サーバクラスタの少なくとも一部を含み、前記ノード識別子が、前記サーバクラスタにおけるサーバノードの全てを識別し且つ該全てのサーボノードによってアクセス可能なクラスタメンバーシップ情報の少なくとも一部を含む当該処理と、
    (b)前記データを前記第2ノードに送信する処理と、
    を実行する、物理的セキュリティシステム。
  28. 複数のサーバノードを含む物理的セキュリティシステムにおいてデータを共有する方法をプロセッサに実行させるためのステートメント及び命令を符号化した非一時的コンピュータ可読媒体であって、
    (a)前記サーバノードのうちの1つのサーバノード(「第1ノード」)を使用して、前記サーバノードのうちの別のサーバノード(「第2ノード」)を識別するノード識別子にアクセスする処理であって、前記第1及び第2ノードがサーバクラスタの少なくとも一部を含み、前記ノード識別子が、前記サーバクラスタにおける全てのサーバノードを識別し且つ該全てのサーバノードによってアクセス可能なクラスタメンバーシップ情報の少なくとも一部を含む処理と、
    (b)前記第1ノードからのデータを前記第2ノードに送信する処理と、
    のためのステートメント及び命令を記憶した、非一時的コンピュータ可読媒体。
  29. 複数のサーバノードを含む物理的セキュリティシステムにおいて無人ディスプレイと対話するための方法であって、
    (a)前記無人ディスプレイと通信可能な前記サーバノードのうちの1つのサーバノード(「第2ノード」)から、クライアントディスプレイと通信可能な前記サーバノードのうちの別のサーバノード(「第1ノード」)に、前記無人ディスプレイ上に表示されたビューを示すビュー状態データを送信するステップと、
    (b)前記クライアントディスプレイ上に、前記無人ディスプレイ上に表示されたビューの少なくとも一部分を表示するステップと、
    が実行される、方法。
  30. 前記サーバノードのどれもが中央ゲートウェイサーバではない、請求項29に記載の方法。
  31. 前記サーバノードの少なくとも1つが、中央ゲートウェイサーバである、請求項29に記載の方法。
  32. (a)前記第1ノードから前記第2ノードに、前記無人ディスプレイのビューを変更するためのメッセージを送信するステップと、
    (b)前記第1ノードから前記第2ノードに送信された前記メッセージに従って、前記無人ディスプレイを更新するステップと、
    を更に含む、請求項30に記載の方法。
  33. 前記第1及び第2ノード並びに前記複数のサーバノードのうちの少なくとも別のサーバノードがサーバクラスタを含み、前記第1及び第2ノードが、前記第2ノードが前記ビュー状態データを全体的に順序付けられた方式で前記グループにおける全ての他のサーバノードに送信できる前記クラスタにおけるサーバノードのグループの少なくとも一部を含み、前記ビュー状態データを送信するステップが、前記第2ノードが前記データを前記グループにおける他のサーバノードの全てに送信するステップを含む、請求項30に記載の方法。
  34. 前記第1及び第2ノード並びに前記複数のサーバノードのうちの少なくとも別のサーバノードがサーバクラスタを含み、前記第1及び第2ノードが、前記第1ノードが前記無人ディスプレイの状態を変更するためのメッセージを全体的に順序付けられた方式で前記グループにおける全ての他のサーバノードに送信できる前記クラスタにおけるサーバノードのグループの少なくとも一部を含み、前記第1ノードが前記無人ディスプレイの状態を変更するためのメッセージを前記グループにおける他のサーバノードの全てに送信する、請求項32に記載の方法。
  35. 前記無人ディスプレイのビューを制御できるという通知を前記第2ノードから前記第1ノードに送信するステップを更に含む、請求項30に記載の方法。
  36. 前記通知を送信するステップが、前記クラスタにおける前記サーバノードのペア間でデータ交換を実行するゴシッププロトコルを使用して、前記サーバクラスタにおけるサーバノードの全てに前記通知を配布するステップを含む、請求項35に記載の方法。
  37. 前記無人ディスプレイの状態を前記制御ディスプレイに送信する前に、前記第2ノードを使用して前記第1ノードを識別するノード識別子にアクセスするステップを更に含み、前記第1及び第2ノードが、サーバクラスタの少なくとも一部を含み、前記ノード識別子が、前記サーバクラスタにおける全てのサーバノードを識別し且つ該全てのサーバノードによってアクセス可能なクラスタメンバーシップ情報の少なくとも一部を含む、請求項30に記載の方法。
  38. 前記クラスタメンバーシップ情報が、
    (a)前記サーバクラスタにおける前記サーバノードの各々を一意的に識別するノード識別子と、
    (b)前記サーバノードが属するサーバクラスタを一意的に識別するクラスタ識別子と、
    を含む、請求項37に記載の方法。
  39. 前記サーバクラスタにおける前記サーバノードの各々が、前記クラスタメンバーシップ情報の固有のバージョンを永続的にローカルに格納する、請求項38に記載の方法。
  40. 物理的セキュリティシステムであって、
    (a)クライアントディスプレイを有するクライアントと、
    (b)無人ディスプレイと、
    (c)複数のサーバノードと、
    を備え、前記サーバノードのうちの1つのサーバノード(「第1ノード」)が、前記クライアントと通信可能であり、前記サーバノードのうちの別のサーバノード(「第2ノード」)が、前記無人ディスプレイと通信可能であり、
    前記第2ノードが、前記無人ディスプレイ上に表示されたビューを示すビュー状態データを前記第1ノードに送信するよう構成され、前記第1ノードが、前記無人ディスプレイ上に表示されたビューの少なくとも一部分を前記クライアントディスプレイ上に表示するよう構成される、物理的セキュリティシステム。
  41. 前記サーバノードのどれもが中央ゲートウェイサーバでない、請求項40に記載のシステム。
  42. 前記サーバノードの少なくとも1つが、中央ゲートウェイサーバである、請求項40に記載のシステム。
  43. 複数のサーバノードを含む物理的セキュリティシステムにおいて無人ディスプレイと対話するための方法をプロセッサに実行させるためのステートメント及び命令を符号化した非一時的コンピュータ可読媒体であって、
    (a)前記無人ディスプレイと通信可能な前記サーバノードのうちの1つのサーバノード(「第2ノード」)からクライアントディスプレイと通信可能な前記サーバノードのうちの別のサーバノード(「第1ノード」)に、前記無人ディスプレイ上に表示されたビューを示すビュー状態データを送信するステップと、
    (b)前記クライアントディスプレイ上に、前記無人ディスプレイ上に表示されたビューの少なくとも一部分を表示するステップと、
    のためのステートメント及び命令を記憶した、非一時的コンピュータ可読媒体。
  44. 複数のサーバノードを含む物理的セキュリティシステムを使用してビューを共有(「共有ビュー」)する方法であって、
    (a)第1クライアントから前記サーバノードのうちの1つのサーバノード(「第1ノード」)に、前記第1クライアントによって表示された前記共有ビューを表すビュー状態データを送信するステップと、
    (b)前記第1ノードからのビュー状態データを第2クライアントに前記サーバノードのうちの別のサーバノード(「第2ノード」)を介して送信するステップと、
    (c)前記共有ビューを表示するために前記ビュー状態データを使用して前記第2クライアントのディスプレイを更新するステップと、
    (d)前記第2クライアントにおける前記共有ビューの変更に応答して、前記第2クライアントによって表示される前記共有ビューを表す更新されたビュー状態データを前記第2クライアントから前記第2ノードに送信するステップと、
    (e)前記更新されたビュー状態データを前記第2ノードから前記第1ノードを介して前記第1クライアントに送信するステップと、
    (f)前記第1クライアントのディスプレイを更新して、前記更新されたビュー状態データを使用して前記共有ビューを表示するステップと、
    を含む、方法。
  45. 前記サーバノードのどれもが中央ゲートウェイサーバではない、請求項44に記載の方法。
  46. 前記ノードの少なくとも1つが、中央ゲートウェイサーバである、請求項44に記載の方法。
  47. 前記第1及び第2ノード並びに前記複数のサーバノードのうちの少なくとも別のサーバノードがサーバクラスタを含み、前記第1及び第2ノードが、前記第1ノードが前記ビュー状態データを全体的に順序付けられた方式で前記グループにおける全ての他のサーバノードに送信できる前記クラスタにおけるサーバノードのグループの少なくとも一部を含み、前記ビュー状態データを送信するステップが、前記第1ノードが前記データを前記グループにおける前記他のサーバノードの全てに送信するステップを含む、請求項45に記載の方法。
  48. 前記第1及び第2ノード並びに前記複数のサーバノードのうちの少なくとも別のサーバノードがサーバクラスタを含み、前記第1及び第2ノードが、前記第2ノードが前記更新されたビュー状態データを全体的に順序付けられた方式で前記グループにおける全ての他のサーバノードに送信できる前記クラスタにおけるサーバノードのグループの少なくとも一部を含み、前記更新されたビュー状態データを送信するステップが、前記第2ノードが前記更新されたビュー状態データを前記グループにおける前記他のサーバノードの全てに送信するステップを含む、請求項45に記載の方法。
  49. 前記第2クライアントのディスプレイ上に前記共有ビューを表示する前に、前記第1クライアントから前記第2クライアントに前記第1及び第2ノードを介して、前記第1クライアントによって表示された共有ビューを前記第2クライアントと共有できるという通知を送信するステップを更に含む、請求項45に記載の方法。
  50. 前記第1及び第2ノード並びに前記複数のサーバノードのうちの少なくとも別のサーバノードがサーバクラスタを含み、前記第1及び第2ノードが、前記第1ノードが前記通知を全体的に順序付けられた方式で前記グループの全てのサーバノードに送信できる前記クラスタにおけるサーバノードのグループの少なくとも一部を含み、前記通知を送信するステップが、前記第1ノードが前記通知を前記グループにおける前記他のサーバノード全てに送信するステップを含む、請求項49に記載の方法。
  51. 前記第1ノードが前記状態データを前記第2クライアントに前記第2ノードを介して送信する前に、前記第1ノードを使用して前記第2ノードを識別するノード識別子にアクセスするステップを更に含み、前記第1及び第2ノードが、サーバクラスタの少なくとも一部を含み、前記ノード識別子が、前記サーバクラスタにおける全てのサーバノードを識別し且つ該全てのサーバノードによってアクセス可能なクラスタメンバーシップ情報の少なくとも一部を含む、請求項45に記載の方法。
  52. 前記クラスタメンバーシップ情報が、
    (a)前記サーバクラスタにおける前記サーバノードの各々を一意的に識別するノード識別子と、
    (b)前記サーバノードが属する前記サーバクラスタを一意的に識別するクラスタ識別子と、
    を含む、請求項51に記載の方法。
  53. 前記サーバクラスタにおける前記サーバノードの各々が、前記クラスタメンバーシップ情報の固有のバージョンを永続的にローカルに格納する、請求項52に記載の方法。
  54. 物理的セキュリティシステムであって、
    (a)ディスプレイを有する第1クライアントと、
    (b)ディスプレイを有する第2クライアントと、
    (c)複数のサーバノードと、
    を備え、前記サーバノードのうちの1つのサーバノード(「第1ノード」)が、前記第1ディスプレイと通信可能であり、前記サーバノードのうちの別のサーバノード(「第2ノード」)が、前記第2ディスプレイと通信可能であり、
    前記第1及び第2クライアント並びに前記第1及び第2ノードが、
    (i)前記第1クライアントから前記第1ノードに、前記第1クライアントのディスプレイ上に表示された共有ビューを表すビュー状態データを送信し、
    (ii)前記ビュー状態データを前記第1ノードから前記第2クライアントに前記第2ノードを介して送信し、
    (iii)前記共有ビューを表示するために前記ビュー状態データを使用して前記第2クライアントのディスプレイを更新し、
    (iv)前記第2クライアントにおける前記共有ビューの変更に応答して、前記第2クライアントのディスプレイ上に表示された共有ビューを表す更新されたビュー状態データを前記第2クライアントから前記第2ノードに送信し、
    (v)前記更新されたビュー状態データを前記第2ノードから前記第1クライアントに前記第1ノードを介して送信し、
    (vi)前記更新されたビュー状態データを使用して前記共有ビューを表示するために前記第1クライアントのディスプレイを更新する、
    ように構成される、物理的セキュリティシステム。
  55. 前記サーバノードのどれもが中央ゲートウェイサーバではない、請求項54に記載のシステム。
  56. 前記サーバノードの少なくとも1つが、中央ゲートウェイサーバである、請求項54に記載のシステム。
  57. 複数のサーバノードを含む物理的セキュリティシステムを使用してビューを共有(「共有ビュー」)する方法をプロセッサに実行させるためのステートメント及び命令を符号化した非一時的コンピュータ可読媒体であって、
    (a)第1クライアントから前記サーバノードのうちの1つのサーバノード(「第1ノード」)に、前記第1クライアントによって表示された共有ビューを表すビュー状態データを送信するステップと、
    (b)前記ビュー状態データを前記第1ノードから第2クライアントに前記サーバノードのうちの別のサーバノード(「第2ノード」)を介して送信するステップと、
    (c)前記共有ビューを表示するために前記ビュー状態データを使用して前記第2クライアントのディスプレイを更新するステップと、
    (d)前記第2クライアントにおける前記共有ビューの変更に応答して、前記第2クライアントによって表示された前記共有ビューを表す更新されたビュー状態データを前記第2クライアントから前記第2ノードに送信するステップと、
    (e)前記更新されたビュー状態データを前記第2ノードから前記第1ノードを介して前記第1クライアントに送信するステップと、
    (f)前記共有ビューを表示するために前記更新されたビュー状態データを使用して、前記第1クライアントのディスプレイを更新するステップと、
    のためのステートメント及び命令を記憶した、非一時的コンピュータ可読媒体。
JP2015530252A 2012-09-07 2013-09-06 複数のサーバノードを有する物理的セキュリティシステム Active JP6500289B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/607,447 US10454997B2 (en) 2012-09-07 2012-09-07 Distributed physical security system
US13/607,447 2012-09-07
PCT/CA2013/050690 WO2014036656A1 (en) 2012-09-07 2013-09-06 Physical security system having multiple server nodes

Publications (3)

Publication Number Publication Date
JP2015535970A true JP2015535970A (ja) 2015-12-17
JP2015535970A5 JP2015535970A5 (ja) 2016-10-27
JP6500289B2 JP6500289B2 (ja) 2019-04-17

Family

ID=50234512

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015530252A Active JP6500289B2 (ja) 2012-09-07 2013-09-06 複数のサーバノードを有する物理的セキュリティシステム

Country Status (19)

Country Link
US (2) US10454997B2 (ja)
EP (1) EP2893669B1 (ja)
JP (1) JP6500289B2 (ja)
KR (1) KR102108595B1 (ja)
CN (2) CN110598444B (ja)
AU (1) AU2013312982B2 (ja)
BR (1) BR112015004429B1 (ja)
CA (1) CA2883662C (ja)
HK (1) HK1212118A1 (ja)
IL (1) IL237439B (ja)
IN (1) IN2015DN01665A (ja)
MX (1) MX352801B (ja)
MY (1) MY181255A (ja)
NZ (1) NZ705517A (ja)
RU (1) RU2653294C2 (ja)
SA (1) SA515360089B1 (ja)
SG (1) SG11201501489UA (ja)
WO (1) WO2014036656A1 (ja)
ZA (1) ZA201501340B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210038457A (ko) * 2020-09-24 2021-04-07 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. Rpc 멤버 정보 획득 방법, 장치, 전자 기기 및 저장 매체

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10547693B2 (en) * 2012-09-07 2020-01-28 Avigilon Corporation Security device capability discovery and device selection
US9158528B2 (en) * 2012-10-02 2015-10-13 Oracle International Corporation Forcibly completing upgrade of distributed software in presence of failures
US10382249B2 (en) 2012-12-04 2019-08-13 Genesys Telecomminucations Laboratories, Inc. Logging in multithreaded application
US9369670B2 (en) * 2012-12-19 2016-06-14 Rabbit, Inc. Audio video streaming system and method
CN104010160B (zh) * 2013-02-25 2017-10-13 杭州海康威视系统技术有限公司 视频监控系统的干线管理方法及其装置
US9015328B2 (en) 2013-03-07 2015-04-21 Fiserv, Inc. Single sign-on processing for associated mobile applications
US9641498B2 (en) 2013-03-07 2017-05-02 Fiserv, Inc. Single sign-on processing for associated mobile applications
US10038626B2 (en) * 2013-04-16 2018-07-31 Amazon Technologies, Inc. Multipath routing in a distributed load balancer
US9852230B2 (en) * 2013-06-29 2017-12-26 Google Llc Asynchronous message passing for large graph clustering
US10878323B2 (en) 2014-02-28 2020-12-29 Tyco Fire & Security Gmbh Rules engine combined with message routing
US20150249548A1 (en) * 2014-02-28 2015-09-03 Tyco Fire & Security Gmbh Establishing Links Between Sub-Nets
US20150288604A1 (en) 2014-04-02 2015-10-08 Tyco Fire & Security Gmbh Sensor Network Gateway
US10140118B2 (en) 2014-03-19 2018-11-27 Huawei Device (Dongguan) Co., Ltd. Application data synchronization method and apparatus
US9394740B2 (en) * 2014-04-30 2016-07-19 Cubic Corporation Failsafe operation for unmanned gatelines
US9026840B1 (en) 2014-09-09 2015-05-05 Belkin International, Inc. Coordinated and device-distributed detection of abnormal network device operation
US10063439B2 (en) 2014-09-09 2018-08-28 Belkin International Inc. Coordinated and device-distributed detection of abnormal network device operation
DE112015004699T5 (de) 2014-10-15 2017-08-24 Avigilon Corporation Über mehrere Sites verteiltes Sicherheitssystem
US9959109B2 (en) 2015-04-10 2018-05-01 Avigilon Corporation Upgrading a physical security system having multiple server nodes
US10362106B2 (en) 2015-07-21 2019-07-23 Cisco Technology, Inc. Adaptive gossip protocol
WO2017045079A1 (en) * 2015-09-18 2017-03-23 Avigilon Corporation Physical security system having multiple server nodes configured to implement a conditionally triggered rule
US10095726B2 (en) * 2016-07-22 2018-10-09 Ebay Inc. Multiple workspace database engine
US10346191B2 (en) * 2016-12-02 2019-07-09 Wmware, Inc. System and method for managing size of clusters in a computing environment
CN107395659B (zh) 2017-03-28 2021-08-24 创新先进技术有限公司 一种业务受理及共识的方法及装置
EP3664005B1 (en) * 2017-06-07 2021-12-08 Nchain Holdings Limited Credential generation and distribution method and system for a blockchain network
CN112106327B (zh) * 2018-03-30 2021-11-23 V2康姆股份有限公司 异构处理节点的自优化网络中的资源管理和资源分配方法
RU2703154C1 (ru) * 2018-12-06 2019-10-15 Общество с ограниченной ответственностью "Ай Ти Ви групп" Система и способ синхронизации по времени воспроизведения данных от различных устройств
KR102018151B1 (ko) * 2018-12-12 2019-09-06 대한민국 영상기준 재난상황 관리시스템
US11159610B2 (en) * 2019-10-10 2021-10-26 Dell Products, L.P. Cluster formation offload using remote access controller group manager
CN110990329B (zh) * 2019-12-09 2023-12-01 杭州趣链科技有限公司 一种联邦计算高可用方法、设备及介质
US11593234B2 (en) 2020-01-16 2023-02-28 Vmware, Inc. Cloud restart for VM failover and capacity management
US11347521B2 (en) * 2020-01-16 2022-05-31 Vmware, Inc. Cloud restart for non-critical performance virtual machines
US11722589B2 (en) * 2020-04-08 2023-08-08 Huawei Technologies Co., Ltd. Rapid ledger consensus system and method for distributed wireless networks
US11463739B2 (en) 2020-06-29 2022-10-04 Seagate Technology Llc Parameter based load balancing in a distributed surveillance system
US11343544B2 (en) 2020-06-29 2022-05-24 Seagate Technology Llc Selective use of cameras in a distributed surveillance system
US11503381B2 (en) 2020-06-29 2022-11-15 Seagate Technology Llc Distributed surveillance system with abstracted functional layers
CN112910981B (zh) * 2021-01-27 2022-07-26 联想(北京)有限公司 一种控制方法及装置
US11595321B2 (en) 2021-07-06 2023-02-28 Vmware, Inc. Cluster capacity management for hyper converged infrastructure updates
US11914686B2 (en) 2021-10-15 2024-02-27 Pure Storage, Inc. Storage node security statement management in a distributed storage cluster
CN114363357B (zh) * 2021-12-28 2024-01-19 上海沄熹科技有限公司 一种基于Gossip的分布式数据库网络连接管理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999021098A2 (en) * 1997-10-21 1999-04-29 Sun Microsystems, Inc. Determining cluster membership in a distributed computer system
JP2002041488A (ja) * 2000-05-31 2002-02-08 Internatl Business Mach Corp <Ibm> クラスタ化コンピューティング環境を管理するための方法、システム、およびプログラム製品
US20080104218A1 (en) * 2006-10-31 2008-05-01 Jin Liang Methods and Apparatus for Membership Management of Network Nodes
US20090327817A1 (en) * 2008-06-27 2009-12-31 Arun Kwangil Iyengar Coordinating Updates to Replicated Data

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6601087B1 (en) * 1998-11-18 2003-07-29 Webex Communications, Inc. Instant document sharing
US6801949B1 (en) * 1999-04-12 2004-10-05 Rainfinity, Inc. Distributed server cluster with graphical user interface
US6564261B1 (en) * 1999-05-10 2003-05-13 Telefonaktiebolaget Lm Ericsson (Publ) Distributed system to intelligently establish sessions between anonymous users over various networks
US7587467B2 (en) * 1999-12-02 2009-09-08 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US20070005809A1 (en) * 2001-09-14 2007-01-04 Youichi Kobayashi Network information processing system and network information processing method
US7197632B2 (en) 2003-04-29 2007-03-27 International Business Machines Corporation Storage system and cluster maintenance
US7483374B2 (en) * 2003-08-05 2009-01-27 Scalent Systems, Inc. Method and apparatus for achieving dynamic capacity and high availability in multi-stage data networks using adaptive flow-based routing
TWI246033B (en) * 2004-06-30 2005-12-21 Unisvr Global Information Tech Hierarchical method for managing and displaying images for network monitoring
US8121148B2 (en) 2005-03-24 2012-02-21 Ixia Protocol stack using shared memory
US7877443B2 (en) * 2005-05-12 2011-01-25 International Business Machines Corporation Method, system, and computer program product for web conference participant display render acknowledgement
US8195976B2 (en) * 2005-06-29 2012-06-05 International Business Machines Corporation Fault-tolerance and fault-containment models for zoning clustered application silos into continuous availability and high availability zones in clustered systems during recovery and maintenance
US7512707B1 (en) * 2005-11-03 2009-03-31 Adobe Systems Incorporated Load balancing of server clusters
US9047310B2 (en) * 2006-02-22 2015-06-02 Microsoft Technology Licensing, Llc Reliable, efficient peer-to-peer storage
US8601112B1 (en) * 2006-03-14 2013-12-03 Amazon Technologies, Inc. Method and system for collecting and analyzing time-series data
US7895639B2 (en) * 2006-05-04 2011-02-22 Citrix Online, Llc Methods and systems for specifying and enforcing access control in a distributed system
US20070285501A1 (en) * 2006-06-09 2007-12-13 Wai Yim Videoconference System Clustering
US8054241B2 (en) * 2006-09-14 2011-11-08 Citrix Systems, Inc. Systems and methods for multiple display support in remote access software
US8531521B2 (en) * 2006-10-06 2013-09-10 Sightlogix, Inc. Methods and apparatus related to improved surveillance using a smart camera
CN101188569B (zh) * 2006-11-16 2011-05-04 饶大平 在网络上构建数据量子空间的方法及分布式文件存储系统
WO2008131520A1 (en) * 2007-04-25 2008-11-06 Miovision Technologies Incorporated Method and system for analyzing multimedia content
US20130276061A1 (en) * 2007-09-05 2013-10-17 Gopi Krishna Chebiyyam System, method, and computer program product for preventing access to data with respect to a data access attempt associated with a remote data sharing session
US8554865B2 (en) * 2007-09-21 2013-10-08 Honeywell International Inc. System and method for remotely administering and synchronizing a clustered group of access control panels
US9589250B2 (en) * 2008-01-11 2017-03-07 Oracle International Corporation System and method for asset registration workflows utilizing an eventing infrastructure in a metadata repository
US7840730B2 (en) * 2008-06-27 2010-11-23 Microsoft Corporation Cluster shared volumes
US9170953B2 (en) * 2008-09-18 2015-10-27 Avere Systems, Inc. System and method for storing data in clusters located remotely from each other
US8831090B2 (en) 2008-11-18 2014-09-09 Avigilon Corporation Method, system and apparatus for image capture, analysis and transmission
US20100161758A1 (en) * 2008-12-22 2010-06-24 Mostafa Tofigh Method and apparatus for enabling content sharing among endpoint devices
WO2010099575A1 (en) * 2009-03-04 2010-09-10 Honeywell International Inc. Systems and methods for managing video data
US20100312879A1 (en) * 2009-06-09 2010-12-09 International Business Machines Corporation Plug-in provisioning integration in a clustered environment
US8385321B2 (en) * 2009-07-31 2013-02-26 Alcatel Lucent Method and system for synchronizing a data base at a plurality of nodes in an ad hoc network
US20110103391A1 (en) * 2009-10-30 2011-05-05 Smooth-Stone, Inc. C/O Barry Evans System and method for high-performance, low-power data center interconnect fabric
EP2481217A4 (en) * 2009-09-26 2014-02-19 Disternet Technology Inc SYSTEM AND METHOD FOR MICROCLOUD COMPUTING
US9690818B2 (en) * 2009-12-01 2017-06-27 Sybase, Inc. On demand locking of retained resources in a distributed shared disk cluster environment
CN101729880B (zh) * 2009-12-14 2012-01-18 中国电信股份有限公司 基于sip的网络视频监控方法和系统
US20120079092A1 (en) * 2009-12-28 2012-03-29 Telefonaktiebolaget L M Ericsson (Publ) Management of data flows between user equipment nodes and clusters of networked resource nodes
US8458299B2 (en) * 2010-03-17 2013-06-04 Hitachi, Ltd. Metadata management method for NAS global namespace design
CN101873237B (zh) 2010-06-13 2012-02-22 用友软件股份有限公司 动态维护集群中的成员服务器的方法和系统
CN102035672B (zh) * 2010-11-26 2013-03-27 中国科学院声学研究所 一种基于层次化协作多主体系统的分布式网络测量方法
CN102025550A (zh) 2010-12-20 2011-04-20 中兴通讯股份有限公司 一种分布式集群中数据管理的系统和方法
US20120158894A1 (en) * 2010-12-21 2012-06-21 Desgagne Yves Video stream distribution
US10108630B2 (en) * 2011-04-07 2018-10-23 Microsoft Technology Licensing, Llc Cluster unique identifier
US10127077B2 (en) * 2011-04-26 2018-11-13 Oracle International Corporation Event distribution pattern for use with a distributed data grid
US20120314127A1 (en) * 2011-06-09 2012-12-13 Inayat Syed Provisioning network resources responsive to video requirements of user equipment nodes
US9251481B2 (en) * 2011-06-13 2016-02-02 Accenture Global Services Limited Distributed metering and monitoring system
US8751641B2 (en) * 2011-09-15 2014-06-10 International Business Machines Corporation Optimizing clustered network attached storage (NAS) usage
US20130113928A1 (en) * 2011-11-08 2013-05-09 Joseph Feldman Computerized System and Method for Monitoring a Door of a Facility from Afar
US20130132848A1 (en) * 2011-11-18 2013-05-23 Apple Inc. Application interaction via multiple user interfaces
US8675672B1 (en) * 2011-12-30 2014-03-18 Emc Corporation Hierarchical cluster tree overlay network
US9515869B2 (en) * 2012-01-18 2016-12-06 Dh2I Company Systems and methods for server cluster application virtualization
US9049349B2 (en) * 2012-05-16 2015-06-02 Cisco Technology, Inc. System and method for video recording and retention in a network
US20130307989A1 (en) * 2012-05-20 2013-11-21 Transportation Security Enterprises, Inc. (Tse) System and method for real-time data capture and packet transmission using a layer 2 wireless mesh network
US9338410B2 (en) * 2012-06-07 2016-05-10 Verizon Patent And Licensing Inc. Remote streaming
US9390055B2 (en) * 2012-07-17 2016-07-12 Coho Data, Inc. Systems, methods and devices for integrating end-host and network resources in distributed memory
US9681103B2 (en) * 2012-11-13 2017-06-13 International Business Machines Corporation Distributed control of a heterogeneous video surveillance network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999021098A2 (en) * 1997-10-21 1999-04-29 Sun Microsystems, Inc. Determining cluster membership in a distributed computer system
US5999712A (en) * 1997-10-21 1999-12-07 Sun Microsystems, Inc. Determining cluster membership in a distributed computer system
JP2001521222A (ja) * 1997-10-21 2001-11-06 サン・マイクロシステムズ・インコーポレーテッド 分散型コンピュータ・システムにおいてクラスタ・メンバーシップを決定する方法
JP2002041488A (ja) * 2000-05-31 2002-02-08 Internatl Business Mach Corp <Ibm> クラスタ化コンピューティング環境を管理するための方法、システム、およびプログラム製品
US20080104218A1 (en) * 2006-10-31 2008-05-01 Jin Liang Methods and Apparatus for Membership Management of Network Nodes
US20090327817A1 (en) * 2008-06-27 2009-12-31 Arun Kwangil Iyengar Coordinating Updates to Replicated Data

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210038457A (ko) * 2020-09-24 2021-04-07 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. Rpc 멤버 정보 획득 방법, 장치, 전자 기기 및 저장 매체
JP2021108139A (ja) * 2020-09-24 2021-07-29 北京百度網訊科技有限公司 Rpcメンバー情報取得方法、装置、電子機器、記憶媒体及びコンピュータプログラム製品
JP7083416B2 (ja) 2020-09-24 2022-06-10 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド Rpcメンバー情報取得方法、装置、電子機器、記憶媒体及びコンピュータプログラム製品
KR102522918B1 (ko) 2020-09-24 2023-04-18 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. Rpc 멤버 정보 획득 방법, 장치, 전자 기기 및 저장 매체

Also Published As

Publication number Publication date
RU2653294C2 (ru) 2018-05-07
CA2883662A1 (en) 2014-03-13
CA2883662C (en) 2020-12-15
US20140222892A1 (en) 2014-08-07
SA515360089B1 (ar) 2016-09-18
EP2893669B1 (en) 2019-11-06
SG11201501489UA (en) 2015-03-30
EP2893669A1 (en) 2015-07-15
US9602582B2 (en) 2017-03-21
MY181255A (en) 2020-12-21
JP6500289B2 (ja) 2019-04-17
EP2893669A4 (en) 2016-07-27
ZA201501340B (en) 2019-11-27
BR112015004429A2 (pt) 2017-07-04
HK1212118A1 (en) 2016-06-03
CN104813609A (zh) 2015-07-29
AU2013312982A1 (en) 2015-03-19
IN2015DN01665A (ja) 2015-07-03
CN110598444A (zh) 2019-12-20
BR112015004429B1 (pt) 2022-10-11
WO2014036656A1 (en) 2014-03-13
AU2013312982B2 (en) 2017-11-16
NZ705517A (en) 2017-10-27
RU2015106840A (ru) 2016-10-27
US10454997B2 (en) 2019-10-22
KR20150058280A (ko) 2015-05-28
MX352801B (es) 2017-12-08
IL237439B (en) 2020-02-27
IL237439A0 (en) 2015-04-30
KR102108595B1 (ko) 2020-05-08
MX2015002735A (es) 2015-09-23
US20140074987A1 (en) 2014-03-13
CN110598444B (zh) 2023-07-07

Similar Documents

Publication Publication Date Title
JP6500289B2 (ja) 複数のサーバノードを有する物理的セキュリティシステム
US10547693B2 (en) Security device capability discovery and device selection
US10474449B2 (en) Upgrading a physical security system having multiple server nodes
US9979791B2 (en) Physical security system having multiple server nodes configured to implement a conditionally triggered rule
Oktian et al. Distributed SDN controller system: A survey on design choice
CA2964485C (en) Distributed security system over multiple sites
US11190578B2 (en) Integrated cloud system with lightweight gateway for premises automation
JP4421817B2 (ja) 向上されたコラボレーション、スケーラビリティ、およびリライアビリティを提供するために接続され得るネットワーク装置のセットのための方法およびシステム
RU2518194C2 (ru) Система видеонаблюдения с распределенными узлами и способ управления такой системой
CN102984501A (zh) 一种网络视频录像集群系统
TW201026061A (en) Real-time image monitoring and recording system and method
US11729255B2 (en) Integrated cloud system with lightweight gateway for premises automation
CN110462600A (zh) 用于联网媒体分发的系统、方法和设备
CN112751907A (zh) 信息处理方法、装置和存储介质及电子装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160905

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171023

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180123

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190227

R150 Certificate of patent or registration of utility model

Ref document number: 6500289

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250