TWI704788B - 經組態以實施一有條件觸發規則的具有多伺服器節點之實體安全系統 - Google Patents
經組態以實施一有條件觸發規則的具有多伺服器節點之實體安全系統 Download PDFInfo
- Publication number
- TWI704788B TWI704788B TW105130245A TW105130245A TWI704788B TW I704788 B TWI704788 B TW I704788B TW 105130245 A TW105130245 A TW 105130245A TW 105130245 A TW105130245 A TW 105130245A TW I704788 B TWI704788 B TW I704788B
- Authority
- TW
- Taiwan
- Prior art keywords
- node
- server
- condition
- cluster
- nodes
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- G—PHYSICS
- G08—SIGNALLING
- G08B—SIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
- G08B13/00—Burglar, theft or intruder alarms
- G08B13/18—Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength
- G08B13/189—Actuation 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/194—Actuation 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/196—Actuation 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/19654—Details concerning communication with a camera
- G08B13/19656—Network used to communicate with a camera, e.g. WAN, LAN, Internet
-
- G—PHYSICS
- G08—SIGNALLING
- G08B—SIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
- G08B13/00—Burglar, theft or intruder alarms
- G08B13/22—Electrical actuation
- G08B13/24—Electrical actuation by interference with electromagnetic field distribution
- G08B13/2491—Intrusion detection systems, i.e. where the body of an intruder causes the interference with the electromagnetic field
-
- G—PHYSICS
- G08—SIGNALLING
- G08B—SIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
- G08B13/00—Burglar, theft or intruder alarms
- G08B13/18—Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength
- G08B13/189—Actuation 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/194—Actuation 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/196—Actuation 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/19678—User interface
- G08B13/19684—Portable terminal, e.g. mobile phone, used for viewing video remotely
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
一種具有多伺服器節點之實體安全系統可建置為一分散式網路。該系統之一第一節點偵測一觸發,且該系統之一第二節點偵測一輸入信號,該輸入信號影響在回應於該觸發而執行由規則規定之一動作之前先要被滿足之一條件。一條件評估節點收集准許評估該條件之資訊,且在該條件被滿足時,該系統執行該動作。該第一節點、該第二節點及該條件評估節點包含一叢集系統之一部分,且該條件評估節點及該第二節點可係相同的。
Description
本發明係關於一種具有多伺服器節點且經組態以實施一有條件觸發規則之實體安全系統以及相關方法與技術。
一實體安全系統係實施用以防止未授權人獲得對一資產(諸如一建築物、一設施或機密資訊)之實體接近之措施之一系統。實體安全系統之實例包含:監控系統,諸如其中使用攝影機來監視資產及接近資產者之一系統;門禁系統,諸如使用RFID卡來控制通向一建築物之入口之一系統;侵入偵測系統,諸如一家庭防盜警報系統;及前述系統之組合。
一實體安全系統通常併入於電腦。當此類型之實體安全系統變大時,操作該系統所需之計算能力增加。舉例而言,當一監控系統中之攝影機之數目增加時,計算能力之必需量亦增加以允許儲存額外視訊及允許較高數目個攝影機之同時使用與管理。相應之研究與開發致力於克服在一實體安全系統擴展時所遇到之問題。
根據一第一態樣,提供一種用於在具有多伺服器節點之一實體安全系統上實施一有條件觸發規則之方法。該方法包括:在該等伺服器節點中之一者(「第一節點」)處偵測對該規則之一觸發;在該等伺服器節點中之另一者(「第二節點」)處偵測一輸入信號,該輸入信號影響在回應於該觸發而執行由該規則規定之一動作之前先要被滿足之一條件;在該等伺服器節點中之一單個節點(「條件評估節點」)處收集來自該第一節點之觸發資訊及來自該第二節點之條件資訊,從而准許該條件評估節點評估該條件是否被滿足;在該條件評估節點處評估該條件是否被滿足;及在該條件被滿足時執行該動作。該第一節點、該第二節點及該條件評估節點中之每一者包含一伺服器叢集之至少一部分且各自由一節點識別符識別。該第一節點、該第二節點及該條件評估節點中之每一者之該節點識別符包含識別該伺服器叢集中之所有伺服器且可由該伺服器叢集中之所有伺服器存取之叢集成員資格資訊之至少一部分。
根據另一態樣,提供一種用於在具有多伺服器節點之一實體安全系統上實施一有條件觸發規則之方法。該方法包括:在一第一節點處偵測對該規則之一觸發;在一第二節點處偵測一輸入信號,該輸入信號影響在回應於該觸發而執行由該規則規定之一動作之前先要被滿足之一條件;將用以評估該條件是否被滿足之一請求自該第一節點發送至一條件評估節點;在該條件評估節點處評估該條件是否被滿足;在該條件被滿足時將指示該條件被滿足之一回應自該條件評估節點發送至該第一節點,及在該條件被滿足時在該第一節點處執行該動作。該第一節點、該第二節點及該條件評估節點中之每一者包含一伺服器叢集之至少一部分且各自由一節點識別符識別。該第一節點、該第二節點及該條件評估節點中之每一者之該節點識別
符包含識別該伺服器叢集中之所有伺服器且可由該伺服器叢集中之所有伺服器存取之叢集成員資格資訊之至少一部分。
根據另一態樣,提供一種實體安全系統,該實體安全系統包括一第一節點及一第二節點。該第一節點經組態以:偵測對一有條件觸發規則之一觸發;將用以評估在回應於該觸發而執行由該規則規定之一動作之前先要被滿足之一條件之一請求發送至該第二節點;及在已發生該觸發且該第一節點已自該第二節點接收到對該請求之該條件被滿足之一回應時,執行該動作。該第二節點經組態以:偵測一數位輸入,該數位輸入影響在回應於該觸發而執行由該規則規定之一動作之前先要被滿足之一條件;回應於來自該第一節點之該請求而評估該條件是否被滿足;及在該條件被滿足時將該回應發送至該第一節點。該第一節點及該第二節點中之每一者包含一伺服器叢集之至少一部分且各自由一節點識別符識別。該第一節點及該第二節點中之每一者之該節點識別符包含識別該伺服器叢集中之所有伺服器且可由該伺服器叢集中之所有伺服器存取之叢集成員資格資訊之至少一部分。
根據另一態樣,提供一種用於在具有多伺服器節點之一實體安全系統上實施一有條件觸發規則之方法。該方法包括:在一第一節點處偵測對該規則之一觸發;在一第二節點處偵測一輸入信號,該輸入信號影響在回應於該觸發而執行由該規則規定之一動作之前先要被滿足之一條件;將用以評估該規則之一請求自該第一節點發送至該等伺服器節點中之一單個節點(「規則評估節點」);將用以評估該條件是否被滿足之一請求自該規則評估節點發送至並非該規則評估節點之一條件評估節點;在該條件評估節點處評估該條件是否被滿足;在該條件被滿足時將指示該條件被滿足之一回
應自該條件評估節點發送至該規則評估節點;及在該條件被滿足時執行該動作。該第一節點、該第二節點及該條件評估節點中之每一者包含一伺服器叢集之至少一部分且各自由一節點識別符識別。該第一節點、該第二節點及該條件評估節點中之每一者之該節點識別符包含識別該伺服器叢集中之所有伺服器且可由該伺服器叢集中之所有伺服器存取之叢集成員資格資訊之至少一部分。該規則評估節點可執行該動作。另外或另一選擇為,該規則評估節點可將用以執行該動作之全部或部分之一訊息發送至該叢集中之該等伺服器中之另一者。
該叢集成員資格資訊可持久地儲存於該第一節點、該第二節點及該條件評估節點中之每一者上。
該條件評估節點可將關於該條件是否被滿足之一訊息發送至該第一節點,且在該條件被滿足時,該第一節點可執行該動作。
該第二節點可係該條件評估節點。
一裝置可通信地耦合至該第二節點,且該第二節點可自該裝置接收表示該裝置之一狀態之一二進制數位輸入。評估該條件是否被滿足可包括評估該數位輸入在一特定時間係接通還是關斷。
額外裝置可通信地耦合至該第二節點,且該第二節點可自該等額外裝置中之每一者接收一二進制數位輸入,該二進制數位輸入表示該數位輸入所源自之該額外裝置之一狀態。評估該條件是否被滿足可包括評估該等數位輸入中之至少兩者在一特定時間係接通還是關斷。
該特定時間可為在該第一節點處偵測到該觸發時。
可將一伺服器間通信之一單個例項自該第一節點發送至該第二節點,該通信包括使該第二節點評估該條件之一請求。
在第二節點處收集該觸發資訊及該條件資訊可包含發送該伺服器間通信之一部分。
該請求可包括該輸入信號為高還是低之一指示、一時間戳記以及產生該輸入信號之裝置之一識別符。
該伺服器間通信可包括自該第一節點至該第二節點的用於使該第二節點評估該條件之額外請求。
該伺服器間通信可包括一單個遠端程序呼叫。
該伺服器間通信可包括在一時間週期內由該第一節點對該第二節點產生之所有請求。
可判定第二伺服器正自該等伺服器節點接收到多少個伺服器間通信,每一伺服器間通信包括使該第二伺服器評估一條件之一請求;及在該第二伺服器正接收超過最大准許數目個伺服器間通信時,該第二伺服器可拒絕履行超過該最大准許數目的該等伺服器間通信中之每一者之請求。
該條件評估節點可係不同於該第一節點及該第二節點之一主控伺服器。
根據另一態樣,提供一種經組態以實施方法之前述態樣中之任一者及其適合組合之實體安全系統。
根據另一態樣,提供一種非暫時性電腦可讀媒體,其上編碼有在執行時致使一處理器執行方法之前述態樣中之任一者及其適合組合之電腦程式碼。
此概述未必闡述所有態樣之整個範疇。熟習此項技術者在審閱特定實施例之以下說明後旋即將明瞭其他態樣、特徵及優點。
100:系統/監控系統
102a:用戶端/第一用戶端
102b:用戶端/第二用戶端
102c:用戶端/第三用戶端
104a:伺服器/第一伺服器
104b:伺服器/第二伺服器/第二節點
104c:伺服器/第三伺服器
104d:伺服器/第四伺服器
104e:伺服器/第五伺服器
104f:伺服器/第六伺服器
106a:伺服器節點攝影機/第一節點攝影機/第一攝影機
106b:伺服器節點攝影機/第二節點攝影機
106c:伺服器節點攝影機/第三節點攝影機
108a:叢集/第一叢集
108b:叢集/第二叢集
108c:叢集/第三叢集
110:處理器
112:記憶體
114:非節點攝影機/攝影機
200:協定套組/協定堆疊
202:UDP/UDP協定/協定
204:TCP/HTTP協定
206:發現協定
208:Gossip協定
210:節點協定
212:成員資格協定
214:同步協定
216:一致性協定
218:狀態協定/協定
222:有條件規則觸發應用程式/應用程式
224:共用事件與警報應用程式/應用程式
226:共用設定應用程式/應用程式
300:UML序列圖/圖式
302a:第一使用者/使用者
302b:第二使用者
304:訊息
306:訊息
308:訊息
310:訊息
312:訊息
314:訊息
316:訊息
318:訊息
320:訊息
322:訊息
324:訊息
326:訊息
328:訊息
330:訊息
332a:訊框/第一訊框
332b:訊框/第二訊框
400:UML序列圖/圖式
402:訊框
404:訊框
406:訊息
408:訊框
410:訊息
412:訊息
414:訊息
416:訊息
418:訊框
420:訊息
422:訊框
424:訊框
426:訊息
428:訊息
430:訊框
432:訊息
434:訊框
436:訊息
438:訊息
500:UML序列圖/圖式
501:裝置
502:目錄服務
504a:第一規則服務/規則服務
504b:第二規則服務/規則服務
506:訊息
508:訊息
510:訊息
512:訊框
514:訊息
516:訊框
518:訊框
520:訊息
522:訊框
524:訊息
600:實例視圖/視圖
602a:視訊面板
602b:視訊面板
602c:視訊面板
604:警示
606:應答按鈕
在圖解說明一或多項實例性實施例之附圖:圖1係根據一項實施例之具有多伺服器節點且經組態以實施一有條件觸發規則之一實例性實體安全系統之一方塊圖。
圖2係由圖1之系統使用之一協定套組之一方塊圖。
圖3係展示圖1之系統如何在不同系統使用者之間共用設定之一UML序列圖。
圖4係展示圖1之系統如何在不同系統使用者之間共用一狀態之一UML序列圖。
圖5係展示如何在圖1之系統之不同伺服器之間共用條件資訊之一UML序列圖。
圖6係圖1之系統之一使用者可見之一實例視圖。
圖7係繪示根據另一實施例之用於在具有多伺服器節點之一實體安全系統上實施一有條件觸發規則之一實例性方法之一流程圖。
本申請案主張於2015年9月18日提出申請之美國臨時專利申請案第62/220,834號之權益,該美國臨時專利申請案特此以其全文引用方式併入。
下文連同圖解說明一或多項實施例及態樣之原理之附圖一起提供對該等實施例及態樣之一詳細說明。範疇僅由申請專利範圍限制且涵蓋眾多替代形式、修改形式及等效形式。在以下說明中陳述眾多特定細節以提供對本發明之一透徹理解。此等細節係出於實例目的而提供,且可在無此等特定細節中之某些或所有細節之情況下根據申請專利範圍實踐本文中所闡述之系統及方法。出於清晰之目的,未詳細闡述與本發明相關之技術領域
中習知之技術材料,使得不會不必要地模糊本發明。
諸如「頂部」、「底部」、「向上」、「向下」、「垂直」及「橫向」等方向性術語在以下說明中僅用於提供相對參考之目的,且並非意欲表明對任何物品在使用期間將如何定位或者如何安裝於一總成中或相對於一環境如何安裝之任何限制。另外,如本說明中所使用之術語「耦合(couple)」及其變體(諸如「耦合(coupled)」、「耦合(couples)」及「耦合(coupling)」)意欲包含間接連接及直接連接,除非另有指示。舉例而言,若一第一裝置耦合至一第二裝置,則彼耦合可係透過一直接連接而做出或者經由其他裝置及連接透過一間接連接而做出。類似地,若第一裝置通信地耦合至第二裝置,則通信可係透過一直接連接而做出或者經由其他裝置及連接透過一間接連接而做出。
術語「一態樣」、「一實施例」、「實施例」、「多項實施例」、「該實施例」、「該等實施例」、「一或多項實施例」、「某些實施例」、「特定實施例」、「一項實施例」、「另一實施例」及相似術語意指「系統及方法之一或多項(但並非全部)實施例」,除非另有明確規定。在闡述一實施例中對「另一實施例」或「另一態樣」之一提及並非暗指所提及實施例與另一實施例(例如,在所提及實施例之前所闡述之一實施例)相互排斥,除非另有明確規定。
術語「包含」、「包括」及其變化形式意指「包含但不限於」,除非另有明確規定。
術語「一(a)」、「一(an)」及「該(the)」意指「一或多個」,除非另有明確規定。
術語「複數個」或「多個」意指「兩個或兩個以上」,除非另有明確
規定。術語「本文中」意指「在包含可以引用方式併入之任何事物之本申請案中」,除非另有明確規定。
術語「例如」及相似術語意指「舉例而言」,且因此並不限制其闡釋之術語或片語。
術語「各別」及相似術語意指「個別地採取的」。因此,若兩個或兩個以上事物具有「各別」特性,則每一此事物具有其自身特性,且此等特性可係彼此不同的,但未必係如此。舉例而言,片語「兩個機器中之每一者具有一各別功能」意指第一此機器具有一功能且第二此機器亦具有一功能。第一機器之功能可或可不與第二機器之功能相同。
在兩個或兩個以上術語或片語同義(例如,由於術語或片語同義之一明確表述)之情況下,一個此術語/片語之例項並不意指另一此術語/片語之例項必須具有一不同意義。舉例而言,在一表述表示「包含」之意義與「包含但不限於」同義之情況下,片語「包含但不限於」之此一使用並非意指術語「包含」意指除「包含但不限於」之外的事物。
無論標題(在本申請案之第一頁之開始處所陳述)還是摘要(在本申請案之結尾處所陳述)皆不應視為以任何方式限制所揭示發明之範疇。本申請案中已包含一摘要,此僅乃因37 C.F.R.Section 1.72(b)或其他轄區中之類似法律要求不超過150字之一摘要。本申請案之標題及本申請案中所提供之章節標頭僅係為方便起見,且不應視為以任何方式限制本發明。
本申請案中闡述眾多實施例,且該等實施例僅出於說明性目的而呈現。所闡述實施例並非且並非意欲在任何意義上為限制性的。目前所揭示態樣廣泛適用於眾多實施例,如自本發明易於明瞭。熟習此項技術者將認識到,所揭示態樣可利用各種修改形式及更改形式(諸如結構及邏輯修改形
式)來實踐。儘管可參考一或多項特定實施例及/或圖式闡述所揭示態樣之特定特徵,但應理解,此等特徵不限於在參考其闡述此等特徵之一或多項特定實施例或圖式中使用,除非另有明確規定。
本申請案中所闡述之方法步驟或系統元件之實施例皆並非必需的或共存的,除非在本說明書中明確表述或在一請求項中明確敘述為如此。
一旦一監控系統擴展為包含特定數目個攝影機,由於儲存容量與處理能力限制,因此使用一單個伺服器來操作監控系統便變為不實際的或不可能的。因此,為適應增加之數目個攝影機,給系統添加額外伺服器。此產生若干問題。
舉例而言,只要滿足系統中某處之一條件,伺服器中之一或多者便可經組態以在一規則之評估之後執行一動作,其中該評估係回應於偵測到在系統中某處發生之一觸發而進行。如本文中所使用,一「觸發」係指由伺服器中之一或多者偵測到的在伺服器中之一或多者處發生之一事件;一「條件」係指通信地耦合至伺服器中之一或多者之一或多個裝置(諸如一攝影機或一視訊編碼器(一或多個攝影機可通信地耦合至視訊編碼器))之一狀態;且與一特定觸發或條件相關聯之一「規則」係指在滿足彼條件時回應於發生彼觸發而由伺服器中之一或多者執行之一方法,其中規則之執行產生一或多個動作之執行。
針對一實例性監控系統之實例性觸發包括:系統中之一伺服器已與為一數位輸入之來源之一裝置失去聯繫;伺服器已恢復與為一數位輸入之來源之一裝置之聯繫;一容錯移轉已開始;一容錯移轉已停止;一裝置之一升級已開始;一裝置之一升級已失敗;一裝置之一升級已成功地完成;一裝置(諸如一攝影機)已偵測到運動之開始;一裝置(諸如一攝影機)已偵測到
運動之結束;一裝置(諸如一攝影機)已開始記錄;一裝置(諸如一攝影機)已中斷其記錄;一裝置(諸如一攝影機)已重新開始其記錄;已啟動來自一裝置之一數位輸入;已將來自一裝置之一數位輸入去啟動;一使用權已期滿;一使用權判定為即將期滿;一伺服器已正常地停工;一伺服器已異常地停工;一伺服器已開始;一資料庫已恢復;已發生一電子郵件錯誤;已發生一硬體錯誤;一裝置或伺服器具有低資源;已移除一網路;已添加一網路;一備份已開始;一備份已結束;一備份已失敗;一儲存形式(諸如一備份驅動)已傳回一初始化錯誤,一儲存形式之磁碟空間不足;在寫入至儲存裝置時已發生一錯誤;對儲存裝置之一升級已開始;對儲存裝置之一升級已成功地完成;對儲存裝置之一升級已失敗;儲存裝置之一恢復已開始;儲存裝置之一恢復已成功地完成;儲存裝置之一恢復已失敗;一儲存磁碟區已故障;一儲存磁碟區已復原;保存一儲存書籤之一嘗試已失敗;一裝置之一外部外掛程式已發送一信號;封包已丟失;封包已恢復;記錄已開始;記錄已結束;已識別且匹配一牌照;一牌照在一攝影機之視域可見處;一牌照已離開攝影機之視域;已觸發一警報;已應答一警報;已拒絕一警報應答;已同意一警報應答;已自動應答一警報;已指派一警報;已清除一警報;尚未指派一警報;一文字異動/銷售點異動已開始;一文字異動/銷售點異動已結束;已匹配一文字異動/銷售點列管項目;一使用者已登入;一使用者已退出;已連接一裝置;已斷開一裝置;已啟動一旋轉式網路(「PTZ」)攝影機;一PTZ攝影機閒置;一使用者已改變一伺服器設定;一使用者已改變一站點/叢集設定;一使用者已改變一裝置設定;一使用者已添加一書籤;一使用者已更新一書籤;一使用者已刪除一書籤;已導出使用者資料;一使用者已連接一裝置;一使用者已斷開一裝置;一使用者
已觸發一數位輸出;一使用者已啟動一揚聲器;一使用者已將一揚聲器去啟動;一使用者已打開在一監視器上同時顯示視訊之多個視訊播放;一使用者已建立一地圖;一使用者已修改一地圖;一使用者已刪除一地圖;一使用者已建立一網頁連結;一使用者已修改一網頁連結;一使用者已刪除一網頁連結;一使用者已建立一所保存視圖;一使用者已修改一所保存視圖;一使用者已刪除一所保存視圖;一使用者已修改一站點視圖;已失去與一伺服器之一連接;已觸發一使用者巨集;已開始分析;分析已結束;及已偵測到竄改。
實例性條件包括:一裝置當前是否正經歷一容錯移轉;一裝置當前是否正偵測運動;一裝置是否因一中斷而並未進行記錄;在已自一記錄中斷重新開始之後,一裝置是否再次進行記錄;是否啟動一數位輸入;是否正發生一備份;是否正發生一儲存裝置升級;是否正發生儲存裝置恢復;一裝置是否正進行記錄(無論彼記錄是否已中斷);是否正發生一文字異動/銷售點異動;是否啟動一揚聲器;及當前是否正執行分析。
在某些實施例中,一裝置之一條件與由彼裝置發送之觸發有關。舉例而言,若一裝置為一攝影機,則無論該攝影機當前是否正記錄彼攝影機之一條件或狀態(其中條件之改變藉由數位信號自高至低或自低至高之轉變而識別),該攝影機皆發射在視訊記錄開始時自低轉變為高且在視訊記錄結束時自高轉變為低之一二進制數位信號。
實例性動作包括:重新開始一服務;發送一電子郵件;開始使用一裝置來記錄;將一訊息發送至一使用者;打開一即時視訊串流;重新啟動一裝置;將一PTZ攝影機移動至一預設定位置;使用一PTZ攝影機實施一運行模式;觸發一警報;應答一警報;播放一聲音;觸發一數位輸出;建立
一書籤;打開一視圖;打開一即時視訊串流;打開一地圖;打開一網站;及向系統100外部發送一通知。
在具有多伺服器節點且實施有條件規則之一監控系統之一項實例中,在其處發生觸發或偵測到觸發之伺服器負責評估規則且執行由該規則規定之任何動作,且因此可需要存取連接至伺服器中之另一者之一裝置之條件。在本文中所闡述之某些實例性實施例中,伺服器在其之間在一同級間基礎上共用觸發及條件資訊中之一者或兩者,使得其責任為評估規則且執行任何動作之伺服器具有準確地判定如何評估規則及是否執行動作所需之觸發及條件資訊。在某些實例性實施例中,偵測觸發之伺服器亦係評估規則且執行動作之伺服器,且因此彼伺服器自一或多個其他伺服器接收條件資訊。在某些其他實例性實施例中,具有某些或全部條件資訊之伺服器自其他伺服器中之一或多者接收觸發資訊。在仍其他實例性實施例中,評估規則且執行動作之伺服器不同於偵測觸發之一或多個伺服器及具有條件資訊之一或多個伺服器,且因此自彼等一或多個其他伺服器接收觸發及條件資訊。
無論如何,以下實施例揭示其中觸發及條件資訊中之一者或兩者可以一同級間方式在系統之伺服器節點之間共用之一實體監控系統,且亦揭示相關方法與技術。在此系統中,使用者經由用戶端連接至伺服器節點,諸如網路視訊記錄器、攝影機及伺服器。伺服器節點一起分群為多個叢集,其中叢集中之每一伺服器節點能夠與叢集中之其他伺服器節點共用資料,諸如規則、觸發資訊及條件資訊。為共用此資料,伺服器節點中之每一者運行基於一協定套組而交換資料之服務,該協定套組取決於被共用之資料之本質而在伺服器節點之間以不同方式共用資料。圖1至圖7繪示此等實施
例。
現在參考圖1,展示根據一項實施例之呈一監控系統100之形式之一分散式實體安全系統。系統100包含三個用戶端102a至102c(第一用戶端102a至第三用戶端102c,且統稱為「用戶端102」)、六個伺服器104a至104f(第一伺服器104a至第六伺服器104f,且統稱為「伺服器104」)、三個伺服器節點攝影機106a至106c(第一節點攝影機106a至第三節點攝影機106c,且統稱為「節點攝影機106」)及五個非節點攝影機114。
節點攝影機106及伺服器104中之每一者包含彼此通信地耦合之一處理器110及一記憶體112,其中記憶體112上編碼有在處理器110執行彼碼時用以致使處理器110執行本文中所闡述之方法之任何實施例之電腦程式碼。伺服器104及節點攝影機106分群為三個叢集108a至108c(統稱為「叢集108」):第一伺服器104a至第三伺服器104c彼此通信地耦合以形成一第一叢集108a;第四伺服器104d至第六伺服器104f彼此通信地耦合以形成一第二叢集108b;且三個節點攝影機106彼此通信地耦合以形成一第三叢集108c。第一伺服器104a至第三伺服器104c稱為第一叢集108a之「成員」;第四伺服器104d至第六伺服器104f稱為第二叢集108b之「成員」;且第一節點攝影機106a至第三節點攝影機106c稱為第三叢集108c之「成員」。
伺服器104及節點攝影機106中之每一者為一「伺服器節點」,此乃因伺服器104及節點攝影機106中之每一者知曉其叢集108之其他成員之存在且可將資料發送至其叢集108之其他成員;相比而言,非節點攝影機114並非係伺服器節點,此乃因非節點攝影機114僅知曉其直接連接至之伺服器104a、104b、104c、104d、104f。在所繪示實施例中,伺服器節點憑藉存取列出叢集108中之所有伺服器節點之叢集成員資格資訊而知曉叢集108
之所有其他成員。叢集成員資格資訊持久地且在本端儲存於伺服器節點中之每一者上,此允許伺服器節點中之每一者在其於系統100之操作期間重新啟動之情況下自動重新加入其叢集108。下文中對一「節點」之一提及為對一「伺服器節點」之一提及,除非另有指示。
雖然在所繪示實施例中,叢集108中沒有一者參與叢集間通信,但在替代實施例(未展示)中,各種叢集108之成員可彼此共用資料。在所繪示實施例中,伺服器104係商用現貨伺服器,且攝影機106、114係由加拿大溫哥華市之AvigilonTM公司製造;然而,在替代實施例中,可使用其他適合類型之伺服器108及攝影機106、114。
第一用戶端102a憑藉通信地耦合至為第一叢集108a及第二叢集108b之成員之第一伺服器104a及第四伺服器104d而通信地耦合至彼等叢集108a、108b;第二用戶端102b憑藉通信地耦合至為全部三個叢集108之成員之第二伺服器104b及第四伺服器104d以及第一節點攝影機106a而通信地耦合至叢集108;且第三用戶端102c憑藉通信地耦合至為第二叢集108b及第三叢集108c之成員之第五伺服器104e及第二節點攝影機106b而通信地耦合至彼等叢集108b、108c。如下文較詳細論述,在叢集108a至108c中之任何給定一者中,節點中之每一者運行允許節點根據一協定套組200(圖2中所展示)彼此通信之服務,協定套組200允許任何一個節點共用資料,無論彼資料係使用分散式計算(亦即,在不使用一集中式伺服器之情況下)至任何其他節點之視圖、視訊、系統事件、使用者狀態、使用者設定還是另一類型之資料。節點中之每一者有權存取識別形成相同叢集108之一部分之所有節點之叢集成員資格資訊;藉由存取此叢集成員資格資訊,在一叢集108之所有節點之間可共用且同步資料。
協定套組200中之協定中之每一者之功能與操作之一說明如下。
輸送層對應於開放系統互連(OSI)模型之層4且負責為叢集支援、資料同步及應用程式層提供節點之間的可靠資料傳送服務。系統100中之輸送層包含UDP 202及TCP/HTTP 204協定。
叢集支援層包含用於發現節點、驗證節點存在、檢查節點活躍度、判定一節點是否為叢集108中之一者之一成員及判定如何在節點之間路由資料之協定。
發現協定206係基於由結構化資訊標準促進組織(OASIS)發佈之WS-發現協定之版本1.1,該協定版本之整體特此以引用方式併入本文中。在所繪示實施例中,所發佈標準中所使用之XML格式化被GoogleTM Protobuf編碼替換。
發現協定206藉由將探查(Probe)訊息多播至彼等其他節點且等待彼等其他節點作出回應而允許系統100中之任一節點識別系統100中之其他節點。另一選擇為,一節點可在加入系統100時廣播一招呼(Hello)訊息以警示其他節點其之存在而不需要彼等其他節點首先多播探查訊息。探查及招呼訊息兩者在由OASIS發佈之WS-發現協定上為模型化的。
Gossip協定208係藉由在叢集108之數對節點之間隨機執行資料交換而將資料自節點中之一者散播至彼叢集108之所有節點之一傳播性協定。Gossip協定208藉由以針對每一節點之一活動訊號計數之形式交換「活動訊號(heartbeat)狀態」資料而傳遞活躍度,此允許節點判定叢集108中之節點中之一者何時已意外離開(例如:由一伺服器當機所致)。Gossip協定208亦傳遞「應用程式狀態」資料(諸如由一致性協定216使用之頂層雜湊以及由狀態協定218使用之狀態實體識別符及其版本號)以判定何時在節點之間同步資料,如下文較詳細論述。使用Gossip協定208而散佈之資料經由週期性節點間交換而最終散佈至叢集108中之所有節點。
使用Gossip協定208進行的叢集108之任何兩個節點之間的一資料交換涉及執行自相同叢集108中之一第一節點(「節點A」)至一第二節點(「節點B」)之兩次遠端程序呼叫(RPC),如下:
1.節點A將含有針對節點A知曉的叢集108中之所有節點之一摘要清單之一GreetingReq訊息發送至節點B。針對每一節點,一摘要包含每當針對彼節點之活動訊號狀態或應用程式狀態改變時遞增之一獨特節點識別符及版本資訊。舉例而言,版本資訊可係一個一維版本號或一個多維版本向量。使用一版本向量允許摘要概括該節點已經歷之狀態改變之歷史。
2.節點B將含有以下內容之一GreetingRsp訊息發送至節點A:(a)針對節點B希望自節點A接收較多其資訊之節點之一摘要清單,節點B依據在GreetingReq訊息中發送至其之版本資訊來判定該等節點;(b)針對節點A不知道其形成叢集108之一部分之節點之一摘要清單;(c)將使節點A得到關於節點A具有其過時資訊之節點之最新資訊之活動訊號狀態及應用程式狀態中之一者或兩者之一清單;及(d)節點A認為形成叢集108之一部分但節點B知道已自叢集108移除之一節點清單。
3.然後,節點A將一ClosureReq訊息發送至節點B,其中節點A發送:(a)針對節點A希望自節點B接收較多其資訊(例如,節點A可請求關於節點A不知曉之節點之資訊直至節點B向節點A發送GreetingRsp訊息為止)之節點之一摘要清單;(b)將使節點B得到關於節點B具有其過時資訊之節點之最新資訊之一狀態清單;及(c)節點B認為形成叢集108之一部分但節點A知道已自叢集108移除之一節點清單。
4.然後,節點B將一ClosureRsp訊息發送至節點A,其中節點B發送:(a)回應於ClosureReq中之節點A之請求將使節點A得到關於節點A具有過時資訊之節點之最新資訊之一狀態清單;及(b)自GreetingRsp以來已自叢集108移除之一節點清單。
在節點A與節點B交換RPC之後,節點A及節點B將具有相同作用節點
清單,該等作用節點清單包含針對在RPC之前已知的及尚未自叢集108移除的叢集108中之所有節點之活動訊號狀態及應用程式狀態之最新版本。
節點協定210負責產生針對每一節點之系統100之網路拓撲之一視圖,該視圖為每一節點提供准許其與系統100中之任何其他節點通信之一網路地圖。在某些實施例中,網路地圖係一路由表。網路地圖參考通信端點,該等通信端點為一位址(IP/FQDN)、埠號及在連接節點之IP網路上藉由其可到達一節點之協定。
節點協定210以三種方式進行此:1.經由一「Poke交換」,如下文進一步詳細闡述;2.經由發現協定206,其在一節點加入或離開系統100時通知節點協定210。當一節點加入系統100時,利用彼節點執行一「Poke交換」;及3.回應於使用者輸入,手動地。
一Poke交換涉及出於產生針對節點之網路地圖之目的而週期性地執行以下RPC:1.一Poke請求,其中節點A向節點B發送一節點A自視圖及節點A已知(如節點A所看到)之其他節點之一清單,此後,節點B鑒於此資訊而更新其網路地圖;及2.一Poke回應,其中節點B向節點A發送一節點B自視圖及節點B已知(如節點B所看到)之其他節點之一清單,此後,節點A鑒於此資訊而更新其網路地圖。
經由TCP/HTTP協定204而執行RPC。
為減小頻寬使用,若節點資訊自其最後一次交換以來已改變,則僅在
節點A與B之間交換節點資訊。
在發現協定206通知節點協定210一節點已加入系統100之後,執行一Poke交換,此乃因發現協定206通告一節點之通信端點,但並不保證使用彼等通信端點可到達該節點。舉例而言,端點可因一防火牆而不可用。在使用發現協定206所識別之一節點上執行一Poke交換確認通信端點實際上是否可用。
節點協定210亦可確認一所通告UDP通信端點是否可到達;然而,在所繪示實施例中,節點協定210並不經由UDP協定202執行一Poke交換。
對於一叢集108中之任何給定節點,一網路地圖使節點識別符與相同叢集108中之節點中之每一者之通信端點相關。因此,與節點協定210通信的協定堆疊200中之其他協定可僅藉由使用彼節點之節點識別符而將訊息遞送至叢集108中之任何其他節點。
成員資格協定212負責確保一叢集108之每一節點維持針對叢集108之所有節點之叢集成員資格資訊,且經由RPC而允許節點加入及離開叢集108。使用狀態協定218在叢集108之節點之間共用叢集成員資格資訊。叢集108中之每一節點維持叢集成員資格資訊之其自身版本且自狀態協定218獲知由叢集108中之其他節點保持之叢集成員資格資訊。如下文進一步詳細論述,由兩個不同節點保持之叢集成員資格資訊之版本可不匹配,此乃因一個節點上所儲存且近期已更新之叢集成員資格資訊之版本可尚未與叢集108之其他成員同步。
針對每一節點,叢集成員資格資訊包含:
1.叢集108之所有節點之一成員資格清單,其中節點中之每一者由以
下各項表示:(a)節點識別符,其在系統100中之所有節點當中係獨特的;(b)節點之狀態,其係以下各項中之任一者:(i)發現:節點係叢集108之一成員,但自啟動以來尚未與叢集108之其他成員同步;(ii)加入:節點處於加入一叢集108之過程中;(iii)同步:節點處於使用同步協定214、一致性協定216及狀態協定218與其剛加入之叢集108同步資料之過程中;(iv)有效:節點已完成同步叢集成員資格資訊且係叢集108之一有效節點;及(v)逾時:節點已變得無反應且不再係叢集108之一作用成員(節點在由一使用者移除之前保持為叢集108之一成員);(c)一工作階段權杖;(d)在節點加入叢集108時叢集成員資格資訊之版本號;及(e)叢集成員資格資訊最後一次被改變之版本號。
2.列出已自叢集108移除之所有節點之一墓碑(gravestone)清單,其中每一經移除節點由以下各項表示:(a)彼節點之節點識別符;及(b)在移除節點時彼節點之叢集成員資格資訊之版本。
在所繪示實施例中,一節點始終係包括至少其自身之一叢集108之一成員;一個節點之一叢集108稱為一「單體叢集」。此外,雖然在所繪示實施例中,成員資格資訊包含成員資格清單及墓碑清單,如上文所闡述,但在替代實施例(未繪示)中,可以不同方式構成成員資格資訊;舉例而言,
在一個此類替代實施例中,成員資格資訊缺少一墓碑清單,而在另一此類實施例中,可不同於上文所闡述而闡述節點之狀態。
當節點A希望充當一新伺服器節點且希望加入包含節點B之一叢集108時,節點A與節點B通信且發生以下操作:
1.節點A將一叢集秘密發送至節點B,在所繪示實施例中,該叢集秘密係節點B在允許另一節點加入其叢集108之前需要之一密鑰。用戶端102中之一者將叢集秘密提供至節點A。由於節點B控制節點A進入叢集108,因此節點B充當一「成員資格控制節點」。
2.節點A與節點B交換其成員資格資訊。節點A及節點B上之成員資格資訊之版本經更新以包含節點A及節點A正加入之叢集108之所有節點之節點識別符。
3.當節點A加入叢集時,節點A之狀態改變為「加入」。
4.一旦加入,當在節點A與其剛加入之叢集108之間交換資料時,節點A之狀態便改變為「同步」。節點B亦使用狀態協定218來更新叢集108之所有其他節點上所儲存之成員資格資訊之版本。更新節點A及節點A正加入之叢集108之所有成員上所儲存之成員資格資訊之版本之過程稱為「同步」所有此等節點上所儲存之成員資格資訊之版本。
5.在同步完成之後,節點A之狀態改變為有效。
資料同步層包含使得能夠以不同排序保證及效能折衷在一叢集中之各節點之間發送資料之協定。資料同步層中之協定直接使用輸送層及叢集支援層中之協定。
同步協定214用於以訊息形式將資料自系統100中之節點A發送至節點B,使得訊息以節點A可控制之一次序(諸如節點A發送訊息之次序)到達節點B。使用同步協定214傳送資料之服務在專用高優先級I/O服務執行緒上運行。
在所繪示實施例中,同步協定214係基於稱為Totem協定之一虛擬同步實施方案,如Agarwal DA、Moser LE、Melliar-Smith PM、Budhia RK之「The Totem Multiple-Ring Ordering and Topology Maintenance Protocol」(ACM Transactions on Computer Systems,1998,第93至132頁)中所闡述,該文獻之整體特此以引用方式併入本文中。在同步協定214中,節點一起分群為多個群組,該等群組在本說明中之下文中稱為「同步環」,且任何同步環上之一節點可將全序訊息發送至相同環上之其他節點。
同步協定214如下修改Totem協定:
1.同步協定214使用一服務識別符及一環識別符兩者來識別一同步環。服務識別符識別一給定同步環之所有例項,而環識別符識別一給定同步環之一特定例項。舉例而言,每當一節點加入或離開一同步環時,彼環之環識別符而非其服務識別符將改變。服務識別符允許一節點將全序訊息多播至共用相同服務識別符之節點群組(亦即,屬於相同同步環之節點群組)。
2.在Totem協定中,在某些情形中,當節點不發送訊息時,節點可見之同步環並不反映在節點開始收發訊息時收斂之最終環組態。同步協定214允許節點彼此發送探查訊息以致使同步環在發送非探查訊息之前收斂。
3.Totem協定僅允許將有序訊息發送至形成一同步環之一部分之所有節點。相比而言,同步協定214使用一調度模組,該調度模組藉由以下操作
而自同步協定214抽象化出網路層:提供一介面以向系統100中之所有可到達節點廣播、使用一目的地節點識別符清單向系統100中之多個節點中之每一者單播、及使用系統100中之一單個節點之節點識別符向該節點單播。調度模組亦藉由服務識別符使用訊息篩選與路由來支援相同IP埠上之服務之多工。除非多播,否則來自一節點之傳出訊息發送至具有相同服務識別符之節點子組。
4.同步協定214使用片段式訊息及使用者有效負載區塊化與聯合(chunking and coalescing)來解決由約1,500個位元組之最大傳輸單元大小引起之問題。
5.同步協定214修改節點使用加入訊息之方式,加入訊息係在Totem協定中節點用於加入一同步環之訊息:
(a)只要節點具有同步環中之當前操作節點集合中之最低節點識別符,加入訊息便由節點發送。
(b)不具有其操作集合中之最低節點識別符之節點將加入訊息單播至具有其操作集合中之最低節點識別符之節點。
(c)加入訊息包含服務識別符,且並非對應同步環之一部分之節點不作出回應。
相對於Totem協定,此等修改幫助減小節點用於加入同步環之總頻寬。
6.同步協定214偵測因某些類型之網路組態錯誤而無法加入一同步環之節點且將該等節點加入黑名單。舉例而言,能夠將訊息發送至其他節點但不自其他節點接收訊息之一節點對於其他節點將顯現為自在本實施例中之所有其他訊息被請求以來僅不斷地發送探查訊息且因此將被加入黑名單。
7.同步協定214執行訊息之有效負載加密與真確性驗證。
8.同步協定214限制每一節點可保持Totem協定中所使用之權杖之時間;在所繪示實施例中,每一節點可保持權杖達15ms。
9.同步協定214實施一TCP友好擁塞避免演算法。
如下文較詳細論述,系統100使用同步協定用於共用事件與警報應用程式224;此等應用程式222中之在一叢集108之成員之間共用之資料係非持久性的,及有益地為迅速且以一已知次序共用的。
一致性協定216用於跨越一叢集108之所有節點自動且週期性地共用資料,使得最終在叢集108中之所有節點上同步使用一致性協定216所共用之資料。下文在論述共用設定應用程式226之章節中較詳細論述使用一致性協定216所共用之資料類型。由一致性協定216共用之資料儲存於節點中之每一者上之一資料庫中,且該資料庫中之每一項目包含一密鑰-值對,其中密鑰唯一地識別值,且密鑰彼此獨立。一致性協定216跨越節點同步資料同時解決不同節點可對不同資料庫執行之並行修改問題。如下文進一步詳細論述,一致性協定216藉由以下操作而達成此:第一,被通知資料庫不同步;第二,找出哪些特定資料庫項目不同步;及第三,找出該項目之哪一版本係最新的、同步的及保持的。
為解決判定何時對資料庫做出改變之並行修改問題,加入一叢集108之每一節點被指派有用於記錄彼節點何時對資料做出改變且判定改變係在由叢集108中之其他節點對相同資料做出之改變之前做出還是在其之後做出之一因果關係版本管理機制。在本實施例中,節點中之每一者使用一間隔樹時鐘(ITC)作為一因果關係版本管理機制。然而,在替代實施例中,可
使用其他版本管理機制,諸如向量時鐘及版本向量。系統100亦實施使用網路時間協定在不同節點之間同步之一國際標準時間時鐘(UTC),以判定在針對兩個或兩個以上節點之ITC相同時做出改變之次序。在P.Almeida、C.Baquero及V.Fonte之「Interval tree clocks:a logical clock for dynamic systems」(Princi.Distri.Sys.,Lecture Notes in Comp.Sci.,第5401卷,第259至274頁,2008)中較詳細闡述ITC,該文獻之整體特此以引用方式併入本文中。
一致性協定216在節點之間同步之目錄劃分為多個分支,該等分支中之每一者稱為一最終一致性域(ECD)。一致性協定216獨立於其他ECD而同步ECD中之每一者。一ECD內之每一資料庫項目稱為一最終一致性項目(ECE)。每一ECE包含:一密鑰;來自一ITC及來自UTC之一時間戳記,無論何時修改ECE,ITC及UTC兩者皆更新;ECE使用(舉例而言)一Murmurhash函數而產生之一雜湊值;資料自身;以及在刪除ECE之情況下及在刪除ECE時添加之一墓碑。
雜湊值用於比較兩個不同節點上之對應ECD及ECE以判定ECD及ECE是否相同。當比較兩個對應ECD時,比較彼等ECD之「頂層」雜湊。一給定節點上之一ECD之一頂層雜湊藉由雜湊彼ECD內之所有ECE而產生。若頂層雜湊匹配,則ECD相同;否則,一致性協定216判定ECD不同。為判定ECD中之哪些特定ECE不同,雜湊應採取兩個節點上之ECE之遞減範圍。經由其而採取雜湊之間隔最終充分地縮小,使得在兩個節點之間不同之ECE被隔離且被識別。舉例而言,可使用一雙向跨越清單來判定並比較ECD間隔之雜湊值。
使用一致性協定216通信之兩個節點可使用以下RPC:
1.SetEntries:SetEntries將新或經更新ECE傳輸至一節點,該節點將該等新或經更新ECE插入至適當ECD中。
2.GetEntries:GetEntries將一密鑰或一密鑰範圍傳輸至一節點,該節點傳回對應於彼等一或多個密鑰之ECE。
3.SynEntries:SynEntries將一密鑰或一密鑰範圍傳輸至一節點,且然後,兩個節點比較ECE之遞減範圍之雜湊以判定哪些ECE在兩個節點之間不同,如上文所闡述。若ECE不同,則節點合併其ECE,使得藉由比較ITC時間戳記而在節點上儲存相同ECE;若ITC時間戳記匹配,則節點比較與ECE相關聯之UTC時間戳記。此等時間戳記用作允許兩個節點採用已最新修改(如由彼等ECE之版本資訊所指示)之ECE之版本資訊。
當一節點改變ECE時,彼節點通常稱作SynEntries以告知叢集108中之其他節點已改變ECE。若叢集108中之某些節點不可用(例如:節點離線),則一旦不可用節點重新上線,便使用Gossip協定208而非SynEntries來將頂層雜湊傳遞至該等節點。如以上論述叢集108中之Gossip協定208之章節中所暗示,節點中之每一者保持其頂層雜湊,該頂層雜湊使用Gossip協定208連同一節點識別符、版本資訊及活動訊號狀態一起散佈至其他節點。當另一節點接收到此雜湊時,該另一節點比較所接收頂層雜湊與其自身頂層雜湊。若該等頂層雜湊相同,則兩個節點上之ECE匹配;否則,ECE不同。
若ECE不同,無論此係使用SynEntries還是Gossip協定208判定的,則運行SynEntries或接收頂層雜湊之節點同步ECE。
如上文所論述,Gossip協定208在整個叢集108內共用針對叢集108中之節點之狀態實體識別符及其版本號(「狀態實體對」)。實例性狀態實體
識別符可(舉例而言)以狀態項目之形式表示不同類型之狀態資料,諸如:節點具有多少可用儲存空間;哪些裝置(諸如非節點攝影機114)連接至彼節點;哪些用戶端102連接至彼節點;及叢集成員資格資訊。當節點中之一者經由Gossip協定208接收到此資料時,該節點比較狀態實體對之版本號與在本端儲存之對應狀態項目之版本號。若版本號不同,則狀態協定218利用狀態實體對所源自之節點開始一RPC(「同步RPC」)以更新對應狀態項目。
使用狀態協定218同步之一狀態項目藉由一路徑及一節點識別符兩者而唯一地識別。與使用一致性協定216同步之資料不同,狀態項目闡述之節點僅係被允許修改狀態項目或狀態實體對之節點。因此,且與使用一致性協定216同步之ECD及ECE不同,在本端儲存於節點A上的針對節點A之狀態項目之版本始終係彼狀態項目之最新版本。
若節點A同時修改多個狀態項目,則在節點B呼叫同步RPC時,狀態協定218將所有經修改狀態項目一起同步至節點B。因此,同時改變之項目可彼此相依,此乃因該等項目將一起發送至節點B以供分析。相比而言,使用一致性協定216同步之ECE中之每一者獨立於其他ECE而同步,因此ECE無法彼此相依,此乃因節點B無法依靠以任何特定次序接收項目。
系統100中之節點中之每一者運行實施上文所闡述之協定套組200之服務。雖然在所繪示實施例中,針對協定202至218中之每一者使用一項服務,但在替代實施例(未繪示)中,可使用較多或較少服務來實施協定套組200。節點中之每一者實施協定套組200自身;因此,系統100係分散式的且與使用一集中式伺服器之習用實體安全系統相比較不易遭受任何單個節點之一故障。舉例而言,若在系統100中節點中之一者故障(「故障節點」),
則在其餘節點中之每一者上,運行狀態協定218之服務(「狀態服務」)將藉由監視故障節點之活動訊號狀態而判定故障節點係離線的且將把此故障傳遞至在其他節點中之每一者上運行節點協定210及成員資格協定212之服務(分別為「節點服務」及「成員資格服務」)。每一節點上之實施同步協定214及一致性協定216之服務(分別為「同步服務」及「一致性服務」)隨後將終止與故障節點共用資料直至故障節點重新上線且重新加入其叢集108為止。
以下闡述系統100可實施之各種應用程式222至226。應用程式222至226可實施為用於共用資料之實例性方法之各種實施例。該方法藉由使系統100中之一第一節點存取識別系統100中之另一節點之一節點識別符而開始。第一節點及第二節點兩者皆為相同伺服器叢集108之成員。第一節點存取之節點識別符係識別叢集108之所有成員之叢集成員資格資訊之一部分。叢集成員資格資訊可由叢集108之所有成員存取。在所繪示實施例中,叢集108之成員中之每一者持久地且在本端儲存叢集成員資格資訊之其自身版本;然而,在替代實施例(未繪示)中,叢集成員資格資訊可以如下方式中之一者或兩者而儲存:在節點遠端儲存及儲存於一中央位置中。在存取第二節點之節點識別符之後,第一節點將資料發送至第二節點,此後,方法結束。舉例而言,當使用上文所闡述之節點服務時,第一節點上運行之同步服務及一致性服務能夠藉由使用第二節點之節點識別符且藉由將用於使第二節點之通信端點與其節點識別符相關聯之服務責任委託給節點而將資料發送至第二節點。諸如在根據Gossip協定208交換資料時,將資料自第一節點發送至第二節點可包含一雙向資料交換之一部分。
在系統100之操作期間,在一叢集108之節點之間傳送持久儲存之資訊。共用設定應用程式226在伺服器104之間共用之此即時資訊之實例係由伺服器104實施之有條件規則;儘管僅伺服器104中之一單個伺服器可負責評估規則中之一者並執行一所得動作,但在一項實例性實施例中,該等規則被傳播至所有伺服器104並儲存於所有伺服器104上。使用一致性協定216在節點之間共用此類型之資料(「一致性資料」);一般而言,一致性資料係不必即時地或以全序共用且由節點中之每一者持久地儲存之資料。然而,在替代實施例(未繪示)中,可非持久地儲存一致性資料。
圖3展示一UML序列圖300,其中在第一使用者302a與第二使用者302b(統稱為「使用者302」)之間共用呈一使用者設定之形式之一致性資料。使用者302、第一用戶端102a及第二用戶端102b以及第一伺服器104a及第二伺服器104b(其等在此實例中為第一節點及第二節點)係圖式300中之物件。伺服器104a、104b形成相同叢集108a之一部分。由於用戶端102a、102b與其通信之伺服器104a、104b彼此不直接連接,因此使用一致性協定216在兩個伺服器104a、104b之間及因此在兩個使用者302之間傳送資料。
圖式300具有兩個訊框332a、332b。在第一訊框332a中,第一使用者302a指示第一用戶端102a打開一設定面板(訊息304),且用戶端102a隨後執行將設定傳送至第一伺服器104a之SettingsOpenView()程序(訊息306)。同時,第二使用者302b類比地指示第二用戶端102b(訊息308及310)。在第二訊框332b中,使用者302同時編輯其設定。第一使用者302a藉由使第一用戶端102a運行UIEditSetting()而編輯其設定(訊息312),此後,第一用戶端102a藉由使第一伺服器104a運行SettingsUpdateView()而更新第一伺服器104a上所儲存之設定(訊息314)。然後,第一伺服器104a運行執行SetEntries
程序且將第一使用者302a輸入之設定傳送至第二伺服器104b之ConsistencySetEntries()(訊息316)。然後,第二伺服器104b藉由呼叫SettingsNotifyViewUpdate()而將所傳送設定發送至第二用戶端102b(訊息318),此後,第二用戶端102b更新第二使用者302b(訊息320)。同時,第二使用者302b類比地修改設定且使用一致性協定216將彼等設定發送至第一伺服器104a(訊息322、324、326、328及330)。伺服器104a、104b中之每一者持久地儲存使用者設定,使得在伺服器104a、104b中之任一者重新啟動之情況下在伺服器104a、104b之間不必重新同步使用者設定。在所繪示實例性實施例中,使用者302編輯之設定可准許使用者302藉由定義哪些觸發將產生哪些動作而定義服從滿足特定條件之規則,其中該等條件中之每一者包含一裝置501(圖3未繪示,但圖5繪示)之狀態。
在系統100之操作期間,在一叢集108之節點之間傳送在運行時間期間產生之即時資訊。共用事件與警報應用程式224在節點之間共用之此即時資訊之實例為:警報狀態(亦即,在系統100中之任何地方是否已觸發一警報);系統事件,諸如已偵測到之運動;一裝置(諸如節點攝影機106中之一者)是否正將數位資料發送至系統100之其餘部分;一裝置(諸如一運動偵測器)是否連接至系統100;一裝置當前是否正進行記錄;係已發生一警報還是使用者302已應答一警報;使用者302中之一者是否正對系統100執行一稽核;伺服器104中之一者是否已遭受一錯誤;連接至系統之一裝置是否已遭受一錯誤;是否已發生一銷售點文字異動;及伺服器節點至用戶端通知,諸如是否已改變設定/資料、當前記錄狀態、是否正更新一時間線,及資料庫查詢結果。在本實施例中,使用同步協定214在節點之間傳送之資料稱為
「同步資料」、在運行時產生且並非由節點持久地保存。
圖4展示一UML序列圖400,其中使用同步協定214在伺服器104之間共用一警報通知。圖式400中之物件係非節點攝影機114、第一叢集108a中之三個伺服器104及第二用戶端102b中之一者,第二用戶端102b連接至第一叢集108a中之伺服器104c中之一者。
在圖式400之前三個訊框402處,伺服器104中之每一者加入命名為「ServerState」之一同步環,使得伺服器104中之任一者之狀態可傳遞至其他伺服器104中之任何者;在所繪示實施例中,將傳遞之狀態為「AlarmStateTriggered」,該「AlarmStateTriggered」意指憑藉非節點攝影機114已偵測到之一事件已觸發伺服器108中之一者上之一警報。在訊框404處,將第二伺服器104b選定為用於警報應用程式之「主控伺服器」;此意指係第二伺服器104b判定來自非節點攝影機114之輸入是否滿足準則以轉變為AlarmStateTriggered狀態且向同步環中之其他伺服器104a、104c發送一訊息以使伺服器104a、104c亦轉變為AlarmStateTriggered狀態。
在伺服器104加入ServerState同步環之後,使用者302a登入至第三伺服器104c中(訊息406)。在使用者302a登入之後,第三伺服器104c加入命名為「ClientNotification」之另一同步環(訊框408);如下文進一步詳細論述,此環用於將系統狀態傳遞至使用者302a,而ServerState同步環用於僅在伺服器104之間進行傳遞。非節點攝影機114將一數位輸入(諸如已打開一門或窗之一指示)發送至第一伺服器104a(訊息410),此後,第一伺服器104a查看此數位輸入是否滿足用於判定是否觸發系統100中之一警報之一組規則(訊息412)。在所繪示實施例中,第一伺服器104a判定應觸發一警報,且因此呼叫警示第二伺服器104b改變狀態之AlarmTrigger()(訊息414)。然後,
第二伺服器104b將狀態轉變為AlarmStateTriggered(訊息416),且向ServerState同步環發送指示其他兩個伺服器104a、104c亦將狀態改變為AlarmStateTriggered之一訊息(訊框418)。在指示其他伺服器104a、104c之後,第二伺服器104b運行AlarmTriggerNotification()(訊息420),該AlarmTriggerNotification()致使第二伺服器104b亦加入ClientNotification同步環(訊框422),且向ClientState同步環傳遞致使第三伺服器104c(其為ClientState同步環上之另一伺服器)轉變為一「NotifyAlarmTriggered」狀態之一訊息(訊框424)。一旦第三伺服器104c改變為此狀態,第三伺服器104c便直接告知第二用戶端102b已觸發警報,第二用戶端102b將此訊息中繼至使用者302a並等待使用者302a應答該警報(訊息426)。一旦使用者302a應答該警報,第二伺服器104b便據此將狀態改變為「AlarmStateAcknowledged」(訊息428),且然後將一訊息發送至ServerState同步環,使得其他兩個伺服器104a、104c亦對應地改變狀態(訊框430)。第二伺服器104b隨後再次將狀態改變為「NotifyAlarmAcknowledged」(訊息432),且經由ClientNotification同步環將一訊息發送至第三伺服器104c以致使第三伺服器104c對應地改變狀態(訊框434)。然後,第三伺服器104c通知用戶端102c系統100已應答警報(訊息436),用戶端102c將此訊息中繼至使用者302a(訊息438)。
在其中第二伺服器104b故障且不再可充當用於同步環之主控伺服器之一替代實施例(未繪示)中,系統100自動選出伺服器104中之另一者來充當用於該環之主控伺服器。同步環之主控伺服器僅係在使用同步環在節點當中共用警報通知時被允許致使該環上之所有其他節點改變狀態之伺服器104。
圖6展示在根據圖4之圖式400應答一警報狀態時呈現給使用者302之一實例視圖600。視圖600包含展示以下各項之視訊面板602a至602c(統稱為「面板602」):來自非節點攝影機114之即時串流視訊;指示作為非節點攝影機114正記錄之內容之一結果已觸發一警報之警示604;及第二使用者302b點擊以應答已觸發之警報之一應答按鈕606。
圖4之圖式400繪示其評估不需要在伺服器104之間傳送條件資訊之一規則之一實例。在圖4中,第一伺服器104a判定將執行一規則,該規則之執行包括以回應於指示(舉例而言)已打開一門或窗之一數位輸入之存在而觸發一警報之形式之一動作。第一伺服器104a因此呼叫致使第二伺服器104b觸發警報之AlarmTrigger()(訊息414)。圖式400不指示任何條件資訊被自其他伺服器104b、104c中之任何者傳送至第一伺服器104;因此,第一伺服器104a基於已發生之觸發且基於第一伺服器104a之條件(但不基於其他伺服器104b、104c之條件)而判定是否觸發警報。
相比而言,圖7展示繪示根據另一實施例之用於使用系統100來實施一有條件觸發規則之一實例性方法700之一流程圖。方法700在方塊702處開始且繼續進行至方塊704,在方塊704處,伺服器節點104中之一者(「第一節點」)偵測對規則之一觸發。如下文進一步詳細論述,在一項實施例中,觸發包括一事件且可由一二進制數位信號之狀態之一改變表示,在此情形中,第一節點儲存包括狀態改變及表示第一節點何時偵測到觸發之一時間戳記之觸發資訊。
在方塊706處,伺服器節點中之另一者(「第二節點」)偵測一輸入信號,該輸入信號影響在回應於觸發而執行由規則規定之一動作之前先要被滿足
之一條件。在以下實例性實施例中,輸入信號包括由第二節點自一裝置501(圖5中所展示)(諸如攝影機114中之一者)所接收之一二進制數位輸入;舉例而言,攝影機114可輸出表示攝影機114在其視域中是否偵測到運動之一數位信號,其中該數位信號指示攝影機114之狀態。第二節點儲存包括狀態改變及表示第二節點何時偵測到狀態改變之一時間戳記之條件資訊。更一般而言,輸入信號由裝置501回應於系統100正監視之環境之一改變而產生。
在方塊708處,在伺服器節點中之一單個節點(「條件評估節點」)處收集至少某些觸發資訊及至少某些條件資訊以准許條件評估節點評估條件是否被滿足。舉例而言,在以下實例性實施例中,第二節點係條件評估節點,且將表示第一節點何時偵測到觸發之時間戳記傳輸至第二節點以准許第二節點在觸發發生時或大約在觸發發生時評估條件是否為真。在方塊710處,第二節點執行對條件之實際評估。若條件不被滿足,則方法700在方塊714處結束且不執行動作。若條件被滿足,則在方塊712處執行動作。在以下某些實例性實施例中,第二節點向第一節點發送條件被滿足之一訊息,且然後第一節點執行動作。第一節點、第二節點及條件評估節點全部包含相同伺服器叢集108之一部分。
現在參考圖5,展示繪示圖7之方法700之一項實例性應用程式之一UML序列圖500。在圖5中,第一用戶端102a以及第一伺服器104a及第二伺服器104b係圖式500中之物件。第一伺服器104a通信地耦合至輸出用作觸發之一信號的非節點攝影機114中之一者,而第二伺服器104b通信地耦合至將一輸入信號輸出至第二伺服器104b之一裝置501,在所繪示實施例中,該輸入信號係一數位信號且在本文中可互換地稱為一「數位輸入」。
在圖7中提及之「第一節點」係第一伺服器104a,且第二節點104b既係圖7之「第二節點」又係圖7之「條件評估節點」。因此,第一伺服器104a在判定是否回應於一觸發而執行一動作之前自第二伺服器104b接收包括裝置501之條件之條件資訊。裝置501可包括(舉例而言)判定連接至系統100之一門係打開還是關閉之一門感測器,或輸出關於其當前是否偵測到運動之一信號的攝影機114中之一者。
雖然在圖5之圖式500中所繪示之實施例中,第二伺服器104b自裝置501接收數位輸入,但在不同實施例(未繪示)中,自裝置501至第二伺服器104b之信號可係一類比信號或一混合類比與數位信號。此外,甚至在數位輸入係一數位信號時,該信號可係一二進制信號或可以其他方式量化(例如,信號可係十六進制的)。
第一伺服器104a及第二伺服器104b分別包括一第一規則服務504a及一第二規則服務504b(統稱為「規則服務504」)。規則服務504執行包括以下各項之功能:
(a)規則服務504將針對系統100中之所有伺服器104且在特定實施例中僅針對其上正運行規則服務504之伺服器104之所有規則之一清單儲存於一規則儲存區(未繪示)中。規則服務504可自用戶端102中之一者接收一規則更新,且另外或另一選擇為,可接收如使用一致性協定216在伺服器104之間傳播的其他伺服器104上所儲存之規則。
(b)規則服務504偵測其上正運行規則服務504之伺服器104上是否已發生一觸發。
(c)在正執行之規則需要基於一數位輸入而評估一條件且其上正運行規則服務504之伺服器104亦接收彼數位輸入之情況下,規則服務504評
估彼條件。如下文關於目錄服務502進一步詳細論述,規則服務504有權存取自裝置501所接收之數位輸入之經時間戳記狀態改變之一快取記憶體。
(d)在正執行之規則需要基於一數位輸入而評估一條件且其上正運行規則服務504之伺服器104不接收彼數位輸入之情況下,規則服務504與接收該數位輸入之伺服器104上正運行之規則服務504通信以判定條件是否被滿足。
舉例而言,在一項實施例中,第一伺服器104a可接收觸發,且第二伺服器104b可接收數位輸入。在此實例中,第一伺服器104a使用一伺服器間應用程式設計介面(「伺服器間API」)與第二伺服器104b通信,如下文較詳細論述,且請求第二伺服器104b基於數位輸入而評估條件;該請求由第一規則服務504a發送且由第二規則服務504b接收。然後,第二規則服務504b評估彼條件且使用伺服器間API將彼評估之結果傳回至第一規則服務504a,此後,第一規則服務504a判定鑒於來自第二伺服器104b之回應而應用規則是否要求執行一動作。
第一伺服器104a亦包括與第一規則服務504a及第一用戶端102a通信之一目錄服務502。目錄服務502係在包含協定套組200之諸多協定(諸如Gossip協定208及一致性協定216)之頂部上分層之一應用程式層介面以准許第一規則服務504a及第一用戶端102a使用協定套組200通信。目錄服務亦維持其上正運行目錄服務之伺服器104上之規則儲存區,且憑藉一致性服務獲悉待由叢集108中之其他伺服器104評估之規則並將該等規則包含於規則儲存區中。在不同實施例(圖5未繪示)中,可省略目錄服務502,且應用程式及其他服務可在不使用目錄服務502作為一中間件之情況下直接介接並呼叫包含協定套組200之協定。
在所繪示實例性實施例中,伺服器間API實施為自第一伺服器104a至第二伺服器104b之一RPC,第一伺服器104a係接收觸發而非與評估與一規則之執行相關之條件是否為真相關之數位輸入之伺服器104,第二伺服器104b接收數位輸入且因此可評估條件。伺服器104中之每一者上儲存有包含使系統100之數位輸入與接收彼等數位輸入之伺服器104相關之一地圖之一伺服器/數位輸入地圖。伺服器104中之每一者上運行之規則服務504與伺服器/數位輸入地圖通信,且因此有權存取識別哪些伺服器104連接至哪些數位輸入之資訊。當連接至伺服器104中之一者之任何數位輸入之值改變時,彼伺服器104上運行之規則服務504記錄該改變之本質(亦即,數位輸入係自低轉變為高還是自高轉變為低)及識別何時發生改變之一時間戳記。
第一伺服器104a藉由將一RPC發送至第二伺服器104b而請求第二伺服器104b評估條件。雖然在此實例性實施例中使用一RPC,但更一般而言,可使用任何形式之伺服器間通信在第一伺服器104a與第二伺服器104b之間通信。RPC之參數包括:事件類型,在所繪示實施例中,事件類型係為滿足條件自裝置501所接收之數位輸入應接通還是應關斷;一時間戳記,其識別數位輸入之值將用於評估條件之時間,及一全域識別符(「Gid」),其識別為數位輸入之來源之裝置501。通常,時間戳記識別第一伺服器104a接收到觸發之時間,但在某些實施例中,時間戳記可識別一不同值,諸如觸發發生之時間(在其中系統100在觸發發生之時間與第一伺服器104a接收到觸發之時間之間不同之實施例中),或者在觸發發生或被接收之前或之後之某一時間。在此實例性實施例中,第二伺服器104b自裝置501接收一個數位輸入;因此,Gid識別裝置501及針對彼裝置之數位輸入兩者。在其中第二伺服器104b自裝置501接收多個數位輸入之不同實施例中,RPC可進
一步識別自裝置501所接收之特定數位輸入。
在所繪示實例性實施例中,數位輸入係二進制的且可來自裝置501中之任何一或多者,且規則服務504按以下方式評估條件。然而,在不同實施例中,規則服務504可使用不同方法來評估條件。
在任何給定時間,數位輸入中之每一者係接通或關斷的,且規則服務504如下定義條件中之每一者:{{Gids associated with digital inputs that are on}, {Gids associated with digital inputs that are off}}。
舉例而言,在其中第二伺服器104b利用Gid a至f與六個不同裝置501通信且在與具有Gid a至c之裝置501相關聯之數位輸入接通達一特定時間戳記而與具有Gid d至f之裝置501相關聯之數位輸入關斷達一特定時間戳記時一條件被滿足之一實施例中,規則服務504如下定義條件:{{a,b,c}, {d,e,f}}
規則服務504可將與一特定伺服器104相關之條件儲存於包含與彼伺服器相關聯之記憶體之一部分之一條件儲存區中。另外或另一選擇為,條件儲存區對於伺服器104中之一或多者可係經由一網路可存取的。條件可儲存(舉例而言)為一文字檔案或以上文所定義之格式包含一資料庫之一部分。
為評估條件,規則服務504評估與接通及關斷之數位輸入相關聯之Gid在一特定時間戳記處實際上是否分別為接通及關斷的。在其中裝置501具有Gid a至f之以上實例中,規則服務504如下表達對此條件之評估:{{a,b,c}, {d,e,f}, timestamp},此在函數上等效於:
{{a,b,c}, timestamp} and {d,e,f}, timestamp}。
規則服務504利用Gid a至f檢查針對裝置501中之每一者之事件快取記憶體歷史,且判定由彼等裝置501輸出之數位輸入中之每一者在時間戳記處係接通還是關斷,且據此評估條件為真還是假。在一項實例性實施例中,若在針對觸發之時間戳記處,來自裝置501之數位輸入在一容限週期(例如,2秒)內改變狀態,則規則服務504判定條件為真而不管精確地在該時間戳記處之數位輸入之值如何。
一旦第二規則服務504b評估條件是否被滿足,第二規則服務504b便傳回對第一伺服器104a之RPC的將條件被評估為真(亦即,滿足)、假(亦即,未滿足)或未知之一回應。在所繪示實施例中,一「未知」結果產生於第二伺服器104b在試圖評估條件時遇到一意外錯誤時;在不同實施例(未繪示)中,對RPC之潛在回應可包括「真」及「假」,且不包含「未知」。
在特定實施例中,可存在相對大數目個裝置501及伺服器104,該相對大數目個裝置及伺服器在使用伺服器間API時可使系統100承受處理及頻寬壓力。舉例而言,系統100之一項實例包括五十個伺服器104且針對伺服器104中之每一者包括一百個攝影機114,共達5,000個攝影機114及因此5,000個數位輸入(假設針對攝影機114中之每一者為一個數位輸入)。為減輕系統資源使用,在某些實例性實施例種,系統100可包括以下特徵中之一者或兩者:
(a)分群請求。可將用以評估一條件的自第一伺服器104a至第二伺服器104b之多個請求分群於自第一伺服器104a至第二伺服器104b之一單個RPC內。以此方式,與一單個RPC相關聯之附加項可在多個請求之間共用。舉例而言,在一項實施例中,十個請求可一起分群為一單個RPC。在
某些實施例中,自第一伺服器104a至第二伺服器104b之特定數目個請求可一起分群為一單個RPC,惟源自第一伺服器104a之彼等請求在一特定時間週期內;舉例而言,至多十個請求可經分群且自第一伺服器104a發送至第二伺服器104b。
(b)對執行中請求加限。為限制RPC之數目,伺服器104中之任一者需要在一特定時間作出回應,顯著RPC之數目(無論每RPC之請求之數目如何)可限於一RPC極限;在一項實例性實施例中,RPC極限對於伺服器104中之每一者為在任何特定時間尚未作出回應之五個RPC。在正接收RPC之伺服器104上所儲存之一組態檔案中可規定此極限。在伺服器104中之一者接收足夠多RPC使得超出針對彼伺服器104之RPC極限之情況下,彼伺服器104可對超出RPC極限之RPC作出一「假」或「未知」回應。
在圖5中,第一用戶端102a建立在一條件被滿足時回應於一觸發而產生一動作之執行之一規則(訊息506)。在圖5之實例中,該規則回應於由攝影機114偵測到之運動(觸發)而產生正顯示之一警報(動作),如圖6中所展示,惟在偵測到運動時打開一門(條件)。在此實例中,該門係裝置501。雖然在圖5中,攝影機114中之一單個攝影機及裝置501中之一單個裝置分別連接至第一伺服器104a及第二伺服器104b,但在不同實施例(未繪示)中,第一伺服器104a及第二伺服器104b中之一者或兩者可連接至多件設備。
在與第一用戶端102a通信之後,第一伺服器104a上之目錄服務502將新建立之規則傳遞至第一規則服務504a(訊息508),第一規則服務504a將該規則儲存於規則儲存區中。然後,目錄服務502向第一用戶端102a確認規則已成功地建立並由第一伺服器104a保存(訊息510)。
在建立並將規則保存於規則儲存區中之後的某一時間,規則服務504a
偵測到觸發(訊框512),該觸發在圖5中係來自攝影機114之已偵測到運動之一通知。舉例而言,攝影機114可在非工作時間期間朝向在其處不期望偵測到運動之一銀行金庫內部。在其中第一規則服務504a需要關於門之狀態之資訊之一項實例性實施例中,第一規則服務504a使用上文所闡述之伺服器間API通信至第二規則服務504b(訊息514)並請求第二規則服務504b評估在攝影機114偵測到運動時門是否係打開的。第二規則服務504b藉由判定在對應於攝影機114何時偵測到運動之時間戳記處與門相關聯之數位輸入是否處於對應於一打開門之狀態而評估條件(訊框518);舉例而言,若來自門之數位輸入在門為打開時接通,則第二規則服務504b在數位輸入於攝影機114偵測到運動時接通之情況下將「真」傳回至第一規則服務504a,且否則傳回「假」或「未知」(訊息520)。因此,第一規則服務504a在訊息520為「真」之情況下顯示一警報(訊框522),且否則不採取動作。視需要,第一規則服務504a亦(諸如)藉由更新第一用戶端102a(訊息524)之視圖以顯示圖6之螢幕而更新第一用戶端102a。
另一選擇為,若呈門之形式之裝置501及攝影機114兩者皆連接至第一伺服器104a且因此不需要在伺服器104a、104b之間通信以評估條件,則第一規則服務504a自身利用將訊息514發送至第二規則服務504b及自第二規則服務504b接收訊息520而評估條件(訊框516)。在此實例中,在評估條件之後,若條件評估為「真」,則第一規則服務504a可顯示訊框522處之警報。
在圖5之實施例中,將包括表示第一伺服器104a何時接收到觸發之時間戳記之觸發資訊自第一伺服器104a發送至第二伺服器104b以准許第二伺服器104b評估條件,且將呈由第二伺服器104b進行之條件之評估之結果
之形式之條件資訊自第二伺服器104b發送至第一伺服器104a以准許第一伺服器104a評估規則。在不同實施例(未繪示)中,伺服器104a、104b之間的通信之內容可不同。舉例而言,在一項不同實施例中,數位輸入自身可使用規則服務504a、504b自第二伺服器104b傳送至第一伺服器104a以允許第一伺服器104a自身評估條件,在此情形中,數位輸入及針對彼數位輸入之一時間戳記中之一者或兩者可包含傳送至第一伺服器104a之條件資訊。在另一實例性實施例中,觸發資訊可使用規則服務504a、504b自第一伺服器104a傳送至第二伺服器104b以允許第二伺服器104b評估規則且執行一動作(若該規則如此規定)。且在另一實例性實施例中,規則服務504a、504b可將觸發及條件資訊分別自第一伺服器104a及第二伺服器104b傳送至伺服器104中之另一者以允許彼另一伺服器104評估條件及規則且因此執行一動作(若該規則如此規定)。
在另一實例性實施例中,可將條件資訊推送至用於評估所有條件之一主控伺服器(未繪示),且系統100中之其他伺服器104可使用伺服器間API與彼主控伺服器通信以評估由系統100中之任何其他伺服器104所接收之數位輸入條件。在包括主控伺服器之系統100之一實施例中,主控伺服器係在圖7中提及之「條件評估節點」。在主控伺服器故障且不再可充當用於系統100之條件評估節點之情況下,系統100自動選出伺服器104中之另一者來充當主控伺服器。在一項實施例中,伺服器104中之每一者亦儲存指示其是否為主控伺服器之一布林變數(boolean variable)。因此,並非主控伺服器之伺服器104知道使用伺服器間API與主控伺服器通信以評估一條件,而主控伺服器自身識別為條件評估節點且自身評估條件而不需要與任何其他伺服器104通信。
雖然繪示特定實例性實施例,但未繪示之替代實施例係可能的。舉例而言,在圖5中,第一伺服器104a評估規則且在條件被滿足時執行動作。在一不同實施例中,伺服器節點中之另一者(一「規則評估節點」)可自第一伺服器104a、第二伺服器104b及條件評估節點中之任何一或多者接收觸發及條件資訊中之一者或兩者以准許規則評估節點評估規則且視情況執行動作。在另一替代實施例中,規則評估節點可評估規則,且若規則規定將執行一動作,則規則評估節點可與伺服器104中之另一者通信以致使彼另一伺服器104執行動作。
作為另一實例,雖然在所繪示實施例中,節點攝影機106及非節點攝影機114彼此不同,但在替代實施例(未繪示)中,一單個攝影機可同時為一節點攝影機及一非節點攝影機。舉例而言,在圖1中,第一攝影機106a係為第三叢集108c之一成員之一節點;然而,若第一攝影機106a亦直接耦合至第五伺服器104e但僅保留針對第三叢集108c之其叢集成員資格資訊,則第一攝影機106a將保持為第三叢集108c之一成員,同時自第五伺服器104e之角度亦充當一非節點攝影機114。
前述實施例中所使用之處理器可係(舉例而言)一微處理器、微控制器、可程式化邏輯控制器、場可程式化閘陣列或一特殊應用積體電路。電腦可讀媒體之實例係非暫時性的且包含基於碟片之媒體(諸如CD-ROM及DVD)、磁性媒體(諸如硬碟機及其他形式之磁碟儲存裝置)、基於半導體之媒體(諸如快閃媒體)、隨機存取記憶體及唯讀記憶體。
預期,本說明書中所論述之任何態樣或實施例之任何部分可與本說明書中所論述之任何其他態樣或實施例之任何部分一起實施或組合。
為方便起見,以上實例性實施例闡述為各種互連功能區塊。然而,此
並非必需的,且可存在此等功能區塊等效地聚集至一單個邏輯裝置、程式或具有模糊邊界之操作中之情形。在任何情況下,功能區塊可由其自身實施或與其他件硬體或軟體組合實施。
雖然前述內容已闡述特定實施例,但應理解,其他實施例係可能的且意欲包含於本文中。任一熟習此項技術者將清楚,未展示之對前述實施例之修改及調整係可能的。
100:系統/監控系統
102a:用戶端/第一用戶端
102b:用戶端/第二用戶端
102c:用戶端/第三用戶端
104a:伺服器/第一伺服器
104b:伺服器/第二伺服器/第二節點
104c:伺服器/第三伺服器
104d:伺服器/第四伺服器
104e:伺服器/第五伺服器
104f:伺服器/第六伺服器
106a:伺服器節點攝影機/第一節點攝影機/第一攝影機
106b:伺服器節點攝影機/第二節點攝影機
106c:伺服器節點攝影機/第三節點攝影機
108a:叢集/第一叢集
108b:叢集/第二叢集
108c:叢集/第三叢集
110:處理器
112:記憶體
114:非節點攝影機/攝影機
Claims (17)
- 一種用於在具有複數個伺服器節點之一實體安全系統上實施一有條件觸發規則之方法,該方法包括:(a)在該等伺服器節點中之一者(「第一節點」)處偵測對該規則之一觸發;(b)在該等伺服器節點中之另一者(「第二節點」)處偵測一輸入信號,該輸入信號影響在回應於該觸發而執行由該規則規定之一動作之前先要被滿足之一條件;(c)將一伺服器間通信自該第一節點發送至該第二節點,該伺服器間通信包含在一時間週期內使該第二節點評估該條件之多於一個請求;(d)在該第二節點處收集來自該第一節點之觸發資訊及准許該第二節點評估該條件是否被滿足之條件資訊;(e)在該第二節點處評估該條件是否被滿足;及(f)在該條件被滿足時執行該動作,其中該第一節點及該第二節點之每一者包含一伺服器叢集之至少一部分且由一節點識別符識別;且其中該第一節點及該第二節點之每一者之該節點識別符包含識別該伺服器叢集中之所有伺服器且可由該伺服器叢集中之所有伺服器存取之叢集成員資格資訊之至少一部分。
- 如請求項1之方法,其中該叢集成員資格資訊係持久地儲存於該第一 節點及該第二節點之每一者上。
- 如請求項1之方法,其進一步包括將關於該條件是否被滿足之一訊息自該第二節點發送至該第一節點,且其中該第一節點在該條件被滿足時執行該動作。
- 如請求項3之方法,其中一裝置通信地耦合至該第二節點,且該第二節點自該裝置接收表示該裝置之一狀態之一二進制數位輸入,且其中評估該條件是否被滿足包括評估該數位輸入在一特定時間係接通還是關斷。
- 如請求項4之方法,其中額外裝置通信地耦合至該第二節點,且該第二節點自該等額外裝置中之每一者接收一二進制數位輸入,該二進制數位輸入表示該數位輸入所源自之該額外裝置之一狀態,且其中評估該條件是否被滿足包括評估該等數位輸入中之至少兩者在一特定時間係接通還是關斷。
- 如請求項4之方法,其中該特定時間係在該第一節點處偵測到該觸發時。
- 如請求項1之方法,其中在該第二節點處收集該觸發資訊及該條件資訊包含發送該伺服器間通信之一部分。
- 如請求項1之方法,其中該請求包括該輸入信號為高還是低之一指 示、一時間戳記以及產生該輸入信號之裝置之一識別符。
- 如請求項1之方法,其中該伺服器間通信包括一單個遠端程序呼叫。
- 如請求項1之方法,其中該伺服器間通信包括在一時間週期內由該第一節點對該第二節點產生之所有請求。
- 如請求項1之方法,其進一步包括:(a)判定第二伺服器正自該等伺服器節點接收到多少個伺服器間通信,每一伺服器間通信包括使一第二伺服器評估一條件之一請求;及(b)在該第二伺服器正接收超過最大准許數目個伺服器間通信時,拒絕履行超過該最大准許數目的該等伺服器間通信中之每一者之請求。
- 如請求項1之方法,其中該第二節點係不同於該第一節點之一主控伺服器。
- 一種經組態以實施如請求項1至12中任一項之方法之實體安全系統。
- 一種非暫時性電腦可讀媒體,其上編碼有在執行時致使一處理器執行如請求項1至12中任一項之方法之電腦程式碼。
- 一種實體安全系統,其包括一第一伺服器節點(「第一節點」)及一第 二伺服器節點(「第二節點」),其中:(a)該第一節點經組態以:(i)偵測對一有條件觸發規則之一觸發;(ii)將一伺服器間通信發送至該第二節點,該伺服器間通信包含在一時間週期內使該第二節點評估在回應於該觸發而執行由該規則規定之一動作之前先要被滿足之一條件之多於一個請求;及(iii)在已發生該觸發且該第一節點已自該第二節點接收到對該請求之該條件被滿足之一回應時,執行該動作;及(b)該第二節點經組態以:(i)偵測一數位輸入,該數位輸入影響在回應於該觸發而執行由該規則規定之一動作之前先要被滿足之一條件;(ii)回應於來自該第一節點之該請求而評估該條件是否被滿足;及(iii)在該條件被滿足時將該回應發送至該第一節點,其中該第一節點及該第二節點中之每一者包含一伺服器叢集之至少一部分且由一節點識別符識別,且其中該第一節點及該第二節點中之每一者之該節點識別符包含識別該伺服器叢集中之所有伺服器且可由該伺服器叢集中之所有伺服器存取之叢集成員資格資訊之至少一部分。
- 一種用於在具有複數個伺服器節點之一實體安全系統上實施一有條件觸發規則之方法,該方法包括:(a)在該等伺服器節點中之一者(「第一節點」)處偵測對該規則之一 觸發;(b)在該等伺服器節點中之另一者(「第二節點」)處偵測一輸入信號,該輸入信號影響在回應於該觸發而執行由該規則規定之一動作之前先要被滿足之一條件;(c)將一伺服器間通信自該第一節點發送至該第二節點,該伺服器間通信包含在一時間週期內使該第二節點評估該條件是否被滿足之多於一個請求;(d)在該第二節點處評估該條件是否被滿足;(e)在該條件被滿足時將指示該條件被滿足之一回應自該第二節點發送至該第一節點;及(f)在該條件被滿足時在該第一節點處執行該動作,其中該第一節點及該第二節點之每一者包含一伺服器叢集之至少一部分且由一節點識別符識別,且其中該第一節點及該第二節點之每一者之該節點識別符包含識別該伺服器叢集中之所有伺服器且可由該伺服器叢集中之所有伺服器存取之叢集成員資格資訊之至少一部分。
- 一種用於在具有複數個伺服器節點之一實體安全系統上實施一有條件觸發規則之方法,該方法包括:(a)在該等伺服器節點中之一者(「第一節點」)處偵測對該規則之一觸發;(b)在該等伺服器節點中之另一者(「第二節點」)處偵測一輸入信號,該輸入信號影響在回應於該觸發而執行由該規則規定之一動作之 前先要被滿足之一條件;(c)將用以評估該規則之一請求自該第一節點發送至該等伺服器節點中之一單個節點(「規則評估節點」);(d)將一伺服器間通信自該第一節點發送至該第二節點,該伺服器間通信包含在一時間週期內使該第二節點評估該條件是否被滿足之多於一個請求;(e)在該第二節點處評估該條件是否被滿足;(f)在該條件被滿足時將指示該條件被滿足之一回應自該第二節點發送至該規則評估節點;及(g)在該條件被滿足時執行該動作,其中該第一節點、該第二節點及該規則評估節點中之每一者包含一伺服器叢集之至少一部分且由一節點識別符識別,且其中該第一節點、該第二節點及該規則評估節點中之每一者之該節點識別符包含識別該伺服器叢集中之所有伺服器且可由該伺服器叢集中之所有伺服器存取之叢集成員資格資訊之至少一部分。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562220834P | 2015-09-18 | 2015-09-18 | |
US62/220,834 | 2015-09-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201725889A TW201725889A (zh) | 2017-07-16 |
TWI704788B true TWI704788B (zh) | 2020-09-11 |
Family
ID=58283556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105130245A TWI704788B (zh) | 2015-09-18 | 2016-09-19 | 經組態以實施一有條件觸發規則的具有多伺服器節點之實體安全系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9979791B2 (zh) |
TW (1) | TWI704788B (zh) |
WO (1) | WO2017045079A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10462218B1 (en) | 2015-07-15 | 2019-10-29 | Google Llc | System and method for sending proposals within a distributed state machine replication system |
EP3148121B1 (de) * | 2015-09-24 | 2017-11-08 | Sick Ag | Verfahren zum hinzufügen oder zum entfernen einer steuerung in ein/aus einem netzwerk und vorrichtung zum durchführen der verfahren |
SE542124C2 (en) * | 2016-06-17 | 2020-02-25 | Irisity Ab Publ | A monitoring system for security technology |
US10177965B1 (en) * | 2016-11-10 | 2019-01-08 | Amazon Technologies, Inc. | Live media encoding failover system |
US10812434B2 (en) * | 2017-03-23 | 2020-10-20 | Blackberry Limited | Apparatus and method for maintaining message databases in eventual consistency distributed database systems |
US20180276842A1 (en) * | 2017-03-27 | 2018-09-27 | Blackberry Limited | System and method for image based confirmation |
US10506202B2 (en) * | 2017-11-20 | 2019-12-10 | Cisco Technology, Inc. | System and method for protecting critical data on camera systems from physical attack |
EP3509342A1 (en) * | 2018-01-03 | 2019-07-10 | Getac Technology Corporation | Event detecting and recording system, management method and activating method for information capturing device |
US10379985B1 (en) * | 2018-02-01 | 2019-08-13 | EMC IP Holding Company LLC | Automating and monitoring rolling cluster reboots |
CN110769190B (zh) * | 2018-07-25 | 2021-12-17 | 神讯电脑(昆山)有限公司 | 事件侦测及记录系统、信息撷取装置的管理及启动方法 |
US10721335B2 (en) * | 2018-08-01 | 2020-07-21 | Hewlett Packard Enterprise Development Lp | Remote procedure call using quorum state store |
CN112115026B (zh) * | 2020-09-15 | 2022-09-16 | 招商局金融科技有限公司 | 服务器集群监控方法、装置、电子设备及可读存储介质 |
CN112202746B (zh) * | 2020-09-24 | 2023-04-21 | 北京百度网讯科技有限公司 | Rpc成员信息获取方法、装置、电子设备和存储介质 |
CN112910981B (zh) * | 2021-01-27 | 2022-07-26 | 联想(北京)有限公司 | 一种控制方法及装置 |
CN117793757A (zh) * | 2024-02-18 | 2024-03-29 | 山东浪潮数据库技术有限公司 | 一种分布式网络的心跳检测方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009012289A1 (en) * | 2007-07-16 | 2009-01-22 | Cernium Corporation | Apparatus and methods for video alarm verification |
WO2012009435A1 (en) * | 2010-07-14 | 2012-01-19 | Domanicom Corporation | Coordination among multiple service providers to ensure user satisfaction |
US20140074987A1 (en) * | 2012-09-07 | 2014-03-13 | Avigilon Corporation | Distributed physical security system |
CN104321781A (zh) * | 2012-06-29 | 2015-01-28 | 英特尔公司 | 用于安全地处理与物理功能驱动器的虚拟功能驱动器通信的方法、系统和装置 |
US20150254950A1 (en) * | 2014-03-10 | 2015-09-10 | Tyco Fire & Security Gmbh | False Alarm Avoidance In Security Systems |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8710983B2 (en) * | 2012-05-07 | 2014-04-29 | Integrated Security Corporation | Intelligent sensor network |
US11290524B2 (en) * | 2014-08-13 | 2022-03-29 | Microsoft Technology Licensing, Llc | Scalable fault resilient communications within distributed clusters |
US9813329B2 (en) * | 2015-06-01 | 2017-11-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for multi-chassis redundancy using anycast and GTP TEID |
-
2016
- 2016-09-16 US US15/268,336 patent/US9979791B2/en active Active
- 2016-09-16 WO PCT/CA2016/051092 patent/WO2017045079A1/en active Application Filing
- 2016-09-19 TW TW105130245A patent/TWI704788B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009012289A1 (en) * | 2007-07-16 | 2009-01-22 | Cernium Corporation | Apparatus and methods for video alarm verification |
WO2012009435A1 (en) * | 2010-07-14 | 2012-01-19 | Domanicom Corporation | Coordination among multiple service providers to ensure user satisfaction |
CN104321781A (zh) * | 2012-06-29 | 2015-01-28 | 英特尔公司 | 用于安全地处理与物理功能驱动器的虚拟功能驱动器通信的方法、系统和装置 |
US20140074987A1 (en) * | 2012-09-07 | 2014-03-13 | Avigilon Corporation | Distributed physical security system |
US20150254950A1 (en) * | 2014-03-10 | 2015-09-10 | Tyco Fire & Security Gmbh | False Alarm Avoidance In Security Systems |
Also Published As
Publication number | Publication date |
---|---|
WO2017045079A1 (en) | 2017-03-23 |
US9979791B2 (en) | 2018-05-22 |
US20170085648A1 (en) | 2017-03-23 |
TW201725889A (zh) | 2017-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI704788B (zh) | 經組態以實施一有條件觸發規則的具有多伺服器節點之實體安全系統 | |
AU2013312982B2 (en) | Physical security system having multiple server nodes | |
US10474449B2 (en) | Upgrading a physical security system having multiple server nodes | |
US10547693B2 (en) | Security device capability discovery and device selection | |
CN106453377B (zh) | 基于区块链的分布式网络智能监控系统及方法 | |
CA2964485C (en) | Distributed security system over multiple sites | |
JP5548829B2 (ja) | 計算機システム、データ管理方法及びデータ管理プログラム | |
CN111737236B (zh) | 智能快递柜业务的数据管理方法及系统 | |
CN112269690B (zh) | 一种数据备份的方法和装置 | |
CN113190620A (zh) | Redis集群之间数据的同步方法、装置、设备及存储介质 | |
JP2011524563A (ja) | ノード間でのデバイス・エラー情報の同期化 | |
CN114090342A (zh) | 存储容灾的链路管理方法及消息执行节点、存储控制集群 | |
Lee et al. | Addressing IoT storage constraints: A hybrid architecture for decentralized data storage and centralized management | |
CN113064950A (zh) | 一种数据同步方法、装置、设备及存储介质 |