相關(guān)申請的交叉引用
本申請要求2016年3月22日提交的美國臨時專利申請序號62/311,729的優(yōu)先權(quán)。
背景技術(shù):
諸如燈泡、烤面包器、電視等許多物聯(lián)網(wǎng)(iot)設(shè)備可以利用某些iot協(xié)議并能夠被在用戶設(shè)備(例如,智能電話、平板電腦、個人計算機等)上運行的各種應(yīng)用程序(或“app”)控制或者另外與之相交互。
此類iot設(shè)備利用各種各樣的通信協(xié)議。同樣地,應(yīng)用程序可以利用各種各樣的協(xié)議。終端用戶被迫使用支持iot設(shè)備的通信協(xié)議的應(yīng)用程序。另外,iot設(shè)備可能由于不同的協(xié)議而不能彼此相交互。
諸如橋接器之類的現(xiàn)有解決方案迫使用戶利用單一目的地協(xié)議,因此限制了設(shè)備的選擇。
因此需要一種能夠支持多個設(shè)備協(xié)議和多個應(yīng)用程序協(xié)議的通用iot轉(zhuǎn)換器。
技術(shù)實現(xiàn)要素:
某些實施例提供了一種通用物聯(lián)網(wǎng)(iot)轉(zhuǎn)換器。此類轉(zhuǎn)換器可以在用戶設(shè)備協(xié)議與iot設(shè)備協(xié)議不匹配時允許用戶設(shè)備(和/或關(guān)聯(lián)應(yīng)用程序)與iot設(shè)備(和/或關(guān)聯(lián)應(yīng)用程序)之間的通信。
所述通用轉(zhuǎn)換器可以包括核心、一組服務(wù)以及一組虛擬裝置(virtual)。每個服務(wù)和每個虛擬裝置可以與不同的協(xié)議相關(guān)聯(lián)。該核心可以使用內(nèi)部協(xié)議在服務(wù)與虛擬裝置之間通信。
所述通用轉(zhuǎn)換器的某些實施例可以偵聽設(shè)備和/或應(yīng)用程序。如果從設(shè)備或應(yīng)用程序接收到廣播消息或信標(biāo),則通用轉(zhuǎn)換器可以識別與設(shè)備或應(yīng)用程序相關(guān)聯(lián)的協(xié)議。某些實施例可以維護應(yīng)用程序和設(shè)備的表格,其指定所使用的協(xié)議和用于每個應(yīng)用程序或設(shè)備的唯一標(biāo)識符。
所述通用轉(zhuǎn)換器可能能夠在用戶設(shè)備與iot設(shè)備之間中繼消息、命令、數(shù)據(jù)等??梢栽谔摂M裝置處從用戶設(shè)備接收消息并從該虛擬裝置的協(xié)議轉(zhuǎn)換成通用轉(zhuǎn)換器的內(nèi)部協(xié)議??梢詫⑾⒅欣^到與iot設(shè)備相關(guān)聯(lián)的服務(wù)。該服務(wù)可以將消息發(fā)送到iot設(shè)備。
可以在關(guān)聯(lián)服務(wù)處從iot設(shè)備接收消息、數(shù)據(jù)等并轉(zhuǎn)換成內(nèi)部協(xié)議。已轉(zhuǎn)換消息可以被中繼到與用戶設(shè)備協(xié)議相關(guān)聯(lián)的虛擬設(shè)備并由該虛擬設(shè)備發(fā)送到用戶設(shè)備。
前面的發(fā)明內(nèi)容意圖充當(dāng)對某些示例性實施例的各種特征的簡要介紹。在不脫離本公開的范圍的情況下可以按照其它特定形式來實現(xiàn)其它實施例。
附圖說明
在所附權(quán)利要求中闡述了本公開的示例性特征。然而,出于說明的目的,在以下各圖中圖示出多個實施例。
圖1圖示出根據(jù)示例性實施例的示例性硬件系統(tǒng)的示意性框圖;
圖2圖示出由圖1的系統(tǒng)提供的示例性通用轉(zhuǎn)換器的示意性框圖;
圖3圖示出由圖2的通用轉(zhuǎn)換器提供的示例性核心的示意性框圖;
圖4圖示出由圖2的通用轉(zhuǎn)換器提供的示例性服務(wù)的示意性框圖;
圖5圖示出由圖2的通用轉(zhuǎn)換器提供的示例虛擬設(shè)備的示意性框圖;
圖6圖示出圖1的系統(tǒng)所使用的示例性通信結(jié)構(gòu)的消息流圖;
圖7圖示出提供通用轉(zhuǎn)換的示例性過程的流程圖;
圖8圖示出為與多個應(yīng)用程序相關(guān)聯(lián)的iot設(shè)備提供通用轉(zhuǎn)換的示例性過程的流程圖;
圖9圖示出從用戶設(shè)備向iot設(shè)備發(fā)送操作的示例性過程的流程圖;以及
圖10圖示出用來實現(xiàn)某些實施例的示例性計算機系統(tǒng)的示意性框圖。
具體實施方式
以下詳細(xì)描述描述了執(zhí)行示例性實施例的當(dāng)前設(shè)想模式。不應(yīng)在限制性意義上理解本描述,而其僅僅是出于說明某些實施例的一般原理的目的而進行的,因為本公開的范圍由所附權(quán)利要求最佳地定義。
下面描述每一個可以相互獨立地或者與其它特性相組合地使用的各種特征。寬泛地,某些實施例一般地提供用以實現(xiàn)各種物聯(lián)網(wǎng)(iot)設(shè)備之間的通信的方式。
第一示例性實施例提供了一種提供用戶設(shè)備與iot設(shè)備之間的通信的系統(tǒng)。所述系統(tǒng)包括:至少一個用戶設(shè)備,其能夠執(zhí)行能夠使用至少第一iot協(xié)議進行通信的至少一個應(yīng)用程序;至少一個iot設(shè)備,其能夠使用至少第二iot協(xié)議進行通信;以及通用轉(zhuǎn)換器,其能夠使用至少第一iot協(xié)議和第二iot協(xié)議進行通信。
第二示例性實施例提供了一種提供用戶設(shè)備與物聯(lián)網(wǎng)(iot)設(shè)備之間的通信的自動化方法。所述自動化方法包括:確定iot設(shè)備的協(xié)議;確定用戶設(shè)備的協(xié)議;以及如果iot設(shè)備的協(xié)議不同于用戶設(shè)備的協(xié)議,則在iot設(shè)備與用戶設(shè)備之間插入虛擬設(shè)備。
第三示例性實施例提供了一種轉(zhuǎn)換用于物聯(lián)網(wǎng)(iot)系統(tǒng)的通信的自動化方法。所述自動化方法包括:接收設(shè)備協(xié)議和標(biāo)識符;接收應(yīng)用程序協(xié)議和標(biāo)識符;將應(yīng)用程序標(biāo)識符添加到應(yīng)用程序列表;以及將設(shè)備標(biāo)識符添加到設(shè)備列表。
在下面的各部分中描述了多個更詳細(xì)的實施例。部分i提供了示例性硬件架構(gòu)的描述。然后,部分ii描述了各種示例性操作方法。最后,部分iii描述了一種實現(xiàn)某些實施例的計算機系統(tǒng)。
i.系統(tǒng)架構(gòu)
圖1圖示出根據(jù)示例性實施例的示例性硬件系統(tǒng)100的示意性框圖。如所示,系統(tǒng)可以包括通用轉(zhuǎn)換器110、各種iot設(shè)備120以及各種用戶設(shè)備130。各種組件可以使用iot協(xié)議140-150進行通信。
通用轉(zhuǎn)換器110可以是能夠根據(jù)需要跨多個協(xié)議140-150在iot設(shè)備120與用戶設(shè)備130之間通信的電子設(shè)備??梢允褂每绺鞣N適當(dāng)網(wǎng)絡(luò)(例如,蜂窩式網(wǎng)絡(luò)、無線網(wǎng)絡(luò)、因特網(wǎng)等)可訪問的一個或多個服務(wù)器設(shè)備來實現(xiàn)通用轉(zhuǎn)換器110??梢栽谟脩粼O(shè)備130、iot設(shè)備120和/或用戶設(shè)備130、iot設(shè)備120和/或服務(wù)器的組合處包括轉(zhuǎn)換器。
可以將通用轉(zhuǎn)換器110提供為到任何iot協(xié)議(無論是標(biāo)準(zhǔn)還是專用)的完全可擴展插件。轉(zhuǎn)換器可以自動地且安全地接收和應(yīng)用更新。轉(zhuǎn)換器可以支持諸如無線協(xié)議之類的現(xiàn)有和/或潛在協(xié)議。轉(zhuǎn)換器可以利用加密通信。下面將參考圖2-5來更詳細(xì)地描述通用轉(zhuǎn)換器。
每個iot設(shè)備120可以是能夠跨至少一個協(xié)議140進行通信的電子設(shè)備。iot設(shè)備120可以包括具有嵌入式iot功能的物理設(shè)備、運載工具、建筑物等。示例性iot設(shè)備包括鎖具、電源或照明設(shè)備、器械、hvac或加熱系統(tǒng)等。在某些情況下,iot設(shè)備可以包括能夠跨一個或多個網(wǎng)絡(luò)通信的多個物理組件(例如,智能燈泡可以包括物理燈泡和駐留于云中的計算機系統(tǒng))。
此類設(shè)備可以包括諸如傳感器、致動器、有線或無線通信發(fā)送機和/或接收機等元件。此類設(shè)備通常能夠連接到一個或多個本地或分布式網(wǎng)絡(luò)。
每個用戶設(shè)備130可以是諸如智能電話、平板電腦、個人計算機、遙控器等之類的設(shè)備。其能夠通常通過執(zhí)行應(yīng)用程序而跨至少一個協(xié)議150進行通信。另外,每個用戶設(shè)備可以包括可以用來控制各種iot設(shè)備140或者另外與之相交互的組件,諸如用戶接口元件(例如,觸摸屏、小鍵盤、按鈕等)。
在某些實施例中,iot設(shè)備120可以充當(dāng)用戶設(shè)備130。例如,可以使用iot車庫門打開器來控制iot燈泡。
在操作期間,用戶設(shè)備130可以嘗試與iot設(shè)備120相交互(例如,通過向iot設(shè)備發(fā)送命令)。如果用戶設(shè)備130能夠使用協(xié)議150通信,而iot設(shè)備能夠使用協(xié)議140通信,則通用轉(zhuǎn)換器110可以跨協(xié)議150從用戶設(shè)備130接收命令并跨協(xié)議140將該命令遞送到iot設(shè)備120。
通用轉(zhuǎn)換器110可以通過在協(xié)議140上從iot設(shè)備接收通信并跨協(xié)議150將該通信遞送到用戶設(shè)備130而同樣地允許iot設(shè)備120發(fā)送消息或數(shù)據(jù)。
圖2圖示出由系統(tǒng)100提供的示例性通用轉(zhuǎn)換器110的示意性框圖。如所示,通用轉(zhuǎn)換器可以包括核心210、一組服務(wù)220以及一組虛擬設(shè)備230。本領(lǐng)域普通技術(shù)人員將認(rèn)識到的是可以使用多個物理設(shè)備或計算機系統(tǒng)來實現(xiàn)轉(zhuǎn)換器110的各種組件210-230。
核心210可以使用內(nèi)部協(xié)議來處理服務(wù)220與虛擬設(shè)備230之間的通信。核心210可以執(zhí)行、引導(dǎo)和/或另外實行各種其它操作,諸如數(shù)據(jù)查找、存儲和/或評估、其它組件的管理等。下面將參考圖3來更詳細(xì)地描述核心。
服務(wù)220可以包括多個插件模塊,其能夠使用任何支持的協(xié)議來與各種iot設(shè)備120和或應(yīng)用程序(例如,經(jīng)由用戶設(shè)備130)進行通信。下面將參考圖4來更詳細(xì)地描述此類服務(wù)220。
虛擬設(shè)備230可以包括多個插件模塊,其能夠?qū)嵗癁閕ot設(shè)備以便使用任何支持的協(xié)議與各種用戶設(shè)備130進行通信。下面將參考圖5來更詳細(xì)地描述此類虛擬設(shè)備230。
圖3圖示出由通用轉(zhuǎn)換器110提供的示例性核心210的示意性框圖。如所示,核心210可以包括通信模塊310、轉(zhuǎn)換器命令模塊320、主命令模塊330、用戶數(shù)據(jù)模塊340。應(yīng)用程序列表350以及設(shè)備列表360。
通信模塊310可以管理、執(zhí)行或者另外實行服務(wù)子系統(tǒng)220與虛擬設(shè)備子系統(tǒng)230之間的通信(例如,消息發(fā)送、線程等)。通信模塊310可以進一步管理各種硬件子系統(tǒng)。
轉(zhuǎn)換器命令模塊320可以管理命令和/或協(xié)議解析。
主命令模塊330可以管理用核心子系統(tǒng)210來監(jiān)督所有其它模塊的主線程。
用戶數(shù)據(jù)模塊340可以處理用戶和/或配置數(shù)據(jù)并維護應(yīng)用程序列表350和設(shè)備列表360。
應(yīng)用程序列表350可以包括關(guān)聯(lián)應(yīng)用程序列表、其狀態(tài)和/或其它相關(guān)信息??梢曰谥T如用戶設(shè)備上的安裝、應(yīng)用程序的先前執(zhí)行、來自提供商的可用應(yīng)用程序的列表等各種相關(guān)準(zhǔn)則來關(guān)聯(lián)應(yīng)用程序。
設(shè)備列表360可以包括關(guān)聯(lián)iot設(shè)備的列表、其狀態(tài)和/或其它相關(guān)信息??梢曰谥T如先前交互、與制造商的關(guān)聯(lián)等各種相關(guān)因素來關(guān)聯(lián)設(shè)備。
本領(lǐng)域普通技術(shù)人員將認(rèn)識到的是在不脫離本公開的范圍的情況下可以以各種不同方式來實現(xiàn)圖1-3的系統(tǒng)和/或設(shè)備。例如,某些實施例可以包括附加模塊、設(shè)備等。作為另一示例,可以消除各種模塊。此外,可以使用與所示出的相比各種不同通信路徑或方案來實現(xiàn)各種模塊、設(shè)備等。
圖4圖示出由通用轉(zhuǎn)換器110提供的示例性服務(wù)220的示意性框圖。如所示,服務(wù)220包括平臺410以及協(xié)議特定服務(wù)420和相關(guān)聯(lián)移植層(portinglayer)430的多個集合。
平臺410可以由轉(zhuǎn)換器110的內(nèi)部協(xié)議提供并可以允許與核心210的交互。內(nèi)部協(xié)議可以是能夠被iot設(shè)備使用的完整iot協(xié)議。
每個協(xié)議特定設(shè)備420可以與一個或多個相應(yīng)iot協(xié)議相關(guān)聯(lián),并且可以包括與iot協(xié)議相關(guān)聯(lián)的通信規(guī)則、參數(shù)、屬性等。在某些情況下,可以將一個或多個協(xié)議特定服務(wù)420與單個iot設(shè)備120或用戶設(shè)備130應(yīng)用程序、設(shè)備或應(yīng)用程序的類型或品牌、與特定協(xié)議相關(guān)聯(lián)的多個設(shè)備或應(yīng)用程序等相關(guān)聯(lián)。
每個移植層430可以經(jīng)由平臺410將關(guān)聯(lián)特定服務(wù)420鏈接到內(nèi)部協(xié)議。
圖5圖示出由通用轉(zhuǎn)換器110提供的示例性虛擬設(shè)備的示意性框圖。如所示,虛擬裝置230包括平臺510以及特定虛擬設(shè)備520和相關(guān)聯(lián)移植層530的多個集合。
平臺510可以由轉(zhuǎn)換器110的內(nèi)部協(xié)議提供并可以允許與核心210的交互。
每個虛擬設(shè)備520可以與一個或多個相應(yīng)協(xié)議相關(guān)聯(lián),并且可以包括與iot設(shè)備或用戶設(shè)備協(xié)議相關(guān)聯(lián)的通信規(guī)則、參數(shù)、屬性等,這里該協(xié)議可以與在用戶設(shè)備上運行的應(yīng)用程序相關(guān)聯(lián)。在某些情況下,可以將一個或多個協(xié)議特定虛擬裝置520與單個iot設(shè)備120或用戶設(shè)備130、設(shè)備的類型或品牌、與特定協(xié)議相關(guān)聯(lián)的多個設(shè)備等相關(guān)聯(lián)。
每個移植層530可以經(jīng)由平臺510將關(guān)聯(lián)特定虛擬裝置520鏈接到內(nèi)部協(xié)議。
本領(lǐng)域普通技術(shù)人員將認(rèn)識到的是在不脫離本公開的范圍的情況下可以用各種不同方式來實現(xiàn)上文參考圖1-5所描述的系統(tǒng)和組件。例如,某些實施例可以包括附加模塊或組件(例如,硬件模塊、用戶接口元件等),可以省略各種組件,包括組件的不同布置等。
ii.操作方法
圖6圖示出系統(tǒng)100所使用的示例性通信結(jié)構(gòu)600的消息流圖。如所示,系統(tǒng)可以包括通用轉(zhuǎn)換器110、iot設(shè)備120以及用戶設(shè)備130。在本示例中通用轉(zhuǎn)換器110包括核心210、服務(wù)220以及虛擬裝置230。用戶設(shè)備130可以包括新的應(yīng)用程序610和舊的或先前添加的應(yīng)用程序615。
如所示,核心210可以向服務(wù)220發(fā)送用以發(fā)起針對每個所支持的iot協(xié)議的服務(wù)的請求620。服務(wù)220可以通過在每個所支持協(xié)議上偵聽設(shè)備和/或應(yīng)用程序來對此類請求進行響應(yīng)。
接下來,iot設(shè)備120可以廣播能夠被服務(wù)220中的一個接收的存在消息或信標(biāo)625。該服務(wù)進而可以基于消息625的協(xié)議來處理新設(shè)備120的發(fā)現(xiàn)。
新的應(yīng)用程序610然后可以廣播能夠被服務(wù)220中的一個接收到的存在消息或信標(biāo)630。該服務(wù)進而可以基于消息630的協(xié)議來處理新的應(yīng)用程序610的發(fā)現(xiàn)。
服務(wù)220可以在服務(wù)220與設(shè)備120之間建立通信信道635。接下來,服務(wù)220可以向核心210發(fā)送設(shè)備通知640。通知640可以包括新設(shè)備的指示、與設(shè)備相關(guān)聯(lián)的已識別協(xié)議、與設(shè)備相關(guān)聯(lián)的唯一標(biāo)識符或id等。
服務(wù)220然后可以向核心210發(fā)送應(yīng)用程序通知645。通知645可以包括新應(yīng)用程序的指示、與應(yīng)用程序相關(guān)聯(lián)的已識別協(xié)議、與應(yīng)用程序相關(guān)聯(lián)的唯一標(biāo)識符或id等。
響應(yīng)于通知640-645,核心210然后可以向應(yīng)用程序列表中插入新應(yīng)用程序信息并向設(shè)備列表宏插入新設(shè)備信息。針對每個新設(shè)備,核心210可以通過應(yīng)用程序列表進行循環(huán),并且如果協(xié)議不匹配,核心可以發(fā)起對應(yīng)于應(yīng)用程序協(xié)議的虛擬設(shè)備實例。此類發(fā)起可以通過從核心210向虛擬裝置230發(fā)送用于新應(yīng)用程序的實例化請求650和/或用于現(xiàn)有應(yīng)用程序的實例化請求655而實現(xiàn)。
核心210可以確定舊應(yīng)用程序615的協(xié)議是否與新iot設(shè)備120的協(xié)議匹配,并且如果協(xié)議不匹配,則創(chuàng)建使用舊應(yīng)用程序615的協(xié)議的iot設(shè)備120的虛擬裝置230。接下來,新虛擬裝置230可以向新應(yīng)用程序610廣播存在消息660并在虛擬裝置230與新應(yīng)用程序610之間建立通信信道665。同樣地,與現(xiàn)有應(yīng)用程序615相關(guān)聯(lián)的虛擬裝置230可以向舊應(yīng)用程序615廣播存在消息670并在虛擬裝置230與舊應(yīng)用程序615之間建立通信信道675。替換地,如果協(xié)議不配,則核心120可以直接地而不是經(jīng)由虛擬裝置230與新應(yīng)用程序610通信。
然后可以利用建立的通信信道(和通用轉(zhuǎn)換器110的內(nèi)部信道)來允許設(shè)備120與應(yīng)用程序610或615之間的雙向通信。下面參考消息680-695來描述一個示例性情形。
在本示例中,可以由新應(yīng)用程序610發(fā)起操作(例如,接通命令)。如所示,可以從新應(yīng)用程序610向虛擬裝置230發(fā)送命令680。虛擬裝置可以將操作、命令或應(yīng)用編程接口(api)規(guī)格化到通用轉(zhuǎn)換器內(nèi)部協(xié)議。
接下來,可以使用內(nèi)部協(xié)議從虛擬裝置230向核心210發(fā)送規(guī)格化消息685。響應(yīng)于消息685,核心可以使用設(shè)備列表來識別與消息相關(guān)聯(lián)的iot設(shè)備。然后可以從核心210向使用設(shè)備列表識別的特定服務(wù)220發(fā)送規(guī)格化操作690。最后,服務(wù)可以使用用于iot設(shè)備的適當(dāng)協(xié)議向iot設(shè)備120發(fā)送操作695。
可以使用類似通信算法來從iot設(shè)備120向用戶設(shè)備130中繼消息或數(shù)據(jù)。
本領(lǐng)域普通技術(shù)人員將認(rèn)識到的是在不脫離本公開的范圍的情況下可以用各種不同方式來實現(xiàn)通信結(jié)構(gòu)600。例如,雖然可以將某些消息表示為單個實體,但各種通信可以包括各種數(shù)目的數(shù)據(jù)包、初始化消息、握手或其它通信協(xié)議等。另外,雖然已按照特定順序示出了消息,但不同的實施例可以根據(jù)一個或多個消息的內(nèi)容和/或其它相關(guān)因素而允許不同的結(jié)構(gòu)和/或消息發(fā)送序列。此外,可以使用不同的特定物理組件來實現(xiàn)通信結(jié)構(gòu)。
圖7圖示出提供通用轉(zhuǎn)換的示例性過程的流程圖700。此類過程可以例如在用戶設(shè)備應(yīng)用程序被啟動時、在iot設(shè)備被接通時等開始。該過程可以由諸如轉(zhuǎn)換器110之類的組件執(zhí)行。
如所示,過程可以識別(在710處)iot設(shè)備。接下來,過程可以確定(在720處)用于iot設(shè)備的協(xié)議和唯一標(biāo)識符(id)。可以基于各種相關(guān)因素(例如,從設(shè)備接收到的消息)來進行協(xié)議確定。唯一標(biāo)識符可以先前已經(jīng)在轉(zhuǎn)換器110處生成,并且可以與諸如列表360之類的設(shè)備列表相關(guān)聯(lián)。
該過程然后可以識別(在730處)應(yīng)用程序。該應(yīng)用程序可以由諸如智能電話、平板電腦、個人計算機、可穿戴設(shè)備等用戶設(shè)備執(zhí)行。接下來,過程可以確定(在740處)與用戶設(shè)備和或應(yīng)用程序相關(guān)聯(lián)的協(xié)議和唯一id??梢曰诟鞣N適當(dāng)準(zhǔn)則(例如,從應(yīng)用程序或設(shè)備接收到的消息)來進行協(xié)議確定。該唯一id可以已經(jīng)先前在轉(zhuǎn)換器110處生成,并且可以與諸如列表350之類的應(yīng)用程序列表相關(guān)聯(lián)。
唯一id可以至少部分地基于與用戶設(shè)備相關(guān)聯(lián)的信息(例如,序號、型號等),并且可以包括自動增加的元素、隨機生成串、用戶輸入數(shù)據(jù)、協(xié)議特定id和/或可以允許在遇到新應(yīng)用程序和設(shè)備時針對該新應(yīng)用程序和設(shè)備生成附加唯一id的其它適當(dāng)特征。轉(zhuǎn)換器110然后可能能夠基于從應(yīng)用程序或設(shè)備接收到的未來通信而識別唯一id。該唯一id在某些實施例的通用iot系統(tǒng)內(nèi)可以是唯一的(即,id在其自己的協(xié)議內(nèi)是唯一的是不夠的)。
過程700然后可以確定(在750處)在iot設(shè)備與用戶設(shè)備之間協(xié)議和/或id是否匹配。另外,某些實施例可以確定在新應(yīng)用程序或新應(yīng)用程序與每個現(xiàn)有應(yīng)用程序或設(shè)備之間協(xié)議是否匹配。如果協(xié)議和id不匹配,則過程可以插入(在760處)能夠在用戶設(shè)備與iot設(shè)備之間轉(zhuǎn)換通信的虛擬設(shè)備。
接下來,過程可以從應(yīng)用程序接收(在770處)諸如命令之類的操作。該過程然后可以向iot設(shè)備發(fā)送(在780處)操作,其中,可以視情況經(jīng)由虛擬設(shè)備來發(fā)送該操作。
可以使用類似過程來在用戶設(shè)備處從iot設(shè)備接收通信或允許iot設(shè)備之間的通信。
圖8圖示出為與多個應(yīng)用程序相關(guān)聯(lián)的iot設(shè)備提供通用轉(zhuǎn)換的示例性過程800的流程圖。具體地,過程800描述了新應(yīng)用程序和設(shè)備的處理。此類過程可以例如當(dāng)用戶設(shè)備應(yīng)用程序被啟動時、當(dāng)iot設(shè)備被接通時等開始。該過程可以由諸如轉(zhuǎn)換器110之類的組件執(zhí)行。
如所示,本過程可以接收(在810處)設(shè)備協(xié)議和id并接收(在820處)應(yīng)用程序協(xié)議和id??梢允褂孟ⅲㄖT如上文所述的消息640-645)在核心210處從服務(wù)220接收此類信息。
接下來,過程可以確定(在830處)應(yīng)用程序是否是新應(yīng)用程序(即,先前尚未遇到的應(yīng)用程序)??梢酝ㄟ^將接收到的應(yīng)用程序信息與應(yīng)用程序列表中的信息相比較來進行此類確定。如果過程確定應(yīng)用程序是新的,則過程將應(yīng)用程序添加(在840處)到應(yīng)用程序列表。
過程800然后可以通過現(xiàn)有iot設(shè)備的列表進行循環(huán)(在845處)并針對設(shè)備列表中的設(shè)備確定(在850處)新應(yīng)用程序和現(xiàn)有設(shè)備的協(xié)議是否匹配。如果協(xié)議不匹配,則過程可以發(fā)起(在855處)虛擬設(shè)備實例。
在確定(在830處)應(yīng)用程序不是新的之后或者在確定(在850處)協(xié)議匹配之后或者在發(fā)起(在855處)虛擬設(shè)備實例之后,過程可以確定(在860處)設(shè)備是否是新設(shè)備??梢酝ㄟ^將接收到的設(shè)備信息與設(shè)備列表中的信息相比較來進行此類確定。如果設(shè)備不是新設(shè)備,則過程可以結(jié)束。
如果過程確定設(shè)備是新設(shè)備,則過程然后可以(在865處)將設(shè)備添加到設(shè)備列表。過程800然后可以通過應(yīng)用程序列表進行循環(huán)(在870處)并針對應(yīng)用程序列表中的每個應(yīng)用程序確定(在880)新的設(shè)備和應(yīng)用程序的協(xié)議是否匹配。如果協(xié)議不匹配,則過程可以發(fā)起(在890處)虛擬設(shè)備實例且然后可以結(jié)束。如果協(xié)議匹配,則過程可以在不將任何虛擬設(shè)備實例化的情況下結(jié)束。
圖9圖示出從用戶設(shè)備向iot設(shè)備發(fā)送操作的示例性過程900的流程圖。此類過程可以例如當(dāng)在用戶設(shè)備應(yīng)用程序處接收到命令時、當(dāng)iot設(shè)備對命令進行響應(yīng)時等開始。該過程可以由諸如轉(zhuǎn)換器110之類的組件執(zhí)行??梢允褂妙愃蒲a充過程來從iot設(shè)備接收消息并向用戶設(shè)備發(fā)送消息。
如所示,過程可以接收(在910處)操作。此類操作可以是從應(yīng)用程序接收到的,并且基于各種用戶輸入或動作。
接下來,過程可以將該操作規(guī)格化(在920處)以便在轉(zhuǎn)換器的內(nèi)部協(xié)議內(nèi)使用。過程然后可以將該操作發(fā)送(在930處)到核心。過程然后可以從設(shè)備列表中識別(在940處)設(shè)備并識別(在950處)與設(shè)備相關(guān)聯(lián)的服務(wù)。
過程900然后可以將操作發(fā)送(在970處)到已識別服務(wù)。最后,過程可以將操作從服務(wù)發(fā)送(在980處)至iot設(shè)備且然后可以結(jié)束。
本領(lǐng)域普通技術(shù)人員將認(rèn)識到的是過程700-900是示例性的,并且在不脫離本公開的范圍的情況下可以以不同方式實現(xiàn)不同實施例。例如,某些實施例可以按照不同順序執(zhí)行操作,可以省略各種操作和/或可以包括附加操作。作為另一示例,可以迭代地執(zhí)行某些操作和/或操作集合(例如,如當(dāng)將一系列命令從用戶設(shè)備中繼到iot設(shè)備時)。另外,可以將該過程劃分成多個子過程和/或與較大的宏過程中的其它過程或操作組合。此外,該過程可以由各種不同的物理設(shè)備(和/或設(shè)備集合)執(zhí)行。
iii.計算機系統(tǒng)
可以將上文描述的許多過程和模塊實現(xiàn)為被指定為記錄在非臨時儲存介質(zhì)上的一個或多個指令集的軟件過程。當(dāng)這些指令被一個或多個計算元件(例如,微處理器、微控制器、數(shù)字信號處理器(dsp)、專用集成電路(asic)、現(xiàn)場可編程門陣列(fpga)等)執(zhí)行時,該指令促使計算元件執(zhí)行在指令中指定的動作。
在某些實施例中,可以完全使用可以包括設(shè)備或元件的各種集合(例如,傳感器、邏輯門、模數(shù)轉(zhuǎn)換器、數(shù)模轉(zhuǎn)換器、比較器等)的電子電路來實現(xiàn)上文所述的各種過程和模塊。此類電路可能能夠執(zhí)行可以與自始至終所描述的各種軟件元素相關(guān)聯(lián)的功能和/或特征。
圖10圖示出用來實現(xiàn)某些實施例的示例性計算機系統(tǒng)1000的示意性框圖。例如,可以至少部分地使用計算機系統(tǒng)1000來實現(xiàn)上文參考圖1所述的系統(tǒng)。作為另一示例,可以至少部分地使用被使用計算機系統(tǒng)1000執(zhí)行的指令集來實現(xiàn)參考圖6所述的通信結(jié)構(gòu)和/或參考圖7-9所述的過程。
可以使用各種適當(dāng)設(shè)備來實現(xiàn)計算機系統(tǒng)1000。例如,可以使用一個或多個個人計算機(pc)、服務(wù)器、移動設(shè)備(例如,智能電話)、平板設(shè)備和/或任何其它適當(dāng)設(shè)備來實現(xiàn)計算機系統(tǒng)。各種設(shè)備可以單獨地(例如,可以將計算機實現(xiàn)為單個pc)或者相結(jié)合地(例如,計算機系統(tǒng)的某些組件可以由移動設(shè)備提供,而其它組件由平板設(shè)備提供)工作。
如所示,計算機系統(tǒng)1000可以包括至少一個通信總線1005、一個或多個處理器1010、系統(tǒng)存儲器1015、只讀存儲器(rom)1020、永久性儲存設(shè)備1025、輸入設(shè)備1030、輸出設(shè)備1035、音頻處理器1040、視頻處理器1045、各種其它組件1050以及一個或多個網(wǎng)絡(luò)接口1055。
總線1005表示計算機系統(tǒng)1000的元件之間的所有通信路徑。此類路徑可以包括有線、無線、光學(xué)和/或其它適當(dāng)?shù)耐ㄐ怕窂?。例如,輸入設(shè)備1030和/或輸出設(shè)備1035可以使用無線連接協(xié)議或系統(tǒng)被耦合到系統(tǒng)1000。
處理器1010可以為了執(zhí)行某些實施例的過程而從諸如系統(tǒng)存儲器1015、rom1020以及永久性儲存設(shè)備1025之類的組件檢索要執(zhí)行的指令和/或要處理的數(shù)據(jù)??梢酝ㄟ^總線1005來傳遞此類指令和數(shù)據(jù)。
系統(tǒng)存儲器1015可以是易失性讀寫存儲器,諸如隨機存取儲器(ram)。系統(tǒng)存儲器可以存儲處理器在運行時使用的某些指令和數(shù)據(jù)。用來實現(xiàn)某些實施例的指令集和/或數(shù)據(jù)可以被存儲在系統(tǒng)存儲器1015、永久性儲存設(shè)備1025和/或只讀存儲器1020中。rom1020可以存儲可以被處理器1010和/或計算機系統(tǒng)的其它元件使用的靜態(tài)數(shù)據(jù)和指令。
永久性儲存設(shè)備1025可以是讀寫存儲器設(shè)備。永久性儲存設(shè)備可以是非易失性存儲器單元,其即使在計算機系統(tǒng)1000關(guān)閉或斷電時也存儲指令和數(shù)據(jù)。計算機系統(tǒng)1000可以使用可移動儲存設(shè)備和/或遠(yuǎn)程儲存設(shè)備作為永久性儲存設(shè)備。
輸入設(shè)備1030可以使用戶能夠向計算機系統(tǒng)傳送信息和/或操縱系統(tǒng)的各種操作。輸入設(shè)備可以包括鍵盤、光標(biāo)控制設(shè)備、音頻輸入設(shè)備和/或視頻輸入設(shè)備。輸出設(shè)備1035可以包括打印機、顯示器、音頻設(shè)備等。輸入和/或輸出設(shè)備中的某些或全部可以以無線或光學(xué)方式連接到計算機系統(tǒng)1000。
音頻處理器1040可以處理和/或生成音頻數(shù)據(jù)和/或指令。音頻處理器可能能夠從諸如擴音器之類的輸入設(shè)備1030接收音頻數(shù)據(jù)。音頻處理器1040可能能夠向諸如一組揚聲器之類的輸出設(shè)備1040提供音頻數(shù)據(jù)。音頻數(shù)據(jù)可以包括數(shù)字信息和/或模擬信號。音頻處理器1040可能能夠分析和/或另外評估音頻數(shù)據(jù)(例如,通過確定諸如信噪比、動態(tài)范圍等品質(zhì))。另外,音頻處理器可以執(zhí)行各種音頻處理功能(例如,均衡化、壓縮等)。
視頻處理器1045(或圖形處理單元)可以處理和/或生成視頻數(shù)據(jù)和/或指令。視頻處理器可能能夠從諸如相機之類的輸入設(shè)備1030接收視頻數(shù)據(jù)。視頻處理器1045可能能夠向諸如顯示器之類的輸出設(shè)備1040提供視頻數(shù)據(jù)。視頻數(shù)據(jù)可以包括數(shù)字信息和/或模擬信號。視頻處理器1045可能能夠分析和/或另外評估視頻數(shù)據(jù)(例如,通過確定諸如分辨率、幀速率等品質(zhì))。另外,視頻處理器可以執(zhí)行各種視頻處理功能(例如,對比度調(diào)整或規(guī)格化、色彩調(diào)整等)。此外,視頻處理器可能能夠渲染圖形元素和/或視頻。
其它組件1050可以執(zhí)行各種其它功能,包括提供存儲、與外部系統(tǒng)或組件相聯(lián)系等。
最后,如圖10中所示,計算機系統(tǒng)1000可以包括能夠連接到一個或多個網(wǎng)絡(luò)1060的一個或多個網(wǎng)絡(luò)接口1055。例如,計算機系統(tǒng)1000可以被耦合到因特網(wǎng)上的網(wǎng)絡(luò)服務(wù)器,使得在計算機系統(tǒng)1000上執(zhí)行的網(wǎng)絡(luò)瀏覽器可以在用戶與在網(wǎng)絡(luò)瀏覽器中操作的接口相交互時與網(wǎng)絡(luò)服務(wù)器相交互。計算機系統(tǒng)1000可能能夠通過網(wǎng)絡(luò)接口1055和網(wǎng)絡(luò)1060來訪問一個或多個遠(yuǎn)程儲存器1070和一個或多個外部組件1075。網(wǎng)絡(luò)接口1055可以包括一個或多個api,其可以允許計算機系統(tǒng)1000訪問遠(yuǎn)程系統(tǒng)和/或儲存器,并且還可以允許遠(yuǎn)程系統(tǒng)和/或儲存器訪問計算機系統(tǒng)1000(或其元件)。
如在本申請的本說明書和任何權(quán)利要求中所使用的,術(shù)語“計算機”、“服務(wù)器”、“處理器”以及“存儲器”全部指代電子設(shè)備。這些術(shù)語不包括人或人群。如在本申請的本說明書和任何權(quán)利要求中所使用的,術(shù)語“非臨時儲存介質(zhì)”完全局限于以可被電子設(shè)備讀取的形式存儲信息的有形物理對象。這些術(shù)語不包括任何無線或其它瞬息信號。
本領(lǐng)域普通技術(shù)人員應(yīng)認(rèn)識到的是,可以結(jié)合某些實施例來使用計算機系統(tǒng)100的任何或所有組件。此外,本領(lǐng)域普通技術(shù)人員將領(lǐng)會到的是,還可以與某些實施例或某些實施例的組件相結(jié)合地使用許多其它系統(tǒng)配置。
另外,雖然所示的示例可以將許多單獨模塊舉例說明為單獨元件,但本領(lǐng)域普通技術(shù)人員將認(rèn)識到的是,可以將這些模塊組合成單個功能塊或元件。本領(lǐng)域普通技術(shù)人員還將認(rèn)識到的是,可以將單個模塊劃分成多個模塊。
前文涉及示例性實施例的說明性細(xì)節(jié),并且在不脫離由以下權(quán)利要求定義的本公開的范圍的情況下可以進行修改。