使用虛擬網關和通配符的網關管理的制作方法
【專利摘要】用于管理網關的系統、方法和介質。在實施方案中,生成虛擬網關,所述虛擬網關包括存儲在至少一個遠程物理網關上的一個或多個活動腳本和/或裝置信息(例如,裝置驅動器和/或針對裝置、裝置類型和/或裝置組的定義和/或配置)中的每個的表示。提供至少一個用戶接口,以用于編輯所述虛擬網關中表示的所述一個或多個活動腳本和/或裝置信息中的每個。通過至少一個網絡來自動維持所述虛擬網關中表示的所述一個或多個活動腳本和/或裝置信息與存儲在所述至少一個遠程物理網關上的所述一個或多個活動腳本和/或裝置信息之間的同步。
【專利說明】使用虛擬網關和通配符的網關管理
【背景技術】 發明領域
[0001] 本文中所述的實施方案大體涉及網關的管理,且更確切地說,涉及經由虛擬網關 對物理網關上的控制腳本和/或驅動器進行管理。
[0002] 相關技術描述
[0003] 機器對機器(M2M)系統的使用現在并且將持續是商業和社會的普遍關注方面。M2M 系統是物聯網(Ι〇Τ)的整體部分,并且具有廣泛的應用,包括監測和控制工業和建筑自動 化、智能設施、智能電網、智能城市、保健、酒店、食品服務等。
[0004] 在Μ2Μ和IoT生態系統中,機器對機器系統中的裝置之間的通信可以使用位于裝置 之間的網關裝置來執行。網關裝置也可以提供額外的服務,諸如,應用的安全執行,包括控 制、監測、報告和警告腳本;一個或多個裝置、裝置類型和/或裝置組的配置和激活/停用;以 及以通信方式連接到網關裝置的裝置、裝置類型和/或裝置組的數據捕獲和報告。
[0005] 作為簡單的實例,在工業自動化的背景下,物理設施內的各種裝置可以通信方式 連接到用于該設施的網關裝置。這些裝置可以包括傳感器(例如,溫度傳感器、開啟/閉合傳 感器、鎖定/解鎖傳感器)和可操作裝置,諸如,門、窗戶、鎖、燈、大門、閥門等。網關裝置可以 執行一個或多個控制腳本,所述控制腳本監測裝置中的一個或多個(例如,通過接收來自溫 度傳感器的溫度測量、接收門鎖的狀態等)并且基于其他裝置和/或條件的監測來控制裝置 中的一個或多個(例如,如果大門被打開則開燈、在某一時間開門或鎖門、如果溫度超出某 一閾值則發出警報等)。
[0006] 在分布式監測和控制系統中(例如,在大型設施或者多個地理上分散的設施上), 多個網關可以通過一個或多個網絡(例如,互聯網)與彼此和/或中央平臺通信。在此類情形 中,可能存在必須要進行配置、安裝、操作和管理的許多網關(例如,數百個)。這可能使得難 以確保每個網關和任何相關聯的腳本和裝置、裝置類型和/或裝置組被適當配置、測試、實 施、更新或備份,以保證預期的操作。
[0007] 因此,需要能夠更有效地管理網關的技術,包括Μ2Μ、Ι〇Τ、基于云的系統和/或基于 分布式服務器的系統內的網關、腳本和裝置、裝置類型和/或裝置組的定義、配置、測試、實 施、更新和恢復。
【發明內容】
[0008] 因此,公開用于管理網關的系統、方法和介質。
[0009] 在實施方案中,公開一種系統。所述系統包括:至少一個硬件處理器;以及一個或 多個模塊,所述一個或多個模塊在被所述至少一個硬件處理器執行時:生成虛擬網關,所述 虛擬網關包括存儲在至少一個遠程物理網關上的一個或多個活動腳本和活動裝置信息(例 如,裝置驅動器和/或針對裝置、裝置類型和/或裝置組的定義和/或配置)中的每個的表示; 提供至少一個用戶接口,以用于編輯所述虛擬網關中表示的所述一個或多個活動腳本和活 動信息中的每個;以及通過至少一個網絡來自動維持所述虛擬網關中表示的所述一個或多 個活動腳本和活動裝置信息與存儲在所述至少一個遠程物理網關上的所述一個或多個活 動腳本和活動裝置信息之間的同步。
[0010]在另一實施方案中,公開一種方法。所述方法包括使用至少一個硬件處理器以便: 生成虛擬網關,所述虛擬網關包括存儲在至少一個遠程物理網關上的一個或多個活動腳本 和活動信息中的每個的表示;提供至少一個用戶接口,以用于編輯所述虛擬網關中表示的 所述一個或多個活動腳本和活動裝置信息中的每個;以及通過至少一個網絡來自動維持所 述虛擬網關中表示的所述一個或多個活動腳本和活動信息與存儲在所述至少一個遠程物 理網關上的所述一個或多個活動腳本和活動裝置信息之間的同步。
[0011]在另一實施方案中,公開一種存儲有指令的非暫時計算機可讀介質。所述指令在 被處理器執行時致使所述處理器:生成虛擬網關,所述虛擬網關包括存儲在至少一個遠程 物理網關上的一個或多個活動腳本和活動裝置信息中的每個的表示;提供至少一個用戶接 口,以用于編輯所述虛擬網關中表示的所述一個或多個活動腳本和活動裝置信息中的每 個;以及通過至少一個網絡來自動維持所述虛擬網關中表示的所述一個或多個活動腳本和 活動裝置信息與存儲在所述至少一個遠程物理網關上的所述一個或多個活動腳本和活動 裝置信息之間的同步。
【附圖說明】
[0012] 通過研究附圖可以部分收集本發明在結構和操作方面的細節,其中類似參考數字 指代類似部分,并且在附圖中:
[0013] 圖1示出根據實施方案的可以操作所公開的系統、方法和介質的實施方案的基礎 設施;
[0014] 圖2示出根據實施方案的用于將網關同步的系統;
[0015]圖3示出根據實施方案的用于將腳本鏡像和同步到多個網關的系統;
[0016] 圖4示出根據實施方案的用于編輯網關的可編輯部件的過程;
[0017] 圖5示出根據實施方案的用于將網關同步的過程;
[0018] 圖6示出根據實施方案的用于將腳本中的通配符解引用的過程;以及
[0019] 圖7示出根據實施方案的可以執行本文所述的過程中的一個或多個的處理系統。
【具體實施方式】
[0020] 在實施方案中,公開用于網關的管理的系統、方法和介質,包括虛擬網關、物理網 關、控制腳本和/或裝置信息(例如,裝置驅動器和/或針對裝置、裝置類型和/或裝置組的定 義和/或配置)的執行、創建、配置、測試、實施、操作、更新、備份和恢復。在閱讀本說明書之 后,所屬領域的技術人員將明白如何在各個替代實施方案和替代應用中實施本發明。然而, 盡管本文中將描述本發明的各個實施方案,但應理解,僅通過實例和說明來呈現這些實施 方案,而不限制。因此,各個實施方案的本詳細描述不應被解釋為限制如所附權利要求書中 提出的本發明的范圍或廣度。
[0021] 分布式M2M和IoT生態系統的設計、測試、實施、操作和恢復方面存在至少五個主要 挑戰:
[0022] (1)裝置、裝置類型和裝置組標識、定義、配置、內容管理(curation)、操作、更新、 性能分析、恢復以及通信;
[0023] (2)用于裝置和網關操作、監測、控制、性能分析、恢復和管理的腳本創建、操作/性 能測試、內容管理、實施以及更新;
[0024] (3)網關配置、創建、操作/性能測試、內容管理、實施、更新、恢復、性能分析以及管 理;
[0025] (4)有效的M2M和IoT生態系統設計、測試、實施、操作、恢復和管理;以及
[0026] (5)將新裝置、裝置類型、裝置組、腳本、通信、控制協議和行業標準有效整合和實 施到Μ2Μ和IoT生態系統中。
[0027] 例如,通過下列一個或多個,本文中公開的某些實施方案解決這些挑戰:
[0028] (1)為授權用戶提供能力(例如,授予具體的訪問、權限和許可,以便訪問生態系統 中所選擇的定義的物理和/或邏輯部件和/或執行生態系統中所選擇的定義的物理和/或邏 輯功能),以便創建、定義和測試特定裝置、裝置類型和/或裝置組的虛擬表示,從而使得這 些授權用戶能夠:
[0029] (a)針對特定的虛擬裝置(例如,具體型號的恒溫器)來定義屬性、相關聯的值以及 通信/控制協議(例如,BACnet、EnOcean、藍牙低功耗等);
[0030] (b)針對特定類型的虛擬裝置(例如,任何型號的恒溫器)來定義屬性、相關聯的值 以及通信/控制協議;
[0031] (c)針對一組虛擬裝置來定義屬性、相關聯的值以及通信/控制協議(例如,建筑 HVAC系統,其可包括,但不限于,一個或多個恒溫器、鍋爐控制器、C02氣體檢測器、氣體截止 閥、冷卻器控制器、水檢測器、水截止閥、阻尼器控制器、占據檢測器、陽光傳感器等);
[0032] (d)針對虛擬裝置、虛擬裝置類型和/或虛擬裝置組來定義用于通信/控制協議的 虛擬網關負載、處理、存儲器和數據存儲;和/或
[0033] (e)將通配符用于虛擬裝置、虛擬裝置類型和/或虛擬裝置組,當在一個或多個物 理網關上激活并實施含有此類通配符的腳本時,所述虛擬裝置、虛擬裝置類型和/或虛擬裝 置組被以通信方式連接到這些物理網關的特定物理裝置、特定類型的裝置和/或特定裝置 組的標識符或其他表示自動替換("解引用"),從而使得分配給所述物理裝置、裝置類型和/ 或裝置組的所有適用的相關聯屬性值自動更新到它們對應的虛擬表示中定義的那些; [0034] (2)為授權用戶提供能力,以便在虛擬環境中創建、定義和測試腳本,包括:
[0035] (a)創建腳本并且分配受到所述腳本影響的虛擬裝置、裝置類型和/或裝置組;
[0036] (b)測試腳本和它們相關聯的虛擬裝置、裝置類型和/或裝置組的操作和性能特 征;和/或
[0037] (c)創建腳本和相關聯的虛擬裝置、裝置類型和/或裝置組的庫;
[0038] (3)為授權用戶提供能力,以便創建、定義和測試虛擬網關,包括:
[0039] (a)針對特定的虛擬網關(例如,北校區10號樓1層的位置)來定義屬性、相關聯的 值以及通信/控制協議(例如,BACnet、EnOcean、藍牙低功耗等);
[0040] (b)針對特定類型的虛擬網關(例如,具體型號的網關)來定義屬性、相關聯的值以 及通信/控制協議;
[0041] (c)針對一組虛擬網關(例如,北校區10號樓的位置)來定義屬性、相關聯的值以及 通信/控制協議;
[0042] (d)將一個或多個虛擬裝置、裝置類型和/或裝置組分配給虛擬網關、虛擬網關類 型和/或虛擬網關組;
[0043] (e)從虛擬網關、虛擬網關類型和/或虛擬網關組中移除一個或多個虛擬裝置、虛 擬裝置類型和/或虛擬裝置組;
[0044] (f)測試分配給虛擬網關、虛擬網關類型和/或虛擬網關組的虛擬裝置、虛擬裝置 類型和/或虛擬裝置組的操作、性能、通信/控制協議的負載、處理、存儲器和/或數據存儲;
[0045] (g)單獨和/或共同將腳本和相關聯的虛擬裝置、虛擬裝置類型和/或虛擬裝置組 分配給虛擬網關,以便測試虛擬裝置、虛擬裝置類型和/或虛擬裝置組的操作、性能、通信/ 控制協議的負載、處理、存儲器和/或數據存儲;
[0046] (h)單獨和/或共同將腳本和相關聯的虛擬裝置、虛擬裝置類型和/或虛擬裝置組 分配給虛擬網關類型,以便測試虛擬裝置、虛擬裝置類型和/或虛擬裝置組的操作、性能、通 信/控制協議的負載、處理、存儲器和/或數據存儲;
[0047] (i)單獨和/或共同將腳本和相關聯的虛擬裝置、虛擬裝置類型和/或虛擬裝置組 分配給虛擬網關組,以便測試虛擬裝置、虛擬裝置類型和/或虛擬裝置組的操作、性能、通 信/控制協議的負載、處理、存儲器和/或數據存儲;
[0048] (j)針對虛擬網關、虛擬網關類型和/或虛擬網關組,激活一個或多個腳本和相關 聯的虛擬裝置、虛擬裝置類型和/或虛擬裝置組;
[0049] (k)針對虛擬網關、虛擬網關類型和/或虛擬網關組,停用一個或多個腳本和相關 聯的虛擬裝置、虛擬裝置類型和/或虛擬裝置組;
[0050] (1)針對虛擬網關、虛擬網關類型和/或虛擬網關組,維持活動和不活動虛擬裝置、 虛擬裝置類型和/或虛擬裝置組的庫;
[0051] (m)針對虛擬網關、虛擬網關類型和/或虛擬網關組,維持活動/不活動、草案、經驗 證和未經驗證腳本及相關聯的虛擬裝置、虛擬裝置類型和/或虛擬裝置組的庫;以及 [0052] (η)單獨和/或共同將一個或多個虛擬網關、虛擬網關類型和/或虛擬網關組分配 給計算環境,以識別所需的資源和它們的性能,以便設計、測試、最終確定、實施、管理和更 新有效支持Μ2Μ或IoT生態系統所需的物理環境;
[0053] (4)使得授權用戶能夠選擇實施特定虛擬網關及其活動腳本、虛擬裝置、虛擬裝置 類型和/或虛擬裝置組的一個或多個物理網關。如果將要在物理網關上實施的活動腳本引 用虛擬裝置、虛擬裝置類型和/或虛擬裝置組,并且物理網關沒有以通信方式連接到對應的 物理裝置、物理裝置類型和/或物理裝置組,那么可以暫停虛擬裝置、虛擬裝置類型和/或虛 擬裝置組的激活,直到物理網關與對應的物理裝置、物理裝置類型和/或物理裝置組之間建 立通信為止。一旦已建立通信,物理裝置、物理裝置類型和/或物理裝置組中的每個便可以 分別與其對應的虛擬裝置、虛擬裝置類型和/或虛擬裝置組同步。裝置、裝置類型和/或裝置 組的暫停將不影響所實施的活動腳本的操作:
[0054] (a)授權用戶可以使用鏡像來實施網關,在這種情況下,每當特定虛擬網關改變 和/或每當鏡像物理網關的集合內的任何物理網關改變時,鏡像特定虛擬網關的所有物理 網關都將自動同步;以及
[0055] (b)授權用戶可以使用復制來實施網關,在這種情況下,根據作為配置的來源的虛 擬網關,實施該虛擬網關的復本的所有物理網關都將自動初始化。在實施方案中,針對每個 復制的物理網關,創建相關聯的鏡像虛擬網關。在復制的虛擬網關或者實施復本的物理網 關上激活的改變將在兩者之間同步;
[0056] (5)使得授權用戶能夠選擇實施虛擬網關類型及其活動腳本、虛擬裝置、虛擬裝置 類型和/或虛擬裝置組的一個或多個物理網關類型:
[0057] (a)授權用戶可以基于網關的類型使用鏡像來實施網關,在這種情況下,每當特定 虛擬網關類型改變時和/或每當鏡像類型的任何物理網關改變時,鏡像特定虛擬網關類型 的那種類型的所有物理網關都將自動同步;以及
[0058] (b)授權用戶可以基于網關的類型使用復制來實施網關,在這種情況下,根據作為 配置的來源的虛擬網關類型,屬于該虛擬網關類型的復本的那種類型的所有物理網關都將 自動初始化。在實施方案中,針對每個物理網關類型,創建相關聯的鏡像虛擬網關類型。在 復制的虛擬網關類型或者實施復制的虛擬網關類型的物理網關上激活的改變將在兩者之 間同步;
[0059] (6)使得授權用戶能夠選擇實施虛擬網關組及其活動腳本、虛擬裝置、虛擬裝置類 型和/或虛擬裝置組的一個或多個物理網關組:
[0060] (a)授權用戶可以基于相關聯的網關組使用鏡像來實施網關,在這種情況下,每當 特定虛擬網關組改變時和/或每當該組中的任何物理網關改變時,鏡像特定虛擬網關組的 組中的所有物理網關都將自動同步;以及
[0061] (b)授權用戶可以基于相關聯的網關組使用復制來實施網關,在這種情況下,根據 作為配置的來源的虛擬網關組,作為該虛擬網關組的復本的組中的所有物理網關都將自動 初始化。在實施方案中,針對每個物理網關組,創建相關聯的鏡像虛擬網關組。在復制的虛 擬網關組或者實施復制的虛擬網關組的物理網關上激活的改變將在兩者之間同步;以及 [0062] (7)使得能夠進行恢復:
[0063] (a)針對實施虛擬網關、虛擬網關類型和/或虛擬網關組的復本的物理網關、物理 網關類型和/或物理網關組:
[0064] (i)如果物理網關、物理網關類型和/或物理網關組由于通信問題而離線,那么當 它恢復在線時,它將分別與相關聯的虛擬網關、虛擬網關類型和/或虛擬網關組自動同步; 和,
[0065] (ii)如果物理網關、物理網關類型和/或物理網關組由于系統故障而離線,那么當 它恢復在線時,它將分別自動下載相關聯的虛擬網關、虛擬網關類型和/或虛擬網關組的最 近同步的復本;以及
[0066] (b)針對鏡像虛擬網關、虛擬網關類型和/或虛擬網關組的物理網關、物理網關類 型和/或物理網關組,如果物理網關、物理網關類型和/或物理網關組由于通信問題或系統 故障而離線,那么當它恢復在線時,它將分別與鏡像的虛擬網關、虛擬網關類型和/或虛擬 網關組自動同步,
[0067] 1.系統概述
[0068] 1.1.基礎設施
[0069] 圖1示出根據實施方案的用于控制腳本和/或驅動器的管理的示例系統。該系統可 包括平臺110,該平臺包括托管和/或執行本文所述的各種功能、過程、方法和/或軟件模塊 中的一個或多個的一個或多個服務器112的集合。應理解,平臺110可包括可以或可不專用 于所公開的網關管理過程的云環境。在云環境中,諸如虛擬、邏輯和/或物理計算資源、存儲 資源、安全資源、通信資源、管理資源等的資源可以在服務和應用之間共享和/或專用。
[0070] 此外,平臺110可(例如,經由一個或多個部件,諸如,平臺110的通信資源)以通信 方式經由一個或多個網絡120連接到一個或多個網關130和/或一個或多個用戶系統150,并 且也可以通信方式連接到一個或多個數據庫114(例如,經由一個或多個網絡,諸如,網絡 120或專用網絡,或者經由直接連接)和/或可包括一個或多個數據庫114。網絡120可包括互 聯網,并且服務器112可以使用標準傳輸協議(諸如,超文本傳輸協議(HTTP)、安全HTTP (!^?3)、文件傳輸協議卬了?)、?了?安全$了?3)、33!1?了?(3?了?)等)以及專用協議通過互聯 網來與網關130和用戶系統150通信。還應理解,平臺110的部件(例如,云資源,諸如服務器 112)可以但不要求并置。此外,盡管將平臺110示為通過網絡120的單個集合連接到各個系 統,但應理解,平臺110可以經由一個或多個網絡的不同集合連接到各個系統。還應理解,網 關130和/或用戶系統150可以包括能夠有線和/或無線通信的任何一個或多個類型的計算 裝置,包括但不限于:臺式計算機、膝上型計算機、平板計算機、智能電話或其他移動電話、 服務器、游戲主控臺、電視機、機頂盒、電子廣告亭、自動出納機、銷售點(P0S)終端、智能可 穿戴裝置、醫療或保健裝置、Ι〇Τ生態系統內的任何裝置等等。此外,每個網關130可與一個 或多個裝置和/或其他網關130以通信方式連接。盡管只示出了一些網關130、裝置140和用 戶系統130、一個平臺110、服務器112的一個集合以及數據庫114的一個集合,但應理解,基 礎設施可以包括任何數量的網關、裝置、用戶系統、平臺、服務器集合以及數據庫。
[0071] 平臺110可以包括托管一個或多個網站或網絡服務的網絡服務器。在提供網站的 實施方案中,網站可以包括一個或多個用戶接口,例如,包括用超文本標記語言(HTML)或其 他語言(例如,基于圖形和/或基于文本的語言)生成的網頁。響應于來自用戶系統150的請 求,平臺110傳輸或服務這些用戶接口。應理解,用戶系統150可以包括能夠有線和/或無線 通信的任何一個或多個類型的計算裝置,包括但不限于:臺式計算機、膝上型計算機、平板 計算機、智能電話或其他移動電話、服務器、游戲主控臺、電視機、機頂盒、電子廣告亭、自動 出納機、銷售點(P0S)終端、智能可穿戴裝置、醫療或保健裝置、IoT生態系統內的任何裝置 等等。
[0072] 在一些實施方案中,可以采用向導程序的形式服務這些用戶接口,在這種情況下, 兩個或更多用戶接口可以按順序方式得到服務,并且順序用戶接口中的一個或多個可以取 決于用戶或用戶系統150與一個或多個先前用戶接口的交互。對平臺110的請求和來自平臺 110的響應(包括用戶接口)都可以使用標準通信協議(例如,HTTP、HTTPS)通過網絡120進行 傳送,所述網絡可包括互聯網。這些用戶接口或網頁可以包括內容和元素的組合,諸如,文 本、圖像、視頻、動畫、引用(例如,超鏈接)、框架、輸入(例如,文本框、文本區域、復選框、單 選按鈕、下拉菜單、按鈕、表單等)、腳本(例如JavaScript)等等,包括下列元素:該元素包 含或來源于存儲在一個或多個數據庫(例如,數據庫114)或者平臺110可本地和/或遠程訪 問的裝置中的數據。平臺11 〇也可響應于來自用戶系統150的其他請求。
[0073] 平臺110可以進一步包括、以通信方式耦接或者以其他方式訪問一個或多個數據 庫114。例如,平臺110可以包括管理一個或多個數據庫114的一個或多個數據庫服務器。用 戶系統150或者在平臺110上執行的應用可以提交將要存儲在數據庫114中的數據(例如,用 戶數據、表單數據等),和/或請求訪問存儲在此類數據庫114中的數據(例如,如果是授權用 戶請求的話)。可以使用任何合適的數據庫,包括但不限于,任何關系型或非關系型數據庫、 數據存儲區、數據blob等等,包括基于云的數據庫實例和專用數據庫。例如,使用HTTP支持 的已知POST請求經由FTP、其他公共協議、專用協議等,數據可以發送到平臺110。例如,該數 據以及其他請求可以由平臺110執行的云側和/或服務器側網絡技術處理,諸如,小服務程 序或其他軟件模塊。此外,平臺110可以提供緩存,以便加速響應時間(例如,針對常見請 求)。
[0074]在提供網絡服務的實施方案中,平臺110可以接收來自用戶系統150的請求,并且 用可擴展標記語言(XML)和/或任何其他合適或需要的格式提供響應。在此類實施方案中, 平臺110可以提供定義了用戶系統150可與網絡服務交互的方式的應用編程接口(API)。因 此,本身可以是云環境和/或服務器的用戶系統150可以定義它們自己的用戶接口,并且依 賴于網絡服務來實施或以其他方式提供本文所述的后端過程、方法、功能、存儲等。例如,在 此類實施方案中,在一個或多個用戶系統150上執行的客戶端應用可以與在平臺110上執行 的服務器應用交互,以便執行一個或多個本文所述的各種功能、過程、方法和/或軟件模塊 或者其中的一個或多個的一部分。客戶端應用可能是"瘦"的,在這種情況下,處理主要由平 臺110在云側和/或服務器側實施。瘦客戶端應用的基礎實例是在用戶系統150處只請求、接 收和呈現網頁的瀏覽器應用,而平臺110負責生成網頁和管理數據庫功能。或者,客戶端應 用可能是"胖"的,在這種情況下,處理主要由用戶系統150在客戶端側實施。應理解,客戶端 應用可以相對于平臺110在沿著"瘦"與"胖"之間的這個范圍的任何點處執行一些處理,取 決于特定實施的設計目標。在任一情況下,可以完全存在于平臺110或用戶系統150上或者 分布在平臺110與用戶系統150之間的應用可以包括實施本文所述的應用的過程、方法或功 能中的一個或多個的一個或多個可執行軟件模塊。
[0075] 1.2.網關同步和操作
[0076]盡管網關130可以包括能夠與平臺110通信的任何類型的裝置,但在實施方案中, 每個網關130都是專用裝置。此外,在實施方案中,每個網關130管理一個或多個以通信方式 連接的(例如,無線或有線)裝置140。
[0077]圖2示出根據實施方案的以通信方式與平臺110連接的示例物理網關130。網關130 包括腳本管理器132、腳本引擎134和裝置管理器136。平臺110包括用戶接口模塊116、同步 模塊118,并且可以訪問虛擬網關130 '(例如,存儲在平臺110或另一平臺中的數據庫114 中)。應理解,可能存在平臺110可訪問的多個虛擬網關130'。每個虛擬網關130'都可包括物 理網關130的虛擬表示,包括腳本管理器132、腳本引擎134、裝置管理器136和/或在物理網 關130上存儲和/或執行的任何其他內容或數據。單個虛擬網關130'可以針對單獨的物理網 關130或者兩個或更多物理網關130的組(其可以是相同配置的,除了裝置、裝置類型和/或 裝置組的數量和/或激活的差異之外)存在。例如,數據庫114可以存儲虛擬網關130'的標識 符與一個或多個鏡像物理網關130的標識符之間的關聯,所述鏡像物理網關與或者應該與 該虛擬網關130'同步。
[0078]在實施方案中,當通過將第一虛擬網關130'復制到物理網關上來實施物理網關 130時,針對物理網關130創建唯一的第二虛擬網關并且該第二虛擬網關與該物理網關相關 聯(例如,經由數據庫114中的物理網關130的標識符與第二虛擬網關之間的存儲關聯)。應 理解,這個第二虛擬網關可以是第一虛擬網關130'的復本。或者,第二虛擬網關可以從頭開 始創建,而不是從預先存在的第一虛擬網關復制。在任一情況下,第二虛擬網關在結構上都 可以與第一虛擬網關相同。然而,當第二虛擬網關是從第一虛擬網關130'復制時,根據以通 信方式連接到相關聯的物理網關130的物理裝置、裝置類型和/或裝置組,第一虛擬網關 130'中的任何腳本中的任何通配符可以在第二虛擬網關中解引用。隨后,對第二虛擬網關 作出的任何改變都將被鏡像在物理網關130中,并且物理網關130中的任何改變都將被鏡像 在第二虛擬網關中。因此,不論是從頭開始創建還是作為第一虛擬網關130'的復本的第二 虛擬網關都采用與第一虛擬網關130'相同的方式操作,除了它與一個特定的物理網關130' 相關聯并且特定于該物理網關(例如,相對于該物理網關解引用),而第一虛擬網關130'與 一個或多個物理網關130相關聯并且普遍用于所述物理網關。
[0079] 平臺110上的用戶接口模塊116提供圖形用戶接口,以便于管理用戶域中的每個網 關130、虛擬網關130'或者兩個或更多物理網關130和/或虛擬網關130'的組。在實施方案 中,將每個虛擬網關130和與該虛擬網關130相關聯的每個物理網關130(例如,包括與單 個虛擬網關130'或多個虛擬網關130'相關聯的鏡像物理網關130的組,例如,所述多個虛擬 網關分布在多個平臺上)作為一對或集體管理。例如,平臺110可以包括將網頁供應給用戶 系統150的網絡服務器。這些網頁可包括用于創建、更改(例如,編輯部件、改變部件的狀態, 諸如,從活動到不活動等等)和/或刪除網關130的部件的一個或多個輸入。例如,網頁可以 包括使得用戶能夠創建、更改或刪除用于一個特定物理網關130及其相關聯的虛擬網關 130'或者與特定虛擬網關130'或多個虛擬網關130'相關聯的所有物理網關130的腳本的輸 入。作為另一實例,網頁可以包括使得用戶能夠針對一個特定物理網關130及其相關聯的虛 擬網關130 '或者與特定虛擬網關130'或多個虛擬網關130'相關聯的所有物理網關130的裝 置管理器136來創建、更改或刪除裝置信息(例如,裝置驅動器和/或針對裝置、裝置類型和/ 或裝置組的定義和/或配置)的輸入。在下文論述的實施方案中,針對每對鏡像網關,同步模 塊118確保添加、更改或刪除的腳本和/或裝置信息在物理網關130及其相關聯的虛擬網關 130'中分別添加、更改或刪除。
[0080] 在實施方案中,數據庫114包括主腳本庫和/或虛擬網關腳本庫,其中任一個都可 以包括用戶經由用戶接口模塊116可用的一個或多個主腳本。主腳本可包括通用腳本、指導 腳本、由增值分銷商提供的腳本、許可腳本等等。例如,用戶可以訪問腳本的公共集合,和/ 或能夠購買許可證以便訪問和使用主腳本庫內的各種腳本或腳本組。用戶可以訪問他們在 主腳本庫中可訪問的腳本(例如,他們被授權訪問和/或更改的腳本),并且根據需要來更改 所述腳本,以便創建支持用戶需要或需求的腳本。更改或未更改的腳本隨后可以復制或鏡 像到它們控制(即,用戶域)內的物理網關130中。例如,用戶可以從主腳本庫中選擇先前創 建的腳本、任選地更改腳本,以及將更改或未更改的腳本下載到用戶域內的網關130并且激 活。在下文論述的實施方案中,到物理網關130的連接一可用,同步模塊118就將該激活腳本 下載到對應物理網關130的腳本管理器132。在使用腳本中的通配符的實施方案中,如果激 活腳本包括任何通配符,那么這些通配符將被解引用,以便由以通信方式連接到物理網關 130的對應物理裝置、物理裝置類型和/或物理裝置組的標識符替換。
[0081 ]平臺110上的同步模塊118提供虛擬網關130'與物理網關130之間的同步。如上文 論述,一個虛擬網關130'與一個物理網關130之間可以是一對一對應。例如,在虛擬網關 130 '被復制到特定物理網關130的情況下,該虛擬網關130 '可被復制,它的腳本中的任何通 配符可以解引用,并且虛擬網關130'的復本可以與一對一對應的特定物理網關130獨特關 聯。此外,一個虛擬網關130'與多個物理網關130之間可以是一對多對應,或者多個虛擬網 關130'與一個或多個物理網關130之間可以是多對一或多對多對應。例如,當選擇將一組物 理網關130鏡像到特定虛擬網關130'或多個虛擬網關130'時,可能出現這種情況。然而,應 理解,單個物理網關130可以被鏡像到特定虛擬網關130',從而導致一對一對應,類似于得 自將虛擬網關130 '復制到物理網關130的一對一對應。在實施方案中,唯一的區別可能在 于,當虛擬網關130'被復制到物理網關130時,平臺110上的虛擬網關130'的復本中的任何 腳本都相對于物理網關130解引用,而當物理網關130被鏡像到虛擬網關130'時,平臺110上 的虛擬網關130'的腳本沒有解引用。在后一種情況下,當被鏡像到虛擬網關130'的物理網 關130與虛擬網關130'同步時,任何下載的腳本都可在物理網關130處解引用(或者在被下 載到物理網關130之前,在平臺110處解引用),而平臺110上的虛擬網關130'中的腳本可以 繼續包括任何通配符。因此,無論虛擬網關130'的屬性如何,由同步模塊118執行的同步可 以相同,但應理解,當虛擬網關130'包括通配符時,腳本可能需要解引用(例如,由同步模塊 118或另一模塊,諸如腳本管理器132或腳本引擎134解引用)。因此,無論虛擬網關130'的屬 性如何,該虛擬網關130'與其一個或多個相關聯的物理網關130之間的同步在本文中都可 稱為"鏡像",并且這些相關聯的物理網關130在本文中可稱為"鏡像網關"或"鏡像物理網 關"。
[0082] 在實施方案中,每當對虛擬網關130'和/或與虛擬網關130'相關聯的任何物理網 關130中將要同步的模塊中的一個(例如,腳本管理器132、腳本引擎134和/或裝置管理器 136)作出改變時,自動執行同步。例如,如果在虛擬網關130'的腳本管理器中更改了腳本 (例如,經由用戶接口模塊116),那么同步模塊118可以自動下載或更改任何相關聯的物理 網關130的腳本管理器132中的對應腳本。類似地,如果將裝置驅動器、虛擬裝置、虛擬裝置 類型和/或虛擬裝置組添加到虛擬網關130'的裝置管理器,那么同步模塊118可以自動將裝 置驅動器、對應的物理裝置、對應的物理裝置類型和/或對應的物理裝置組分別添加到任何 相關聯的物理網關130的裝置管理器136。
[0083]只要平臺110與網關130之間存在連接210,同步模塊118便可繼續與每個鏡像網關 130同步。如果平臺110與鏡像網關130之間的連接丟失,那么在平臺110與鏡像網關130之間 的連接210可以重新建立之后,同步模塊118就可執行同步。在這種情況下,與當前沒有建立 連接210的鏡像網關130相關聯的虛擬網關130'充當容器,該容器保存在連接210建立之后 將由同步模塊118實施的物理網關130的配置。在替代或額外的實施方案中,可以手動執行 同步(例如,響應于用戶操作)和/或半自動執行同步(例如,在響應于提示后遵循用戶確 認)。
[0084]應理解,盡管圖2將虛擬網關130'示為包括相關聯的鏡像物理網關130的腳本管理 器132、腳本引擎134和裝置管理器136的虛擬表示,但虛擬網關130'可以包括鏡像物理網關 130的更多或更少部件的虛擬表示,取決于給定的設計中需要同步哪些元件。例如,在實施 方案中,只有活動腳本和/或裝置信息(例如,裝置驅動器和/或針對裝置、裝置類型和/或裝 置組的定義和/或配置)可以在虛擬網關130'與鏡像物理網關130之間同步。在此類實施方 案中,虛擬網關130'只需要包括與本地存儲在相關聯的鏡像物理網關130上的對應活動腳 本、物理裝置、物理裝置類型、物理裝置組和/或裝置驅動器同步的腳本列表、虛擬裝置、虛 擬裝置類型、虛擬裝置組和/或裝置驅動器。在虛擬網關130'本身可執行(例如,在云中可執 行)的實施方案中,公共或共享腳本引擎可用來在平臺110處執行來自多個虛擬網關130 '的 腳本。
[0085]物理網關130上的腳本管理器132管理用于控制以通信方式連接到鏡像物理網關 130的一個或多個物理裝置140、物理裝置類型和/或物理裝置組的腳本。在實施方案中,腳 本管理器132將活動腳本存儲在物理網關130上的存儲器的本地數據庫中。腳本管理器132 可以訂閱平臺11〇(即,被鏡像到平臺110上的虛擬網關130'),從而使得同步模塊118維持與 物理網關130相關聯的虛擬網關130'的活動腳本的至少子集與本地存儲在物理網關130的 存儲器中的腳本之間的同步。因此,每當將活動腳本添加到虛擬網關130 '時,同步模塊118 也經由連接210將該腳本傳輸到每個鏡像物理網關130的腳本管理器132,從而使得腳本被 本地存儲在每個鏡像物理網關130上并且遠程存儲在虛擬網關130'中。同樣地,每當從虛擬 網關130'中刪除或停用腳本時,同步模塊118也經由連接210請求從每個鏡像物理網關130 的腳本管理器132中刪除或停用該腳本,從而使得從虛擬網關130'和物理網關130中刪除該 腳本。此外,每當在虛擬網關130'中更改活動腳本時,同步模塊118經由連接210與每個鏡像 物理網關130的腳本管理器132通信,以便對物理網關130上的腳本的本地存儲復本實施相 同的更改(例如,通過替換本地腳本或者通過將表示遞增更改的delta應用到本地腳本)。應 理解,通過類似的方式,同步模塊118可以實現虛擬網關130'中的改變,以便使虛擬網關 130'與相關聯的鏡像物理網關130處的更改或改變同步。
[0086]在實施方案中,同步模塊118只將虛擬網關130'中的活動和/或經驗證腳本與存儲 在鏡像物理網關130上的腳本同步。例如,虛擬網關130 '中的腳本可與"活動"或"不活動"的 狀態相關聯。"不活動"狀態表明腳本不應在虛擬網關130'及其相關聯的鏡像物理網關130 中執行,而"活動"狀態表明腳本應在虛擬網關130'及其相關聯的鏡像物理網關130中執行。 當將來自虛擬網關130'的腳本同步到相關聯的鏡像物理網關130時,同步模塊118可以避免 將具有"不活動"狀態的任何腳本同步到鏡像物理網關130。或者,同步模塊118可以將不活 動腳本添加到鏡像物理網關130,但具有"不活動"狀態。此外,如果虛擬網關130'中的腳本 從"活動"變成"不活動",那么同步模塊118可以在鏡像物理網關130中將腳本的狀態改成 "不活動",或者從鏡像物理網關130中刪除該腳本。
[0087] 同步模塊118可以采用類似的方式處理經驗證和未經驗證腳本。經驗證腳本是已 被驗證為采用預期方式操作的那些腳本,而未經驗證腳本是沒有被驗證為采用預期方式操 作的那些腳本。例如,未經驗證腳本可包括不完整和/或未測試的腳本,仍處于開發或調試 的過程中。在實施方案中,同步模塊118沒有將未經驗證腳本從虛擬網關130'鏡像到鏡像物 理網關130。或者,用戶可以指定未經驗證腳本是否應被鏡像在物理網關130上(例如,通過 將腳本的狀態設置為"活動"或"不活動",如上文所述)。
[0088]在實施方案中,物理網關130上的腳本管理器132將本地存儲的腳本提供作為腳本 引擎134的輸入。腳本引擎134可包括執行輸入腳本的虛擬機。在實施方案中,物理網關130 還可包括置于腳本管理器132與腳本引擎134之間或者包括在其中一個內的編譯器。在此類 實施方案中,存儲在物理網關130上的腳本可以存儲為通過編譯器饋送的源代碼,并且輸出 為將由腳本引擎134的虛擬機執行的虛擬機代碼。在實施方案中,腳本引擎134的虛擬機并 行提供多個腳本的線程執行。
[0089] 在實施方案中,腳本引擎134與裝置管理器136對接,而該裝置管理器又經由有線 和/或無線連接與裝置140對接。裝置管理器136可包括用于與裝置140、裝置類型和/或裝置 組通信和交互的一個或多個驅動器。裝置140實際上可以包括任何類型的裝置或裝置組以 及裝置類型或組的組合,包括但不限于:傳感器(例如,運動傳感器、溫度傳感器、濕度傳感 器、氣壓計、開啟/閉合傳感器、鎖定/解鎖傳感器等)、鎖(例如,門鎖或窗戶鎖)、門、窗戶、 燈、供熱通風與空氣調節單元(HVAC)、自動售貨機、自動出納機(ATM)、銷售點(P0S)終端、安 全系統和部件、灌溉系統和部件、水池或溫泉浴場、水龍頭、家用電器(例如,烘箱、冰箱、洗 衣機等)、電系統和部件、氣體系統、打印機、電視機、揚聲器、大門、鍋爐、加熱系統、冷卻器、 制冷系統、醫療或保健可穿戴設備和系統等。裝置管理器136可以使用有線通信(例如,經由 網關130中的物理端口)和/或無線通信(例如,BACnet、Modbus、LonWorks、EnOcean、藍牙低 功耗(BLE)、Wi-Fi,諸如,802.11&/13/^/11/&。、町^低功耗、2-此^5、21 8866*、81脫切〇讓?、 近場通信(冊〇^價、6?10、行業標準或專用協議等)與裝置140通信。在實施方案中,網關 130包括使網關130有能力經由一個或多個無線技術進行通信的一個或多個收發器(例如, 天線)。
[0090] 根據需要,可以添加、更改和/或從裝置管理器136移除裝置信息(例如,裝置驅動 器和/或針對裝置、裝置類型和/或裝置組的定義和/或配置),取決于需要與物理網關130通 信的裝置140、裝置類型和/或裝置組。例如,第一裝置驅動器可以添加到裝置管理器136,以 便與第一裝置通信和管理該第一裝置,并且第二裝置驅動器可以添加到裝置管理器136,以 便與第二不同的裝置通信和管理該第二裝置。同樣的情況可用于不同的裝置類型和裝置 組。此外,當不再需要時(例如,當網關130不再需要與某一裝置、裝置類型或裝置組通信 時),可以從裝置管理器136中移除裝置信息。
[0091] 裝置信息可以被實施為裝置管理器136的插件軟件模塊,從而使得每個裝置、裝置 類型、裝置組和裝置驅動器在需要時可以容易添加、更改和/或從裝置管理器136中移除。有 利的是,這使得系統的特征和支持(即,網關130和平臺110)與單獨裝置140、裝置類型和裝 置組的特征和支持分開。換言之,系統的新特征(以及用于這些和更老特征的技術支持)不 會影響裝置140、裝置類型和裝置組,因為針對這些裝置、裝置類型和裝置組可以維持更老 的配置(例如,驅動器)。相反,裝置140、裝置類型和裝置組的新特征(以及用于這些和更老 特征的技術支持)不會影響系統,因為更老的配置可以繼續與受影響的裝置、裝置類型和裝 置組適當操作,或者可容易用更新的配置替換老配置(即,通過將新裝置、裝置類型、裝置組 和/或裝置驅動器插入到裝置管理器136,以代替或補充老的裝置、裝置類型、裝置組和/或 裝置驅動器)。
[0092] 如上文論述,裝置管理器136中的裝置信息(例如,裝置驅動器,和/或針對裝置、裝 置類型和/或裝置組的定義和/或配置)可以經由同步模塊118而與虛擬網關130'的裝置管 理器中的裝置信息同步。因此,如果裝置信息添加到物理網關130,那么該裝置信息也添加 到相關聯的虛擬網關130',且反之亦然。類似于腳本,裝置信息可以與狀態相關聯,諸如, "不活動"或"活動"(例如,特定裝置、裝置類型和/或裝置組的定義和/或配置可以設置為 "不活動"或"活動"),并且根據這些狀態,同步模塊118可以將物理網關130的裝置管理器 136中的裝置信息與虛擬網關130'的裝置管理器中的裝置信息同步。
[0093]裝置管理器136提供接口,以便接收來自一個或多個裝置140、裝置類型和裝置組 的數據,和/或將數據發送到一個或多個裝置140、裝置類型和裝置組。例如,裝置管理器136 可以接收來自傳感器裝置140的傳感器數據(例如,來自溫度傳感器的溫度測量、來自開啟/ 閉合傳感器的二進制值、開關的狀態、表示來自運動傳感器的運動的檢測的值等)。此外,裝 置管理器136可以將指令或命令發送到可操作裝置140(例如,讓鎖緊裝置打開或關閉門上 的門栓的命令、讓照明裝置打開或關掉泛光燈的命令等)、裝置類型(例如,改變所有恒溫器 上的溫度)或者裝置組(例如,重置HVAC系統中的所有裝置和裝置類型的值)。由裝置管理器 136從裝置140、裝置類型和裝置組接收到的數據可以提供作為在腳本引擎134上執行的一 個或多個活動腳本的輸入,而在腳本引擎134上執行的一個或多個活動腳本的輸出可以由 裝置管理器136發送作為或轉換成至一個或多個裝置140、裝置類型和裝置組的指令、命令 或其他數據。通過這種方式,在腳本引擎134上執行的活動腳本(例如,作為并行線程執行的 多個活動腳本)可以控制活動裝置140、裝置類型和裝置組和/或作出反應。
[0094] 在實施方案中,裝置管理器136檢測不可用和/或缺失的裝置、裝置類型和裝置組。 例如,裝置管理器136可以實施常規心跳特征或者檢測每個裝置140、裝置類型和/或裝置組 的通信連接的丟失的其他方法。在裝置管理器136檢測到應該和/或先前具有連接的裝置、 裝置類型和/或裝置組不再連接的情況下(例如,在建立連接的預定嘗試次數之后或者在連 接丟失的預定持續時間之后),裝置管理器136可以執行錯誤處理,可包括生成警報(例如, 用戶接口消息、電子郵件消息、文本消息等),以通知一個或多個接收者該故障。
[0095] 1.3.虛擬網關的利用
[0096]由于上述同步過程的結果,每個鏡像物理網關130與平臺110處的虛擬網關130' (例如,存儲在數據庫114中并且由平臺110操作)或者可在一個或多個平臺110上實例化的 多個虛擬網關130 '相關聯。在沒有連接故障的情況下,與鏡像網關130相關聯的虛擬網關 130'將準確反映每個鏡像網關130的當前配置。例如,虛擬網關130'將至少識別在相關聯的 鏡像網關130上活動的每個腳本和裝置信息(例如,裝置驅動器和/或針對裝置、裝置類型 和/或裝置組的定義和/或配置)。在出現連接故障的情況下,虛擬網關130'可能無法準確鏡 像相關聯的鏡像網關130的當前配置,但此類不準確是暫時的,并且一旦建立了與相關聯的 鏡像網關130的連接,則將得到解決。虛擬網關130'的準確連續更新屬性提供若干利用機 會。
[0097] 1.3.1.備份和恢復
[0098]由于每個虛擬網關130'鏡像相關聯的物理網關130,因此,如果出現故障,則虛擬 網關130'可以用作相關聯的鏡像物理網關130的備份。具體而言,在鏡像物理網關130經歷 故障或者被新的物理網關130替換(例如,經由熱插拔)的情況下,與該鏡像物理網關130相 關聯的虛擬網關130'可以用來將恢復或替換網關130恢復成適當的最新配置。這個備份和 恢復過程可以是自動、半自動或手動的。應理解,備份和恢復過程的功能可以通過平臺110 的用戶接口模塊116提供的圖形用戶接口來執行和/或設置。
[0099] 1.3.2.快照
[0100] 此外,一個或多個虛擬網關130'可被存儲作為相關聯的鏡像網關130的快照或恢 復點。例如,給定的物理網關130或物理網關130的組可以與多個虛擬網關130 '相關聯,每個 都表示該物理網關130或該組物理網關130在不同時間點的配置(例如,包括一個或多個過 去時間以及當前時間)。因此,物理網關130的配置可以恢復到由多個相關聯的虛擬網關 130'中的一個表示的任何時間點。應理解,快照過程的功能可以通過平臺110的用戶接口模 塊116提供的圖形用戶接口來執行和/或設置。
[0101] 1.3.3.基于云的網關
[0102] 同步的虛擬網關130'的另一結果是針對給定物理網關130的活動裝置、裝置類型 和/或裝置驅動器的活動腳本和/或裝置驅動器和/或管理的執行可以卸載到平臺110。例 如,在平臺110是云平臺(即,利用共享或專用虛擬和/或物理資源的公共或專用平臺)的實 施方案中,針對給定物理網關130的活動裝置、裝置類型和/或裝置驅動器的活動腳本和/或 裝置驅動器和/或管理的執行可以"在云中"實施。在此類實施方案中,物理網關130可以僅 僅向裝置140、裝置類型和裝置組提供電子接口,而控制處理由平臺110上的腳本引擎執行, 和/或與裝置140、裝置類型和/或裝置組的通信由平臺110上的裝置管理器管理。例如,這可 用于瘦網關130的實施,或者如果物理網關130中的內部故障不影響與裝置140的通信的能 力的話。在此類故障的情況下,平臺110中的恢復模塊可以自動切換或開始物理網關130到 瘦網關的切換,其中腳本執行和/或裝置管理被卸載到平臺110。
[0103] 在實施方案中,用戶可以指定某些物理網關130的一個或多個功能應使用它們相 關聯的虛擬網關130'在云中執行。應理解,在這種情況下,物理網關130可以從開始就被初 始化為基于Ζ5Γ的網關,其中它們功能中的一個或多個是基于75Γ的(即,由相關聯的虛擬網關 130'執行)。
[0104] 1.3.4.初始化
[0105] 此外,虛擬網關130'可以用來快速配置或初始化新的物理網關130(例如,新購買 的網關、從停電、硬件故障中恢復的網關等)。具體而言,在新網關將采用與先前配置的網關 130相同的方式配置的情況下,新網關可以只和與該先前配置的網關130相關聯的虛擬網關 130'同步或者添加到由同步模塊118自動且持續與虛擬網關130'同步的網關類型或網關 組。或者,該虛擬網關130'可以復制到新物理網關130,以便生成與新物理網關130獨特關聯 的虛擬網關130'(例如,在平臺110處)的新(例如,解引用)復本。在這種情況下,虛擬網關 130'的新復本可以自動并且持續與新物理網關130同步。
[0106] 1.3.5.網關網絡門戶
[0107] 此外,在實施方案中,虛擬網關130'結合平臺110上的用戶接口模塊116可以充當 至相關聯的物理網關130的網絡門戶。具體而言,基于虛擬網關130'構建的圖形用戶接口可 以由用戶用來管理虛擬網關130'(例如,編輯虛擬網關130')。由于被管理的虛擬網關130' 中的改變通過同步模塊118而與相關聯的鏡像物理網關130同步(例如,自動且持續同步), 因此,虛擬網關130'的管理也是相關聯的鏡像物理網關130的管理。換言之,由于虛擬網關 130 '中的改變在相關聯的鏡像物理網關130中重復,因此,虛擬網關130 '及其相關聯的鏡像 物理網關130由用戶經由用戶接口模塊116通過虛擬網關130'的管理來同時管理。然而,應 理解,在替代或額外的實施方案中,平臺110上的用戶接口模塊116可以只結合每個鏡像物 理網關130起作用,以便生成用于物理網關的網絡門戶(例如,通過查詢每個網關130的狀態 和/或配置,以及根據查詢結果動態生成圖形用戶接口)。
[0108] 在實施方案中,用于管理虛擬網關130'及其相關聯的鏡像網關130的圖形用戶接 口可以包括用戶友好的點擊或觸摸接口。例如,用戶可以經由簡單的點擊操作或觸摸操作 (例如,針對支持觸摸功能的用戶系統150)來添加、編輯(例如,激活/停用、更改等)和/或刪 除鏡像物理網關130上的腳本。例如,圖形用戶接口可以使得用戶具有適當的權利,以便容 易從腳本的列表(例如,以類似方式存儲在平臺110的數據庫114中的主腳本庫)中選擇添加 到與特定虛擬網關130'相關聯的相關聯鏡像網關130的腳本。此外,圖形用戶接口可以使得 授權用戶能夠容易從虛擬網關130'中的腳本列表中選擇要移除、編輯、驗證、激活和/或停 用的腳本。圖形用戶接口還可以允許使得授權用戶能夠容易從第一虛擬網關130'中的腳本 列表中選擇腳本,并且將該腳本鏡像或復制到第二不同的虛擬網關130'。如上文論述,虛擬 網關130'的任何改變都將反映在同步模塊118可以與其建立連接210的所有相關聯的鏡像 網關130中。
[0109] 在實施方案中,圖形用戶接口使得授權用戶能夠將存儲在源(例如,虛擬網關130 ' 和/或物理網關130)中的腳本和/或裝置信息(例如,裝置驅動器,和/或針對裝置、裝置類型 和/或裝置組的定義和/或配置)從該源中選擇和鏡像或復制到一個或多個目標(例如,另一 虛擬網關130'和/或物理網關130)。例如,授權用戶可以選擇虛擬網關130',并且選擇將所 選擇的虛擬網關130'鏡像或復制到的一個或多個物理網關130。通過類似的方式,授權用戶 可以選擇裝置信息,并且選擇將所選擇的裝置信息鏡像或復制到的一個或多個物理網關 130〇
[0110] 應理解,網關網絡門戶可用于用戶經由平臺110被授權的所有虛擬和/或物理網 關。網關網絡門戶可以包括使得授權用戶能夠同時訪問(例如,編輯)多個鏡像虛擬和/或物 理網關(例如,用戶域內的所有網關和/或網關的子集或分組)的圖形用戶接口,和/或可以 包括使得用戶能夠單獨訪問鏡像虛擬和/或物理網關的圖形用戶接口。
[0111] 1.4.腳本編輯器
[0112] 在實施方案中,平臺110的用戶接口模塊116將圖形用戶接口(即,腳本編輯器)提 供給用戶,以用于創建和編輯存儲在腳本庫(例如,上述主腳本庫和/或網關腳本庫)中和/ 或存儲在虛擬網關130'和物理網關130上的腳本。如本文中其他地方論述,可以在網關管理 期間的一個或多個點處編輯腳本(例如,由授權用戶在這些用戶的域內的網關上編輯、在授 權和認證裝置上編輯等)。例如,可以從主腳本庫中和/或從存儲在虛擬網關130'或物理網 關130中的腳本列表中選擇用于編輯的腳本。
[0113] 作為一個實例,響應于授權用戶從圖形用戶接口中選擇了特定物理網關的標識 符,用戶接口模塊116可以為用戶提供存儲在所選擇的物理網關上的腳本列表。隨后,響應 于用戶從腳本列表中選擇了特定腳本的標識符,用戶接口模塊116可以為用戶提供用于腳 本編輯器的用戶接口。一旦用戶在腳本編輯器中表明已完成腳本的編輯(例如,通過操作腳 本編輯器中的"保存"圖標或按鈕以保存腳本,而無論完成還是未完成、經驗證還是未經驗 證、活動還是不活動),用戶接口模塊116可以使用戶返回到存儲在所選擇的物理網關上的 腳本列表。
[0114] 在實施方案中,腳本編輯器使得授權用戶能夠通過依照語義和句法用圖形將各種 腳本部件接合在一起來構建腳本。例如,腳本部件可包括,但不限于,觸發器、條件、裝置、裝 置屬性或特性、動作等。腳本編輯器可以包括使得用戶能夠以邏輯方式依照圖形、語義和句 法來放置和連接這些部件的交互式接口。腳本編輯器可以在編輯期間和/或之后檢查正確 的語義和句法。如果腳本在語義和/或句法上不正確,那么腳本編輯器可將錯誤突出顯示, 以便用戶校正。此外,腳本編輯器可以阻止用戶將腳本保存為完成的和/或激活腳本。另外, 腳本編輯器可以將用戶構建的部件轉換成基礎的標準或專用腳本語言(例如,在編輯期間、 在腳本被保存之后、在腳本被激活之后、在腳本已針對正確的語義和句法經過驗證之后 等)。作為替代或補充,腳本編輯器可以使得用戶能夠直接使用基礎腳本語言來簡單地編寫 腳本。在任一情況下,基礎腳本語言可以編譯成代碼(例如,虛擬機代碼、字節代碼或二進制 代碼),以便由腳本引擎134執行。
[0115]腳本編輯器可以使得授權用戶能夠改變腳本的單獨部件,例如,通過改變特定條 件、觸發器或裝置來實現。腳本編輯器還可以使得用戶能夠將腳本鏡像或復制用作新腳本 的模板或起始點。另外,腳本編輯器可以使得用戶能夠將腳本重命名、改變腳本的狀態(例 如,激活或停用腳本)、手動將虛擬網關130'與相關聯的物理網關130同步,和/或在虛擬網 關130'和/或物理網關130之間自動、半自動和/或手動鏡像或復制腳本。
[0116]在實施方案中,當用戶正在編輯存儲在虛擬或物理網關中的特定腳本時,腳本編 輯器可以請求來自網關的裝置管理器的動態改變。例如,如果用戶正在編輯存儲在物理網 關130上的特定腳本,那么針對以通信方式連接到該物理網關的所有裝置140、裝置類型和/ 或裝置組的裝置標識符可以被平臺110檢索(例如,通過查詢裝置管理器136或者物理網關 130的其他模塊)。在適當的情況下,這些裝置、裝置類型和/或裝置組標識符隨后可用于腳 本編輯器中,以便用戶選擇。例如,如果用戶添加或者正在編輯腳本中的特定腳本部件并且 該特定腳本部件引用特定裝置,那么可以提供包括所有的可用裝置、裝置類型和/或裝置組 標識符或者針對適合于給定腳本部件(例如,適合于條件部件的傳感器)的裝置、裝置類型 和/或裝置組的裝置標識符的子集的下拉菜單,從而使得用戶可以選擇腳本部件中要引用 的適當裝置、裝置類型或裝置組標識符。在使用通配符的實施方案中,裝置標識符的通配符 版本可以自動或手動可用和/或可選擇。例如,網關處可用的具體裝置、裝置類型和裝置組 標識符可以轉換成正規表達或以其他方式變得通用,從而它們覆蓋一個或多個特定類型的 裝置和/或裝置的一個或多個組(例如,采用通配符格式,本文中其他地方更詳細地描述), 而不是只覆蓋以通信方式連接到特定網關的特定物理裝置。
[0117] 在實施方案中,腳本編輯器可以包括診斷和/或調試工具。因此,腳本可以在激活 之前自動或手動(例如,由用戶)評估和調試(例如,驗證)(例如,通過檢查腳本在語義和/或 句法上是否正確),或者以便解決激活之后識別的問題。應理解,可在調試之后執行的對腳 本的驗證可以對照通配符和/或該腳本中包含的物理裝置、物理裝置類型和/或物理裝置組 來驗證腳本的操作,可以驗證腳本在其上活動的所有網關上的腳本,并且可以為受影響的 網關的整個組提供組診斷和調試信息。
[0118] 腳本編輯器也可以管理和/或實施腳本的版本控制。例如,對腳本的每個遞增更改 可以自動、半自動和/或手動存儲為腳本的新版本,并且腳本的每個更老版本可以保留在存 儲設備中,以便將來查看、引用、重新運行等。這個版本控制可以針對鏡像和復制腳本來執 行。
[0119] 1.5.腳本通配符
[0120] 在實施方案中,一個或多個通配符可以用來在腳本的創建或編輯期間(例如,在上 文論述的腳本編輯器中)抽象地表示裝置140、裝置類型和/或裝置組。通配符使得腳本能夠 引用一個或多個類型的裝置(例如,恒溫器的特定模型)和/或裝置的一個或多個組(例如, HVAC系統的部件),而沒有束縛于特定裝置。通配符可以采用能夠提供表示裝置的類型和/ 或裝置的組的通用裝置名稱的任何形式(例如,星號、句號等)。
[0121] 通過使用通配符來引用腳本中的裝置、裝置類型和/或裝置組,該腳本可以普遍用 于多個網關。因此,在實施方案中,主腳本庫中的一個或多個或者所有腳本都可以包括通配 符,以表示腳本中引用的裝置、裝置類型和/或裝置組。這些通配符可以保留在添加到虛擬 網關130'的腳本中。或者,當添加到虛擬網關130'時,通配符可以解引用。當虛擬網關130' 只與單個物理網關130相關聯或者與以通信方式連接到裝置140的同名集合的多個物理網 關130相關聯時,虛擬網關130'內的這種解引用可以有用。
[0122] 當腳本被本地存儲在物理網關130上(例如,經由同步模塊118)或被編譯(例如,由 腳本管理器132或腳本引擎134編譯)時,腳本中的任何通配符可以解引用(即,如果還沒有 解引用的話)。換言之,腳本將呈現出對應于通配符所引用的裝置、裝置類型和/或裝置組的 具體裝置的特性。例如,每個通配符可以用以通信方式連接到網關130(例如,經由裝置管理 器136)并且滿足通配符的裝置140、裝置類型或裝置組的具體裝置標識符(例如,裝置編號 或裝置名稱)進行替換。
[0123] 作為非限制性實例,主腳本庫中的腳本可以引用裝置"frontdoorswitch*"。在這 種情況下,通配符是星號。因此,引用"frontdoorswitch*"通常表示裝置140內的任何前 門開關。當腳本在物理網關130上實施時,通過用以通信方式可用于網關130并且與通配符 "frontdoorswitch*"相關聯的一個或多個特定物理裝置140的標志符或其他特性進行自動 替換,這個通配符被解引用(例如,在將執行該通配符的物理網關130處)。每個特定裝置140 的屬性值隨后可以被配置成與針對物理網關130上的腳本執行的通配符定義的屬性值一 致。
[0124] 在實施方案中,如果物理網關130可用的裝置140、裝置類型或裝置組的列表中的 裝置標識符匹配引用"frontdoorswitch*",那么引用"frontdoorswitch*"在將要在物理網 關130上執行的腳本中被該裝置標識符替換。例如,如果裝置標識符的列表包括裝置標識符 "frontdoorswitchOl",那么這個裝置標識符匹配引用"frontdoorswitch*"并且被替換到 腳本中(例如,在將腳本編譯成虛擬機代碼之前),以便代替引用"frontdoorswitch*"。因 此,解引用的腳本將引用針對特定裝置的標識符,而不是由通配符表示的通用裝置。
[0125] 1.6.腳本鏡像
[0126] 圖3示出根據實施方案的平臺110的腳本鏡像模塊119。在此實施方案中,對一個或 多個鏡像網關130(例如,130-1、130-2、··· 130-N)具有控制權的授權用戶可以經由平臺110 的用戶接口模塊116(例如,使用用戶系統150)來訪問圖形用戶接口(例如,網頁)。該圖形用 戶接口可以包括用于選擇或以其他方式識別腳本的一個或多個輸入,以及用于選擇或以其 他方式識別虛擬網關130'或多個虛擬網關130'的組和/或物理網關130和/或多個網關130 的組的一個或多個輸入。該圖形用戶接口還可以包括用于接收來自用戶的指示的一個或多 個輸入,以便將識別的腳本"鏡像"到識別的網關或網關的組。腳本鏡像包括將識別的腳本 發送到每個識別的虛擬和/或物理網關。在識別出一個或多個物理網關的情況下,腳本通過 連接210 (例如,210-1、210-2、…210-N)傳輸到物理網關。例如,腳本鏡像模塊119可以請求 每個識別的網關130的腳本管理器132,以便存儲將由網關的各自腳本引擎134執行的腳本 的本地鏡像(例如,復本)。
[0127] 此外,腳本鏡像模塊119可以將識別的腳本添加到與每個識別的物理網關130相關 聯的虛擬網關130'。換目之,與物理網關130相關聯的所有虛擬網關130'都被更新,以便考 慮鏡像到物理網關130的新腳本。如上文所述,可能存在與每個物理網關130相關聯的離散 虛擬網關130',或者可能存在與多個鏡像(例如,相同配置的)物理網關130相關聯的單個虛 擬網關130'。
[0128] 作為實例,授權用戶可以從上文論述的主腳本庫中或者從用戶創建的腳本的集合 中選擇腳本的標識符。用戶隨后可以選擇虛擬或物理網關的標識符、多個虛擬或物理網關 的標識符和/或包括多個虛擬或物理網關的一組的標識符。在所述實例中,多個物理網關的 組包括網關130-1到130-N。當用戶執行(例如,選擇圖標或按鈕)表明識別的腳本應被"鏡 像"到識別的物理網關130-1到130-N的操作時,腳本鏡像模塊119通過各自的連接210-1到 210-N將識別的腳本的鏡像傳輸到網關130-1到130-N中的每個。換言之,識別的腳本本地存 儲在物理網關130-1到130-N中的每個處。如果識別的腳本的當前版本的鏡像已經存儲在識 別的網關中的一個處,那么可以選擇性地跳過鏡像的傳輸,或者可以覆蓋存儲的鏡像。此 外,在利用上述虛擬網關130'的實施方案中,可以將識別的腳本添加到與物理網關130-1到 130-N相關聯的虛擬網關130。
[0129] 當包括通配符的腳本被鏡像到一個或多個物理網關130時,腳本中的每個通配符 都在每個網關130處解引用,以便被特定裝置140自動替換,如本文中其他地方論述。因此, 帶有通用裝置、裝置類型和/或裝置組引用的腳本可以被鏡像到多個網關130,并且鏡像腳 本中的通用裝置識別符被針對連接到每個各自物理網關130的具體裝置、裝置類型和/或裝 置組的具體標識符自動替換。
[0130] 2.過程概述
[0131] 現在將詳細描述用于針對物理網關來管理控制腳本的過程的實施方案。應理解, 所述過程可以體現在由一個或多個硬件處理器執行的一個或多個軟件模塊中,它可以完全 由平臺110的處理器執行、完全由網關130和/或用戶系統150的處理器執行,或者可以分布 在平臺110和網關130和/或用戶系統150上,從而使得應用的一些部分或模塊由平臺110執 行,并且應用的其他部分或模塊由網關130和/或用戶系統150執行。所述過程可以實施為用 源代碼、目標代碼和/或機器代碼表示的指令。這些指令可以直接由硬件處理器執行,或者, 可以由在目標代碼與硬件處理器之間操作的虛擬機執行。此外,所公開的應用可以建立在 一個或多個現有系統之上或者與所述現有系統對接。
[0132] 2.1.網關編輯
[0133] 圖4示出根據實施方案的用于編輯網關130的過程400。在步驟410,向用戶提供用 戶接口,以便用于添加、更改(例如,改變腳本的部件或其他部件、改變腳本或其他部件的狀 態,諸如,激活或停用腳本)和/或刪除一個或多個腳本、裝置信息(例如,裝置驅動器和/或 針對裝置、裝置類型和/或裝置組的定義和/或配置)和/或網關的其他可改變部件。例如,該 用戶接口可以由平臺110的用戶接口模塊116提供。該用戶接口可以提供用于編輯特定虛擬 網關(例如,虛擬網關130')、特定物理網關(例如,網關130)上和/或針對整個平臺(例如,針 對由平臺110管理的每個虛擬網關130'和/或物理網關130)或者平臺的子集(例如,只針對 由平臺110管理的虛擬網關130'和/或物理網關130的一部分)上的可改變部件(例如,腳本、 裝置信息等)。在實施方案中,需要注意的腳本和/或驅動器(例如,不完整腳本、未經驗證的 腳本或者在物理網關上或作為虛擬網關編譯或執行期間已產生錯誤的腳本)可以使用突出 顯示(例如,粗體)、顏色(例如,紅色)、符號(例如,"!")等等便于用戶區分。
[0134] 在實施方案中,用戶接口使得授權用戶能夠選擇特定的虛擬和/或物理網關、提供 該網關上的部件列表以及使得用戶能夠編輯每個部件以僅用于該網關。在用戶選擇了與多 個物理網關形成鏡像的虛擬網關的情況下,應理解,在虛擬網關上編輯部件可以影響相關 聯的鏡像物理網關中的每個,如本文中其他地方論述。換言之,選擇了具體的虛擬或物理網 關,并且編輯該具體網關上的部件中的一個或多個。
[0135] 在替代或額外的實施方案中,用戶接口為用戶提供用于識別一個或多個部件、識 別該部件將被鏡像或復制到的一個或多個虛擬和/或物理網關以及開始將部件鏡像或復制 到識別的網關的一個或多個輸入。此外,用戶接口可以為用戶提供用于識別存儲在一個或 多個虛擬和/或物理網關上的腳本以及開始從網關中刪除腳本的一個或多個輸入。另外,用 戶接口可以為正在更改部件的用戶提供用于識別應該應用更改的一個或多個虛擬和/或物 理網關的一個或多個輸入。換言之,編輯具體部件、選擇或以其他方式識別具體的虛擬和/ 或物理網關,以及對選擇的虛擬和/或物理網關(例如,可以包括由平臺110控制的所有網關 或網關的任何子集)實施編輯。
[0136] 在步驟420中,確定用戶是否已完成部件(例如,腳本、裝置信息等)的添加、更改或 刪除。這個確定可以采用接收到具體用戶操作(例如,在用戶接口的輸入上)或者完成更改 或應添加或刪除識別的部件的其他指示的形式。換言之,該過程可以假設部件的編輯未完 成直至接收到具體用戶操作為止,而不是阻止或輪詢。
[0137] 一旦完成部件的編輯,在步驟430中,更新適用的虛擬網關,以反映編輯。如果編輯 只影響單個虛擬網關,那么只更新該虛擬網關。然而,如果編輯影響多個虛擬網關,那么更 新多個虛擬網關中的每個。在任一種情況下,無論編輯的部件的狀態如何(例如,不論諸如 腳本等部件是否被停用或未經驗證),都可以應用編輯。
[0138] 在步驟440中,確定編輯中的任一個是否涉及經驗證和/或活動部件或者涉及從物 理網關中刪除部件。如果是的話,則在步驟450中執行與適用的鏡像物理網關的同步(例如, 通過同步模塊118)。否則,不需要同步,因為編輯只影響不完整、未經驗證或不活動的部件。 如本文中其他地方論述,在實施方案中,不完整、未經驗證和/或不活動的部件可以保存在 虛擬網關中,而不是同步到鏡像或選擇的物理網關。在替代實施方案中,不完整、未經驗證、 不活動和/或被刪除的部件可以被鏡像到和/或保留在物理網關處,但它們的狀態可以設置 成不活動,以反映出它們是不完整、未經驗證、不活動或被刪除的,從而物理網關可以適當 處理它們(例如,不編譯、執行或以其他方式處理它們)。
[0139] 應理解,相同的過程400可以應用于對虛擬和物理網關作出的其他改變。也就是 說,過程400可以類似地應用于部件的用戶編輯,而不是網關的腳本和驅動器(例如,諸如網 關的腳本引擎134)。
[0140] 2.2.同步
[0141]圖5示出根據實施方案的同步過程500。在實施方案中,過程500可以是或被包括在 過程400的步驟450中,并且可以實施為同步模塊118或作為其一部分。過程500可以針對需 要同步的每個虛擬和/或物理網關(例如,每個選擇或鏡像的虛擬網關130'和/或每個選擇 或鏡像的物理網關130)來執行。至于自動同步,可以針對需要同步的每個網關來迭代或并 行執行過程500。
[0142] 在步驟510中,識別要同步的網關,并且接收同步數據。同步數據可以包括將識別 的網關同步所需的任何數據,并且可以采用任何多種形式或配置,取決于特定的實施。例 如,在腳本必須添加到網關的情況下,同步數據可以包括腳本。在裝置信息(例如,裝置驅動 器和/或針對裝置、裝置類型和/或裝置組的定義和/或配置)必須添加到網關的情況下,同 步數據可以包括裝置信息。在可以對網關作出遞增改變的實施方案中,同步數據可以包括 應該應用到存儲在網關處的數據以便進行同步的delta的表示。
[0143] 在步驟520中,確定是否可以建立或建立了與識別的網關的連接(例如,連接210)。 如果否,則過程500可以阻斷,直到與識別的網關可以建立連接為止。在實施方案中,過程 500可以在重新嘗試連接之前等待預定的時間。此外,當連接失敗、失敗了預定的次數或者 在預定的時間段之后沒有建立起來時,過程500可以生成警報(例如,用戶接口消息、電子郵 件消息、文本消息等),以通知一個或多個接收者該故障。
[0144] 另一方面,當在步驟520中建立了連接時,識別的網關在步驟530中同步。具體而 言,將同步數據傳輸或以其他方式應用到網關(例如,通過網絡120)。
[0145] 2.3.同步
[0146] 圖6示出根據實施方案的用于對腳本中的通配符解引用的過程640。如上文論述, 與多個物理網關相關聯的虛擬網關的腳本可以包括通配符(所述通配符在物理網關處解引 用),而只與單個物理網關相關聯的虛擬網關的腳本可以在虛擬網關中以及在物理網關處 解引用。過程640可以實施為一個或多個網關130和/或平臺110處的模塊。
[0147] 在步驟650中,接收腳本。如本文中其他地方論述,腳本可以包含通配符,所述通配 符引用針對裝置、裝置類型和/或裝置組的通用標識符。例如,通配符可以是添加到裝置、裝 置類型或裝置組標識符的一個或多個部件(例如,添加到針對裝置、裝置類型或裝置組標識 符的公共前綴的最后、添加到針對裝置、裝置類型或裝置組標識符的公共后綴的開頭)的星 號或其他符號。在"frontdoorswitch*"的實例中,通配符是添加到前綴"frontdoordevice" 的星號,表明通配符表示以前綴"frontdoor swi tch"開始的任何裝置標識符,而無論裝置標 識符中的該前綴之后的內容如何。
[0148] 在步驟660中,確定任何通配符是否保留在正處理的腳本中。如果腳本從不包含通 配符或不再包含任何通配符,則過程640結束。否則,在步驟670中處理腳本中的下一通配 符。
[0149] 在步驟670中,使用通配符來搜索包括特定網關處的裝置、裝置類型或裝置組標識 符的數據結構,以識別匹配的裝置、裝置類型或裝置組標識符。數據結構可以包括數據庫、 表格、列表、對象、blob等。在實施方案中,通配符表示正規表達式,并且如果通配符滿足該 正規表達式,則裝置、裝置類型或裝置組標識符匹配該通配符。
[0150] 如果通配符不匹配任何裝置、裝置類型或裝置組標識符,那么可以在步驟680中執 行錯誤處理。錯誤處理可以包括生成警報(例如,用戶接口消息、電子郵件消息、文本消息 等)以通知一個或多個接收者該故障、記錄錯誤等等。或者,替代于在步驟680中執行錯誤處 理,過程640可以跳過不匹配的通配符、結束和/或執行其他處理。
[0151] 如果通配符確實匹配裝置、裝置類型或裝置組標識符,那么在步驟690中,用匹配 的裝置、裝置類型或裝置組標識符替換腳本中的通配符,并且如果有的話,在步驟660中識 別下一個剩余的通配符。如果存在多個匹配的裝置、裝置類型或裝置組標識符,那么可以用 每個匹配的裝置、裝置類型或裝置組標識符或者只用單個匹配的裝置、裝置類型或裝置組 標識符(例如,第一匹配的裝置、裝置類型或裝置組標識符)來替換所述通配符,具體取決于 過程640的特定實施。
[0152] 3.示例處理裝置
[0153] 圖7是示出可以結合本文所述的各個實施方案使用的示例有線或無線系統550的 框圖。例如,系統550可以用作上述機構、過程、方法或功能中的一個或多個或者與其結合使 用(例如,以便存儲和/或執行一個或多個軟件模塊),并且可以表示平臺110、服務器112、網 關130、裝置140、用戶系統150和/或本文所述的其他裝置的部件。系統550可以是服務器或 任何常規的個人計算機,或者能夠進行有線或無線數據通信的任何其他支持處理器功能的 裝置。如所屬領域的技術人員將明白,也可以使用其他計算機系統和/或架構。此外,應理 解,盡管所示系統550帶有某些元件,但它可以包括比所示這些更少或更多的元件,取決于 它表示的特定部件。例如,不具有無線通信能力的系統550可以不包括基帶620、無線電615 和天線610。
[0154] 系統550優選包括一個或多個處理器,諸如,處理器560。可以提供額外的處理器, 諸如,用以管理輸入/輸出的輔助處理器、用以執行浮點數學運算的輔助處理器、具有適合 于信號處理算法的快速執行的架構的專用微處理器(例如,數字信號處理器)、從屬于主處 理系統的從屬處理器(例如,后端處理器)、用于雙處理器系統或多個處理器系統的額外微 處理器或控制器、或者協處理器。此類輔助處理器可以是離散處理器,或者可以與處理器 560集成。可以與系統550-起使用的處理器的實例包括,但不限于,Pentium?處理器、 Corei7?處理器、Xe〇n?處理器以及可從加利福尼亞州圣克拉拉的英特爾公司(Intel Corporation of Santa Clara,California)得到的其他型號,以及來自其他制造商的硬件 處理器,諸如,來自加利福尼亞州森尼維爾市的超微設備公司(Advanced Micro Devices of Sunnyvale,California)〇
[0155] 處理器560優選連接到通信總線555。通信總線555可以包括用于促進系統550的存 儲設備與其他外圍部件之間的信息傳輸的數據通道。此外,通信總線555可以提供用于與處 理器560通信的信號的集合,包括數據總線、地址總線和控制總線(未示出)。通信總線555可 以包括任何標準或非標準總線架構,例如,諸如符合下列標準的總線架構:工業標準架構 (ISA)、擴展工業標準架構(EISA)、微通道架構(MCA)、外圍部件互連(PCI)局部總線或者由 電氣和電子工程師協會(IEEE)頒布的標準,包括IEEE 488通用接口總線(GPIB)、IEEE 696/ S-100等等。
[0156] 系統550優選包括主存儲器565,并且也可以包括輔助存儲器570。主存儲器565為 在處理器560上執行的程序提供指令和數據的存儲,諸如,上文論述的功能和/或模塊中的 一個或多個。應理解,存儲在存儲器中并且由處理器560執行的程序可以根據任何合適的語 言進行編寫和/或編譯,包括但不限于:C/C++、Java、JavaScript、Perl、Visual Basic、 .NET、專用視覺腳本語言、專用腳本語言等等。主存儲器565通常是基于半導體的存儲器,諸 如,動態隨機存取存儲器(DRAM)和/或靜態隨機存取存儲器(SRAM)。例如,其他基于半導體 的存儲器類型包括同步動態隨機存取存儲器(SDRAM)、Rambus動態隨機存取存儲器 (RDRAM)、鐵電隨機存取存儲器(FRAM)等等,包括只讀存儲器(ROM)。
[0157] 輔助存儲器570可任選地包括內部存儲器575和/或可移動介質580,例如,軟盤驅 動器、磁盤驅動器、光盤(⑶)驅動器、數字多功能盤(DVD)驅動器、其他光驅、閃存驅動器、微 型SD等。可移動介質580采用已知的方式讀取和/或寫入。例如,可移動存儲介質580可以是 軟盤、磁帶、⑶、DVD、SD卡、拇指驅動器等。
[0158] 可移動存儲介質580是存儲有計算機可執行代碼(即,軟件)和/或數據的非暫時計 算機可讀介質。存儲在可移動存儲介質580上的計算機軟件或數據被讀取到系統550中,以 便由處理器560執行。
[0159] 在替代實施方案中,輔助存儲器570可以包括用于使得計算機程序或者其他數據 或指令能夠加載到系統550中的其他類似構件。例如,此類構件可以包括外部存儲介質595 和接口 590。外部存儲介質595的實例可以包括外部硬盤驅動器或外部光驅,或和外部磁光 驅。
[0160] 輔助存儲器570的其他實例可以包括基于半導體的存儲器,諸如,可編程只讀存儲 器(PR0M)、可擦除可編程只讀存儲器(EPROM)、電可擦除只讀存儲器(EEPR0M)或者閃存(類 似于EEPR0M的面向塊的存儲器)。還包括任何其他可移動存儲介質580和通信接口 590,從而 允許軟件和數據從外部介質595傳輸到系統550。
[0161] 系統550可以包括通信接口 590。通信接口 590允許軟件和數據在系統550與外部裝 置(例如,打印機)、網絡或信息源之間傳輸。例如,計算機軟件或可執行代碼可以經由通信 接口 590從網絡或云服務器傳輸到系統550。通信接口 590的實例包括內置式網絡適配器、網 絡接口卡(NIC)、個人計算機存儲卡國際協會(PCMCIA)網卡、插件總線網絡適配器、無線網 絡適配器、通用串行總線(USB)網絡適配器、調制解調器、網絡接口卡(NIC)、無線數據卡、通 信端口、紅外接口、IEEE 1394火線,或者能夠將系統550與網絡或另一計算裝置對接的任何 其他裝置。
[0162] 通信接口 590優選實施工業頒布的協議標準,諸如,以太網IEEE802標準、光纖通 道、數字用戶線(DSL)、異步數字用戶線(ADSL)、幀中繼、異步傳輸模式、綜合數字服務網 (ISDN)、個人通信服務(PCS)、傳輸控制協議/互聯網協議(TCP/IP)、串行線路互聯網協議/ 點對點協議(SLIP/PPP)等等,但也可以實施自定義或非標準接口協議。
[0163] 經由通信接口 590傳輸的軟件和數據一般采用電通信信號605的形式。這些信號 605優選經由通信通道600提供到通信接口 590。在一個實施方案中,通信通道600可以是有 線或無線網絡,或者任何多種其他通信鏈路。通信通道600攜載信號605,并且可以使用多種 有線或無線通信構件進行實施,包括導線或線纜、光纖、常規電話線、蜂窩電話鏈路、無線數 據通信鏈路、射頻("RF 1')鏈路或者紅外鏈路,這里僅舉一些。
[0164] 計算機可執行代碼(即,計算機程序或軟件,諸如,所公開的應用)存儲在主存儲器 565和/或輔助存儲器570中。計算機程序也可以經由通信接口590接收并且存儲在主存儲器 565和/或輔助存儲器570中。此類計算機程序在執行時使得系統550能夠執行如先前所述的 本發明的各種功能。
[0165] 在本說明中,術語"計算機可讀介質"、"存儲介質"和"介質"用來指代用于將計算 機可執行代碼(例如,軟件和計算機程序)提供到系統550的任何非暫時計算機可讀存儲介 質。這些介質的實例包括主存儲器565、輔助存儲器570(包括內部存儲器575、可移動介質 580和外部存儲介質595)以及以通信方式與通信接口 590耦接的任何外圍裝置(包括網絡信 息服務器或其他網絡裝置)。這些非暫時計算機可讀介質是用于將可執行代碼、編程指令和 軟件提供到系統550的構件。
[0166] 在使用軟件實施的實施方案中,通過可移動介質580、I/O接口 585或通信接口 590, 軟件可以存儲在計算機可讀介質上并且加載到系統550中。在此類實施方案中,軟件采用電 通信信號605的形式加載到系統550中。軟件在由處理器560執行時優選導致處理器560執行 本文中先前描述的本發明特征和功能。
[0167] 在實施方案中,I/O接口 585在系統550的一個或多個部件與一個或多個輸入和/或 輸出裝置之間提供接口。示例輸出裝置包括,但不限于,鍵盤、觸摸屏或其他觸敏裝置、生物 傳感裝置、計算機鼠標、跟蹤球、基于筆的指向裝置等等。輸出裝置的實例包括,但不限于, 陰極射線管(CRT)、等離子顯示器、發光二極管(LED)顯示器、液晶顯示器(IXD)、打印機、真 空熒光顯示器(VFD)、表面傳導電子發射顯示器(SED)、場發射顯示器(FED)等等。
[0168] 系統550還包括促進通過語音和通過數據網絡的無線通信的任選無線通信部件。 無線通信部件包括天線系統610、無線電系統615以及基帶系統620。在系統550中,射頻(RF) 信號在無線電系統615的管理下由天線系統610在空中傳輸和接收。
[0169] 在一個實施方案中,天線系統610可以包括一個或多個天線以及一個或多個多路 復用器(未示出),所述多路復用器執行切換功能以便為天線系統610提供傳輸和接收信號 路徑。在接收路徑中,接收到的RF信號可以從多路復用器耦接到低噪聲放大器(未示出),所 述低噪聲放大器對接收到的RF信號進行放大并且將放大的信號發送到無線電系統615。
[0170] 在替代實施方案中,無線電系統615可以包括被配置成通過各種頻率和協議通信 的一個或多個無線電。在一個實施方案中,無線電系統615可以將解調器(未示出)和調制器 (未示出)組合在一個集成電路(1C)中。解調器和調制器也可以是單獨的部件。在進入路徑 中,解調器除去RF載波信號而留下基帶接收音頻信號,所述基帶接收音頻信號從無線電系 統615發送到基帶系統620。
[0171]如果接收到的信號包含音頻信息,那么基帶系統620對信號進行解碼,并且將它轉 換成模擬信號。隨后,對信號進行放大并且發送到揚聲器。基帶系統620也接收來自麥克風 的模擬音頻信號。這些模擬音頻信號被轉換成數字信號并且被基帶系統620編碼。基帶系統 620也對用于傳輸的數字信號進行編碼,并且生成基帶傳輸音頻信號,該信號被路由到無線 電系統615的調制器部分。調制器將基帶傳輸音頻信號與RF載波信號進行混合,從而生成RF 傳輸信號,該信號被路由到天線系統并且可以穿過功率放大器(未示出)。功率放大器對RF 傳輸信號進行放大,并且將其路由到天線系統610,其中將信號切換到天線端口,以用于傳 輸。
[0172] 基帶系統620也以通信方式與處理器560耦接。中央處理單元560可以訪問數據存 儲區565和570。中央處理單元560優選被配置成執行可存儲在存儲器565或輔助存儲器570 中的指令(即,計算機程序或軟件)。計算機程序也可以從基帶處理器610接收并且存儲在數 據存儲區565或輔助存儲器570中,或者在接收之后就執行。此類計算機程序在執行時使得 系統550能夠執行如先前所述的本發明的各種功能。例如,數據存儲區565可以包括各種軟 件模塊(未示出)。
[0173] 例如,也可以使用諸如專用集成電路(ASIC)或現場可編程門陣列(FPGA)的部件主 要在硬件中實施各個實施方案。相關領域的技術人員也將明白能夠執行本文所述的功能的 硬件狀態機的實施。各個實施方案也可以使用硬件和軟件的組合來實施。
[0174] 此外,所屬領域的技術人員將了解,結合上述附圖和本文中公開的實施方案描述 的各種說明性邏輯塊、模塊、電路和方法步驟通常可以實施為電子硬件、計算機軟件或者這 兩個的組合。為了清楚地說明硬件和軟件的這種互換性,上文大體就其功能描述了各種說 明性部件、塊、模塊、電路和步驟。此類功能是實施為硬件還是軟件,取決于整個系統上實施 的特定應用和設計限制。針對每個特定的應用,技術人員可以用不同的方式實施所述功能, 但此類實施決策不應被解釋為導致脫離本發明的范圍。此外,模塊、塊、電路或步驟內的功 能分組是為了便于描述。在不脫離本發明的情況下,具體功能或步驟可以從一個模塊、塊或 電路移動到另一個。
[0175] 此外,通過被設計用于執行本文所述功能的通用處理器、數字信號處理器(DSP)、 ASIC、FPGA或其他可編程邏輯裝置、離散門或晶體管邏輯、離散硬件部件或者它們的任意組 合,可以實施或執行結合本文中公開的實施方案描述的各種說明性邏輯塊、模塊、功能和方 法。通用處理器可以是微處理器,但在替代方案中,所述處理器可以是任何處理器、控制器、 微控制器或者狀態機。處理器還可以實現為計算裝置的組合,例如,DSP和微處理器的組合、 多個微處理器、一個或多個微處理器與DSP內核的結合,或者任何其他此類配置。
[0176] 此外,結合本文中公開的實施方案描述的方法或算法的步驟可以直接體現在硬 件、由處理器執行的軟件模塊或者這兩個的組合中。軟件模塊可以位于RAM存儲器、閃存、 ROM存儲器、EPROM存儲器、EEPR0M存儲器、寄存器、硬盤、可移動磁盤、CD-ROM或者包括網絡 存儲介質的任何其他形式的存儲介質中。示例性存儲介質可以耦接到處理器,從而使得處 理器可以從存儲介質中讀取信息并將信息寫入該存儲介質。在替代方案中,存儲介質可以 與處理器成為整體。處理器和存儲介質也可以存在于ASIC中。
[0177] 本文所述的軟件部件中的任一個可以采用多種形式。例如,部件可以是獨立的軟 件包,或者它可以是并入為較大軟件產品中的"工具"的軟件包。它可以從網絡,例如,網站 下載作為獨立的產品或插件包,以用于安裝在現有的軟件應用中。它也可以用作客戶端-月艮 務器軟件應用、支持網絡功能的軟件應用和/或移動應用。
[0178] 提供了所公開的實施方案的上述描述,以使得所屬領域的任何技術人員能夠實現 或使用本發明。對于所屬領域的技術人員而言,這些實施方案的各種更改將是明顯的,并且 在不脫離本發明的精神或范圍的情況下,本文中描述的一般原理可以應用于其他實施方 案。因此,應理解,本文中呈現的描述和附圖表示本發明當前優選的實施方案,并且因此表 示本發明廣泛預期的主題。應進一步理解,本發明的范圍完全涵蓋所屬領域的技術人員可 以明白的其他實施方案,并且本發明的范圍相應地不受到限制。
【主權項】
1. 一種系統,其包括: 至少一個硬件處理器;以及 一個或多個模塊,所述一個或多個模塊在被所述至少一個硬件處理器執行時, 生成虛擬網關,所述虛擬網關包括存儲在至少一個遠程物理網關上的一個或多個活動 腳本中的每個的表示; 提供至少一個用戶接口,以用于編輯所述虛擬網關中表示的所述一個或多個活動腳本 中的每個;以及 通過至少一個網絡來自動維持所述虛擬網關中表示的所述一個或多個活動腳本與存 儲在所述至少一個遠程物理網關上的所述一個或多個活動腳本之間的同步。2. 根據權利要求1所述的系統,其中所述虛擬網關進一步包括存儲在所述至少一個遠 程物理網關上的一個或多個活動驅動器中的每個的表示,并且其中所述一個或多個模塊進 一步: 提供至少一個用戶接口,以用于編輯所述虛擬網關中表示的所述一個或多個活動驅動 器中的每個;以及 通過所述至少一個網絡來自動維持所述虛擬網關中表示的所述一個或多個活動驅動 器與存儲在所述至少一個遠程物理網關上的所述一個或多個活動驅動器之間的同步。3. 根據權利要求1所述的系統,其中所述一個或多個模塊進一步: 檢測所述至少一個遠程物理網關的狀態的改變;以及, 響應于所述至少一個遠程物理網關的狀態的所述改變,在本地執行所述虛擬網關中表 示的所述一個或多個活動腳本。4. 根據權利要求3所述的系統,其中狀態的所述改變是所述至少一個遠程物理網關的 故障。5. 根據權利要求1所述的系統,其中所述至少一個遠程物理網關包括與所述虛擬網關 相關聯的多個遠程物理網關,并且其中所述一個或多個模塊進一步通過所述至少一個網絡 來自動維持所述虛擬網關中表示的所述一個或多個活動腳本與存儲在所述多個遠程物理 網關中的每個上的所述一個或多個活動腳本之間的同步。6. 根據權利要求1所述的系統,其中所述虛擬網關進一步包括沒有與存儲在所述至少 一個遠程物理網關上的任何腳本同步的一個或多個不活動腳本中的每個的表示。7. 根據權利要求1所述的系統,其中所述至少一個遠程物理網關以通信方式與一個或 多個裝置連接,并且其中存儲在所述至少一個遠程物理網關上并且表示在所述虛擬網關中 的所述一個或多個活動腳本被配置成監測或控制所述一個或多個裝置。8. 根據權利要求7所述的系統,其中存儲在所述至少一個遠程物理網關上并且表示在 所述虛擬網關中的所述一個或多個活動腳本中的至少一個包括一個或多個通配符,并且其 中所述一個或多個通配符中的每個引用用于所述一個或多個裝置中的至少一個的通用標 識符。9. 根據權利要求8所述的系統,其進一步包括所述至少一個遠程網關,其中所述至少一 個遠程網關包括至少一個模塊,所述至少一個模塊被配置成通過針對所述至少一個活動腳 本中的所述一個或多個通配符中的每個進行下列操作來對所述至少一個活動腳本解引用: 識別具有匹配所述通配符的裝置標識符的所述一個或多個裝置中的至少一個;以及 用識別的至少一個裝置的所述裝置標識符來替換所述通配符。10. 根據權利要求7所述的系統,其進一步包括所述至少一個遠程物理網關,其中所述 至少一個遠程物理網關包括: 編譯器,所述編譯器被配置成將所述一個或多個活動腳本編譯成一個或多個虛擬機代 碼;以及 虛擬機,所述虛擬機被配置成執行所述一個或多個虛擬機代碼。11. 一種用于管理網關的方法,所述方法包括使用至少一個硬件處理器以便: 生成虛擬網關,所述虛擬網關包括存儲在至少一個遠程物理網關上的一個或多個活動 腳本中的每個的表示; 提供至少一個用戶接口,以用于編輯所述虛擬網關中表示的所述一個或多個活動腳本 中的每個;以及 通過至少一個網絡來自動維持所述虛擬網關中表示的所述一個或多個活動腳本與存 儲在所述至少一個遠程物理網關上的所述一個或多個活動腳本之間的同步。12. 根據權利要求11所述的方法,其中所述虛擬網關進一步包括存儲在所述至少一個 遠程物理網關上的一個或多個活動驅動器中的每個的表示,并且其中所述方法進一步包括 使用所述至少一個硬件處理器以便: 提供至少一個用戶接口,以用于編輯所述虛擬網關中表示的所述一個或多個活動驅動 器中的每個;以及 通過所述至少一個網絡來自動維持所述虛擬網關中表示的所述一個或多個活動驅動 器與存儲在所述至少一個遠程物理網關上的所述一個或多個活動驅動器之間的同步。13. 根據權利要求11所述的方法,其進一步包括使用所述至少一個硬件處理器以便: 檢測所述至少一個遠程物理網關的狀態的改變;以及, 響應于所述至少一個遠程物理網關的狀態的所述改變,在本地執行所述虛擬網關中表 示的所述一個或多個活動腳本。14. 根據權利要求13所述的方法,其中狀態的所述改變是所述至少一個遠程物理網關 的故障。15. 根據權利要求11所述的方法,其中所述至少一個遠程物理網關包括與所述虛擬網 關相關聯的多個遠程物理網關,并且其中所述方法包括使用所述至少一個硬件處理器以便 通過所述至少一個網絡來自動維持所述虛擬網關中表示的所述一個或多個活動腳本與存 儲在所述多個遠程物理網關中的每個上的所述一個或多個活動腳本之間的同步。16. 根據權利要求11所述的方法,其中所述虛擬網關進一步包括沒有與存儲在所述至 少一個遠程物理網關上的任何腳本同步的一個或多個不活動腳本中的每個的表示。17. 根據權利要求11所述的方法,其中所述至少一個遠程物理網關以通信方式與一個 或多個裝置連接,并且其中存儲在所述至少一個遠程物理網關上并且表示在所述虛擬網關 中的所述一個或多個活動腳本被配置成監測或控制所述一個或多個裝置。18. 根據權利要求17所述的方法,其中存儲在所述至少一個遠程物理網關上并且表示 在所述虛擬網關中的所述一個或多個活動腳本中的至少一個包括一個或多個通配符,并且 其中所述一個或多個通配符中的每個引用用于所述一個或多個裝置中的至少一個的通用 標識符。19. 一種存儲有指令的非暫時計算機可讀介質,其中所述指令在被處理器執行時導致 所述處理器: 生成虛擬網關,所述虛擬網關包括存儲在至少一個遠程物理網關上的一個或多個活動 腳本中的每個的表示; 提供至少一個用戶接口,以用于編輯所述虛擬網關中表示的所述一個或多個活動腳本 中的每個;以及 通過至少一個網絡來自動維持所述虛擬網關中表示的所述一個或多個活動腳本與存 儲在所述至少一個遠程物理網關上的所述一個或多個活動腳本之間的同步。20. 根據權利要求19所述的非暫時計算機可讀介質,其中所述至少一個遠程物理網關 以通信方式與一個或多個裝置連接,并且其中存儲在所述至少一個遠程物理網關上并且表 示在所述虛擬網關中的所述一個或多個活動腳本被配置成監測或控制所述一個或多個裝 置,其中存儲在所述至少一個遠程物理網關上并且表示在所述虛擬網關中的所述一個或多 個活動腳本中的至少一個包括一個或多個通配符,并且其中所述一個或多個通配符中的每 個引用用于所述一個或多個裝置中的至少一個的通用標識符。
【文檔編號】H04L12/24GK106031092SQ201580008489
【公開日】2016年10月12日
【申請日】2015年3月12日
【發明人】小拉沃恩·弗格森·瓦茨, J·洛克, A·維塞, R·惠靈頓-歐古瑞
【申請人】希斯泰克公司